斎藤康毅, 「ゼロから作るDeep Learning: Pythonで学ぶディープラーニングの理論と実装」, O’Reilly(オライリー・ジャパン), 2016
O’Reilly(オライリー・ジャパン): https://www.oreilly.co.jp/books/9784873117584/
Amazon: https://www.amazon.co.jp/dp/4873117585
ニューラルネットワークの基礎からニューラルネットワークを学習させたり実際に用いたりするところまで、ニューラルネットワークの構造や活性化関数、そしてニューラルネットワークの学習のさせ方など、全般について書かれている本です。さらに、深層学習 (ディープラーニング) や画像処理への応用のところまで説明があります。以下は、O’Reilly(オライリー・ジャパン)における内容紹介の引用です。
ディープラーニングの本格的な入門書。外部のライブラリに頼らずに、Python 3によってゼロからディープラーニングを作ることで、ディープラーニングの原理を楽しく学びます。ディープラーニングやニューラルネットワークの基礎だけでなく、誤差逆伝播法や畳み込みニューラルネットワークなども実装レベルで理解できます。ハイパーパラメータの決め方や重みの初期値といった実践的なテクニック、Batch NormalizationやDropout、Adamといった最近のトレンド、自動運転や画像生成、強化学習などの応用例、さらには、なぜディープラーニングは優れているのか? なぜ層を深くすると認識精度がよくなるのか? といった“Why”に関する問題も取り上げます。
この本では、数学的な基礎から丁寧に説明されていますので、初めてニューラルネットワークを学ぶ方でもわかりやすく読めると思います。
タイトルにありますように、ニューラルネットワークやディープラーニングの理論だけでなく、自分の手を動かしながら Python でニューラルネットワークの実装まで行えます。Python の基礎の説明もありますので、まだ Python を扱ってことない人でも実習できると思います。実際にプログラムを作りながらニューラルネットワークの内容を確認することで、理論を学ぶだけでは難しかったことの理解が進むようになったり、理解があやふやになっていることがクリアになったりしますので、実装も一緒に進めると、理解が進むと思います。なお、サンプルコードもありますので、プログラムを書けなくても、実行しながらついていくことはできます。
Python の実装はまだいいや、という方も、理論の部分だけ読んでも勉強になりますので、ニューラルネットワークやディープラーニングを学びたい方にはお勧めの一冊です。
「ゼロから作るDeep Learning: Pythonで学ぶディープラーニングの理論と実装」 では、データ解析・機械学習に関連する内容として、主に以下のことを学べます。
- Python とは、Python のインストール、Python の基礎、NumPy、Matplotlib
- パーセプトロン、AND、OR、NAND、XOR、線形と非線形、多層パーセプトロン
- ニューラルネットワーク、活性化関数、シグモイド関数、ステップ関数、非線形関数、ReLU (Rectified Linear Unit) 関数、恒等関数、ソフトマックス関数、多次元配列、バッチ処理、MNISTデータセット
- 学習、トレーニングデータ、テストデータ、損失関数、ミニバッチ学習、微分、偏微分、勾配法、学習率、エポック
- 誤差逆伝播法、順電波、逆伝播、連鎖律、勾配確認
- パラメータの更新、SGD (Stochastic Gradient Descent)、Momentum、学習係数の減衰、AdaGrad、Adam、重みの初期値、Batch normalization、過学習、正則化、Weight decay、Dropout、ハイパーパラメータの最適化
- 畳み込みニューラルネットワーク、畳み込み層、パディング、ストライド、バッチ処理、プーリング層、可視化、LeNet、AlexNet
- ディープラーニング、ImageNet、VGG、GoogLeNet、ResNet
以上です。
質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。