Transcription
はい、講義20へようこそ。本日は逆強化学習についてお話しします。これまでの強化学習の問題では、常に報酬関数が与えられていると仮定してきました。通常、これらの強化学習アルゴリズムを使用する場合、手動で報酬関数をプログラミングしていました。しかし、もし報酬関数を手動で指定するのが難しいタスクがあり、そのタスクを成功裏に実行している人間や、一般的には何らかのエキスパートのデータにアクセスできるとしたらどうでしょうか?その行動を観察することから、彼らの報酬関数を逆算し、その報酬関数を強化学習アルゴリズムで再最適化することは可能でしょうか?本日は、昨日の講義で形式化された推論問題としての最適性の近似モデルを、既知の報酬から直接方策を学習するのではなく、報酬関数を学習するためにどのように応用できるかを学びます。これは逆強化学習問題と呼ばれます。
本日の目標は、逆強化学習問題の定義を理解すること、行動の確率的モデルが逆強化学習アルゴリズムを導出するためにどのように使用できるかを理解すること、そして深層強化学習で遭遇するような高次元問題で実際に使用できる実用的な逆強化学習手法をいくつか理解することです。
さて、前回の講義で言及したことの一つに、最適制御と強化学習が人間の行動のモデルとして機能するという点があります。実際、100年以上前から、科学者たちは最適意思決定と合理性のレンズを通して、人間の運動、人間の意思決定、人間の行動を研究しようとしてきました。実際、合理的な行動の定義の一つは、合理的な行動は明確に定義された効用関数を最大化するものとして枠組みできるということです。例えば、aをbより好み、bをcより好むなら、aをcより好むような、合理的な意思決定戦略であれば、どのような戦略でも、明確に定義されたスカラー値の効用の集合で説明できます。一方、例えばリンゴをバナナより好み、バナナをオレンジより好むが、オレンジをリンゴより好むような非合理的な戦略は、非合理的であり、明確に定義されたスカラー値の効用の集合では説明できません。したがって、人間の運動、人間の意思決定などを最適性のレンズを通して説明したい場合、決定論的なケース(最適制御の講義で学んだように)または確率的なケースで最適意思決定を記述する方程式を書き出し、人間がこの最適化問題を解いていると仮定した場合、最適化問題の解が人間が実際に示した行動と一致するように、rの代わりに何を代入できるかを問うことができます。実際、神経科学、運動制御、心理学などの研究では、この基本的なモデルが応用されており、先週議論したように、最適性の古典的なモデルは、人間はしばしば決定論的ではなく、完全に最適ではないため、人間の意思決定には不適合な場合がありますが、最適性のソフトモデルは多くの場合、人間の行動をかなりよく説明できます。実際、最適性が人間の意思決定や人間の運動制御を考えるための良い枠組みであるという考えは、人間の行動や神経科学の研究に非常に大きな影響を与えています。
さて、これは知的な動機かもしれませんが、実用的な質問もできます。なぜ報酬関数を学習することを気にする必要があるのでしょうか?一つの視点は模倣学習の視点です。コースの冒頭で議論したように、模倣学習問題に取り組む標準的な方法は、ロボットやエージェント(自律走行車、eコマースエージェントなど)に実行させたい行動を実演し、それを行動クローンによって模倣させることです。しかし、人間が他の人間を模倣するとき、実際にはこのようには行いません。模倣学習を通してロボットに教えることを想像してみてください。おそらく、ロボットを遠隔操作して、実行させたい動作を腕で実行させるでしょう。しかし、人が誰かを模倣するとき、タスクを達成するために必要な方法で誰かがあなたを抱きかかえ、体を動かす必要はありません。そうではありません。あなたは誰かを見て、彼らが何をしようとしているのかを理解し、それから彼らの直接的な感情ではなく、彼らの意図を模倣しようとします。標準的な模倣学習は、専門家の行動の目的や結果を推論することなく、専門家が実行した行動をコピーすることに対処します。人間の模倣学習は非常に異なります。人間が模倣するとき、私たちは専門家の意図をコピーします。彼らがなぜその行動をとったのか、そしてどのような結果を求めていたのかを理解しているため、彼らとは異なる方法で行動するかもしれませんが、同じ結果になります。
ここに、この点を説明する良いビデオがあります。これは心理学の実験で、被験者はフレームの右下隅にいる子供です。さて、もしあなたがその子供の立場に置かれたら、これを見てどうするでしょうか?あなたは実験者の意図を推論し、実験者が実行している行動ではなく、あなたが推論した、彼らが目指している結果につながる行動を実行するでしょう。では、強化学習エージェントにこのようなことをさせる方法を見つけられるでしょうか?
逆強化学習がなぜ重要なのかを考えるための別の視点があります。それは、より強化学習中心の視点です。私たちが取り組みたい多くの強化学習タスク、例えば皆さんが宿題3で取り組むゲームでは、目的はかなり自然です。ゲームをできるだけうまくプレイしたい場合、報酬関数がゲームのスコアであるというのは理にかなっています。スコアは画像に表示されているので、それが私の報酬関数だと言うのに大きな無理はありません。しかし、他の多くのシナリオでは、報酬関数ははるかに不明瞭です。例えば、高速道路を走行する自律走行車を想像してみてください。この自律走行車は、多くの異なる競合する要因のバランスをとる必要があります。目的地に到達し、特定の速度で走行し、交通法規を違反せず、他のドライバーを悩ませないようにする必要があります。これらの異なる要因はすべて、適切かつ安全に、そして乗客にとって快適な方法で運転するためにバランスをとる必要があります。それを記述する単一の方程式を書くのは非常に難しいかもしれませんが、プロのドライバーにそれを実演してもらうのは比較的はるかに簡単です。したがって、このようなシナリオで報酬関数を学習することを考えるのは非常に魅力的です。
さて、逆強化学習とは、デモンストレーションから報酬関数を推論する問題、例えばこの運転シナリオで、プロのドライバーが良い運転方策を実演し、それからあなたの強化学習エージェントに与えるための良い報酬関数を抽出したい場合を指します。しかし、逆強化学習は、私が述べたように、残念ながら非常に不確定な問題です。その理由は、任意の行動パターンに対して、その行動を説明する無限に多くの異なる報酬関数が存在するからです。これは、例を挙げると最も明白でしょう。16の状態を持つこの非常に単純なグリッドワールドを考えてみましょう。このデモンストレーションがあり、エージェントの報酬関数は何だったかと尋ねられたら、あなたの答えは何でしょうか?
ここで異議を唱えるかもしれません。「一体何が起こっているんだ?グリッド上に矢印が描かれているだけだ。」自律走行車のシナリオでは、タスクの意味論ははるかに豊かです。他の車、一時停止標識、信号機があります。しかし、アルゴリズムには、あなたが持っているような、それらの意味論のすべてがあるわけではないことを覚えておいてください。探索の講義でモンテズマの復讐について話したときのように、探索は困難です。なぜなら、私たちは意味論を欠いているからです。私たちは世界を理解するための意味論を持っていますが、アルゴリズムはその意味論を欠いています。同様に、逆強化学習の場合、アルゴリズムにとって、これらはすべて状態と行動にすぎず、交通法規に関連する意味のある報酬関数を理解する方法はなく、特定のGPS座標に関連するものではありません。
この例を示したいのは、私たちが自身の事前の意味論的知識から報酬の回復の問題を意図的に切り離したシーンを構築したいからです。このグリッドワールドについて、報酬関数が何であるかを考えてみてください。推測してみてください。一つの非常に合理的な推測は、エージェントがこの特定のマスに到達すると大きな報酬を得て、それ以外の場所では悪い報酬を得るということです。それは確かに彼らがなぜそうしたのかを説明するでしょう。しかし、別の説明もあります。もし彼がこのマスに到達すると大きな報酬を得るとしたらどうでしょうか?4ステップの軌跡のみを観察した場合、これら両方の報酬は専門家の行動を同じようにうまく説明します。もし代わりに彼らがこの報酬関数を持っていたらどうでしょうか?下半分にあるものすべてに大きな報酬を与え、それらの暗いマスを横切ることに大きな罰を与える。それも彼らの行動を説明するでしょう。実際、彼らの行動は、デモンストレーションに含まれるもの以外の行動をとると報酬が負の無限大であるという一般的な報酬関数によってさえ説明される可能性があります。したがって、一般的に、観察された行動が従来の意味で最適となる無限に多くの報酬が存在します。
この曖昧さを解消する方法について話す前に、逆強化学習問題をより正式に定義しましょう。逆強化学習をより正式に定義するために、次のように行うことができます。スライドの左側には通常のフォワード強化学習の形式を、右側には逆強化学習の形式を提示します。これにより、並べて比較できます。まず、フォワード強化学習と逆強化学習で何が与えられるかです。どちらの場合も、状態空間と行動空間が与えられます。場合によっては遷移確率が与えられ、場合によっては与えられません。経験から推論する必要がある場合もあります。フォワード強化学習では、報酬関数が与えられ、目標はその報酬関数に対する最適方策π*を学習することです。逆強化学習では、最適方策を実行してサンプリングされた軌跡τが与えられます。最適方策が何であるかは必ずしもわかりませんが、サンプリングされた軌跡がその方策またはその近似から得られたと仮定します。そして、目標は、それらのτを生成するためにπ*が最適化した報酬関数Rψを学習することです。ここでψは報酬をパラメータ化するパラメータベクトルです。
報酬のパラメータ化には多くの異なる選択肢があります。より古典的な逆強化学習の文献では、特徴量の線形報酬関数、つまり特徴量の重み付き組み合わせを使用するのが一般的です。これは、特徴量のベクトルfに対するψの転置と内積として等価に書くことができます。直感的には、これらの特徴量をエージェントが望むものや望まないものの集合と考えることができます。そして、あなたが決定しようとしているのは、それらのうちのそれぞれをどれだけ望むか、または望まないかということです。
最近の深層強化学習の世界では、ニューラルネットワーク報酬関数、つまり状態と行動をディープニューラルネットワーク、非線形関数を介してスカラー値の報酬にマッピングし、そのニューラルネットワークのパラメータを示すパラメータベクトルψによってパラメータ化される報酬関数を扱うことも望むかもしれません。そして、逆強化学習で報酬関数を回復したら、通常は、その報酬関数を使用して対応する最適方策π*を学習したいと考えます。
さて、まず、今日の講義の主なトピックである逆強化学習アルゴリズムについて話す前に、特に深層学習の現代以前の時代に、人々が逆強化学習問題を解決する方法についてどのように考えてきたかについて、少し歴史的な背景を提供したいと思います。逆強化学習の以前のアルゴリズムの多くは、特徴量マッチングと呼ばれるものに焦点を当てていました。今日議論する主なアルゴリズムは、最大エントロピー原理に基づいており、昨日の講義で提示したグラフィカルモデルに基づいています。これは特徴量マッチングとは異なります。しかし、まず特徴量マッチングアルゴリズムを説明し、文脈を提供し、文献の概要を皆さんに提供します。
古典的に、人々が逆強化学習問題について考え始めたとき、彼らは次のようにアプローチしました。特徴量があると仮定し、それらの特徴量の線形報酬関数を学習するとしましょう。特徴量fが重要である場合、逆強化学習問題を曖昧にする方法は、最適方策がそれらの特徴量に対して同じ期待値を持ち、報酬関数を学習することだと言うことです。特徴量は状態と行動の関数であり、学習された報酬Rψに対して最適方策πRψの期待値ベクトルが、π*の下での期待値と等しくなるようにψを選択すると言うことができます。それは非常に合理的です。それは、専門ドライバーが車を運転していて、クラッシュを経験することが少なく、赤信号を渡ることが少なく、左側からの追い越しや右側からの追い越しが頻繁にあったとしましょう。それらの特徴量の期待値を一致させることは、適切な特徴量を与えられた場合、おそらく同様の行動を与えるでしょう。
残念ながら、この定式化はまだ曖昧です。最適方策からサンプリングされた軌跡があるので、これはかなり容易に行うことができます。最適方策自体はわかりませんが、デモンストレーション軌跡の特徴量ベクトルを平均化することによって右辺を近似できます。しかし、複数の異なるψベクトルが同じ特徴量の期待値をもたらす可能性があるため、依然として曖昧です。以前に与えたグリッドワールドの例を考えてみてください。それらの異なる報酬関数はすべて、まったく同じ方策をもたらすため、まったく同じ期待値を持つことになります。
これをさらに曖昧にしない方法として、人々が考えたのは、最大マージン原理を使用することです。逆強化学習のための最大マージン原理は、サポートベクターマシン(SVM)のための最大マージン原理と非常によく似ており、観測された方策π*と他のすべての方策との間のマージンを最大化するようにψを選択することを主張しています。報酬がψ転置fである場合、期待報酬はψ転置×fの期待値であり、π*の下での期待報酬(つまり、ψ転置×fの期待値)が、他の任意の方策の下での期待報酬に、可能な限り最大の маージンを加えたもの以上になるようにψを選択します。そして、このマージンとψを最大化するように選択します。これは基本的に、専門家の方策が他のすべての方策よりも最大の маージンで優れているような重みベクトルψを見つけてくださいと言っています。これは少しヒューリスティックですが、専門家の重みベクトル、専門家の真の報酬関数を回復することを必ずしも意味するわけではありません。しかし、それは合理的なヒューリスティックです。専門家と同じ特徴量の期待値を持つ2つの異なる報酬がある場合、専門家を他のすべての方策よりも良く見せる方を選択してくださいと言っています。つまり、専門家が代替案よりもわずかに優れている報酬を選択しないでください。
この定式化の問題は、方策の空間が非常に大きく連続的である場合、専門家のそれと非常に似た他の多くの戦略が存在する可能性が高いということです。実際、ほとんど同一の他の戦略が存在する可能性が高いです。したがって、すべての方策に対するマージンを最大化することは、それ自体ではあまり良い考えではないかもしれません。おそらく、π*とπの間の何らかの類似性でこれを重み付けしたいと思うかもしれません。おそらく、専門家からより大きく異なる方策に対してマージンを最大化したいと思うかもしれません。一方、専門家に非常に似た他の戦略に対するマージンは非常に小さくても構いません。
幸いなことに、これはSVMで遭遇する問題と非常によく似ており、この特徴量マッチング逆強化学習の文献の多くは、この問題を解決するためにSVMから技術を借用しています。SVMに詳しい方なら、おそらくこれを認識するでしょう。SVMに詳しくない場合は、あまり心配しないでください。それほど知る必要はありませんが、文献に注意を払うための良いサイドノートです。SVMトリックは、一般的に解決が難しいこのような最大マージン問題を、重みベクトルの長さを最小化する問題に再定式化します。これは少し微妙ですが、これらの2つの問題が同等であることを私の言葉で受け取ることができます。そして、方策間の類似性を2番目の問題に組み込みたい場合、行うことは、その1を方策間の発散の尺度で置き換えるだけです。つまり、別のπがπ*と同一である場合、左辺と右辺が等しくても構いません。なぜなら、dはゼロになるからです。しかし、方策がますます異なると、それらの戦略に対するマージンを増やしたいと考えます。dの良い選択肢は、特徴量の期待値の差である可能性があります。別の良い選択肢は、それらの期待KLダイバージェンスである可能性があります。
この定式化にはまだいくつかの問題があります。実用的な逆強化学習アルゴリズムにつながり、実際に実装して使用することができます。しかし、これらの逆強化学習アルゴリズムにはいくつかの欠点があります。一つの大きな欠点は、マージンを最大化することが少し恣意的であることです。それは基本的に、専門家の方策が単に代替案よりもわずかに優れているだけでなく、専門家が非常に異なる方策と引き分けになっているような報酬関数を見つけるのではなく、専門家の行動が明らかに良い選択となるような報酬関数を見つけるべきだと言っています。しかし、これはなぜそうしたいのかを教えてくれません。おそらく、あなたがそうしたい理由の一つは、専門家に関する何らかの仮定をしているからです。あなたが暗黙的に行っている仮定の一つは、専門家が報酬を理解しやすくするものを意図的に実演したということです。しかし、マージンを最大化するという概念は、それに対するヒューリスティックな応答であり、専門家の行動に関する仮定は実際にはここで明示されていません。
もう一つの問題は、この定式化が専門家の部分的な最適性を明確にモデル化していないことです。なぜ専門家が時々最適ではないことをするのかを説明していません。SVMに詳しい方なら、クラスが完全に分離できない場合、部分的な最適性を考慮するためにスラック変数を追加するなどのことができることを覚えているかもしれません。しかし、この設定でそのようなスラック変数を追加することは、依然として主にヒューリスティックです。それは専門家の行動の明確なモデルではなく、部分的な最適専門家を収容できるように問題をヒューリスティックに変更しているだけです。そして最後に、これは一種の厄介な制約付き最適化問題につながります。これは、線形にパラメータ化された報酬関数がある場合は問題ありませんが、ニューラルネットワークによって表現される報酬関数を持ちたい場合、深層学習にとっては本当に大きな問題になります。しかし、これらの種類の方法についてもっと知りたい場合は、いくつか読むことをお勧めします。例えば、B. Liningによる「Apprenticeship Learning via Inverse Reinforcement Learning」という古典的な論文や、Radliffらによる「Maximum Margin Planning」という論文は、この特徴量マッチングとマージン最大化逆強化学習手法のクラスを非常によく表しています。
しかし、今日の議論の主なトピックは、実際には、前回の講義で見た専門家の行動の確率的モデルに基づいています。前回の講義では、状態、行動、およびこれらの追加の最適性変数を含む特定のグラフィカルモデルでの推論として、部分的な最適行動をモデル化できることがわかりました。このモデルの確率分布は、初期状態分布p(s1)、遷移確率p(st+1|st,at)、および最適性確率であり、これは報酬の指数に等しいと選択しました。以前は、専門家が最適に行動していると仮定した場合の軌跡の確率という問題に関心がありました。これは以前見たものです。最適性を仮定しない場合、物理的に一貫した軌跡はすべて等しく可能性が高いと言いました。しかし、最適性の仮定をすると、専門家が最適であると仮定した場合の軌跡の確率を言うことができます。そして、最も最適な軌跡が最も可能性が高く、部分的な最適軌跡は指数関数的に可能性が低くなるという良い解釈があることがわかりました。そして、それが部分的な最適専門家またはサル行動のモデルとしてどのように良いかについて話しました。しかし、今やろうとしていることは、このモデルを使用して報酬関数を学習することです。つまり、報酬に対する軌跡の確率を問うのではなく、このモデルでの学習を行います。軌跡が与えられた場合、このグラフィカルモデルの下でのそれらの軌跡の尤度を最大化するようにrのパラメータを学習できるかどうかを尋ねます。そして、それが講義の次の部分で議論することです。