最近「自分の考えた最強のアーキテクチャ」を表明するのが流行っているので自分も便乗する。
まず思想として、自分は方策ネットワークを最も重視したい。結局、なにかしらの報酬を最大化する行動決定を行うという部分が一番重要で、他のあらゆるモジュールはそれのための補助でしかないと考えたい。行動決定する方策に、できるだけ豊かな情報を提供することが他のモジュールの役目となる。
というわけでこういうことになる。
「世界モデルを用いた探索」は結局、内部状態にしか影響しない(直接行動決定には関わらない)。方策は、探索を待たずに行動決定することもできるし、探索結果を無視することもできる。「世界モデルを用いた探索」は、たとえば将棋でいうとマルチスレッドで置換表へ投機的に書き込みを行っていく部分になる。
探索はMCTSNetみたいな形式が一つの案である。これのルートノードに相当する抽象的な表現を常に内部状態へ書き戻すことで探索結果の反映を行い、逆に時刻が進んでセンサ入力が変わって内部状態が変化するとそれをMCTSNetの内部へ読み込むことも必要になる。このあたりはまだ具体性が一歩足りていないと思う。
補助的な立ち位置とはいえ、「世界モデルを用いた探索」は常に駆動しており、意識的な知覚体験の大部分はこちらで生じているということになる。ほぼ一定の周波数で動き続け、多くの場合内部状態への書き込みは無視されずに行動決定されるため、総体としてはここで自己決定感が生まれる。
全く自信はないが、こういうことしか考えられない。特に、学習する損失がどういうものになるかが難しい。強化学習的に、報酬だけから学習していくというのは難しいと思う。それはあまりにも疎で、信用割当が難しすぎる。
報酬設計について、たとえばマインクラフトでは一番わかりやすいところでは死亡に対して負の報酬を与えることだが、それだけでは非常に疎なので難しいだろう。その一歩手前のライフの多さや、満腹ゲージの多さとかでもまだ難しいだろうとは思われる。
ランダム行動を続けていて、偶然食物が手に入ってそれを空腹時に取得するというところにたどり着くのはいつになるか。そこまでランダムで到達するのは相当難しいように感じる。人間の幼児も大人の補助なくしてはなかなか生きられない。
ある意味で、強化学習モデルには人間の価値観を上手く与えてそれに沿って行動するように学習してもらう必要がある。しかし、現実的に人間がつきっきりになって誘導するのは難しい。よって、人間の代理として、ある程度人間的な価値観を有していると思われる視覚言語モデルを補助として使うことを考えたくなる。
視覚言語モデルは行動決定とはできるだけ分離しておきたいため、報酬モデルとしてだけ使うということを考えている。報酬モデルとして使うだけならば、必要なくなれば報酬を入れなくなるだけなので分離しやすい。
おそらく、実践的には視覚言語モデルを利用していくことは効率的な選択になるのだと思う。ここで自分が思っているのは、意思決定アーキテクチャの中に視覚言語モデルを組み込むと、学習は早くなるかもしれないが、最後に分離するのが難しくなる。
言語モデルがイマイチ好きになれないのは、トークンという形ですでに離散性に対するヒントを持ってしまっているから。ある種のチートに見えてしまう。
しかし、バイト列から学習することも否定できるだろうか? それを否定すると画像も結局そういうものであるからなにも肯定できなくなってしまうのでは?
自分の思想として、人間の価値観を明に与えなくても、なにか「情報を構造化していく」というようなモチベーションを数式的に書いて、それを報酬として学習していくことで、ある程度の知的な振る舞いが現れるのではないかと思っている。
具体的にどういう内部報酬になるのかはわからない。単に予測可能性とかでは、変化を小さくしていく方向に進んでしまいそう。マインクラフトで言えば、自分の周りをブロックで全部囲ってしまえば画面は真っ暗で定常的になるかもしれないが、それを求めているわけではない。
MineRLでのFlowMatching
STL-10とかで上手く学習できることを確認したFlowMatchingを、MineRLの方にもなんとか移植してきて学習できるようになってきた。
しかしまだ行動に紐付いた生成にはなっていない。拡散モデルのときに実装していたニューラルネットワークにバグがあるのは発見して解消したが、それでもまだ上手くいかない。
Latteというものを参考にしてみると良いのかもしれない。
ここで進歩が出ない期間が続いているのでなんとかしたい。