生成 Deep Learning

―絵を描き、物語や音楽を作り、ゲームをプレイする

[cover photo]
TOPICS
Data Science
発行年月日
PRINT LENGTH
384
ISBN
978-4-87311-920-5
原書
Generative Deep Learning
FORMAT
Print PDF EPUB
Ebook
4,180円
Ebookを購入する
Print
4,180円

生成型ディープラーニングの解説書。「絵を描く」「曲を作る」といった、これまで人間にしかできないと思われていた創造的な作業を機械に行わせるという、いま最もホットな技術の基礎から応用までをJupyterノートブック環境で実際に試しながら学びます。第I部は基礎編です。機械学習プログラミング、変分オートエンコーダ、GANやRNNなど、生成モデルの作成において重要な基礎技術を学びます。第II部は応用編です。CycleGAN、エンコーダ―デコーダモデル、MuseGANなどのモデルを作成し、作画、作文、作曲といった創造的なタスクに取り組みます。さらには、実環境を用いずにゲームプレイの学習を可能にする、世界モデルを使った強化学習にも取り組みます。

関連ファイル

正誤表

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。

正誤表 - 2020年11月掲載(2刷で修正予定)



■1章 P.18 脚注
  • 【誤】4,027通り
  • 【正】3,552通り

■9章 P.298 図9-1
  • 【誤】Self-Attention GAN☒SAGAN☒
  • 【正】Self-Attention GAN(SAGAN)

■9章 P.299 L.18
  • 【誤】2007
  • 【正】2017

補足:8章のコマンドライン



以下、日本語版の動作確認で使用したコマンドラインの例です。

$ python 01_generate_data.py car_racing --total_episodes 200 --time_steps 300
$ python 02_train_vae.py --new_model
$ python 03_generate_rnn_data.py
$ python 04_train_rnn.py --new_model --batch_size 100
$ python 05_train_controller.py car_racing -n 4 -t 1 -e 4 --max_length 1000

目次

賞賛の声
訳者まえがき
まえがき

第I部 生成型ディープラーニング入門

1章 生成モデリング
    1.1 生成モデリングとは何か?
        1.1.1 生成モデリングと識別モデリング
        1.1.2 機械学習の進歩
        1.1.3 生成モデリングの隆盛
        1.1.4 生成モデリングの枠組み
    1.2 確率生成モデル
        1.2.1 Hello Wrodl!
        1.2.2 最初の確率生成モデル
        1.2.3 単純ベイズ(Naive Bayes)
        1.2.4 Hello Wrodl!の続き
    1.3 生成モデルの課題
        1.3.1 表現学習
    1.4 環境のセットアップ
    1.5 まとめ

2章 ディープラーニング
    2.1 構造化されたデータと構造化されていないデータ
    2.2 ディープニューラルネットワーク
        2.2.1 KerasとTensorFlow
    2.3 最初のディープニューラルネットワーク
        2.3.1 データを読み込む
        2.3.2 モデルを作成する
        2.3.3 モデルをコンパイルする
        2.3.4 モデルを訓練する
        2.3.5 モデルを評価する
    2.4 モデルを改善する
        2.4.1 畳み込み層
        2.4.2 バッチの正規化
        2.4.3 ドロップアウト層
        2.4.4 すべてをまとめる
    2.5 まとめ

3章 変分オートエンコーダ
    3.1 展覧会
    3.2 オートエンコーダ
        3.2.1 最初のオートエンコーダ
        3.2.2 エンコーダ
        3.2.3 デコーダ
        3.2.4 エンコーダとデコーダを連結する
        3.2.5 オートエンコーダの解析
    3.3 変分展覧会
    3.4 変分オートエンコーダの作成
        3.4.1 エンコーダ
        3.4.2 損失関数
        3.4.3 変分オートエンコーダの解析
    3.5 VAEを使った顔生成
        3.5.1 VAEの訓練
        3.5.2 VAEの解析
        3.5.3 新しい顔の生成
        3.5.4 潜在空間内での計算
        3.5.5 顔のモーフィング
    3.6 まとめ

4章 敵対的生成ネットワーク
    4.1 ガニマル
    4.2 GAN入門
    4.3 初めてのGAN
        4.3.1 識別器
        4.3.2 生成器
        4.3.3 GANを訓練する
    4.4 GANの課題
        4.4.1 損失の振動
        4.4.2 モード崩壊
        4.4.3 意味がない損失
        4.4.4 ハイパーパラメータ
        4.4.5 GANの課題に取り組む
    4.5 Wasserstein GAN
        4.5.1 Wasserstein損失
        4.5.2 Lipschitz制約
        4.5.3 重みをクリッピングする
        4.5.4 WGANを訓練する
        4.5.5 WGANの分析
    4.6 WGAN-GP
        4.6.1 勾配ペナルティ損失
        4.6.2 WGAN-GPの分析
    4.7 まとめ

