【强化学习】强化学习数学基础:策略梯度方法(Policy Function Approximation)

本文介绍了策略梯度方法,将策略从表格形式转换为参数化的函数表示,如神经网络。文章讨论了如何定义最优策略,以及如何通过梯度上升算法(如REINFORCE)来优化策略。重点讲述了平均状态价值和平均即时奖励作为指标,并解析了它们的梯度计算。最后,提到了REINFORCE算法的实现和其在探索与利用之间的平衡作用。


从本文开始,将从value-based methods转向到policy-based methods,从value function approximation到policy function approximation。

Basic idea of policy gradient

到目前,我们的policies都是用tables表示的。如下是所有state的action probabilities,存储在一个table π ( a ∣ s ) \pi(a|s) π(as),表格中的每个实体由一个state和一个action表示。
tables
我们可以直接访问或改变表格中的一个值。

现在,我们可以把表格改成函数。policies用参数化的函数表示。 π ( a ∣ s , θ ) \pi(a|s,\theta) π(as,θ)其中 θ ∈ R m \theta\in \mathbb{R}^m θRm是一个参数向量。

  • 例如,这个函数可以是一个神经网络,它的输入是 s s s,输出是采取每个action的概率,参数是 θ \theta θ
  • 优势:当state space比较大时,表格化的表示是低效的,尤其是针对存储和泛化能力。
  • 函数形式的表示有时也写为 π ( a , s , θ ) , π θ ( a ∣ s ) , π θ ( a , s ) \pi(a,s,\theta), \pi_\theta(a|s), \pi_\theta(a,s) π(a,s,θ),πθ(as),πθ(a,s)

表格形式和函数形式表示的区别:

  • 第一,如何定义最优策略?
    • 当使用表格表示时,一个策略 π \pi π是最优的,如果它能够使得每个state value最大化。
    • 当使用函数表示时,一个策略 π \pi π是最优的,如果它能够使得某个scalar metric最大化。
  • 第二,如何获取一个action的概率?
    • 当使用表格表示时,在状态 s s s采取 a a a的概率可以直接通过查表的形式得到
    • 当使用函数表示时,我们需要在给定函数结构和参数的条件下计算 π ( a ∣ s , θ ) \pi(a|s, \theta) π(as,θ)的值
  • 第三,如何更新策略?
    • 当使用表格表示时,可以直接在表格中更新策略 π \pi π
    • 当使用函数表示时,可以通过改变参数 θ \theta θ的方式更新策略 π \pi π

Policy gradient的基本思路

  • 第一,需要有一个目标函数(metrics or objective functions)去定义最优策略是什么, J ( θ ) J(\theta) J(θ)定义最优策略。
  • 第二,基于梯度的方法(gradient-based optimization algorithm)去寻找最优策略: θ t + 1 = θ t + α ∇ θ J ( θ t ) \theta_{t+1}=\theta_t+\alpha \nabla_\theta J(\theta_t) θt+1=θt+αθJ(θt)

尽管思路非常简单, 但是当我们回答下面问题的时候,会有一些复杂的地方:

  • 第一,怎么选取目标函数?
  • 第二,怎么求解目标函数对应的gradients?

Metrics to define optimal policies

有两大类的metrics
第一大类是the average state value,或者简单地称为average value。具体地,这个metric定义如下 v ˉ π = ∑ s ∈ S d ( s ) v π ( s ) \bar{v}_\pi=\sum_{s\in \mathcal{S}}d(s)v_\pi(s) vˉπ=sSd(s)vπ(s)

  • 其中 v ˉ π \bar{v}_\pi vˉπ是state values的加权平均
  • d ( s ) > 0 d(s)>0 d(s)>0是对于状态 s s s的权重
  • 因为 ∑ s ∈ S d ( s ) = 1 \sum_{s\in \mathcal{S}} d(s)=1 sSd(s)=1,我们可以将 d ( s ) d(s) d(s)解释为一个概率分布。然后,这个metric可以被写为 v ˉ π = E [ v π ( S ) ] \bar{v}_\pi=\mathbb{E}[v_\pi (S)] vˉπ=E[vπ(S)],其中 S ∼ d S\sim d Sd

Vector-product(向量内积)的形式 v ˉ π = ∑ s ∈ S d ( s ) v π ( s ) = d T v π \bar{v}_\pi = \sum_{s\in \mathcal{S}}d(s)v_\pi(s)=d^Tv_\pi vˉπ=sSd(s)vπ(s)=dTvπ其中 v π = [ . . . , v π ( s ) , . . . ] T ∈ R ∣ S ∣ v_\pi=[...,v_\pi (s),...]^T\in \mathbb{R}^{|\mathcal{S} |} vπ=[...,vπ(s),...]TRS d = [ . . . , d ( s ) , . . . ] T ∈ R ∣ S ∣ d=[...,d(s),...]^T\in \mathbb{R}^{|\mathcal{S} |} d=[...,d(s),...]TRS
这种形式对于后面分析它的梯度是非常有帮助的。

如何选择分布 d d d?这里有两种情况:
第一种情况 d d d和策略 π \pi π没什么关系。

  • 这种情况相对简单,因为metric的gradient是容易计算的
  • 这种情况下,将 d d d写为 d 0 d_0 d0 v ˉ π \bar{v}_\pi vˉπ写为 v ˉ π 0 \bar{v}_\pi^0 vˉπ0
  • 如何选择 d 0 d_0 d0
    • 一个简单的方式是平等地对待所有的states,即选择 d 0 ( s ) = 1 / ∣ S ∣ d_0(s)=1/|\mathcal{S}| d0(s)=1/∣S
    • 另一个重要的情况是我们只对一个特定的state s 0 s_0 s0感兴趣。例如,episodes在某些任务中总是从相同的state s 0 s_0 s0开始,然后,我们仅仅关注从 s 0 s_0 s
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

镰刀韭菜

看在我不断努力的份上,支持我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值