本記事は、kaggle Advent Calendar 2018の17日目の記事です。
何を書くか直前まで悩んでいましたが、16日に参加したAIもくもく会の中で、
機械学習に興味はあるけど、どのような手順で、何から勉強していったら良いかわからない
という方が数名いたので、自分が今年の3月くらい〜今日に至るまで勉強してきた中から
今の自分ならこのような手順で勉強することをオススメする!という記事を書いてみようと思います。
※自分の勉強した教材の中からのオススメになるので、偏った内容になることをご了承ください。
※これもオススメ!というものがありましたら、ぜひ教えていただけると嬉しいです。
タイトルにあるメダルより大切なものについては最後に記載しております。
対象読者
以下の読者を想定して記事を作成しています。
- 機械学習に興味はあるんだけれども、何から勉強して良いか分からないor悩んでいる人
- kaggleでタイタニックやって満足して終わってしまった人
- カーネルFork→submit(ッターーーーン)で終わってしまっている人
2018年3月時点の筆者スペック
- 年齢:20代後半
- 職業:SIer
- スキル:
- 資格:
- 基本情報
- 応用情報
- データベーススペシャリスト
大学は工学部の情報学科でしたが、機械学習の木の字も知らない学生でした。
pythonを勉強し始めたのも2018年3月からです。
kaggle初心者というどころか、機械学習初心者でした。
2018年3月〜今日に至るまで勉強したこと羅列
カテゴリに分けて羅列します。
(現在進行形で勉強している教材も載せています)
書籍
ネットで検索して、いわゆる良書であろう本を買って勉強したつもりです。
やさしく学ぶ 機械学習を理解するための数学のきほん
book.mynavi.jp[第2版]Python 機械学習プログラミング
book.impress.co.jpPython ではじめる機械学習
www.oreilly.co.jpゼロから作るDeep Learning2
www.oreilly.co.jp機械学習のエッセンス
www.kinokuniya.co.jp
動画
動画はudemyとcourseraを利用しました。
udemyは頻繁に割引セール(1万円の講座が1300円とかになる)をやっているので、そのときにまとめての購入をオススメします。
ここで紹介しているcourseraの動画は英語音声で、日本語は字幕のみです。(この字幕もgoogle翻訳した日本語ぐらいの精度です) 機械学習も英語も勉強できてお得という人もいますが、機械学習だけでもそんなに優しい内容ではないのに、 それを英語で説明されたときに挫折しない程の英語力もしくは鋼の心が必要だと思いますので、初心者の方にはudemyをオススメします。
もちろん、ここで紹介しているcourseraの動画はとてもわかりやすく、機械学習を一通り学んだ後に見るとより理解が深まるかと思います。
udemy
【画像判定AI自作にチャレンジ!】TensorFlow・Keras・Python・Flask で作る機械学習アプリ開発入門
【画像判定AI自作にチャレンジ!】TensorFlow・Keras・Python・Flaskで作る機械学習アプリ開発入門 | Udemy【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 初級編 -
https://www.udemy.com/kikagaku_blackbox_1/【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 中級編 -
https://www.udemy.com/kikagaku_blackbox_2/【ゼロから始めるデータ分析】 ビジネスケースで学ぶPython データサイエンス入門
https://www.udemy.com/optworks_1/【キカガク流】現場で使えるChainer によるディープラーニング入門
https://www.udemy.com/kikagaku-chainer/
coursera
- Machine Learning
www.coursera.org
kaggle
kaggleではチュートリアル含め下記データセットで学びました。
Titanic: Machine Learning from Disaster
Titanic: Machine Learning from Disaster | KaggleRecruit Restaurant Visitor Forecasting
Recruit Restaurant Visitor Forecasting | KaggleMercari Price Suggestion Challenge
Mercari Price Suggestion Challenge | KaggleKaggler-ja In-class Competition 1
Kaggler-ja In-class Competition 1PUBG Finish Placement Prediction
PUBG Finish Placement Prediction (Kernels Only) | KaggleQuora Insincere Questions Classification
Quora Insincere Questions Classification | Kaggle
その他
- 東京大学グローバル消費インテリジェンス寄付講座の第三期社会人向けデータサイエンスコース gci.t.u-tokyo.ac.jp
初学者に伝えたいオレオレ勉強ルート
ここが本題です。
先に掲載した中から、どの順番でどの教材を用いれば良さそうか、私なりの勉強ルートをお伝えできればと思います。
STAGE1:機械学習の土台作り
まずは機械学習の基礎の数学を学ぶことで、今後様々なモデルを学ぶときに、理解しやすくなります。
そこで、下記書籍と動画をオススメします。
やさしく学ぶ 機械学習を理解するための数学のきほん
book.mynavi.jp【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 初級編 -
https://www.udemy.com/kikagaku_blackbox_1/【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 中級編 -
https://www.udemy.com/kikagaku_blackbox_2/
STAGE2:ライブラリの使い方や一般的なモデルを理解する
土台づくりが終了したら、pythonを用いながら機械学習に触れていきます。
ここでは、基本的なモデルから各種ライブラリの使い方を体系的に学ぶことを意識し、かつ、実際のkaggleデータセット等を用いて仮説検証することで、ある程度実力がつくと思います。
まずは、
- [第2版]Python 機械学習プログラミング
book.impress.co.jp
こちらの書籍で機械学習を体系的に学び、下記kaggleのデータセットで実際に予測モデルを作成してみるのが良いと思います。
Titanic: Machine Learning from Disaster(分類問題)
Titanic: Machine Learning from Disaster | KaggleMercari Price Suggestion Challenge(回帰問題)
Mercari Price Suggestion Challenge | Kaggle
STAGE3:深層学習を学ぶ
ある程度機械学習に慣れてきた頃に、深層学習というワードに興味を持つようになると思います。
(実際にSTAGE2で挙げた書籍でもディープラーニングの話が載っています)
そこでオススメしたいのが下記書籍です。
ゼロから作るDeep Learning2
www.oreilly.co.jp
このシリーズは、ライブラリに極力頼らずに、ゼロからニューラルネットワークを構築してみる、という内容で、図解も多く大変わかりやすいです。
初版無印(画像処理編)が大変人気で、続編である2部(自然言語処理編)が発売されました。
まずは、初版無印(画像処理編)の方でCNN等を学び、下記データセットなどで学んだ技術を試してみるのが良いと思います。
- Kaggler-ja In-class Competition 1
Kaggler-ja In-class Competition 1
そのあと、2部(自然言語処理編)でRNN等を学び、下記データセットなどで学んだ技術を試してみるのが良いと思います。(こちらは私自身現在進行形で取り組んでいます)
- Quora Insincere Questions Classification
Quora Insincere Questions Classification | Kaggle
ここで紹介しているデータセットは、あくまで自分がチャレンジしたことのあるものを挙げているだけなので、 kaggleなどでいろいろ探してみて、自分のやりたいデータで取り組むのがモチベーション維持にも繋がると思います。
STAGE4:やりたい分野に特化して学習する
これ以降は、自分のやりたい分野に特化して取り組むのが良いのではないでしょうか。(自分もそうしていく予定です)
今までも紹介してきましたが、kaggleには様々なデータセットが転がっており、その中でもコンペが開催されたデータセットであれば、世界中の強いデータサイエンティストの人がさいつよカーネルを公開してくれているので、それを眺めて実行するだけでも多くの知見が得られると思います。
勉強のモチベーション維持方法
勉強していく上で、モチベーションを維持することはとても重要だと思います。
そこで、いくつか自分が実践していたモチベーション維持方法をお伝えします。
kaggleに毒されている積極的に取り組んでいる方が大勢います。
そういった方々をフォローしておくだけでも、モチベーションは無限大になるかと。
本記事もそうですが、kaggle Advent Calendar 2018に投稿している方々はフォローしておくことをオススメします。
私もフォローお待ちしております。
twitter.com
ブログ
アウトプットは正義です。
ブログの開設が面倒臭いという方にはQiitaをオススメします。
いいねが付きやすいですし、多くの人の目に触れる確率が高いです。
ここではアウトプットすることのメリットについての言及は控えますが、記事を書いて誰かから反応が貰えると、とてもモチベーションになります。
kaggle-ja slack
kaggleをやっている日本人が日々意見を交換し合うコミュニティがあります。
ここへ参加しているだけで、様々な知見が流れてきます。
yutori-datascience.hatenablog.com
勉強会
自分はconnpassやTECH PLAYから気になる勉強会やイベントに参加して、いろんな人から刺激を受けることでモチベーションの維持も行うことができました。 (住んでいる場所的に新宿、渋谷界隈が多め)
【フリースタイル】もくもく会
freestyle-mokumoku.connpass.comTeam AI
teamai.connpass.comShinjuku Mokumoku Programming
shinjuku-moku.connpass.com全人類がわかる統計学
techplay.jp
最後に
以上、少し長文となりましたが、本記事が機械学習初心者にとって有意義な記事となってくれれば幸いです。
そして本当の最後に。
タイトルにも書いているメダルより大切なものですが・・・
それは
内定です。
これはこれで別記事として書こうと思いますが、2019年3月よりMLエンジニアとして仕事をさせて頂くことになりました!
本当に楽しみで仕方ありません。
これまで転職活動に使っていたエネルギーを、スキルアップの方に惜しみなく使っていきたい所存です。