強化学習のスケーラブルな代替手段としての進化戦略

この記事のプレゼンテーションは、古くから知られている進化的最適化戦略が強化学習アルゴリズムを上回ることができるということです。

進化戦略の利点:





10年前のアイデアを使用して高い結果が得られたとき、この研究は現在の傾向を継続します。 たとえば、2012年に、 AlexNetについての記事が公開され、パターン認識問題で並外れた精度を得るために畳み込みニューラルネットワーク(SNN)を設計、スケーリング、およびトレーニングする方法が示されました。 同様に、2013年に、古くから知られているQ学習アルゴリズムと畳み込みニューラルネットワークの組み合わせにより、Atariのゲームをプレイするマシンを正常にトレーニングできることが示されました。 Alexnetは、ほとんどの科学者がSNSがコンピュータービジョンの問題では見込みがないと信じていたときに、ニューラルネットワークへの関心を復活させました。 したがって、この研究は、進化戦略(ES)が強化を伴うトレーニングのベンチマークで高い結果を達成し、ESが大規模タスクに適用できないという一般的な信念を破壊することを可能にすることを示しています。



ESは実装と拡張が簡単です。 この実装では、3DヒューマノイドMuJoCoに、わずか10分で80マシン(1,440 CPUコア)のクラスター上を歩くように教えることができます(32コアのA3Cには約10時間かかります)。 720コアでは、A3Cに匹敵するAtariのパフォーマンスも得られますが、トレーニング時間は1日から1時間に短縮されます。



強化トレーニング



OPについて簡単に説明します。 エージェントを訓練したい特定の世界(たとえば、ゲーム)が与えられていると想像してください。 エージェントの動作を記述するために、ポリシー関数(エージェントの脳)を定義します。 この関数は、特定の状況ごとにエージェントがどのように動作するかを計算します。 実際には、政治は通常ニューラルネットワークであり、その入り口ではゲームの現在の状態が、出力では許可された各アクションを実行する確率になります。 一般的なポリシー関数には約100万個のパラメーターが含まれる可能性があるため、ポリシーが適切に機能する(つまり、ほとんどのゲームでエージェントが勝つ)パラメーターの値を見つけることがタスクです。





テニスゲームでは、ポリシーは画面上のピクセルを分析し、ラケットが上下に動く(または動かない)確率を計算します。



学習プロセスは次のとおりです。 パラメータのランダムな初期化から開始して、エージェントはしばらくの間ゲームワールドと対話し、対話のエピソードを蓄積します(たとえば、各エピソードは1つのテニスゲームです)。 そのため、発生したすべての条件の完全な記録を取得しました。どのような条件を満たしたか、各州でどのような行動をとったか、すべてのステップで受け取った報酬です。 ポリシー改善のレシピ:エージェントが実行し、それが報酬の改善につながったすべてが良いです。 報酬の減少に悪いです。 バックプロパゲーションを使用して、将来のプラスの報酬の増加とマイナスの報酬の減少につながるネットワークパラメーターの小さな変化を計算できます。 このプロセスは繰り返し繰り返されます。エピソードの新しい部分を蓄積し、パラメーターを更新して、繰り返します。



ノイズを導入してポリシー空間を検索する



OPでは、通常、確率論的ポリシーが使用されます。 各アクションの確率のみを計算します。 したがって、トレーニング中、エージェントは何度も同じ状態になることがありますが、そのたびに確率的サンプリングに従って異なるアクションを実行します。 これは学習の合図となります。これらのアクションのいくつかは改善につながり、他のアクションは報酬の減少につながります。 そのため、各時点でのアクションの分布をサンプリングすることにより、ポリシー空間で検索するエージェントのアクションにノイズを導入します。 これは、後で説明するESとは異なります。



進化戦略



進化



ESに飛び込む前に、ここでの「進化」という言葉は生物学とは関係がないことに注意してください。 プロセスの数学的基盤は生物学的アナロジーから非常に抽象化されているため、ESをブラックボックスなどの確率的最適化手法のクラスとして単純に考慮する方が適切です。



ブラックボックスの最適化



エージェント、ゲームの世界、ニューラルネットワーク、時間を忘れてください... ESでは、入力(ポリシー関数のパラメーター)に100万の数字、出力(総報酬)に1の数字を持つブラックボックスが考慮されます。 これらの100万個の数値に最適な値を見つけたいだけです。



進化戦略アルゴリズム



直感的に、最適化は「推測とチェック」プロセスです。 ランダムなパラメーターセットから始めて、順番に:



1)パラメーター値をランダムにわずかに変更します

2)パラメーターを改善する方向に少し移動します。



具体的には、各ステップでパラメーターベクトルwを取得し、たとえば100個のわずかに異なるベクトルw1 ... w100から母集団を生成し、ガウスノイズを追加します。 次に、100人の候補者をそれぞれの世界でエージェントをしばらく実行して個別に評価し、それぞれの場合に報酬値を追加します。 次に、更新されたパラメータのベクトルは、100個すべてのベクトルの加重和に等しくなります。ここで、加重係数は報酬の量に比例します(つまり、成功した候補者ほど高い加重を受け取ります)。 数学的には、これはパラメータ空間で予想される報酬の勾配を推定することと同等です。ランダムに選択された100方向のみで推定を行います。



コード例



アルゴリズムの仕様については、ESを使用した2次関数の最適化の短い例を見てください。



# simple example: minimize a quadratic around some solution point import numpy as np solution = np.array([0.5, 0.1, -0.3]) def f(w): return -np.sum((w - solution)**2) npop = 50 # population size sigma = 0.1 # noise standard deviation alpha = 0.001 # learning rate w = np.random.randn(3) # initial guess for i in range(300): N = np.random.randn(npop, 3) R = np.zeros(npop) for j in range(npop): w_try = w + sigma*N[j] R[j] = f(w_try) A = (R - np.mean(R)) / np.std(R) w = w + alpha/(npop*sigma) * np.dot(NT, A)
      
      





パラメータにノイズを埋め込む



目的関数は、OP:期待される報酬の最適化と同じであることに注意してください。 ただし、OPでは、ノイズがアクションスペースに導入され、パラメーターの変化が逆伝播を使用して計算されます。 ESでは、ノイズはパラメータ空間に直接注入されます。 したがって、決定論的なポリシーを使用できます(これは実験で行いました)。 両方のアプローチを組み合わせることもできます。



強化学習と進化戦略の比較



OPに対するESの利点:





ESにも欠点はありません。 実際には、トレーニング信号が形成されるように、パラメータ空間のランダムノイズが異なる結果につながるはずです。 たとえば、ゲームMontezuma's Revengeでは、ランダムネットワークを使用して最初のレベルでキーを取得することはほとんど不可能ですが、これはランダムアクションで可能になります。



実験の詳細な説明と最適なOPアルゴリズムとの比較については、記事「 強化学習のスケーラブルな代替手段としての進化戦略」を参照してください。



githubで公開されているソースコード。



All Articles