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

Book description

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

Table of contents

  1.  大扉
  2.  クレジット
  3.  賞賛の声
  4.  訳者まえがき
  5.  まえがき
  6. 第Ⅰ部 生成型ディープラーニング入門
  7.  1章 生成モデリング
  8.   1.1 生成モデリングとは何か?
  9.    1.1.1 生成モデリングと識別モデリング
  10.    1.1.2 機械学習の進歩
  11.    1.1.3 生成モデリングの隆盛
  12.    1.1.4 生成モデリングの枠組み
  13.   1.2 確率生成モデル
  14.    1.2.1 Hello Wrodl!
  15.    1.2.2 最初の確率生成モデル
  16.    1.2.3 単純ベイズ(Naive Bayes)
  17.    1.2.4 Hello Wrodl! の続き
  18.   1.3 生成モデルの課題
  19.    1.3.1 表現学習
  20.   1.4 環境のセットアップ
  21.   1.5 まとめ
  22.  2章 ディープラーニング
  23.   2.1 構造化されたデータと構造化されていないデータ
  24.   2.2 ディープニューラルネットワーク
  25.    2.2.1 KerasとTensorFlow
  26.   2.3 最初のディープニューラルネットワーク
  27.    2.3.1 データを読み込む
  28.    2.3.2 モデルを作成する
  29.    2.3.3 モデルをコンパイルする
  30.    2.3.4 モデルを訓練する
  31.    2.3.5 モデルを評価する
  32.   2.4 モデルを改善する
  33.    2.4.1 畳み込み層
  34.    2.4.2 バッチの正規化
  35.    2.4.3 ドロップアウト層
  36.    2.4.4 すべてをまとめる
  37.   2.5 まとめ
  38.  3章 変分オートエンコーダ
  39.   3.1 展覧会
  40.   3.2 オートエンコーダ
  41.    3.2.1 最初のオートエンコーダ
  42.    3.2.2 エンコーダ
  43.    3.2.3 デコーダ
  44.    3.2.4 エンコーダとデコーダを連結する
  45.    3.2.5 オートエンコーダの解析
  46.   3.3 変分展覧会
  47.   3.4 変分オートエンコーダの作成
  48.    3.4.1 エンコーダ
  49.    3.4.2 損失関数
  50.    3.4.3 変分オートエンコーダの解析
  51.   3.5 VAEを使った顔生成
  52.    3.5.1 VAEの訓練
  53.    3.5.2 VAEの解析
  54.    3.5.3 新しい顔の生成
  55.    3.5.4 潜在空間内での計算
  56.    3.5.5 顔のモーフィング
  57.   3.6 まとめ
  58.  4章 敵対的生成ネットワーク
  59.   4.1 ガニマル
  60.   4.2 GAN入門
  61.   4.3 初めてのGAN
  62.    4.3.1 識別器
  63.    4.3.2 生成器
  64.    4.3.3 GANを訓練する
  65.   4.4 GANの課題
  66.    4.4.1 損失の振動
  67.    4.4.2 モード崩壊
  68.    4.4.3 意味がない損失
  69.    4.4.4 ハイパーパラメータ
  70.    4.4.5 GANの課題に取り組む
  71.   4.5 Wasserstein GAN
  72.    4.5.1 Wasserstein損失
  73.    4.5.2 Lipschitz制約
  74.    4.5.3 重みをクリッピングする
  75.    4.5.4 WGANを訓練する
  76.    4.5.5 WGANの分析
  77.   4.6 WGAN-GP
  78.    4.6.1 勾配ペナルティ損失
  79.    4.6.2 WGAN-GPの分析
  80.   4.7 まとめ
  81. 第Ⅱ部 コンピュータに作画、作文、作曲、ゲームプレイを教える
  82.  5章 描く
  83.   5.1 リンゴとオレンジ
  84.   5.2 CycleGAN
  85.   5.3 初めてのCycleGAN
  86.    5.3.1 概要
  87.    5.3.2 生成器(U-Net)
  88.    5.3.3 識別器
  89.    5.3.4 CycleGANをコンパイルする
  90.    5.3.5 CycleGANを訓練する
  91.    5.3.6 CycleGANを解析する
  92.   5.4 モネのような絵を描くCycleGANを作る
  93.    5.4.1 生成器(ResNet)
  94.    5.4.2 CycleGANの解析
  95.   5.5 ニューラルスタイル変換
  96.    5.5.1 コンテンツ損失
  97.    5.5.2 スタイル損失
  98.    5.5.3 全変動損失
  99.    5.5.4 ニューラルスタイル変換を実行する
  100.    5.5.5 ニューラルスタイル変換モデルを解析する
  101.   5.6 まとめ
  102.  6章 書く
  103.   6.1 やっかいな悪党のための文芸クラブ
  104.   6.2 LSTMネットワーク
  105.   6.3 初めてのLSTMネットワーク
  106.    6.3.1 トークン化する
  107.    6.3.2 データセットを作成する
  108.    6.3.3 LSTMのアーキテクチャ
  109.    6.3.4 埋め込み層
  110.    6.3.5 LSTM層
  111.    6.3.6 LSTMセル
  112.   6.4 新しいテキストを生成する
  113.   6.5 RNNの拡張
  114.    6.5.1 多層再帰型ネットワーク
  115.    6.5.2 GRU
  116.    6.5.3 双方向セル
  117.   6.6 エンコーダ–デコーダモデル
  118.   6.7 質問回答生成器
  119.    6.7.1 質問と回答のデータセット
  120.    6.7.2 モデルのアーキテクチャ
  121.    6.7.3 推論
  122.    6.7.4 モデルの出力
  123.   6.8 まとめ
  124.  7章 作曲する
  125.   7.1 準備
  126.    7.1.1 音楽の表記
  127.   7.2 初めての音楽生成RNN
  128.    7.2.1 アテンション
  129.    7.2.2 Kerasでアテンション機構を作成する
  130.    7.2.3 アテンション機構付きRNNの解析
  131.    7.2.4 エンコーダ–デコーダネットワークのアテンション機構
  132.    7.2.5 ポリフォニックな音楽を生成する
  133.   7.3 MuseGAN
  134.   7.4 初めてのMuseGAN
  135.   7.5 MuseGAN生成器
  136.    7.5.1 和音、スタイル、旋律、グルーブ
  137.    7.5.2 小節生成器
  138.    7.5.3 すべてをまとめる
  139.   7.6 評価器
  140.   7.7 MuseGANの解析
  141.   7.8 まとめ
  142.  8章 プレイする
  143.   8.1 強化学習
  144.    8.1.1 OpenAI Gym
  145.   8.2 世界モデルのアーキテクチャ
  146.    8.2.1 変分オートエンコーダ
  147.    8.2.2 MDN-RNN
  148.    8.2.3 コントローラ
  149.   8.3 セットアップ
  150.   8.4 訓練プロセスの概観
  151.   8.5 ランダムなロールアウトデータを収集する
  152.   8.6 VAEを訓練する
  153.    8.6.1 VAEのアーキテクチャ
  154.    8.6.2 VAEを探索する
  155.   8.7 RNNを訓練するデータを収集する
  156.   8.8 MDN-RNNを訓練する
  157.    8.8.1 MDN-RNNアーキテクチャ
  158.    8.8.2 MDN-RNNから次のzと報酬をサンプリングする
  159.    8.8.3 MDN-RNNの損失関数
  160.   8.9 コントローラを訓練する
  161.    8.9.1 コントローラのアーキテクチャ
  162.    8.9.2 CMA-ES
  163.    8.9.3 CMA-ESを並列化する
  164.    8.9.4 コントローラの訓練からの出力
  165.   8.10 夢の中での訓練
  166.    8.10.1 夢の中でのコントローラの訓練
  167.    8.10.2 夢の中での訓練の課題
  168.   8.11 まとめ
  169.  9章 生成モデリングの未来
  170.   9.1 5年間の進展
  171.   9.2 トランスフォーマ
  172.    9.2.1 位置エンコード処理
  173.    9.2.2 マルチヘッドアテンション
  174.    9.2.3 デコーダ
  175.    9.2.4 トランスフォーマの分析
  176.    9.2.5 BERT
  177.    9.2.6 GPT-2
  178.    9.2.7 MuseNet
  179.   9.3 画像生成での進展
  180.    9.3.1 ProGAN
  181.    9.3.2 SAGAN
  182.    9.3.3 BigGAN
  183.    9.3.4 StyleGAN
  184.   9.4 生成モデリングの応用
  185.    9.4.1 AIアート
  186.    9.4.2 AIミュージック
  187.  10章 まとめ
  188.  付録A GPT-3
  189.   A.1 はじめに
  190.   A.2 GPT-2との違い
  191.   A.3 GPT-3の性能
  192.   A.4 GPT-3の応用
  193.   A.5 GPT-3の課題
  194.   A.6 おわりに
  195.  参考文献
  196.  著者紹介
  197.  奥付

