Up 古い試行データを使う 作成: 2026-07-05
更新: 2026-07-05

4足歩行ロボット他律型運動脳 > 訓練古い試行データを使う

    現パラメータ値θに対し,
      θ_old : θに更新される前のパラメータ値
      θ_new : θの更新結果のパラメータ値
    とする。


    PPO は「オンポリシー」だが,
      現パラメータ値θの更新には,
      θ上の試行のデータを使うのではなく,
      θ_old 上の試行のデータを使う
      (データは,ログに保存される)

    理由として説かれるのは:
      「θ上の試行を使ってθを更新」 は,
       学習が不安定になる

    しかしそのかわり,「θ_old 上の試行のデータ」 と 「θの更新」 のギャップを埋める処方が要る。


    この処方は,後述の 「パラメータ値の目的関数」 の内容になるが,先回りして示すと:
     1. θ_old 上の試行全体は,行動が 4096×n。
      このそれぞれに対し,
        アドバンテージ (「行動の良さ」)
      を計算する。。
      試行τの a_t のアドバンテージを,A(τ,t) と表記。
     2. a_t の良さ A(τ,t) を,θ更新用に補正する。
      方法は,
        Ratio(τ,t) = θ(a_t|s_t) / θ_old(a_t|s_t; τ)
      を,A(τ,t) に倍する。
      Ratio(τ,t) は,
       「a_t をどれくらい選ぶか」 の,θ_old 対 θ の比
      これは,「重要度サンプリング」 の考え方。


    「θ_old のデータでθを更新」 は,ロジックとしてはイレギュラー。
    しかし NN は柔軟なので,この形でも学習は進む。

    「θ_old のデータでθを更新」 は,PPO の設計上の選択であり,論理的必然ではない

    ちなみに,
      Ratio_(τ,t) と A__(τ,t) の a_t をθからとる
    の場合は,
      θ_old(a_t|s_t; τ) は,θ_old の NN から求める
    となる。
    単純なロジックだと,これは
     θ_old 用に,歩行脳 NN をもう一つ用意
    ということになる。