これはQ学習アルゴリズムですか、それともブルートフォースですか?


8

私は、tictactoeをプレイする方法を学ぶアルゴリズムで遊んでいます。基本的な擬似コードは次のとおりです。

repeat many thousand times {
  repeat until game is over {
    if(board layout is unknown or exploring) {
      move randomly
    } else {
      move in location which historically gives highest reward
    }
  }

  for each step in the game {
    determine board layout for current step
    if(board layout is unknown) {
      add board layout to memory
    }
    update reward for board layout based on game outcome
  }
}

now play a human and win :-)

探索:最初はアルゴリズムが積極的に探索し、これにより直線的に減少します。1000ゲームを言った後、動きの10%でのみ探索します。他のすべての動きは、以前の報酬の利用に基づいています。

報酬:ゲームが勝利した場合、10ポイントを獲得します。ゲームが引き分けになった場合は0ポイント、それ以外の場合は-5ポイント。実際には、これらの報酬は「調整」することができるため、ゲームが短くて勝利した場合は、より多くのポイントを獲得するか、長くなると少ないポイントを獲得します。このように、アルゴリズムはすぐに勝つことを好みます。つまり、後で勝つことを目指すのではなく、できるだけ早く勝つことを学びます。それはすぐに勝利を逃さないために重要です-そのような動きを逃した場合、対戦相手はおそらくa)次回AIが勝つことを回避するためにそこに移動し、b)「明白な「勝つ。

このアルゴリズムは確かに学習するので、それを機械学習アルゴリズムとして分類できます。

私はそれが強化学習アルゴリズムであると思いますが、私にはわかりません。ただし、https://www.cse.unsw.edu.au/~cs9417ml/RL1/tdlearning.htmlによると、それは時間差学習ではありませんこれは、最後まで報酬を推定しないため、推定する必要があるためです。それが進むにつれて報酬。それはそれが強化学習ではないことを意味するかもしれません。

質問1:履歴に基づいて報酬を推定していると主張しても、アルゴリズムが強化学習またはQ学習でさえあると主張できますか?

質問2:ボードレイアウトに基づくリワードルックアップを、ボードレイアウトが入力で、リワードが出力であるニューラルネットワークに置き換えると、アルゴリズムは深層強化学習と見なされますか?

質問3:学習率も割引率もないと思います。それは重要ですか?

少なくとも対戦相手が試みるすべての動きで訓練しない限り、アルゴリズムはかなり役に立たないことに気づきました。つまり、実際に「学習」するのではなく、ブルートフォースを使用しているように感じます。これにより、機械学習のtictactoeが実際に学習しているかどうかがわかりません。ニューラルネットワークを使用して画像認識を学習することは、未知の画像を見ると分類を示すことができるため、学習として分類できることに同意します。しかし、これはtictactoeのようなゲームでは、似たようなボードレイアウトがまったく無関係である場合にはまったく役に立ちません(1つは勝利につながり、もう1つは損失につながる可能性があります)。そう...

質問4:目撃アルゴリズムは、単なる総当たりではなく、実際の学習として分類できますか?

更新:報酬に関して...アルゴリズムがどこに行くかを決定するとき、それは以下のように各ポジションの報酬を計算します:

var total = winRewards + drawRewards + lossRewards;
move.reward = (100*(winRewards/total)) + (10*(drawRewards/total)) + (-1*(lossRewards/total));

ポイントごとの合計ポイント数で除算します。そうしないと、1つの場所が素晴らしいことを学び、他の場所にはチャンスがないためです。このようにして、プレイの頻度に関係なく勝率を計算します。他と比較して正規化されています。

コードはこちらから入手できます:https : //github.com/maxant/tictactoe/blob/master/ai.js

更新#2:私はそれ以来、このアルゴリズムはブルートフォースを使用するものとして分類できないことを理解しました。これは、エキスパートになる前に実際に多くのゲームを学習しないためです。詳細はこちら:http : //blog.maxant.co.uk/pebble/2018/04/11/1523468336936.html

回答:


5

定義についての質問はいつも楽しいので、ここで別の答えを出してみましょう。

まず、あなたがしていることを数学的にモデル化しましょう。最高レベルでは、各ボード状態「報酬」測定値を推定しています。あなたは、環境と相互作用し、好ましい動作を強化するために内部パラメーター(つまり、値のテーブル)を更新することによってそれを行っています。したがって、ほとんどの標準的な定義では、アルゴリズムは確かに強化学習として分類されます。RssR

