EUREKA:LLMを用いた報酬設計の自動化
3つの要点
✔️ 自律的な報酬設計を可能にする手法EUREKAを提案
✔️ LLMのコード生成能力と進化的最適化を組み合わせた手法
✔️ 人手で設計した報酬関数よりも優れたパフォーマンスを示すこと、カリキュラム学習や、勾配を用いないRLHFにも適用可能であることが示された
Eureka: Human-Level Reward Design via Coding Large Language Models
written by Yecheng Jason Ma, William Liang, Guanzhi Wang, De-An Huang, Osbert Bastani, Dinesh Jayaraman, Yuke Zhu, Linxi Fan, Anima Anandkumar
(Submitted on 19 Oct 2023)
Comments: Project website and open-source code: this https URL
Subjects: Robotics (cs.RO); Artificial Intelligence (cs.AI); Machine Learning (cs.LG)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
導入
強化学習は、様々な領域で素晴らしい成果を上げてきたアルゴリズムですが、実世界で応用する際には、報酬関数を適切に設計することが困難であるという問題がありました。
この問題に対して、昨今流行している大規模言語モデルを活用しようというのが、今回ご紹介する研究になります。
大規模言語モデルと強化学習、これらがどう繋がるのか、詳しく見ていきましょう。
報酬設計問題
強化学習は、エージェントがある観測値$O$を受け取り、報酬関数$R$という目的関数を最大化するような行動$A$を出力する方策$\pi$を学習するアルゴリズムのことです。
強化学習が採用されるケースとして、エージェントに達成してもらいたい何らかのタスク(目的)はあるけれども、どのような工程でその目的を達成するかが自明ではない場合、というのがよくあるシチュエーションです。例えば、棒をロボットハンドの手のひらの上でバランスよく立たせるというような問題では、人間が逐次、制御指令を記述することは困難ですので、強化学習の探索能力を活かして、自律的に制御方法を学習させることを目指します。
しかしながら、タスクが複雑になればなるほど、強化学習の目的関数$R$と、我々人間側が達成したいと考える性能の指標(ここでは適応度関数$F$と呼びます)との間には乖離が生じます。
単純に、$F$を最大化するように学習させようとしても強化学習エージェントが解を見つけるまでには膨大な時間がかかってしまうことが大いにあるのです。
このように、我々人間側が達成したいと考える性能の指標$F$を最大化させられるような、強化学習エージェントにとっての目的関数である報酬関数$R$を適切に設計することは、難しい問題として知られており、これを報酬設計問題(Reward Design Problem, RDP) [Singh et al., 2010]と呼びます。
今回紹介する論文では、報酬設計問題のうち、特に、タスクについて説明した文字列が与えられた時に、適応度$F$を最大化させられるような報酬関数$R$をコードで出力するという問題(Reward Generation Problem)を扱います。
手法:EUREKAの詳細
上記の報酬設計問題に対して、今回紹介する論文では、EUREKAという手法を提案します。EUREKAは3つの要素から構成されます:環境についての情報の提示、進化的最適化、報酬関数についてのリフレクション
環境についての情報の提示
LLMはテキストデータを入力として受けつけるので、環境の構造をいかにテキストデータに変換するかということが問題となりますが、本手法では、単純に環境の生のコードを直接LLMに与えることを提案しています。
LLM自体がコードデータで訓練されていることを考慮すれば、その能力を有効利用できますし、環境のコードを与えることによって、環境の持つ意味や利用すべき変数の情報を汲み取らせることができるだろう、という期待に基づいています。
進化的最適化
1回のイテレーションで16個の報酬関数候補を生成し、最も成績の良いものを対象として改善し、新しい16個の候補を生成する、これを5イテレーション繰り返します。さらに、初期値への依存を無くすため、これを全5回行います。
報酬関数についてのリフレクション
報酬関数の評価を的確に行うためには、報酬関数のどこがどのように効いているのかを説明できるようにする必要があります。そのために、報酬関数の各項の出力結果を保存しておき、後から参照できるようにしておきます。
実験
実験では様々なロボット環境とタスクでEUREKAの性能を評価します。
LLMとしては主にGPT-4を使用しています。
環境
エージェントとしては10種類のロボットを採用し、29種類のタスクをIsaac Gymシミュレータ上で検証します。
四足歩行、二足歩行、アームなどのロボット制御タスク(Issac)や、物体の受け渡しやコップの回転などハンドの器用な制御が必要なタスク(Dexterity)が採用されています。
ベースライン
EUREKAの性能を評価するための比較対象として、以下の3つを使用します。
Sparse: タスクの成功失敗を判定する関数。適応度関数$F$と同義。
Human: タスクを設計した強化学習研究者自身によって定義されたオリジナルの報酬関数。
L2R: [Yu et al., 2023]によって提案された、LLMを使用した報酬関数設計手法。環境とタスクを自然言語で記述し、それを一つ目のLLMに入力し、エージェントの動作を記述するテキストを生成させる。それを二つ目のLLMに入力し、事前に用意された報酬関数プリミティブを使用して、報酬関数コードを設計する。
実験結果
各種手法による報酬関数を用いて,エージェントを学習させた時の性能を比較したものが以下のグラフになります。
Issacの全タスクと、Dexterityのタスク15/20個において、人間レベル以上の性能を示しました。
以下のグラフは、進化的最適化におけるイテレーションごとに最良の方策を用いたときの性能の変化を示しています。これから、進化的最適化によって、一貫して性能が上昇していく様子がわかります。
以下のグラフは、EUREKAが生成した報酬(Eureka Rewards)と、人間が設定した報酬(Human Rewards)との間の相関(縦軸)と、Eureka RewardsとHuman Rewardsとの相対的性能(横軸)を示しています。
Eureka RewardsとHuman Rewardsの間には弱い正の相関が見られます。一方で、タスクによっては相関が弱まることがわかり、中には負の相関が見られるような報酬関数も作成されていました。
これは、EUREKAが人間には見つけられないような報酬関数を設計できることを示しています。
以下のグラフは、ペン回しという難しいタスクに対して、EUREKAの性能を調査した結果です。
Pre-trainedは手の上でペンの方向を転換させるようにEUREKAで事前学習した方策であり、これに対してさらにEUREKAでペン回し用にfine-tuningさせたものがFine-Tunedです。
一方で、このような二段階の学習を経ず、最初からペン回しを学習させた場合の方策がScratchです。
これを見ると、EUREKAを用いて二段階の学習(カリキュラム学習)をさせた場合のみ、うまくペン回しが実現できていることがわかります。
この結果から、EUREKAは、高度に難しいタスクに対しても、カリキュラム学習など既存の学習テクニックを応用して、自律的報酬設計が可能であることがわかります。
また、タスクによっては、適応度関数$F$が手に入らない場合もあるかと思います。そのような時には、人間のフィードバックをテキストで受け取り、報酬改善に利用する手法も可能であることが、実験からわかりました。
例えば、ヒューマノイドの歩行タスクを学習させる際に、$F$ではなく、テキストによる人間のフィードバックに基づいて報酬関数を改善したEUREKA手法(EUREKA-HFと表記)は、単純なEUREKA手法よりも、人間の好みにアラインした結果となりました。
EUREKA-HFは、勾配計算を必要としない、新しいRLHFの手法であるという点で、画期的であると言えるでしょう。
まとめ
今回ご紹介した論文は、LLMと進化的最適化手法を組み合わせて、自律的な報酬設計を可能にしたEUREKAを提案したものでした。
タスクに特化したプロンプトの工夫や人間の介入を必要とせずに、高いパフォーマンスを示すことができる汎用性の高い手法です。
今後、様々な問題に対して適用されることでしょう。
この記事に関するカテゴリー