我们的行动准则:好的行为能够获得奖励,不好的行为会获得惩罚。 我叫小明,是某大学本科新生,上课的第一天,你并不知道上课走神会挂科,你坐在第一排,你有两个选择:听课和走神,你选择连续走神,老师给你挂了。你记住了这次惨痛的教训,重修的时候持续认真听讲(当然这是极端情况)。 当前有一个Q表,如下面图所示: Q表中是每一个状态( s 1 , s 2 , … … s_1,s_2,…… s1,s2,……),所对应的是所有动作( a 1 , a 2 , … … a_1,a_2,…… a1,a2,……)的“Q值”,Q值可以表示当前状态下选择对应动作的回报。 Q表的作用是什么呢? 假设Q表已经存在,我们选择初始状态为 s 1 s_1 s1(放学回家),动作的选择则是Q表中 s 1 s_1 s1状态对应Q值最大的动作 a 2 a_2 a2(写作业),然后自动转移到状态 s 2 s_2 s2(写作业中),再次根据Q表选择动作 a 2 a_2 a2(写作业)……以此往复。
还是上面的过程,当我们通过Q表选择动作 a 1 a_1 a1后,到达 s 2 s_2 s2状态。 上图中maxQ( s 2 s_2 s2)是在还未采取第二次行动之前做的估计,即当前状态可能达到的最大Q值(Q( s 2 s_2 s2, a 2 a_2 a2)),前面乘以一个 γ \gamma γ,叫做衰减因子,表达的是未来值对现在影响的大小,后面会详细提到。最后加上一个R,表示当前状态 s 1 s_1 s1下选择动作 a 2 a_2 a2的立即奖励(假设现在R为0,没写完作业不给奖励),得到真实的Q( s 1 s_1 s1, a 2 a_2 a2)值。Q表中原来的值即为估计值,差距(也就是需要调整的部分)=真实Q值-原来Q值。 最后更新的Q值 = 原来的Q值 + α ∗ \alpha* α∗差距,其中 α \alpha α为学习率(影响学习速度)。
Q的现实值实际上有部分也是利用Q表中的值估计的,更新过程就是上面所描述的过程。 算法第5行,状态s选择动作a时,使用的是 ϵ − g r e e d y \epsilon-greedy ϵ−greedy方法,比如 ϵ \epsilon ϵ=0.9,就有0.9的概率选择最大Q值动作,但是也有0.1的概率选择任意的其他动作,目的是加入一定随机性,遵循广泛采样的原则。
如上图所示,Q( s 1 s_1 s1)的估计不仅仅只有 s 2 s_2 s2,按照同样的规则可以持续的展开,可以发现,其与后续状态 s 3 、 s 4 … … s_3、s_4…… s3、s4……都有关系,这些都能够用来估计实际Q值。 当 γ = 1 \gamma=1 γ=1时,相当于更多的考虑未来的奖励,完全没有忽略。 当 γ ⊆ ( 0 , 1 ) \gamma\subseteq(0,1) γ⊆(0,1)时,数值越大,对未来情况的重视程度越大,可以说智能体越有“远见”。 当 γ = 0 \gamma=0 γ=0时,完全不考虑将来的情况,只有当前的回报值。
上一篇:【莫烦强化学习】视频笔记(一)3. 为什么用强化学习? 下一篇:【莫烦强化学习】视频笔记(二)2.编写一个Q学习的小例子
