読者です 読者をやめる 読者になる 読者になる

チラシの裏の設計書

プログラム開発、データ分析からロボット作りまでものづくり全般を思うがままに書き連ねたブログ。

Coursera Machine Learning 2週目を終えて

自分用メモ書きです。引き続きMLコースを頑張っています。

当初は半分ぐらいまで進んだら日記を書こうと思っていたのですが、思った以上に濃い内容だったため自分の復習がてら内容と感想をできるだけ1週ごとに書いていこうかなと思います。

www.coursera.org

まず、2週目の率直な感想は「あ、これ大学の授業だ」でした。

もちろん無料の動画とはいえ、有名な大学教授の方がしっかりカリキュラムを組んでいるので当然といえば当然です。ただ、「手とり足とり教えてくれるセミナー」ではなく、「勉強してくること前提」「授業では60%しかわからなくても、資料あげるから40%は自分で埋めてこい」というぐらいのノリな印象です。いろいろと学生の頃の記憶がフラッシュバックしました。ほんとに。

 

ということで内容ですが、2週目は1週目に続いて重回帰の話です。

ただし、よくある「回帰ってこういう分布になんとなく線ひくんだよー」というような説明ではなく、大学の講義らしくしっかりと理論立てて説明してくれるので非常に勉強になります。

数値解析的な解き方(行列計算)と最適化的な解き方(最急降下法)を実際に数式やOctaveを使って解説してくれます。特に(機械学習コースなので)最急降下法を中心に学んでいくわけですが、コスト関数のグラフ化を見ながらどういう風にパラメータが最適化されていくのかというのを見てみたり、学習係数の大小による違いを見たりと、重回帰の中身の原理をしっかりと理解できる内容となっている印象です。

 

~~

あと個人的に納得したのが多変数で回帰するときに、各変数のスケールが違いすぎる場合(変数Aは-5~+5、変数Bは0~1000みたいな場合)収束が著しく遅くなるということと、その場合にスケールが大体合うように標準化するのがよいということでした。

これは以前自分でパーセプトロンを組んだ時になんとなく感覚ではわかっていたことですがしっかりと現象と対策を理解できました。

~~

 

そしてOctaveの基礎的な使い方をレクチャーされたあと課題となりました。

(と、ここで「基礎的な使い方をレクチャー」とは書いたものの、これも覚えきれないぐらいの機能をレクチャーされたわけですが。。。)

課題は最急降下法で回帰をするプログラムの作成(穴埋め)です。

記述量自体は少ないですが、コスト関数や更新式周りをきちんと理解しないとできない内容です。

 

まだ序盤だと思って舐めていたら結構苦労しました。

特に自分の場合、つい先日ハトでもわかる単純パーセプトロン - チラシの裏の設計書というような内容がかなり近いものを勉強していて、Octaveも昔使ったことがあるというアドバンテージがあるにも関わらず課題でミス連発したりとなかなかボロボロでした。

2週目でこれって大丈夫かなぁと思いながらさぁ3週目いってみようー。

 

ということで、もしこの講義を受けようかと思って情報を探している方、

わりと気合を入れる必要がありますが、間違いなく「機械学習の基礎」が身に付きます。「機械学習のなんとなくのイメージ」ではなく学問としての基礎が身につく非常にいい講義ですので頑張ってみましょう。