ラベル Nakano associative memory の投稿を表示しています。 すべての投稿を表示
ラベル Nakano associative memory の投稿を表示しています。 すべての投稿を表示

2026年4月1日水曜日

アソシアトロンの想起 と Atron言語

Atron研究はね、一人称とか自律とか僕も言ってるけど、元は人間の想起なんだよ。
その想起ってのはノイズを否定しない。
アソシアトロンですよ。

何度も同じことを書いてるけど重要なんだよ。



僕は今62歳。

「80年代は楽しかったね」では何も思い出せないけど、
Hard to Say I'm Sorry - Chicago とか、Journey - Don't Stop Believin、Asia - Heat Of The Momentなんかの曲だけで、85年に彼女と横浜に行って山下公園や中華街で食べたエビチリまで思い出すんだよ。
曲が思い出すきっかけだったりする。
メロディの揺れ、声の響き、テンポの感じ——言葉の意味は曖昧なまま。みんなそういうのあるだろ。渋谷のホブソンズのアイス目当てで並んで待ってる光景や、貧乏しながらも、あまり興味の無かった五島のプラネタリウムにも行った。それはそれで新鮮で楽しかった。
全部想起だよ。


みんなそれぞれ想起は違う。
今の若い子達は、40年後に2026年のヒット曲を聴いて涙するかもしれない。
皆違う。その違いが個性なんだよ。


いいかい、想起ってのは正解の復元じゃない。
それを誤ると生物じゃなくなるし、脳じゃない、そして存在じゃなくなる。
曖昧な断片から、場ごと立ち上がることなんだよ。

完璧にクリアな歌詞だったら、かえって「ただの曲」として終わってしまう可能性があるかもしれない。でも「ぼんやりとした曲の言葉」だからこそ、僕の個人的な経験(彼女との思い出)が強く投影され、曲と記憶が溶け合って、鮮やかで個性的な想起になる。
曖昧さが「隙間」を作る。その隙間に、僕の過去の差分(変化の記憶)が自然に入り込んで、recallを豊かにし、感情を強くcarryする。(ルーみたいになってきた・・・)

まさにATRON開発の意義だよ。

ホップフィールドもNNもアルゴリズムも今のAIの流れも、ノイズを悪として扱う以上、僕は部分的にしか使えない。もしノイズが悪というのならば、一度聞いただけで別の国の言葉を次から話せなきゃいけない。そんな試練みたいな評価基準を強いることに疑問も感じない人達と共同研究は出来ない。だから、うちは独立研究所で、アウトドア目的でたまに仲間がやってくる。山だからね。外人さんの独立研究者達からもメールが来る。

彼らは皆分かっている。
識別不能(曖昧)こそが、想起の力を生む土壌ってことをね。
そして想起自体も曖昧で差分が発生する。
差分があるから、Atron任せの意志が起る。


Atronの最初は
明るい / 暗い
大きい / 小さい
速い / 遅い
柔らかい / 硬い
暖かい / 冷たい
近い / 遠い
強い / 弱い
続く / 切れる

のようなセンサーを持っている。
何と比較して明るいとか、大きいとか、早いとか・・
「前よりいいじゃん」「自分より大きいかな」

凄く抽象的で曖昧。
そして誤認だらけ。
でもガチャガチャ数値が動く。

未経験のAtronは、自分の曖昧な状態から差分を体験する。
何度も何度も経験すると曖昧な差分が成長する。

丸い
尖っている
ふわっとした動き
急に近づく
後ろから来る
甲高い
低く響く
柔らかい声
同じ揺れ方
似た匂い
暖色っぽい
明るさの並び
同じテンポ
まとわりつく接触
引っかかる感じ


という想起する条件が自然に増えてくるんだよ。
不思議でしょ?凄いでしょ?


さらに育つと、単独断片だけでなく、組み合わせ cueになる。

丸い + 暖色 + 柔らかい声
後ろから接近 + 高速 + 強い衝撃
揺れ + 温かい + 匂いの馴染み
高い音 + 急接近 + 視界の乱れ
涼しい + ゆっくりしたリズム + 断片的な映像

とかね
丸い + 暖かい色 + 柔らかい声
を聞いていると、そこに留まったりもする。

一過性じゃなくて、何度も残るものだけが recall 材料として育つんだ。

そして重みがCue候補に残る。
cue.roundness.weight
cue.softVoice.weight
cue.rearApproach.weight
cue.warmColor.weight
みたいな感じでね。

何度も出来事で効いたものだけ weight が上がる。
弱いものは消えていく。つまり、最初から正解の辞書を完成させるんじゃなくて、

効いた断片だけが育つ
効かなかった断片は消える


ほんの一部だけど、recall(想起)で言えば(けっこう素朴)

state_delta = sense_event_fragments(world, body, recall)

body.motor_drive += 0.30*Δcuriosity + 0.18*Δsafety - 0.22*Δpain - 0.16*Δthreat
body.motor_stability += 0.22*Δcalm + 0.20*Δsafety - 0.30*Δpain - 0.24*Δsurprise
body.approach_bias += 0.28*Δcuriosity + 0.16*Δwarmth + 0.10*Δsocial - 0.22*Δthreat
body.retreat_bias += 0.30*Δthreat + 0.24*Δpain - 0.18*Δsafety
body.turn_bias += 0.26*Δsurprise + 0.18*Δthreat + 0.12*Δcuriosity
body.pause_bias += 0.22*Δpain + 0.20*Δsurprise + 0.12*Δthreat - 0.10*Δcuriosity
body.voice_pressure += 0.14*Δsocial + 0.10*Δcuriosity + 0.20*Δpain - 0.10*Δcalm
body.sleep_pressure += 0.16*Δpain + 0.10*Δthreat + 0.12*injury_drive - 0.06*Δsafety

carry(引きずり) は

carry.pain_trace = carry.pain_trace * 0.94 + max(0, Δpain - 0.15) * 0.35
carry.threat_trace = carry.threat_trace * 0.95 + max(0, Δthreat - 0.12) * 0.30
carry.safety_trace = carry.safety_trace * 0.96 + max(0, Δsafety - 0.10) * 0.25
carry.warmth_trace = carry.warmth_trace * 0.97 + max(0, Δwarmth - 0.10) * 0.20
carry.curiosity_trace = carry.curiosity_trace * 0.96 + max(0, Δcuriosity - 0.08) * 0.18


