藤田毅『C++で学ぶディープラーニング』マイナビ出版(2017年)9784839961503
機械学習の基礎的な概論から始まって、実際に動作検証が可能なコードを踏まえた解説を一つ一つ積み上げてゆき、最終的に応用可能な深層学習フレームワークを構成できるところまで誘ってゆく内容になっているようだ。ニューラルネットワークの基礎から実装まで、C++のサンプルコードで学ぶ本書は、ディープラーニング(深層学習)の基礎を学ぶ初級者やソフトウェアエンジニアの方を対象に、ディープラーニングのベースとなっているニューラルネットワークからその派生技術や応用まで、実際に動くC++のソースコードを参照しながら学ぶ内容となっています。前半はニューラルネットワークに関する必須知識を扱い、後半ではニューラルネットワークの派生技術や応用に言及し、徐々に高度な内容となっていきます。本書では開発言語としてC++を採用しています。C++でほぼすべてをスクラッチから実装しており、最終的に完成するコードはディープラーニングのC++フレームワークとして機能します。サンプルコードはダウンロード可能。(出版社調べによる。)C++で学ぶディープラーニング [ 藤田 毅 ]価格:3877円(税8%込、送料無料) (2018/8/25時点)発売日:2017年06月26日 著者:藤田 毅, 丸山 弘詩・編集出版社:マイナビ出版発行形態:単行本 ページ数:264p ISBNコード:9784839961503Chapter1 ディープラーニング概論 1-1 ディープラーニング 1-1-1 ディープラーニングとは 1-1-2 ディープラーニングの背景 1-1-3 ディープラーニングができること 1-1-4 ディープラーニングの応用例 1-1-5 本書が対象とする読者 1-1-6 本書の構成 1-1-7 本書で提供するソースコードについて 1-2 本書で必要とするC++の機能 1-2-1 ポインター 1-2-2 シェアードポインター 1-2-3 vector 1-2-4 map 1-2-5 リスト構造 1-2-6 ツリー構造 Chapter2 ニューラルネットワークのための行列演算と並列プログラミング2-1 GPUの活用 2-1-1 並列プログラミングの重要性 2-1-2 GPUと深層学習 2-1-3 GPUの利用 2-2 CUDAプログラミング 2-2-1 CUDAカーネル 2-2-2 スレッドの構成 2-2-3 CPUメモリーとGPUメモリー 2-3 行列演算 2-3-1 行列演算のフレームワーク化 2-3-2 cuBLAS 2-3-3 行列四則演算以外の例 2-3-4 演算子の定義 Chapter3 ニューラルネットワーク 3-1 単純パーセプトロン 3-1-1 単純パーセプトロンのモデル 3-1-2 単純パーセプトロンが可能なこと 3-1-3 単純パーセプトロンの学習過程 3-2 層状パーセプトロン 3-2-1 層状パーセプトロンのモデル 3-2-2 活性化関数 3-2-3 回帰問題における層状パーセプトロンの学習 3-2-4 分類問題における層状パーセプトロンの学習 3-3 ニューラルネットワークのパラメータ推定 3-3-1 確率的最急降下法 (Stochastic Gradient Descent, SGD) 3-3-2 ミニバッチ 3-3-3 重みの初期化 Chapter4 誤差逆伝播 4-1 順方向の計算 4-1-1 計算グラフ 4-1-2 ミニバッチの行列表現 4-2 微分の連鎖率 4-2-1 合成関数の微分 4-2-2 微分の連鎖率 4-2-3 多層ニューラルネットワークでの各パラメーターの微分 4-2-4 微分の連鎖率のグラフィカル表現 4-3 勾配消失問題 4-3-1 勾配消失問題とは? 4-3-2 勾配消失問題への対処 Chapter5 C++によるニューラルネットワークの実装 5-1 後退型自動微分の実装 5-1-1 変数 5-1-2 関数の基底クラス 5-1-3 活性化関数の定義例 5-1-4 線形関数の定義例 5-1-5 クロスエントロピー誤差関数 5-1-6 逆伝播 5-2 関数ラッパー 5-3 モデル 5-3-1 モデルの定義 5-3-2 モデルの保存と復元 5-4 オプティマイザー 5-4-1 オプティマイザーの基底クラス 5-4-2 オプティマイザーの例 5-5 MNISTを例にした学習と評価 5-5-1 MNISTデータセットの入手 5-5-2 MNISTのデータフォーマット 5-5-3 分類モデル 5-6 Irisを例にした学習と評価 5-6-1 Irisのデータフォーマット 5-6-2 分類モデル Chapter6 学習の最適化と過学習 6-1 学習の最適化 6-1-1 モーメンタムSGD 6-1-2 NAG 6-1-3 AdaGrad 6-1-4 RMSprop 6-1-5 AdaDelta 6-1-6 Adam 6-1-7 Adamの実装 6-2 過学習への対応 6-2-1 正則化 6-2-2 ドロップアウト 6-2-3 ドロップアウトの実装 6-2-4 バッチ正規化 6-2-5 バッチ正規化の実装 Chapter7 事前学習 7-1 オートエンコーダーと事前学習 7-1-1 オートエンコーダー 7-1-2 スパースオートエンコーダー 7-1-3 隠れ層の重み 7-1-4 デノイジングオートエンコーダー 7-1-5 事前学習 7-2 オートエンコーダーの実装 7-2-1 隠れ層 7-2-2 隠れ層のラッパー 7-2-3 オートエンコーダーの構築と学習 Chapter8 畳み込みニューラルネットワーク 8-1 畳み込み 8-1-1 画像 8-1-2 画像フィルター 8-1-3 パディング 8-1-4 プーリング 8-2 畳み込み層 8-2-1 畳み込み層の計算 8-2-2 畳み込み層計算の工夫 8-2-3 フィルター係数の初期化 8-2-4 畳み込み層の実装 8-2-5 プーリング層の実装 8-2-6 全結合層 8-3 CIFAR-10 を使った画像認識 8-3-1 CIFAR-10のラベル 8-3-2 ファイルフォーマット 8-3-3 分類モデル Chapter9 再帰型ニューラルネットワーク 9-1 広く応用できる再帰型ニューラルネットワーク 9-1-1 再帰型ニューラルネットワークのモデル 9-1-2 再帰型ニューラルネットワークの逆伝播 9-1-3 逆伝播の詳細 9-2 再帰型ニューラルネットワークの問題点と解決策 9-2-1 LSTM 9-2-2 LSTMの誤差逆伝播 9-2-3 LSTMの実装 9-2-4 GRU 9-2-5 GRUの実装 9-2-6 Truncated BPTT 9-2-7 数字の記憶 9-2-8 サイン波の再現 9-3 単語のベクトル表現 9-3-1 ベクトル表現 9-3-2 ベクトル表現の実装 9-4 翻訳モデル・アテンションモデル 9-4-1 エンコーダー・デコーダーのモデル 9-4-2 パディング 9-4-3 アテンションモデル 9-5 自動翻訳の実装 9-5-1 翻訳コーパス 9-5-2 エンコーダー・デコーダーモデルを使ったネットワーク訓練 9-5-3 エンコーダー・デコーダーモデルを使った翻訳(推定) 9-5-4 実行結果の考察楽天ブックス