「ゼロから作るDeep Learning Pythonで学ぶディープラーニングの理論と実装」の内容の要約と感想を書きます。
読み終わったのは、1か月くらい前なのですが、当時、Pythonの知識は多少はあるものの、人工知能全般の知識ゼロでの挑戦でしたが、非常に読みやすかったです。内容について説明します。
まえがき:
対象となる読者や本のコンセプトなどです。内容に入る前にこういった情報を先に明示してくれると読みやすくなるので良かったです。
1章 Python入門:
Pythonのインストール、anaconda、Pythonの基本文法、Numpy、Matplotlibなどについての説明です。説明は軽くです。Python未経験者でも、この本に取り組めるようにするための説明です。一通り知っているので、軽く読んで、触ったこと無かった、matplotlibだけ、色々試しました。
2章 パーセプトロン:
パーセプトロンについての説明。重みをかけます、バイアス足します、って感じです。多層パーセプトロンでXORゲート実装しました。少しコードがでてきます。
3章 ニューラルネットワーク:
ニューラルネットワークの説明。パーセプトロンとニューラルネットワークの違いは活性化関数です。ステップ関数に対して、シグモイド関数などを使います。そうすれば、学習できます。最後、Pythonで畳み込みではないニューラルネットワークを実装して、学習済みデータもらって、MNIST試して、終わりです。
4章 ニューラルネットワークの学習:
学習方法の説明です。損失関数を減らしたいです。微分をします。多変数関数なので、勾配です。最後はコードを書いて、ニューラルネットワークの学習を実装します。
5章 誤差逆伝播法:
誤差逆伝播法の説明です。勾配を使って、損失関数を減らすのが目的です。4章よりもっと速くできる方法があります。誤差逆伝播法の出番です。計算ノードを使って説明します。結局、合成関数の微分をします。チェインルールです。コード書いてこれを実装しました。
6章 学習に関するテクニック:
テクニックについての説明です。確率的勾配効果法、シンプルでいいのですが、遠回りです。AdaGradが便利です。重みの初期値もいろんな決め方があります。学習にかなり関わってきます。過学習避けるためにDropoutをします。
7章 畳み込みニューラルネットワーク:
畳み込みとプーリングの説明です。ただのニューラルネットワークだと限界があります。空間的情報も使っていきたいです。畳み込みとプーリングです。畳み込みフィルターはただのニューラルネットワークの重みに対応します。プーリングはデータの圧縮です。ロバストになります。最後、畳み込みニューラルネットワークを実装します。ただのニューラルネットワークより精度が上がります。
8章 ディープラーニング:
世界中で使われているディープラーニングの手法や実用例についてです。実装は7章までです。この章ではコードは書きません。グーグルはこんなモデルを使っていますなど書いてあります。ディープラーニングを利用することで、画像の自動生成や自動運転などが可能になります。面白いです。
全体的なぼくの感想:
先にも書きましたが、非常に読みやすいです。人工知能、ニューラルネットワークの知識ゼロでも理解できました。ニューラルネットワークに興味を持ちました。各章で、やったことが最後にまとめられている点も良かったです。ニューラルネットワーク入門として最高の一冊でした。
改善点、アドバイスがあったらお願いします。