2014年9月1日
機械学習のレベル別学習法
本記事は、原著者の許諾のもとに翻訳・掲載しております。
Metacademyの発足以来、よく聞かれる質問があります。
機械学習について”さらに”詳しくなりたいが、何を学べばよいか分からない場合はどうすればいいですか?
このすばらしい質問に対して、私はこう答えます。 一貫してテキストブックから学びましょう。
すると、質問した人たちは顔をしかめます。それはまさに、体形の崩れた人が健康的な友人から「私は食事に気をつけて、運動を欠かさないようにしてるからね」と言われた時に見せる表情に似ています。進歩するには、粘り強い鍛錬とやる気、そして自分自身で課題に取り組む能力が必要です。 このことは皆さんもすでにご存じでしょう。
しかし、なぜテキストブックにこだわる必要があるのでしょうか? テキストブックは、本当の意味で知識を習得するための数少ない手段の1つです。皆さんは講座を受けたり、MOOCを受講したり、読書会に入ったりして、自分の好きなやり方で学ぶことができるでしょう。しかし、テキストブックを使えば、知識との密接なつながりが生まれます。皆さんはページをめくる度に知恵を絞り、無意識のうちに章タイトルや例題、練習問題を暗記します。また、余白にメモ書きをしたり、よく参照する箇所にマーキングしたり、学習したトピックを応用したいと考えたりするはずです。つまり、テキストブックが皆さんの知識の一部となるわけです(上の画像は私の最近のテキストブックです)。 テキストブックを読むだけでは効果的な学習はできません。 しかし、このようにテキストブックをうまく使えば、多くのことをマスターできます。もちろん、機械学習も例外ではありません。
これから示す簡単なロードマップでは、機械学習の知識と能力の向上に非常に役立つテキストブックを数冊紹介しています。 私はこれらのテキストブックを選ぶにあたって、事前にカリフォルニア大学バークレー校の大学院生や博士課程修了者、および教授陣に相談し、私自身の経験も考慮しました。今回は紹介する本の数を意図的に少なくしています。いきなり20冊ものテキストブックを提示しても意味がありませんからね。
もし皆さんが他の学習手段を探している場合は、 Metacademy や このページで紹介しているテキストブック を自由に活用してください。
レベル0:入門者
以前、アーティスト兼ライターとして働く妹から、データサイエンスの基礎をきちんと理解するためにはどうすればいいかと聞かれました。私はこの分野の入門書や一般向けの本を数冊読んでから、『 Data Smart 』を勧めました。妹はこの本を使って勉強し、次に会った時、私たちは ロジスティック回帰 について楽しく語り合いました。
期待される成果
ハイレベルにおける一般的な機械学習アルゴリズムを理解し、Excelでシンプルなアルゴリズムを実装できるようになります(全編を通して学習すればR言語による実装も少しできるようになります)。
必要な予備知識
Excel操作の基本的な知識が必要です。コンピュータサイエンスや数学に基づく知識のない人にとっては、本書はちょうどよい出発点になるでしょう。また、典型的なテキストブックのように無味乾燥ではありません。
キーとなる章
本書は短く、全ての章がとても簡潔に説明されています。しかし、基本的概観を学びたい場合は、ワークシート例や8章および10章を飛ばしても構いません。
仕上げのプロジェクト
この データセット を使って、所定の属性を有する車のMPG(1ガロン当たりの走行マイル)を予測してみましょう。この作業を通じて、任意タスクにおける機械学習のデータ運用能力や、ある程度あいまいな問題に対して、機械学習のテクニックを正しく適用する能力をテストすることができます。
レベル1:初級者
この本には多くの例が挙げられており、実践的な機械学習のテクニックとR言語を同時に学べるようになっています。私は長い間、SciPyを使っていましたが、本書の最初の数章を読んでからは、(R言語が思いの外、シンプルだったため)迅速分析には
R言語を使うようになりました。
期待される成果
特定の問題に対して、機械学習の基本アルゴリズムが、いつ適用されるかが理解できるようになります。併せて、機能的な機械学習のコードをR言語で実装できるようになります。
必要な予備知識
特に必要な条件はありませんが、次に該当するものがあれば、学習に役立ちます(いずれにしても本書内で学習・復習します)。
* プログラミング経験(R言語)
* 代数の知識
* 微分積分の基本
* 確率論の多少の知識
キーとなる章
短い本なので、全ての章をお勧めします。例を見ながら、実際に頭を使って考えること(そしてR言語で記述してみること)をお忘れなく。もし少しでも時間を節約したいようであれば、8章と12章はスキップしても支障はないでしょう。
仕上げのプロジェクト
この データセット を使って、所定の属性を有する食べ物のレートについて予測してみましょう。このタスクでは、3種類の機械学習のテクニックを使って、自分が選んだレート上位の食べ物の正当性を証明してみてください。また、レビューの”良い/悪い”を予測するクラシファイアを作成してみましょう。その際には、”良い/悪い”の妥当なしきい値を必ず設定するようにしてくださいね。この作業を通じて、自身のデータ改変能力、大きなデータセットの分析戦略、機械学習テクニックの知識、そしてR言語を使った分析コードの記述能力をテストすることができます。
レベル2:上級者
この段階になると、いよいよ表面的な知識だけの人と微に入り細にわたる知識を持った人との間で違いが現れてきます。より数学的になるのもここからです。ただ、機械学習を自分のキャリアの柱として考えているような場合、この境界は越えなければなりません。『パターン認識と機械学習』は、その境界の規範を示してくれます。ぜひ活用し、熟読し、愛着を持つようにしてください。ただし、ベイズ理論に基づく視点が、唯一の方法ではないことは覚えておきましょう(著者のBishop氏は、機械学習においてベイズ的なアプローチを取りがちのようです)。
期待される成果
既存の機械学習の方法で作られたものを、理解、実装、デバッグ、解釈できるようにします。また、任意の問題を検証するために、どのような機械学習のモデルが必要かを、直観的に把握できるようにもなるはずです。実践的なデータサイエンティストであれば、少なくともこのレベルに達している必要があります。
必要な予備知識
- 既存のクラスタリング/分類アルゴリズムの運用知識
- 線形代数:行列代数と行列式の理解
- 多変量およびベクトル解析の経験 – ヤコビアンの知識
- R、MATLAB、SciPyスタック、またはJuliaによる機械学習の実装経験
キーとなる章
1章から12章の1節を読んで知識を深め、愛着を感じるくらいになりましょう。12章の2節から14章は必要に応じて読んでください。
仕上げのプロジェクト
Online Variational Bayes Algorithm for Latent Dirichlet Allocation を実装して、収集した大量のデータを分析してみましょう。LDAを正しく実装できたか検証してください。これによって、最新の機械学習のアルゴリズムを理解し解釈できたかどうかを確認できます。さらに、近似的推論やオンライン推論の技術、実装のセンス、データ改変能力、あいまいな定義の問題から興味深いアプリケーションを決める能力なども確認できます。
注意事項
『パターン認識と機械学習』では、ベイズの機械学習法についてかなりのページを割いています。ベイズ統計学をよく知らない方は 『 Doing Bayesian Data Analysis 』の最初の5章を学習することをお勧めします。
レベル3:熟練者
熟練者のレベルともなれば、深く研究したいテーマはいくらでもあります。凸最適化、測度論的確率論、離散的最適化、線形代数、微分幾何学、あるいは計算神経学といった分野です。このレベルに到達していれば、どの分野で才能が伸ばせそうかよく分かっているでしょうから、ここでは1冊だけ推薦することにします。『 Probabilistic Graphical Models: Principles and Techniques 』は古典であり偉大なる金字塔です。機械学習の研究者ならば誰もが手元に置くべき1冊と言えます。確率的グラフィカルモデルは機械学習の分野に広く浸透しています。この内容をしっかり理解すれば、さほどの苦痛を感じずにほとんどの機械学習の専門領域に飛び込んでいけるでしょう。
期待される成果
新しい問題について確率モデルを構築する能力が身に着きます。妥当な推論技術を決定したり、採用した方法論を評価したりできるようになります。さらに、いかに様々なモデルが相互に関連しているかがよく理解できるようになります。例えば deep belief networks は 因子グラフと見なすことができます
必要な予備知識
- 既存の機械学習のアルゴリズムの知識
- 線形代数:固有値の求め方に関する知識
- 多変量およびベクトル解析の経験
- R、MATLAB、SciPyスタック、またはJuliaによる機械学習の実装経験
キーとなる章
1章から8章は、Bishop氏 の『パターン認識と機械学習』の2章および8章と同じような内容ですが、より深く掘り下げて書かれています。9章から13章はメインとなる内容です。部分観測値に関する19章はとても参考になります。14章と15章は自分の目標に応じて読んでください。
仕上げのプロジェクト
このレベルに到達すれば、自身の機械学習プロジェクトを明確にして研究を進められるはずです。もしかすると ビッグデータ の世界に飛び込んでいくかもしれませんね。
レベル4:達人
熟練者の域に達した方であれば、新たなステージのどんな機械学習の専門分野へ進むにせよ、揺るぎない知識を身に着けたと言えます。例えば、新たな ディープラーニング のアプリケーションやキャラクタリゼーションに関心はありませんか。そんなあなた、Metacademyのコントリビュータになってみませんか?
株式会社リクルート プロダクト統括本部 プロダクト開発統括室 グループマネジャー 株式会社ニジボックス デベロップメント室 室長 Node.js 日本ユーザーグループ代表
- Twitter: @yosuke_furukawa
- Github: yosuke-furukawa