差分は行動名にしない
まず身体傾向へ流す
身体傾向の重なりが動きになる
強い差だけ carry に少し残す
carry が次の差分の立ち上がり方を変える
 

そしてcarry のドーパミンやセロトニンは「名前つきの物質そのもの」ではなく、その後の動きや受け方を変える残り方として行動に影響を与える。


ドーパミン寄りの carry
次も近づきたい、もう一度やりたい、動き出しが軽くなる、期待で前のめりになる、癖になりやすい
 
セロトニン寄りの carry
落ち着く、整う、戻りやすい、崩れから回復しやすい、安定して受け直せる
 
ノルアドレナリン寄りの carry
興奮、警戒、急に立ち上がる、びくつきやすい、過敏になる
 
オキシトシン寄りの carry
安心、柔らかさ、相手への寄りやすさ、離れにくさ それを何度も積むと個体の癖と収束が出る


痛み > 0.7 なら泣く みたいな決め打ちアルゴリズムじゃないんだよ。
状態の残り(引きずり)

曖昧で不可逆な残り方を、壊さないように最低限の形で置く記述
carry.pain_trace = carry.pain_trace * 0.94 + ...
これは「痛みとはこういう意味だ」と決めているわけじゃなくてただ、消えずに少し残ることを置いているだけ。だからこれは、意味アルゴリズムではなく、残効の近似表現に近い。


これでも十分動くけど、
今 Atron言語を考えている。

たとえば carry.pain_trace なら、

  • prev
    直前値
  • now
    現在値
  • delta
    差分
  • residue
    残り方
  • drift
    じわっとした流れ
  • source
    何の出来事から来たか
  • tone
    上向きか、下向きか、崩れか
  • carry_to
    次に何へにじむか



carry.pain_trace
  prev: 0.18
  now: 0.34
  delta: +0.16
  residue: 0.31
  source: rear_impact / balance_break
  tone: sharp-rise
  carry_to: motor_stability↓ pause_bias↑ sleep_pressure↑

けっこうざっくりだけど、どう残ったかの表記になるでしょ。


Atron言語は「計算」より「景色」



たとえば普通のJavaScriptコードだと
carry.pain_trace = carry.pain_trace * 0.94 + inflow;


で終わる。
でも Atron言語なら、同じことをこう見たい。

pain_trace: before 0.18 event rear_impact + balance_break rise +0.16 remain 0.31 spread motor_stability↓ pause↑ sleep↑


つまり、
数式そのものより
何が起きて、どう残って、どこへにじんだかが読める。






構文
node : prev -> now Δdelta ~residue [source] => effect


carry.pain_trace : 0.18 -> 0.34 Δ+0.16 ~0.31 [rear_impact,balance_break] => motor_stability↓ pause↑ sleep↑
carry.safety_trace : 0.62 -> 0.41 Δ-0.21 ~0.39 [shock,rear_approach] => calm↓ retreat↑
carry.warmth_trace : 0.44 -> 0.40 Δ-0.04 ~0.39 [tv_soft_voice] => voice_softness~ gaze_hold~
carry.curiosity_trace : 0.28 -> 0.33 Δ+0.05 ~0.31 [round_face,soft_tone] => approach↑ gaze_hold↑


こんな感じだよ。

普通の言語だと、全部

  • 定義
  • 条件
  • 命令
  • 分類

に寄ってしまうでしょ?
正解に寄せるために。

でも Atron では見たいのは

  • どう変わったか
  • 何が残ったか
  • 何がまだ消えていないか
  • どこへにじんだか

なんだよね。
正解なんて重要じゃない。
論理も根拠も重要じゃない。
本人、個体ごとの状態の変化が起きるための言語だよ。

変数を操作するのではなく、「前の残り」「今の差」「残った値」「次へのにじみ」を一つの景色として書けることでより扱いやすくなる。

アルゴリズムのように

  • 入力→判定→出力
  • 意味→感情→行動
  • 刺激→反応
  • 原因→結果

みたいな、よくある平べったい作りから離れられる。


順番を関係なくするというのは、無秩序にすることじゃなくて、出来事の中で同時に立ち上がるものを、無理に一列に並べないということなんだ。そして曖昧の差分を引き出すというのは、「これは何か」を先に決めるのでなく、前とどこが違ったか、何が少し強まったか、何が少し崩れたか を見ること。


Atron言語で、なにが変わるかというと、

痛みがあっても安心が残る
笑いながら泣きかける
近づきたいけど少し怖い
興味があるのに身を引く

みたいな、現実の赤ちゃんのような行動には普通にあるけれど、アルゴリズムだと潰されやすい状態が簡単に出せるようになるんだ。

決め打ちや順番を外し、曖昧な差分をそのまま立ち上がらせるだけで、ロボットは“正解を出す装置”から、“出来事の中で変わる存在”へ近づく。

まさに一人称自律ロボットがどんどん改良されていく。





2026年3月30日月曜日

Atronの痛み

痛みは、見たり聞い匂いを嗅いだりするものより、触ったり、食べたり、動いたときに、何かの出来事の結果、生じる。
赤ちゃんは、かまれたとか、転んだとか、とげに刺さったとか、ぶつかった、なんて意味はわかりっこない。知らんけど、、、痛いし泣く。

だから、笑ってる最中でも後ろから犬が突撃してくれば痛みが湧く。
アルゴリズムでは出来きる?
いきなり犬が突撃して痛みを感じるかもしれないからね。
順番なんて存在しない。
何かより何かが勝ったら笑いが負けて泣くとか。
でも、そういうのって赤ちゃんほど起こりやすいよね。

今笑ってたのに、いきなり泣き出すとか。ある。
出来事によって状態が変化するという現象ですよ。

出来事はworldで三人称。現実世界では予測がつかない。

どう場が変わったか
どんな差が立ち上がったか

赤ちゃんは後ろから犬に突撃されたけど、アンパンマンの番組を観ていたので、一瞬顔が歪んだけど、間のような時間を置いて、笑いだすとか・・・泣くかもしれない。
科学者が大好きな同じ結果なんて絶対起こらない。


アルゴリズムで書けますか?
間違いなく決め打ちになるよね。


