强化学习5:策略梯度推导

1 介绍

Q-learningSARSA 等算法都是基于值的学习方法。基于值的方法主要用于离散动作空间。如果动作空间是连续的,离散化可能会导致精度下降或增加计算复杂度。基于值的方法通常要求对每个状态-动作对估计值函数,这限制了策略的复杂性和灵活性。为了使强化学习适用于连续的动作空间,策略梯度被设计了出来。
DQN 算法输出的是所有行为的 Q-Value。如果用于连续的动作空间,我们可以让 DQN中的网络直接输出行为。但随之而来的问题是:如何学习?学习就是训练网络,那么就需要设计损失函数。可以采用如下损失函数,也就是最大化奖励的期望。
学习目标
第三节有相关的详细介绍和推导。

2 设计思想

  • 直接优化策略:
    策略梯度方法通过优化策略参数来直接最大化期望回报。这种方法可以自然地处理连续动作空间,因为策略参数化通常不依赖于离散化动作。
  • 灵活的策略表示:
    策略梯度方法可以使用复杂的函数逼近(如神经网络)来表示策略,使其能够捕捉复杂的策略行为。这种灵活性使得策略梯度方法能够处理高维状态和动作空间。
  • 无须显式建模环境:
    策略梯度方法不需要对环境的动态进行显式建模,而是通过与环境的交互直接学习和优化策略。这使得它们在环境模型不可用的情况下也能有效工作。
  • 强化探索:
    策略梯度方法通过策略优化促进更广泛的探索。它们通过调整策略的参数来增加对有潜力的动作的探索,这有助于发现更好的策略。
  • 处理长期回报:
    策略梯度方法能够处理长期回报的优化,因为它们直接优化期望回报函数,可以更好地处理长期奖励的延迟性。

总结来说,策略梯度方法通过直接优化策略函数、处理高维和连续动作空间的复杂性,以及强化探索等优势,克服了基于值方法的一些限制,使其在许多实际应用中表现得更加有效和灵活。

3 梯度推导

建议先了解神经网络、梯度下降。
首先约定一下符号。学习过程开始后,智能体观察环境所获得状态记为 s 1 s_{1} s1,然后根据当前状态 s 1 s_{1} s1,采取行为 a 1 a_{1} a1。行为作用到环境,导致状态发生变化,记为 s 1 s_{1} s1 变为 s 2 s_{2} s2。同时环境反馈奖励 。这是第一轮学习。
第二轮中,智能体观察到状态 s 2 s_{2} s2,采取行为 a 2 a_{2} a2,获得奖励 r 2 r_{2} r2,状态由 s 2 s_{2} s2 变为 s 3 s_{3} s3。后续循环这个过程,数字表示轮次。
则一整个学习过程可记为:
请添加图片描述
τ \tau τ 中共有 T 次操作。
如果以打手机游戏为例,s 为屏幕像素,r 为释放技能或走位,击杀基于奖励 r 为 10,赢得游戏给予奖励 1000,输掉游戏给予奖励 -1000。 τ \tau τ 为一局游戏的整个过程。
记第 n 局游戏为: τ n \tau^{n} τn
要学习什么呢?学习根据当前状态,判断采取尽可能好的行为的能力。可以通过神经网络或其他算法采取行动。那么这里就需要学习你所使用的算法中的参数,这里统一把参数记为 θ \theta θ。简单起见,我们就以多层感知机(MLP) 作为决策模型,那么 θ \theta θ就是:
请添加图片描述
学习目标是使得奖励最大化。下面公式也就是学习目标,或称为损失函数:
学习目标
解释一下这个公式。
θ \theta θ 为当前参数数值; P ( τ ∣ θ ) P(\tau|\theta) P(τθ) 为打出游戏状况为 τ \tau τ 的概率; R ( τ ) R(\tau) R(τ) τ \tau τ 中获得的奖励总和,即 r 1 + r 2 + . . . r_{1}+r_{2}+... r1+r2+... 。那么根据数学期望知,当前智能体打完所有的可能的游戏对局情况 τ \tau τ,所得到的平均奖励可记为:
请添加图片描述
但是一般情况下,不可能让智能体打完所有的对局情况的,所以这个公式没办法计算。退一步讲,我们可以使用大数定律。即,让智能体打 N 局游戏,N 足够大,那么就近似为平均奖励为:
请添加图片描述
我们的目标就是让这个平均奖励尽可能大。那么这个函数可以理解为损失函数,我们需要通过调整 θ \theta θ 对这个函数进行优化。
怎么做呢?我们可以使用梯度下降来更新参数 θ \theta θ。即求解如下:
请添加图片描述
接下来推导一下如何更新 θ:
假设我们当前已经学习了若干组 τ \tau τ,每一组会有若干个 τ \tau τ。我们以组为单位进行训练,也就是每次训练时,会有若干个 τ \tau τ 参与。
对于每一组, θ \theta θ 更新公式为:
请添加图片描述
其中,η 是学习率, ∇ \nabla 为梯度。
那么梯度怎么求?如下:
请添加图片描述
这个梯度公式不难理解。由于只有 P ( τ ∣ θ ) P(\tau|\theta) P(τθ) 中包含 θ \theta θ,因此 ∇ \nabla 可以直接挪到 P ( τ ∣ θ ) P(\tau|\theta) P(τθ) 前。
然后我们进而求解 ∇ P ( τ ∣ θ ) \nabla P(\tau|\theta) P(τθ)
请添加图片描述
这里转化为 log 形式,方便后面将乘法转换为加法,方便求解。
进一步我们知:
请添加图片描述
我们上面说不可能让智能体打完所有的对局情况,因此:
请添加图片描述
到这一步,怎么求 ∇ P ( τ n ∣ θ ) \nabla P(\tau^{n}|\theta) P(τnθ) ?我们可按照全概率公式先将 P ( τ n ∣ θ ) P(\tau^{n}|\theta) P(τnθ) 展开。我们这里简单一些,展开如下:
请添加图片描述
按照全概率公式展开的话,并不是这样的。为了避免太复杂,我们这里考虑每次状态变化不受行为影响,完全独立,来简化一下。
然后我们知道:
请添加图片描述
最后整理一下:
请添加图片描述
然后我们就可以更新 θ \theta θ 了,也就是说我们可以使用强化学习来学习模型了。

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值