コンテンツにスキップ

6.6.1 生成モデルロードマップ:サンプリング、デコード、レビュー

生成モデルはラベルを予測するだけでなく、新しいサンプルを作ります。実用上の流れは、潜在コードをサンプリングし、デコードし、出力をレビューし、バージョン比較することです。

生成モデル章関係図

GAN 敵対的バランスマップ

概念最初の意味
latent vector生成に使うコンパクトな隠れ入力
decoder / generator潜在コードを出力へ変える
discriminatorGAN で本物か生成物かを判定する
VAEより滑らかな潜在空間を学ぶ
review生成結果にも人と指標の確認が必要

generative_first_loop.py を作り、torch をインストールしてから実行します。

import torch
torch.manual_seed(0)
latent = torch.randn(2, 4)
decoder = torch.nn.Sequential(torch.nn.Linear(4, 6), torch.nn.Tanh())
generated = decoder(latent)
print("latent_shape:", tuple(latent.shape))
print("generated_shape:", tuple(generated.shape))
print("value_range:", round(generated.min().item(), 3), round(generated.max().item(), 3))

出力:

latent_shape: (2, 4)
generated_shape: (2, 6)
value_range: -0.863 0.695

これはまだ本物の生成器ではありません。小さな latent vector をより大きな出力へデコードできる、という形の直感を見ています。

小さな decoder の実行結果図

順番読むまず見ること
16.6.2 GANgenerator、discriminator、敵対的バランス
26.6.3 VAEencoder、decoder、潜在空間

生成レビュー メモを 1 つ残します。

潜在入力
ランダムまたはエンコードされた圧縮ベクトル
デコーダ出力
生成サンプルまたは再構成
レビュー要否
loss だけでは生成品質は証明できない
GAN の焦点
リアリズムと多様性は互いに競合しうる
VAE の焦点
再構成と潜在空間の滑らかさ のトレードオフ

ラベル予測とサンプル生成の違いを説明し、生成結果を盲信せずレビューが必要な理由を言えれば合格です。

確認の考え方と解説
  1. 合格レベルの答えでは、tensor、model layer、loss、backward()、optimizer update を1つの学習ループとしてつなげます。
  2. 証拠には、動く小さな実験、tensor shape の確認、説明できる loss または validation curve を含めます。
  3. shape mismatch、loss が下がらない、過学習、data leakage、Attention/Transformer の data flow を説明できない、といった失敗例を1つ言えればよいです。