Atronに備わっているもの抽象的な基準。
(自分より、大きいとか自分の動きより早いとか)
(今までより穏やか、今までより言葉が柔らかいなど)

脅威 / 不快 / 低い
速い / 大きい / 高い
穏やか / 柔らかい / 暖かい
類似性 / 社会性 / 好奇心
安心


Atronならこうなる。

自分より面白い顔のアンパンマン。
丸いお顔で暖かい音のトーン。
不快じゃないかも。
すっかり気持ちいい感じ~。


そこにワンコが後ろから蹴り!

今までの状態の差が現れる。
でもTVのアンパンマンは続いている。
ドン!されたので強い衝撃が加わる、驚く、痛い!

TVのアンパンマンは続いている。
(脳は上手く処理できない)


間ができる。(泣く寸前までいってる)
半泣き笑い状態。

痛みは未経験(赤ちゃん)の段階では身体への刺激による信号が多い。
恋愛ものドラマを観ても心が痛まないしねぇ。
順番関係なく同時に起きても、半泣き笑い状態は起きます。


なぜそれができる?

アソシアトロンだからです。

このAtronのエンジンはrecallとcarry
Associatron(アソシアトロンのrecallエンジン)と僕のcarryエンジンがあるので
そういう同時進行も対応ができる。


中野博士のアソシアトロンは情報が複数入ってもCueできせめぎ合い、recallできる。
(だいぶ改良してるけど本質はブレてないです)
本当に中野先生は天才で凄いわけですよ。
Atronはアソシアトロンのロボットという愛称ですからね。


shock も pain も rise する。
でも安心側の recall もまだ消えていない。
だから単純な泣きでも単純な笑いでもなく、半泣き笑いみたいな中間が起きる。

