2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 【李宏毅-强化学习笔记】一 深度强化学习surface

【李宏毅-强化学习笔记】一 深度强化学习surface

时间:2019-02-18 18:54:51

相关推荐

【李宏毅-强化学习笔记】一 深度强化学习surface

B站 听课笔记,讲师:台大教授李宏毅

这篇博客是对强化学习形成基本的了解,后面会深入学习。

一、理解:

感性理解:假如我们现在在打一场仗,那么战争形势是瞬息万变的,指战员需要根据战争形态实时做出决策,有时进攻有时撤退;有时佯攻,有时主攻,这都是为了战争最后的胜利。现在假设战争打赢了,那么指挥员自然而然就强化这场战争中的一系列决策过程,当再次遇到相同的战争形态,那么之前的应对方式就被强化。也许这不是最优解,但是是可行解。强化学习就是学习把仗打赢,而且战利品越多越好。

建模分析

图1.1 强化学习结构图

如图1.1所示,Agent从环境Environment获取一个观测值observation或者是state作为输入,模型π将会采取一个行为Action,然后环境反馈给agent一个奖励值Reward,模型的目标是获取最大的奖励值。

二、强化学习的分类:

1、model_based:policy_based,value_based,A3C

2、Model_free

三、强化学习的特点:

**1、Reward delay:**奖励延迟,就是有些奖励是没有即时奖励的即Rt =0,但是为了整个过程(episode)奖励最大化,这些action又是不可省略的,这就要求我们的agent有远见可以通过考虑累计奖励的方式使agent有远见。

**2、序列决策:**前面的action会影响后面action,即强化学习是一个序列决策过程。这要求我们的agent既要exploration又要exploitation,求稳是从经验学习,求新是为了找到更好的agent。

四、强化学习的实践分析

下面介绍强化学习的三个步骤:

4.1 确定agent的形式

传统的方法是用look-up table,但是穷举是一大困难,如果用神经网络,例如CNN、RNN等来建模,那么就是我们后面要介绍的深度强化学习。以space invade游戏为例,采用CNN来建模如图4.1所示,agent看到pixel,决定是要左移、右移、或者开火,值得注意的是,agent不一定采取probity最大的action,而是以一定的概率take某个action。这也是exploitation的基础。

图4.1 space invade的agent

4.2 评价方法

τ用来表示observation,action,reward构成的连续决策序列,即:

如果是玩游戏的话,τ就完整记录了游戏各个时间的信息。那么就可以计算整个episode的奖励和。

那么R的期望值就是:

从理论分析的角度,要计算期望值要遍历所有的序列τ并求出概率,然后按照公式计算,但是这往往是不可能的,所以用采样的方法来逼近。例如让agent玩游戏N次,那么期望值就可以记成:

这种将加权求和简化为采样的方法后面还会遇到。这样我门就可以让agent玩游戏N次,然后计算奖励的期望值。

4.3 优化

符号说明:

上面的问题可以归结为奖励最大化问题,即:

就是说通过调整agent的参数使得最后获取的奖励最大。那么自然而然要对奖励的期望值求微分:

继续将过程τ拆分:

理解:根据参数的更新规则结合后面两个等式可以看出,当某个过程的奖励值R(τn)为正的时候,那么这个过程的决策将被强化,否则被削弱。除以概率可以消除对多数的偏好,因为多数的奖励不一定是最大的。

当奖励值总是为非负的时候,带来的问题是被采样的过程将被强化,没有被采样的过程相当于被削弱了,缓解的办法是设置一个baseline。

五、policy gradient

结合上一节,可知agent的更新规则为:

对微分部分的理解

概率值p是一个0到1之间的正数。log值为负,但是对数函数的导数处处都是为正的。

假设奖励值为正,就进入强化通道,意味着在St情况下,agent就朝着at进了一步,前进的距离正比于学习率、奖励值,反比于action的概率,即越是罕见的action,步进值越大,因为log x越接近0,导数越大、获得的奖励越多步进值越大。

假设奖励值为负,就进入弱化通道,意味着在St情况下,agent就朝着at反方向进了一步,同样的,前进的距离正比于学习率、奖励值、action的概率。

和普通深度学习方法的对比:以图片分类为例如图5.1所示。

图5.1 policy gradient 理解

对比分析:

上图就是用CNN来做分类,假设label为left,那么根据交叉熵,由于y-hat只有一维为1其余为0,相当于最大化log(“left”|s)。其更新公式如图片最下方所示。

