Up 関節トルクNN の訓練 作成: 2026-07-27
更新: 2026-07-29


4足歩行ロボット身体体性神経系 > 遠心性関節トルクNN訓練

    関節トルクNN の訓練は,はじめから通常の RL のようには,立たない。

    「通常」とは,つぎの流れ:
     1. NN に,関節の運動を入力する:
        ((θ_now, ω_now), (θ_target, ω_target))
     2. NN が,これを実現するサーボトルクτを出力する。
     3. τが 「正しいトルク値τ_true」に近づくように,
       NN のパラメータ値を勾配降下法で更新する。

    しかし,τ_true がわからない。
    τ_true は,試行錯誤で求めるというものになる。
    マシンの 「癖」 も,これに現れてくる。


    現前の4足歩行ロボットは,(θ_target, ω_targe) を実現するトルクを計算で求めている。
    計算担当は 「制御プログラム」。

    この計算法を使うと,関節トルクNN の訓練データを,つぎのようにつくることができる。

    つぎの1〜7 をループで繰り返す:  
     1. サーボセンサから (θ_t, ω_t) が脳に上がる
     2. これを含めた s_t が,脳NN に入力される
     3. 脳NN が (θ_target, ω_target) を出力する
     4. これを実現するトルク τ_t を計算する
     5. τ_t を関節サーボに渡す
     6. サーボがこのトルクで動く
     7. 結果が (θ_{t+1}, ω_{t+1}) になる

    これにより,つぎの実際値のデータが得られる
       (θ_t, ω_t) → τ_t → (θ_{t+1}, ω_{t+1})

    このデータを,つぎの形に組みかえる:
       ( ( (θ_t, ω_t), (θ_{t+1}, ω_{t+1}) ), τ_t )
    読みは,
      「Δt の間に (θ_t, ω_t) を (θ_{t+1}, ω_{t+1}) に
       変えるトルクは,τ_t 」

    これは,関節トルクNN の訓練データになる:
      入力:( (θ_t, ω_t), (θ_{t+1}, ω_{t+1}) )
      教師信号:τ_t


    この訓練の要点は:
      教師信号に計算値を使わない
      あくまでも実際値を使う

    計算値を使う訓練は,NN に計算アルゴリズムの癖を学習させる訓練になる。
    NN の意義は 「計算アルゴリズを超える」 であるから,計算値を教師信号にする訓練は意味が無いわけ。