最近話題の人工知能(AI)ですが、小学校でもプログラミングの授業が必修化される中で、人工知能を実現するための技術である機械学習について勉強しといて損はないと思います
今日、我々の周りは機械学習で溢れています。Amazonではどの商品がおすすめか、Netflixではどのドラマがおすすめか、AppleやGoogleは顔認識などなど、様々な場面で機械学習が使われています。
本記事では、Pythonで機械学習を実装する前に、初心者向けに機械学習の基本知識を説明したいと思います。
機械学習の分類
人工知能と機械学習を混同している人が多いですが、人工知能の一部が機械学習です。そして機械学習は、「教師あり学習」「教師なし学習」「強化学習」の3つに分類されることが多いです。
教師あり学習
皆が想像する機械学習はこれ。与えられたデータを元に、分類や予測を行います。入力と出力がセットになったデータで学習して、出力が未知の入力が来たときに出力を予測したり分類したりします。
教師あり学習は大きく分けるとクラス分類と回帰があります。
クラス分類
クラス分類ではあらかじめ設定された選択肢の中からクラスラベルを予測します。2クラス分類と多クラス分類に大別されます。
例えば「このメールが迷惑メールかどうか」や「この腫瘍が良性か悪性かどうか」は、YesかNoで答えられるので2クラス分類に該当します。
一方、その花の種類を求める問題は花の種類は複数あるので多クラス分類に該当します。
訓練データとテストデータ
教師あり機械学習を行う際、モデルを構築するための訓練データと評価するためのテストデータを用意する必要がある。
訓練データは教師データとも呼ばれ、これが教師あり学習と呼ばれる所以です。学習させるために使うデータを指します。
テストデータは学習させたモデルがどれくら正しいかを評価するために使うデータです。答え合わせ用と言っても良いです。
持っている情報量に比べて過度に学習させすぎて予測精度が下がってしまうことを、過剰適合や過学習と言います。なので機械学習モデルを構築する際は、訓練データを適切に選択して最良の予測精度を示すモデルを構築する必要があります。
回帰
回帰は連続値を予測します。
例えば、明日の株価の予測や個人の来月の課金額の予測が該当します。
クラス分類と回帰の違いは、出力される値が離散値か連続値かで区別できます。ラベルは1,2,3…と離散的ですが、株価は1842や4382など連続的ですよね。
教師なし学習
入力だけが与えられ、規則性を見出します。出力のデータ、つまり正解データが与えられないので、評価が難しい手法です。クラスタリングっていうグループ分けが一番有名です。
例えば、顧客のグループ分け。入力は「顧客が買った商品の情報」。「本好き」「ゲーム好き」「テニス好き」とかグループ分けします。でも、どんなグループがあるのかも分からないし、グループが何個あるのかも分からないので、難しい分野です。
強化学習
試行錯誤して価値が最大となる行動を取ります。チェスや囲碁などのパターンの多いゲームと相性が良く、勝利という未来の価値を得るために最適な行動を自己学習していきます。
なぜPythonなのか?
Pythonは多くのデータサイエンティストが使用していて、機械学習もPythonで実装されることが非常に多いです。なぜかというと、Pythonはデータの可視化、統計、画像処理など便利な機能を沢山詰めたライブラリってやつが充実しているからなんです。また、初心者でも非常に分かりやすい言語であり、最初に勉強するプログラミング言語としてはもってこいです。
最近はAI人材育成ニーズを踏まえ、基本情報技術者試験の出題内容にPythonが追加されたそうです! (2019/01/24現在)
- 機械学習は「教師あり学習」「教師なし学習」「強化学習」の3つに分類される
- Pythonは初心者に易しく、実用的!
コメント