2026年4月12日日曜日

Atronの数式

Atronの数式って、アソシアトロンと同じじゃない。
Atron の数式は「これは楽しい」「これは危険」と決めるための式ではなく、出来事による差・残効・想起圧・身体傾向を、外部命令にしないまま保持するための式なので、曖昧が前提。なので論文のためとかではなくて、僕のノートとして残すという意味で書いてみる。




1. 基本形

 Atron の最小形。

xt+1=xt+Δxt+ctx_{t+1} = x_t + \Delta x_t + c_t


  • xtx_t は今の状態
  • Δxt\Delta x_t は出来事による差分
  • ctc_t は carry の残り


これだけだと粗いので、もう少し分ける


2. 状態ベクトル

内部状態。

st=[calmtpaintthreattcuriositytsafetytwarmthtsocialtsurpriset]s_t = \begin{bmatrix} calm_t \\ pain_t \\ threat_t \\ curiosity_t \\ safety_t \\ warmth_t \\ social_t \\ surprise_t \end{bmatrix}

「意味」ではなく、その時の抽象的な場の傾き


3. 出来事断片から差分を立てる

外界の出来事断片を ete_t とする。

et=[impacttrear_approachtroundnesstsoft_voicetwarm_colortbalance_breaktfast_motiont...]e_t = \begin{bmatrix} impact_t \\ rear\_approach_t \\ roundness_t \\ soft\_voice_t \\ warm\_color_t \\ balance\_break_t \\ fast\_motion_t \\ ... \end{bmatrix}

差分は、断片から立てる。

Δst=Weet+Wrrt+Wcct\Delta s_t = W_e e_t + W_r r_t + W_c c_t


  • WeW_e: sensor 断片が差分へ入る重み
  • rtr_t: recall の寄与
  • WrW_r: recall が差分へ与える重み
  • ctc_t: 既存 carry
  • WcW_c: carry が今回の差分の立ち方を変える重み


同じ衝撃でも、以前の carry によって立ち上がり方が変わる。




4. 差分はそのまま行動に行かない

差分はまず身体中間層へ落とす。

身体傾向ベクトルを btb_t とする。

bt=[motor_drivetmotor_stabilitytapproach_biastretreat_biastturn_biastpause_biastgaze_holdtvoice_pressuretsleep_pressuret]b_t = \begin{bmatrix} motor\_drive_t \\ motor\_stability_t \\ approach\_bias_t \\ retreat\_bias_t \\ turn\_bias_t \\ pause\_bias_t \\ gaze\_hold_t \\ voice\_pressure_t \\ sleep\_pressure_t \end{bmatrix}

更新

bt+1=αbt+UΔstb_{t+1} = \alpha b_t + U \Delta s_t
  • α\alpha は前状態の残り
  • UU は差分から身体傾向への写像


これで「痛みだから泣く」ではなく、
「痛み差分が stability を落とし、pause を増やし、voice を崩す」
という形になる。




5. carry の数式

 

carry は残効なので、各軸ごとに減衰つきで残す。

ct+1=Λct+Γg(Δst)c_{t+1} = \Lambda c_t + \Gamma \, g(\Delta s_t)


  • Λ\Lambda: 減衰行列
  • Γ\Gamma: 流入量
  • g(Δst)g(\Delta s_t): 小さい差を切り捨てて大きい差だけ残す関数


軸ごとなら、

carryt+1pain=λpcarrytpain+γpmax(0,Δpaintθp)carry^{pain}_{t+1} = \lambda_p carry^{pain}_t + \gamma_p \max(0,\Delta pain_t-\theta_p)
carryt+1threat=λhcarrytthreat+γhmax(0,Δthreattθh)carry^{threat}_{t+1} = \lambda_h carry^{threat}_t + \gamma_h \max(0,\Delta threat_t-\theta_h)
carryt+1safety=λscarrytsafety+γsmax(0,Δsafetytθs)carry^{safety}_{t+1} = \lambda_s carry^{safety}_t + \gamma_s \max(0,\Delta safety_t-\theta_s)




6. recall の数式

Associatron 的には、cue 断片と記憶断片のせめぎ合い。
完全な意味照合ではなく、曖昧な断片一致の圧として書く。

記憶ノートを mim_i とし、今の cue を qtq_t とすると、

