TD and Monte-Carlo
值网络的学习可以使用Monte-Carlo方法,需要进行完整个game,然后计算某个state对应的累计奖励,然后最小化该累计奖励和值网络输出值,从而学习值网络模型。
值网络的学习也可以使用Temporal-difference(TD)方法。
MC和TD都存在着一定的问题:对于MC,
SARSA
SARSA是on policy的算法,对于当前策略执行的每个(状态-动作-奖励-状态-动作)元组
SARSA更新状态-动作值函数为:
其中的两个action都是基于当前同一个策略进行的。
Q-learning
Q-learning介绍
Q-learning是off policy的value-based的方法,学习的不是policy,而是critic,critic并不直接决定action,而是评估一个actor有多么的好。通过把state输入到值网络中,从而得到累计奖励。
一个新的值网络,state-action value function,通过输入state和action来计算累计激励。给出一个新的actor ,当满足下列条件时,大于等于,
这里并未引入新的参数,只是选取使得Q值最大的action,这个网络也存在一定的缺陷,只能应用在离散action的环境中。
证明过程如下:
常见几个tricks
target network
实际训练时,Q网络学习其实是不稳定的,通常固定住target network,隔一定步数更新到最新的Q网络参数。
exploration
每次选择最好action不是一个好的数据收集策略,因此需要一定的概率选择其他策略。
经验重现
将其他episode的样本加入的buffer中,训练时从buffer中采样batch进行训练。
Q-learning流程