Day 28 - 强化学习 Reinforcement Learning(2)

时差学习 Temporal difference learning link

时差学习是通过boottraping自助(link)从值函数的当前估计中进行学习。 这些方法像Monte Carlo方法一样从环境中采样,并像动态编程方法一样基於当前估计执行更新。

蒙特卡洛方法仅在知道最终结果後才调整其估计,而时差学习方法会调整预测以在最终结果已知之前对未来的更准确的预测进行匹配。这是boottraping自助的一种形式,如以下示例所示:
“假设您希望预测周六的天气,并且考虑到一周中的每一天的天气,您有一些模型可以预测周六的天气。在标准情况下,您要等到周六再调整所有模型。但是, 例如,在星期五,您应该对星期六的天气有一个很好的了解-这样就可以在星期六到来之前更改星期六的模型。”

蒙地卡罗方法 Monte Carlo Learning link

概念

假设我们要计算一个不规则图形的面积,那麽图形的不规则程度和分析性计算(比如,积分)的复杂程度是成正比的。蒙特卡罗方法基於这样的想法:假设你有一袋豆子,把豆子均匀地朝这个图形上撒,然後数这个图形之中有多少颗豆子,这个豆子的数目就是图形的面积。当你的豆子越小,撒的越多的时候,结果就越精确。借助计算机程序可以生成大量均匀分布坐标点,然後统计出图形内的点数,通过它们占总点数的比例和坐标点生成范围的面积就可以求出图形面积。

Q-学习 Q-Learning link

Q-学习是强化学习的一种方法。 Q-学习就是要记录下学习过的政策,因而告诉智能体(Agent)什麽情况下采取什麽行动会有最大的奖励值。 Q-学习不需要对环境进行建模,即使是对带有随机因素的转移函数或者奖励函数也不需要进行特别的改动就可以进行。

对於任何有限的马可夫决策过程(FMDP),Q-学习可以找到一个可以最大化所有步骤的奖励期望的策略。 ,在给定一个部分随机的策略和无限的探索时间,Q-学习可以给出一个最佳的动作选择策略。

「Q」这个字母在强化学习中表示一个动作的品质(quality)。

Q-学习最简单的实现方式就是将奖励值存储在一个表格(Q-table)中,但是这种方式受限於状态和动作空间的数目。

变形

  • 深度Q-学习 (DQN)
    这是一个由DeepMind公司开发的利用深度卷积神经网络来进行Q-学习的算法。在使用非线性函数逼近的时候,强化学习经常会有不稳定性或者发散性:这种不稳定性来於当前的观测中有比较强的自相关。 DeepMind 通过使用经历回放,也就是每次学习的时候并不直接从最近的经历中学习,而是从之前的经历中随机采样来进行训练。

  • 深度双Q-学习
    尽管深度Q-学习的效果已经很好了,但是人们发现了一个问题,它会过高的估计Q值。 DeepMind在2015年证明了这个估值错误真的存在,并且采用双Q-学习的方法改进了算法,从而降低了过高估值带来的影响。

SARSA (State–action–reward–state–action) link

状态-行为-奖励-状态-行为(SARSA)是一种用於学习MDP策略的算法,用於机器学习的强化学习领域。 它是由Rummery和Niranjan在技术说明中提出的,名称为“ Modified Connectionist Q-Learning”(MCQ-L)。 Rich Sutton提出的替代名称SARSA仅作为脚注被提及。
这个名称简单地反映了一个事实,即更新Q值的主要功能取决於代理“ S1”的当前状态,代理选择“ A1”的动作,代理选择此动作获得的奖励“ R”, 代理在执行该操作後进入的状态“ S2”,最後代理在其新状态下选择的下一个操作“ A2”。 五元组(st,at,rt,st + 1,at + 1)的缩写是SARSA。一些作者使用略有不同的约定并编写五元组(st,at,rt + 1,st + 1,at + 1),具体取决於奖励被分配到哪个时间步骤。

注:本文是搜寻数个网站及各种不同来源之结果,着重在学习,有些内容已难办别出处,我会尽可能列入出处,若有疏忽或出处不可考,请联络我, 我会列入, 尚请见谅。

<<:  欸! 我觉得自动化测试的架构应该长这样,测试应该这样写。

>>:  iOS APP 开发 OC 第六天, 面向过程&面向对象

工作的意义与价值

我今年 46 岁,属於在战後婴儿潮之後的所谓的 X 世代。在 ALPHA Camp,我每天需要跟不...

Day 26 [Python ML、资料清理] 资料缩放以及标准化

在这边我们会学到如何将资料做正规化(Normalization)及缩放(Scaling) 取得环境 ...

Day 30 设计的问题

最後,我们提一下,设计时可能面对的问题,首先,分类要分好,因为资源有优先顺序的问题,所以在设计的时候...

Day 6 不免俗的来个 Hello World Docker

Docker 官方制作了一个有趣的 Hello-world docker 映像档,现在就来拉取下来跑...

MVC 架构

MVC 分别是 Model, View, Controller, 是一种软件架构, View 负责使...