機械学習に独学で挑む

非情報系理系大学生が独学で機械学習に挑みます

機械学習を独学するならCouseraの機械学習のコースを取るべき

受けてみた感想

 まず結論からいうと,とても良かったです。コースを通して間違いなく成長できましたし,元々知っていた知識も,より定着しました。また,無料で利用できるのも素晴らしいですね。

 機械学習の学習コンテンツとしては,

  • わかりやすさ      ★★★★☆
  • 数式の少なさ      ★☆☆☆☆
  • プログラミングの簡単さ ★★★★☆

です。

 完了するのに30時間程度かかりました。

 

内容の評価

分かりやすさ ★★★★☆

 このコースで教えてくれるのはスタンフォード大学の教授のAndrewなのですが,とにかく分かりやすいです。新しいテーマを学ぶ際にはまずその技術が何に使われているのか,そしてその理論の説明の後に具体的に数値などを使って見せてくれます。今やっていることが,何のためにやっているのか,何をやっているのか分からなくなる,といったことは全くありません。

 次の項ともつながるのですが,特に数式が出てきた際には苦手な人のことも考慮してゆっくり簡単なことから説明してくれるので数式で苦しむこともほとんどありませんでした。

 

数式の少なさ ★☆☆☆☆

 数式は非常に多いです。半分以上の授業で数式が出てきます。数学アレルギーの人にはお勧めできません。ただ,それだけ数式が出てくるということは数学的な理解が不可欠であることの裏返しですし,なによりAndrewの説明は非常に分かりやすく,それほど難しい知識は必要ないので,アレルギーでなければそれほど身構える必要はありません。

 このコースで高校数学以外で必要だったのは

  • 行列(行列同士の掛け算がわかれば十分)
  • 微分偏微分がわかれば十分)

くらいです。マセマなどのとても簡単な参考書や,場合によってはインターネット上で調べたくらいの知識でも十分です。

 私はネット上の「機械学習をやるには数学をきちんと学んでからだ」という言説を真に受けてしまい,がっちり勉強してから機械学習の勉強を始めました。数学を学ぶのは必要だと思いますし,やって良かったと思っていますが,個人的には数学はそこそこにして早く機械学習の勉強を始めていれば良かったと思っています。

 

プログラミングの簡単さ ★★★★☆

 このコースにはウェブで完結するプログラミング課題があります。しかし,丁寧な指示書もありますし,難易度は低いです。その割にこの課題に取り組むと理解がかなり深まるので非常に良い設計でした。

 実はこの課題はPythonC++などの言語ではなくOctave(またはMATLAB)で書かなければなりません。しかし,Octaveは非常に簡単な言語であることに加えて,授業内で使い方のレクチャーもあるので,他の言語を少し触ったことがある人にとっては全く問題ありません。私もはじめは心理的ハードルが大きかったのですが,始めてみれば何ということはありませんでした。

 

その他の特徴

授業が英語

 Andrewはアメリカのスタンフォード大学の教授なので,授業は英語で行われます。しかし,日本語でしっかり字幕があるので理解には困りませんでした。翻訳もかなり自然で驚きました。

 気をつけなければならないのはテストやプログラミングの課題は全て英語ということです。もちろん難しい英単語などはほぼ無いのですが,それなりにストレスでした。英語ができない方にはお勧めできません。

 

授業はオンラインでの動画視聴

 普通,機械学習を独学するとなると書籍を買って読んだりコードを書いたりするのが一般的だと思いますが,Courseraなら動画を視聴するだけで学べるのはとても助かりました。その動画もダウンロードできるので,移動中なども学べました。あとは机に向かわずに寝そべりながら学べるのは心理的ハードルを大きく下げてくれました。

 

結論

 初めに書いた通りですが,とてもお勧めです。上のお勧めできない条件

  • 数学アレルギー
  • 英語にかなりストレスを感じる

に該当しないのであれば是非取り組んでみてください。機械学習の理解は間違い無く深まりますし,終わることにはAndrewが大好きになっていることでしょう(笑)

 私は次のステップとして『ゼロから作るDeep Learning』に取り組んでいます。おわりしだいまたブログにしたいと思います。

 『ゼロから作るDeep Learning』読み終わりました! 

machine-learning-bymyself.hatenablog.com