【学习笔记】强化学习中的Q-Learning


写在前面

本文内容参考莫凡大神的强化学习教程:
莫凡大神RL教程


Q-Learning的思想

当今社会每个人有自己的做事方式,有些人做事是不顾后果先做了再说,而且从来不吸取教训,比如HK废青;而有些人就不一样了,做事前会拟定策略(policy),并且根据采取不同策略产生的后果(reward or penalty) 来更新自己的计划表,当然这里的后果在每一次更新自己的计划表前并没有实践,而是靠想象(就好比海贼王里借用强大的见闻色霸气短暂的看到未来),这就是Q-learning的思想。


具体说说Q-Learning

Q-learning的决策过程中涉及到状态 s s s和行为 a a a,过程中的后果可以用 Q Q Q值来表示,具体举个例子来说明。比如我现在的状态是认真学习(嗯没错),我们记为 s 1 s_1 s1,现在有两个行为摆在我面前,一个是摸鱼,记为 a 1 a_1 a1,另一个是接着认真学习,记为 a 2 a_2 a2,选择不同的行为会引发不同的潜在后果(好好学习才是王道),假设 Q ( s 1 , a 1 ) Q(s_1, a_1) Q(s1,a1)为-3, Q ( s 1 , a 2 ) Q(s_1, a_2) Q(s1,a2)为3,明显 Q ( s 1 , a 2 ) > Q ( s 1 , a 1 ) Q(s_1, a_2) > Q(s_1, a_1) Q(s1,a2)>Q(s1,a1),所以采取了行动 a 2 a_2 a2,这时状态便变成了 s 2 s_2 s2,这时依然面临上述的两种选择 a 1 a_1 a1 a 2 a_2 a2,此时需继续比较 Q ( s 2 , a 1 ) Q(s_2, a_1) Q(s2,a1) Q ( s 2 , a 2 ) Q(s_2, a_2) Q(s2,a2)的的值,取较大的执行并得到 s 3 s_3 s3,如此重复下去。我们将前两步的Q表罗列出来:

a 1 a_1 a1 a 2 a_2 a2
s 1 s_1 s1-33
s 2 s_2 s2-23

那么我们来看看这张Q表的更新机制
上述过程中我们选择了在 s 1 s_1 s1时执行 a 2 a_2 a2得到 s 2 s_2 s2,这时候我们就需要用到我们的见闻色霸气了,想象 s 2 s_2 s2时采取两种行为的 Q Q Q值分别是 Q ( s 2 , a 1 ) Q(s_2, a_1) Q(s2,a1)为-2, Q ( s 2 , a 2 ) Q(s_2, a_2) Q(s2,a2)为3,这时候给 Q ( s 2 , a 2 ) Q(s_2, a_2) Q(s2,a2)乘上一个衰减系数 γ \gamma γ再加上到 s 2 s_2 s2为止的后果(奖励/惩罚) R R R(这一步还没有获取到奖励,因此为0),我们将这一结果记为 Q ( s 1 , a 2 ) Q(s_1, a_2) Q(s1,a2)现实:
Q ( s 1 , a 2 ) 现 实 = R + γ ∗ m a x ( Q ( s 2 ) ) (1) Q(s_1, a_2)现实 = R + \gamma * max(Q(s_2))\tag{1} Q(s1,a2)=R+γmax(Q(s2))(1)
∵ \because 这里的 m a x ( Q ( s 2 ) ) max(Q(s_2)) max(Q(s2))取了 Q ( s 2 , a 2 ) Q(s_2, a_2) Q(s2,a2),所以(1)式也可以写为:
Q ( s 1 , a 2 ) 现 实 = R + γ ∗ Q ( s 2 , a 2 ) (2) Q(s_1, a_2)现实 = R + \gamma * Q(s_2, a_2)\tag{2} Q(s1,a2)=R+γQ(s2,a2)(2)
∵ \because 在状态转变到 s 2 s_2 s2的过程中我们用到了Q表中的 Q ( s 1 , a 2 ) Q(s_1, a_2) Q(s1,a2),将其记为 Q ( s 1 , a 2 ) Q(s_1, a_2) Q(s1,a2)估计,有了现实和估计就可以跟新Q表啦:将现实与估计做差得到差距,给差距乘上一个学习率 α \alpha α再加上原来表中的 Q ( s 1 , a 2 ) Q(s_1, a_2) Q(s1,a2)便得到了新的 Q ( s 1 , a 2 ) Q(s_1, a_2) Q(s1,a2),即
Q ( s 1 , a 2 ) = Q ( s 1 , a 2 ) + α ∗ ( R + γ ∗ Q ( s 2 , a 2 ) − Q ( s 1 , a 2 ) ) (3) Q(s_1, a_2) = Q(s_1, a_2) + \alpha * (R + \gamma * Q(s_2, a_2) - Q(s_1, a_2))\tag{3} Q(s1,a2)=Q(s1,a2)+α(R+γQ(s2,a2)Q(s1,a2))(3)
remark: s 2 s_2 s2的决策在更新前并没有执行,在更新完后用以上方法继续做。

算法大致如下(盗莫凡大神的图):
在这里插入图片描述
其中 ϵ − g r e e d y \epsilon-greedy ϵgreedy是一种策略,若 ϵ = 0.1 \epsilon=0.1 ϵ=0.1就代表有90%的概率我们会按照Q表的最优值来选择要执行的行为(利用操作,exploitation),另外10%的情况随机选择行为(探索操作,exploration)。

上述更新过程继续写下去如下:
Q ( s 1 ) = r 2 + γ Q ( s 2 ) = r 2 + γ [ r 3 + γ Q ( s 3 ) ] = r 2 + γ [ r 3 + γ [ r 4 + γ Q ( s 4 ) ] ] = . . . (4) Q(s_1) = r_2 + \gamma Q(s_2) = r_2 +\gamma [r_3 + \gamma Q(s_3)] = r_2 + \gamma [r_3 + \gamma [r_4 + \gamma Q(s_4)]] = ...\tag{4} Q(s1)=r2+γQ(s2)=r2+γ[r3+γQ(s3)]=r2+γ[r3+γ[r4+γQ(s4)]]=...(4)

Q ( s 1 ) = r 2 + γ r 3 + γ 2 r 4 + γ 3 r 5 + γ 4 r 6 + . . . (5) Q(s_1) = r_2 + \gamma r_3 + \gamma^2 r_4 + \gamma^3 r_5 + \gamma^4 r_6 + ...\tag{5} Q(s1)=r2+γr3+γ2r4+γ3r5+γ4r6+...(5)
γ = 0 \gamma = 0 γ=0,则只能看见眼前的后果,若 γ = 1 \gamma = 1 γ=1,则能看到之后所有的后果,即 γ \gamma γ由0到1就看的越来越远。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值