結論
非常に良い書籍です。迷っているならば購入してもいいでしょう。
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
- 作者: 斎藤康毅
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/09/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る
理由
以下記事で理由を述べていきます。
実装がライブラリに依存していない
もしもライブラリに依存したものである場合、ライブラリが更新されると、本の内容が古くなって価値のないものになることもありえます。しかしこの本は、ディープラーニングを理解することに焦点を起き、その手段としてプログラミングを行うという形式であるため、深層学習をこれから学びたい人、リファレンスとして本を持っておきたい人、実装の基本的な中身を見てみたい人すべてにとって有用です。
しっかりと解説が行われている
最新の技術を紹介しながら、興味をそそる触りを教え、結局何だったのかを理解できるように教えていない本も世の中にはあります。この本では紹介した手法に関して、理解を促すために解説を行い、ソースコードも公開しています。
また、基本的なことはわかっているだろうという前提で話が進んでしまう本もありますが、この本は基礎からこの本だけで完結できるように解説がなされています。必要なのは大学初学年程度の数学だけで、それ以上の高度な数学の知識を前提としていません。
リファレンスが充実している
本書の中で扱った内容に関して、更に詳しいことを知りたい場合に、どのような文献に当たればいいのかを明示してくれます。レベルアップを望んでいる人にとって、この本書に留まらず、さらなる道標を記してくれるところは素晴らしいと思います。
先日深層学習に関する私が所持している書籍の紹介を行いました。
計算グラフによってネットワークの計算を扱う
以下の記事で計算グラフについて紹介しています。
計算グラフを導入すると、視覚的に計算の流れを理解することが可能です。
一度勉強したことがある人にとって、誤差逆伝搬法などの式は非常に優れた形をしていることがわかりますが、初学者にとっては添字の嵐で何が起こっているのかわかりづらいはずです。
計算グラフでは視覚的に理解することができ、何より難しい知識が必要ありません。どのようなルールでグラフが構築されているのかを把握すればそれだけで十分です。初めて学ぶ人にとっても十分に分かりやすい解説をしています。
中身
目次は以下となっています。
1.Python入門
Pythonの基本的な関数などの使い方を解説
2.パーセプトロン
論理回路から始まり、パーセプトロンがどのような表現力を有するかを解説
3.ニューラルネットワーク
活性化関数や順伝搬の計算の実現方法などの解説
4.ニューラルネットワークの学習
損失関数と勾配、微分の解説
5.誤差逆伝搬法
微分の連鎖律、計算グラフでの逆伝搬を解説層の実装の解説
6.学習に関するテクニック
パラメータ更新の最適化法、バッチ正規化、正則化などハイパーパラメータ関連
7.畳み込みニューラルネットワーク
畳み込みニューラルネットの基本と、その実装を解説
8.ディープラーニング
近年のディープラーニングに関する話
誰におすすめできるか
この本は非常に多くの人にオススメできます。
これから深層学習の勉強を始めたい人、プログラムを動かしてみて入るものの理解が伴っていないと感じる人などに最適です。
勉強をある程度進めている人にとっても、全体像を実装を通して復習する良い題材になります。
誰におすすめできないか
・すでに十分に勉強を進めており、理解も伴い、実装も自分で完全に行うことができる。
おそらく特に得ることはないでしょう。
・よくわからなくても良いからすぐに深層学習を使いたい
ライブラリに依存しない実装を通して理解を深めることが目的です。
決して世界に発信できる高性能なニューラルネットワークの構築の仕方を教えてくれるわけではありません。
・数学的な理論面を知りたい
むしろ平易に書かれており、興味を持った大学初学年程度のレベルを有するすべての人間を対象としています。難しい理論の話は一切ないので、その面で新たな発見は得られないでしょう。
・RNNやDBNを実装したい
今回はニューラルネットから始まり、CNNの実装まで行きます。
残念ながらRNNやDBNに関する記述はありません。
私が本を購入して
以前深層学習の書籍に観する記事
を書きながら思ったのは、理論面の関して熱心に取り組む一方で、プログラミングから入ってみようという方にとって有益な情報を提供できていないということでした。その後私は今回紹介した「ゼロから作るDeep Learning」を購入しました。Pythonで実装を行うという経験を通して、確かにこの本ならばこれから始める人の理解を促す内容になっているだろうと考えた次第です。
また私自身はmatlab/octaveを使っていますが、同時にPythonでの機械学習を始める動機にもなりました。いざ始めてみると、本当に多くの人が機械学習をやっており、そしてPythonでソースコードを記述しているのがわかります。この本に出会えたことで、本の内容の素晴らしさのみならず、新たな一歩を踏み出す後押しにもなったと思います。