【转载】David Silver公开课4——Model-Free Learning

Model-Free Learning(解决未知Environment下的Prediction问题)

本文是David Silver强化学习公开课第四课的总结笔记。这一课主要讲了解决在未知environment的情况下强化学习的prediction问题的两种方法,分别是Monte-Carlo Reinforcement Learning和Temporal Difference。

【转载自】chenrudan.github.io

本文是David Silver强化学习公开课第四课的总结笔记。这一课主要讲了解决在未知environment的情况下强化学习的prediction问题的两种方法,分别是Monte-Carlo Reinforcement Learning和Temporal Difference。

本课视频地址:RL Course by David Silver - Lecture 4: Model-Free Prediction

本课ppt地址:http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/MC-TD.pdf

文章的内容是课程的一个总结和讨论,会按照自己的理解来组织。个人知识不足再加上英语听力不是那么好可能会有一些理解不准的地方,欢迎一起讨论。

建了一个强化学习讨论qq群,有兴趣的可以加一下群号595176373或者扫描下面的二维码。

1

1.内容回顾

上节课中通过动态规划能够解决已知environment的MDP问题,也就是已知S,A,P,R,γ,其中根据是否已知policy将问题又划分成了prediction和control问题,本质上来说这种known MDP问题已知environment即转移矩阵与reward函数,但是很多问题中environment是未知的,不清楚做出了某个action之后会变到哪一个state也不知道这个action好还是不好,也就是说不清楚environment体现的model是什么,在这种情况下需要解决的prediction和control问题就是Model-free prediction和Model-free control。显然这种新的问题只能从与environment的交互得到的experience中获取信息。

这节课要解决的问题是Model-free prediction,即未知environment的Policy evaluation,在给定的policy下,每个state的value function是多少。

将从某个起始状态开始执行到终止状态的一次遍历S1,A1,R2,…,Sk称为episode。已知很多的episodes。

2.Monte-Carlo Reinforcement Learning

蒙特卡洛强化学习是假设每个state的value function取值等于多个episodes的return Gt的平均值,它需要每个episode是完整的流程,即一定要执行到终止状态。由第二课中知道值函数的表达式为vπ(s)=Eπ[Gt|St=s],即每个state的value function是return的期望值,而在Monte-Carlo policy evaluation的假设下,值函数的取值从期望简化成了均值。

因此在本算法中,需要记录两个值,状态s被访问到的次数N(s)=N(s)+1N(s)=N(s)+1以及每次访问时return之和S(s)=S(s)+GtS(s)=S(s)+Gt,遍历完所有的episodes之后,得到状态s下值函数取值为V(s)=S(s)/N(s)V(s)=S(s)/N(s)。而这里有两种访问次数的记录方式,一种是在一个episode中只记录第一次访问到的s,一种是一个episode中每次访问到s都记录下来。从而针对一次新的访问,先次数加1N(St)=N(St)+1N(St)=N(St)+1,然后更新V(St)=V(St)+1N(St)(Gt−V(St))V(St)=V(St)+1N(St)(Gt−V(St))。在一些方法中也会将1N(St)1N(St)设置成一个常数αα,不随着访问次数增加,即

V(St)=V(St)+α(Gt−V(St))(1)

3.Temporal-Difference Learning

时序差分学习则是基于Bootstrapping思想,即在中间状态中会估计当前可能获得的return,并且更新之前状态能获得的return。因此它不需要走完一个episode的全部流程才能获得return。在最简单的TD算法TD(0)中这个估计return为Rt+1+γV(St+1)Rt+1+γV(St+1)称之为TD target,代入上面公式2替代掉GtGt就能得到TD算法的value function更新公式。

V(St)=V(St)+α(Rt+1+γV(St+1)−V(St))(2)V(St)=V(St)+α(Rt+1+γV(St+1)−V(St))(2)

δt=Rt+1+γV(St+1)−V(St)δt=Rt+1+γV(St+1)−V(St)称之为TD error。它代表了估计之前和估计之后的return差值。

