@uents blog

Code wins arguments.

CourseraのMachine Learningコースを修了した

SICPを読み終えてからやると決めていた機械学習の勉強について、 まずはAndrew Ng先生のCoursera Machine Learningのコースを修了しました。 コースの途中、Pokemon GOにハマって危なかったけれど何とかクリア!

www.coursera.org

コースの内容

全11週に渡って講義と課題がみっちりとあります。 僕の場合、2016年5月末から受講して8月15日に修了しました。

最終的なデッドラインはジャスト12週で設定されているので、 うまく時間を取って課題をこなさないと修了できないようになっています。

コンテンツ

  • Lecture Videos and Texts
  • Quiz & Programming Assignments
    • 課題が週ごとに1〜3つ出る
    • Quizはチェックシート形式。5問中4問正解でパス
    • ProgrammingはOctave/MATLABで実装。 基本的にはアルゴリズム部分の穴埋め問題。80%正解でパス
  • Course Wiki
    • 週ごとに要点がまとめてある。Octave Tutorialが便利
  • Discussion Forums
    • 質問するとMentorがフォローしてくれるみたい
    • 個人的にはOctaveのコードが動かない時にちょっと覗いたくらいであまり使わなかった

講義のビデオは日本語の字幕が付いているけど、 課題は英語オンリーなので、ビデオの内容はしっかりとノートにとりました。 (でないと課題の英語解読で相当辛くなる..)

それとCourseraのスマートフォンアプリがあって、 講義ビデオはアプリ内にダウンロードできるので、 通勤電車の中でビデオを消化して、 課題は週末に取り組むといったルーチンで進めました。

主な内容

前述の通り全11週に渡って行うだけあってボリュームたっぷりです。

初学者向けのコースのため古典的な手法が多いですが、 機械学習の基礎的な考え方がじっくり学べてとてもよかったと思います。

  • Introduction (week 1)
    • Supervised/Unsupervised LearningやRegression/Classificationの違いなど
  • Linear Algebra Review (week 1)
  • Linear Regression (week 1-2)
    • 1週目はー変量、2週目は多変量の線形回帰。勾配法と正規方程式について
  • Octave/MATLAB Tutorial (week 2)
  • Logistic Regression (week 3)
    • ロジスティック回帰による分類問題について
  • Neural Networks (week 4-5)
  • Evaluating a Learning Algorithm, Bias vs. Variance (week 6)
    • 学習アルゴリズムの評価やバイアス-バリアンス検定など。個人的にはいちばん勉強になった週
  • Support Vector Machines (week 7)
  • K-Means (week 8)
    • 教師なし学習の例としてK-Meansによる分類問題
  • Principal Component Analysis (week 8)
    • 特徴量の次元圧縮・復元やvisualizationへの応用
  • Anomaly Detection (week 9)
    • 一変量および多変量正規分布による異常検定
  • Collaborative Filtering (week 9)
  • Large Scale Machine Learning (week 10)
    • 確率的勾配法やオンライン学習、Map-Reduce的な分散システムについて
  • Photo OCR (week 11)
    • 画像中の文字認識を例に、 機械学習システムのパイプライン構築やリソース配分の考え方について

具体的な内容は以下が詳しいです。

qiita.com

修了証

image

$79でCourseraからデジタルのCertificateが発行されます。

少々値が張りますが、コースの内容がとてもよかったので Andrew先生やCourseraへの感謝の意味も込めて購入しました。
($79で書籍を買ってもこの内容を勉強しようと思ったら11週じゃ絶対無理!)

Pythonでの復習レーン

コースは修了したものの急ピッチかつプログラミング課題も穴埋めだったため、 消化不良というかスクラッチ機械学習の実装できそうな感がないです。

そこでPythonを使った復習レーンを進めていますが、 これがとても楽しくてハマってます!Pythonすばらしすぎる!

https://github.com/uents/coursera-ml

こちらもおいおいブログでまとめて行きたいと思います。