Product information

  • Title: 生成 Deep Learning ―絵を描き、物語や音楽を作り、ゲームをプレイする
  • Author(s): David Foster, 松田 晃一, 小沼 千絵
  • Release date: October 2020
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873119205

You might also like

book

詳説 Deep Learning ―実務者のためのアプローチ

by Josh Patterson, Adam Gibson, 本橋 和貴, 牧野 聡, 新郷 美紀

エンタープライズ向けのディープラーニングの解説書。企業でディープラーニングアプリケーションを開発、運用するための実践的な手法を紹介します。対象読者はソフトウェア開発の現場で活躍する実務者。前半はディープラーニング初心者、後半はJavaエンジニア向けの構成です。機械学習、ニューラルネットワークの基礎から始め、ディープラーニングの基本的な概念、実際にチューニングを行う際のベストプラクティス、データのETL(抽出・変換・ロード)の方法、Apache Sparkを用いた並列化について、JavaライブラリDeep Learning4J(DL4J)の開発者でもある著者がわかりやすく丁寧に解説します。

book

直感 Deep Learning ―Python×Kerasでアイデアを形にするレシピ

by Antonio Gulli, Sujit Pal, 大串 正矢, 久保 隆宏, 中山 光樹

直感的かつ短いコードでアイデアを形にできるKerasはTensorFlowのラッパーとして大人気のライブラリです。本書でもTensorFlowをバックエンドとして使用し、自然言語処理、画像識別、画像生成、音声合成、テキスト生成、強化学習、AIゲームプレイなどさまざまなモデルをPythonとKerasで実装します。対象読者は、各種のディープラーニングを素早く実装したいプログラマー、データサイエンティスト。ディープラーニングを支える技術の速習にも好適です。数式はなるべく使わずにコードと図で説明します。ニューラルネットワークおよびPython 3の基本を理解している人であれば誰でも始めることができます。

book

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

by Nikhil Buduma, 太田 満久, 藤原 秀平, 牧野 聡

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

book

ゼロから作るDeep Learning ❺ ―生成モデル編

by 斎藤 康毅

人気シリーズの第5弾。今回のテーマは「生成モデル」です。本書では「正規分布」から「拡散モデル」に至るまでの技術を繋がりのあるストーリーとして展開します。読者は小さな学びを積み重ねながら、ステップバイステップで実装し、最終的には「Stable Diffusion」のような画像生成AIを完成させます。技術の面白さは細部にあります——ゼロから作る、数式に挑む。