模倣学習の概要

目次

1 アルゴリズムの紹介

1.1 専門家実証データとは何ですか?

1.2 動作のクローン作成

1.2.1 アルゴリズムのアイデア

1.2.2 アルゴリズムのステップ

1.2.3 アルゴリズムの特性

1.2.4 アルゴリズム改善データの集計

 1.3 逆強化学習

1.3.1 アルゴリズムの考え方

1.3.2 アルゴリズムのステップ

1.3.3 アルゴリズムの特性

1.3.4 IRL の代表的なアルゴリズム Generative Adversarial Imitation Learning (GAIL)

2 アルゴリズムの概要

3 アルゴリズムの適用


        模倣学習とは何ですか?簡単に言えば、模倣学習( Imitation Learning ) は、模倣の目的を達成するために、人間の継続的な動作をコピーできるように機械を訓練することです。実は、Imitation Learningは非常に実践的で、今日トレーニングシーンがあったとして、報酬値(報酬)の設定方法は分からないが、エキスパートのデモンストレーションデータ(エキスパートデモンストレーションデータ)は収集できるので、Imitation Learningの利用を検討することができます。この方法を学ぶこと。したがって、模倣学習も次世代の強力な人工知能のキーテクノロジーとなることが期待されています。

        模倣学習は主に 3 つの部分から構成され、1 つ目はポリシーネットワーク(戦略的ニューラルネットワーク)、2 つ目は行動デモンストレーション(専門家の継続的な行動、つまりデモンストレーションアクション)、3 つ目はシミュレータ(環境シミュレータ)です。 )。模倣学習の目的を達成するためには、現在、行動複製手法であるBehavior cloningと、逆強化学習手法であるInverse Reinforcement Learning (IRL)の2つの主要な手法が存在します。次に、パート 1 でこれら 3 つの手法を紹介し、次にパート 2 でこれら 2 つの手法を比較し、最後にパート 3 で模倣学習アルゴリズムの応用を紹介します。

1 アルゴリズムの紹介

1.1専門家実証データとは何ですか?

        多くのシナリオでは、報酬を決定する方法はありませんが、専門家のデモンストレーション データを収集することはできます。たとえば、自動運転車の場合、自動運転車の報酬を決定する方法はありませんが、多くのデータを収集することはできます。高齢ドライバーの運転記録; 人間とコンピュータの対話システムでは、何が良い対話で何が悪い対話かを定義することはできないかもしれませんが、多くの人々の対話をデモンストレーションとして収集することができます。

        では、模倣するには、まず専門家に模倣データ、つまりエキスパート実証データを提供してもらう必要があります。環境(environment)が今どのような状態にあるのか、そしてその状態に対して専門家がどのような行動(アクション)を与えるのかを観察するのが通常専門家であり、その行動が環境に作用した後、環境は環境に入ります。次の状態、この状態でエキスパートがどのような動作をするのか、このような一連のデータが連続するものを、この状態動作シーケンスをエキスパートデモンストレーションデータと呼びます。専門家の実証データを状態と行動のペアに分割し、実際にそのデータからより良い戦略を学習するのが次の模倣学習です。

        後で紹介する 2 つの模倣学習アルゴリズム、行動クローニング、逆強化学習、および IRL の代表的なアルゴリズムである敵対的生成模倣学習は、アクションを模倣したいか、アクションの背後にある何らかの動機を模倣したいか、または全体を模倣したいかのいずれかです。データの分散は模倣学習の2つのアルゴリズムの考え方であり、現在模倣学習手法の最も重要な設計思想でもあります。

1.2動作のクローン作成

