ワタタツの日記
2016 年 5 月 1 日 (日)
☆ 機械学習 第10週
Swiftと機械学習とDockerと関数型プログラミングおうちでもくもく会(number: 5, theme: "大型連学") - 如法会 が開催されました。
やったこと (やった作業内容、作ったものなど)
今週もCoursera の Ng 先生の機械学習の授業を進めました。もうこのコースも第10週です。だいぶ全体がわかるようになりました。
今週は、Large Scale Machine Learning ということで、以下に巨大なデータセットに対して効率よく学習を行うかというものでした。
わかったこと
データが巨大だと、1回の降下法のiterationをするために全パラメタ方向に微分するだけでめちゃんこ時間がかかってしまうので、そこをはしょる、確率的最急降下法 Stochastic gradient descent が紹介されました。そのあいのことして Mini-batch gradient descent もよくやるということでありました。
batch (全体の偏微分を使う) の gradient descent に比べて注意すべきところは、必ずしも「下がっていかない」こと。ぎざぎざだが、全体として下がっていくというような loss の減り方をします。とにかくプロットしてみることが大事です。プロットするときも1000回の iteration ごとに1回プロットなどをやってみるとか、学習率を途中でだんだん変えてみるなど、大規模ならではの技が色々紹介されました。学習率の調整もここでも大事なようです。
他には map reduce を使う方法もわかりました。ごく簡単なアイディアですが、大規模データのときには特にクリティカルになってきそうです。
また、online learning というのも紹介されました。どんどん新しい標本が来るたびに学習して、パラメタをその都度調整するというものです。やりたいと思っている、Twitterのツイート解析などに役立ちそうだと思いました。
ちょっと残念
プログラミングエクササイズがなかったことがちょっと残念でした。小テストはありました。
次にしたいこと
次はいよいよファイナルウィークです。最後まで気を抜かずに頑張りたいです。