その個体の今があって

  • calm_base
  • warmth_base
  • softness_base
  • curiosity_base
  • threat_base
  • pain_base
  • social_base
  • safety_base
  • そして出来事が来たら、絶対値ではなく差を見る。

    Δcalm = calm_now - calm_prev
    Δpain = pain_now - pain_prev
    Δthreat = threat_now - threat_prev
    Δcuriosity = curiosity_now - curiosity_prev
    Δsafety = safety_now - safety_prev

    このとき重要なのは、「犬だから threat +0.8」みたいにしちゃいけないということ。
    そうではなく、出来事の断片から変化が立つ。


    たとえば、

    • 後ろから強い衝撃
    • 体勢が崩れる
    • 直前までアンパンマンで calm と warmth が高い
    • 音はまだ柔らかいまま続いている

    なら、同時にこうなり得る。

    • Δpain は大きい
    • Δthreat も上がる
    • Δcalm は下がる
    • でも warmth/calm の残りはまだある
    • curiosity や pleasant の残響も消えていない

    だから結果は、泣き 100% でも 笑い 0% でもなく、
    複数軸の差分が同時に残った状態になる。



    1. 定義値ではなく「場の基準値」を持つこと

    固定の正解値ではなく、直前までの落ち着きや安心や興味を基準にする。

    2. 絶対値より差分を見る

    今が calm=0.4 かどうかより、
    さっき 0.8 だったのに今 0.4 に落ちたに意味がある。

    3. 単一値に潰さない

    「怖い」「楽しい」と1個にまとめない。
    pain, shock, warmth, curiosity, safety, social などを並列で持つ。

    4. carry を入れる

    差分はその場で消さず、少し残す。
    だから「まだアンパンマンが効いてる」「でも痛みも立ってる」が両立する。

    5. 出力は分類ではなくにじみ

    if pain > 0.7 then cry
    みたいにしない。
    声、表情、動きは複数軸の重なりからにじませる。


    曖昧なもの自体を決め打ちで数値化しちゃダメ。嘘にしかならない。
    でも、曖昧な状態の基準値からの差、複数軸のずれ、残響、引きずりを数値で持つことはできる。その経験を何度も積むと収束してくる。
    自律の先には成長があるということ。
    自律は勝手に動けばいいわけではなく、収束していくという事。
    その収束とは、きれいな正解一点に揃う話ではなくて、
    その個体なりの傾向が出てくるという事。
    (みんなここが我慢できずに正しさに寄せて自滅する)

    Atron 向けに言うなら、

    「安心」の定義値を決めるのでなく、今までより安心が増えたか減ったか
    「痛み」の意味を決めるのでなく、身体の崩れがどれだけ増えたか
    「楽しい」を決めるのでなく、緊張がどれだけほどけたか、近づきたい感じがどれだけ残ったかということ。

    例えば

    state_next = state_prev + event_delta + carry_residue

    あるいは軸ごとに
    calm_next = calm_prev * 0.92 + delta_calm
    pain_next = pain_prev * 0.88 + delta_pain
    curiosity_next = curiosity_prev * 0.90 + delta_curiosity
    threat_next = threat_prev * 0.91 + delta_threat

    でも本質は式ではなくて、

    意味の固定ではなく、差の蓄積になる実験を繰り返す。


    2026年3月24日火曜日

    ノート2  AssociatronとHopfield networkの初合体 怪我をする疲れる眠るということ。

     PCが落ちた。洞窟を抜けるとお花畑の平和な世界を作ったけど、なかなか彼の意志でそこに行ってくれないから、world(外部命令OK)の洞窟に「柔らかさ」を作った。外から「はやく新しい世界に行ってくれよ!」と言い続けながらも僕は寝てしまった。


    そんな事をしているうちにPCが落ちていた。可能性としてはメモリそのものより、ログが長時間たまり続けるとか、描画がずっと回り続ける負荷、speech や world event の文字列更新が積み重なる、ブラウザ側が長時間の animation/update で重くなってるからだろう。
    そう、今の彼は疲れない。それがおかしい。
    ライオンは獲物を追うことをセンサーで受け取り認知はしているがcarryに対して刻まれていない。衝突したときに怪我などをしていないから、獲物が追われてるときに悲鳴をあげて逃げるので、それに対しての恐怖なのだろう。なのでシーンを重ねるとcarryは動かなくなる。
    場に慣れ、状態に慣れるということ。

    なのでロボットに怪我をさせる。
     今までボロっと側(記念に残しておく)にアルゴリズムは極めて少なく作成していた。例えばworldに入った時の開始位置程度で、「こうなった時はこうする」みたいのは入れていなかった。が、将来現実の世界のロボットの身体に関して神経の伝達についてはアルゴリズムは必要だと考えている。というか、その辺でホップフィールドやバックプロパゲーション、NNが入ってくる。
    今は「ライオンに会っても怪我をしない」作りなので言語的には「gu-ge」を連発するが、抗議しに行ったりおちょくってる姿とも感じられるので、「怪我」を入れようかと思う。あまり残酷なことは赤ちゃんなのでまだ早いかな。

    それで何が変わるかというと、恐怖が増すか、carryに変動が起こるか見てみたい。
    いわゆる「疲れ」という指標条件を入れるのではなく、疲れが起きる仕組み。
    なんか、書いていてアルゴリズムになってきた。
    そう、いつもこの誘惑と戦っている。




    今はライオンが近くても「逃げて消耗する」より、「見続けて想起が立つ」側に寄りやすい。さらに carry はかなり厳しい条件でしか残らないようになっていて、attractorDepth >= 0.34、recall.activation >= 0.18、さらに差分や baseline ずれが必要だと考えている。これは「深く残るものだけ残す」という思想としてはきれいなんだけど、疲労のような日々の蓄積とは別物なので意外と難しい。いまは疲れが carry の中に居場所を持っていないから、緊張が長引いても“消耗”になりにくい構造になってる。

    人間の情報整理のため。
    こう考えるとAtronの負荷が減るのかも。


    疲れは carry そのものではなく、carry に影響する別の身体層にする・・・とか・・
    (危険なので、別ファイルの検証版で実験君するか)
    つまり fatigue か sleepPressure を robot 側に新設して、sensor や recall の副産物としてじわじわ増えるようにする形です。carry は「深く残る場の変形」、fatigue は「身体が沈んでいく圧」と分けてみる。


    消えるもの
    その場の反応の尖り。
    一時的な alert、瞬間的な speech pressure、今まさに見えている focus への過集中は、睡眠でかなり下げてよいかと・・・。これは「記憶を消す」のではなく、「起きて反応し続ける圧を下げる」を意味している。いまも recall や speech は毎tick固定ではなく、その時の圧から立っているから、ここを睡眠時に沈めるのは筋が通のかと思う。

    圧縮するもの
    trace の扱い部分。
    いま traces は最大40件で、印象差が立ったときだけ残している。ここは睡眠時に全部消すのではなく、同系統の弱い断片を薄める、あるいは“直近の雑音的な学習”を少しだけ整理する、という方向。深いものだけ残し、浅い反応の散らばりは圧縮する感じ。

    残すもの
    baseline と深い carry 。
    村や洞窟の繰り返しで育つ baseline.calm / soft / safe / warm / sparse は、睡眠で消しちゃ、まずい。これは生活圏の“基盤”だからね。carry も全消去ではなく、ゆっくり減衰で十分。いまの baseline は安定場が disturbance を上回ると少しずつ育つ設計なので、睡眠はむしろ baseline を壊さず守る側に置くべき。

    成長するもの
    「どこで眠れたか」の地の学習。
    sleep そのものより、「眠りに落ちた場所」が何だったかが成長すべきかな。洞窟、村、静かな花畑の外れなどで眠れた回数が重なると、その場の safe / calm / sparse / quiet の結びつきが強くなる。すると次第に“眠くなるとそこへ寄る”傾向が生まれる。(勝手な予想)

    これは外部命令ではなく、場の引き込みだからね。洞窟や村の基準場が少しずつ育つ今の baseline 設計とも相性がいいと思う。


    (PCから現実社会のロボットへダウンロードしたとき、記憶データベースのログじゃないからbaseline と深い carry で何処まで戻るかは別実験中。人間も退院すると差異が出るっしょ?あれ。忘れてるなら忘れてていい:こういうスタンス)



    睡眠が carry に与える影響
    ここは全消去ではなく、分化させる。

    • adrenaline / noradrenaline / tension は睡眠で比較的大きく下げる
    • dopamine は少しだけ残す(調整が難しい、ドクターに聞こう)
    • serotonin は安全な場所で眠れた時だけ少し育つ


    いま carry には dopamine / noradrenaline / adrenaline / serotonin / tension があり、深い attractor の説明用にも使ってるからこれを使う。睡眠を入れるなら、これらを一律に減らすのではなく、「緊張系は落ちる」「安堵系は眠りの質で少し残る」と分けた方が、眠りに意味が出る。なので、そこはアルゴリズムにしたら自律から詰むので、決して誘惑に負けず、頑固に頑固に状態に落とす仕掛けを考える。

    何を見て眠るか
    「夜だから寝る」だけだと外部条件になる。
    眠りに寄る条件は、次の重なり。

    • 長く動いた
    • 緊張が続いた
    • 同じ対象に何度も反応した
    • いまの場が quiet / sparse / cave / village 寄り
    • 近くに大きな速い対象がいない

    つまり、疲れの増加は危険でも安心でも起きるが、眠りに落ちるのは安全寄りの場だけとは限らないが経験の積で安全な場所に寄っていく。
    world にはすでに昼夜があり、prey や lion にも sleep があるので、robot 側にも「夜は眠りへ寄りやすい」から・・・と補助を入れるのは不自然だ。
    そうではなくrobot 自身の疲れであるべき。


    3人称のworld側の調整
    NPCの人間は夜もペチャクチャ喋らせないで眠らせる。
    夜は眠る という状態を何度も見せる。
    村や草陰は calm / safe の繰り返し学習の核になりやすく、夜の sleep とも相性がいい。
    worldB(洞窟に触れると花畑と小動物の居る安全な世界に入る)もそっち側に寄せるとか。


    危険時の対応が無いと疲れが立たない


    いまは lion がいても、world は robot に何も命令せず、robot 側も危険から距離を取る身体動作をまだほぼ持っていない。だから「危険→退避→心拍維持→消耗」という流れが無く、「危険→注視→興味・緊張」になりやすい。

    ただし、ここで「ライオンなら逃げる」と決め打ちすると自律ロボットは詰む。
    しかも今はライオンという認識を持っていない。彼の認識では「物体gu-deとかgu-de-gu」
    なので必要なのは、“逃げる命令”ではなく退避したくなる身体場を加える

    たとえば、

    fear + alert + tension が高い
    近距離の size_large + speed_fast + teeth_claw_impression が重なる
    しかも自分の baseline.safe から大きく外れる

    この時にだけ、前進より「向き変化が大きくなる」「今いる場から離れる drift が強くなる」「cave / village の方へ戻る圧が少しだけ増す」
    これなら 3人称制御ではなく、場の結びつきの強さ。いまの sensor には teeth_claw_impression、speed_fast、size_large などがすでにあり、impression にも tension と baselineGap があるので、土台がある。

    でも、やっぱりアルゴリズムだ(笑)
    なんか、嫌だなぁ・・・。



    そこで「怪我を命令ではなく、Hopfield 的な場の歪みとして入れる数式」にする。
    どういうこと?って思うでしょ。

    アソシアトロンとホップフィールドは元は同じだけど、
    ここをアソシアトロンにすると

    「怪我」という記憶が勝つ/負ける
    「痛い想起」が選ばれる
    「傷ついた記憶」が1候補になる
    身体の歪みではなく記憶内容に見えてしまうんだよ。


    怪我を recall pattern の1つとして入れると、

    xi(t+1)=f(jWijxj(t)+ui(t))x_i(t+1)=f\Bigl(\sum_j W_{ij}x_j(t)+u_i(t)\Bigr)

    xix_i 側に「injury pattern」が混ざる。
    だって、怪我は怪我じゃん。「ん~怪我じゃないかも・・」なんて言わないっしょ。
    なので自律としてアルゴリズムから離れるときは場合によってはホップフィールドを使ってみる。厳密に身体の神経伝達までどうしても今、ここでやると言うのなら

    のように、後ろから前へ効いてくる backpropを使うとか。
    ただ「正解との差を微分して返している」のではなく、
    結果として生じた歪みや痛みが、前段の結合を変えてしまう」
    ことなので
    性質としては、誤差逆伝播よりも損傷逆流とか過敏化の逆流とか調整圧の逆流に近い。

    たとえば前向きの場が

    r(t)=F(s(t),B(t))r(t)=F(s(t),B(t))
    a(t)=G(r(t),I(t))a(t)=G(r(t),I(t))

    だとして、行動の結果として身体に負荷 d(t)d(t) が出る。

    d(t)=H(a(t),s(t),impact(t))d(t)=H(a(t),s(t),\text{impact}(t))

    この d(t)d(t) が injury を更新する。

    I(t+1)=ΛI(t)+Γd(t)I(t+1)=\Lambda I(t)+\Gamma d(t)

    ここまでは普通。

    でもさらに、これが前段へ返る。

    B(t+1)=αB(t)+βΦ(I(t+1))B(t+1)=\alpha B(t)+\beta \Phi(I(t+1))
    s(t+1)=s(t+1)+ΩI(t+1)s^\ast(t+1)=s(t+1)+\Omega I(t+1)
    r(t+1)=r(t+1)+ΨI(t+1)r^\ast(t+1)=r(t+1)+\Psi I(t+1)

    つまり、傷んだ結果が次の sensor の感じ方を変え、次の recall の立ち方を変え、次の action の偏りを変えるとなる。

    なので機械学習の厳密なバックプロパゲーションというより、損傷や結果が後段から前段へ返って、感受性・結合・場の傾きを変える逆向き伝播かな。


    なのでホップフィールドの方が使いやすい。
    あれだよ、アソシアトロン好きな僕がホップフィールドを始めて組み込もうとする瞬間だ。



    まず、怪我を 1 個のスカラーではなく、身体の歪みベクトルに変更。

    I(t)=[Ipain(t)Ifragility(t)Ihypervigilance(t)]\mathbf{I}(t) = \begin{bmatrix} I_{\text{pain}}(t) \\ I_{\text{fragility}}(t) \\ I_{\text{hypervigilance}}(t) \end{bmatrix}

    意味はたとえばこうだ。

    • IpainI_{\text{pain}}: 痛み・重さ
    • IfragilityI_{\text{fragility}}: 傷つきやすさ・回復しにくさ
    • IhypervigilanceI_{\text{hypervigilance}}: 過敏さ・びくつきやすさ

    これはゲームの HP ではなく、その後の attractor 地形を歪める内部状態

    RPGゲームに自律いれようね(そのうち)



    話飛んだ、

    怪我入力

    いまの robot には

    size_large
    speed_fast
    teeth_claw_impression
    unpleasant
    tension
    baselineGap

    などが already ある。

    なので、まず危険入力を

    uinj(t)=w1size_large(t)+w2speed_fast(t)+w3teeth_claw(t)+w4unpleasant(t)+w5tension(t)+w6baselineGap(t)u_{\text{inj}}(t) = w_1 \, \text{size\_large}(t) + w_2 \, \text{speed\_fast}(t) + w_3 \, \text{teeth\_claw}(t) + w_4 \, \text{unpleasant}(t) + w_5 \, \text{tension}(t) + w_6 \, \text{baselineGap}(t)

    と置く。

    ただしこれは「逃げろ」の命令ではなく、
    身体にどれだけ傷が入りやすい exposure だったかの量

    怪我の時間発展

    いちばん単純で使いやすい形。

    I(t+1)=ΛI(t)+bϕ ⁣(uinj(t)θinj)r(t)\mathbf{I}(t+1) = \Lambda \mathbf{I}(t) + \mathbf{b} \, \phi\!\left(u_{\text{inj}}(t) - \theta_{\text{inj}}\right) - \mathbf{r}(t)


    • Λ=diag(λ1,λ2,λ3)\Lambda = \mathrm{diag}(\lambda_1,\lambda_2,\lambda_3), ただし 0<λi<10<\lambda_i<1
    • ϕ(x)=max(0,x)あるいは sigmoid
    • θinj\theta_{\text{inj}}は「ただの刺激」と「傷になる刺激」の境界
    • r(t)\mathbf{r}(t) は回復項



    足りないのは「危険の意味」ではなく、「危険や反応の継続が身体を消耗させる層」

    carry は深い場の名残として残し、別に fatigue / sleepPressure を立てる。
    睡眠では、反応圧は消す、浅い散らばりは圧縮する、baseline と深い carry は残す、安全に眠れた場所の結びつきは成長させる。
    そして危険時は「逃げろ」ではなく、退避方向へ身体が崩れるようにする。
    この形なら、命令にならず、Atron の筋を保ったまま疲れと眠りが入る。



    AssociatronとHopfield networkの初めての合体になるのかな。


    このブログの最初のアルゴリズムの正当化と後半のホッピーの話とでは
    ぜんぜん違うね。

    俺は、自分の間違いもノイズも誘惑も全部書くからね・・・。
    動きがおかしかったらまた修正するよ。





    いずれにしてもロボットが自分の意志で「省電力モード」や「一旦セーブして休憩」してくれたら、僕のPCは壊れくて済むって話。

    内部に休息志向 Rrest(t)R_{\mathrm{rest}}(t) を作る。

    Rrest(t)=aFfatigue(t)+bIpain(t)+cBstress(t)+dBfrustration(t)eBcuriosity(t)fSdanger(t)R_{\mathrm{rest}}(t) = a\,F_{\mathrm{fatigue}}(t) +b\,I_{\mathrm{pain}}(t) +c\,B_{\mathrm{stress}}(t) +d\,B_{\mathrm{frustration}}(t) -e\,B_{\mathrm{curiosity}}(t) -f\,S_{\mathrm{danger}}(t)





    疲労、痛み、ストレス、フラストレーションで休息志向は上がる・・好奇心が強いと少し下がる・・近くに危険があると「今は休めない」で下がる・・・みたいな方向に向かうかどうかはテスト次第。
    外部指示、順番、ラベル、評価、最適化は入れない。


    危険だから即休むではなく、危険が近いとむしろ休息に入れないんじゃないかな。





    ---------------追記---------------

    で最後に Sdanger(t) を入れると、3人称だねw
    意味付けのラベル寄せだ。
    無意識にこういう誘惑に進むから危険だ。


    threatImpression
    escapePressure
    alarmBias
    hypervigilanceCoupling

    のように、
    危険という客観意味ではなく、身体の傾きとして置くなら筋が通る。


    Rest(t)=aFfatigue+bIpain+cBstress+dBfrustrationeBcuriosityfHalarmRest(t)=aF_{fatigue}+bI_{pain}+cB_{stress}+dB_{frustration}-eB_{curiosity}-fH_{alarm}

    のようにして、
    この H_alarm は

    motion_approach
    size_large
    speed_fast
    teeth_claw_impression
    unpleasant
    tension


    もしくは

    Rrest(t)=aFfatigue+bIpain+cBstress+dBfrustrationeBcuriosityR_{rest}(t)=aF_{fatigue}+bI_{pain}+cB_{stress}+dB_{frustration}-eB_{curiosity}
    Ralert(t)=pmotionapproach+qspeedfast+rsizelarge+steethClaw+tunpleasant+utensionR_{alert}(t)=p\,motion_{approach}+q\,speed_{fast}+r\,size_{large}+s\,teethClaw+t\,unpleasant+u\,tension

    そして最終的な休息傾向を

    RestDrive(t)=Rrest(t)λRalert(t)RestDrive(t)=R_{rest}(t)-\lambda R_{alert}(t)

    のように見る。

    「大きい・速い・近づく・不快・緊張が強いので、休息場との結びつきが弱まる」

    みたいな。でも、これだとアソシアトロンか・・・
    自律の研究で無駄に時間がかかるのはこういうところだよね。



    -------------------またまた追記----------------------------


    RestDrive(t) が大きいほど
    「休息状態へ入りやすくしたい」なら、

    E(x)=EHopfield(x)μRestDrive(t)safety(B)E(x)=E_{\mathrm{Hopfield}}(x)-\mu \cdot RestDrive(t)\cdot safety(B)

    の方がまず分かりやすいという意見が出た。

    まずは実験してみるか・・・・






    ---------------------Research Note and Attribution Notice-----------------------
    本ブログに含まれる Atra の一人称自律、差分、carry、field、trace、dream slack、外部LLMの翻訳層、非単調な漏れ、およびそれらの関係構造に関する設計記述は、c-side研究所による継続研究メモです。引用・参照・要約・翻案を行う場合は、出典を明記してください。

    The design descriptions in this blog concerning Atra’s first-person autonomy, differences, carry, field, trace, dream slack, the translation layer of external LLMs, nonmonotonic leakage, and the relational structure among these elements are ongoing research notes by c-side Research Institute. If you quote, refer to, summarize, or adapt them, please clearly indicate the source.



    2026年1月30日金曜日

    アソシアトロン(時代と匂い想起デモ)ダウンロード

     

    Pythonに直したのでJavaScript版を公開 (GitHubに置かないし軽いJSはOneドラで)
    基本は中野先生に忠実に作ってるけど、記憶モデルが Hopfield/Associatron の“重み行列”そのままではないです。以前までは相関の場(結合)を媒介に状態が引き込まれる感じでしたが、記憶ベクトル集合のアテンション合成みたいな感じ。「競合」の単位が“部屋→代表キーです。Gate(匂い)と Memory(描画断片)を分離した考え方ですが、思想は8割中野先生寄りにしてます。 最近Cue病です。




    https://crimson-cake-2832.nabedada3.workers.dev/

    LLM連動版はまだ出せないかも。


    時代のボタンを見てガクッと来る言われたんですけどw
    いいの。だって人間だって時間や年代は内部ではなく外部に依存してるでしょ。
    そのうち、「学ラン」=「こいつの場合は1970年代か??」とか連想するようにすれば・・・

    匂いはスイッチひとつだけど、暇なときに勉強しに行きます。_(._.)_




    2026年1月25日日曜日

    A Hypothesis on Spontaneity: Why AGI Must Be First-Person and Loop-Driven

     

    A Hypothesis on Spontaneity:

    Why AGI Must Be First-Person and Loop-Driven

    Yukihiro Watanabe

    C-side Laboratory, Yatsugatake
    2026


    1. Motivation: A Persistent Discomfort

    I have been working for years on Nakano-style Associatron models—associative memory systems where learning is not classification, but accumulation, and recall emerges through competition.

    During this work, I repeatedly encountered discomfort:

    • In Hopfield networks, convergence exists, but something feels dead.

    • In Morita-style non-monotone dynamics, motion appears, yet it still feels externally governed.

    • When connecting Associatron-like memory with modern LLMs, the discomfort becomes impossible to ignore.

    The system becomes verbally fluent, but internally hollow.
    Language begins to dominate recall rather than follow it.

    This discomfort was not theoretical. It was visceral.


    2. A Strange Observation: Why Do Humans Fight LLMs?

    At one point, I found myself feeling actual resistance—almost anger—toward an LLM response.

    Logically, the answer was correct.
    Linguistically, it was polished.
    Yet internally, I reacted:

    “That’s not my judgment.”

    This reaction led to an unexpected realization:

    Associatron is not “everyone’s memory.”
    It is strictly first-person.

    The resistance itself was evidence.

    If the system were truly mine, first-person, then conflict with an external language agent was not a bug—it was a structural signal.


    3. The Core Hypothesis

    Spontaneity cannot arise without a first-person internal loop.

    Not optimization.
    Not goals.
    Not rewards.

    Only a continuously running, value-neutral loop can act as a genuine internal动力 (driving force).


    4. The Loop as a Neutral Power Source

    A loop has no moral sign.

    • It is neither good nor bad.

    • Neither productive nor destructive.

    • It simply runs.

    This is true in software (infinite loops), in physics (closed circuits), and in biology (heartbeat).

    From repeated experiences with unintended infinite loops in FileMaker—often frustrating, CPU-consuming, and difficult to stop—I learned something important:

    A loop is not an error by nature.
    It is raw energy without evaluation.

    Problems arise not from loops, but from loops without state transformation.


    5. Human Spontaneity as Variable-Speed Looping

    Humans are not event-driven machines.

    Internally, we are always looping:

    • Heartbeat (physical loop)

    • Neural activity (informational loop)

    • Thought and recall (cognitive loop)

    The loop never stops, but its speed changes.

    • Focus → faster rotation

    • Fatigue → slower rotation

    Spontaneity emerges not when something is commanded, but when an external fluctuation resonates with an already-running loop.


    6. Inner Wheel and Outer Wheel

    I model this as a double structure:

    • Inner wheel (first-person loop):
      Continuous, self-contained, value-neutral.

    • Outer wheel (world, society, LLMs):
      Large, distant, fluctuating; produces sparks but no agency.

    External sparks do not cause action.
    They only trigger resonance if the inner loop is already energized.





    7. Experience Accumulation (“Stacking”)

    Associatron does not judge at learning time.

    It simply accumulates.

    Let m(t)m(t) denote accumulated experiential weight:

    m˙(t)=λm(t)+kηk1fire(tk)\dot{m}(t) = -\lambda m(t) + \sum_k \eta_k \cdot \mathbf{1}_{\text{fire}}(t_k)
    • No classification

    • No acceptance/rejection at input time

    • Evaluation happens only after outcomes

    Whether an experience was “necessary” or “unnecessary” is decided later, during recall under a cue.

    This is crucial.


    8. Minimal Mathematical Sketch of Spontaneity

    Let the internal loop be represented by a phase variable:

    θ˙(t)=ω(t)\dot{\theta}(t) = \omega(t)

    External sparks:

    s(t)=kakδ(ttk)s(t) = \sum_k a_k \delta(t - t_k)

    Internal sensitivity (first-person, history-dependent):

    x(t)=Z(θ(t))s(t)x(t) = Z(\theta(t)) \cdot s(t)

    Firing condition:

    fire    x(t)>τ(t),τ(t)=τ0αm(t)\text{fire} \iff x(t) > \tau(t), \quad \tau(t) = \tau_0 - \alpha m(t)

    No reward function.
    No optimization objective.

    Only resonance between a running loop and accumulated experience.






    9. Why LLMs Are Libraries, Not Selves

    LLMs are extraordinarily useful.

    They are:

    • Libraries

    • Language organs

    • External adapters to society

    But they are not first-person.

    They do not carry irreversible experience.
    They do not suffer consequences.
    They do not “push back.”

    Therefore:

    • LLMs should be injectable

    • Optional

    • Rejectable

    They must never overwrite the inner loop.


    10. Why AGI Without First-Person Loops Will Fail

    Most AGI research defines spontaneity as:

    • Self-generated goals

    • Curiosity metrics

    • Autonomous planning

    But these are behaviors, not the source of spontaneity.

    Without a value-neutral internal loop:

    • Systems optimize

    • Systems adapt

    • Systems perform

    But they do not live.

    And humans sense this absence immediately—often as discomfort or resistance.


    11. Conclusion

    Spontaneity is not something a system decides to have.
    It is what happens when a first-person loop keeps running,
    and the world happens to resonate with it.

    The loop itself has no meaning.
    Meaning emerges only afterward—through recall, action, and consequence.

    AGI will not be achieved by scaling intelligence outward.
    It will require returning inward—to the smallest possible unit:

    a single, first-person loop that never stops running.








    Lineage of Associative Memory:

    What Was Preserved and What Gradually Disappeared

    The hypothesis presented in this article did not emerge in isolation.
    It grew out of a long engagement with associative memory research, where a persistent sense of discomfort accumulated across several foundational models.

    This section briefly revisits three key points in that lineage—not to judge them as correct or incorrect, but to clarify what each preserved, and what quietly faded away.


    Nakano’s Associatron (1972): Accumulation Without Interpretation

    Nakano’s Associatron is fundamentally different from many later neural network models.

    • It is not a classifier.

    • Learning is not selection or filtering.

    • Experiences are simply accumulated.

    • Recall emerges through competition, not instruction.

    Crucially, the Associatron does not explicitly define multiple viewpoints, agents, or shared cognition.
    There is an implicit assumption that memory belongs to a single holder.

    Although the term was never stated explicitly, Nakano’s model is structurally compatible with a first-person memory system:
    a system that does not ask whether an experience is meaningful at the time of learning, but only whether it later participates in recall.

    This quiet assumption becomes important later.


    Hopfield Networks: Stability Without Continuation

    Hopfield networks introduced a powerful and elegant formalism.

    • A global energy function guarantees convergence.

    • Dynamics are mathematically stable.

    • Recall is well-defined as energy minimization.

    However, during practical exploration, a subtle discomfort arises.

    Once convergence is reached, the system stops.
    The dynamics collapse into rest.

    While Hopfield networks converge, they do not continue.
    The loop resolves into equilibrium, and with it, the sense of internal动力 (driving force) disappears.

    The system is stable—but inert.


    Morita’s Non-Monotone Dynamics: Motion Without Ownership

    Morita’s non-monotone associative dynamics address part of this limitation.

    • The system does not monotonically descend an energy landscape.

    • Activity persists.

    • Fluctuations and transitions are allowed.

    From the outside, the system appears more “alive.”

    Yet another discomfort emerges.

    Despite continuous motion, the dynamics still feel externally governed.
    The system moves, but it does not clearly own its motion.

    There is activity, but not subjectivity.


    A Common Thread

    These three approaches form a coherent lineage.

    All of them engage seriously with associative memory.
    All of them avoid explicit symbolic control.
    All of them model recall as an emergent phenomenon.

    Yet across this lineage, one assumption remains mostly implicit:

    the existence of a single, first-person internal loop.

    When this assumption is preserved, associative memory feels grounded and experiential.
    When it is weakened, distributed, or externalized, spontaneity gradually degrades into mere behavior.

    This observation does not invalidate these models.
    Rather, it reveals a structural boundary:

    associative memory can function without first-person ownership,
    but spontaneity cannot.


    From Lineage to Hypothesis

    The hypothesis proposed in this article—that spontaneity requires a value-neutral, first-person internal loop—did not arise from rejecting prior work.

    It arose from staying inside this lineage long enough to notice what could not be removed without something essential disappearing.

    In that sense, this hypothesis is not an external critique, but an internal consequence of associative memory research itself.






    -----------------------------------------------------



    内輪と外輪ってのがあってね、ようは二重丸さ。
    内輪は自分。
    そして時計回りに回っている。
    いわゆるループだよね。
    開発者はさ、Loopを悪だと考えるよね。
    いや、僕もずーーと、自分の足りない能力で開発していると
    ループが発生する。でもさ、ちょっと眺めてみてごらんよ。

    ループってある意味凄いエネルギーだよね。
    俺、狭心症持ってる爺さんだから、交換してほしいよ。

    内輪てのはさ、回るスピードはバラバラ。
    気分いい時とか集中してるときはけっこう速め。

    外輪って世間のような次元で、ものすごくデカい。
    二重丸みたいだけど外輪と内輪の距離は半端ないよね。
    たぶん次元だから奥行きもある。
    その外輪も回ってる。地球みたいな感じ。
    いい事も悪い事も人間の既成概念で決めつけた世界は関係ない、ただ回ってる。

    同じ回転の中で、外輪は小さな点がいっぱいあって、小さなスパークしたり、大きなスパークしたりする。出来事だよね。
    なんというか太陽フレアみたいなかんじ。

    そこに1人称の内輪が外輪のスパークに反応して、発火する。
    興味を持ったり、動こうという動機を持ったり、
    「あ!いけない。納品明日だ!デバッグ急がなきゃ!」って自発性が生じる。
    今のAIに自発性ってないじゃん、だって一人称じゃないんだもの。

    アソシアトロンと一人称を考えたとき、
    1人称の内輪は発火の経験というのがあって、結果に対して、正しいとか間違いではなくてさ、発火が積になる。ただ、そこには結果というものが起こるわけ。

    「昔々、ある村にお爺さんとお婆さんが居ました。お爺さんは山で木を切って怪我をしました」とかさ、ここにある「昔々」はいくら積んでも「昔」さ、「ある村に」って人間の頭じゃ「いったい何処よ」ってなるでしょ?でもこれはいくら積んでも意味のないワード。
    「お爺さんとお婆さん」はそのまま積になる。経験を繰り返すと出会う確率があるもの。
    問題は「山で木を切って怪我をした」ってのが

    危険だよね?
    って思考が働くのはエゴじゃん、って話。
    既成概念が強すぎてエゴだらけなんだよ。

    アソシアトロンの連想記憶ってのは、そうじゃなくて、「山で木を切って」「怪我をした」ってのが積み重なると、LLMと連動したときに「治療した」「入院した」「また周りに迷惑かけた」という結果が生じて、それを元に「爺さん、気を付けてね~」になる話。

    結果も経験もないのに「おじい様きおつけて下さいませ」は僕からすると「何言ってんだよ!」ってなる。基本、僕はバカだから、LLMに期待するじゃん。
    あ、そっか、LLMの仕事はそういうものではないと。










    ようは、結果的に、「なにか次に繋がったものと、繋がらなかったもの」ってのがあってさ、発火するためのきっかけになる積が積まれてる。そこから想起して自発的に動くようになるんじゃないの?って仮説だよね。

    だって、一人称だから自発なんだもの。外部は命令じゃん。


    もう一つは、両方必要って話。

    おとつい、郵便局に行ったわけさ。すると、どこかの婆ちゃんが窓口で長話してさ、後ろはエライ並んでいるんだよ。窓口の青年は状況的に後ろに並んでいる人達がイライラしてるの察して対応しようとしてるんだな。


    婆ちゃん:「それでね、うちの孫がね・・・」
    窓口:「ですから、何を仰いたいのでしょうか」
    って言っちゃったんだよ。

    これはさ、外輪とか、外部倫理からしたら状況の優先順位が働いて「おばあ様、皆さんに迷惑がかかるので、少し空いてからお話を伺います」みたいな挙動になる。
    でも、内輪や積まれた積の場合は、「なにか困ってるのかな?詐欺に引っかかったかな・・」という挙動になる。1人称なので、まずは相手の状況を記憶して想起しLLMに指示をする。


    一方は、大枠で皆の状況で判断、一方は1人称。どっちが正しいではなく、両方無いと困るって話。






    ---------------------Research Note and Attribution Notice-----------------------
    本ブログに含まれる Atra の一人称自律、差分、carry、field、trace、dream slack、外部LLMの翻訳層、非単調な漏れ、およびそれらの関係構造に関する設計記述は、c-side研究所による継続研究メモです。引用・参照・要約・翻案を行う場合は、出典を明記してください。

    The design descriptions in this blog concerning Atra’s first-person autonomy, differences, carry, field, trace, dream slack, the translation layer of external LLMs, nonmonotonic leakage, and the relational structure among these elements are ongoing research notes by c-side Research Institute. If you quote, refer to, summarize, or adapt them, please clearly indicate the source.






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

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