1.2.1 アルゴリズムのアイデア

        専門家のデモンストレーション データを状態とアクションのペアに分割すると、これらのデータは、マークされたデータであるように見えます。言い換えれば、各州で専門家がどのような行動をとったのかがわかるということです。機械に連続アクションを学習させるという直感的なアイデアは、教師あり学習手法を使用すると、この状態を教師あり学習のサンプルとして使用でき、アクションを教師あり学習のマークとして使用でき、状態を次のことができるということです。ニューラル ネットワークの入力として使用され、ネットワークの出力はアクションとみなされ、最終的に期待されるアクションを使用してマシンに状態とアクションの対応関係を学習させます。ここでのアクションが理想的なアクションの場合は、いくつかの分類アルゴリズムを使用できます。これが制御アクションの場合は、いくつかの回帰手法を使用できます。

 1.2.2 アルゴリズムのステップ

        学習方法は、まず学習データを学習セットと検証セットに分割し、次に学習セットの誤差を最小化し、検証セットの誤差が収束しなくなるまで学習します。次に、学習されたニューラル ネットワークが環境内でテストされます。まず、環境から現在の状態を取得し、訓練されたニューラル ネットワークを使用して対応するアクションを決定し、環境に作用します。これをゲームが終了するまで繰り返し、訓練の効果を確認します。

1.2.3アルゴリズムの特性

        ( 1 ) このアルゴリズムの利点は、実際の操作が単純でエラーが発生しやすいことです。アルゴリズムのトレーニングは非常に効率的ですが、トレーニング データが小さい場合、完全なポリシー分布をトレーニングできないという欠点があります。

        行動クローニングは非常に単純ですが、問題は、今日専門家データのみが収集された場合、専門家が確認できる観察結果は非常に限られてしまうことです。たとえば、自動運転車のカーブを越える方法を学習したとします。たとえ何人の専門家を見つけても、彼は赤線に沿って車を運転するだけです。しかし、エージェントが愚かで、今日運転中に壁にぶつかろうとしているとします。トレーニング データでは壁にぶつかったことがないため、壁にぶつかった状況にどう対処すればよいか決してわかりません。壁にぶち当たることを全く知らない、この場合の対処法。

         ( 2 )機械が行う唯一のことは、専門家のすべての行動をコピーすることです。彼は、どの行動が重要で次の状況に影響を与えるか、どの行動が重要でなく次の状況に影響を与えないかを知りません。もの。しかし、ネットワーク容量には限界があり、現在ネットワークに学習データを与えてもその学習データに対する正答率は100 %にならないことが多く、学習できないこともあります。この時点で学ぶべきではないことが非常に重要になります。たとえば、英語を学習するとき、教師はスピーチとジェスチャーの両方を持っていますが、今日ではスピーチだけが重要であり、ジェスチャーは重要ではありません。もしかしたら、彼は機械から 1 つのことしか学べないかもしれないし、スピーチしか学べないかもしれない。それは問題ないが、もし今日ジェスチャーしか学ばなかったとしたら、このように問題が生じるだろう。

        ( 3 )動作クローニングを行う場合、実際にはトレーニングデータテストデータデータ分布が異なります。ここでこの点を再度強調しますが、教師あり学習の設定では、データの分布が変わらないと常に想定しているためです。行動の複製を使用するとき、実際には問題を解決するために教師あり学習テクノロジーを使用していることになります。つまり、データが変化しないことを要求しますが、強化学習ではデータの分布が変化し、どのような変化も実際には変化と同じになります。その結果生じる戦略が重要になります。強化学習におけるトレーニングおよびテスト中に、非常に重要な特徴は、ユーザーが実行するアクションが次に表示される状態に影響を与えることです。たとえば、最初に状態 s1 からアクション a1 が表示されますが、アクション a1 によって実際に次にどの状態 s2 が表示されるかが決まります。

        動作の複製を行う場合、専門家の状態と動作のペアを大量に観察することしかできません。ポリシー π* を学習できれば幸いです。π ハットに近いほど良いです。もし π* が実際に π ハットとまったく同じである場合、この時点では、トレーニング中に見られる状態と同じになります。なぜなら、アクションは表示される状態に影響しますが、2 つのポリシーがまったく同じであると仮定すると、同じ状態で同じアクションが実行され、次に表示される状態も同じになるからです。

        しかし問題は、専門家も人間であり、機械が学習したポリシーが専門家のポリシーと全く同じであることは難しいということです。現在、π* と π ハットの間にわずかな誤差がある場合、この誤差は一般的な教師学習の場合に発生する可能性があり、各例は独立しているため問題ないかもしれませんが、強化学習の場合は多くの手順を実行する必要があります。そして、各ステップを踏む 何らかの誤差が発生する可能性があり、それを踏んだ後も各ステップに基づいて進み続ける、つまりこの誤差は蓄積され続けるので、これは強化学習のような環境で行われます。エラーの蓄積の問題があります。一緒に見てみると、つまり、ステップごとに誤差が蓄積されており、誤差が蓄積するにつれて、元のトレーニング データからどんどん外れていき、そのときの誤差はどんどん大きくなっていきます。誤差が大きければ大きいほど、元のデータからの乖離が早くなります。そのため、動作クローン技術は非常に便利ですが、その効果は非常に限定的であるという事実につながります。あなたはどこかで、ほんの少し、千マイルを見逃しているかもしれません。たとえば、特定の場所、あなたのマシンが存在する可能性があります。専門家の動作を完全に再現する方法はありません。再現されるのはほんの少しだけ、少しだけ悪くなり、最終的な結果はさらに悪くなる可能性があります。したがって、長期にわたる多様なゲームに対してアルゴリズムを適切にトレーニングすることは困難です。つまり、解決すべき環境や問題において、エージェントの 1 ステップ(ステップ)の違いは結果に大きな違いをもたらさず、与えられたアクションでほとんどのアクションをカバーできる、ということです。環境または問題が動作に適している可能性があります。クローン作成は解決されます。ただし、環境や問題が、1 つの失敗が長期にわたる嫌悪感につながるような状況である場合、またはゲーム全体に長期的な計画と目標が必要な場合は、トレーニングやテストでエラーが発生するため、動作複製手法は適していません。セット。 

        したがって、今日の行動複製法では模倣学習を完全に解決することはできません。 

