CourseraのMachine Learningの受講を終えました。これから機械学習を始めたい方へのオススメと感想など
表題通りです。期間は10月中旬から11月下旬、だいたい40日くらいです。
講義は通常の予定ですと11Weekで修了なのですが、業後や休日に少し駆け足で進めました。
この講義ですが以下の方にオススメです。
・機械学習を初めから学んでみたい
・英語の資料(長文)が読める
・数学知識は高校卒業程度、大学の微分積分や線形代数・統計は良く分からない
この講義は機械学習全般について基礎的な所から学ぶ事が出来ます。他の教材に比べてより初学者に適していると思いました。
講義は全て英語です。もっとも、日本語の字幕が映像に付いているので問題なく理解する事が出来ます(細かい誤訳はあります)。ただし、提出を要求される確認テストとプログラミング課題の説明資料は全て英語です。精度向上の著しいGoogle翻訳に入力するとしても、誤訳を訂正する為の文法知識は必要だと思います。
講義では当然数式が出てきます。ですが、1つ1つの式についてしっかりとした説明をしてくれます。微分積分や線形代数についてよく知らないという方でも講義についていけるようになっています。逆に大学で線形代数と微分積分を学んだ方には、そうした説明が退屈に思えるかもしれません。そのような方にはより高度な教材の使用をオススメします。
プログラミングに関しては何らかの言語を少しでも使った経験があれば心配はありません。Octave/Matlabは他の言語に比べて学習コストが低いです。使ってみればすぐに慣れます。
具体的な講義の内容や「そもそもCourseraって何だよ」という点に関しては既に先達が記事を書かれていますので、そちらをご覧ください。
ざっくり纏めると学習した内容は以下になります。
・教師あり学習:回帰問題/分類問題(ロジスティック回帰、NN、SVM)
・教師なし学習:クラスタリング(K-means)/主成分分析/異常検知
・ビッグデータへの対応:確率的最急降下法/オンライン学習/Map-Reduce
・その他:未学習と過学習/交差検証/正規化/正則化/協調フィルタリング/天井分析
「講義内容に重要な手法が含まれていない」などの意見もありますが、個人的には講義の内容に満足しています。単に手法について学習するのではなく、「未学習や過学習」、「交差検証」などの基本的な考え方について学ぶ事が出来たのは貴重な体験でした。(他の本にも書いてありますが)
「テストデータを入れた結果を見て、ハイパーパラメータをチューニングする」がNGな理由などは重要だと思いました。
以下、動機や背景など個人的な話です。何かの参考になればどうぞ。
学習を始めた主な理由
・巷でAIと騒がれる物がどのようにして答えを導くのか単純に興味があった。
・趣味関係でフォローした方が機械学習をやっていて、仰っている事の意味を少しでも理解したいと思った。
・普段の業務が人とのコミュニケーションやエクセル/パワーポイントを主体としており、技術者志向(コミュ障理系修士卒)の自分には結構辛く、没頭できる逃避先を探していた。
学習前に持っていた知識
・数学:電磁気・電気電子回路を解く為の要素としてある程度理解。研究は太陽電池な為ほぼ忘れていた。
・プログラム:CとJava CはB2の頃数値解析のプログラムをゼロから作る課題を個人的に出されてた。弱い。
・英語:文章は何とか読める。音は呪文。話せない。
・統計:講義中は実験のレポート書いてた。研究では少しだけ使おうとした。(成果とは全く無関係)
分野に関する今後の学習予定など(仕事の合間に)
・Pythonのライブラリを使って色々試してみる。
・統計学を勉強する。統計検定2級は取得済みなのでまずは準1級を目標にしたい。
・前処理やデータの収集段階についても勉強したい。
ちらっとKaggleみてみましたが複数の機械学習の手法を組み合わせた複雑なモデル等があり、初めて飛行機を目の当たりにした時のような童心の驚きを感じました。今後も様々な分野の技術や専門性に対する敬意を大切にして参ります。
最後に
インターネットで検索すると初学者向けの教材が色々紹介されていて、何から始めようか迷うと思います。良い参考書や教科書を探すのは大事ですが、ある程度絞りを付けた後は、とにかくやってみるというのが重要なのだと良く言われます。私自身初心者ですし、人に説教できるほど偉くはありませんが、今後も「試しに何かをしてみる」という姿勢を大事にしていきたいと思います。