三要素:状态(state),动作(action),奖赏(reward)。更具具体情况自行进行给定。
Q更新公式:
Q是什么?动作效用函数(action-utility function),用于评价在某一状态下采取某个动作的优劣。如果Q训练好了,之后预测时就可以按照Q进行选择动作。
详解Q更新函数:
α是学习速率;γ是折扣因子;由公式可知,α控制保留之前效果的比例,α越大,保留之前的训练效果就越少。R为奖励,是当前状态下,进行当前动作的奖励;maxa Q(S’,a)是记忆里根据当前状态和动作选择的下一个状态的所有动作里Q值最大的一个。γ控制眼前利益(R)和记忆里的利益(maxa Q(S’,a))的比例,γ越大,agent越倾向于相信过去,重视以往的经验,γ越小,则倾向于重视眼前利益。
但是下一个状态的下一个动作如何选择呢?如果使用greedy贪婪算法,那么就只使用经验(即,exploitation),不会进行探索不同的action。所以就出现了ε-greedy贪婪算法,该算法允许agent以一定的概率探索新的action(即exploration)。
ε-greedy贪婪算法:
赋予agentε概率去探索新的action。具体是:首先找到以往最好的action,赋予概率1-ε,然后对所有的action平分ε概率。
所以选择下一个action的一种做法为:
##选择动作
r = random.random()
s = 0.0
for i in range(len(actions)):
s += pro[i]
if s>= r: return actions[i]
return actions[len(actions)-1]
2018-4-20更新
其实,第二项就是 TD error(时间差分误差)。