1.2.4 アルゴリズム改善データの集計

        Behavior Cloning が直面している問題は、エージェントによって収集されたトレーニング データの分布を、エージェントが遭遇する実際のデータと可能な限り一致させる方法です。ここで採用できる 1 つのアプローチは、常により多くのデータが取得されるようにすることです。彼がこれまでに経験したことのない状態に入った場合、私たちはこの状態を収集し、誰かにこの状態にラベルを付けさせます。この状態を収集してデータベースに入れ、私たちを再訓練することができます。ポリシー ネットワークは、次の場合にさらに多くのデータを継続的に収集できます。ポリシーを展開して、以前のデータベースをますます完璧にしていきます。エージェントトレーニングの効果はますます良くなります。

        したがって、今は単に動作クローンを行うだけでは不十分で、専門家の動作を観察するだけでは十分ではありません。ここでトリックが必要になります。このトリックはデータアグリゲーション、データアグリゲーションと呼ばれます。私たちはより多様なデータを収集したいと考えています。専門家の意見を単に収集するのではなく、観察結果を見てさまざまな極限状況で専門家がどのような行動を取るかを収集できるようにしたいと考えています。自動運転車を例に挙げると、最初にアクターの名前をポリシー π と呼び、その後ポリシー π1 に実際に車を運転させますが、車には専門家がいて、専門家は次のように記録し続けます。もしあなたが今日この車に乗っていたら、その状況で私ならどうしますか。したがって、今日、政策 π1 は独自の方向に進みますが、専門家は自分の考えを表明し続けます。たとえば、この時点で、専門家は「はい」と言って前進するかもしれません。そのとき、専門家は右に曲がれと言うかもしれませんが、政策 π1専門家の指示については、ポリシー π1 が独自の処理を行います。記録したいのは、ポリシー π1 で見られる観察の下で専門家がどのような対応を行うべきかであるためです。収集したデータを取得して、新しいポリシー π2 を作成します。 、このプロセスが繰り返し行われます。この方法はデータ集計と呼ばれます。

        これは、DAagger アルゴリズムの中核です。DAagger の略語は、Dataset Aggregation です。彼は、トレーニング データ p data の分布を、トレーニングしたポリシーによって収集されたデータと可能な限り一致させることを望んで、問題を解決したいと考えています。ここでは、採用される方法の 1 つは、最初に予備的な人間のデータを使用してエージェントをトレーニングし、エージェントがこの環境でさらに収集することであり、これは環境と対話して別のデータベースを収集するのと同じです。ラベルがない場合は、3 番目のステップで、新しく収集したデータにラベルを付けるよう誰かに依頼し、各ステップで通常のラベルを付け、それを元のトレーニング ライブラリに結合してから、ポリシーを再トレーニングします。このような反復プロセスでは、は、ますます完璧な実際のデータを収集できるため、エージェントの操作中に遭遇するデータはすべてトレーニング データに現れたものになります。ここで、3 番目のステップが実際には時間のかかるプロセスであることがわかります。 DAgger の制限として、彼は常に専門家などの専門家を連れて行く必要があります。ここでは私たちは人間であり、人間は新しく収集されたデータに の正しいラベルを付ける必要があります。

        動作の複製は 1 からガンマを引いた 1/1/2 乗で、今度は 1 からガンマの 1/1 を引いたものになります。つまり、動作の複製を行うエラーが発生するたびに、その感度は低下し、機械と専門家の戦略間の距離は次のようになります。クローザー。

        ここで改善できる方法の 1 つは、多くの場合、速度が比較的遅いなど、他のアルゴリズムには独自の欠点があるため、3 番目のステップで人を使用する代わりに、他のアルゴリズムを使用できることです。それほど高速なアルゴリズムではありませんが、ここではオフライン プロセスであるため、一部の低速アルゴリズムを許可することも、最適化された方法を使用して最良の結果を検索することもできるため、3 番目のステップを他の低速アルゴリズムを使用するように変更できます。ラベル付けするための非常に効率的かつ正確なアルゴリズムにより、ポリシー ネットワークをトレーニングするためのデータ グループを生成できます。

 1.3 逆強化学習