ai(t)=ϕ(qt,mi)+βctzia_i(t) = \phi(q_t, m_i) + \beta c_t \cdot z_i
  • ai(t)a_i(t): 記憶 ii の活性
  • ϕ(qt,mi)\phi(q_t,m_i): cue と記憶断片の曖昧一致
  • ziz_i: その記憶に結びつく carry 傾向
  • β\beta: carry の引っ張り強さ

最終的に recall は一つに確定しなくてもいいが、仮に合成するなら

rt=iρi(t)mir_t = \sum_i \rho_i(t) m_i ρi(t)=exp(ai(t)/T)jexp(aj(t)/T)\rho_i(t)=\frac{\exp(a_i(t)/T)}{\sum_j \exp(a_j(t)/T)}

この ρi\rho_i を softmax みたいにしてもいい。
ただし温度 TT を高めにして、曖昧な共存を残すほうが Atron っぽい。




7. 曖昧画像ノートの数式

断片ノートや曖昧画像は、完全画像ではなく圧縮表現。

ノート nin_i

ni=(vi,ai,hi,ci)n_i = (v_i, a_i, h_i, c_i)

のように置く。

  • viv_i: 圧縮画像特徴
  • aia_i: 圧縮音特徴
  • hih_i: 身体残効
  • cic_i: carry との結びつき

想起圧は

recall_pressurei=wvsim(vt,vi)+wasim(at,ai)+whsim(ht,hi)+wcsim(ct,ci)recall\_pressure_i = w_v \, sim(v_t,v_i) + w_a \, sim(a_t,a_i) + w_h \, sim(h_t,h_i) + w_c \, sim(c_t,c_i)


これなら、一曲だけで当時の街や相手や食べ物が立ち上がる感じに近づける。
意味ではなく、断片類似と残効類似の重なり

人間と同じで、後にノートを持たせるんだよ。コクヨのノートみたいなw



8. 行動生成

行動は if-then ではなく、身体傾向からにじませる。

移動系は、

speedt=v0+k1motor_drivetk2pause_biastk3paintspeed_t = v_0 + k_1 motor\_drive_t - k_2 pause\_bias_t - k_3 pain_t turnt=k4turn_biast+k5threatt+k6curiositytturn_t = k_4 turn\_bias_t + k_5 threat_t + k_6 curiosity_t approacht=k7approach_biastk8retreat_biastapproach_t = k_7 approach\_bias_t - k_8 retreat\_bias_t voicet=k9voice_pressuret+k10socialtk11calmtvoice_t = k_9 voice\_pressure_t + k_{10} social_t - k_{11} calm_t


ここでも行動ラベルではなく、
「速度」「旋回」「接近」「声圧」のような連続量にしておく。




9. 怪我と sleep

怪我は出来事から直接作る。

injury_drivet=aΔpaint+bΔsurpriset+cbalance_breaktθIinjury\_drive_t = a\,\Delta pain_t + b\,\Delta surprise_t + c\,balance\_break_t - \theta_I injuryt+1=ηinjuryt+max(0,injury_drivet)injury_{t+1} = \eta injury_t + \max(0,injury\_drive_t)

sleep 圧は

sleep_pressuret+1=λslsleep_pressuret+u1Δpaint+u2Δthreatt+u3injuryt+u4fatiguetu5Δcuriositytu6Δsafetytsleep\_pressure_{t+1} = \lambda_{sl} sleep\_pressure_t + u_1 \Delta pain_t + u_2 \Delta threat_t + u_3 injury_t + u_4 fatigue_t - u_5 \Delta curiosity_t - u_6 \Delta safety_t


怪我 → 疲労 → sleep → 回復
の流れにできる。




10. 成長の数式

成長は、重みや cue が少しずつ変わること。
つまり固定モデルではなく、差を受けた結果、受け皿が変わる

たとえば cue 重み wjw_j

wj,t+1=wj,t+μΔstqj,tνwj,tw_{j,t+1} = w_{j,t} + \mu \, |\Delta s_t| \, q_{j,t} - \nu w_{j,t}
  • よく効いた断片は育つ
  • 効かない断片は薄れる

これで cue は成長とともに増殖・分化できる。



つか、また変わるかもしれない。


0 件のコメント:

コメントを投稿

名前変更する。 Atra

 Atron という名前を使ってきたが、既に ATRON という自己再構成ロボットの研究が存在する。 https://jglobal.jst.go.jp/detail?JGLOBAL_ID=200902233647167175 これ、うちと違うんだよね。研究も違う。 そちらはモジ...