継続力

IT系サラリーマンが、書籍や講座から学んだこと、効果があった勉強方法を紹介します。

【Coursera】「Machine Learning(機械学習) サマリ」〜この授業を通じて得られるものを知りたい〜

長かったMachine Learning(機械学習)を完了することができたので、「授業全体を通じて学んだこと」、「どういう点がオススメなのか」を紹介したいと思います。

これから、Machine Learning(機械学習)を受講しようとしている方の背中を押せたら幸いです。

<過去の記事>

【Coursera】「Machine Learning(機械学習) Week 1」〜機械学習の種類を学びたい〜 - 継続力 
【Coursera】「Machine Learning(機械学習) Week 2」〜複雑なケースでの回帰分析を学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 3」〜分類の具体的なアルゴリズムを学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 4」〜ニューラルネットワークの概要を学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 5」〜ニューラルネットワークの実装方法を学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 6」〜機械学習アルゴリズムの評価方法を学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 7」〜サポートベクターマシン(SVM)を学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 8」〜教師なし学習を学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 9」〜レコメンデーションシステムを学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 10」〜ビッグデータを使った機械学習を学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 11」〜画像解析アルゴリズムを学びたい〜 - 継続力


講師

アンドリュー・エン(Andrew Ng)氏です。
人工知能研究の第一人者であり、Google Brainの共同設立者、 Baiduの元副社長兼チーフサイエンティスト、スタンフォード大学の教授という凄い経歴の持ち主です。 

ja.coursera.org


授業を通じて得られたこと

大きく分けて二つありました。

機械学習に対する理解度向上

これが、この授業を受ける主目的ですよね。
この授業で、

を理解することできました。

この授業を受けることで、機械学習を専門にしていない人の中では、自分はかなり詳しい方かな」と思えるぐらいのレベルにはなれます。
(アンドリュー・エン(Andrew Ng)氏曰く、この授業の受講者は、シリコンバレー機械学習を生業として大金を稼いでいるエンジニアよりも機械学習が詳しいレベルになれているようです)

世の中的には、DX(デジタルトランスフォーメーション)の流行で、より高度なIT技術が求められるようになってきているので、その勉強の手始めとして、この授業はオススメです。

なお、ディープラーニングの話題が出てこなかったのは残念でしたが、ディープラーニングについては別の専門授業が用意されているので、そっちを受けろって言うことなんでしょうね。

自己肯定感の向上

全11週もの授業をやりきったことで、自分の継続力にかなり自信を持つことができました。
また、英語で授業を受けたことで、「海外の大学に留学してもやっていけるかな」という自信を持つことができました。

機械学習自体の知識の向上以外にも、「自己肯定感の向上」のような副次的な効果もあるので、是非この授業の受講をおすすめします。

 

授業の所要時間と難易度

所要時間

所要時間の目安は54時間と記載されていますが、プログラミングに苦戦するともっと時間が掛かります。
私は70時間ほど掛かったと思います。

もう少し詳しく見ていくと、以下の特徴があります。

  • 全部で11週に分かれていて、第9週までは平均6時間程度、第10週目、11週目はそれぞれ1時間程度で終わります。
  • 各週、1回5問程度の確認テストがあり、80%以上正解しないと合格できません。
  • プログラミングの課題が8つほど有ります。
    各回の目安時間は3時間となっていますが、MATLAB/Octaveの操作になれていないと、もっと時間が掛かると思います。
    なお、「メニューのResources>Tutorials>Programming Txercise Tutorials」にプログラミングのヒントがあるので、活用することをおすすめします。
    (自分はこのヒントがあることに気づくのがだいぶ遅く、時間を無駄にしました。。。)

 

難易度

行列演算が多く登場するので、慣れていないと難しく感じると思います。
理系学生なら、大学1年生レベルの数学ができれば、十分理解できるレベルです。

ただ、他の人のブログを見てみると、高校生や文系の方もこの授業を履修しているので、理系じゃないとできないというレベルではないと思います。
一番大事なのは、全11週もあるので、根気かな。。。

 

授業の概要

Week1~Week7 機械学習の定義と教師あり学習

機械学習の定義
この授業で扱う機械学習は、教師あり学習と、教師なし学習
(この授業では扱いませんが、他に強化学習もあります)
 
インプットとアウトプットの関係性が分かっているデータを教師データという。
教師あり学習では、この教師データを使って、機械に学習させる。
教師あり学習は、回帰分析と分類に分けられる。
 
・ 回帰分析
教師データからインプットとアウトプットの関係性を学び、未知の条件における結果を予測する。
 
例)
不動産の土地の広さと価格の関係性を学び、未知の条件(特定の土地の広さ)での価格を予測。
 
 回帰分析では、教師データにうまくフィットするような関数を導出する。
 この関数を導出するためのアルゴリズムには、最急降下法等がある。
 
・分類
教師データから、インプットデータのカテゴリ分けの傾向を学び、 新たなインプットデータがどのカテゴリに属するかを予測する。
 
例)スパムメールの振り分け。
 
分類問題は、ロジスティック関数で解く。
関数が異なるだけで、最適化の方法は回帰分析と基本的には同じ。
複雑な多項非線形回帰はニューラルネットワークを使って解く。
また、局所最適解に陥らない分類アルゴリズムSVMサポートベクターマシン)がある。
 

Week8~Week9 教師なし学習

教師データを使わずに、データの構造を明らかにする。
代表的な例は、クラスタリング(データを機能やカテゴリ等に分けて構造化)。
 
例)google ニュース。あらゆるニュースサイトから情報を収集し、分類ごとに整理して表示している。
                
教師なし学習アルゴリズムには、K-means法がある。
また、PCAによる次元削除により、データ圧縮やデータの視覚化ができる。
さらにエンジン等の異常検知アルゴリズム教師なし学習の1種。
 

Week10~Week11 実用的なテクニック

  • ビッグデータを扱う場合、全トレーニングデータを使うと学習に時間が掛かりすぎてしまうため、Stochastic gradient descent(確率的勾配降下法)やMini-batch gradient descentを使う。
  • 機械学習アプリケーションの性能改善を行う際は、天井分析により、最も改善効果が大きい箇所を特定して、性能改善に取り組んだほうが良い。


まとめ

機械学習について、こんなに体系的に良く纏まった授業が、実際に大学に行くのに比べ非常に安価(証明書が不要であれば無料)で受けられて、本当に凄いと思います。
機械学習」に対する漠然とした不安を払拭してくれる凄い授業です。

掛けた時間に見合った成果が得られる授業ですので、多くの方に是非受けて欲しいと思います。

ja.coursera.org