炼数成金 门户 商业智能 自然语言处理 查看内容

HFL技术分享 #5 | 强化学习基础(上)

2019-5-31 15:11| 发布者: 炼数成金_小数| 查看: 26951| 评论: 0|原作者: Jeff|来自: 哈工大讯飞联合实验室

摘要: 强化学习是机器学习的一大分支,介于监督学习与无监督学习之间。与其他机器学习相比,有一些明显的特点,是一种序列决策过程。强化学习应用范围很广,比如西洋双陆战棋的胜利、直升飞机上的特技表演、金融中证券投资 ...

工具 模型 机器学习 计算机 强化学习 函数

引言
强化学习是机器学习的一大分支,介于监督学习与无监督学习之间。与其他机器学习相比,有一些明显的特点,是一种序列决策过程。

强化学习应用范围很广,比如西洋双陆战棋的胜利、直升飞机上的特技表演、金融中证券投资组合的管理、发电厂的控制、实现机器人行走等等,强化学习的思路也被应用到很多的游戏设计中,并且在众多游戏上战胜人类。

本文尝试从基本概念出发,给大家讲解一下强化学习的一般背景、具体的定义形式等,让大家对强化学习有一个初步的了解;随后,我也会重点介绍马尔科夫相关知识,让大家体会强化学习的马尔科夫决策过程;我们由浅入深,深刻剖析强化学习的值函数与动作值函数的定义与形式,完成贝尔曼方程的详细推导过程,让大家对强化学习有一个比较深刻的体会;我们还会介绍目前常用的强化学习的算法以及与深度学习结合的DQN等。

01 背景介绍
强化学习的灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励和惩罚的刺激下,逐步形成对刺激的预期反应,产生能获得较大利益的习惯性行为。

按照DeepMind的David Silver,也就是AlphaGo的第一作者所言:DL + RL = AI DL,深度学习给了计算机“神经网络大脑”,RL给了计算机学习机制。这两者结合起来,就能创造智能!

强化学习的主体与环境基于离散的时间步长相作用。在每一个时间t,主体接收到一个观测Ot,通常其中包含奖励Rt 。 然后,它从允许的集合中选择一个动作at,然后送出到环境中去。环境则变化到一个新的状态st+1,然后决定了和这个变化(st,at,st+1)相关联的奖励Rt+1。强化学习主体的目标,是得到尽可能多的奖励。主体选择的动作是其历史的函数,它也可以选择随机的动作。

将这个主体的表现和自始至终以最优方式行动的主体相比较,它们之间的行动差异产生了“悔过”的概念。如果要接近最优的方案来行动,主体必须根据它的长时间行动序列进行推理,例如,要较大化我的未来收入,我较好现在去上学,虽然这样行动的即时货币奖励为负值。

一个通俗的解释,我想成为某某一样的学者,我怎么做呢?
我要以他们为学习目标,首先考上一个大学,但是中途却沉迷于打游戏,我仔细想了下,这样离我的目标就越来越远了;于是,我放弃了游戏,转向读书,以优异的成绩毕业了,最终实现了我的目标,成为了像他们一样的人。
总之,强化学习就像人一样在每个事件片段做着他认为对的决策。

02 定义
什么是强化学习?
定义: Reinforcement learning is learning what to do ----how to map situations to actions ---- so as to maximize a numerical reward signal。强化学习(reinforcement learning, RL)又叫做增强学习,是近年来机器学习和智能控制领域的主要方法之一。强化学习的关注点是:一个agent如何在与环境的交互中,采取一系列的行为,从而获得较大的回报。通过强化学习,一个智能体应该知道在什么状态下应该采取什么行为。RL是从环境状态到动作的映射的学习,我们把这个映射称为策略。

那么强化学习与监督学习有什么区别吗?
区别主要体现在两个方面,一个是强化学习是一种试错学习,由于没有直接的指导信息,智能体要不断与环境进行交互,通过试错的方式来获得较佳策略;另一个方面是,强化学习有延迟回报,强化学习的指导信息很少,而且往往是在事后(最后一个状态)才给出的,这就导致了一个问题,就是获得正回报或者负回报以后,如何将回报分配给前面的状态。

