mecobalamin’s diary

人間万事塞翁が馬

https://help.hatenablog.com/entry/developer-option

Coursera: Machine Learningその1

courseraでMachine Learningを受講中
www.coursera.org

courseraとはオンラインで講義を配信している団体だそうだ
コーセラ - Wikipedia

創設者の一人のAndrew Ngが講師をしている
Machine Learningの評判がよい
ググるといくつも紹介記事が出てくる
例えばこんな記事
数学の苦手なバイオの学生がCourseraの機械学習コースを修了して気づいたこと - Qiita
文系エンジニアがCourseraの機械学習コースを1ヶ月で修了したので振り返ってみました。 - Qiita

ちょっと内容が古いという評価をどこかで見たけど
初心者がとっかかりにするにはちょうどよいと思った

講義は動画で提供されている
当然Andrew先生は英語で喋っているが
有志が日本語字幕をつけてくれているので
どうにかついていける
Courseraの機械学習コース(スタンフォード大学提供)の課題を日本語訳してみました - Qiita
ちなみに字幕は日本語以外も選べて
英語で実際に何を喋っていたかを文字で確認できるのは便利

講義は動画を見て、5問程度のテストを受けて、プログラミングの課題の提出をする
これを11週続ける。結構大変。
1ヶ月程度で終わったって人もいるらしいが本当か?って思う。

プログラミングはOctaveを使用する
GNU Octave
MATLAB互換性のある言語で、Andrew先生オススメ
行列の扱いになれるのがポイントか

13 August 2020 追記

OctaveKindle
Kindle版は0円だったのでリンクを貼る
ペーパーバックは結構お高いのでクリックするとき注意

追記ここまで

受講は無料だけどお金払うと修了証を発行してもらえる
Coursera の機械学習コースを完走して修了証を取得した話 - yubessy.hatenablog.com
2019年8月時点で¥8,521の支払いになった
2020年2月までに講義を修了しなければならないらしい

今日までにweek5の課題提出まで終了した

プログラミング課題は数式をコードに直すだけなのでそんなに大変ではないが、
ところどころツボにハマって抜け出すのに苦労した
Resources -> Tutorialsから
Programming Exercise Tutorials (list)
のページを見れる
課題ごとに解説があるのでよく読む
ちなみにweek5のex4は
"This is the toughest exercise so far"
だってさ

Octaveの使用で気になったこと

  1. セミコロンを行末に入れると結果を表示しない
    1. a + b;
  2. 行列のサイズ確認にはsize関数を使う
    1. size(a);
  3. 転置行列にするにはダッシュをつける
    1. a'
  4. 要素同士の計算には演算子の前にピリオドを付ける
    1. a .* b
    2. 要素を自乗するにはa .^2と書く
  5. 行列の操作
    1. 1列目を除く
    2. b = a(:, 2:end);
    3. 1列目に1を加える
    4. a = [ones(size(a, 1), 1) a];

列を除く、加えるはforward propagationとback propagationで使った
もちろんほかでも使うけど

数式でsigmaが出てきたらfor文を使って計算しがちだけど
行列のまま計算すると計算時間が断然短くて済む

23 September 2019追記
コース修了
mecobalamin.hatenablog.com