あなたがどのような強化学習を行っているか、それが「良い」かどうかを理解するには、もう少し深く掘り下げる必要があります。強化学習の重要な概念の1つは価値関数です V (またはその変身、 Q関数)、特定のボード状態から最適にプレイした場合に獲得できると予想される最高の合計報酬を報告します。アルゴリズムが、少なくともある意味で、推定していることを示すことができる場合V、特定の「良い」保証を主張し、それを既知の「良い」アルゴリズムタイプのいずれかに分類することができます(すべて本質的に推定を目的としています) V 直接、または彼らがそれを暗黙的に推定したかのように振る舞う)。

2人用ゲームについて話すとき、ユニークな存在は必ずしも存在しないことに注意してください V目指しています。たとえば、報酬が勝った場合は1、負けた場合は0、引き分けは0.5、割引なしの場合、V空のボード です 0.5 あなたが最適な相手と対戦しているが、おそらくそれに近い場合 1対戦相手がランダムである場合。あなたが人間と対戦する場合、あなたのV人間によって異なる場合があります。中心への最初の移動が最も安全な移動であることは誰もが知っていますが、私自身はそのような移動で勝ったことはありません。ゲームは常に引き分けで終了します。コーナーへの最初の移動で数回勝利した。なぜならそれは一部の対戦相手を混乱させ、彼らは最初のターンでミスを犯したからだ。これはさておき、V 最適な対戦相手とのゲームを表すことは合理的な選択です。

アルゴリズムに戻ると、重要なステップは、 R、実際には指定していません。あなたが単にスコアをそこに蓄積しているとしましょう。もしそうなら、厳密に言えば、あなたがQラーニングを行っていないと言うかもしれません。Q関数は、古典的な定義で更新されています。それでも、暗黙的に正しい推定をしていないという意味ではありませんVただし、最終的にそれを行うかどうかを証明または反証することはかなり困難です。

わかりやすくするために、アルゴリズムを少し調整します。最終的な報酬を合計する代わりにRs 各州のために sゲームで発生した、各州からこれまでに到達した平均報酬を追跡してみましょう。当然のことながら、めったに到達しない場合でも、常に勝利するポジションは、頻繁に到達する場合でも、めったに勝利しないポジションよりも高く評価する必要があります。とにかく、学習は同じままです。この変更後、Rs解釈が容易になります- 位置から到達可能な平均期待報酬ですs

この平均期待報酬は実際には価値関数ではありませんV見積もりに興味があります。私たちの目標V結局のところ、各ポジションに期待される最高の報酬を教えてくれるはずです。ただし、興味深いことに、ポリシーがすでに最適である場合、平均報酬は最適報酬と等しくなります(とにかく常に最適な移動を行うため)。そのため、何らかの方法で誤ったメトリックを学習している場合でも、アルゴリズム。学習プロセスによりアルゴリズムが少しだけ最適化された場合、ポリシーを徐々に改善していくと、「平均期待報酬」メトリック自体が徐々に「より正確」になり、最終的には正しい値関数に収束し始めます。これは純粋な手振りですが、アルゴリズムが学習すべきことを正式に学習しているかどうかを証明または反証するのが難しいという主張を示しているはずです。多分それはします。

いずれにせよ、各州の平均報酬を追跡する代わりに、アルゴリズムを変更して、これまでのところ最高の報酬を追跡しましょう。つまり、各位置からのすべての代替移動をチェックし、更新のみを行いますRs現在の移動により、スコアが改善された場合(別のオプションと比較して、この状態から取得できた可能性があります)。おめでとうございます。これで、アルゴリズム通常のQ学習法同等になりました(正確には、「値反復」法です)。

最後に、「それは学習なのか総当たりなのか」は有効な質問です。「学習」という言葉は、少なくとも2つの異なる方法で解釈できます。第一に、学習は単純な暗記を表すかもしれません。たとえば、中心への最初の移動が適切であることがわかった場合、この事実を表に書き留め、後でこの事実を直接使用することができます。人々はそのような暗記を「学習」と呼んでいますが、この学習は本当にかなり馬鹿げています。

2番目に、「学習」に起因することが多い別の意味は、一般化です。これは、どの動きが良いかを単純に書き留めるだけでなく、アルゴリズムがこの情報を一般化して、以前に見えなかった動きを表すことができる場合です。これは「インテリジェント」な種類の学習です。

