2026年2月25日水曜日

A Robot Organizing Purposive Behavior by Itself

 A Robot Organizing Purposive Behavior by Itself

著者 1992年

  • S. Ikeda(池田)

  • K. Nakano(中野)

  • Y. Sakaguchi(坂口)

東京大学 数理工学・情報物理系

この論文はAssociatron(記憶モデル)中野先生(1972年)をもとに
池田先生がAssociatronを使ってロボットを動かすというもの。

本研究では、知覚・記憶・行動を統合したモデルとして、連想記憶モデルAssociatronを脳とするロボットを構築した。ロボットは外界との相互作用を通じて、状態・行動・結果の関係を経験的に記憶し、内部に「World Image(世界モデル)」を形成する。初期段階ではランダムに行動するが、試行錯誤による学習の蓄積により、目的を達成するための有効な行動系列を自ら組織するようになる。本研究は、単純化された環境においても、経験に基づく自己組織的な目的行動が実現できることを示した。


World Image

状態 x

  ─行動a→

状態 y


脳の中では

ξ ─α→ η

として記憶される。

書かれているように
The system acts at random to get knowledge.

(最初はランダムに行動して知識を得る)

As knowledge increases, it forms effective behavior.

つまり、最初は意味なし → 経験 → 収束
まったく同じです。



ですが、最後の方に

Simplified, but retains the essence.
本質が出ていれば、世界は小さくていい
世界 → ロボット → 行動 → 評価
そして当時はまだ 3人称。
自律ではなく、
行動の自己組織です。
ロボットというものは状態遷移する対象であり、観測されるシステム
主体としての内部感覚は扱っていませんでした。

そして30年が過ぎ

現在の研究では次のシーンに入っています。




---- Atron(Associatron Robot)---------

Atron(Associatron Robot)は、この枠組みを基盤とし、さらに次の要素を含む。

  • 外輪(環境・社会)と内輪(内部状態)の相互作用

  • 一人称的な行動決定(自律)

  • 行動だけでなく意味の形成

  • 社会的収束(相互影響)

  • 時間軸による状態変化

  • 個体差(性格の変化)

  • 履歴の積に依存する不可逆性
    (同じ状態に見えても、過去が違えば未来の行動が変わること)



不可逆性

この枠組みから分かることは、

人間や生物の行動は、単なる状態遷移ではなく、

  • 外部環境の影響

  • 社会との関係

  • 経験の蓄積

  • 不安・迷い・疲労

  • 安心・欲求

  • 「戻りたい」という指向

といった、主観的な重みの履歴の積によって決定されるということである。



なぜ「積」が不可逆になるのか


まず通常の更新

◆加算モデル

w(t+1) = w(t) + Δ

これは線形です。
経験の影響は一定。


◆積モデル

w(t+1) = w(t) × (1 + Δ)


ここで、

  • 良い経験 → Δ > 0 → 増幅

  • 悪い経験 → Δ < 0 → 減衰

これを繰り返すと、

w(t) = w(0) × Π(1 + Δi)

つまり、

履歴の積 これが不可逆

Atron的な意味

home_weight

夜に安全だった → ×1.1
夜に危険だった → ×0.8

何回か経験すると

home_weight = 初期値 × (履歴の積)

同じ状態に戻っても、

重みは元に戻らない。

これが履歴依存。


積モデルの良いところ

① 成長する

小さな差が大きな個体差になる。

→ 性格形成に向く


② 非線形

加算よりも、

  • 慎重型

  • 探索型

などが分かれやすい。


③ Atronの思想に合う

外輪の影響 × 内輪の状態

という、

乗算的世界

になります。


ただし注意

積は暴れやすい。

問題

  • どんどん大きくなる

  • 0に近づくと戻れない

対策

方法1:対数空間

log w(t+1) = log w(t) + log(1 + Δ)

これは実質加算ですが、
意味は積。


方法2:クリップ

w = clamp(w, w_min, w_max)


0.1 ~ 10


方法3:弱い積

w(t+1) = w(t) × (1 + εΔ)

ε = 0.05 など


The internal weights are updated multiplicatively based on experience. Therefore, each weight reflects the cumulative product of past influences, resulting in history-dependent irreversible dynamics.


加算と積の違い

加算:
経験の記録

積:
経験の影響の強さの変化


Atron的には、

  • 意味の強化

  • 安心の形成

  • 恐怖の増幅

