学生の頃から興味を持っていた機械学習をMOOCを使って勉強してみました。
結論から言うと、どれも質の良い講座ばかりで、受講してよかったと感じました!
この記事では、自分が受けた講座とその感想をつらつら書いていきたいと思います。
MOOCで授業受けようか悩んでいる人の参考になれば幸いです!
機械学習を勉強しようと思ったきっかけ
理由はシンプルに、面白そうだからです。
もともと、学生の頃から統計学が好きで、機械学習にも興味がありましたが、就職して以降なかなか勉強時間を作る余裕ができませんでしたし、どうやって勉強すればいいかもよくわかっていませんでした。
しかしある日、MOOCなるものがあることを知り、その最大手であるCourseraにアクセスしてみました。
すると、機械学習の講座が山ほどあるわ、その講座をGoogleやIBMといった一流企業だったり、スタンフォード大学やペンシルベニア大学といった聞いたことのある海外有名大学だったりが提供しているので、これは使わない手はないと思い、ちょうど業務に余裕ができてきたこともあり、勉強してみようと思いました。
受講した講座
Courseraの講座をいくつか受講しました。
受講した講座は以下の通りです。
・How Google does Machine Learning
・Launching into Machine Learning
・Intro to TensorFlow
(「Google Cloud Training」が提供する講座)
・Mathmatics for Machine Learning:Linear Algebra
・Mathematics for Machine Learning: Multivariate Calculus(現在受講途中)
(「Imperial Colledge London」が提供する講座)
それぞれの講座の内容
Google提供の講座
How Google does Machine Learning
直訳すると「Googleが機械学習をどのように行っているのか」になります。
Google翻訳や、Googleフォト、GmailにYoutubeといった様々なコンテンツにGoogleは機械学習を使用していることを説明し、それらのどういった部分に機械学習が使われているのか、Googleの機械学習に対する考え方、将来予測、自然言語処理、画像認識といった機械学習の使われ方の違いなどが説明されていました。
若干Googleの宣伝っぽくもありましたが、機械学習の入り口としてとっつきやすい内容であったと感じました。
Launching into Machine Learning
日本語訳すると、「機械学習の始まり」といったところでしょうか
そのタイトルのとおり、いよいよ機械学習のお勉強が本格的に始まっていきます。
・機械学習にはどういった作業が必要で、どういったステップで進めていくのか。
・予測モデルをどのように評価して、どのように改善させていくのか
・機械学習が誕生した歴史的背景
・勾配降下法とは何か
といった内容が解説されていました。
個人的に最も知りたいと思っていた部分がここだったように感じました。
こちらの講義では、要所要所で実際にソースコードを記述して、データ前処理であったり、モデルの評価をどのように行うのかを体験できます。
ボリュームはなかなかありますが、この講義を受ければ、機械学習について自分で調べるための基礎知識を身につけられるのではないかなと感じました。
Intro to TensorFlow
日本語訳すると、「TensorFlow入門」です。
ここでは、実際に機械学習をする上で使用されるツールの一つである TensorFlow の使い方を勉強できる講座になっています。
しかし、個人的には初心者が勉強するにはかなりハードな内容だったかなと感じています。
この講座は、「ある程度機械学習のプロセスを覚えてきて、自力である程度予測モデルを作れるレベルになった人が、TensorFlowを使ってより効率的に、より精度の高いモデルを作ろう!」とか、「いま現場でTensorFlowを使っているけど、より深く使い方を理解したい」という目的に合致しているような気がするので、機械学習の基礎をお勉強したばかりの人からすると、「何言ってんだろ???」とちんぷんかんぷんになってしまいました。
もう少しKaggleなどで予測モデル作成の経験を積んでから、この講義を再受講してみようと思います。
Imperial Colledge London提供の講座
Mathmatics for Machine Learning:Linear Algebra
日本語訳すると、「機械学習のための数学:線形代数」です。
文系出身だった私は、線形代数というものを理系の友達から聞くだけで、その内容を全くもって理解していませんでした。
そのため、「線形代数自体がどんなものか」を知りたかったというのと、「機械学習に使える知識なのか」と思い受講してみましたが、非常にわかりやすい内容で、とても面白かったです。
高校生の頃、ベクトルの計算や行列演算が非常に苦手で、少しアレルギーのようなものがあったのですが、話のテンポもちょうどよかったですし、身近な内容で例え話をしてくれたり、パンダが出てきたりと、講義の話の内容も面白い工夫がなされていて、飽きることなく講義を最後まで受けることができました^^
日本の大学の教授も、こんなふうに授業の工夫をしてくれたらいいのになと感じました。
Mathematics for Machine Learning: Multivariate Calculus
日本語訳すると、「機械学習のための数学:多変量解析」です。
まだ序盤の講義しか受けれていないですが、微分を使う内容になっています。
この講義を受けてみてわかったのは、機械学習で使われていた勾配降下法がどういった理論に裏付けられているのかといったことです。
こちらは、前回受けた線形代数と密に関連する内容になっているので、線形代数については、前の講座でしっかりと学んでおく必要があります。
Courseraでは、一度講義期間が終わっても、サブスクリプション期間内であれば、過去に受けた講座の動画も見放題なので、わからなくなった場合は過去の講座を見返して復習しましょう。(自戒も込めて)
各種講義を受けた感想
最初の講座を受け始めてから3ヶ月ほど経ち、計5つの講座を受けてきました。
どの講座も質の良いものばかりで、MOOCの素晴らしさを実感することができました。
知識のインプットの場としてはこれ以上ない場だと思いますので、今後も面白そうな講義があったら受講してみたいと思います!
ただし、インプットばかりに偏らないよう、アウトプットも定期的に実践しようと思います!