Qラーニングやその他の多くのRLアルゴリズムは、通常、テーブルの更新に関して定式化されます V または Q。したがって、これらは本質的に「ダム学習」アルゴリズムであり、状態情報を一般化することさえ目的としていません。真の一般化(別名「スマートラーニング」)は、ニューラルネットワークなどの組み込みの一般化機能を備えたものを使用して状態またはポリシーのモデリングを開始たときにのみ現れます。

要約すると、はい、あなたのアルゴリズムは強化学習です。いいえ、それはQラーニングではありませんが、マイナーな変更でそれになります。はい、「インテリジェントラーニング」ではなく「ブルートフォース」ですが、デフォルトのQラーニングも同様です。はい、ニューラルネットワークで状態をモデル化して一般化を追加すると、アルゴリズムが「よりインテリジェント」になります。


とても良い答え、ありがとう。どこに行くかを決めるためにR(s)を使用するとき、私は生の報酬を使用せず、平均を使用しませんが、私が行うことは、報酬を相対的にすることです。詳細を説明するために質問を更新しました。平均または最高のものを使用するというアイデアはかなりクールです。私はそれを試してみるかもしれません:-)
Ant Kutschera

6

動作する三目並べプレイアルゴリズムをゼロから作成するための称賛!

質問1:履歴に基づいて報酬を推定していると主張しても、アルゴリズムが強化学習またはQ学習でさえあると主張できますか?

まず最初に、これは間違いなく Qラーニングではありませ

しかし、それは強化学習に分類されると思います。RLのこれらの主要コンポーネントを実装しました。

  • 各ステップの入力として使用される状態(現在のボード)。

  • 出力として使用されるアクション(次のボード配置が望ましい)。アクションが効果的に次の状態を直接選択することである場合、これは時々、後状態表現と呼ばれます。これは、RLで確定的ゲームに一般的に使用されます。

  • 環境によって生成された報酬。エージェントの目標は、期待される報酬を最大化することです。

  • 状態、アクション、および報酬に関するデータを取得し、環境内での経験を通じて期待される報酬を最適化する方法を学習できるアルゴリズム。

アルゴリズムは、標準のRLアプローチであるMonte Carlo Controlに最も近いIMO です。

Qラーニングの大きな利点の1つは、探索中にも最適なポリシーを学習できることです。これは、ポリシーがオンポリシーである間、これはオフポリシーラーニングと呼ばれます。つまり、現在動作している方法の値について学習します。これが、時間の経過とともに探査率を下げる必要がある理由です。探査率のスケジュールは、注意深い調整が必要な学習アルゴリズムのハイパーパラメータであるため、問題になる可能性があります。

質問2:ボードレイアウトに基づくリワードルックアップを、ボードレイアウトが入力で、リワードが出力であるニューラルネットワークに置き換えると、アルゴリズムは深層強化学習と見なされますか?

はい、技術的になると思います。ただし、時間差学習やポリシーグラディエントの使用など、より洗練された要素を追加しない限り、ニューラルネットワークを追加してアクション値を推定するだけで、より複雑な問題に適切にスケーリングすることはできません。

質問3:学習率も割引率もないと思います。それは重要ですか?

一時的な問題では、割引係数は重要ではありません。これは継続的な問題にのみ必要であり、ある種の期間を設定する必要があります。そうしないと、予測される報酬が無限になります(実際には、割引メカニズムを平均報酬アプローチに置き換えることもできます)。

学習率は重要な省略です。あなたは代わりに何を持っているのか説明しません。あなたが置いたupdate reward for board layout based on game outcome-その更新ステップは通常、その中に学習率を持っています。ただし、tic-tac-toeとQ-Learningの場合、実際には学習率を1.0に設定できます。これは、あなたのアプローチと同じであり、機能します。私はまさにそれを行うサンプルコードを書いた - 学習率を1.0に設定するこの行を見てください。ただし、より複雑なシナリオ、特に非決定的環境では、このような高い学習率では学習が悪くなります。

質問4:目撃アルゴリズムは、単なる総当たりではなく、実際の学習として分類できますか?

アルゴリズムは人間と比べると非効率的ではありますが、確かに経験から何かを学んでいます。ただし、より基本的なRLアルゴリズムの多くは同様の問題を抱えており、回答に収束する前に、システムの考えられる各状態を何度も確認する必要があります。

プレイ中の現在位置からの網羅的なツリー探索は「ブルートフォース」だったと思います。tictactoeのような単純なゲームでは、これはおそらくRLよりも効率的です。ただし、ゲームがますます高度になるにつれて、機械学習アプローチは検索との競争力が高まります。多くの場合、RLと検索形式の両方が一緒に使用されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.