機械学習は、最近のテクノロジーの中で最も刺激的なものの一つです。インターネットを検索するためにGoogleやBingのようなウェブ検索エンジンを使うたびに、それがうまく機能する理由の一つは、学習アルゴリズムがGoogleあるいはMicrosoftに実装されており、ウェブページをランキングする方法を学んだからです。
■機械学習とは何か?
機械学習の実践者でさえ、何が機械学習で何が機械学習でないかは明確に定まっていません。ここに2つの機械学習の定義を紹介します。
- アーサー・サミュエルの定義(やや古い定義)
「コンピュータに明示的にプログラムすることなく学習能力を与える研究の分野」と述べています。 彼が有名な理由は、1950年台にチェッカーゲームのプログラムを書いたことによります。(彼自身はチェッカーはあまり上手くありませんでした。)
彼のプログラムは数万回に及ぶゲームを実施する中で(コンピュータは数万回実施する根気があるのです)、どのようなボードの配置が勝つ傾向にあり、どのようなボードのは位置が負ける傾向にあるのかを学びました。そしてアーサー・サミュエルよりチェッカーを上手くプレイするようになりました。
- トム・ミッチェルの定義(より現代的な定義)
「コンピュータプログラムは、基準Pで測定されたタスクTのパフォーマンスが経験Eで改善される場合、ある種のタスクTおよび性能基準Pに関して経験Eから学ぶ」と言われています。(タスクTに対するシステムの性能は、性能基準Pに照らし合わせて、経験Eの後で改善される。)
例1)チェッカーゲーム
E =多くのチェッカーゲームを経験した経験
T =チェッカーを実行するタスク。
P =プログラムが次のゲームに勝つ確率
例2)スパムメールフィルター
E =ユーザーが受信メールをスパムと非スパムにラベル分けするのを見る
T =電子メールをスパムと非スパムに分類する
P =正しく分類された電子メールの比率
■学習アルゴリズムの種類
一般に、機械学習の問題は「教師あり学習」と「教師なし学習」の大きな分類のいずれかに割り当てることができます。(他にも強化学習やリコメンダーシステム等)
詳細は次回以降に説明しますが、簡単に言うと以下のとおりです。
- 教師あり学習
→コンピュータに何かをする方法を教える
- 教師なし学習
→コンピュータが自ら学ぶことに任せる
機械学習の理論を学ぶのと同じくらい重要なのは、どのように使用するのがベストなのかを判断することです。かのシリコンバレーの大企業ですら、6ヶ月かけて学習したシステムが上手くいかなかった、ということも起こりうるのです。(6ヶ月前により最適な別のアルゴリズムを使用していれば、もっと上手くいったかもしれないのに。)