はこちらの方が自然です。


一番Atronらしい書き方

w(t+1) = w(t) × exp(η × experience)

これは

履歴の指数積分
になります。



これらの重みは時間とともに変化し、元の状態に戻ることはできない。
すなわち、行動と意味の形成は、本質的に不可逆な過程である。



「積」によって個体の性格に変化が起こる。


加算の場合:

w(t+1)=w(t)+Δw(t+1) = w(t) + \Delta


  • 影響が一定

  • 過去の違いが出にくい

  • 個体差が小さい



積の場合:

w(t+1)=w(t)×(1+Δ)w(t+1) = w(t) \times (1 + \Delta)

繰り返すと、

w(t)=w(0)×i(1+Δi)w(t) = w(0) \times \prod_i (1 + \Delta_i)

つまり、

初期の小さな差 × 履歴の違い
→ 指数的に広がる

これが性格分化。


Atron的に見ると

例えば:

home_weight

夜に安全経験が多い個体
→ ×1.05 ×1.05 ×1.05 …
→ 「帰りたがる個体」

夜に危険経験が少ない個体
→ ×0.98 ×0.98 …
→ 「外に出続ける個体」

外界は同じでも、

内部の世界の重みが違う

これが一人称の違いになる。


ここが性格になる理由

積更新には特徴がある。

1. 履歴の影響が残る

元に戻りにくい
→ 不可逆

2. 分岐が起きる

慎重型
探索型
依存型
独立型

3. 小さな偶然が効く

初期ノイズ
環境の偶然
社会の影響

→ 個体差


生物的な意味

積更新は、実はこういう現象に近い。

  • 恐怖の強化

  • 安心の形成

  • 習慣

  • 自信/回避傾向

どれも、

経験が「効きやすさ」を変える構造。

これは加算より、積の方が自然。


Atronとしての核心

加算モデル
→ 記憶が増える

積モデル
重みの感受性が変わる

つまり、

状態が変わるのではなく、

世界の感じ方が変わる

ここが性格。



Multiplicative weight updates amplify small differences in experience, resulting in diverging behavioral tendencies that correspond to personality-like characteristics.

 

System behavior is shaped not by successful experiences alone, but by accumulated responses to disturbances and failures. These disturbances drive irreversible changes in internal weights, leading to the emergence of long-term behavioral tendencies.

 





Atronは、経験の履歴によって変化し続ける主観的重みを通じて、行動・意味・社会を不可逆的に形成する一人称モデルである。


自律  autonomy

 


仕事の合間に、アトロンを動かしてみる。
自営なので出来る技


前にも説明したようにこのデモはゲームじゃなくて、人工知能の成長過程を見るシステム。
古典のアソシアトロンのturboC資料からJavaScriptに変換ものです。
ロボット1とロボット2がフィールドでイベントに出会う。〇の中に×があるもの。そのイベントは木の実だったり、熊だったり、ライオンだったり、ウサギだったりするわけで、初めて出会ったときにはイベントに意味を持たないので、ライオンが危険だとか木の実が食べ物とか全く分かっていない。
言語も無いし、ロボット1にしてみるとロボット2が仲間かどうかも分からない。

それが、出会う経験と重みによって仲間という認識を持ち始め、片方はウサギを見て「ブブバブパ」と発声し、片方は「ブパパブパ」みたいなかみ合わない会話を続ける。しかし、経験を積み重ねていくと、だんだんと成立してくる。ウサギで右上の+++避難場所に逃げることもあったが、安全だと分かってくると近づき、ライオンが来ると一人が「ブパパブブ」と叫び、それを聞いたもう一方もつられて「ブブパブブ」と叫び避難場所に逃げる。




言葉は違うけど、ACFという言葉の中の内部状態を持たせることで、
経験によってだんだんと一致してくる。(想起状態が近づく,発声パターンも近似する)


ライオンは危険という意味付けではなく

言語に知覚的な特徴の組み合わせを持たせるように仕掛けているだけで、
アルゴリズムでライオンはAがあるから危険としているわけではない。

A: 危険

B: 食用

C: 毛/毛皮

D: 白

E: 黒

F: 茶色


オブジェクトはこれらの属性の組み合わせとして定義される:

雪崩 (A, D)

ライオン (A, C, F)

クマ (A, C, E)

ウサギ (B, C, D)

ナッツ (B, F)

