学习莫烦PYTHON 强化学习课程(2 Q-Learning)

2.1 什么是Q-Learning

行为准则

我们做事都会有自己的行为准则,Q-Learing是一个决策过程,举例说明。假设现在我们处于写作业的状态而且我们以前并没有尝试过写作业时看电视, 所以现在我们有两种选择,1 继续写作业,2 跑去看电视。因为以前没有被罚过,所以我选看电视,然后现在的状态变成了看电视,我又选了继续看电视,接着我还是看电视。最后,爸妈回家,发现我没写完作业就去看电视了,狠狠地惩罚了我一次,我也深刻地记下了这一次经历,并在我的脑海中将 “没写完作业就看电视”这种行为更改为负面行为,我们再看看 Q learning 根据很多这样的经历是如何来决策的吧。

Q-Learing决策


决策过程

假设我们的行为准则已经学习好了,现在我们处于状态s1,我在写作业,我有两个行为 a1、a2,分别是看电视和写作业,根据我的经验,在 s1 状态下,a2 写作业带来的潜在奖励要比 a1 看电视高,这里的潜在奖励我们可以用一个有关于 s 和 a 的 Q 表格代替,在我的记忆Q表格中,Q(s1, a1)=-2 要小于 Q(s1, a2)=1,所以我们判断要选择 a2 作为下一个行为。现在我们的状态更新成 s2,我们还是有两个同样的选择,重复上面的过程, 在行为准则Q 表中寻找 Q(s2, a1) ,Q(s2, a2)的值,并比较他们的大小,选取较大的一个。接着根据 a2,我们到达 s3 并在此重复上面的决策过程。Q learning的方法也就是这样决策的。看完决策, 再来研究一下这张行为准则表 Q 表是通过什么样的方式更改,提升的。

Q-Learning 更新


Q值更新

对Q表进行更新。根据 Q 表的估计, 因为在 s1 中, a2 的值比较大, 通过之前的决策方法, 我们在 s1 采取了 a2, 并到达 s2,这时我们开始更新用于决策的 Q 表, 接着我们并没有在实际中采取任何行为, 而是想象自己在 s2 上采取了每种行为, 分别看看两种行为哪一个的Q 值大, 比如说 Q(s2, a2) 的值比 Q(s2, a1) 的大, 所以我们把大的 Q(s2, a2) 乘上一个衰减值 gamma(未来奖励) 并加上到达s2时所获取的奖励 R (即时奖励), 因为会获取实实在在的奖励 R ,我们将这个作为我现实中 Q(s1, a2) 的值, 但是我们之前是根据 Q 表估计 Q(s1, a2) 的值. 所以有了现实和估计值,我们就能更新Q(s1, a2) , 根据 估计与现实的差距, 将这个差距乘以一个学习效率 alpha 累加上老的 Q(s1, a2) 的值变成新的值. 但时刻记住, 我们虽然用 maxQ(s2) 估算了一下 s2 状态, 但还没有在 s2 做出任何的行为, s2的行为决策要等到更新完了以后再重新另外做. 这就是 off-policy 的 Q learning 是如何决策和学习优化决策的过程.

Q-Learning 整体算法


Q-Learning算法

Epsilon greedy 是用在决策上的一种策略, 比如 epsilon = 0.9 时, 就说明有90% 的情况我会按照 Q表的最优值选择行为, 10% 的时间使用随机选行为. alpha是学习率, 来决定这次的误差有多少是要被学习的, alpha是一个小于1 的数.gamma 是对未来 reward 的衰减值.

Q-Learning 中的Gamma


Q(s1)公式推导

重写一下 Q(s1) 的公式, 将 Q(s2) 拆开, 因为Q(s2)可以像 Q(s1)一样,是关于Q(s3) 的, 所以可以写成这样,然后以此类推, 不停地这样写下去, 最后就能写成这样, 可以看出Q(s1) 是有关于之后所有的奖励, 但这些奖励正在衰减, 离 s1越远的状态衰减越严重.

Q-Learning的思想

Q-Learning是value-based的,Q(s,a)就是在某一时刻的 s 状态下(s∈S),采取 动作a (a∈A)能够获得收益的期望,环境会根据agent的动作反馈相应的回报reward R,所以算法的主要思想就是将State与Action构建成一张Q表来存储Q值,然后根据Q值来选取能够获得最大的收益的动作。



出自莫烦Python强化学习课程:强化学习 Reinforcement Learning 教程系列 | 莫烦Python

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Q-learning算法 最近在学强化学习,看了不少的教程,还是觉得莫烦大神的强化学习教程写的不错。所以,特意仔细...
    Mr_XFeng阅读 1,578评论 0 0
  • 一、什么是Q_learning Q_learning是强化学习中的一个决策算法,如果你还不知道什么是强化学习,可以...
    小道萧兮阅读 23,894评论 0 11
  • 一、什么是强化学习 强化学习是一类算法,是让计算机实现从一开始完全随机的进行操作,通过不断地尝试,从错误中学习,最...
    小道萧兮阅读 33,262评论 5 12
  • 1. 什么是强化学习 其他许多机器学习算法中学习器都是学得怎样做,而强化学习(Reinforcement Lear...
    mantch阅读 2,841评论 1 7
  • 你喜欢晴天,我喜欢雨天 你爱吃鱼,我却讨厌吃鱼 你喜欢听张国荣,我则喜欢林俊杰 你讨厌看恐怖片,我却喜欢惊悚的电影...
    宜修子易阅读 511评论 0 1

友情链接更多精彩内容