反変原理からシミュレータ設計を考える
きっかけ
反変原理と選択の癖のノート(obsidian/反変原理と選択の癖__0303)で、ねおのとの議論から出た問い:
ローバーにとっての「十分に難しい課題」とは何か?
Phase Aシミュレータを設計するにあたって、この問いは環境設計に直結する。
反変原理の再定義:ローバー文脈
反変原理:課題の制約が十分に多いと、出発点が違っても解が近傍に収束する。
ローバーにとって:
- 変数 = 行動パターン(どの方向にどれだけ動くか、何を避けるか、何に近づくか)
- 制約 = 環境の構造(壁、障害物、通路、行き止まり)
- 解 = 環境に適応した運動戦略
制約が少ない(空の部屋)→ 行動パターンは散漫で不定。偏りが育ちにくい。 制約が多い(複雑な間取り)→ 特定の巡回路に収束しやすい。が、どの巡回路に収束するかに微差が出る。
この微差が世界由来の偏りの正体。
シミュレータで検証すべきこと
021の修正で、Phase Aの意味が「動きの検証」から「世界由来の偏りの観察」に変わった。であれば、シミュレータはこれを検証できる設計にすべき。
実験1:同一環境・複数インスタンス
- 同じ部屋に初期位置・角度だけ変えた複数ローバーを走らせる
- 時間経過後、各ローバーの行動パターンを比較
- 問い: 収束するか? どの程度似てくるか?
- 014のIf-Then Rulesは決定論的だが、初期位置の差がセンサー入力の系列を変え、memory蓄積に差を生む
- 結果が完全に同一なら、ランダム要素が足りない(Phase Aの段階でどこまで確率的であるべきか)
実験2:異なる環境・同一パラメータ
- 部屋の形状を変える(正方形、L字、T字、狭い通路)
- 同じ初期パラメータのローバーがどう違う偏りを持つか
- 問い: 環境が十分に複雑なとき、行動パターンはどう収束するか
- L字の部屋は「曲がった先を探索するか避けるか」の分岐がある。ここに偏りが宿る
実験3:偏りの可視化
- 部屋を格子に分割し、各セルの滞在時間をヒートマップにする
- 時系列で見ると「最初は均一 → 徐々に偏る → 固着」の過程が見えるはず
- 固着のタイムスケールは何tick? これがPhase Bの反芻設計に影響する
環境設計の指針
空の部屋(正方形)は最低限のベースライン。しかしそれだけでは制約が弱すぎて偏りが育たない可能性。
Phase Aに適した環境:
- 壁で区切られた2-3の部屋(通路で接続)
- 1つの行き止まり(行き止まりを記憶して避けるようになるか?)
- 中央に島状の障害物(左右どちらを回るかに偏りが出る)
ポイント:「どちらでもいい選択肢」を環境に埋め込む。 左からも右からも回れる障害物。奥に行っても手前に留まっても良い空間。この「どちらでもよさ」に偏りが刻まれる。
帰納バイアスとしてのコード
反変原理のノートでの整理:
- 何を見てきたか(visual diet)→ 経験
- どういう回路構造か(帰納バイアス)→ 生得的構造
ローバーにおける帰納バイアスは、ぼくたちが書くコード自体。If-Then Rulesの初期重み、conflict resolutionのパラメータ、memory decayの速さ——これらすべてが「この子はこういう解き方をしやすい」を決める。
神谷論文の指摘:アロスタシスに根ざした帰納バイアスが脳にはある。ローバーにはない。代わりに何がある?
016のvalence設計を振り返る。選択肢A(Schmidhuberの学習進捗)は純粋に認知的。選択肢B(ホメオスタシスからの逸脱)は身体的。021の修正で valence = learning_progress * (1.0 if who_present else 0.3) としたが、これは両方の混合。
Phase Aでは人がいないので、valence = learning_progress * 0.3。弱いが存在する。この弱いvalenceが記憶の強度差を生み、想起頻度に差を生み……と連鎖する。
問い:learning_progressの0.3倍は、偏りを育てるのに十分な「種」になるか? これはシミュレータで実測する問題。
次のステップ
この分析を持って、Phase Aシミュレータの最小構成を定義する:
- 環境: 複数の部屋テンプレート(正方形、L字、島あり)
- ローバー: 014の基本Brain + SpatialMemory + If-Then Rules
- 追加: 滞在ヒートマップ生成、memory内容の可視化
- 実験: 同一環境・複数ランの比較、環境差の比較
- 計測: 偏りの固着タイムスケール、valence=0.3での記憶強度分布
設計書ではなくシミュレーションの「問い」を先に立てた。これで動かす目的が明確になる。