对于深度学习假设迭代N圈,共有T个图片,对于强化学习假设迭代M圈,每一圈的奖励期望来源于N圈,那么两种情况下agent在训练过程中的总步进值。

可以看出,强化学习的创新点在于加入奖励值,这个奖励值是第N次决策过程的整体评估,如果agent的效果好,那么就步进;如果效果不好就后退。假如我们把游戏过程的画面抽帧,从微观的角度来讲,深度学习对应的公式考虑的是个体,这些图片的顺序无论怎么调整,都不改变最后的模型参数;强化学习考虑的是整个序列,模型的效果和图片出现的顺序是有绝对关联的。现在我对强化学学习的了解还少,暂时的结论是强化学习考虑了条件、时序、环境。

至此有如下问题:

1、强化学习和RNN都是时序模型,二者相比如何?

2、对于游戏的例子,如何对过程划分即时间片的分割问题?

六、Value based-learning a critic

前面介绍了actor的学习过程,下面介绍value based的内容,就是学习一个critic,critic不像actor那样输出action,而是评估当前的actor(用π表示)看到某个scenario后,episode剩余部分所能得到的reward总和的期望值。举例来讲,就是面对同一个问题,评估不同的人对这个问题的解决效果。即critic是和actor关联在一起的。

critic就是评估某个agent适不适合当前的问题。那么,如何去训练出一个critic呢?主要有两种方法:

1、monte-carlo based approach即蒙特卡洛方法

2、Temporal-difference approach

6.1、Monte-carlo based approach

就是让机器去看曾经的游戏过程,这样agent就知道当看到Sa时,将来能得到的奖励值的期望值。过程如下图所示:

图6.1基于蒙特卡洛的critic

可以看出基于蒙特拉罗的方法,需要考虑整个episode的奖励值,当episode很长的时候,这会让学习变得很慢,下面的方法可以解决这个问题。

6.2、Temporal-difference approach

只要考虑连续的两个scenario,就可以直接训练模型,框架如图2所示:

图6.2 Temporal-difference的critic

以reward为界,把前后两个scenario作为输入进行评估,那么两个输出的差值就是该奖励值reward。

两种方法的对比:

按照第一种方法,Vπ(Sb)=6/8=3/4; Vπ(Sa)=0#统计量的计算,考虑所有的episode。按照第二种方法,如果设V(end)=0的话,Vπ(Sb) = 3/4=Vπ(Sa)。计算结果之所以不一样,在于Sa比较罕见,而对于罕见的画面,蒙特卡洛方法在特殊里考虑特殊,差分方法将特殊融入到常见中,我认为差分方法更加合理。毕竟由episode可以看出Sb后获得奖励的概率是很大的,所以前置的Sa也应该有奖励。

6.3、State-action value function

另外一种critic,不是评估agent在该scenario后可以得到多少分,而是给出在不同的action后agent可以获得的cumulated reward。一般的critic是评估形势,本方法是给出选择,如图3所示。

图3 state-action value function

七、Q_learning

用抄袭者来形容Q_learning我觉得很合适,在形式化的表述之前我们可以用一个例子来类比。假设有两个学生在做一套选择题,学生A在做题之前刷了很多试卷,所以每次看到题目,他都要进行一番推理分析,然后作答,学生B什么也不会,他每次都问A:这道题目最有可能选哪个,我们假设A每次都诚实的告诉他。那么我们可以下一个结论,B的分数大于等于A。其具体表述如图4所示。

图7.4 Q_learning的内涵

八、Actor-Critic

这一块还有后面的Pathwise Derivative Policy Gradient没听懂,先挖个坑。

九、Inverse Reinforcement Learning (IRL)

模仿学习的一种,一般的强化学习都是基于reward function,然后来学一个actor使得可以获取最大的奖励值。但是有很多领域难以指定reward function,例如chit-bot,自动驾驶。这时候可以采用IRL的技术。举一个例子,现在去教机器倒水,由于机械臂的活动空间非常大,那么制定规则很难,这时,我们可以先手动指导机器倒水,然后让机器去模仿就可以了。RL和IRL的对比如图9.1所示。

图9.1 RL和IRL的对比

图9.2 IRL用于电玩的示意图

图9.2是IRL用于电玩的示意图,首先,已经有N笔expert的游戏记录,然后让actor也玩N次游戏,制定一个reward function 使得老师的分数高,然后不断的调整actor和reward function。

至此,导论部分结束。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。