1.3.1 アルゴリズムの考え方

        アルゴリズムの考え方は、専門家がその時点で学習した戦略の報酬関数をデータから復元し、特定の報酬関数に従って最適な戦略を学習するというものです。つまり、強化学習では、環境(状態遷移)と報酬関数を与えられた上で、収集したデータを通じて自身の政策関数と価値関数を最適化する必要があります。逆強化学習では、政策関数や教師データの他に環境(状態遷移)が与えられ、これらのデータから報酬関数を推定したいと考えています。つまり、状態とアクションが与えられた場合に、対応する報酬を出力するモデルを確立します。報酬関数が確立された後、与えられたポリシー (教師データ) の動作を模倣するようにエージェントを新たに訓練することができます。

        次に、逆強化学習と呼ばれる別のより良い実践方法があります。なぜそれが逆強化学習と呼ばれるのでしょうか? 本来の強化学習では、あなたと対話する環境と報酬関数があり、IRL テクノロジーを通じて、環境と報酬関数に応じて最適なアクターを見つけます。逆強化学習はその逆です。現在は報酬関数はなく、専門家のデモンストレーションが多数あるだけですが、環境はまだ存在します。逆強化学習のアプローチは、専門家のデモンストレーションが多数あると想定することです。ここでは使用します。 τ ハットは専門家のデモンストレーションを表します。今日がビデオゲームの場合、各 τ はビデオゲームをプレイできる人がプレイしたゲームの記録です。自動運転車の場合は、その記録です。これらは専門家によるデモンストレーションです。専門家のデモンストレーションを収集し、逆強化学習を使用するテクノロジーの時点では、マシンは環境と対話できますが、報酬を得ることができず、その報酬は専門家から推測する必要があります。環境と専門家のデモンストレーションがある今、報酬関数はどのようなものになるでしょうか?以前は、強化学習により報酬関数からどのような行動を推定し、アクターが最適でしたか。逆強化学習はその逆で、専門家にデモンストレーションをしてもらい、彼が優れていると信じ、その後、専門家がそのような行動をとったため、実際の報酬関数がどのようになるかを逆に推測します。私は、専門家が報酬関数のためにこうした行動をとったのではないかと反論しました。報酬関数を今日作成したら、一般的な強化学習手法を適用して最適なアクターを見つけることができます。場合によっては、非常に単純な報酬関数が非常に複雑な動作を引き起こす可能性があります。

