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 学習プロトコル
- データ収集: ランダム方策で5000ステップ(compare)または6000ステップ(analysis)を収集
- 訓練: 80% を学習用、20% をテスト用に分割。50 epochs (analysis では 60 epochs)
- 損失関数: 各モデル固有の遷移ロス + 共通の再構成ロス + 報酬ロス
- 評価:
- 1-step pixel MAE: テストセット上で1ステップ予測誤差
- Compounding error: 15ステップの imagined rollout で各時刻の MAE
- Latent PCA寄与率: encoder出力の主成分上位2軸の累積寄与率
- 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(全モデル共通、再現性確保)