私は、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