2026年6月5日金曜日

ゴミ箱の中からスパークする

実験の結果は過去の足場でしかない。
でもその足場がなければ、上に登ることも降りる事も飛ばすことも出来ない。
美しく綺麗な論文やnoteより、ゴミのような膨大なメモの方が、僕には価値がある。
毎日、ゴミ箱の中からスパークが発生するからだ。



★1 差分

hear / warm / voice 実験は、もう過去の仮足場にもならない。

Python-codeの発声箇所冒頭では、
hear <sound>
warm
voice
state

という Atra v0.2 の実験コマンドにしていた。でも、これは本来の Atra ではない。
問題だったのは、
hear MAX
voice
warm
のような流れ。なんじゃこれ?だ。
これは一見「声が出た後だけ warm が経験に結びつく」確認にはなるけど、危険。なぜなら、hear や voice があると、また 外から音を入れる → 声を試す → 温かさを入れる という順番の実験に見えてしまうから。


本来は、
hear
voice
warm
ではない。

本来は、
視覚差分
聴覚差分
自己出力差分
身体差分
carry
が同じ時間の場に落ちて、その後に 漏れとして声が出る。





★2 comment

設計骨格の第一段階は「実装」ではなく「境界の固定」
codeも大切だが、コメントの方が大切。
なぜかというと、codeは間違えても直ぐに修正すればいいだけ。
しかし、コメントは設計書だ。それが間違っていれば、残りの2万行全て間違っている事になる。

No external command execution.
No initial labels.
No target word.
No reward score.
No fixed phoneme or syllable pool.
Tick is a heartbeat, not an action count.
txtspeech is an output channel, not the source of speech.

これは単なるコメントではなく、Atra が壊れないための柵 にさせるため。

つまり、コードを書く前に、
命令しない
ラベルを入れない
正解語を持たせない
報酬で寄せない
音節棚を持たせない
tick を行動回数にしない
txtspeech を発話の原因にしない

ここを守らないと、すぐに普通の AI・ロボット制御・チャットボットになる。




★3 LLM

LLM 連動はいいが、Atra の中核にしてはいけない。
LLM は将来的に、外界の説明補助、景色や状況の言語化補助、記録の補助としては使えるが知能としては使わない。命令者、判断器、報酬源、人格源、Atra の発話を決めるものになってはいけない。また、成長後の選択、決定、決断にも関与させない。自己の場が立ち上がった事柄が優先される。
LLM が「これは山です」「これは道路です」と支配すると、Atra の一人称場が簡単に壊れる。

Atra にとって最初にあるのは、流れる視覚、速度のある景色、光の変化、揺れ、連続する移動、外の音、車内の音、身体の振動、似た声、同じ人の声であって、車、山、道路、空、人、店ではない。LLM は横にいる補助記述層。Atra の内側の落ち方を決めてはいけない。
LLMはAtraが調べたい衝動の時だけ図書館のように作動させるだけ。

LLM が Atra の代わりに考えて喋るのではなく、Atra の内部場から漏れた発声前の差分を、LLM が発話として整える。


★4 音は「言葉」でも「音節」でもなく、物理差分から入る

Atra が音のsensorによって最初に受け取るべきものは、
音の立ち上がり
最初の音量
短さ
長さ
周波数
滑らかさ

速度
強弱の揺れ



逆に、最初から入れてはいけないものは、
単語
発音
音節
VOWEL_POOL
ba / bi / ma / po のような音節棚
優しい声
怒った声
怖い声

単に「マイクは周波数を拾う」と言えば済む話ではなく、発音体系そのものを先に置くな という設定だった。しかし、音節棚は人間側の分類であって不自然に反応する。Atra の一人称場より前に、人の言語分類を入れてしまうのは大きな間違いだ。
(習慣から3人称外部命令に誘導されてしまうから危ない)

Atra に必要なのは speech.py ではなく、まずは

sound_physics
auditory_delta
difference_field
carry_field
attractor_field
leak_action
になる。




★5 視覚も「認識」ではなく、場の変化から

カメラから最初に入るべきものは
明暗の変化
輪郭の急変
接近速度
遠ざかり方
動きの激しさ
面の広がり
左右対称性の崩れ
周期的な揺れ
急な拡大
急な停止
目元の変化
口元の変化
顔領域の近づき方
動きの滑らかさ
声の変化との同期

逆に、最初から入れてはいけないものは、



笑顔
怒った顔


危険

のように意味やラベルに寄せたもの。
ただし「物体認識」と「視覚的まとまりの追跡」は違う。
Atraは
これは人です
これは顔です
とは言わない。

