内容紹介
人気フレームワークKerasの解説書!
直感的かつ短いコードでアイデアを形にできるKerasはTensorFlowのラッパーとして大人気のライブラリです。本書でもTensorFlowをバックエンドとして使用し、自然言語処理、画像識別、画像生成、音声合成、テキスト生成、強化学習、AIゲームプレイなどさまざまなモデルをPythonとKerasで実装します。対象読者は、各種のディープラーニングを素早く実装したいプログラマー、データサイエンティスト。ディープラーニングを支える技術の速習にも好適です。数式はなるべく使わずにコードと図で説明します。ニューラルネットワークおよびPython 3の基本を理解している人であれば誰でも始めることができます。
このような方におすすめ
Pythonおよびディープラーニング(およびニューラルネットワーク)の基本を知っている技術者、研究者、教育関係者(教職者、学生)
目次
詳細目次
目次
訳者まえがき
まえがき
1章 ニューラルネットワークの基礎
1.1 パーセプトロン
1.1.1 最初のKerasのコードの例
1.2 多層パーセプトロン:最初のネットワークの例
1.2.1 パーセプトロンの学習における問題と解決策
1.2.2 活性化関数:シグモイド
1.2.3 活性化関数:ReLU
1.2.4 活性化関数
1.3 実例:手書き数字認識
1.3.1 one-hotエンコーディング:OHE
1.3.2 Kerasによるシンプルなネットワークの定義
1.3.3 Kerasのシンプルなネットワークを動作させてベースラインとして設定
1.3.4 隠れ層の追加による精度向上
1.3.5 ドロップアウトによる精度向上
1.3.6 最適化アルゴリズムの変更
1.3.7 学習エポックの増加
1.3.8 学習率の制御
1.3.9 内部隠れ層の増加
1.3.10 バッチ計算サイズの増加
1.3.11 手書き数字認識の実験の要約
1.3.12 正則化――過学習を避ける
1.3.13 ハイパーパラメータチューニング
1.3.14 予測結果
1.4 誤差逆伝播法の実践的な全体像
1.5 ディープラーニングのアプローチについて
1.6 まとめ
2章 KerasのインストールとAPI
2.1 Kerasのインストール
2.1.1 ステップ1:依存ライブラリのインストール
2.1.2 ステップ2:TensorFlowのインストール
2.1.3 ステップ3:Kerasのインストール
2.2 Kerasの設定
2.3 Docker上へのKerasのインストール
2.4 Keras API
2.4.1 Kerasのアーキテクチャ
2.4.2 事前定義済みのニューラルネットワーク層の概要
2.4.3 事前定義済みの活性化関数の概要
2.4.4 損失関数の概要
2.4.5 評価関数の概要
2.4.6 最適化アルゴリズムの概要
2.4.7 ユーティリティ
2.4.8 モデルの保存と読み込み
2.5 学習過程をカスタマイズするためのコールバック
2.5.1 チェックポイント
2.5.2 TensorBoardの使用
2.5.3 Quiverの使用
2.6 まとめ
3章 畳み込みニューラルネットワーク
3.1 畳み込みニューラルネットワークの仕組み
3.1.1 局所受容野(local receptive field)
3.1.2 重みの共有
3.1.3 プーリング層(pooling layer)
3.1.4 CNNについての総括
3.2 CNNの実装例:LeNet
3.2.1 KerasによるLeNetの実装
3.2.2 ディープラーニングの力を理解する
3.3 CIFAR-10の画像認識に挑戦
3.3.1 ネットワークをより深くすることによる改善
3.3.2 Data Augmentationによる改善
3.3.3 学習したモデルを利用し予測する
3.4 大規模な画像認識のための非常に深いネットワーク
3.4.1 組み込みのVGG-16のモデルを使用する
3.4.2 学習済みのモデルを特徴抽出器として活用する
3.4.3 Inception-v3を使用した転移学習
3.5 まとめ
4章 GANと WaveNet
4.1 GANとは何か
4.1.1 GANの適用例
4.2 深層畳み込みGAN
4.3 MNISTを偽造するための敵対的なGAN
4.4 CIFAR-10の画像を生成するGANの実装
4.5 WaveNet:音声の生成方法を学習する生成モデル
4.6 まとめ
5章 単語分散表現
5.1 分散表現
5.2 word2vec
5.2.1 Skip-gram
5.2.2 CBOW
5.2.3 分散表現の抽出
5.2.4 サードパーティの実装
5.3 GloVe
5.4 事前学習済みベクトルの使用
5.4.1 ゼロから分散表現を学習する
5.4.2 word2vecで学習した分散表現のファインチューニング
5.4.3 GloVeで学習した分散表現のファインチューニング
5.4.4 分散表現の検索
5.5 まとめ
6章 リカレントニューラルネットワーク
6.1 SimpleRNNセル
6.1.1 RNNを用いたテキスト生成
6.2 RNNのトポロジー
6.3 勾配消失と勾配爆発
6.4 LSTM
6.4.1 LSTMで評判分析
6.5 GRU
6.5.1 GRUで品詞タグ付け
6.6 双方向RNN
6.7 ステートフルRNN
6.7.1 ステートフルLSTMで電力消費量の予測
6.8 その他のRNNの亜種
6.9 まとめ
7章 さまざまなディープラーニングのモデル
7.1 functional API
7.2 回帰を行うネットワークの構築
7.2.1 回帰モデルの実装:大気中のベンゼン濃度の予測
7.3 教師なし学習:自己符号化器
7.3.1 自己符号化器の実装:文ベクトルの作成
7.4 ネットワークを組み合わせる:複合ネットワーク
7.4.1 複合ネットワークの実装:質問回答を行うMemory Network
7.5 Kerasのカスタマイズ
7.5.1 層のカスタマイズ:Lambda層の使用
7.5.2 層のカスタマイズ:カスタムの正規化層を作成する
7.6 生成モデル
7.6.1 生成モデルの実装:Deep Dream
7.6.2 Deep Dreamの応用:スタイルトランスファー
7.7 まとめ
8章 AIによるゲームプレイ
8.1 強化学習
8.1.1 将来の報酬を最大化する
8.1.2 Q-learning
8.1.3 ディープニューラルネットワークによるQ関数の実装
8.1.4 探索(exploration)と活用(exploitation)のバランス
8.1.5 Experience Replay(経験の蓄積と活用)
8.1.6 Q-networkの固定
8.1.7 報酬のクリッピング
8.2 ボールキャッチゲームのためのDeep Q-networkの実装
8.3 強化学習を取り巻く状況
8.4 まとめ
9章 総括
付録A GPUを考慮した開発環境の構築
A.1 TensorFlowとGPU
A.2 具体的なインストール方法:ホスト
A.3 具体的なインストール方法:Docker
A.4 まとめ
索引
続きを見る