讲解 Q - learning 的具体过程


训练

那么这个Q是怎么训练得来的呢,贴一段伪代码。

Q(S,A) ← (1-α)*Q(S,A) + α*[R + γ*maxQ(S',a)]

S ← S'

其中有两个值得注意的地方

1.“根据当前Q和位置S,使用一种策略,得到动作A,这个策略可以是ε-greedy等。”

这里便是题主所疑惑的问题,如何在探索与经验之间平衡?假如我们的小鸟在训练过程中,每次都采取当前状态效用值最大的动作,那会不会有更好的选择一直没有被探索到?小鸟一直会被桎梏在以往的经验之中。而假若小鸟在这里每次随机选取一个动作,会不会因为探索了太多无用的状态而导致收敛缓慢?

于是就有人提出了ε-greedy方法,即每个状态有ε的概率进行探索(即随机选取飞或不飞),而剩下的1-ε的概率则进行开发(选取当前状态下效用值较大的那个动作)。ε一般取值较小,0.01即可。当然除了ε-greedy方法还有一些效果更好的方法,不过可能复杂很多。

以此也可以看出,Q-learning并非每次迭代都沿当前Q值最高的路径前进。

2. Q(S,A) \leftarrow (1-\alpha)*Q(S,A) + \alpha*[R + \gamma*max_aQ(S',a)]

这个就是Q-learning的训练公式了。其中α学习速率(learning rate),γ折扣因子(discount factor)。根据公式可以看出,学习速率α越大,保留之前训练的效果就越少。折扣因子γ越大,max_aQ(S', a)所起到的作用就越大。但max_aQ(S', a)指什么呢?

小鸟在对状态进行更新时,会考虑到眼前利益(R),和记忆中的利益max_aQ(S', a))。

max_aQ(S', a)指的便是记忆中的利益。它是指小鸟记忆里下一个状态S'的动作中效用值的最大值。如果小鸟之前在下一个状态S'的某个动作上吃过甜头(选择了某个动作之后获得了50的奖赏),那么它就更希望提早地得知这个消息,以便下回在状态S可以通过选择正确的动作继续进入这个吃甜头的状态S'


可以看出,γ越大,小鸟就会越重视以往经验,越小,小鸟只重视眼前利益(R)。

猜你喜欢

转载自blog.csdn.net/baidu_38375121/article/details/79605205
今日推荐