(2019/09/06 更新)

Courseraというオンライン学習サービスで、機械学習を独学で学んでいました。だいたい2ヶ月半くらいかけて、1つのコースを終えることができました。今回は、このコースで学んだことを思い出しながら、どう大変だったか、難しい課題はどうやって克服したかなどを紹介します。

私が学んだコースは、こちら。 https://www.coursera.org/learn/machine-learning Andrew Ngさんのコースです。機械学習の基礎的なアルゴリズムを学び、実際に手を動かして実装もやって、課題を提出します。すべてオンラインで完結するので、自宅でも会社でも、インターネット環境があれば受講できます。


講義は英語、日本語字幕も、あったりなかったり……

講義は、英語で進みます。スライド資料も英語です。ちょっとつらいですが、実はこれが良かったりします。 たとえば、アルファベット数文字の略語になっているアルゴリズムのもとの用語がわかったり、数式で出てくるアルファベットが、何を意味するか、もとの英単語でわかったりするからです。 この講義を受けてから、日本語の機械学習関連の書籍を読むと、めちゃくちゃ理解が早くなります。

ちなみに3週目を終えたときの感想

3週目までで、機械学習の基礎的な部分は学べます。 下は、線形回帰とロジスティック回帰の2つの講義を受け終えたときの感想です。

  • 内容はわかりやすい
  • 動画の途中で確認問題が表示されるから、自分の理解をチェックしながら進められる
  • 動画は日本語の字幕があるから、安心して見られる
  • けど、動画によっては、日本語の表示がどんどん遅れていくものがある
  • 英語が読める人であれば、動画の字幕を英語にしたら問題ない
  • 英語のリスニングもできると、なお安心
  • CLIに慣れているとなお良い(Octave/MATLABを使った実装課題がある)

実装課題は、提出スクリプトを実行して提出する。課題はPDFで示され、日本語訳は無い。Google 翻訳があればある程度大丈夫。課題は難しく感じるけど、実際に手を動かすことの大切さを実感する。

その後の難しい課題への対処

5周目のニューラルネットワークや9週目のレコメンドシステムなどは、課題も難しかった記憶があります。その時、私はどうしたか。

実はGitHubに、課題の解答が、学習者それぞれの表現で書いたものが、上がっている可能性があります。 どうしても課題が難しくて誰かを頼りたいときに、サイトのサポートも間に合わないときなどには、GitHubを参考にするのもありかなと思います。 ちなみに、みっちり講義のスライドを理解できていれば(原理が理解できていれば)知識は身についています。おそらく課題でつまずくとしたら、実行環境のOctaveでどう表現したらいいかが問題だったりするので、他人の書き方を参考にするのはありだと思います。

すべての講義を終えて、仕事への還元

Coursera Machine Learningを受講する少し前から、仕事で機械学習システムを担当していました。予測の精度を上げていくことが課題だったのですが、予測の精度をどうやって計測するのか、上司をどう説得するのかといった困り事がありました。このコースを受講して、いくつか実際に仕事に生きたこともありました。 - 損失を視覚的に表現にすること - 学習に使用するパラメータをどう選びどう調整するか - 学習の進み具合と予測精度の動きから、つぎにとるアクションはなにかなど

とにかく、仕事に生かせることだらけでした。


まとめ

Courseraというオンライン学習サービスの「Machine Learning」というコースについて、すべての講義を受けてどうだったか、難しい課題にどう対処したかについてまとめました。これから機械学習を学びたいという人に、ちょっとでも参考になれば幸いです。