実験の結果は過去の足場でしかない。
でもその足場がなければ、上に登ることも降りる事も飛ばすことも出来ない。
美しく綺麗な論文やnoteより、ゴミのような膨大なメモの方が、僕には価値がある。
毎日、ゴミ箱の中からスパークが発生するからだ。
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
が同じ時間の場に落ちて、その後に 漏れとして声が出る。
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・ロボット制御・チャットボットになる。
LLM 連動はいいが、Atra の中核にしてはいけない。
Atra が音のsensorによって最初に受け取るべきものは、
最初の音量
短さ
長さ
周波数
滑らかさ
間
速度
強弱の揺れ
逆に、最初から入れてはいけないものは、
単語
発音
音節
VOWEL_POOL
ba / bi / ma / po のような音節棚
優しい声
怒った声
怖い声
単に「マイクは周波数を拾う」と言えば済む話ではなく、発音体系そのものを先に置くな という設定だった。しかし、音節棚は人間側の分類であって不自然に反応する。Atra の一人称場より前に、人の言語分類を入れてしまうのは大きな間違いだ。
(習慣から3人称外部命令に誘導されてしまうから危ない)
sound_physics
auditory_delta
difference_field
carry_field
attractor_field
leak_action
になる。
輪郭の急変
接近速度
遠ざかり方
動きの激しさ
面の広がり
左右対称性の崩れ
周期的な揺れ
急な拡大
急な停止
目元の変化
口元の変化
顔領域の近づき方
動きの滑らかさ
声の変化との同期
逆に、最初から入れてはいけないものは、
人顔
笑顔
怒った顔
犬
手
危険
のように意味やラベルに寄せたもの。
ただし「物体認識」と「視覚的まとまりの追跡」は違う。
Atraは
これは顔です
とは言わない。
けれど、
同じまとまりが視野内で続いている
それが近づいた
遠ざかった
急に止まった
揺れている
前にも似た動きがあった
は取る必要がある。
Atra に入れてよいのは、
急な立ち上がりには反応が出やすい大きな音量変化には場が乱れやすい
速すぎる変化は受け取りきれず残りやすい
近づく大きな視覚変化には身体が固まりやすい
戻りやすくなる
carry が残りにくくなる
固まりにくくなる
戻りにくくなる
先に身構える
沈黙が長くなる
近づかない
こともある。
つまり、Atra の成長は、
知識が増える正解を覚える
分類が上手くなる
ではなく、
差分への揺れ方が変わる
戻り方が変わる
残り方が変わる
次の行動への落ち方が変わる
動いた
近づいた
音が出た
音に立ち上がり・強さ・長さ・間・速度があった
だけ。
でも、何度も現れる存在があり、その後に大きく崩れず、戻れた痕跡が残る。
外から見ると「パパを見た」「ママを覚えた」「安心している」に見える。
でも Atra の中では、
似た視覚差分が何度もあった
似た声の差分が同時にあった
ゆったりとした声(他と比較した中で落ち着く声、最初の声、安心して眠れる声
= 周波数、トーン、ゆらぎ、スピード、音の大小)
温かい場 (胎児体験)
その後に崩れなかった (ママを見る経験の数の中で崩れが無かったとか・・)
戻れた痕跡がある
泣く方向へ上がりにくい
沈黙が壊れではなく休止になる
という地形になっている。
tick = act
tick = speak
tick = decide
ではない。
tick は、
time passesbody continues
traces fade
some tensions remain
some fields drift
tick = 心臓
event = 外界や身体の差分
carry = 残り方
basin = 落ち方
action = 漏れ
毎tickで発声判定
毎tickで行動選択
毎tickで評価
になってしまう。
Atra では、
無
無
無
少し揺れる
また無
急に泣く
しばらく何もできない
少し戻る
眠る
が普通に起こる。順番も無い。
沈黙も無反応も空白ではない。
見るものは、今のところ(ロボットに置く前)主に
tickvisual_delta
auditory_delta
self_voice_delta
body_delta
carry
current_field
recent_experience
attractor_tendency
leaked_action
関係だけ。
外部命令ボタンは置かない。
置くとしても、
start observation
stop observation
save log
のような観察用だけ。
声の出口であって、
発声の原因
言葉を作る中心
Atra の脳ではない。
聴覚差分
自己状態
carry
同じ時間の場
アトラクタへの落ち方
↓
声として漏れる場合がある
↓
txtspeech に渡す
Atraは、発話だけではなく、全体的にアルゴリズムから離れる事が多い。
ちなみに夢の場合、順番もデフラグされる
ただし、ここでの Associatron は、
入力 → ラベル検索 → 記憶呼び出しではない。
Atra における Associatron は、
現在の差分場
↓
過去の同時発生経験の地形を揺らす
↓
部分的・曖昧・薄れた痕跡が立ち上がる
↓
現在の carry と混ざる
↓
アトラクタへの落ち方が変わる
になる。ここを入れないと、Atra はただの差分反応ロボットになる。
Atra の中心は、差分が Associatron 的な連想場を揺らす。その揺れが carry で不可逆に変形していくこと。
強い経験
強い carry
強い cue
強い recall
が、そのまま支配力になりやすい。
でも夢の中では、外界入力が弱い。
だから、残っている痕跡がそのまま現実行動へ直結しない。
そこで、
強い痕跡が少し崩れる
弱い痕跡が浮く
関係ないものが一瞬つながる
怖かったものが別の形で出る
忘れかけたものが薄く混ざる
ということが起きる。
これがあるから、次に cue が来た時に、
必ず同じ反応をする
ではなくなる。
Atra 的には
dream phase:
外界差分を弱める
carry を完全に消さずに少し揺らす
強すぎる basin の支配を弱める
弱い trace の再結合を許す
recall の通り道を少し変える
だから、夢は単なる睡眠演出ではなく、かなり中核になる。
睡眠 = 回復
夢 = 非単調な再配置
に近くなる。
攻撃された⇒復興
であるべきが、
攻撃された⇒復讐
carry を少し減衰させる
一部の trace を弱く再活性する
強い trace をそのまま王様にしない
小さな trace の組み合わせを試す
snapshot は全部残さない
夢の後に recovery / fatigue / altered_carry を残す
たとえば失敗で、
impact_traceinstability
withdrawal
cry_rise
pressure
が強く残ったとする
夢が無いと、
次に似た cue が来る↓
すぐ固まる
↓
近づけない
↓
毎回同じ basin に落ちる
になりやすい。
夢 phase では、これを少しだけ変える。
recovery_trace を少し戻す
silence を少し休止側に戻す
instability を少しならす
withdrawal を絶対反応にしない
失敗を「固定された敗北」にしない。
たぶん、Atraで外部命令が入るとしたら、ここと、暴走停止かな。
自律の成長過程で影響を受けやすいところだからだ。
プログラム上では、数値の遊び範囲は作るが超えてはいけない一線は作る必要がある。
数値的な入口の差分
field_index.py
同じ時間の場としての差分
carry.py
残った差分
experience.py
痕跡化した差分
associatron.py
cue と残存痕跡の差分
recall.py
立ち上がった差分
attractor.py
落ち方の差分
action.py
漏れ方の差分
txtspeech.py
声が出る/出ない差分
それは、内部場に入った変化、残った痕跡、cue によって立ち上がった印象、そして沈黙や回復を含む、場の変形全体を指す。見ることも差分であり、聞くことも差分であり、忘れることも差分であり、思い出せないことも差分。あるものが立ち上がることも差分であり、立ち上がらないこともまた差分。
Atra は、頭だけの一人称自律ではない。
同時進行で、胴体の神経伝達を進めている。
ロボットは、転ばないように完全制御されるべきではない。
もちろん、破壊や危険を避けるための最低限の一線は必要である。
しかし、自律の成長において重要なのは、転ばない設計ではなく、転んだ結果、痛みを伴った結果、壊れかけた結果が、次の動作調整へ残ることである。
転倒は、単なるエラーではない。
衝撃は、単なる異常値ではない。
痛みは、罰ではない。
破損は、報酬の反対ではない。
それらは身体側の差分であり、carry を変える経験である。
たとえば、
足元が滑った。
身体が傾いた。
衝撃が入った。
痛みのような body shock が残った。
しばらく動きが鈍った。
次に似た床面に触れたとき、動作の落ち方が変わった。
この流れが必要になる。
Atra の身体制御は、転ばないように最適化するではない。
繰返し転んだ経験、痛みを伴った経験、壊れかけた経験が、次の姿勢、速度、沈黙、停止、接近、後退の落ち方を変える。胴体においても、経験と結果の差分が必要である。
ただし、外部命令によって「これは失敗」「これは罰」「これは危険」と教えてはならない。
身体側に残った差分が、carry と attractor の地形を変える。
ここでも、Atra は三人称制御ではなく、一人称の身体経験から変化する。
0 件のコメント:
コメントを投稿