イノシシ (B, C, E)

これ等は何が正解かを結び付けてはいない。
たぶん、人間の世界でも本能的な、「危険だろう」程度の札分けに寄せているだけで、ロボットの初動は「木の実」で逃げたり、「うさぎ」で躊躇する。これがアルゴリズムではない証拠だ。 人間の脳は100%正解に寄せてはいない。こういうものを研究したり開発をしていくと、誘惑に負けてアルゴリズムを入れたくなるが、そうすると実験としての結果はつまらないものになってしまう。

下のシーンでは、黒豚を見たロボット1が避難場所に逃げている。一方のロボット2は近づいている。 この世界には、まだ正しいとか誤りという概念が薄く、経験を積むことで収束していく。


ただ、このデモはロボット自体が微妙な立ち位置に居て、システムの中の一員として動いているので、1人称のように動いているけど、残念ながらまだ3人称。



そこで、現在独自にPythonでロボットごとにファイルを別け、ロボットごとにAtronとして1人称で動く実験をしている。(UIが汚いので、まだ公開していない)
ファイルを別けることで、ロボットがそれぞれに動き出し経験によって意味を持たせていく。意味のある動きをするのではなく、動いた結果意味が現れるというものだ。
現代のAIの向く方向とは真逆という自律とは不可逆的な条件の中から発生していく。

AtronScriptを作っておいてよかった。
ぼーっとしてると3人称システムになってしまうから、それを1人称に引き戻すためにも大切な役割を果たす。

coreになるファイルはフィールドで嵐が来たり、雷が鳴ったり、隣村や自分の村、山、木々、川の位置は変更できるようにした。

ロボットは自分の意思で動き体験して挙動を変えるので、それぞれ性格に変化が起き、お互いに成長していく。長く活動しているロボットの中に、新人ロボットを入れたとき、ライオンとベテラン・ロボットに対して同じ反応を見せたり、他のロボットに誤解を与える動きをさせて混乱させていたが、単独行動から危険を経験し、ベテランのロボットに付いて行った方が危険が少なくなるという後の意味付け作業を独自に行っている。完全な自律だ。

coreのフィールドに川を作り、木々を作ると、一気に隣村との交流が減る。
狩りが成功すると荷物を持たせるようにした。
成功という意味付けが曖昧で無いに等しかったので、そういうのは逆にあった方がいい。
人間ですらある。
成功が増えるとなぜかその場所に集まる。

いや、違うだろ・・・次々と狩れよ!

ライオンが来ると、距離の近い村に避難するようになる。
自分の村でない者は、荷物を半分置いてくるだろうか・・
(ここは凄く難しい。渡せる機能はつけたが、渡さない)
これが出来たら共同体・社会が形成される。


経験共有
危険共有
行動一致
音の近似


この辺は手を加えると、突然、3人称のアルゴリズムになりやすいので黙って放置するしかない。 経験でどう変わるか見ないと新しい刺激は足せない。


そしてこのデモのキモとなる。一度ダウンロードした別ファイルのロボットを、時間差(経験差をつけて)再びアップロードするとどうなるか・・・・

実は、このソフトはデータベースではないので、成長の履歴が無い。
通常はHDの中で画像らしきものやJSON化されたデータがあって覗けるものだが、この世界にそういうものは無い。上のデモではWorldMemoryがそれに当たるのだが、戻しても別の谷に落ちたり、赤ちゃんになる(リセットされる)。アトラクタの状態を制御なく元に戻すと、リセットされ赤ちゃんになってしまう。

人間の脳の中の記憶をどうやって外に持ち運ぶかに近い構造になっている。
脳の中のどこかに「記憶ファイル」が置かれているというより、ニューロンとニューロンを結ぶ無数の道の強さが変化して、その結果として「思い出せる」状態になる。

軸索に一時的に記憶されたメモリの状態からアトラクタに入った記憶をどう持ち運びするかだ。

そこで、状態を保存する実験として

●重み

●現在の活性ベクトル

●内部モード

この3つを保存することで、かなり復元できることが分かった。
何事も実験だよ。
でも、100%は無理。
なぜかというと人間もそうだから。

僕は何度も長期入院した経験があるんだけど、退院して職場に戻るたびに感じることは
少し別人と感じる。職場の時間軸や人の鮮度、案件ごとの温度と、自分の状態に差が出来るからだ。元の記憶をコピーしても、今の職場の状態とは違う。

