Q-Learn
參考:https://blog.csdn.net/weixin_44732379/article/details/127812712
1 使用

檢測到游戲畫面處于s1,就從a1,a2,a3種, 從這3個動作中,選一個Q值最大的動作。
選完動作后,輸入給游戲執(zhí)行。
游戲執(zhí)行后,游戲畫面會處于新的狀態(tài)。
在這個新的狀態(tài)下,從a1,a2,a3中,選一個Q值最大的動作?,我們稱這個動作為下一次動作的最大Q值。公式為:

2 訓(xùn)練
一開始設(shè)置Q-table為0,然后用一下公式更新Q-table? 中的Q值,直到Q-table中的值不再發(fā)生變化。

alpha 是學(xué)習(xí)率,可取0.3.
gama是前瞻率,可取0.4.
rt+1是游戲的獎勵分。
公式中的

就是下一次動作的最大Q值。
gama為什么是前瞻率,就是因為它乘的是 下一次動作的最大Q值,下一次。
3 總結(jié):
訓(xùn)練移動步數(shù)后,Q-table應(yīng)該會趨于不變,這便是收斂了。
如果沒有收斂,可調(diào)整學(xué)習(xí)率,前瞻率等。
還可以適當(dāng)?shù)脑黾右恍╇S機(jī)性,即并不是每次都取Q值最大的動作,而是以一定概率來隨機(jī)取動作,以讓Q-table得到更加豐富的更新。
在一開始的時候,這個概率可以大些,后面逐漸調(diào)小,直到為0.
標(biāo)簽: