機械学習とは何か?どんな種類があるのか?
「機械学習」と言うと、「AIを作るために必要な技術」・・・という認識の方も多いです。
しかし、機械学習はAI開発のためだけのものではありません。
機械学習はIT企業だけではなくいかなる業種・職種でも有用なデータ分析の武器です。
「AI」というのは、あくまで機械学習を含んだ様々な技術を用いたプログラムの総称であって、機械学習が使われないAIもありますし、AIの開発に使われない機械学習もあります。
さて、それでは「機械学習」とは具体的にどんな技術なのか。何ができるのか。どんな種類があるのか。
・・・そういった機械学習の基本について整理しました。
機械学習とは
機械学習とは、端的に言うと「入力したデータから、そのルールやパターンを発見・推測する」手法の総称です。
ただし「パターン」と言っても色々ありますし、その探索方法にも色々あります。
そのため、ひとえに「機械学習」と言っても様々な手法が存在します。
どの手法を使うかは人間が決めてあげる必要があり、それは「入力するデータの形式はどんなものか?」や「どんなルールやパターンを見つけたいか?」などといった観点から決定することになります。
手法の分類
それでは、具体的に機械学習の手法を見ていきます。
非常に多くの手法が確立されており、とても全ては網羅しきれませんが、主要な手法はおおよそ収めました。
まずは大分類から。
主要なものは「教師あり学習」「教師なし学習」の2つです。
(AI開発には「半教師学習」「強化学習」などといった手法も使われますが、少々応用的な手法となるため割愛します。)
以下、主要な2つについて整理していきます。
教師あり学習
教師あり学習では、インプットするのは「要因+結果」のデータです。
そして、そこから「結果を説明するのに、どの要因が大事なのか?」・・・を知るための手法です。
このように重要な要因が分かれば、今度は逆に要因から結果を予測することもできます。
これだけだと分かりづらいので一例を。
例えば、あるアイスクリーム屋さんの売上で、
平日・晴れ・気温25℃(要因)の時の売上個数が200個。
平日・雨・気温20℃(要因)の時の売上個数が80個。
休日・雨・気温10℃(要因)の時の売上個数が50個。
・・・
というようなデータがあったとします。
ここから、「アイスクリームの売上に最も貢献する要因は何なのか?」という分析ができたり、
「平日・曇り・気温15℃ならば何個売れそうか?」という予測ができたりするのが「教師あり学習」です。
このように教師あり学習は「分析」「予測」のどちらの使い道もありますが、
分析が目的ならば、きちんと具体的な「原因と結果」を探り、人間が次のアクションに移るための示唆を得る事が大切です。
予測が目的ならば、「示唆」はそこまで重要視せず、とにかく「精度の高い予測をさせる」事が大切です。
そういう意味で、目的が「分析」なのか「予測」なのかによって、適切な教師あり学習の手法も異なってきます。
ただし、この2つが明確に線引きができるわけでは無く、分析によく使われる手法が予測に活用されることもありますし、その逆もあります。
そのため、”寄り”という言葉をくっつけておきますが、その上で手法を整理しておきます。
【分析寄り】
・回帰分析
・ロジスティック回帰分析
・決定木分析
・判別分析
・k-NN(k-近傍法)
etc…
【予測寄り】
・サポートベクターマシン(SVM)
・ランダムフォレスト
・勾配ブースティング
・ディープラーニング
etc…
そして、この「予測」として使う教師あり学習こそが、AI開発に使われる機械学習です。
先述したとおり、どの手法を選ぶかは、手元にあるデータの形式と、そのデータから一体何を知りたいのかによって変わってきます。
例えば、扱いたいデータが画像や動画だった場合は「ディープラーニング」が適する場合が多いですが、音声や自然言語の場合は一概には言えません。
データが数値の場合はむしろ不適切な事が多いと思います。
「機械学習」=「ディープラーニング」という認識している方も多いですが、あくまでも機械学習の1手法に過ぎないとご理解ください。
また、AIを作るのであれば、これらの手法の理解に併せて、「正しい性能評価を行うこと」と「予測の精度を上げるための試行錯誤」が必要となります。
そこで、混同行列や誤差指標と言った性能評価の理解や、「特徴量エンジニアリング」と呼ばれる予測精度を上げていく技術も併せて重要となってきます。
教師なし学習
続いては「教師なし学習」に移ります。
教師なし学習は、とにかく何かしらのデータを用意します。
原因+結果である必要はなく、例えば試験の成績であったり、アンケート結果であったり、ある意味どんなデータにでも適用できる手法です。
使用用途としては、「データの大きな傾向を探る」「近いデータごとにグループ分けする」「要素ごとの因果関係を探る」などといった、人間がデータを見ているだけでは発見しづらい「パターン」を炙り出すことが主目的になります。
教師なし学習はAI開発に直接使われる事はあまりありませんが、AIの性能を上げる「特徴量エンジニアリング」の一つの技として使う事はあります。
おわりに
以上のように、機械学習は様々なデータに対して適応できる便利なデータ分析の味方です。
決してAIのためだけに存在している道具ではありません。
データを扱う機会のある方は、ぜひExcelなどで集計するだけに止まらず、機械学習を使って「一歩上のデータ分析」をしてみてみることもご検討ください。
AIエンジニアの方も、機械学習の手法には様々あることを理解し、その上で「今回の目的を達成するには、○○(手法名)を適用する事が優れる」・・・という判断を持って業務に臨むように心がけて頂ければ幸いです。