1.RCE:報酬関数が不要な強化学習(1/2)まとめ
・ロボット工学で使われる強化学習は望ましい行動を促すために報酬関数が必要になる
・しかし報酬関数の設定は非常に面倒で手間がかかり追加の設備が必要になるケースがある
・RCEは成功事例を示す事で報酬関数の必要性をなくし強化学習の導入を容易にする
2.Recursive Classificationとは?
以下、ai.googleblog.comより「Recursive Classification: Replacing Rewards with Examples in RL」の意訳です。元記事の投稿は2021年3月24日、Benjamin Eysenbachさんによる投稿です。
こちら、読んでいて意味はわかるけれども、そんな事ってホントに出来るのかな?と不思議に思えてくるのと、とても興味深いですけれども、この技術が広く適用可能になると工場に人間の居場所はなくなる気がします。
アイキャッチ画像のクレジットはPhoto by Fausto Marqués on Unsplash
ロボット工学研究の一般的な目標は、日常生活を改善する可能性のある様々なタスクを支援できるシステムを設計することです。エージェントに新しいタスクを実行するように教えるほとんどの強化学習アルゴリズムには、報酬関数が必要です。報酬関数は良い結果につながるアクションを実行した際にエージェントに正のフィードバックとして報酬を提供する関数です。
ただし、実際にこれらの報酬関数を指定することは非常に面倒です。「部屋がきれいかどうか?」や「ドアが十分に閉まっているか?」など、明確な目的がない状況では報酬関数を定義するのが非常に難しい場合があります。説明が簡単なタスクであっても、タスクが解決されたかどうかを実際に測定することは困難な場合があり、ロボットが動作する環境内に多くのセンサーを追加で設置する必要がある場合があります。
報酬関数の代わりに「事例に基づく制御(example-based control)」と呼ばれる手法で事例を使用してモデルをトレーニングすると、従来の報酬関数に依存するアプローチの制限を克服できる可能性があります。
この新しい問題の捉え方は「成功検出器(success detectors)」に基づく従来の手法に最も類似しています。そして「事例に基づく制御」用の効率的なアルゴリズムにより、専門家でないユーザーであっても、コーディングの専門知識、報酬関数の設計に関する知識、または環境センサーの設置を必要とせずに、ロボットに新しいタスクを実行するように教えることができます。
論文「Replacing Rewards with Examples: Example-Based Policy Search via Recursive Classification」では、成功事例を提供することにより、エージェントに新しいタスクを解決する方法を教えるための機械学習アルゴリズムを提案します。(例えば、「成功」の事例で壁に釘が埋め込まれている場合、エージェントはハンマーを手に取り、釘を壁に打ち込むことを学習します)
このアルゴリズム、「事例の再帰的分類(RCE:Recursive Classification of Examples)」は、人間が手で設計した報酬関数、距離関数、または特徴表現に依存しません。むしろ、エージェントは、中間状態の事例を必要とせずに、データから直接タスクを解決することを学び、タスク全体を自分で解決する方法を学ぶ必要があります。
Q学習と同様の時間差学習(temporal difference learning)の変種を使用しますが、成功事例のみを使用して典型的な報酬関数項を置き換えます。RCEは、シミュレートされたロボットタスクでの模倣学習に基づく以前のアプローチよりも優れています。報酬ベースの学習と同様の理論的保証と相まって、提案された方法は、ロボットに新しいタスクを教えるためのユーザーフレンドリーな代替手段を提供します。
上:ロボットに釘を壁に打ち込むように教えるために、ほとんどの強化学習アルゴリズムでは、ユーザーが報酬関数を定義する必要があります。
下:事例に基づく制御方法では、タスクが完了したときの世界の様子の事例を使用して、ロボットにタスクを解決するように教えます。例えば、釘がすでに壁に打ち込まれている例などです。
事例に基づく制御と模倣学習の比較
事例に基づく制御方法は模倣学習(imitation learning)に似ていますが、重要な違いがあります。模倣学習のように専門家によるデモンストレーションは必要ありません。
実際、ユーザーは、タスクを解決するために発生させたごく一部の状態を振り返って選択できるのでなければ、実際にタスクを自分で実行するのが非常に苦手な可能性があります。
更に、以前の研究では、モデルが最初に成功例を使用して報酬関数を学習する段階的アプローチを使用していました。報酬関数を学習後、既成の強化学習アルゴリズムを使用してその報酬関数を適用します。
RCEは事例から直接学習し、報酬関数を定義する中間ステップをスキップします。こうすることで、潜在的なバグを回避し、報酬関数の学習に関連するハイパーパラメーターを定義するプロセス(報酬関数を更新する頻度や正規化する方法など)を回避します。そのためデバッグ時に、報酬関数の学習に関連するコードを調べる必要がなくなります。
3.RCE:報酬関数が不要な強化学習(1/2)関連リンク
1)ai.googleblog.com
Recursive Classification: Replacing Rewards with Examples in RL
2)arxiv.org
Replacing Rewards with Examples: Example-Based Policy Search via Recursive Classification
3)ben-eysenbach.github.io
Replacing Rewards with Examples: Example-Based Policy Search via Recursive Classification
4)github.com
google-research/rce/