ロボットが移動できる(x、y)平面があると想像してみましょう。ここで、世界の真ん中を目標状態と定義します。つまり、ロボットがその状態に達すると、100の報酬をロボットに与えることになります。
ここで、目標状態につながる可能性のある4つの状態(これをA、B、C、Dと呼びます)があるとしましょう。
初めてAになり、目標状態に移行するときに、QValuesテーブルを次のように更新します。
Q(state = A, action = going to goal state) = 100 + 0
2つのことのいずれかが発生する可能性があります。ここでエピソードを終了し、ロボットが再び目標状態を見つけなければならない別のエピソードを開始するか、目標状態を見つけた後も世界を探索し続けることができます。これを行おうとすると、問題が発生します。私が目標状態にあり、状態Aに戻ると、Qvalueは次のようになります。
Q(state = goalState, action = going to A) = 0 + gamma * 100
さて、Aから再びゴール状態に戻ろうとすると:
Q(state = A, action = going to goal state) = 100 + gamma * (gamma * 100)
つまり、これを続けていくと、0 <= gamma <= 0として、両方のqValueが永久に上昇します。
これはQLearningの予想される動作ですか?私は何か間違ったことをしていますか?これが予想される動作である場合、これは問題につながる可能性がありますか?確率的には、4つの状態(A、B、C、D)がすべて同じ速度で成長することを知っていますが、それでも、それらが永遠に成長するのはちょっとバグです。
エージェントが目標を見つけた後も探索を続けることができるという考えは、エージェントが目標の状態から近いほど、現時点で更新できる状態にある可能性が高いことと関係があります。