花钱做网站注意些什么,app定制开发网络公司,装修工人找活平台,河南建设部网站本文讨论的内容参考自《神经网络与深度学习》https://nndl.github.io/ 第14章 深度强化学习
深度强化学习
强化学习#xff08;Reinforcement Learning#xff0c;RL#xff09;#xff0c;也叫增强学习#xff0c;是指一类从与环境交互中不断学习的问题以及解决这类问题…本文讨论的内容参考自《神经网络与深度学习》https://nndl.github.io/ 第14章 深度强化学习
深度强化学习
强化学习Reinforcement LearningRL也叫增强学习是指一类从与环境交互中不断学习的问题以及解决这类问题的方法强化学习可以描述为一个智能体从与环境交互中不断学习以完成特定目标比如取得最大奖励值。和深度学习类似强化学习中的关键问题也是贡献度分配问题即一个系统中不同的组件component对最终输出结果的贡献或影响每一个动作并不能直接得到监督信息需要通过整个模型的最终监督信息奖励得到并且有一定的延时性。 强化学习和监督学习的不同在于强化学习问题不需要给出“正确”策略作为监督信息只需要给出策略的延迟回报并通过调整策略来取得最大化的期望回报。
强化学习问题
典型例子
强化学习广泛应用于很多领域比如电子游戏、棋类游戏、迷宫类游戏、控制系统、推荐等。
强化学习定义
在强化学习中有两个可以进行交互的对象智能体和环境。 1智能体Agent可以感知外界环境的状态State和反馈的奖励Reward并进行学习和决策。智能体的决策功能是指根据外界环境的状态来做出不同的动作而学习功能是指根据外界环境的奖励来调整策略。 2环境是智能体外部的所有事物并受智能体动作的影响而改变其状态并反馈给智能体相应的奖励。 强化学习的基本要素包括 1状态 s s s是对环境的描述可以是离散的或连续的其状态空间为 S S S。 2动作 a a a是对智能体行为的描述可以是离散的或连续的其动作空间为 A A A。 3策略 π ( a ∣ s ) \pi (a|s) π(a∣s)是智能体根据环境状态 s s s来决定下一步动作 a a a的函数。 4状态转移概率 p ( s ′ ∣ s , a ) p(s|s,a) p(s′∣s,a)是在智能体根据当前状态 s s s作出一个动作 a a a之后环境在下一个时刻转变为状态 s ′ s s′的概率。 5即时奖励 r ( s , a , s ′ ) r(s,a,s) r(s,a,s′)是一个标量函数即智能体根据当前状态 s s s做出动作 a a a之后环境会反馈给智能体一个奖励这个奖励也经常和下一个时刻的状态 s ′ s s′有关。 策略 智能体的策略Policy就是智能体如何根据环境状态 s s s来决定下一步的动作 a a a通常可以分为确定性策略Deterministic Policy和随机性策略Stochastic Policy两种。 确定性策略是从状态空间到动作空间的映射函数 π : S − A \pi : S - A π:S−A。随机性策略表示在给定环境状态时智能体选择某个动作的概率分布 通常情况下强化学习一般使用随机性策略。随机性策略可以有很多优点1在学习时可以通过引入一定随机性更好的探索环境2随机性策略的动作具有多样性这一点在多个智能体博弈时也非常重要。采用确定性策略的智能体总是对同样的环境做出相同的动作会导致它的策略很容易被对手预测。
马尔可夫决策过程
为简单起见我们将智能体与环境的交互看作离散的时间序列。智能体从感知到初始环境 s 0 s_0 s0开始然后决定做一个相应的动作 a 0 a_0 a0环境相应地发生改变到新的状态 s 1 s_1 s1并反馈给智能体一个即时奖励 r 1 r_1 r1然后智能体又根据状态 s 1 s_1 s1做一个动作 a 1 a_1 a1环境相应改变为 s 2 s_2 s2并反馈奖励 r 2 r_2 r2。这样的交互可以一直进行下去。 其中 r t r ( s t − 1 a t − 1 s t ) r_t r(s_{t-1}a_{t-1}s_t) rtr(st−1at−1st)是第 t t t时刻的即时奖励。图14.2给出了智能体与环境的交互。 智能体与环境的交互过程可以看作一个马尔可夫决策过程。马尔可夫过程Markov Process是一组具有马尔可夫性质的随机变量序列 s 0 , s 1 , . . . , s t ∈ S s_0,s_1,...,s_t \in S s0,s1,...,st∈S其中下一个时刻的状态 s t 1 s_{t1} st1只取决于当前状态 s t s_t st 其中 p ( s t 1 ∣ t ) p(s_{t1}|t) p(st1∣t)称为状态转移概率 ∑ s t 1 ∈ S p ( s t 1 ∣ s t ) 1 \sum_{s_{t1} \in S} p(s_{t1}|s_t)1 ∑st1∈Sp(st1∣st)1。 马尔可夫决策过程在马尔可夫过程中加入一个额外的变量动作 a a a下一个时刻的状态 s t 1 s_{t1} st1不但和当前时刻的状态 s t s_t st相关而且和动作 a t a_t at相关 其中 p ( s t 1 ∣ s t , a t ) p(s_{t1}|s_t,a_t) p(st1∣st,at)为状态转移概率。 图14,3给出了马尔可夫决策过程的图模型表示。 给定策略 π ( a ∣ s ) \pi(a|s) π(a∣s)马尔可夫决策过程的一个轨迹Trajectory τ s 0 , a 0 , s 1 , r 1 , a 1 , . . . , s T − 1 , a T − 1 , s T , r T \tau s_0,a_0,s_1,r_1,a_1,...,s_{T-1},a_{T-1},s_T,r_T τs0,a0,s1,r1,a1,...,sT−1,aT−1,sT,rT的概率为 证明过程如下
强化学习的目标函数
总回报
给定策略 π ( a ∣ s ) \pi(a|s) π(a∣s)智能体和环境一次交互过程的轨迹 τ \tau τ所收到的累积奖励为总回报Return。 假设环境中有一个或多个特殊的终止状态Terminal State当到达终止状态时一个智能体和环境的交互过程就结束了。这一轮交互的过程称为一个回合Episode或试验Trial。一般的强化学习任务比如下棋、游戏都属于这种回合式任务Episodic Task。 如果环境中没有终止状态比如终身学习的机器人即 T ∞ T\infty T∞称为持续式任务Continuing Task其总回报也可能是无穷大。为了解决这个问题我们可以引入一个折扣率来降低远期回报的权重。折扣回报Discounted Return定义为 其中 γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1]是折扣率。当 γ \gamma γ接近于0时智能体更在意短期汇报而当 γ \gamma γ接近于1时长期回报变得更重要。
目标函数
因为策略和状态转移都有一定的随机性所以每次试验得到的轨迹是一个随机序列其收获的总回报也不一样。强化学习的目标是学习到一个策略 π σ ( a ∣ s ) \pi_{\sigma}(a|s) πσ(a∣s)来最大化期望回报Expected Return即希望智能体执行一系列的动作来获得尽可能多的平均回报。 强化学习的目标函数为 其中 σ \sigma σ为策略函数的参数。
值函数
为了评估策略\pi的期望回报我们定义两个值函数状态值函数和状态-动作值函数。
状态值函数
策略 π \pi π的期望回报可以分解为 其中 V π ( s ) V^{\pi}(s) Vπ(s)称为状态值函数State Value Function表示从状态 s s s开始执行策略 π \pi π得到的期望总回报 其中 τ s 0 \tau_{s_0} τs0表示轨迹 τ \tau τ的起始状态。 为了方便起见我们用 τ 0 : T \tau_{0:T} τ0:T来表示轨迹 s 0 , a 0 , s 1 , . . . , s T s_0,a_0,s_1,...,s_T s0,a0,s1,...,sT用 τ 1 : T \tau_{1:T} τ1:T来表示轨迹 s 1 , a 1 , . . . , s T s_1,a_1,...,s_T s1,a1,...,sT因此有 τ 0 : T s 0 , a 0 , τ 1 : T \tau_{0:T} s_0,a_0,\tau_{1:T} τ0:Ts0,a0,τ1:T。 根据马尔可夫性质 V π ( s ) V^{\pi}(s) Vπ(s)可展开得到 公式(14.18)也称为贝尔曼方程表示当前状态的值函数可以通过下个状态的值函数来计算。 如果给定策略 π ( a ∣ s ) \pi(a|s) π(a∣s)状态转移概率 p ( s ′ ∣ s . a ) p(s|s.a) p(s′∣s.a)和奖励 r ( s , a , s ′ ) r(s,a,s) r(s,a,s′)我们就可以通过迭代的方式来计算 V π ( s ) V^{\pi}(s) Vπ(s)。由于存在折扣率迭代一定步数后每个状态的值函数就会固定不变。
状态-动作值函数
公式(14.18)中的第二个期望是指初始状态为s并进行动作a然后执行策略\pi得到的期望总汇报称为状态-动作值函数 状态-动作值函数也经常称为Q函数Q-Function。 状态值函数 V π ( s ) V^{\pi}(s) Vπ(s)是 Q Q Q函数 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a)关于动作 a a a的期望即 结合公式14.19和公式14.20Q函数可以写为 这是关于Q函数的贝尔曼方程。
值函数的作用
值函数可以看作对策略 π \pi π的评估因此我们就可以根据值函数来优化策略。假设在状态 s s s有一个动作 a ∗ a^{*} a∗使得 Q π ( s , a ∗ ) V π ( s ) Q^{\pi}(s,a^*)V^{\pi}(s) Qπ(s,a∗)Vπ(s)说明执行动作 a ∗ a^* a∗的回报比当前策略 π ( a ∣ s ) \pi(a|s) π(a∣s)要高我们就可以调整参数使得策略中动作 a ∗ a^* a∗的概率 p ( a ∗ ∣ s ) p(a^*|s) p(a∗∣s)增加。
深度强化学习
在强化学习中一般需要建模策略 π ( a ∣ s ) \pi(a|s) π(a∣s)和值函数 V π ( s ) V^{\pi}(s) Vπ(s)和 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a)。早期的强化学习算法主要关注状态和动作都是离散且有限的问题可以使用表格来记录这些概率。但在很多实际问题中有些任务的状态和动作的数量非常多。比如围棋的棋局有KaTeX parse error: Undefined control sequence: \Approx at position 10: 10^{361} \̲A̲p̲p̲r̲o̲x̲ ̲10^{170}种状态动作数量为361。还有些任务的状态和动作是连续的。比如在自动驾驶中智能体感知到的环境状态是各种传感器数据一般都是连续的。动作是操作方向盘的方向(-90度~90度)和速度控制0-300公里/小时也是连续的。 为了有效地解决这些问题我们可以设计一个更强的策略函数比如深度神经网络使得智能体可以应对复杂的环境学习更优的策略并具有更好的泛化能力。 深度强化学习是将强化学习和深度学习结合在一起用强化学习来定义问题和优化目标用深度学习来解决策略和值函数的建模问题然后使用误差反向传播算法来优化目标函数。深度强化学习在一定程度上具备解决复杂问题的通用智能并在很多任务上都取得了很大的成功。
基于值函数的学习方法
值函数是对策略 π \pi π的评估如果策略 π \pi π有限即状态数和动作数都有限可以对所有的策略进行评估并选出最优策略 π ∗ \pi^{*} π∗。 但这种方式在实践中很难实现。假设状态空间 S S S和动作空间 A A A都是离散且有限的策略空间为 ∣ A ∣ ∣ S ∣ |A|^{|S|} ∣A∣∣S∣往往也非常大。 一种可行的方式是通过迭代的方法不断优化策略直到选出最优策略。对于一个策略 π ( a ∣ s ) \pi(a|s) π(a∣s)其 Q Q Q函数为 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a)我们可以设置一个新的策略 π ′ ( a ∣ s ) \pi (a|s) π′(a∣s) 即 π ′ ( a ∣ s ) \pi (a|s) π′(a∣s)为一个确定性的策略也可以直接写为 如果执行 π ′ \pi π′会有 根据公式14.25我们可以通过下面方式来学习最优策略先随机初始化一个策略计算该策略的值函数并根据值函数来设置新的策略然后一直反复迭代直到收敛。即将策略更新为每个状态下都选取最优行动的策略 基于值函数的策略学习方法中最关键的是如何计算策略 π \pi π的值函数一般有动态规划或蒙特卡罗两种计算方式。
动态规划算法
从贝尔曼方程可知如果知道马尔可夫决策过程的状态转移概率 p ( s ′ ∣ s , a ) p(s|s,a) p(s′∣s,a)和奖励 r ( s , a , s ′ ) r(s,a,s) r(s,a,s′)我们直接可以通过贝尔曼方程来迭代计算其值函数。这种模型已知的强化学习算法也称为基于模型的强化学习算法这里的模型就是指马尔可夫决策过程。 在模型已知时可以通过动态规划的算法来计算。常用的方法主要有策略迭代算法和值迭代算法。
策略迭代算法
策略迭代算法中每次迭代可以分为两步 1策略评估计算当前策略下每个状态的值函数即算法 14.1 14.1 14.1中的3-6步。策略评估可以通过贝尔曼方程(14.18)进行迭代计算 V π ( s ) V^{\pi}(s) Vπ(s)。 2策略改进根据值函数来更新策略即算法14.1中的7-8步。 策略迭代算法如算法14.1所示。
值迭代算法
策略迭代算法中的策略评估和策略改进是交替轮流进行其中策略评估也是通过一个内部迭代来进行计算其计算量比较大事实上我们不需要每次计算出每次策略对应的精确的值函数也就是说内部迭代不需要执行到完全收敛。 值迭代算法将策略评估和策略改进两个过程合并来直接计算出最优策略最优策略 π ∗ \pi^{*} π∗对应的值函数称为最优值函数其中包括最有状态值函数 V ∗ ( s ) V^{*}(s) V∗(s)和最优状态-动作值函数 Q ∗ ( s , a ) Q^{*}(s,a) Q∗(s,a)它们之间的关系为 根据贝尔曼方程我们可以通过迭代的方式来计算最优状态值函数 V ∗ ( s ) V^{*}(s) V∗(s)和最优状态-动作值函数 Q ∗ ( s , a ) Q^{*}(s,a) Q∗(s,a) 这两个公式称为贝尔曼最优方程。 值迭代算法通过直接优化贝尔曼最优方程14.27迭代计算最优值函数值迭代算法如算法14.2所示。 基于模型的强化学习算法实际上是一种动态规划方法。在实际应用中有以下两点限制 1要求模型已知即要给出马尔可夫决策过程的状态转移概率 p ( s ′ ∣ s , a ) p(s|s,a) p(s′∣s,a)和奖励函数 r ( s , a , s ′ ) r(s,a,s) r(s,a,s′)。但实际应用中这个要求很难满足。如果我们事先不知道模型那么可以先让智能体与环境交互来估计模型即估计状态转移概率和奖励函数。一个简单的估计模型的方法为R-max通过随机游走的方法来探索环境。每个随机一个策略并执行然后收集状态转移和奖励的样本。在收集一定的样本后就可以通过统计或监督学习来重构出马尔可夫决策过程。但是这种基于采样的重构过程的复杂度也非常高只能应用于状态数非常少的场合。 2效率问题即当状态数量较多时算法效率比较低。但在实际应用中很多问题的状态数量和动作数量非常多。比如围棋有361个位置每个位置有黑子、白子或无子三种状态。动作数量为361。不管是值迭代还是策略迭代以当前计算机的计算能力根本无法计算。一种有效的方法是通过一个函数比如神经网络来近似计算值函数以减少复杂度并提高泛化能力。
蒙特卡罗方法
在很多应用场景中马尔可夫决策过程的状态转移概率和奖励函数都是未知的。在这种情况下我们一般需要智能体和环境进行交互并收集一些样本然后再根据这些样本来求解马尔可夫决策过程最优策略。这种模型未知基于采样的学习算法也称为模型无关的强化学习算法。 Q Q Q函数 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a)是初始状态为 s s s并执行动作 a a a后所能得到的期望总回报 其中 τ s 0 s , a 0 a \tau_{s_0s,a_0a} τs0s,a0a表示轨迹 τ \tau τ的起始状态和动作为 s , a s,a s,a。 如果模型未知 Q Q Q函数可以通过采样来进行计算这就是蒙特卡罗方法。对于一个策略 π \pi π智能体从状态 s s s执行动作 a a a开始然后通过随机游走的方法来探索环境并计算其得到的总回报。假设我们进行 N N N次试验得到 N N N个轨迹 τ ( 1 ) , τ ( 2 ) , . . . , τ ( N ) \tau^{(1)},\tau^{(2)},...,\tau^{(N)} τ(1),τ(2),...,τ(N)其总回报分别为 G ( τ ( 1 ) ) , G ( τ ( 2 ) ) , . . . , G ( τ ( N ) ) G(\tau^{(1)}),G(\tau^{(2)}),...,G(\tau^{(N)}) G(τ(1)),G(τ(2)),...,G(τ(N))。 Q Q Q函数可以近似为 在近似估计出 Q Q Q函数 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a)之后就可以进行策略改进。然后在新的策略下重新通过采样来估计 Q Q Q函数并不断重复直至收敛。
利用和探索 但在蒙特卡罗方法中如果采用确定性策略 π \pi π每次试验得到的轨迹是一样的只能计算出 Q π ( s , π ( s ) ) Q^{\pi}(s,\pi(s)) Qπ(s,π(s))而无法计算其他动作 a ′ a a′的 Q Q Q函数因此也无法进一步改进策略。这样情况仅仅是对当前策略的利用exploitation而缺失了对环境的探索exploration即实验的轨迹应该尽可能覆盖所有的状态和动作以找到更好的策略。 为了平衡利用和探索我们可以采用 ϵ − \epsilon- ϵ−贪心法 ϵ − \epsilon- ϵ−greedy Method对于一个目标策略 π \pi π其对应的 ϵ − \epsilon- ϵ−贪心法策略为 这样 ϵ − \epsilon- ϵ−贪心法将一个仅利用的策略转为带探索的策略。每次选择动作 π ( s ) \pi(s) π(s)的概率为 1 − ϵ ϵ ∣ A ∣ 1-\epsilon\frac{\epsilon}{|A|} 1−ϵ∣A∣ϵ其他动作的概率为 ϵ ∣ A ∣ \frac{\epsilon}{|A|} ∣A∣ϵ。 同策略 在蒙特卡罗方法中如果采样策略是 π ϵ ( s ) \pi^{\epsilon}(s) πϵ(s)不断改进策略也是 π ϵ ( s ) \pi^{\epsilon}(s) πϵ(s)而不是目标策略 π ( s ) \pi(s) π(s)这种采样与改进策略相同的强化学习方法叫作同策略On-Policy方法。 异策略 如果采样策略是 π ϵ ( s ) \pi^{\epsilon}(s) πϵ(s)而优化目标是策略 π \pi π可以通过重要性采样引入重要性权重来实现对目标策略 π \pi π的优化。这种采样与改进分别使用不同策略的强化学习方法叫做异策略Off-Policy方法。
时序差分学习方法
蒙特卡罗方法一般需要拿到完整的轨迹才能对策略进行评估并更新模型因此效率也比较低。时序差分学习Temporal-Difference Learning方法是蒙特卡罗方法的一种改进通过引入动态规划算法来提高学习效率。时序差分学习方法是模拟一段轨迹每行动一步或者几步就利用贝尔曼方程来评估行动前的状态的价值。 因此更新 Q ^ π ( s , a ) \hat{Q}^{\pi}(s,a) Q^π(s,a)只需要知道当前状态 s s s和动作 a a a奖励 r ( s , a , s ′ ) r(s,a,s) r(s,a,s′)下一步的状态 s ′ s s′和动作 a ′ a a′。这种策略学习方法称为SARSA算法。 SARSA算法的学习过程如算法14.3所示其采样和优化的策略都是 π ϵ \pi^{\epsilon} πϵ因此是一种同策略算法。为了提高计算效率我们不需要对环境中所有的 s , a s,a s,a组合进行穷举并计算值函数只需要将当前的探索 ( s , a , r , s ′ , a ′ ) (s,a,r,s,a) (s,a,r,s′,a′)中 s ′ , a ′ s,a s′,a′作为下一次估计的起始状态和动作。 时序差分学习是强化学习的主要想学习方法其关键步骤就是在每次迭代中优化 Q Q Q函数来减少现实 r γ Q ( s ′ , a ′ ) r\gamma Q(s,a) rγQ(s′,a′)和预期 Q ( s , a ) Q(s,a) Q(s,a)的差距。这和动物学习的机制十分相像。在大脑神经元中多巴胺的释放机制和时序差分学习十分吻合。在一个实验中通过监测猴子大脑释放的多巴胺浓度发现如果猴子获得比预期更多的果汁或者在没有预想到的时间喝到果汁多巴胺释放大增。如果没有喝到本来预期的果汁多巴胺的释放就会大减。多巴胺的释放来自对于实际奖励和预期奖励的差异而不是奖励本身。 时序差分学习方法和蒙特卡罗方法主要不同为蒙特卡罗方法需要一条完整的路径才能知道其总回报也不依赖马尔可夫性质而时序差分学习方法只需要一步其总回报需要通过马尔可夫性质来进行近似学习。
Q学习
Q学习是一种异策略的时许差分学习方法在 Q Q Q学习中 Q Q Q函数的估计方法为 相当于让 Q ( s , a ) Q(s,a) Q(s,a)直接去估计最优状态值函数 Q ∗ ( s , a ) Q^{*}(s,a) Q∗(s,a)。 与SARSA算法不同 Q Q Q学习算法不通过 π ϵ \pi^{\epsilon} πϵ来选下一步的动作 a ′ a a′而是直接选最优的 Q Q Q函数因此更新后的 Q Q Q函数是关于策略 π \pi π的而不是策略 π ϵ \pi^{\epsilon} πϵ的。 算法14.4给出了 Q Q Q学习的学习过程
深度Q网络
为了在连续的状态和动作空间中计算值函数Q^{\pi}(s,a)我们可以用一个函数 Q ϕ ( s , a ) Q_{\phi}(\bm s,\bm a) Qϕ(s,a)来表示近似计算称为值函数近似。 其中 s , a \bm s,\bm a s,a分别是状态 s s s和动作 a a a的向量表示函数 Q ϕ ( s , a ) Q_{\phi}(\bm s,\bm a) Qϕ(s,a)通常是一个参数为 ϕ \phi ϕ的函数比如神经网络输出一个实数称为Q网络。 如果动作为有限离散的 M M M个动作 a 1 , . . . , a M a_1,...,a_M a1,...,aM我们可以让Q网络输出一个 M M M维向量其中第 m m m维表示 Q ϕ ( s , a m ) Q_{\phi}(\bm s,\bm a_m) Qϕ(s,am)对应值函数 Q π ( s , a m ) Q^{\pi}(s,a_m) Qπ(s,am)的近似值。 我们需要学习一个参数 ϕ \phi ϕ来使得函数 Q ϕ ( s , a m ) Q_{\phi}(\bm s,\bm a_m) Qϕ(s,am)可以逼近值函数 Q π ( s , a m ) Q^{\pi}(s,a_m) Qπ(s,am)。如果采用蒙特卡罗方法就直接让 Q ϕ ( s , a m ) Q_{\phi}(\bm s,\bm a_m) Qϕ(s,am)去逼近平均的总回报 Q ^ π ( s , a m ) \hat{Q}^{\pi}(s,a_m) Q^π(s,am)如果采用时序差分学习方法就让 Q ϕ ( s , a m ) Q_{\phi}(\bm s,\bm a_m) Qϕ(s,am)去逼近 E s ′ , a ′ [ r γ Q ϕ ( s ′ , a ′ ) ] \mathbb{E}_{\boldsymbol{s}^{\prime}, \boldsymbol{a}^{\prime}}\left[r\gamma Q_\phi\left(\boldsymbol{s}^{\prime}, \boldsymbol{a}^{\prime}\right)\right] Es′,a′[rγQϕ(s′,a′)]。 以Q学习为例采用随机梯度下降目标函数为 然而这个目标函数存在两个问题一是目标不稳定参数学习的目标依赖于参数本身二是样本之间有很强的相关性。为了解决这两个问题[Mnih et all., 2015]提出了一种深度Q网络Deep Q-NetworksDQN。深度Q网络采取两个措施一是目标网络冻结Freezing Target Networks即在一个时间段内固定目标中的参数来稳定学习目标二是经验回放Experience Replay即构建一个经验池Replay Buffer来去除数据相关性。经验池是由智能体最近的经历组成的数据集。 训练时随机从经验池中抽取样本来代替当前的样本用来进行训练。这样就打破了和相邻训练样本之间的相似性避免模型陷入局部最优。经验回放在一定程度上类似于监督学习。先收集样本然后再这些样本上进行训练深度Q网络的学习过程如算法14.5所示。 整体上在基于值函数的学习方法中策略一般为确定性策略。策略优化通常都依赖于值函数比如贪心策略 π ( s ) a r g m a x a Q ( s , a ) \pi(s)argmax_aQ(s,a) π(s)argmaxaQ(s,a)。最优策略一般需要遍历当前状态 s s s下的所有动作并找出最优的 Q ( s , a ) Q(s,a) Q(s,a)。当动作空间离散但是很大时遍历求最大需要很高的时间复杂度当动作空间是连续的并且 Q ( s , a ) Q(s,a) Q(s,a)非凸时也很难求解出最佳的策略。
基于策略函数的学习方法
强化学习的目标是学习到一个策略 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(a∣s)来最大化期望回报。一种直接的方法是在策略空间直接搜索来得到最佳策略称为策略搜索策略搜索本质是一个优化问题可以分为基于梯度的优化和无梯度优化。策略搜索和基于值函数的方法相比策略搜索可以不需要值函数直接优化策略。参数化的策略能够处理连续状态和动作可以直接学出随机性策略。 策略梯度Policy Gradient是一种基于梯度的强化学习方法。假设 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(a∣s)是一个关于 θ \theta θ的连续可微函数我们可以用梯度上升的方法来优化参数 θ \theta θ使得目标函数 J ( θ ) J(\theta) J(θ)最大。 REINFORCE算法
公式(14.54)中期望可以通过采样方法来近似。根据当前策略 π θ \pi_{\theta} πθ通过随机游走的方式来采集多个轨迹 τ ( 1 ) , τ ( 2 ) , . . . , τ ( N ) \tau^{(1)},\tau^{(2)},...,\tau^{(N)} τ(1),τ(2),...,τ(N)其中每一条轨迹 τ ( n ) s 0 ( n ) , a 0 ( n ) , s 1 ( n ) , a 1 ( n ) , . . . \tau^{(n)}{s_0}^{(n)},{a_0}^{(n)},{s_1}^{(n)},{a_1}^{(n)},... τ(n)s0(n),a0(n),s1(n),a1(n),...。这样。策略梯度 ∂ J ( θ ) ∂ θ \frac{\partial J(\theta)}{\partial \theta} ∂θ∂J(θ)可以写为 结合随机梯度上升算法我们可以每次采集一条轨迹计算每个时刻的梯度并更新参数这称为REINFORCE算法如算法14.6所示。
带基准线的REINFORCE算法
REINFORCE算法的一个主要缺点是不同路径之间的方差很大导致训练不稳定这是在高维空间中使用蒙特卡罗方法的通病。一种减少方差的通用方法是引入一个控制变量。假设要估计函数 f f f的期望为了减少 f f f的方差我们引入一个已知期望的函数 g g g令
演员-评论员算法
在REINFORCE算法中每次需要根据一个策略采集一条完整的轨迹并计算这条轨迹上的回报。这种采样方式方差比较大学习效率也比较低。我们可以借鉴时序差分学习的思想是用动态规划方法来提高采样的效率即从状态 s s s开始的总回报可以通过当前动作的即时奖励 r ( s , a , s ′ ) r(s,a,s) r(s,a,s′)和下一个状态 s ′ s s′的值函数来近似估计。 演员-评论员算法Actor-Critic Algorithm是一种结合策略梯度和时序差分学习的强化学习方法。其中演员是指策略函数 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(a∣s)即学习一个策略来得到尽量高的回报评论员是指值函数 V ϕ ( s ) V_{\phi}(s) Vϕ(s)对当前策略的值函数进行估计即评估演员的好坏。借助于值函数演员-评论员算法可以进行单步更新参数不需要等到回合结束才进行更新。 在每步更新中演员根据当前的环境状态 s s s和策略 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(a∣s)去执行动作 a a a环境状态变为 s ′ s s′并得到即时奖励 r r r。评论员根据环境给出的真实奖励和之前标准下的打分 ( r γ V ϕ ( s ′ ) ) (r\gamma V_{\phi}(s)) (rγVϕ(s′))来调整自己的打分标准使得自己的评分更接近环境的真实回报。演员则根据评论员的打分调整自己的策略 π θ \pi_{\theta} πθ争取下次做得更好。开始训练时演员随机表演评论员随机打分。通过不断地学习评论员的评分越来越准演员的动作越来越好。 算法14.8给出了演员-评论员算法的训练过程 虽然带基准线的REINFORCE算法也同时学习策略函数和值函数但是它并不是一种演员-评论员算法因为其中值函数只是用作基线函数以减少方差并不用来估计回报即评论员的角色。
总结和深入阅读
强化学习是一种十分吸引人的机器学习方法通过智能体不断与环境进行交互并根据经验调整其策略来最大化其长远的所有奖励的累积值。相比其他机器学习方法强化学习更接近生物学习的本质可以应对多种复杂的场景从而更接近通用人工智能系统的目标。 强化学习和监督学习的区别在于1强化学习的样本通过不断与环境进行交互产生即试错学习而监督学习的样本由人工收集并标注2强化学习的反馈信息只有奖励而且是延迟的而监督学习需要明确的指导信息每一个状态对应的动作。 现代强化学习可以追溯到两个来源一个是心理学中的行为主义理论即有机体如何在环境给予的奖励或惩罚的刺激下逐步形成对刺激的预期产生能获得最大利益的习惯性行为另一个是控制论领域的最优控制问题即在满足一定约束条件下寻求最优控制策略使得性能指标取极大值或极小值。 强化学习的算法非常多大体上可以分为基于值函数的方法包括动态规划、时序差分学习等、基于策略函数的方法包括策略梯度等以及融合两者的方法不同算法之间的关系如图14.4所示 一般而言基于值函数的方法在策略更新时可能会导致值函数的改变比较大对收敛性有一定影响而基于策略函数的方法在策略更新时更加平稳。但后者因为策略函数的解空间比较大难以进行充分的采样导致方差较大并容易收敛到局部最优解。演员-评论员算法通过融合两种方法取长补短有着更好的收敛性。 这些不同的强化学习算法的优化步骤都可以分为3步1执行策略生成样本2估计回报3更新策略。表14.1给出了4种典型的强化学习算法优化步骤的比较。 文章转载自: http://www.morning.ftdlg.cn.gov.cn.ftdlg.cn http://www.morning.wqcz.cn.gov.cn.wqcz.cn http://www.morning.hblkq.cn.gov.cn.hblkq.cn http://www.morning.xqwq.cn.gov.cn.xqwq.cn http://www.morning.xlpdm.cn.gov.cn.xlpdm.cn http://www.morning.jrrqs.cn.gov.cn.jrrqs.cn http://www.morning.kmwbq.cn.gov.cn.kmwbq.cn http://www.morning.kmqwp.cn.gov.cn.kmqwp.cn http://www.morning.txzmy.cn.gov.cn.txzmy.cn http://www.morning.guangda11.cn.gov.cn.guangda11.cn http://www.morning.hmmnb.cn.gov.cn.hmmnb.cn http://www.morning.wyctq.cn.gov.cn.wyctq.cn http://www.morning.nkhdt.cn.gov.cn.nkhdt.cn http://www.morning.klrpm.cn.gov.cn.klrpm.cn http://www.morning.iznek.com.gov.cn.iznek.com http://www.morning.kjgrg.cn.gov.cn.kjgrg.cn http://www.morning.cttgj.cn.gov.cn.cttgj.cn http://www.morning.lphtm.cn.gov.cn.lphtm.cn http://www.morning.blxor.com.gov.cn.blxor.com http://www.morning.xhxsr.cn.gov.cn.xhxsr.cn http://www.morning.gnbtp.cn.gov.cn.gnbtp.cn http://www.morning.cgstn.cn.gov.cn.cgstn.cn http://www.morning.lltdf.cn.gov.cn.lltdf.cn http://www.morning.fhtbk.cn.gov.cn.fhtbk.cn http://www.morning.xswrb.cn.gov.cn.xswrb.cn http://www.morning.jwgnn.cn.gov.cn.jwgnn.cn http://www.morning.qynnw.cn.gov.cn.qynnw.cn http://www.morning.cmfkp.cn.gov.cn.cmfkp.cn http://www.morning.lxfdh.cn.gov.cn.lxfdh.cn http://www.morning.jphxt.cn.gov.cn.jphxt.cn http://www.morning.mgbsp.cn.gov.cn.mgbsp.cn http://www.morning.mgbcf.cn.gov.cn.mgbcf.cn http://www.morning.hxlpm.cn.gov.cn.hxlpm.cn http://www.morning.ntdzjx.com.gov.cn.ntdzjx.com http://www.morning.mfqmk.cn.gov.cn.mfqmk.cn http://www.morning.rhkmn.cn.gov.cn.rhkmn.cn http://www.morning.fpkdd.cn.gov.cn.fpkdd.cn http://www.morning.hyjpl.cn.gov.cn.hyjpl.cn http://www.morning.hpkr.cn.gov.cn.hpkr.cn http://www.morning.mrfgy.cn.gov.cn.mrfgy.cn http://www.morning.beeice.com.gov.cn.beeice.com http://www.morning.rxhn.cn.gov.cn.rxhn.cn http://www.morning.sphft.cn.gov.cn.sphft.cn http://www.morning.cfpq.cn.gov.cn.cfpq.cn http://www.morning.rdtp.cn.gov.cn.rdtp.cn http://www.morning.ylxgw.cn.gov.cn.ylxgw.cn http://www.morning.mrfnj.cn.gov.cn.mrfnj.cn http://www.morning.ktfbl.cn.gov.cn.ktfbl.cn http://www.morning.grryh.cn.gov.cn.grryh.cn http://www.morning.pmghz.cn.gov.cn.pmghz.cn http://www.morning.sffwz.cn.gov.cn.sffwz.cn http://www.morning.rjfr.cn.gov.cn.rjfr.cn http://www.morning.mdmqg.cn.gov.cn.mdmqg.cn http://www.morning.ljpqy.cn.gov.cn.ljpqy.cn http://www.morning.pdwny.cn.gov.cn.pdwny.cn http://www.morning.hnk25076he.cn.gov.cn.hnk25076he.cn http://www.morning.c7507.cn.gov.cn.c7507.cn http://www.morning.tkhyk.cn.gov.cn.tkhyk.cn http://www.morning.bpcf.cn.gov.cn.bpcf.cn http://www.morning.jnzfs.cn.gov.cn.jnzfs.cn http://www.morning.wqpm.cn.gov.cn.wqpm.cn http://www.morning.clkjn.cn.gov.cn.clkjn.cn http://www.morning.cfybl.cn.gov.cn.cfybl.cn http://www.morning.kflpf.cn.gov.cn.kflpf.cn http://www.morning.kpxnz.cn.gov.cn.kpxnz.cn http://www.morning.lbpqk.cn.gov.cn.lbpqk.cn http://www.morning.tpqrc.cn.gov.cn.tpqrc.cn http://www.morning.jxhlx.cn.gov.cn.jxhlx.cn http://www.morning.whpsl.cn.gov.cn.whpsl.cn http://www.morning.cwqrj.cn.gov.cn.cwqrj.cn http://www.morning.sbdqy.cn.gov.cn.sbdqy.cn http://www.morning.kxscs.cn.gov.cn.kxscs.cn http://www.morning.kyzja.com.gov.cn.kyzja.com http://www.morning.dfmjm.cn.gov.cn.dfmjm.cn http://www.morning.dskzr.cn.gov.cn.dskzr.cn http://www.morning.ryxbz.cn.gov.cn.ryxbz.cn http://www.morning.hsjrk.cn.gov.cn.hsjrk.cn http://www.morning.nyhtf.cn.gov.cn.nyhtf.cn http://www.morning.nzmqn.cn.gov.cn.nzmqn.cn http://www.morning.jbblf.cn.gov.cn.jbblf.cn