ゼロから作るDeep LearningシリーズはGoogle Colaboratoryで写経して学習するのがおすすめ

f:id:karaage:20200523123857j:plain:w640

「ゼロから作るDeep Learningシリーズ」が最高

 ゼロから作るDeep Learningは、TensorFlow、Keras、PyTorchといったディープラーニングのフレームワークを一切使わず、基本PythonとNumpyのみでディープラーニングのアルゴリズムを作って理解していくというハードコアな内容です。

 シリーズは3冊出ていて、1が画像認識、2が自然言語、3がフレームワークに重点を置いた内容です。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

  • 作者:斎藤 康毅
  • 発売日: 2016/09/24
  • メディア: 単行本(ソフトカバー)

ゼロから作るDeep Learning ❸ ―フレームワーク編

ゼロから作るDeep Learning ❸ ―フレームワーク編

  • 作者:斎藤 康毅
  • 発売日: 2020/04/20
  • メディア: 単行本(ソフトカバー)

ゼロから作るDeep Learning ❷ ―自然言語処理編

ゼロから作るDeep Learning ❷ ―自然言語処理編

  • 作者:斎藤 康毅
  • 発売日: 2018/07/21
  • メディア: 単行本(ソフトカバー)

 カバー写真を見ると分かるように、私も全部購入しているのですが、なんといってもオススメは最新の「ゼロから作るDeep Learning 3」ですね。ディープラーニングのフレームワーク自体を0から作って理解しようという非常にチャレンジングな内容です。

f:id:karaage:20200523124028j:plain:w640

 ディープラーニングを勉強している人にとっては間違いなく必読本だと思います。明日すぐ役立つような内容ではないですが、AIブームが去っても使える知識が詰まった良本だと思います。Python自体の学習にもなると思います。

 特に一人で学習していると、なかなかピンとこない「なんでクラスとか使うの?」とか「特殊メソッドってなんのためにあるの?」ということが、フレームワークを作るという目的のために手を動かすことで、わりとすんなり自分の中に入ってくるのではないかなと思います。

「ゼロから作るDeep Learningシリーズ」のオススメ学習方は写経

 ゼロから作るDeep Learningシリーズですが、やはり自分で本のコードを自分で書いて(写経)、動かしてみるのが一番よいのではないのかなと思います。

 基本ほとんどライブラリを必要としないのでPythonさえ動けば環境は何でも良いのですが、個人的にはブラウザだけあればどこでも気軽に学習できる「Google Colaboratory(Google Colab)」に写経していくのがオススメです(Google Colabに関しての詳細は以下記事参照ください)。

 私は、Google ColabのNotebookに本に出てくるコードや数式、自分が重要と思うメモなどを残して学習しています。もちろん、完全に理解できているとは思いませんが、ただ読み飛ばすよりは理解が深まっているような実感はあります。

 ゼロからDeep Leraning 3を写経した私のGoogle ColabのNotebookは以下です。多少飛ばしたところもありますが、最後まで一通り写経しました。よろしければ参考にしたり、コメントしたりしてみてください。

zero-deep-learning-study-3.ipynb

 

まとめ

 ゼロから作るDeep Learningシリーズとそのオススメの学習方法(写経)に関して紹介してみました。

 写経はやってみると意外に動かなかったりするので、なかなか大変です(動かない原因は、ほとんどが自分自身のミスで、一部がGoogle Colab特有の問題です)。でも、そういった間違いやすい部分に、自分の理解が曖昧だったり、重要な知見が隠れていることが多い気がします。

 また、ゼロから作るDeep Learning 3で作成する独自のフレームワークのDeZeroは、PyTorchをベースとしているのでPyTorchに対する理解は深まると思います。PyTorchで「何でこんなことするんだろ?」というお作法、例えば学習と推論でmodel.trainとmodel.eval()で切り替えるところや、データセットの使い方なども本書を読んで自分で作ってみると理由が体感できます。

 写経しながらDeZeroというフレームワークを少しずつコツコツつくりあげていくのも、とてもワクワクする作業です。写経するだけでも大変なので、これを本当にゼロから作り上げた筆者の労力は想像するだけで本に向かって敬礼しそうになりますね。

 自分の経験上、自分で作ってみること以上に、時間がかかるけど理解が深まる学習方法はそうないと思います。みなさんも、この本に限らず、これはという技術書に関してはじっくり写経して学習してみると良いのではないかなと思います。

ゼロから作るDeep Learning ❷ ―自然言語処理編

ゼロから作るDeep Learning ❷ ―自然言語処理編

  • 作者:斎藤 康毅
  • 発売日: 2018/07/21
  • メディア: 単行本(ソフトカバー)

追記:買おうか迷っている人は、オンラインで1部公開されているので、こちらを読んでみるのがおすすめです。Google Colabで実行できるNotebookへのリンクもあります。

関連記事

変更履歴

  • 2020/05/27 オンラインブックに関して追記