はじめに
Scikit-learnというPythonの機械学習のライブラリを使うことになり、機械学習の基礎となる概念について調べていました。
機械学習とは
械学習は、明示的にプログラムされずにコンピューターが経験から学習し、向上する人工知能の1つです。
(https://www.fujielectric.co.jp/products/foodfactory/basic/ai/ より引用)
機械学習の主要な3タイプ
- 教師あり学習
- 教師なし学習
- 強化学習
教師あり学習
学習データに正解のデータが含まれているものを学習させる方法です。
モデルはデータセットを基に正解を判定します。
例えば、犬と猫の画像を学習させたモデルがあり、それに猫の画像を見せると猫と判定し、犬の画像を見せると犬と判定するものです。
用途として、画像処理で使われることが多いです(Qiita内に記事が多くあると思います)
他には不動産価格と予測、手書き文字の認識、クレジットカードの信用スコアなどがあります。
(https://ai-kenkyujo.com/artificial-intelligence/kyoushiarigakusyu-kyoushinasigakusyu/ より引用)
教師なし学習
学習データに正解データを与えずに学習させる方法です。
モデルは、入力データからパターンを見つけ出します。
例えば、食べ物のデータを学習させると、スイーツ類やラーメン類などモデルが分類するものです。
用途として、クラスタリング、クレジットカードの不正利用などがあります。
(https://ai-kenkyujo.com/artificial-intelligence/kyoushiarigakusyu-kyoushinasigakusyu/ より引用)
強化学習
学習データに正解データは無いが、報酬(スコア)を最大化するように行動を学習する方法です。
例えば、藤井聡太さんで有名な将棋のゲームで使われます。
用途として、自動運転技術やWeb広告の表示などに使われています。
(https://ai-kenkyujo.com/kyoukagakusyu/kyoukagakusyu-2/ より引用)
おわりに
教師あり学習と教師なし学習は大学の講義で情報系の教授が今季よく説明していたので少しは理解していましたが、強化学習は未知の世界です。
セキュリティーが高い三井住友カードの不正検知が教師なし学習が使われているのかなと思ったりと、それぞれのタイプが実社会にどのように使われているのか想像すると理解しやすいのかなと思いました。
今回はPythonでアプリを作る中でScikit-learnを使用するために調べた機械学習についてまとめました。
PDF形式ですが、以下のサイトが分かりやすかったです。
この資料のあるサイトは総務省の統計局で、小中高校の授業用の資料のサイトのようです。
どうりで分かりやすい訳だ。