03 Markov相关知识
强化学习,包含了动作、状态等一些的变化与转换,是一种马尔科夫变化过程。因此,为了了解强化学习的原理,我们有必要首先讲解一下马尔科夫相关知识。马尔科夫相关图例如图1所示:

图 1:马尔科夫图例

我们首先了解一下马尔科夫的相关基本概念。
什么是马尔科夫性?
如果一个过程的“将来”仅依赖“现在”而不依赖“过去”,则此过程具有马尔可夫性,或称此过程为马尔可夫过程:X ( t +1) = f ( X ( t ) )。

什么是马尔科夫链?
时间和状态都离散的马尔科夫过程称为马尔科夫链,记作{Sn = S(n), n = 0,1,2,…},条件概率P{Sj|Si} 为马氏链在时刻m处于状态Si条件下,在时刻m+1转移到状态Sj的转移概率。

什么是马尔科夫模型(MM)?
MM是一个输出符号序列的统计模型,具有N个状态S1,S2,...,Sn它按一定的周期从一个状态转移到另外一个状态,每次转移时,输出一个符号。如图2所示:

图 2:马尔科夫模型示例

在图2中,一个状态可以向其他任何状态按照一定的概率进行转移,转移的过程中输出一个显式的符号。我们用一个关于天气三状态转移图示进行说明,如图3所示:

图 3:天气三状态转移图例

从图3可以看出,一个状态可以按照一定的概率转移到另外的所有状态,并且转移概率之和为1,状态转移的过程中,输出了显示的符号,这就是一个马尔科夫模型的简易示例。

我们做个测试,假设,已知一天(t=1)的天气是晴(S3),问:其后7天的天气为“晴,晴,雨,雨,晴,多云,晴”的概率是多少?
我们知道,我们看到的观察序列是,O={S3,S3,S3,S1,S1,S3,S2,S3},对应时间 t=1,2,3,4,5,6,7,8,所以,最终的概率为:

根据上面的简单介绍,我们知道了什么是马尔科夫模型,那么什么又是隐马尔科夫模型呢?
一般情况下,只能观察到输出符号序列(ab),而不能观测到状态之间如何转移(状态转移概率)和状态的分布(状态的概率),所以称为隐藏的马尔可夫模型。我们简单举一个例子,如图4所示:

图 4:隐马尔科夫模型示例

我们有N个缸,每个缸中有不同颜色的球(M),由一组概率分布来描述;根据某个初始概率分布,随机选择一个缸,例如第i个缸,再根据这个缸中彩色球颜色的概率分布,随机选择一个球,记O1,再把球放回缸中;根据缸的转移概率,选择下一个缸,例如第j个缸。再根据这个缸中彩色球颜色的概率分布,随机选择一个球,记O2,再把球放回缸中;最后得到描述球颜色的序列O1 O2 ……,成为观察值序列,但每次选取的缸和缸之间的转移并不能直接观察。
假如我们现在观察到的序列是“绿绿红黄黄蓝 ......黄”,我们是否可以知道挑选的缸的顺序呢?

这里,缸就是隐藏状态,我们需要先知道挑选了哪个缸,然后从缸中挑选一个球,也就是说,在上帝视角来看,这是一个二重随机过程。我们先以一重随机挑选缸,然后再用二重随机挑选球,才能产生最终的观察效果,缸这个一重随机,被隐藏掉了。
我们继续使用天气的例子进行说明讲解。如图5所示:

图 5:隐马尔科夫模型示例

假设我们看到了输出符号序列是aab,我们如何计算aab的输出概率?
从图5中我们可以发现,总共有三条路径可以输出aab的观察序列,分别为:

由于是隐HMM模型,不知输出aab时,到底是经过了哪一条不同状态组成的路径;因此,求aab的输出概率时,将每一种可能路径的的输出概率相加得到的总的概率值作为aab的输出概率值:0.036+0.018+0=0.054。

以上讲解了马尔科夫模型和隐马尔科夫模型,我们的最终目的就是为了迁出马尔科夫决策过程,因为,这是理解强化学习的重要基础,话不多说,直接上定义。

