前回の機械学習/ディープラーニング勉強としてやってきたこと -読んだ本編-の続きになります。
初めに(再掲)
2018年1月頃から機械学習/ディープラーニングの本を読み始め、6月頃からコードを書くようにしてきました。今振り返ると「これはいい本だった」「もっと先にこれをやればよかった」などの気付きがあるので、それを紹介します。kaggle初心者の私が3ヶ月でソロゴールドを獲得した方法のようにすぐに結果を出した!なんてことはなく、普通の社会人が休日だけ勉強した軌跡です。
対象読者(再掲)
これから機械学習/ディープラーニングを勉強しようという方
Pythonの基本
まずPythonを学ぶ必要がありましたので以下のサイトを使い勉強しました。無料枠だけでも基本的なことは十分勉強できたと思います。
-
CODEPREP
- 2018年9月末まで無料開放(その後閉鎖)とのことでしたが、無期限延長提供となった模様です
-
paiza
- paizaラーニングもやりましたが、それ以上にスキルチェックの問題をPythonで解きました。やはり課題があった方がやりがいも出ていいですね
-
numpy 100 exercises
- 全てではないですが、これにも取り組みました。Python(Numpy)ならではの書き方を学ぶのに役立ちました
ディープラーニング実践
- 社内の勉強会
- Deep Learning基礎講座を受講した方が主催して下さった勉強会に参加し課題を解きました。MLP、CNN、RNNなどを勉強しました。ただ、この頃はGPU環境がなく辛かった覚えがあります
-
Deep Learning基礎講座
- これを所属企業向けにして頂いたものを2018年8月より月に一度受講しています。ここでGPU環境が手に入りました!嬉しくなって社内勉強会の課題に早速使っていました(VGG16のファインチューニングにより精度が上がって喜んでたような・・・)。こちらでnumpy、Tensorflow、k近傍法、MLP、AutoEncoder、CNN、Data Augumentation、RNNなど色々と学ぶことができ非常に有益でした。特に毎回の課題に取り組む中での試行錯誤が理解に役立ったと感じます
実践環境
- ノートPC
- 古いLet's noteを使っています。CPU Core i5、メモリ4GB、GPUはありません。なので、本格的に学習させるのには使っていません
- Visual Studio 2017で開発しています。Jupyter Notebookは気軽に試せるよさはあるのですが、入力補完やデバッガーの機能が弱いので、できればVisual Studioを使って開発したい、でもノートPCにはGPUがないというジレンマを抱えています。ノートPCで開発、サーバーで学習をシームレスに実現できるといいのですが・・・
- サーバー
- iLect
- Deep Learning基礎講座で提供頂いている環境を利用しています。GPU使えます
- Google Colab
- 最近使い始めましたが、これはすごいです!GPUだけでなくTPUまで使えます、そして無償です(ただし、TPUを使いこなすのはハードルが高そう)。既に役立つブログが書かれているので、それを検索して頂ければすぐに使い始められると思います。後日、それらのまとめ記事を書く予定です
- iLect
してこなかったこと、まだしていないこと
- 動画
- 実はほぼ見たことがありません。線形代数の勉強に【大学数学】線形代数入門①(概観&ベクトル)【線形代数】を見たくらいです
- しかし、Udemyで学べる機械学習を全部見てみたんで、お勧め報告などにもありますが、Udemyはよさそうな感覚はあります
-
Aidemy
- 自分では実践しなかったのですが、有料プランを契約するならば有益そうです
-
Kaggle
- アカウントだけ作ったという段階です。今後取り組みたいと考えています
まとめ
もしも自分自身がこれからディープラーニング勉強するぞという立場になれば以下のようにします。
- まずはPythonの基本を学ぶためCODEPREPを受講します
- そしてお勧めの本を読み写経します
- Deep Learning基礎講座、もしくはDL4USへは絶対に応募します!当選できれば本当に大きいです
- もしも当選できなければ、別の手段で課題を設定し、それに取り組むのがいいように思います。自分自身で課題設定するのが難しければ、UdemyやAidemyを受講するのがいいのかもしれません
- 学習にはGoogle Colabを使います。ここで試行錯誤しながら学びます。試行錯誤にはデバッガーを使う必要があるので、JupyterまたはiPython Notebookでデバッグをする方法あたりを読んでおきます。GPUを必要としない課題であればVisual Studioを使います
以上です。みなさんのお役に立てれば嬉しいです。