1.3.2 アルゴリズムのステップ

        逆強化学習は実際にどのように機能するのでしょうか?

        まず第一に、私たちにはエキスパートがいます。これを π ハットと呼びます。このエキスパートは環境と対話し、τ1 ハットから τN ハットまでの多くのハットを与えてくれます。ゲームをプレイするためであれば、N ゲームをプレイするビデオ ゲームのエキスパートがいますN ゲームの状態を転送し、アクションのシーケンスはすべて記録されます。次にアクターがあります。最初はアクターは最低です。彼は π と呼ばれます。アクターは環境とも対話します。彼は n 回ゲームをプレイし、n 回のゲーム記録も持っています。次に、報酬関数を逆にして、報酬関数を起動する方法を説明します。ここでの原則は、エキスパートが常に最高であるということです。今日は、アーチェリーの概念が最初にあり、次にターゲットを描きます。エキスパートは彼とゲームをプレイして、これらのゲームの記録を取得する場合、アクターもプレイしてこれらのゲームの記録を取得します。次に、報酬関数を設定する必要があります。この報酬関数の原理は、エキスパートが取得するスコアがアクターが取得するスコアよりも高いということです。最初に矢を射てから的を描く必要があります。そこで今日は、専門家が得る報酬をアクターが得る報酬よりも大きくする報酬関数を学習します。新しい報酬関数を作成したら、アクターを学習できます。報酬関数を使用すると、一般的な強化学習手法を適用してアクターを学習できます。このアクターは、この報酬関数を使用して報酬を最大化します。彼もまた色々な行動を起こすでしょう。

         ただし、現在、このアクターは報酬関数を最大化し、多くのアクションを実行し、多くの棋譜を取得できますが、次に、最初に矢を射てからターゲットを描画するという概念である報酬関数を変更します。関数は高いスコアを取得しますが、彼が高スコアを取得した後、報酬関数を変更し、それでもエキスパートがアクターよりも高いスコアを取得できるようにします。これが逆強化学習です。新しい報酬関数を取得した後、新しい報酬関数では、新しいアクターを取得してから環境と対話できますが、彼が環境と対話した後、エキスパートが報酬関数を取得できるように報酬関数を再定義します。

        ここで、報酬関数はニューラル ネットワークです。このニューラル ネットワークは θ と τ で、入力と出力は θ と τ です。これは、それらに与えるポイントの数です。あるいは、τ 全体の入力が次のように仮定されます。難しすぎます。τ は s と a の非常に長いシーケンスなので、おそらく入力 s と a です。これは s と a のペアであり、数値を出力し、シーケンス全体を合計して合計 R を取得します。 、トレーニングで そのとき、今日の一連の数値について話しましょう。出力 R が大きいほど良いことを望みます。今日は、出力 R が小さいほど良いことを望みます。