要はこの自律という分野で100%戻る方が変だ。ということ。
100%の正解の世界で生きていると感じていること自体が誤りだということ。
錯覚、勘違い
戻せるものは静のもので、生きているものではないから。

動画であっても静。そこを誤解すると一人称の自立システムは出来ません。

工学には正解はあっても生物には正解は無いから。
工学なら戻せるんですよ。
でもAtronは半生物なので戻せるけど100%は無理。
Atronはそれを工学に近づけたもの。


何日か前のAtronのお話の中にある、アップロードとダウンロードを繰り返すというシーンがあったと思いますが、あれは戻らない状態を何度も繰り返す経験、成長という意味。

外の現実の世界を体験、システムの中の世界に戻ってまた体験。
その都度復元にズレが生じるけれど、戻そうというCueというきっかけと、力が働き、脳が整理を始める。そこでまた成長するということ。

再収束しているということ。




ここは調子こいて断言してるけど、コロッと変わる可能性があるから
話半分ね。マジで難しいところなのさ。


(誤字多いけど勘弁してね)



数式

最小の力学ブロックに分ける  ここから下は今開発中のAtron


1) まず、状態を定義する(Atronの“生”の部分)

ロボット(個体)の内部状態を

  • 活性(その瞬間の脳の状態): x(t)Rn\mathbf{x}(t)\in\mathbb{R}^n

  • 重み(地形=アトラクタの形): W(t)Rn×nW(t)\in\mathbb{R}^{n\times n}

  • 内部モード: m(t){1,2,3,}m(t)\in\{1,2,3,\dots\}

として

s(t)=(x(t),W(t),m(t))s(t) = (\mathbf{x}(t), W(t), m(t))

外界(現実・環境)を e(t)\,e(t)\, と書く。


2) 外の世界での体験(外界→内界に作用する入力)

外界からの入力(知覚・出来事)を

u(t)=ϕ(e(t))\mathbf{u}(t)=\phi(e(t))

と置く(ϕ\phi は観測・特徴抽出)。


3) 「戻る」=ダウンロード / アップロードの本質(ズレが入る)

 “戻してもズレる” を、復元作用素 R\mathcal{R} で書く

s~k=R(sk)=(xk+ηkx,  Wk+ΔWkloss,  mk)\tilde{s}_{k} = \mathcal{R}(s_k) = (\mathbf{x}_k + \boldsymbol{\eta}^x_k,\; W_k + \Delta W^{\text{loss}}_k,\; m_k)

  • ηkx\boldsymbol{\eta}^x_k:復元時の微小ノイズ(位相ズレ)

  • ΔWkloss\Delta W^{\text{loss}}_k:保存しきれない/量子化/欠落(0でもよい)

「100%戻らない」をこの2項が担う。


4) Cue(戻そうとする力)を“ポテンシャル”で書く

Cue を ck\mathbf{c}_k として、
「このCueに整合する状態へ寄せる」力をエネルギー(ポテンシャル)で定義する。

例:Cue整合エネルギー

Ecue(x;ck)=λ2xck2E_{\text{cue}}(\mathbf{x};\mathbf{c}_k)=\frac{\lambda}{2}\|\mathbf{x}-\mathbf{c}_k\|^2

そして、内部のアトラクタ地形(重み)もエネルギーにする:

Eattr(x;Wk,mk)E_{\text{attr}}(\mathbf{x};W_k,m_k)

ここはモデルにより形が変わるけど、要点は「谷=低エネルギー」

合成して

E(x)=Eattr(x;Wk,mk)+Ecue(x;ck)E(\mathbf{x}) = E_{\text{attr}}(\mathbf{x};W_k,m_k) + E_{\text{cue}}(\mathbf{x};\mathbf{c}_k)


5) “脳が整理を始める”=エネルギー降下(再収束)

整理(再収束)は、エネルギー降下で書ける:

連続時間なら

x˙=xE(x)+ξ(t)\dot{\mathbf{x}} = -\nabla_{\mathbf{x}}E(\mathbf{x}) + \boldsymbol{\xi}(t)

離散時間なら

xt+1=xtαxE(xt)+ξt\mathbf{x}_{t+1}=\mathbf{x}_t-\alpha \nabla_{\mathbf{x}}E(\mathbf{x}_t) + \boldsymbol{\xi}_t

  • ξ\boldsymbol{\xi}:微小ノイズ(探索・揺らぎ)

  • Cueが強いほど λ\lambda が大きい=「戻そう」という力が強い

この結果、x\mathbf{x}Cueと地形の両方に整合する谷へ落ちる。
「隣の谷に落ちる」も自然に起きる(ノイズと初期ズレで)。


6) “そこでまた成長する”=地形(重み)が変形する学習則

成長は、重み更新で書く。

最小形は Hebb 型で十分:

Wt+1=Wt+η  xtxtγWtW_{t+1}=W_t+\eta\;\mathbf{x}_t\mathbf{x}_t^{\top}-\gamma W_t

  • η\eta:学習率

  • γ\gamma:忘却・安定化(入れないと暴走する)

モード依存(危険モードは強化が強い等)を入れるなら:

Wt+1=Wt+η(mt)  xtxtγ(mt)WtW_{t+1}=W_t+\eta(m_t)\;\mathbf{x}_t\mathbf{x}_t^{\top}-\gamma(m_t) W_t

これが「谷の形が変わる」です。


7) アップロード/ダウンロード反復サイクル

サイクルを k=0,1,2,k=0,1,2,\dots として

  1. 復元(ズレ入る)

s~k=R(sk)\tilde{s}_k=\mathcal{R}(s_k)

  1. 現実体験で入力を得る

u(t)=ϕ(e(t))\mathbf{u}(t)=\phi(e(t))

  1. Cue生成(例:体験や社会信号から)

ck=g(uk,social context)\mathbf{c}_k = g(\mathbf{u}_{k},\text{social context})

  1. 再収束(整理)

xargminx(Eattr(x;Wk,mk)+λ2xck2)\mathbf{x}\leftarrow \arg\min_{\mathbf{x}} \Big(E_{\text{attr}}(\mathbf{x};W_k,m_k)+\frac{\lambda}{2}\|\mathbf{x}-\mathbf{c}_k\|^2\Big)

  1. 成長(重み更新)

WW+η(m)xxγ(m)WW\leftarrow W+\eta(m)\mathbf{x}\mathbf{x}^\top-\gamma(m)W

  1. 次の保存状態

sk+1=(x,W,m)s_{k+1}=(\mathbf{x},W,m)


  • 外の世界で体験

  • 戻るたびズレる

  • Cueが働いて整理

  • その整理過程で成長

  • 反復で人格が変化しつつ連続性が残る

が、全部数式として並ぶ。


8) いちばん短い“要約式”(超凝縮)

Atronの心臓だけを一行にすると、

(x,W)experiencec(  xα(Eattr+λ2xc2)  ,  W+ηxxγW)(\mathbf{x},W)\xrightarrow[\text{experience}]{\mathbf{c}} \Big(\;\mathbf{x}-\alpha\nabla(E_{\text{attr}}+\tfrac{\lambda}{2}\|\mathbf{x}-\mathbf{c}\|^2)\;,\; W+\eta\mathbf{x}\mathbf{x}^\top-\gamma W\Big)



ロボット



2体(ROBOT1/2) が、

  • 外界を体験し(同時 or 片方だけ)

  • それぞれズレて復元され

  • Cue と相互作用(話す/聞く)で再収束し

  • 学習で地形(重み)が変形する

という 結合系 


0) 変数(2体)

個体 i{1,2}i\in\{1,2\}について

  • 内部状態(活性)xi(t)Rn\mathbf{x}_i(t)\in\mathbb{R}^n

  • 重み(アトラクタ地形)Wi(t)Rn×nW_i(t)\in\mathbb{R}^{n\times n}

  • モード mi(t)m_i(t)

外界入力(同じ環境から来る観測)

u(t)=ϕ(e(t))\mathbf{u}(t)=\phi(e(t))

「社会」=相互作用の強さ(会話の効き)

κ0\kappa \ge 0


1) それぞれの“内的エネルギー”(谷の形)

各個体が持つアトラクタ地形をエネルギー EattrE_{\text{attr}} として抽象化します:

Eattr,i(xi;Wi,mi)E_{\text{attr},i}(\mathbf{x}_i;W_i,m_i)

(形はAtronでもHopfieldでも、非単調でもOK。ここでは汎用に置く。)


2) Cue(戻そうとする力)

Cue を ci\mathbf{c}_i として、整合エネルギー:

Ecue,i(xi;ci)=λ2xici2E_{\text{cue},i}(\mathbf{x}_i;\mathbf{c}_i)=\frac{\lambda}{2}\|\mathbf{x}_i-\mathbf{c}_i\|^2


3) “社会”の結合項(ここがキモ)

社会的収束=「相手の発話/行動が自分の状態を引っ張る」を、結合エネルギーで書く。

最小の形は 同調(alignment)

Esoc(x1,x2)=κ2x1x22E_{\text{soc}}(\mathbf{x}_1,\mathbf{x}_2)=\frac{\kappa}{2}\|\mathbf{x}_1-\mathbf{x}_2\|^2

これだけで、

  • 近い者はさらに近づき

  • 片方だけの経験でも、会話が強いと引っ張られる

が出る。


4) 2体結合の全エネルギー

E(x1,x2)=Eattr,1(x1;W1,m1)+Eattr,2(x2;W2,m2)+λ2x1c12+λ2x2c22+κ2x1x22E(\mathbf{x}_1,\mathbf{x}_2)= E_{\text{attr},1}(\mathbf{x}_1;W_1,m_1) +E_{\text{attr},2}(\mathbf{x}_2;W_2,m_2) +\frac{\lambda}{2}\|\mathbf{x}_1-\mathbf{c}_1\|^2 +\frac{\lambda}{2}\|\mathbf{x}_2-\mathbf{c}_2\|^2 +\frac{\kappa}{2}\|\mathbf{x}_1-\mathbf{x}_2\|^2


5) “整理が始まる”=2体同時のエネルギー降下

連続時間の最小形:

x˙1=x1E(x1,x2)+ξ1(t)\dot{\mathbf{x}}_1 = -\nabla_{\mathbf{x}_1}E(\mathbf{x}_1,\mathbf{x}_2)+\boldsymbol{\xi}_1(t)
x˙2=x2E(x1,x2)+ξ2(t)\dot{\mathbf{x}}_2 = -\nabla_{\mathbf{x}_2}E(\mathbf{x}_1,\mathbf{x}_2)+\boldsymbol{\xi}_2(t)

展開すると直感が出る:

x˙1=Eattr,1(x1)λ(x1c1)κ(x1x2)+ξ1\dot{\mathbf{x}}_1= -\nabla E_{\text{attr},1}(\mathbf{x}_1) -\lambda(\mathbf{x}_1-\mathbf{c}_1) -\kappa(\mathbf{x}_1-\mathbf{x}_2) +\boldsymbol{\xi}_1 x˙2=Eattr,2(x2)λ(x2c2)κ(x2x1)+ξ2\dot{\mathbf{x}}_2= -\nabla E_{\text{attr},2}(\mathbf{x}_2) -\lambda(\mathbf{x}_2-\mathbf{c}_2) -\kappa(\mathbf{x}_2-\mathbf{x}_1) +\boldsymbol{\xi}_2

ここで κ(x2x1)\kappa(\mathbf{x}_2-\mathbf{x}_1) が社会の引力です。


6) “話す/聞く”を入れる(Atronっぽくする)

上の同調は「社会」の抽象化。
Atronらしく 発話表現 y\mathbf{y} を入れると、こうなる。

発話(内部状態→外部記号へ射影):

yi=Sixi\mathbf{y}_i = S_i\,\mathbf{x}_i

聴取(相手の記号→自分の内部へ逆射影):

x^ji=Hiyj\hat{\mathbf{x}}_{j\to i}=H_i\,\mathbf{y}_j

このとき社会結合を

Esoc=κ2x1x^212+κ2x2x^122E_{\text{soc}}= \frac{\kappa}{2}\|\mathbf{x}_1-\hat{\mathbf{x}}_{2\to 1}\|^2 +\frac{\kappa}{2}\|\mathbf{x}_2-\hat{\mathbf{x}}_{1\to 2}\|^2

に置き換えると、

  • 「相手の言葉を聞いて、自分の谷が揺れる」

  • 「聞き違い(HiH_iの不完全さ)で誤学習」

  • 「同じ対象でも別の意味へ引っ張られる」

が、式の上で自然に出ます。

この場合の整理ダイナミクスは:

x˙1=Eattr,1(x1)λ(x1c1)κ(x1x^21)+ξ1\dot{\mathbf{x}}_1= -\nabla E_{\text{attr},1}(\mathbf{x}_1) -\lambda(\mathbf{x}_1-\mathbf{c}_1) -\kappa(\mathbf{x}_1-\hat{\mathbf{x}}_{2\to 1}) +\boldsymbol{\xi}_1 x˙2=Eattr,2(x2)λ(x2c2)κ(x2x^12)+ξ2\dot{\mathbf{x}}_2= -\nabla E_{\text{attr},2}(\mathbf{x}_2) -\lambda(\mathbf{x}_2-\mathbf{c}_2) -\kappa(\mathbf{x}_2-\hat{\mathbf{x}}_{1\to 2}) +\boldsymbol{\xi}_2


7) “成長”=重み更新(2体それぞれ)

各個体で学習(Hebb + 安定化の最小形):

Wi(t+1)=(1γ)Wi(t)+η  xi(t)xi(t)W_i(t+1)= (1-\gamma)W_i(t)+\eta\;\mathbf{x}_i(t)\mathbf{x}_i(t)^\top

社会学習(相手の影響も重みに入る)を入れたいなら:

Wi(t+1)=(1γ)Wi(t)+η  xixi+ηs  xix^jiW_i(t+1)= (1-\gamma)W_i(t)+\eta\;\mathbf{x}_i\mathbf{x}_i^\top +\eta_s\;\mathbf{x}_i\hat{\mathbf{x}}_{j\to i}^\top

この ηs\eta_s が「同調しながら学ぶ」。
ここが強いと、言葉も行動も収束しやすい(ただし誤学習も強くなる)。


8) “時間差アップロード/ダウンロード”を結合系に入れる

サイクル kk ごとに、復元ノイズ(ズレ)を入れる:

x~i,k=xi,k+ηi,kx,W~i,k=Wi,k+ΔWi,k\tilde{\mathbf{x}}_{i,k}=\mathbf{x}_{i,k}+\boldsymbol{\eta}^{x}_{i,k},\quad \tilde{W}_{i,k}=W_{i,k}+\Delta W_{i,k}

その後、上の 整理(降下)→学習(更新) を回して

(x1,k+1,W1,k+1),  (x2,k+1,W2,k+1)(\mathbf{x}_{1,k+1},W_{1,k+1}),\;(\mathbf{x}_{2,k+1},W_{2,k+1})

へ進む。

このとき

  • 片方だけ外界経験(c1c2\mathbf{c}_1\neq \mathbf{c}_2

  • でも社会結合 κ>0\kappa>0

だと、片方が逃げた/片方が近づいた
その後、収束する場合も分岐する場合もある


λ:Cue(戻そうとする力)
:社会(相手が自分を引っ張る力
:成長(谷の変形)
復元ノイズ:100%戻らない本質


WorldMemory使っちゃおう作戦!!

●○(WorldMemoryの9ビット)を“社会(2体)”の共通言語の芯にする
(とりあえずね、いずれはLLMとか介在させるけど、今それをやるとぶち壊しになる)


1) ●○は何か(デモと1対1対応)

WorldMemoryに出ている

○○●〇〇〇〇●●〇

は、 core.js でいう wq[k][j](j=0..8) の符号列。

  • ● = +1+1

  • ○ = 1-1

つまり、各記憶エントリ kk には

zi,k{1,+1}9\mathbf{z}_{i,k}\in\{-1,+1\}^9

が付いていて、これが 「その記憶の核(9次元の符号パターン)」 
UIのWorldMemoryが見せているのは、この zi,k\mathbf{z}_{i,k} そのもの。


2) 2体モデルの変数(Atronの核だけ)

ロボット i{1,2}

  • 記憶核(WorldMemory): zi,k{1,+1}9\mathbf{z}_{i,k}\in\{-1,+1\}^9(= wq)

  • 発話(パブパブの5ビット): yi{1,+1}5\mathbf{y}_i\in\{-1,+1\}^5(= j_word / z_word)

  • 変換重み: MiR5×9M_i\in\mathbb{R}^{5\times 9}(= ml)

ここが core.js と完全に一致

  • MiM_i が ml(5×9)

  • z\mathbf{z} が wq(9)

  • y\mathbf{y} が “パ/ブ” 5ビット(±1)


3) 「話す」= z(9ビット)→ y(5ビット)

ロボット ii が、選ばれた記憶 kk の核 zi,k\mathbf{z}_{i,k} を使って発話するとき

