Pythonで学ぶディープラーニングの理論と実装
Publisher: O’Reilly; オライリー・ジャパン
Published: 2016
Language: jpn
ISBN-13: 9784873117584
Table of contents: title: まえがき; title: 1章　Python入門; title: 1.1　Pythonとは; title: 1.2　Pythonのインストール; title: 1.2.1　Pythonのバージョン; title: 1.2.2　使用する外部ライブラリ; title: 1.2.3　Anacondaディストリビューション; title: 1.3　Pythonインタプリタ; title: 1.3.1　算術計算; title: 1.3.2　データ型; title: 1.3.3　変数; title: 1.3.4　リスト; title: 1.3.5　ディクショナリ; title: 1.3.6　ブーリアン; title: 1.3.7　if文; title: 1.3.8　for文; title: 1.3.9　関数; title: 1.4　Pythonスクリプトファイル; title: 1.4.1　ファイルに保存; title: 1.4.2　クラス; title: 1.5　NumPy; title: 1.5.1　NumPyのインポート; title: 1.5.2　NumPy配列の生成; title: 1.5.3　NumPyの算術計算; title: 1.5.4　NumPyのN次元配列; title: 1.5.5　ブロードキャスト; title: 1.5.6　要素へのアクセス; title: 1.6　Matplotlib; title: 1.6.1　単純なグラフの描画; title: 1.6.2　pyplotの機能; title: 1.6.3　画像の表示; title: 1.7　まとめ; title: 2章　パーセプトロン; title: 2.1　パーセプトロンとは; title: 2.2　単純な論理回路; title: 2.2.1　ANDゲート; title: 2.2.2　NANDゲートとORゲート; title: 2.3　パーセプトロンの実装; title: 2.3.1　簡単な実装; title: 2.3.2　重みとバイアスの導入; title: 2.3.3　重みとバイアスによる実装; title: 2.4　パーセプトロンの限界; title: 2.4.1　XORゲート; title: 2.4.2　線形と非線形; title: 2.5　多層パーセプトロン; title: 2.5.1　既存ゲートの組み合わせ; title: 2.5.2　XORゲートの実装; title: 2.6　NANDからコンピュータへ; title: 2.7　まとめ; title: 3章　ニューラルネットワーク; title: 3.1　パーセプトロンからニューラルネットワークへ; title: 3.1.1　ニューラルネットワークの例; title: 3.1.2　パーセプトロンの復習; title: 3.1.3　活性化関数の登場; title: 3.2　活性化関数; title: 3.2.1　シグモイド関数; title: 3.2.2　ステップ関数の実装; title: 3.2.3　ステップ関数のグラフ; title: 3.2.4　シグモイド関数の実装; title: 3.2.5　シグモイド関数とステップ関数の比較; title: 3.2.6　非線形関数; title: 3.2.7　ReLU関数; title: 3.3　多次元配列の計算; title: 3.3.1　多次元配列; title: 3.3.2　行列の内積; title: 3.3.3　ニューラルネットワークの内積; title: 3.4　3層ニューラルネットワークの実装; title: 3.4.1　記号の確認; title: 3.4.2　各層における信号伝達の実装; title: 3.4.3　実装のまとめ; title: 3.5　出力層の設計; title: 3.5.1　恒等関数とソフトマックス関数; title: 3.5.2　ソフトマックス関数の実装上の注意; title: 3.5.3　ソフトマックス関数の特徴; title: 3.5.4　出力層のニューロンの数; title: 3.6　手書き数字認識; title: 3.6.1　MNISTデータセット; title: 3.6.2　ニューラルネットワークの推論処理; title: 3.6.3　バッチ処理; title: 3.7　まとめ; title: 4章　ニューラルネットワークの学習; title: 4.1　データから学習する; title: 4.1.1　データ駆動; title: 4.1.2　訓練データとテストデータ; title: 4.2　損失関数; title: 4.2.1　2乗和誤差; title: 4.2.2　交差エントロピー誤差; title: 4.2.3　ミニバッチ学習; title: 4.2.4　［バッチ対応版］交差エントロピー誤差の実装; title: 4.2.5　なぜ損失関数を設定するのか？; title: 4.3　数値微分; title: 4.3.1　微分; title: 4.3.2　数値微分の例; title: 4.3.3　偏微分; title: 4.4　勾配; title: 4.4.1　勾配法; title: 4.4.2　ニューラルネットワークに対する勾配; title: 4.5　学習アルゴリズムの実装; title: 4.5.1　2層ニューラルネットワークのクラス; title: 4.5.2　ミニバッチ学習の実装; title: 4.5.3　テストデータで評価; title: 4.6　まとめ; title: 5章　誤差逆伝播法; title: 5.1　計算グラフ; title: 5.1.1　計算グラフで解く; title: 5.1.2　局所的な計算; title: 5.1.3　なぜ計算グラフで解くのか？; title: 5.2　連鎖率; title: 5.2.1　計算グラフの逆伝播; title: 5.2.2　連鎖率とは; title: 5.2.3　連鎖率と計算グラフ; title: 5.3　逆伝播; title: 5.3.1　加算ノードの逆伝播; title: 5.3.2　乗算ノードの逆伝播; title: 5.3.3　リンゴの例; title: 5.4　単純なレイヤの実装; title: 5.4.1　乗算レイヤの実装; title: 5.4.2　加算レイヤの実装; title: 5.5　活性化関数レイヤの実装; title: 5.5.1　ReLUレイヤ; title: 5.5.2　Sigmoidレイヤ; title: 5.6　A.ne／Softmaxレイヤの実装; title: 5.6.1　A.neレイヤ; title: 5.6.2　バッチ版A.neレイヤ; title: 5.6.3　Softmax-with-Lossレイヤ; title: 5.7　誤差逆伝播法の実装; title: 5.7.1　ニューラルネットワークの学習の全体図; title: 5.7.2　誤差逆伝播法に対応したニューラルネットワークの実装; title: 5.7.3　誤差逆伝播法の勾配確認; title: 5.7.4　誤差逆伝播法を使った学習; title: 5.8　まとめ; title: 6章　学習に関するテクニック; title: 6.1　パラメータの更新; title: 6.1.1　冒険家の話; title: 6.1.2　SGD; title: 6.1.3　SGDの欠点; title: 6.1.4　Momentum; title: 6.1.5　AdaGrad; title: 6.1.6　Adam; title: 6.1.7　どの更新手法を用いるか？; title: 6.1.8　MNISTデータセットによる更新手法の比較; title: 6.2　重みの初期値; title: 6.2.1　重みの初期値を0にする？; title: 6.2.2　隠れ層のアクティベーション分布; title: 6.2.3　ReLUの場合の重みの初期値; title: 6.2.4　MNISTデータセットによる重み初期値の比較; title: 6.3　Batch Normalization; title: 6.3.1　Batch Normalizationのアルゴリズム; title: 6.3.2　Batch Normalizationの評価; title: 6.4　正則化; title: 6.4.1　過学習; title: 6.4.2　Weight decay; title: 6.4.3　Dropout; title: 6.5　ハイパーパラメータの検証; title: 6.5.1　検証データ; title: 6.5.2　ハイパーパラメータの最適化; title: 6.5.3　ハイパーパラメータ最適化の実装; title: 6.6　まとめ; title: 7章　畳み込みニューラルネットワーク; title: 7.1　全体の構造; title: 7.2　畳み込み層; title: 7.2.1　全結合層の問題点; title: 7.2.2　畳み込み演算; title: 7.2.3　パディング; title: 7.2.4　ストライド; title: 7.2.5　3次元データの畳み込み演算; title: 7.2.6　ブロックで考える; title: 7.2.7　バッチ処理; title: 7.3　プーリング層; title: 7.3.1　プーリング層の特徴; title: 7.4　Convolution／Poolingレイヤの実装; title: 7.4.1　4次元配列; title: 7.4.2　im2colによる展開; title: 7.4.3　Convolutionレイヤの実装; title: 7.4.4　Poolingレイヤの実装; title: 7.5　CNNの実装; title: 7.6　CNNの可視化; title: 7.6.1　1層目の重みの可視化; title: 7.6.2　階層構造による情報抽出; title: 7.7　代表的なCNN; title: 7.7.1　LeNet; title: 7.7.2　AlexNet; title: 7.8　まとめ; title: 8章　ディープラーニング; title: 8.1　ネットワークをより深く; title: 8.1.1　よりディープなネットワークへ; title: 8.1.2　さらに認識精度を高めるには; title: 8.1.3　層を深くすることのモチベーション; title: 8.2　ディープラーニングの小歴史; title: 8.2.1　ImageNet; title: 8.2.2　VGG; title: 8.2.3　GoogLeNet; title: 8.2.4　ResNet; title: 8.3　ディープラーニングの高速化; title: 8.3.1　取り組むべき問題; title: 8.3.2　GPUによる高速化; title: 8.3.3　分散学習; title: 8.3.4　演算精度のビット削減; title: 8.4　ディープラーニングの実用例; title: 8.4.1　物体検出; title: 8.4.2　セグメンテーション; title: 8.4.3　画像キャプション生成; title: 8.5　ディープラーニングの未来; title: 8.5.1　画像スタイル変換; title: 8.5.2　画像生成; title: 8.5.3　自動運転; title: 8.5.4　Deep Q-Network（強化学習）; title: 8.6　まとめ; title: 付録A　Softmax-with-Lossレイヤの計算グラフ; title: A.1　順伝播; title: A.2　逆伝播; title: A.3　まとめ; title: 参考文献; title: Python / NumPy; title: 計算グラフ（誤差逆伝播法）; title: Deep Learningのオンライン授業（資料）; title: パラメータの更新方法; title: 重みパラメータの初期値; title: Batch Normalization / Dropout; title: ハイパーパラメータの最適化; title: CNNの可視化; title: 代表的なネットワーク; title: データセット; title: 計算の高速化; title: MNISTデータセットの精度ランキングおよび最高精度の手法; title: ディープラーニングのアプリケーション; title: 索引