第II部 コンピュータに作画、作文、作曲、ゲームプレイを教える

5章 描く
    5.1 リンゴとオレンジ
    5.2 CycleGAN
    5.3 初めてのCycleGAN
        5.3.1 概要
        5.3.2 生成器(U-Net)
        5.3.3 識別器
        5.3.4 CycleGANをコンパイルする
        5.3.5 CycleGANを訓練する
        5.3.6 CycleGANを解析する
    5.4 モネのような絵を描くCycleGANを作る
        5.4.1 生成器(ResNet)
        5.4.2 CycleGANの解析
    5.5 ニューラルスタイル変換
        5.5.1 コンテンツ損失
        5.5.2 スタイル損失
        5.5.3 全変動損失
        5.5.4 ニューラルスタイル変換を実行する
        5.5.5 ニューラルスタイル変換モデルを解析する
    5.6 まとめ

6章 書く
    6.1 やっかいな悪党のための文芸クラブ
    6.2 LSTMネットワーク
    6.3 初めてのLSTMネットワーク
        6.3.1 トークン化する
        6.3.2 データセットを作成する
        6.3.3 LSTMのアーキテクチャ
        6.3.4 埋め込み層
        6.3.5 LSTM層
        6.3.6 LSTMセル
    6.4 新しいテキストを生成する
    6.5 RNNの拡張
        6.5.1 多層再帰型ネットワーク
        6.5.2 GRU
        6.5.3 双方向セル
    6.6 エンコーダ–デコーダモデル
    6.7 質問回答生成器
        6.7.1 質問と回答のデータセット
        6.7.2 モデルのアーキテクチャ
        6.7.3 推論
        6.7.4 モデルの出力
    6.8 まとめ

7章 作曲する
    7.1 準備
        7.1.1 音楽の表記
    7.2 初めての音楽生成RNN
        7.2.1 アテンション
        7.2.2 Kerasでアテンション機構を作成する
        7.2.3 アテンション機構付きRNNの解析
        7.2.4 エンコーダ–デコーダネットワークのアテンション機構
        7.2.5 ポリフォニックな音楽を生成する
    7.3 MuseGAN
    7.4 初めてのMuseGAN
    7.5 MuseGAN生成器
        7.5.1 和音、スタイル、旋律、グルーブ
        7.5.2 小節生成器
        7.5.3 すべてをまとめる
    7.6 評価器
    7.7 MuseGANの解析
    7.8 まとめ

8章 プレイする
    8.1 強化学習
        8.1.1 OpenAI Gym
    8.2 世界モデルのアーキテクチャ
        8.2.1 変分オートエンコーダ
        8.2.2 MDN-RNN
        8.2.3 コントローラ
    8.3 セットアップ
    8.4 訓練プロセスの概観
    8.5 ランダムなロールアウトデータを収集する
    8.6 VAEを訓練する
        8.6.1 VAEのアーキテクチャ
        8.6.2 VAEを探索する
    8.7 RNNを訓練するデータを収集する
    8.8 MDN-RNNを訓練する
        8.8.1 MDN-RNNアーキテクチャ
        8.8.2 MDN-RNNから次のzと報酬をサンプリングする
        8.8.3 MDN-RNNの損失関数
    8.9 コントローラを訓練する
        8.9.1 コントローラのアーキテクチャ
        8.9.2 CMA-ES
        8.9.3 CMA-ESを並列化する
        8.9.4 コントローラの訓練からの出力
    8.10 夢の中での訓練
        8.10.1 夢の中でのコントローラの訓練
        8.10.2 夢の中での訓練の課題
    8.11 まとめ

9章 生成モデリングの未来
    9.1 LSTMネットワーク
    9.2 トランスフォーマ
        9.2.1 位置エンコード処理
        9.2.2 マルチヘッドアテンション
        9.2.3 デコーダ
        9.2.4 トランスフォーマの分析
        9.2.5 BERT
        9.2.6 GPT-2
        9.2.7 MuseNet
    9.3 画像生成での進展
        9.3.1 ProGAN
        9.3.2 SAGAN
        9.3.3 BigGAN
        9.3.4 StyleGAN
    9.4 生成モデリングの応用
        9.4.1 AIアート
        9.4.2 AIミュージック

10章 まとめ

付録A GPT-3
    A.1 はじめに
    A.2 GPT-2との違い
    A.3 GPT-3の性能
    A.4 GPT-3の応用
    A.5 GPT-3の課題
    A.6 おわりに

参考文献
索引