2. 研究手法

2.1 比較対象モデル

モデル 遷移メカニズム パラメータ規模 出典思想
RNN (GRU) GRU で潜在状態を更新、隠れ状態を rollout で引き継ぐ ~1.55M Ha & Schmidhuber 2018
Transformer [latent_token, action_token] の2トークンを TransformerEncoder で処理 ~1.85M Dreamer-v3 / IRIS
Latent Diffusion 潜在空間で条件付き DDPM (10ステップ) を逆過程サンプリング ~1.80M Stable Diffusion 系
VQ-VAE+Trans 潜在を 128 codebook の離散コードに量子化、Transformer で次コードを cross-entropy 分類 ~1.85M Genie / GameGen

全モデルが共通の CNNEncoder(latent_dim=128)CNNDecoder(latent_dim=128) を使用する。重みはモデルごとに独立して end-to-end で学習される。

2.2 実験環境(5タスク)

環境 状態次元 行動 報酬 特徴
GridWorld 5×5 離散25 離散4 (上下左右) ゴール+1 / step −0.01 最も単純な離散ベースライン
CartPole 連続4 離散2 生存+1 連続状態に慣れる
MountainCar 連続2 離散3 step −1 / ゴール 0 スパース報酬
Pendulum 連続2 連続1 (トルク) $-(\theta^2 + 0.1\dot\theta^2 + 0.001 u^2)$ 連続行動・周期状態
CartPole Swingup 連続4 連続1 $(1+\cos\theta)/2$ DMControl的な振り上げ

すべて 64×64 RGB 画像観測 に変換される。連続環境はすべて純Python+NumPy で自前実装し、gym/mujoco 等の追加依存を排除した(再現性確保のため)。

2.3 学習プロトコル

  1. データ収集: ランダム方策で5000ステップ(compare)または6000ステップ(analysis)を収集
  2. 訓練: 80% を学習用、20% をテスト用に分割。50 epochs (analysis では 60 epochs)
  3. 損失関数: 各モデル固有の遷移ロス + 共通の再構成ロス + 報酬ロス
  4. 評価:
  5. 1-step pixel MAE: テストセット上で1ステップ予測誤差
  6. Compounding error: 15ステップの imagined rollout で各時刻の MAE
  7. Latent PCA寄与率: encoder出力の主成分上位2軸の累積寄与率
  8. Data efficiency: 訓練データ {500, 2000, 5000} サンプルでの1-step MAE

2.4 評価指標

  • 1-step Pixel MAE: 1ステップ予測画像と真の次画像の絶対差の平均([0,1] 正規化済み画素値で計算)。世界モデルの最も基本的な精度指標。
  • Compounding Error: $t$ ステップ目の imagined frame と真の frame の MAE。潜在空間ロールアウトでの誤差蓄積を測る。Dreamer 系で重視される指標。
  • PCA Var (寄与率): 潜在表現の上位2主成分が占める分散割合。連続環境では「intrinsic 2D の状態を低次元に圧縮できているか」の指標。
  • Frame visualization: 8ステップの imagined rollout を画像として並べ、視覚的劣化のパターンを確認。

2.5 実験環境

  • ソフトウェア: Python 3.x, PyTorch, NumPy, Matplotlib(sklearn 等の追加依存なし。PCA は numpy で自前実装)
  • 乱数シード: 42(全モデル共通、再現性確保)