什么是马尔科夫决策过程?
马尔科夫决策过程包含一个四元组,分别是状态集合、动作集合、状态转移概率以及回报函数。S表示状态集合,si表示第i步的状态,A表示动作集合,ai表示第i步的动作选择,Psa表示状态转移概率,表示在当前状态S,经过动作a, 转移到其他状态的概率分布情况,R表示回报函数,如果一组(s,a)转移到了下一个状态,那么回报函数可记为r(s,a)。这里回报函数分为确定性回报和不确定性回报,不确定性回报需用期望表示。具体示例如图6所示:

图 6:马尔科夫决策过程示例

某个agent的初试状态为S0,从A中挑选一个动态a0,执行过后,agent按照Psa概率转移到下一个S1状态,然后继续执行动作a1,......,直至过程结束。

04 值函数与动作值函数
增强学习学到的到底是什么?
增强学习学习到的就是一个从环境状态到动作的映射,也就是说是一种行为策略。我们记为策略π,S→A。

增强学习的特点是什么?需要如何改善?
增强学习是一种延迟回报的学习,往往到任务的最后才有所评判,有所反馈,之前所有状态的立即汇报均为0,所以对于之前的状态s和动作a, 立即回报无法说明策略的好坏,也就无从选择当前最优动作。我们需要定义值函数(value function),来表示当前状态下策略π的长期影响,也就是说策略π进行前瞻性搜索后的长期回报,用以指导action的最优走向。

常见的值函数有哪些形式?
第一种形式,策略π,未来有限步期望立即回报总和;

第二种形式,策略π,未来期望立即回报的平均值; 

第三种形式,策略π,最常用的值函数形式,加入折扣因子,这种也是最常见,使用最广泛的值函数形式。

我们将第三种值函数的形式展开,如下所示,其中,π表示的是一种策略:

 
什么是动作值函数?
给定当前状态s和当前动作a,在未来遵循策略π,那么,系统将以既定概率转向下一个状态,直至结束。

动作值函数的定义形式:

将期望展开,一般形式如下所示:

下面,我们围绕一个示例讲解值函数与Q函数。
如图7所示是一个格子世界,我们假设agent从左下角的start点出发,右上角为目标位置,称为吸收状态(Absorbing state),对于进入吸收态的动作,我们给予立即回报100,对其他动作则给予0回报,折扣因子γ的值我们选择0.9。

为了方便描述,记第 i 行,第j列的状态为sij, 在每个状态,有四种上下左右四种可选的动作,分别记为au ,ad ,al ,ar(up,down,left,right首字母),并认为状态按动作a选择的方向转移的概率为1。

图 7:值函数与Q函数讲解示例图

注意,由于状态转移概率为1,每对(s,a)对应了一个s'状态,reward函数r(s'|s,a)可以简记为r(s,a)。
每个格子代表一个状态s,箭头则代表动作a,旁边的数字代表立即回报,可以看到只有进入目标位置的动作获得了回报100,其他动作都获得了0回报。即r(s12,ar) = r(s23 ,au) =100。如图8及图9所示:

图 8:值函数与Q函数讲解示例图

图 9:值函数与Q函数讲解示例图

我们按照值函数的计算公式,得到每个状态即单元格的值函数情况,如图10所示:

图 10:值函数与Q函数讲解示例图

我们把计算公式罗列如下:

最终得到了每个状态即格子的值函数,我们将Q值函数的公式代入,得到Q函数的值:

具体示例如图11所示:

图 11:值函数与Q函数讲解示例图

从以上示例我们可以很简单清楚的看出,值函数的目的就是为了帮助你选择兼顾远距离的较高价值动作,通过一定的动态规划思路,达到一定程度的自主化选择目的。

声明:本文版权归原作者所有,文章收集于网络,为传播信息而发,如有侵权,请联系小编及时处理,谢谢!

欢迎加入本站公开兴趣群
商业智能与数据分析群
兴趣范围包括:各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754

鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

 

GMT+8, 2019-9-18 04:43 , Processed in 0.348741 second(s), 24 queries .