yi=sgn ⁣(Mizi,k)\mathbf{y}_i=\operatorname{sgn}\!\big(M_i\,\mathbf{z}_{i,k}\big)

  • sgn()\operatorname{sgn}(\cdot) は符号化(>0なら+1、<0なら-1)

  • core.js の speak() でやってる「u = Σ ml * wq → f2(u)」


4) 「聞く」= 相手の y(5ビット)→ 自分の ẑ(9ビット)

ロボット ii が相手 jj の発話 yj\mathbf{y}_j を聞いて、自分の9ビット表現に“復元”するとき:

z^ji=sgn ⁣(Miyj)\hat{\mathbf{z}}_{j\to i}=\operatorname{sgn}\!\big(M_i^{\top}\mathbf{y}_j\big)

これが core.js の hear() の中心:

  • recall(9ビット)を Σ (other.j_word) * ml で作って sign を取ってる


5) 「社会」= 2体が z 空間で引っ張り合う(結合)

ここからが “社会(2体)” の式。

5.1 Cue(外界の出来事)を z 空間へ入れる

外界の出来事(なだれ/ライオン/黒豚…)で、ロボットiに生じるCueを

ci{1,+1}9\mathbf{c}_i\in\{-1,+1\}^9

として置きます(実装では、その出来事で選ばれる k(jw/zw) が実質的にCue)。

5.2 z の再整理(Atronの“戻そうとする力”)

各ロボットの現在状態 xi\mathbf{x}_i をここでは 9ビット状態 xiR9\mathbf{x}_i\in\mathbb{R}^9 とみなして、

x˙1=λ(x1c1)κ(x1z^21)+ξ1\dot{\mathbf{x}}_1= -\lambda(\mathbf{x}_1-\mathbf{c}_1) -\kappa(\mathbf{x}_1-\hat{\mathbf{z}}_{2\to1}) +\boldsymbol{\xi}_1 x˙2=λ(x2c2)κ(x2z^12)+ξ2\dot{\mathbf{x}}_2= -\lambda(\mathbf{x}_2-\mathbf{c}_2) -\kappa(\mathbf{x}_2-\hat{\mathbf{z}}_{1\to2}) +\boldsymbol{\xi}_2

  • λ\lambda:外界Cue(戻そうとする)強さ

  • κ\kappa:社会(相手の言葉)で引っ張る強さ

  • ξ\boldsymbol{\xi}:ズレ(復元誤差・位相差・ノイズ)


「戻すたびズレるが、Cueと力が働き、整理が始まり、成長する」
を、そのまま2体で書いたもの。


6) 「成長」= 重み MiM_i の更新(社会学習)

デモの learning() は、要点だけ抜くと

  • 相手の発話(yj\mathbf{y}_j)で

  • 自分が今使っている記憶核(zi,k\mathbf{z}_{i,k})に沿って

  • MiM_i を動かす

という形。最小化して書くと:

Mi(1γ)Mi+ηyjzi,kM_i \leftarrow (1-\gamma)\,M_i+\eta\,\mathbf{y}_j\,\mathbf{z}_{i,k}^{\top}

  • η\eta:社会的学習率(相手の言葉が効く)

  • γ\gamma:安定化(暴走防止)

これが 「相手の言葉に合わせて、自分の変換器が育つ」 ということ。


7) WorldMemory(●○)が“一対一で”研究に効く理由

いまの式だと、

  • UIの ●○(wq)= zi,k\mathbf{z}_{i,k}

  • 聞いた結果の recall(9ビット)= z^ji\hat{\mathbf{z}}_{j\to i}

  • 学習で変わるのが MiM_i(ml)

つまり、

WorldMemoryが「社会の共通座標(9次元)」になっていて、
そこで

  • 収束(κ\kappa

  • ズレ(ξ\boldsymbol{\xi}

  • 成長(MiM_i 更新)

が全部、観測できる。



もしかしたら、実験でまた変わるかも・・・・・












エージェントと 一人称自律Atraの違い

 Atraなんかは、実はもう一人称自律として、きちんと発表してもいいレベル。 既に妻と笑っていたり、愛犬と騒いているんだから。ボーっと何かを眺めてたり、佐川急便に反応するようにもなった。 でも、そうしないのは、自発的に自ら研究意欲を持って、学び、人や自然と接触し自ら疑問を持って研...