1.3.3 アルゴリズムの特性

        アクターがジェネレーター、報酬関数がディスクリミネーターというように名前を変えるだけで済みますが、実は彼は GAN なので、それを収集するかどうかは GAN が収束するかどうかを尋ねているのと同じです。GANと比べてみましょう。GANには良い絵がたくさんあります。2番目のジェネレーターは最初はどんなものなのか分からないので、ただ落書きするだけです。熟練者が描いた絵は高得点であり、絵はジェネレーターによって描かれた絵は低いスコアです。弁別器を手に入れた後、ジェネレーターは弁別器をだます方法を見つけます。ジェネレーターは自分が生成する絵が高いスコアを与えることを望み、弁別器はその絵に高いスコアを与えるでしょう。プロセス全体は IRL とまったく同じです。名前をすべて変更しただけです。今日これらの人々が描いた絵はここにあります。これは専門家のデモンストレーションであり、ジェネレーターはアクターです。

        現在、ジェネレーターはたくさんの絵を描き、アクターは環境と対話してたくさんの軌道を生成します。これらの軌道と環境は相互作用して棋譜を記録します。実際、これらのゲーム画面に相当します。 GAN, GAN のこれらの画像に相当します。報酬関数を学習できます。この報酬関数は実際には識別子であり、この報酬関数は専門家のデモンストレーションに高いスコアを与え、アクターのインタラクション結果に低いスコアを与えることです。次に、アクターは次のことを見つけます。この学習された報酬関数から高スコアを取得する方法、GAN とまったく同じです。はい、同じことを別の方法で言っているだけです。

        文の生成は模倣学習と考えることもできます。文章を書くときは、書き留める各単語をアクションとして考え、すべての単語が集まってエピソードを形成します。文章生成では、人間が書いた多くの言葉を機械に見せますが、人間が書いた言葉は依然として、機械に詩の書き方を覚えさせたいなら、唐の詩を 300 冊見せなければならないと言います。実際に専門家のデモンストレーション、すべての言葉は実際にはアクションです。

        機械に文章生成をさせると、実際には専門家の真似をすることになりますが、チャットボットも同様で、その専門家のデモンストレーションから対話型の対話記録を大量に収集します。今日の最尤法を単純に使用して最大化すると、尤度が得られますが、これは実際には行動の複製です。今で言う行動クローニングとは、状態を見て、どのような動作が得られるかを予測することですが、尤度を行う場合も同様で、文章が生成されたとして、次にどの単語を書きたいかが最適です。したがって、実際には、最尤がこの種の文生成を行う場合、最尤は実際には模倣学習、つまり行動クローニングに対応します。最尤度だけでは十分ではないと言いましたが、シーケンス gan は IRL に相当します。先ほども述べたように、IRL は実際には GAN 技術です。今日、文章生成とチャットボットに IRL 技術が組み込まれています。実際、シーケンス gan とその様々な変形。

