强化学习基本方法(三)
2016-06-03 19:39
239 查看
3.2.蒙特卡洛方法
在之前已经了解在所有信息我们都知晓的情况下,该如何估计和优化目标。但是,在实际情况中,我们没有办法事前就知道所有事件的状态将其转义概率的。我们最多只能在每一次的实验之中观察并且总结经验。蒙特卡洛方法就是基于这样的思路而进行的。首先,我们必须做一个限定,由于我们没有能力处理无限的序列,所以我们假设蒙特卡洛方法所处理的状态序列总会在有限步之后回归到一个(或者几个)吸收状态(状态不再发生改变)。这样的一个循环,我们称之为一个episode。
比如,养花的过程:
播种-施肥-浇水-浇水-开花
播种-浇水-施肥-打虫-浇水-开花
或者
播种-浇水-浇水-浇水-浇水-死亡
不管是怎么样的一个学生,在经历了有限个状态之后,花都会开或者死掉,那些就是我们的吸收状态,代表完成了这个episode。
现在,我们想知道,如何种花才能够让花开花而不是死亡。而且身边也没有人能够咨询获取经验(取得全局状态转移概率)。这时候我们就只有通过试验的方法来完成了,多准备几盆花,用不同的方式来养,看怎么养样的比较好。
对了,蒙特卡洛方法想的和你是一样的。
有时候由于随机性的扰动,即使完全遵循策略π也不一定在每次都能获得完全一致的回报,但是在多次试验中我们可以通过大量的样本总结,从而平均出策略的回报。
再讨论:
蒙特卡洛方法是最简单的收益估计思路,直接从经验中平均获得
蒙特卡洛方法必须从完整的流程中学习经验,而不是像MDP的收益估计那样可以通过自举的方式实现
3.2.1.蒙特卡洛估计
蒙特卡洛估计构成了强化学习领域庞杂的试错总结过程。它的核心思路如下:1.确定要估计收益的状态s
2.从数据集合(所有的episode)中寻找所有s出现的情况,做出统计
3.3.时间差分学习
蒙特卡洛学习我们过得很快,因为思路很朴素,而且有着一个很致命的弱点,只能从一个完整的episode中学习经验。这是因为我们度量的是整个策略下的状态收益,如果从其中抽出一段的话,这一段过程可能是被前面多个策略选择所影响的,所以不能从episode的片段中进行学习。但是DT的话,由于使用了一个一阶马尔科夫假设,所以可以进行“实时”的学习
而再之前我们了解到的MDP,需要了解的每一个状态对应的转移概率。
显然,这两种方法都有着强烈的局限性,为此,我们在这里介绍时间差分学习。
时间差分学习的迭代公式很简单:
N(st)←N(st)+1
V(st)←V(st)+1N(st)(Gt−V(st))
注意这个t并非代表迭代次数而是状态数目
在更普遍的情况下,我们可以使用一个学习速率γ来代替N(st+1),可得:
V(st)←V(st)+γ(Gt−V(st))
这就是时间差分学习了,用上一时刻所得到的收益与这一刻的比较,算出差值并且按照权值进行学习。时间差分学习有如下的优点:
时间差分学习可以直接从一个episode中获取经验
时间差分学习是依赖于模型(model-free)的,即不需要 先验的各种概率转移知识
时间差分学习可以通过自举(bootstrapping)从不完整的episode中获取知识,其更新可以是实时的,而不用像蒙特卡洛方法一样必须等每个周期结束才能进行估计
现在的问题就在于,这个真实收益Gt应该怎么估计,当然,如果实现就知道真实收益也不用这么多计算了,所以在未知的情况下我们可以通过其他方法来估计真实的收益,比如,我们使用Rt+1+αV(st+1)来代替真实收益,这就是TD(0)更新公式:
V(st)←V(st)+γ(Rt+1+αV(st+1)−V(st))
其中Rt+1+γV(St+1)被称作TD目标
σt=V(st)←V(st)+γ(Gt−V(st))被称作TD误差。
怎么计算呢,来看下这个例子:
假设我们得到了八个经验样本,其中A,0代表经历状态A,获得收益0:
A,0,B,0
B,1
B,1
B,1
B,1
B,1
B,1
B,0
现在我们要估算V(A)还有V(B)
如果使用蒙特卡洛方法的话,由于A状态仅仅出现了1次而且这一次收益为0,所以V(A)=0
如果使用的是时间差分方法:
P^as,s′=1N(s,a)∑k=1K∑t=1Tk1(skt,akt,skt+1=s,a,s′)
R^as,a=1N(s,a)∑k=1K∑t=1Tk1(skt,akt=s,a)
其中1(skt,akt,skt+1=s,a,s′)代表由状态s经由动作a变化为状态s′的次数,依据题目条件,其实可得得到状态转化关系如图
这样,A状态的收益就等于B状态的收益乘以衰减因子。而B状态收益为0.75.故而A状态的收益最终会收敛到0.75γ
时间差分学习更加充分的利用了马尔科夫过程的性质,从而显得更加有效率。而蒙特卡洛方法其实并不限定在马尔科夫过程中使用,响应的由于限制更小效率也更低。
4.总结:
蒙特卡洛方法需要从一个完整的经验数据中学习,但是马尔可夫性并没有很强的要求时间差分方法可以通过自举的形式从经验片段中迭代进行学习,但是要求数据有一阶马尔科夫性质
动态规划方法将有限步数的动作通过穷举的方法寻求最优,但是需要知道模型各个状态之间的转移概率
相关文章推荐
- Servlet与JSP九大内置对象的关系
- JavaScript:样式
- 《将博客搬至CSDN》
- 项目起不来解决方案
- windows共享问题
- 项目-两个成员的类模板将类声明改为类模板声明,使得数据成员data1和data2可以是任何类型
- c++上机实验7-项目2-最大公约和和最小公倍数
- 如何发布带静态资源的库——android 篇
- codeforces 258C Little Elephant and LCM 组合数学 枚举
- iOS 之 arc4random() 和 arc4random_uniform()的区别
- java 发送http json请求
- 怎样买书更便宜
- 使用MVC过滤器保存操作日志
- 学术诚信与职业道德
- 继承+super+final的例子
- 在Mac的terminal下连接 SMB 共享的三种方法
- ubuntu 默认防火墙安装、启用、查看状态
- 如何在代码中减少if else语句的使用
- oc 中代码块中局部变量与全局变量、全局静态变量
- 强化学习基本方法(二)