著者名:斎藤康毅
価格:3672円
320ページ
出版社:オライリージャパン
ISBN:4873117585
発売日:2016.9.24
キーワード:Python,パーセプトロン,ニューラルネットワーク,CNN
AIの理論の理解に役立つ |
★ ★ ★ ★ ☆ |
深層学習の基本を習得できる |
AIの実装(プログラミング)に役立つ |
★ ★ ★ ★ ☆ |
深層学習をゼロから実装できる |
深層学習の理解に役立つ |
★ ★ ★ ★ ☆ |
基本から丁寧な説明がなされている |
数学の難しさ |
★ ★ ★ ☆ ☆ |
数式を理解するには大学初年度程度の数学が必要 |
総合 |
★ ★ ★ ★ ★ |
|
想定される読者
ディープラーニングの動作原理を理解したい人向け.
大学初年度程度の数学(微分積分,線形代数,統計学),Pythonプログラミングの基礎事項は必要.
概要
最近,人工知能,特にニューラルネットワークを用いた機械学習の能力においてブレークスルーが起こった.
本書は,深層学習(ディープラーニング)と呼ばれている手法についての解説書である.
深層学習ではプログラミング言語としてPythonが用いられることが多く,そのライブラリが充実しつつあるが,
本書では既存のライブラリをブラックボックス的に用いた解説ではなく,
そのライブラリの中身をゼロから実装することを通じて深層学習を理解することを目的としている.
ニューラルネットワークの歴史を見ると,流行と停滞の繰り返しがあり.現在が3回目の流行である.
1950年代の単純パーセプトロンは,単層のニューラルネットワークであり,線形分離可能な問題を扱うことができた.
1980年代の誤差逆伝播法を用いたニューラルネットワークは,線形分離でない問題も解けるようになったが,
多層にすることによる勾配損失の課題,あるデータに対してだけ過度に対応した過学習状態に陥る課題が生じた.
機械学習に求められるのは,教師データを用いて学習した後,まだ見ぬデータに対して推論を行える「汎化能力」である.
2000年半ばごろから,事前学習,ReLU損失関数,Dropout,CNNなどの技術,および計算機の能力の向上により
これらの課題が克服されるようになった.
本書はこの歴史をたどる構成になっており,第6章以降が最近の深層学習についての解説である.
第1章 Python入門
本書で用いるPythonについての一通りの説明がなされる.
プログラミングの経験が全くない場合は別の本で勉強した方がよいであろう.
またPython自身や必要なライブラリ(NumPy, Matplotlib)のインストール方法など,
環境設定についてはほとんど触れられていないので不案内な場合は別の情報源にあたる必要がある.
第2章 パーセプトロン
ニューラルネットワークの起源でもあるパーセプトロンについて述べられる.
パーセプトロンを用いて論理回路(AND, NAND, OR)が構成され,Pythonによる実装例が示される.
単純パーセプトロンの限界として排他的論理和(XOR)が紹介され,
多層パーセプトロンによって解決されることが述べられる.
第3章 ニューラルネットワーク
重みパラメータをデータから学習できるニューラルネットワークについて述べられる.
活性化関数,行列の積についての丁寧な記述の後,
入力層,中間層,出力層をもつニューラルネットワークがPythonにより実装される.
最後に,応用例として手書き数字の推論処理について,
すでに学習済みのパラメータを用いたプログラム例が示される.
第4章 ニューラルネットワークの学習
学習のために必要な,損失関数,勾配法について述べられる.
さらに勾配法に必要な数値微分についても述べられる.
第5章 誤差逆伝播法
重みパラメータに関する損失関数の勾配の計算方法として,誤差逆伝播法について述べられる.
数学的には合成関数の微分であるが,本書では「計算グラフ」によって説明され,
Pythonにより実装される.
第6章 学習に関するテクニック
学習を効率的に行うためのアイデアについて述べられる.
重みパラメータ更新手法,重みの初期値の設定,Batch Normalization,過学習を避けるための正則化,
ハイパーパラメータの最適化などである.
第7章 畳み込みニューラルネットワーク
画像認識の際に,画像を1次元のベクトルデータとみるよりは,
2次元(色を含めて3次元)の空間データとみる方が自然であり有効である.
前章までのネットワークの構成では,隣接する層のすべてのニューロン間の結合を考えていたが,
入力画像データに対し画像のフィルター処理のように局所的な結合を考える.
フィルターのパラメータが重みパラメータに相当する.
このようなネットワークを畳み込みニューラルネットワーク(CNN)といい,
この章では技術的な解説とPythonによる実装例が示される.
第8章 ディープラーニング
前章までの総合としてディープなCNNについて述べられる.
さらにディープラーニングの歴史,高速化,実用例について紹介される.
コメント
記述は極めて丁寧であり機械学習の動作原理を歴史的経緯に沿って学習することができる.
実際にPythonのコードを入力しながら読み進めるのが効果的であると思われる.