コンペで挫折。Courseraで機械学習の基礎を学ぶ
はじめに
こんにちは。最近はリモート〇〇が流行っていますね~。世の中の変化をひしひしと感じております。
私も読書、勉強を始めました。
お題の通り、オンラインMOOCの中でも有名なCourseraで提供されている、機械学習(Machine Learning)コースを学んできました。今回はその報告になります。
「今持ってるスキルはもう役には立たない。いやそもそもスキルなんて持っていない。」そういった不安が先行した結果、何かしようともがいているのかもしれませんね。
不安が動機なら、今後の努力には繋がらないはず。"記事を書く"という試み自体が私にとっては実験なのです(語り口調)。
この学習を始めたきっかけ
テクノロジーへの興味から、機械学習を使えるようになりたいと考えるようになりました。
これまでのざっくりとした経緯は
- データ整理を自動化しようとする。pythonと出会う。
- 教科書を参考に簡単なプログラムを実装
- 出来たプログラムを何度もブラッシュアップ。機械学習にも触れたい
- Kaggleなる機械学習コンペを見つける
- データの前処理でつまづきまくる&学習モデル全然わからない…
- データの前処理を勉強する
- 機械学習を勉強する(現在)
といった具合です。
Qiitaなどで教材を探していると、まず挙がってくるのがオライリーの教科書。次にオンライン学習サイトです。最近はProgateのように、カジュアルにプログラミングを学べるサイトがあり、私も楽しく学ばせていただきました。
私が初めて機械学習を学んだサイトは、AI Academyでした。ここではいくつかのコースが無料公開されていました。ページのデザインがProgateと似ていて、とっつきやすかったです。
Kaggleという機械学習のコンペでは、機械学習エンジニアの先輩方が公開したコードを見て学習することができます。データの前処理と、機械学習系のライブラリに関する知識、読解力が必要になると思われます。そして本記事に至る…
Coursera で 機械学習(Machine Learning) を学ぶ
学べること
・行列の計算
・Matlab互換のOctaveというプログラミング言語を少々
・実装のコツ
本講座はスタンフォード大のアンドリュー・エン教授が講師を務めています。
約2か月半のカリキュラムとなっており、週あたり6時間ほど取り組めば終わる量です。
本講座は無料で公開されています。終了証が欲しい場合、有料で発行してもらえます。
全11章構成で、章ごとにプログラミングの課題が出ます。グラフを描画するコードがすでに書かれている状態で配布され、穴埋
め形式のように習ったアルゴリズムを書いていくだけなので、matlabを触ったことが無くても問題はありませんでした。
matlabは有料ですが、octaveというmatlab互換の言語が無料で使えます。動画内でも導入から丁寧に説明されるので心配はありません。
ひとつ欠点を挙げると、授業が英語であり、ある程度のリスニング力が求められることがあります。でも、大丈夫です!意識低い系大学生の英語レベルでも問題なく受講できます。
講義のスライドがとても分かりやすく、日本語字幕にも対応していますので^^
こんな人にオススメ
・機械学習の理論を学びたい
・アルゴリズムに興味がある
・プログラミング経験はあるが、スキルに乏しい
・まとまった時間を取るのが難しい
・お金はないけど学びたい
・自分の学校の授業がつまらなかった・ショボかった
感想
1つのビデオが8~14分と観やすかったです。しかし、眠い時は眠いです。
課題の難易度は丁度よく、動画をしっかり観ていれば難しいことはなかったです。ただし、プログラミングでよくハマる方はその分根気が必要かな、と思います。一度ハマったらムキにならずに、昼寝や気分転換することを強くお勧めします。
講義のレベルとしては、数Ⅲ・Cを学んだことのある方向けかな、と感じました。カリキュラム全体の難易度を見ると、4~6週目がピークに感じました。行列やアルゴリズムが複雑になってくるにつれ、octaveプログラミングのテクニックもある程度必要になってきます。私はこのあたりでスローダウンしました。学習目標は一旦無視して、自分のペースを貫いた方が精神衛生上よかったなあと反省しています。
私はハマった時にはよくディスカッションフォーラム(掲示板)を覗きに行きました。同じような所でハマっている同志を簡単に探すことができました。とても助かりました。
とりあえずは、pythonでの実装を学んでコンペ再チャレンジしようと思います!ありがとうございました!