强化学习之Q-learning

三要素:状态(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更新
这里写图片描述

猜你喜欢

转载自blog.csdn.net/sunyao_123/article/details/79789734