TD(0)是指在某个状态s下执行某个动作后转移到下一个状态s′s′时,估计s′s′的return再更新s,假如s之后执行两次动作转移到s′′s″时再反回来更新s的值函数,那么就是另一种形式,从而根据step的长度n可以扩展TD到不同的形式,当step长度到达当前episode终点时就变成了MC。从而得到统一公式如下

G(n)t=Rt+1+γRt+2+…+γn−1Rt+n+γnV(St+n)(3)Gt(n)=Rt+1+γRt+2+…+γn−1Rt+n+γnV(St+n)(3)

V(St)=V(St)+α(G(n)t−V(St))(4)V(St)=V(St)+α(Gt(n)−V(St))(4)

又如果将不同的n对应的return平均一下,这样能够获得更加robust的结果,而为了有效的将不同return合起来,对每个n的return都赋了一个权重1−λ,(1−λ)λ,…,(1−λ)λn1−λ,(1−λ)λ,…,(1−λ)λn,参数是λλ,这样又能得到一组更新value function的公式。

Gλt=(1−λ)∑n=1∞λn−1G(n)t(5)Gtλ=(1−λ)∑n=1∞λn−1Gt(n)(5)

V(St)=V(St)+α(Gλt−V(St))(6)V(St)=V(St)+α(Gtλ−V(St))(6)

下面左图是一个从办公室驾驶回家的路上花费时间的例子,第一列表示当前状态,例如下雨,离开高速等等,第二列表示当前花费时间,第三列表示估计还有多久能到家,第四列是前两列之和,表示估计要花费的总时间。要求的value function是当前状态下要到家的总时间,针对这个问题,MC和TD算法都给出了自己的解决结果,即右图中的虚线。可以明显看出来蒙特卡洛方法是根据整个流程走完了之后,根据最后的结果更新了前面每个state的value function都是43,而TD则是走完一步,发现当前花费总时间发生了变化,就更新上一个状态所需的时间,因此第一个状态的value function取值是40,第二个状态value function取值是35等等。

1

图1 驾驶例子(图片来源[1])

4.Monte-Carlo VS. Temporal Difference

在谈两种算法的优劣前,先谈谈Bias/Variance tradeoff的问题。平衡Bias/Variance是机器学习比较经典的一个问题,bias是指预测结果与真实结果的差值,variance是指训练集每次预测结果之间的差值,bias过大会导致欠拟合它衡量了模型是否准确,variance过大会导致过拟合衡量了模型是否稳定。如果Gt和Rt+1+γvπ(St+1)跟真实值一样,那么就是无偏差估计。因为在MC算法中,它是将最终获得的reward返回到了前面的状态,因此是真实值,但是它采样的episode并不能代表所有的情况,所以会导致比较大的variance。而TD的Rt+1+γV(St+1)跟真实值是有偏差的,在计算的过程基于随机的状态、转移概率、reward等等,涵盖了一些随机的采样,因此variance比较小。

此外,MC方法中没有计算状态转移概率,也不考虑状态转移,它的目标是最小化均方误差,这样的行为实际上并不符合马尔可夫性质,而TD方法会找出拟合数据转移概率和reward函数,还是在解决MDP问题。

Monte-CarloTemporal Difference
要等到episode结束才能获得return每一步执行完都能获得一个return
只能使用完整的episode可以使用不完整的episode
高variance,零bias低variance,有bias
没有体现出马尔可夫性质体现出了马尔可夫性质

1

图2 Policy Evaluation相关算法(图片来源[1])

上面的图是用Policy Evaluation解决强化学习问题的一些算法的区别与相关性,最左边的竖线表示如果考虑了所有的可能发生的情况那么就是动态规划,如果只考虑了部分采样那么就是时序差分。下面的横线表示如果考虑了一次episode中全部的动作就是Monte-Carlo,如果只考虑部分动作就是时序差分。如果又考虑全部情况又考虑每一种情况的全部动作就是穷举。

[1] http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/MC-TD.pdf

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值