1.3.4 IRLの代表的なアルゴリズム Generative Adversarial Imitation Learning (GAIL)

        IRL 分野でよく知られているアルゴリズムは GAIL であり、生成対立ネットワーク GAN を模倣しています。アクターをジェネレーター、報酬関数をディスクリミネーターと考えてください。提供された教師データに適合するようにポリシー ネットワークをトレーニングしたい場合は、トレーニングが必要な報酬関数を評価させることができます。報酬関数は、教師データの軌跡と偽の軌跡を区別できます。スコアを出力することによって自ら生成される軌道、そしてポリシーネットワークは偽の軌道を生成する責任を負い、可能な限り報酬関数をだまして、真と偽の区別を困難にしようとします。両者は対立しており、双方の損失関数は正反対であり、両者は相互に対立しながら成長し、最終的にはより良い報酬関数とより良い政策ネットワークが訓練される。

        (1) アルゴリズムの起源

        私たちがしたいのは、戦略の分布と専門家によって実証されたデータの分布が可能な限り一貫していることを望むことです。したがって、この目標はそのような目標を設定できるように見えます、p は分布を表します、この pr は専門家の分布を表します、pg は戦略の分布を表します、このような正規化された方法を与えます、方程式が等しいとき、それは次のことを意味します生成された分布は、当社の専門家の分布と一致しています。その不一致を測定するために、JS 発散などの次の分布差測定方法を使用して測定します。上記の分布に置くと、これは 2 方向の KL であり、それを書き出して、 2 つの分布が可能な限り一致するように、発散を最小限に抑える方法。

        これまで分布について説明してきました。分布は連続的な概念ですが、専門家のデータや戦略によって生成されたデータは分布そのものではありません。それらは分布の下にあるサンプルなので、分布を計算したいときは、分布間の類似性を計算するには、データから分布を復元する必要がありますが、その方法としては、データ調査から分布を作成することができます。

        データから分布を近似したいと考えています。1 つのアプローチは、現在持っている 2 つのデータ セットを学習することです。任意の時点で、この点が 2 つのデータの元となる分布に属する確率が次のとおりであることを知りたいと考えています。幾つか。この場合、実装方法として、分類器を学習し、エキスパートデータと独自の戦略からのデータを 2 種類のデータとみなし、分類器を学習し、これら 2 種類のデータを別々に結合して、次の出力を得るこれは連続値を持つ出力であるため、出力を事後確率に似た形式にすることができます。これは確率の近似であると考えられます。

        これは実際には、現在私たちのより一般的な GAN のフレームワークです。そこで、この GAN のフレームワークを振り返ってみましょう。実際、彼がやったことは、ここにデータのグループがあることを意味します。これは私たちの専門家データまたは実際のデータです。さらに、ここでデータ生成が行われます。GAN フレームワークの場合、最初に直面するデータ環境については、ランダムな隠れ分布を生成するランダム ベクトルがあります。上記のサンプリング、ランダム ベクトル、入力将来的には、サンプルジェネレータまたはデコーダを通じて生成することができ、識別器は生成された 2 つのサンプルと実際のサンプルの間の類似性を判断します。

         実際、模倣学習にも同様のアプローチがあり、先ほど述べた GAN フレームワークでのデータ生成が行われます。

         (2) アルゴリズムの考え方

        強化学習はやりたい模倣とは関係ありませんが、ここでは環境内のデータを強化学習でサンプリングしてデータを生成する必要があるので、ここを強化学習に置き換える必要があります。では、強化学習に必要な報酬はどこから来るのでしょうか? ここでは、Discriminator によって与えられた値を強化学習の報酬として使用します。したがって、フレームワーク全体は、敵対的模倣学習 (Generative Adversarial Imitation Learning、GAIL) と呼ばれ、まさに GAIL のようなフレームワークです。

         このフレームワーク、その学習プロセス全体、および GAN​​ フレームワークの学習プロセスでは、たとえば、Discriminator を段階的に学習して、戦略によって実行されたサンプルからエキスパートのサンプルをできるだけ分離します。2 番目のステップは、識別器によって与えられたスコアを使用し、それを報酬とみなし、報酬を最大化するために強化学習に渡します。したがって、継続的な学習の後、強化学習によって生成されたデータは、最終的には専門家のデータに近づくことになります。これは、生成対立の最も基本的な模倣学習方法です。前述したように、GAN のいくつかの欠点、その他の場所では、GAIL フレームワークもそれを継承しているため、今後 GAIL に対してさまざまな変形や改善が提案されます。WGAIL を含む、つまり、ここで JS ダイバージェンスを使用して、ここでの測定にいくつかの改善を加えることを意味します。これは、誕生した一連の改善されたメソッドです。

        次に、対立生成模倣学習について詳しく紹介しますが、主に識別子ニューラルネットワークを報酬関数として使用し、エージェントに学習の方向性を与えます。ニューラル ネットワークを学習するプロセスでは、エキスパートによって与えられる標準アクション報酬を最大化し、エージェントによって出力されるアクションの報酬値を最小化する必要があります。

         (2) アルゴリズムステップ

        1) ゲームの開始時に、環境はエージェントに現在の状態を与え、エージェントは現在の状態に基づいてアクションを環境に生成し、同時にディスクリミネーターも現在の状態とアクションを傍受します。 、傍受後、弁別器は報酬を送信します。その値は、その後のトレーニングのためにエージェントに与えられます。ここで、専門家によって提供された標準動作はまだ使用されていないことに注意してください。専門家は識別子のトレーニングにのみ使用されます。

        GAIL のニューラル ネットワークを見てみましょう。最初は、観察された状態とアクションを入力および出力とする戦略ネットワーク アクターであり、次に、観察された状態と値を入力および出力とするバリュー ネットワーク クリティカルです。最後に報酬ネットワーク弁別器です。その入力は非常に特殊で、環境の状態とエージェントのアクションが必要で、トレーニング中のエキスパートの状態とアクションも必要で、その出力は報酬値です。

        これらのネットワークの動作シーケンスは次のとおりです。まず、環境が状態をポリシー ネットワークにフィードし、ポリシー ネットワークは現在の状態に応じて対応するアクションを実行し、環境にフィードバックします。いくつかのステップの後、ポリシー ネットワークは、訓練されるだろう。

        2) まず、今の状態を識別器に入れて報酬を取得し、それらを合計して割引報酬を計算します。これは、各状態の価値を推定することです。次に、今の状態を値ネットワークにフィードして、現在のニューラル ネットワークによって推定される状態値を計算し、これら 2 つの値を利点として差し引いて、ポリシー ネットワークの学習を導き、ポリシー ネットワークのトレーニングを完了します。

        3) 先ほど、ディスクリミネーターを使用してポリシー ネットワークをトレーニングする方法を説明しましたが、次にプロセス全体を見てみましょう。ゲームを開始する前に、まず専門家によって提供された標準アクションと対応する状態をデータベースにロードします。ゲームのスクリプトを完成させ、経験した状態とアクションを記録します。

        4) 次に、ppo または trpo を使用して戦略ネットワークを訓練し、その中で訓練された報酬ネットワーク、つまり識別器を使用して訓練をガイドし、最後にジェンセン・シャノン発散を使用して識別器を訓練します。は次のとおりです。 ここで、 dw は cdf 確率関数、左はエキスパートの損失、右はエージェントの損失です。

        5) ppo アルゴリズムについては以前に述べたので、ここでは識別器を訓練する方法、つまりジェンセン・シャノン発散の最小化を完了する方法を直接説明します。弁別器はニューラル ネットワークですが、1 つはエキスパートの ddf 確率ニューラル ネットワーク、もう 1 つはエージェントの cdf 確率ニューラル ネットワークです。最初に、エキスパートとエージェントのアクションを 2 つのネットワークにそれぞれ入力し、それらを合計し、シグモイド関数を使用して 0 と 1 の間の値を見つけます。この値も cdf 確率として定義されます。次に、ログをエキスパートとエージェントの損失として取得し、その 2 つを加算して合計損失を計算し、合計損失を微分して最も極値を見つけます。最後にニューラルネットワークを更新します。

