機械学習をやりたいけれど、どこから手をつけていいか分からない人のために

  • 979
    いいね
  • 0
    コメント

要約

機械学習をやりたいけれど、どこから手をつけていいか分からない。
→ まずは機械学習の全体像を調べて、自分が解きたい問題にあった分野の見当をつけよう!

投稿の目的

機械学習について、自分の学習記録を投稿いたします。
学習記録とは書いていますが、ただの備忘録ではなく、以下の目的から誰かに読んでいただくことを想定しています。

  • 自分の解釈についてフィードバックを得たい。
  • 自分の考えをわかりやすく人に伝える力を付けたい。
  • せっかくだし、自分と同じ内容を勉強している人には役立ててもらいたい。

はじめに

これは機械学習以外にも言えることですが、専門技術というのは理論と実践が1セットになっています。
この両輪を回して初めて専門技術を習得することができます。
そして、理論と実践を修めるには大きく2つのアプローチ方法があります。

  • 先に理論を修め、それを実問題に適用する人(理論(1)→実践先(N))
  • 先に解きたい問題があり、そのために理論を修める人(実践先(1)→理論(N))

前者の場合は理論が 1 で実践先が N という関係です。
先に勉強したいことが明確に決まっていて、後はそれを面白そうなことに適用すればいいだけです。

今回の私は後者です。
先に応用先だけが決まっていて、後からそのために必要な理論を勉強しなければなりません。
実践先が 1 で、勉強する理論が N という関係です。
そのため、「そもそも何を勉強したらいいかわからない!」という事態に陥ってしまいました。

勉強を始めるためには概観を把握することが大切です。
そこで、本投稿は、機械学習の概観を把握することを目的とします。

機械学習の概観

Screenshot from 2016-09-18 08-42-33.png

教師あり学習

教師あり学習の目標は、アルゴリズムによって学習用データの中から規則性を見つけ出し、その規則性によって未知のデータを処理することです。
教師あり学習で使われるアルゴリズムには、サポートベクトルマシンや決定木、ニューラルネットワークなどがありますが、使用するアルゴリズムの違いは、規則性の捉え方の違いです。
問題によって適したアルゴリズムは変わってしまうようです。

学習用データは、入力信号とその入力信号によって得られるはずの出力信号(教師信号)がセットになったものです。
学習用データによって、入力信号と出力信号との間にある規則性を見つけ出すのです。

教師あり学習は、出力信号が連続値か離散値かで、さらに2種類に分けられます。

出力信号が連続値の場合、回帰と呼ばれます。
株価予測がこれに該当します。
株価指数やらを入力として、未来の株価を出力します。

入力信号が離散値の場合、分類と呼ばれます。
スパムメールフィルタがこれに該当します。
メールの内容を入力として、スパムメールかどうかを出力します。

強化学習

強化学習の目標は、環境に即した行動をするエージェントを開発することです。
エージェントは周囲の「環境」を入力として、「行動」を出力します。
そして、その行動によって得られる「報酬」を元に行動を改善していきます。

出力に応じたフィードバックが得られるので、そこは教師あり学習に近い部分です。
ただし、出力とフィードバックの関係が教師あり学習とは異なります。
教師あり学習の場合、出力に対してお手本となる出力が返されます(出力=フィードバック)。
一方、強化学習の場合は、出力に対して、その出力に対する評価が返されます(出力≠フィードバック)。

強化学習の例として、チェスがよく知られています。
チェス盤の状態(環境)を入力として、コマの動き(行動)を出力し、勝ち負け(報酬)をフィードバックとして得ます。

ゲームをプレイしながら上達していく DQN が少し前にニュースになりましたが、これも強化学習の一種です。
ゲーム画面の状態からコマンドを決定し、報酬としてゲームのスコアを得ます。

教師なし学習

教師なし学習の目標は、ラベル付けがされていなかったり、構造が不明なデータから、意味のありそうなデータを取り出すことです。

代表的な教師なし学習に、クラスタリングと次元削減があります。

クラスタリングは、大量の情報を意味のありそうなグループに分けることを目標とします。
特徴量を入力として、その類似性によってグルーピングを行った結果を出力します。
クラスタリングは、購買者のグルーピングに使うことができます。
購買者を購買情報からグループに分けることで、興味が共通する購買者の集団を特定することができます。

次元削減では、データを特徴づける情報を残したうえで、データの次元数を減らすことを目標とします。
特徴量を入力として、次元を減らして圧縮した特徴量を出力します。
次元削減は、教師あり学習の前処理に使うことができます。
特徴量の次元を減らすことで、学習時の計算を効率的に行うことができます。
さらに、意味のない情報(ノイズ)を取り除くことができます。

おわりに

本投稿では、教師あり学習、教師なし学習、強化学習の3つについて、問題領域の違いを書きました(他に、半教師あり学習等がありますが、まずはこの3つが基本になると考えています)。
これによって、何を勉強したらいいか分からない方に、勉強の入り口を提供することができれば幸いです。

参考文献

今回は以下の書籍を参考にさせていただきました。