実践 Deep Learning ―PythonとTensorFlowで学ぶ次世代の機械学習アルゴリズム

Book description

2000年代にニューラルネットワークの研究が再び活発になりました。現在、ディープラーニングは近代的な機械学習の道を切り開いている非常に活発な研究領域となっています。Google、Microsoft、Facebookなどの企業では、社内のディープラーニングチームが急成長しています。しかし、多くの人にとってディープラーニングはまだまだとても複雑で困難な課題です。本書ではサンプルのPython 3プログラムと簡潔な説明を通してこの複雑な分野の主要な概念を紹介します。微積分、行列演算、Pythonの基礎があれば誰でも本書を始めることができます。

Table of contents

  1.  大扉
  2.  原書大扉
  3.  クレジット
  4.  監訳者まえがき
  5.  まえがき
  6.  1章 ニューラルネットワーク
  7.   1.1 知的な機械を作るということ
  8.   1.2 従来のプログラムの限界
  9.   1.3 機械学習のしくみ
  10.   1.4 ニューロン
  11.   1.5 線形パーセプトロンをニューロンとして表現する
  12.   1.6 フィードフォワードニューラルネットワーク
  13.   1.7 線形ニューロンとその限界
  14.   1.8 シグモイド、tanh、ReLUのニューロン
  15.   1.9 ソフトマックス出力層
  16.   1.10 まとめ
  17.  2章 フィードフォワードニューラルネットワークの訓練
  18.   2.1 ファストフード店での問題
  19.   2.2 勾配降下法
  20.   2.3 デルタルールと学習率
  21.   2.4 勾配降下法とシグモイドニューロン
  22.   2.5 逆伝播のアルゴリズム
  23.   2.6 確率的勾配降下法とミニバッチ
  24.   2.7 テストデータ、検証データ、過学習
  25.   2.8 深層ニューラルネットワークでの過学習の防止
  26.   2.9 まとめ
  27.  3章 TensorFlowを使ったニューラルネットワークの実装
  28.   3.1 TensorFlowとは
  29.   3.2 他の選択肢との比較
  30.   3.3 TensorFlowのインストール
  31.   3.4 TensorFlowのVariableの生成と操作
  32.   3.5 TensorFlowでの操作
  33.   3.6 プレースホルダのテンソル
  34.   3.7 TensorFlowでのセッション
  35.   3.8 Variableのスコープと共有
  36.   3.9 CPUとGPU上でのモデルの管理
  37.   3.10 ロジスティック回帰のモデルを記述する
  38.   3.11 ログの記録と訓練
  39.   3.12 TensorBoardを使って計算グラフと学習を可視化する
  40.   3.13 多階層のMNISTモデル
  41.   3.14 まとめ
  42.  4章 勾配降下法を超えて
  43.   4.1 勾配降下法での課題
  44.   4.2 深層ネットワークの誤差曲面での極小値
  45.   4.3 モデルの識別可能性
  46.   4.4 深層ネットワークにおける極小値の影響
  47.   4.5 誤差曲面上の平坦な領域
  48.   4.6 勾配が誤った方向を向く場合
  49.   4.7 モーメンタムに基づく最適化
  50.   4.8 2次の最適化手法の概要
  51.   4.9 適応的な学習率
  52.    4.9.1 AdaGrad —— 過去の勾配の蓄積
  53.    4.9.2 RMSProp —— 勾配の指数加重移動平均
  54.    4.9.3 Adam —— モーメンタムとRMSPropの組み合わせ
  55.   4.10 最適化手法の選択基準
  56.   4.11 まとめ
  57.  5章 畳み込みニューラルネットワーク
  58.   5.1 人間の視覚におけるニューロン
  59.   5.2 特徴選択の欠陥
  60.   5.3 単純な深層ニューラルネットワークにはスケーラビリティがない
  61.   5.4 フィルターと特徴マップ
  62.   5.5 畳み込み層の完全な表現
  63.   5.6 最大プーリング
  64.   5.7 畳み込みネットワーク全体の構成
  65.   5.8 畳み込みネットワークを使ったMNISTの最終解
  66.   5.9 画像の前処理による、さらに頑健なモデル
  67.   5.10 バッチ正規化による訓練の高速化
  68.   5.11 CIFAR-10用の畳み込みネットワーク
  69.   5.12 畳み込みネットワークでの学習の可視化
  70.   5.13 畳み込みネットワークを使い、絵画のスタイルを適用する
  71.   5.14 他の問題領域への畳み込みネットワークの適用
  72.   5.15 まとめ
  73.  6章 埋め込みと表現学習
  74.   6.1 低次元表現の学習
  75.   6.2 主成分分析
  76.   6.3 オートエンコーダーのアーキテクチャー
  77.   6.4 TensorFlowを使ったオートエンコーダーの実装
  78.   6.5 頑健な埋め込み表現のためのノイズ除去
  79.   6.6 オートエンコーダーの疎性
  80.   6.7 入力のベクトルよりもコンテキストに多くの情報が含まれる場合
  81.   6.8 Word2Vecフレームワーク
  82.   6.9 スキップグラムアーキテクチャーの実装
  83.   6.10 まとめ
  84.  7章 シーケンス分析のモデル
  85.   7.1 可変長の入力に対する分析
  86.   7.2 neural n-gramによるseq2seq問題へのアプローチ
  87.   7.3 品詞タグ付け器の実装
  88.   7.4 係り受け解析とSyntaxNet
  89.   7.5 ビームサーチとグローバル正規化
  90.   7.6 内部状態を持ったディープラーニングのモデルの例
  91.   7.7 リカレントニューラルネットワーク
  92.   7.8 勾配消失問題
  93.   7.9 LSTMユニット
  94.   7.10 RNNのモデルのためにTensorFlowが提供するプリミティブ
  95.   7.11 センチメント分析のモデルの実装
  96.   7.12 RNNを使ってseq2seqの問題に取り組む
  97.   7.13 アテンションを使ってRNNを強化する
  98.   7.14 ニューラル翻訳ネットワークの分析
  99.   7.15 まとめ
  100.  8章 メモリ強化ニューラルネットワーク
  101.   8.1 ニューラルチューリングマシン
  102.   8.2 アテンションベースのメモリアクセス
  103.   8.3 NTMでのメモリのアドレス管理
  104.   8.4 微分可能なニューラルコンピューター
  105.   8.5 DNCでの干渉のない書き込み
  106.   8.6 DNCでのメモリの再利用
  107.   8.7 書き込みの時系列的リンク
  108.   8.8 DNCの読み込みヘッドを理解する
  109.   8.9 コントローラーのネットワーク
  110.   8.10 DNCの動作の可視化
  111.   8.11 TensorFlowを使ったDNCの実装
  112.   8.12 DNCに読解させる
  113.   8.13 まとめ
  114.  9章 深層強化学習
  115.   9.1 Atariのゲームを習得した深層強化学習
  116.   9.2 強化学習とは
  117.   9.3 マルコフ決定過程(MDP)
  118.    9.3.1 方策
  119.    9.3.2 利得
  120.    9.3.3 割引累積報酬
  121.   9.4 探索と利用
  122.    9.4.1 ε-貪欲法
  123.    9.4.2 ε-貪欲法の改良
  124.   9.5 方策学習と価値学習
  125.    9.5.1 方策勾配を使った方策学習
  126.   9.6 ポールバランシングへの方策勾配の適用
  127.    9.6.1 OpenAI Gym
  128.    9.6.2 エージェントの作成
  129.    9.6.3 モデルとオプティマイザーの作成
  130.    9.6.4 行動の抽出
  131.    9.6.5 履歴の管理
  132.    9.6.6 方策勾配法のメインの関数
  133.    9.6.7 ポールバランシングでのPGAgentの性能
  134.   9.7 Q学習と深層Qネットワーク
  135.    9.7.1 ベルマン方程式
  136.    9.7.2 価値の反復での問題点
  137.    9.7.3 Q関数の近似
  138.    9.7.4 深層Qネットワーク(DQN)
  139.    9.7.5 DQNの訓練
  140.    9.7.6 学習の安定性
  141.    9.7.7 ターゲットQネットワーク
  142.    9.7.8 体験の再現
  143.    9.7.9 Q関数から方策へ
  144.    9.7.10 DQNとマルコフ性の仮定
  145.    9.7.11 DQNでのマルコフ性の仮定への対策
  146.    9.7.12 DQNによる「ブロックくずし」のプレイ
  147.    9.7.13 アーキテクチャー
  148.    9.7.14 画面の積み重ね
  149.    9.7.15 訓練のセットアップ
  150.    9.7.16 ターゲットQネットワークの更新
  151.    9.7.17 体験の再現の実装
  152.    9.7.18 DQNのメインのループ
  153.    9.7.19 「ブロックくずし」でのDQNAgentの成績
  154.   9.8 DQNの改善と新たな方向性
  155.    9.8.1 深層リカレントQネットワーク(DRQN)
  156.    9.8.2 A3C
  157.    9.8.3 UNREAL
  158.   9.9 まとめ
  159.  著者紹介
  160.  奥付

Product information

  • Title: 実践 Deep Learning ―PythonとTensorFlowで学ぶ次世代の機械学習アルゴリズム
  • Author(s): Nikhil Buduma, 太田 満久, 藤原 秀平, 牧野 聡
  • Release date: April 2018
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873118321