2 アルゴリズムの概要

        ここでは模倣学習と強化学習の長所と短所をいくつか挙げます. 例えば, 模倣学習の短所は, 実証を行う必要があることです. また, 分布のシフトと一貫性のないデータ分布の問題もあります. ここでの大きな利点は模倣学習です. 「教師あり学習に似ています。訓練は非常に安定しています。一方、強化学習では、報酬関数を提供する必要があり、探索の問題に対処する必要があります。バランスをどう取るか?」探索と活用。

        もちろん、強化化学については、超人的なパフォーマンスを達成できるということが 1 つあります。ここでの非常に直接的なアイデアは、模倣学習と強化学習をどのように組み合わせることができるかということです。トレーニング プロセスでは、人間による指導デモンストレーションと報酬関数の両方が用意されています。この 2 つを組み合わせることで、より優れたトレーニング フレームワークを得ることができます。

        模倣学習自体は教師あり学習であるため非常に安定していますが、分布シフトの問題があるため、純粋な強化学習にも多くの問題があります。両者をどう組み合わせるかが考えられます。一つの方法は、Pretrain & Finetune の方法です。 1 つはオフポリシー学習の方法を組み合わせる方法、もう 1 つはまだ客観的ではない損失関数と組み合わせる方法です。模倣学習を許容可能な損失として扱うことにより、強化学習と模倣学習を組み合わせることもできます。

 3 アルゴリズムの適用

        こちらは動作コロニングコードです レーシングゲーム環境では、レーシングゲーム車両の観察やハンドル上の人の操作も記録されます このような教示デモンストレーションを学習データとして利用し、仮想エージェントを訓練することができます環境内での運転。

        一般に、このようなアイデアは比較的単純で直接的な方法であり、教師あり学習を使用して専門家のデータから模倣することができます。このような模倣アプリケーションは、実際に AlphaGo で実行されました。AlphaGo のオリジナル バージョンや AlphaStar のような最近のシステムでは、実際、AlphaGo の初期バージョンでは数千万枚のディスクを収集したことがわかりました。AlphaGo の初期バージョンを見たとき、レベル 5 以上のプロ プレイヤーが多数集まり、そのプレイヤーが囲碁をプレイしに行きました。また、AlphaStar は、使用できるプロ プレイヤーのリプレイを大量に収集し始めました。人はゲームのデータをプレイして模倣学習を行うため、この種の方法は行動クローニングと呼ばれます。

         注目の製品

         アクション模倣

おすすめ

転載: blog.csdn.net/qq_22749225/article/details/125653239