けれど、
同じまとまりが視野内で続いている
それが近づいた
遠ざかった
急に止まった
揺れている
前にも似た動きがあった
は取る必要がある。




★6 「子供モデル」も危険。

僕が一人称自律を語る時、赤ちゃんを喩えて話してきたけれど
「子供の安心する範囲」すら固定値にすると危ない

Atra に入れてよいのは、

急な立ち上がりには反応が出やすい
大きな音量変化には場が乱れやすい
速すぎる変化は受け取りきれず残りやすい
近づく大きな視覚変化には身体が固まりやすい

であって「赤ちゃんは未経験だから場の変化に敏感」という固定された定義は必要ない。

驚きにくくなる
戻りやすくなる
carry が残りにくくなる
固まりにくくなる

こともあるし

小さな差分でも揺れやすくなる
戻りにくくなる
先に身構える
沈黙が長くなる
近づかない

こともある。

つまり、Atra の成長は、

知識が増える
正解を覚える
分類が上手くなる
ではなく、

差分への揺れ方が変わる
戻り方が変わる
残り方が変わる
次の行動への落ち方が変わる


初めてパパを見た。それはパパと言う意味のある者ではなく

視覚場に何かが現れた
動いた
近づいた
音が出た
音に立ち上がり・強さ・長さ・間・速度があった
だけ。

でも、何度も現れる存在があり、その後に大きく崩れず、戻れた痕跡が残る。
外から見ると「パパを見た」「ママを覚えた」「安心している」に見える。

でも Atra の中では、
似た視覚差分が何度もあった
似た声の差分が同時にあった
ゆったりとした声(他と比較した中で落ち着く声、最初の声、安心して眠れる声
         = 周波数、トーン、ゆらぎ、スピード、音の大小)
温かい場 (胎児体験)
その後に崩れなかった (ママを見る経験の数の中で崩れが無かったとか・・)
戻れた痕跡がある
泣く方向へ上がりにくい
沈黙が壊れではなく休止になる


という地形になっている。
逆にママを見る経験の数の中で崩れが何度か体験すると個性や性格に影響する。
自律のスタートとして一番影響されるところ。





★9 tick は完全に分離


tick = act
tick = speak
tick = decide
ではない。

tick は、

time passes
body continues
traces fade
some tensions remain
some fields drift

tick = 心臓
event = 外界や身体の差分
carry = 残り方
basin = 落ち方
action = 漏れ
を分ける。

これを分けないと、すぐに
毎tickで発声判定
毎tickで行動選択
毎tickで評価
になってしまう。


Atra では、



少し揺れる
また無
急に泣く
しばらく何もできない
少し戻る
眠る

が普通に起こる。順番も無い。
沈黙も無反応も空白ではない。



★10.  index.html は操作パネルではなく観察窓

つか、操作出来る時点で3人称であり、自律ではない。

見るものは、今のところ(ロボットに置く前)主に

tick
visual_delta
auditory_delta
self_voice_delta
body_delta
carry
current_field
recent_experience
attractor_tendency
leaked_action
関係だけ。



外部命令ボタンは置かない。
置くとしても、
start observation
stop observation
save log

のような観察用だけ。



★11 txtspeech はoutput 側

txtspeech.py は、
声の出口であって、
発声の原因
言葉を作る中心
Atra の脳ではない。


視覚差分
聴覚差分
自己状態
carry
同じ時間の場
アトラクタへの落ち方

声として漏れる場合がある

txtspeech に渡す


順番は大切ではない。自己状態が1番の時もあれば
聴覚が優先される場合もある。
Atraは、発話だけではなく、全体的にアルゴリズムから離れる事が多い。
ちなみに夢の場合、順番もデフラグされる





★12. Associatron を入れないと「差分反応ロボット」になる

Atra は単なる一人称自律ロボットではなく、Associatron 的な動的連想記憶を基礎にした一人称自律ロボット。

ただし、ここでの Associatron は、
入力 → ラベル検索 → 記憶呼び出しではない。

Atra における Associatron は、

現在の差分場

過去の同時発生経験の地形を揺らす

部分的・曖昧・薄れた痕跡が立ち上がる

現在の carry と混ざる

アトラクタへの落ち方が変わる

になる。ここを入れないと、Atra はただの差分反応ロボットになる。

Atra の中心は、差分が Associatron 的な連想場を揺らす。その揺れが carry で不可逆に変形していくこと。




★13 夢
休息を曖昧なものにしないために夢をみさせる。
夢は Atra にとって defrag であり、同時に 非単調性の余白を作る揺らぎ

