潮科技行业入门指南 | 深度学习理论与实战:提高篇(15)—— 强化学习简介 (一)
Agent的目标是最大化长期的 Reward 累加值,下面我们来形式化的定义这个累加值——回报。假设 t 时刻之后的 Reward 是 ,+1,…,我们期望这些 Reward 的和最大。由于环境(可能)是随机的,而且 Agent 的策略也(可能)是随机的,因此 Agent 的目标是最大化 Reward 累加和的期望值。回报 定义如下: 其中 T 是最后的时刻。有些任务会有一些结束的状态,从任务的初始状态到结束状态,我们称之为一个 episode。比如下象棋,从开始下棋到最终分出胜负(或者和棋)一局游戏结束就叫一个 episode。如果我们开始一个新的 episode,比如下棋重新开始一局,那么 Agent 的状态会重置到初始化状态,而且新的一局和上一局是没有关系的。除了 episode 的任务之外,还有一种任务没有结束状态,会一直继续下去,也就是 =∞。 由于未来的不确定性,我们一般会对未来的 Reward 进行打折 (Discount)。这很好理解,眼前的 Reward 的是确定的,拿到手再说,未来的 Reward 不确定因素太多,所以要打折。因此我们可以定义打折后的回报(Discounted Return)如下: 其中γ是一个参数,0≤≤1 叫做打折率(Discount Ratio)。如果 <1 并且 Reward 是有界的,那么无穷项的和是收敛的。如果 =0,则 Agent 只考虑当前 t 时刻的 Reward,而随着 趋近于 1,则未来的 Reward 越来越重要,当 =1 时,未来的 Reward 和当前的一样重要。回报 有如下的递归公式: 马尔科夫属性 在强化学习里,Agent 根据状态来决定采取什么样的行为,而状态是来自环境的一个信号 (Signal)。状态可以来自 Agent 的传感器的测量 (Sensory Measurements),也可以是这些原始测量的复杂处理。可以是当前时刻的传感器信号,也可以包含以前的信号。理想的,我们期望状态信号能够紧凑的压缩过去所有的信息,它能够保留所有相关的信息而尽量丢弃无关的信息。这通常要求状态不仅包含当前时刻的信号,还可能包含之前的一些信息,当然通常不需要所有过去的信息。如果一个状态信号包含了所有相关的信息,那么就叫它具有马尔科夫属性 (Markov Property)。比如下象棋,当前的局面(包括所有棋子的位置和谁走下一步棋)包含了所有的信息。不管是先走车再走马还是先走马再走车,总之它们到达了相同的局面。因此通常马尔科夫属性通常与具体的“路径”无关。下面我们来形式化的定义马尔科夫属性。 我们假设环境的动力系统 (dynamics) 是如下的随机过程: 也就是在过去所有的历史信息的情况下(0,0,1,…,1,1,),Agent 处于状态 下采取 后环境反馈的新状态是 s’ 并且 reward 是 r 的联合概率分布。如果系统满足马尔科夫属性,那么所有的过去历史信息都压缩在 里了,因此给定 的条件下与过去的历史无关,因此满足马尔科夫属性的系统的动力系统可以简化为如下公式: 如果环境具有马尔科夫属性,那么在给定当前状态和行为的条件下我们可以使用上式预测下一个状态和Reward(的概率)。通过不断迭代的使用这个公式,我们可以(精确的)计算当前状态的期望回报。 图:Atari Broke游戏 比如上图 Atari Broke 游戏,玩法就是用下面的挡板把球反弹回去,然后碰掉上方的格子,每碰掉一个格子就会有加分(Reward),如果所有格子都碰掉了或者挡板没有接到球让它落入屏幕下方就算游戏结束。玩家的目标就是获得更多的得分。 如果我们分析这个游戏的环境,假如我们把当前帧的图像作为当前的状态,那么它是否是马尔科夫的呢?似乎不行,因为一幅图像只有今天的信息,可能有两个状态图像相同但是球速可能不同。我们可以把当前帧和前一帧图像作为当前的状态,假设球是匀速直线运动的(在没有碰撞的时候是这样的),那么根据两帧的球的位置可以计算出其速度来。这样就可以大致认为它是具有马尔科夫属性的了。 马尔科夫决策过程(Markov Decision Processes) 满足马尔科夫属性的强化学习叫做马尔科夫决策过程,如果状态空间和行为空间是有限的,那么它就叫有限马尔科夫决策过程。一个马尔科夫决策过程完全由环境的当前状态决定,我们再次重复一下这个重要公式: 有了上面的公式,我们可以计算关于环境的任何信息(也就是说环境完全由这个公式确定)。比如我们可以计算某个特点状态 s 和行为 a 的期望 reward 如下: 上面的公式直接根据期望的定义推导出来,我们这里简单的推导一下,后面类似的地方就略过了。 同样我们可以得到状态转移概率: 以及给定当前 s、当前 a 和下一个 s’ 条件时期望的 Reward: 价值函数(Value Function) 很多强化学习方法会涉及求状态的价值函数(或者 State-Action 对的价值函数)。这个函数计算Agent 处于这个状态(或者 Agent 处于状态 s 并且采取行为 a)到底有多好。比如下棋的时候我们会思考如果我们处于某个局面(Position)到底是好是坏,从而采取 Action 引导局面向这个好的局面发展或者避开不好的局面。这里的“好”指的是在这个状态下 Agent 获得回报的期望值,当然这个期望值是与 Agent 的策略(Policy)紧密相关的,因此价值函数指的是在某个策略下的价值函数。 回忆一下,策略是一个从状态 s∈S, Action ∈A(s) 到概率 (|) 的映射。我们把状态 s 时策略 的价值,也就是 Agent 处于状态 s,并且使用策略 ,它所能得到的回报的期望值,定义为() 。它的形式化定义是: 这里 [·] 代表 Agent 使用策略 来采取行为时随机变量的期望值。如果有终止状态,我们定义其价值函数为零。我们把函数 叫做策略 的状态价值函数(State Value Function)。 类似的我们可以定义(,) ,在状态 s 下采取 Action a 的价值,其形式化定义为: 我们把 叫做策略 的行为价值函数(Action Value Function)。 (编辑:温州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |