【本レビュー.2】ゼロから作るDeepLearning
今回の本は私の初めてのオライリーです!今学期はプログラミングの授業がなかったので、プログラミングを忘れないためにも前々から興味のあったDeepLearningを勉強することにしました。この本はDeepLearningをライブラリを使わずに(NumpyとMatplotlib以外)ゼロから作って本質的な理解をしようという趣旨の本です。ライブラリを使えても中身がわかっていなきゃ意味がないと思い、この本にチャレンジしてみることにしました。
1章
一章はPythonとNumpy、Matplotlibの基本的な使い方についてで、1年の時に情報の授業で使ったことがあったので復習みたいな感じでした。Pythonが初めての人でも大丈夫なようにしているみたいです。
2章
2章はパーセプトロンについて。これも情報の授業で読んだことがありました。でもやはりこのような単純な回路の積み重ねがコンピュータを形作っていると思うと驚きますね。この本の筆者が翻訳した、そのような内容の本が出ているみたいなのでいつか読みたいと思います。
3章
3章はニューラルネットワークの基本についてです。とてもわかりやすい説明で引っかかるところはなかったです。この章からMNISTデータセットを使って認識を始めるのでテンションが上がります。この章では行列が出てきますが、文系の方や行列がまだの理系の方でも十分理解できる範囲なので心配する必要はないです。
4章
4章はどのようにして学習するかという内容でした。損失関数の導入は自然でしたが、勾配法は欠陥があるなという印象を持ちました。後の章で勾配法を他のより洗練された方法で置き換えていたので、DeepLearningの歴史の文脈の中で一応紹介したという感じなのでしょうか。
5章
5章は誤差逆伝播法についてです。名前は難しそうですが、実際はシンプルな発想です。ただ、この章は5.6.2や5.7.3がよく理解できずに終わってしまいました。また、加算ノードや乗算ノードの逆伝播をテクニックのように紹介していましたが、ただの微分じゃんと思ってしまいました。
6章
6章は機械学習のテクニックについてです。具体的にはパラメータの更新の手法や重みの初期値、Batch Normalization、過学習の抑制など実務的な内容です。この辺はまだまだ研究が行われているようで、大変興味深かったです。
7章
7章は畳み込みニューラルネットワークについてです。この名前は耳にしたことがあったのですが、最近はこの手法がよく使われているようです。基本的な構造は普通のニューラルネットワークと同じなのですが、ConvolutionレイヤとPoolingレイヤが新たに追加されることによって大幅に性能が改善されます。図を使って丁寧に説明されているのでとても分かり易かったです。
8章
8章はDeepLearningの課題や将来の可能性についてです。この章は具体的な理論というよりは全体の概観をしていて、DeepLearningの処理がGPUを使うと早くなるというのはとても面白いなと思いました。
まとめ
初めて読むDeepLearnigの本としては誰にでもお勧めできます。また、この本には自然言語処理にフォーカスした続編もあるようなのでAmazonですぐ注文しちゃいました。2冊ともリンクを置いときます。
この記事が気に入ったらサポートをしてみませんか?