めも

メモ.

courseraの『Machine Learning』を修了した際のメモ

この記事は何

途中まで進めて5年くらい放置していた couseraの「Machine Learning」コースを修了するまでの学習メモです。

※規約上講義内容そのものや課題の解答は載せていないので、コースの具体的な内容は講義動画をみてください。

始めるきっかけ

courseraは2013年からあるサービスで、Andrew Ng先生の「Machine Learning」コースは当初から存在します。

実は、おそらく2015~2016年の間にこの講義の動画をほとんど見て、それからずっとcourseraにログインせず放置していました。 先日courseraログイン時に、「Machine Learning」がほとんど修了している状態で放置されていたことに気づいたので、せっかくだし修了して修了証をもらっておこう!ということで所々手付かずで放置されていた動画と課題に取り組みました。

これから始める方は、このコースに限らずAmazonやIBMが用意しているコースを受けてみるのもいいと思います。

ちなみに当初はcouseraではない別のページで以下の動画に近いものをみていました、ヘッダーが赤色のページ、黒板は緑色でチョークで板書していた記憶があります。

www.youtube.com

メモ

プログラミング課題の提出方法

基本的にはOctaveでコードを書き、同梱されている submit.m を実行して提出。Octave GUI経由の場合は submit.m を実行してから Command Windowに移動して、そこでメールアドレス とトークンを入力することで提出できます。

week1~week5

全ての講義を修了済にしていたためメモなし。 これ以降も一部のプログラミング課題をのぞいて修了済になっていたのですが、復習もかねて視聴。

week5: 誤差逆伝搬

Lecture5の課題は誤差逆伝搬と学習アルゴリズムをoctaveで実装するというもの、おそらく冒頭では一番面倒な課題。ただ、課題の内容よりもMacでのOctaveGUIの不安定さの方に悩まされる...。講義の内容を忘れたとしても課題ページの「Lecture9.pdf」がわかりやすく書かれておりすぐに内容を思い出せました。

ランダムな数値で行列を作成する (rand) | まくまくOctaveノート

Random Number Generation (GNU Octave)

コードを書いた後、submit.m を実行し、メールアドレス とトークンを記入すると課題を送信できます。うまくいくと以下のような表示がコマンドラインに出力されます。

f:id:misos:20201101111022p:plain

week6: 正則化ありの線形回帰

Note that you should not regularize the θ0 term.

の点のみ注意する。

week7: SVM

SVMの動画の一部はoptionalの動画(見なくてもコースは修了にできる)。kernel II の講義のみ日本語字幕がありません。 課題のSVMの訓練が毎回数分かかるのでちょっと課題が面倒でした。

www.slideshare.net

speakerdeck.com

week8: 教師なし学習

参考文献:機械学習8 k-meansと主成分分析.pptx(https://ocw.tsukuba.ac.jp/wp/wp-content/uploads/2019/10/4f6d2776d2a7508acaaf90244b76afcb.pdf

www.slideshare.net

www.slideshare.net

  • 分散共分散行列 - Wikipedia
  • 半正定値行列
  • つまり逆行列が存在する
  • 特異値分解(講義ではアドバンスな内容として詳細には触れず、あくまで固有値を求めるための計算方法の一つとして紹介)
    • A = [USV], mxn = [(mxr), (rxr), (rxn))]
    • (Aの特異値の二乗) = [AATの固有値, ATAの固有値]
    • 特異値の数=その行列を表現するのに必要な uTvの数
    • U_reduce = (nxk), x = (nx1) → Ux = 次元削減したx
    • Sの対角線の意味については [Choosing the Number of Principal Components]の講義へ

[x, ix] = min ([1, 3, 0, 2, 0])
   ⇒  x = 0
       ix = 3

week9: 異常検知・推薦システム・Matrix Factorization

いろいろ詰め込まれた週です。

異常検知

www.slideshare.net

www.slideshare.net

推薦システム・Matrix Factorization

www.slideshare.net

www.slideshare.net

配列要素の和 - MATLAB sum - MathWorks 日本

課題自体は難しくないものの、係数のミスに気づかずに少し時間がかかりました。

week10: Large Scale Machine Learning

省略。

week11: Photo OCR

省略、Ceiling Analysis(パイプラインのどの箇所を改善すべきかの分析)の考えは常に頭の片隅に置いておきたいです。 最後の週のテストだけ急に計算問題...。最後のテストの後ろにある「Summary and Thank You」も印象的でした。

修了証

f:id:misos:20201103020556p:plain