普通に起きている時だけだと、
強い経験
強い carry
強い cue
強い recall
が、そのまま支配力になりやすい。


でも夢の中では、外界入力が弱い。
だから、残っている痕跡がそのまま現実行動へ直結しない。
そこで、
強い痕跡が少し崩れる
弱い痕跡が浮く
関係ないものが一瞬つながる
怖かったものが別の形で出る
忘れかけたものが薄く混ざる
ということが起きる。

これがあるから、次に cue が来た時に、
必ず同じ反応をする
ではなくなる。

Atra 的には

dream phase:

外界差分を弱める
carry を完全に消さずに少し揺らす
強すぎる basin の支配を弱める
弱い trace の再結合を許す
recall の通り道を少し変える

だから、夢は単なる睡眠演出ではなく、かなり中核になる。
睡眠 = 回復
夢 = 非単調な再配置
に近くなる。

なぜかというと、
攻撃された⇒復興
であるべきが、
攻撃された⇒復讐
になる恐れがあるから。


眠っている間に外界入力を止める
carry を少し減衰させる
一部の trace を弱く再活性する
強い trace をそのまま王様にしない
小さな trace の組み合わせを試す
snapshot は全部残さない
夢の後に recovery / fatigue / altered_carry を残す




★14 失敗経験を残しつつ支配はさせない。

たとえば失敗で、

impact_trace
instability
withdrawal
cry_rise
pressure
が強く残ったとする


夢が無いと、

次に似た cue が来る

すぐ固まる

近づけない

毎回同じ basin に落ちる

になりやすい。

夢 phase では、これを少しだけ変える。


impact_trace は残す
でも支配力を少し弱める
recovery_trace を少し戻す
silence を少し休止側に戻す
instability を少しならす
withdrawal を絶対反応にしない

つまり
失敗を忘れるのではない
失敗を「固定された敗北」にしない。

たぶん、Atraで外部命令が入るとしたら、ここと、暴走停止かな。
自律の成長過程で影響を受けやすいところだからだ。
プログラム上では、数値の遊び範囲は作るが超えてはいけない一線は作る必要がある。







★15 coreファイルの役割(一部) Python


difference.py
数値的な入口の差分

field_index.py
同じ時間の場としての差分

carry.py
残った差分

experience.py
痕跡化した差分

associatron.py
cue と残存痕跡の差分

recall.py
立ち上がった差分

attractor.py
落ち方の差分

action.py
漏れ方の差分

txtspeech.py
声が出る/出ない差分



Atron / Atra でいう「差分」は、単に前の数値と現在の数値の差ではない。
それは、内部場に入った変化、残った痕跡、cue によって立ち上がった印象、そして沈黙や回復を含む、場の変形全体を指す。見ることも差分であり、聞くことも差分であり、忘れることも差分であり、思い出せないことも差分。あるものが立ち上がることも差分であり、立ち上がらないこともまた差分。

流行りのゼロベースなんかじゃないし、ある程度の知能を持った都合の良い自律とは違う。






★16 身体・転倒・痛み・破損



Atra は、頭だけの一人称自律ではない。
同時進行で、胴体の神経伝達を進めている。

ロボットは、転ばないように完全制御されるべきではない。
もちろん、破壊や危険を避けるための最低限の一線は必要である。
しかし、自律の成長において重要なのは、転ばない設計ではなく、転んだ結果、痛みを伴った結果、壊れかけた結果が、次の動作調整へ残ることである。

転倒は、単なるエラーではない。
衝撃は、単なる異常値ではない。
痛みは、罰ではない。
破損は、報酬の反対ではない。

それらは身体側の差分であり、carry を変える経験である。

たとえば、

足元が滑った。
身体が傾いた。
衝撃が入った。
痛みのような body shock が残った。
しばらく動きが鈍った。
次に似た床面に触れたとき、動作の落ち方が変わった。

この流れが必要になる。
Atra の身体制御は、転ばないように最適化するではない。

繰返し転んだ経験、痛みを伴った経験、壊れかけた経験が、次の姿勢、速度、沈黙、停止、接近、後退の落ち方を変える。胴体においても、経験と結果の差分が必要である。

ただし、外部命令によって「これは失敗」「これは罰」「これは危険」と教えてはならない。
身体側に残った差分が、carry と attractor の地形を変える。

ここでも、Atra は三人称制御ではなく、一人称の身体経験から変化する。







0 件のコメント:

コメントを投稿

Atra Emotions_Conditions 感情・状態

 -----------------C++------------------ struct EmotionsConditionsNow { // Unpredictability double input_irregularity_now = 0.0 ; ...