用語集 · 強化学習

方策蒸留

別名:Policy distillation、蒸留、distillation、教師、teacher、教師方策、teacher policy、生徒、student、アンカー、anchor、複数教師の蒸留、multi-teacher distillation、単一技の教師、one-technique teacher

ある方策に別の方策の行動を真似させる学習です。ここでは古い方策の凍結したコピーが教師となり、新しい学習がすでに持っている技能を消してしまわないようにします。

蒸留では、生徒モデルが教師モデルの出力を再現するように学びます。方策(ポリシー)の場合、生徒は同じ状況で教師と違う行動を選ぶとペナルティを受けます。教師はより大きなネットワークでも、専門家でも、単に生徒の古いコピーでもかまいません。

平均行動 μ(s)\mu(s) を出力する方策(確率的方策を参照)では、最も単純な蒸留項は、学習の損失に二乗差を加えます。

Lteacher=w⋅1∣M∣∑s∈M∥μθ(s)−μteacher(s)∥2L_{\text{teacher}} = w \cdot \frac{1}{|M|}\sum_{s \in M} \left\lVert \mu_\theta(s) - \mu_{\text{teacher}}(s) \right\rVert^2

ここで ww は生徒を教師へどれだけ強く引き寄せるかを決め、MM は教師が適用される状態の集合です。

アンカーとしての蒸留

学習済みの方策を新しい技能でファインチューニングすると、新しい技能のための更新が古い技能のやり方も変えてしまい、古い技能が薄れていくことがあります(破滅的忘却)。元の方策の凍結したコピーを教師として残しておくと、古い振る舞いをつなぎ止める(アンカーする)ことができます。コツはマスク MM です。教師は古い振る舞いがまだ望まれている場所でだけ適用されるので、新しい技能は自由に学べます。

このプロジェクトでは

ジャブにクロス、フック、アッパーカットを加えたとき、最初のランにはアンカーがなく、ジャブの命中率は 2.7 M ステップで 28 % から 2〜7 % に落ちました。次のランでは最良のジャブの方策を教師にし、w=2w = 2 で、43個のモーター出力について合計しました。マスクは新しいパンチが実行されていないすべての瞬間、つまり構え、リズム、ジャブでした。するとジャブは、4つの新しいパンチを覚える 36 M ステップの間、5〜6 m/s を保ちました。後のランでは、方策をさらに教師から解放していきました。まずクロス、次に目標のあるすべての入力、そして首と頭です。頭の傾きは教師から受け継がれていたのです。

ファイターが歩きを覚えたときは、最良のパンチのモデルが、ステップの最中を除くすべての場面で教師になりました。重み2では、歩きの約 100 M ステップの間にパンチがやはりずれていきました。重みを上げても効果がなかったのはバグのせいでした。教師は自分の統計量ではなく生徒の移動統計量で入力をスケーリングされて見ていた(観測の正規化)ので、その助言が少しずれていたのです。教師を自分のスケーリングに戻し、重みを10にすると、歩くモデルはパンチの入力200回中107回を当て、パンチのモデルは112回でした(フットワークを参照)。

多くの教師、1人の生徒

同じ項で、複数のスペシャリストを1人の生徒にまとめることもできます。各状態はその担当の教師へ振り分けられ、生徒はそこでその教師の行動へ引き寄せられます。各状態を担当する教師は1人なので目標がぶつかることはなく、生徒はそのすべてを1つのネットワークに収めなければなりません。このファイターでは、振り分けは入力によります。ある技の入力がオンの間はその単一技の教師が適用され、それ以外はベースモデルが適用されます。生徒はオンポリシーで学びます。教師は生徒自身が訪れた状態にラベルを付け、生徒はそれでもすべてのタスク報酬を得ます。distill1 はこうして両方の膝蹴りを guard18 に取り込みました。distill4 は w=4w = 4(2から変更)で、ボディストレートと両方の膝蹴りを取り込み、パンチはベースの59に対して60/120を保ち、転倒はありませんでした。プルカウンターはサンドバッグ(バッグ)でだけ戻り、そこでは6/6、空中では1〜2/6で、その教師は8/8でした(シャドウクローン(分身)を参照)。

関連用語

この用語が出てくる記事

← すべての用語