研究装置そのもの予測を封印して採点する仕組みを、介入を伴う領域へ持ち込めるかEnglish
この方法がすること
予測を先に封印し、期日が来たら採点する——この形は、観測する人が対象を動かさないことを暗黙に仮定しています。私たちの装置もそう作られていました。稼働中の4領域がすべて非介入だったので、その仮定が問題になったことが一度もなかったからです。
外部の利用者が、予測者自身が行動する領域へこの装置を当てようとして、前提が5か所で破れると報告してきました。
| # | 破れ | 何が起きるか |
|---|---|---|
| B1 | 帰属の交絡 | 外れたのがモデルのせいか、誰も動かなかったせいかを分けられない |
| B2 | 自己成就・自己破壊 | 予測者と行為者が同じなので、自分の予測をわざと外しにいける |
| B3 | 採点日が外生 | 採点日を自分で選べない |
| B4 | 待ちが停滞になる | 観測では「待つ」が正当な終わり方だが、介入では待ち=停滞 |
| B5 | 非定常 | 成功が分布を変える。測っている量が自分の打ち手で動く |
この方法は、5つそれぞれにフィールドと、記録を拒否する不変条件を1つずつ対応させます。作法として覚えておく規約ではなく、違反する記録が書けなくなる形にします。
図で見る
結果が取れる時点・撤回条件+介入型 打ち手・行為者・効き先と向き
打刻・期待時点・ベースライン断面
採点日の外生性・再開期限・干渉スタンス
方法
打ち手の側に固定するもの
action(打ち手)/actor(誰が打つか)/channel・direction(どの量にどちら向きに効くか)/decided_at(打つと決めた時点)/expected_at(効果が読める時点)/baseline_as_of(比較の基準にする断面日)/due_kind(採点日が自分のものか外生か)/resume_deadline(待ちの終わり)/stance(後述)/side_effects(跳ね返り)/not_taken(採らなかった選択肢)。
採点の側に要求するもの
4点結合——閾値を割ったか/意思決定が開かれたか/行動が実行されたか/結果がどうなったか。介入を伴う予測は、これが無いと採点そのものができません。「意思決定が開かれなかった」も結果の1つとして記録します。
自己干渉をどう扱うか
封印時に stance を宣言させます。
commitment(打つ前提で結果を予測する):4点結合で採点する。打ち手が実行されなかったなら、それはモデルの反証ではない。non_interference(打たないと約束したうえで予測する):誓約が破れたら必ず未解決にする。当たっていても採点しない。
「介入込みの成功として数える」案は採りませんでした。それを認めると、良いモデルと良い実行者を台帳が区別できなくなるからです。装置が測ろうとしているのは前者です。
「採点日が来なかった」を第3の結果にする
従来これは「証拠不足」に吸収され、「期日が来なかった」と「期日は来たが測れなかった」が台帳上で同じ形になっていました。観測型では前者がまれなので害が小さかったのですが、介入型では常態になります。独立した結果として持ち、採点数には数えません。
何を調べたか
観測型の予測契約に、介入型を扱うための最小の追加は何か。文法を1つ足せば足りるのか、停止条件と採点書式まで分岐が要るのか。
なぜ重要か
封印して採点する装置の記録が溜まっているのは、結果の観測が安く速い領域に偏って見えます。観測が高い領域、とりわけ前に進めること自体が目的で介入を伴う領域では、装置は事後に語るだけの形へ退化しがちです。その退化が装置の限界なのか、単に文法が足りていないだけなのかを分けるには、まず文法の側を潰す必要があります。
何が変わったか
- 介入の仕様と4点結合を契約へ追加し、B1〜B5に不変条件を1つずつ対応させた。
- 採点結果に「期日が来なかった」を追加し、採点数から除外した。
- 自己干渉の扱いを、封印時の宣言で決着させた。
- 介入を持たない予測は1バイトも変わらない。既存の封印済み予測のハッシュは1件も動いていない。
何が失敗したか
最初の実装では、「期日が来なかった予測は採点できない」という関門を結果の側にだけ置きました。ところが昇格の判定は結果ではなく評価レコードを読みます。つまり「結果は期日未到来、評価は支持」という経路が関門を素通りし、モデル昇格まで通る状態でした。
これは私たちが自分で文書に書いてある弱点そのものです——守りたい条件ごとに1箇所の関門を置くと、後から生えた経路がその関門を通らない。関門は条件ごとではなく、条件に触れる経路ごとに要る。 同じ型の漏れを作ったのはこれで3回目でした。
評価の側にも関門を足して塞ぎ、さらにその条件に触れうる経路を全部数え上げてテストに固定しました。数え上げた結果、この装置には status の世界が2つあり(互いに変換器を持たない)、片方には「期日が来なかった」が構造上到達できないこと、仮に未知の値が入っても全ゲートが安全側に倒れることを確認しています。
この方法が保証すること
- 列挙した9件の反例を、契約が実際に拒否すること。
- 介入を持たない予測の封印内容が変わらないこと。
- 「期日が来なかった」が採点数に混ざらないこと。
この方法が保証しないこと
- 5つの破れが全部であること。 一覧は外部の利用者が数えたもので、こちらが独立に数え直していません。6番目があるかは未確認です。
- この文法が実際の介入研究に十分であること。 この形で封印された予測は、まだ1本も採点日を迎えていません。
- 特定の応用分野についての知見。ここには何も含まれていません。
結果
| 破れ | 拒否される記録 | 反例 |
|---|---|---|
| B1 | 4点結合の無い採点/意思決定が開かれていないのに支持・反証を主張/決定なしに実行を記録 | 3件 |
| B2 | 登録より後の打刻/打てない者による非干渉の誓約/誓約を破ったまま採点 | 3件 |
| B3 | 外生の採点日に待ちの終わりが無い | 1件 |
| B4 | 再開期限が効果の期待時点より前 | 1件 |
| B5 | 決定より後に測った量をベースラインと呼ぶ | 1件 |
反例9件すべて拒否、肯定側の確認3件すべて成立。
証拠の範囲
契約の検証のみです。採点された予測は0本、独立再現は0件、外部の専門家によるレビューは未実施。応用領域の実データはこの研究に一切入っていません。
まだ分からないこと
- 6番目の破れがあるか。
- 介入型では「期日が来なかった」が常態になりうるので、その率そのものに上限を封印すべきではないか。全予測が期日未到来で終わる装置は、採点していないのと同じです。
- 停止条件と採点書式にも分岐が要るか。今は文法だけを足し、共通のままにしています。
- この装置のもう一方の内部経路(領域アダプタが使う側)には、そもそも打ち手を書く場所がありません。そちらは未対応のままです。
この結論が崩れるとき
- この文法で介入予測を書こうとした人が、「書く場所が無い」破れを1つでも報告したとき。
- 文法を足しても介入領域の封印が進まなかったとき。そのときは律速が文法ではなく、測りたい述語がどのデータ列にも存在しないこと、あるいは組織上の権限境界にあった、ということになります。私たちはこちらが本命だとみています。
自分で確かめる
python scripts/reproduce.py --quick interventionこのディレクトリからも実行できます。
python tests/validate_intervention_grammar.py公開しているのは標準ライブラリだけで動く独立実装です。内部の研究ランタイムは非公開なので、両者が一致していることは主張であって、ここで示されてはいません。
証拠とデータ
- 契約の実装、検証器、反例
- 内部の元Episodeのハッシュ:
3b18a130f97481ccdd02226609c7d20a5a46a8397acb9a8771dfbff555496880
外部からの検証
- 独立再現:0
- 再現失敗:0
- 公開後に確認されたbug:0
- 未解決の批判:0
次の実験
この文法で書かれた介入予測が最初の採点日を迎えること。それまでは、ここにあるのは拒否されるべき記録が拒否されるという事実だけです。