【动手学强化学习】part6-策略梯度算法

阐述、总结【动手学强化学习】章节内容的学习情况,复现并理解代码。


一、算法背景

1.1 算法目标

给定“黑盒”模型,求解最优policy

1.2 存在问题

动态规划、时序差分-TD、值函数近似算法中策略的表示都是基于价值(value-based)的,即算法目标是学习值函数,然后根据值函数导出一个策略,学习过程中并不存在一个显式的策略。

1.3 解决方法

采用基于策略(policy-based)算法,直接显式地学习一个目标策略。
可以理解为,之前policy的表示是“表格式(tabular)”的,即存在一个“ π − t a b l e : π ( a ∣ s ) {\pi}-table:{\pi}(a|s) πtable:π(as) ”,现在通过“函数拟合”去学习一个关于policy的函数,即 π θ ( a ∣ s ) {\pi}_θ(a|s) πθ(as),参数为θ

二、REINFORCE算法

  • 🌟算法类型
    环境依赖:❌model-based ✅model-free
    价值估计:✅non-incremental ❌incremental(采用蒙特卡洛方法估计)
    价值表征:✅tabular representation ❌function representation(采用蒙特卡洛方法估计)
    学习方式:✅on-policy ❌off-policy
    策略表征:❌value-based ✅policy-based(通过函数拟合去计算 π θ ( a ∣ s ) {\pi}_θ(a|s) πθ(as) 概率)

2.1 必要说明

softmax()函数

softmax函数是一种常用的激活函数,主要用于将一个向量转换为概率分布,使得向量中的每个元素都被映射到 [0, 1] 区间内,并且所有元素的和为 1。
对于一个向量 z = [ z 1 , z 2 , … , z n ] \mathbf{z}=[z_1,z_2,\ldots,z_n] z=[z1,z2,,zn] ,softmax函数的定义为:
s o f t m a x ( z ) i = e z i ∑ j = 1 n e z j \mathrm{softmax}(\mathbf{z})_i=\frac{e^{z_i}}{\sum_{j=1}^ne^{z_j}} softmax(z)i=j=1nezjezi

  • 特点
    ①归一化:softmax 函数将向量的每个元素转换为一个介于 0 和 1 之间的值,并且所有元素的和为 1。这使得输出可以被解释为概率分布。
    ** 在这里就体现为在state状态下与环境交互时,action的使用概率,即 π θ ( a ∣ s ) {\pi}_θ(a|s) πθ(as)
    ②强调最大值:softmax 函数会放大较大的值并抑制较小的值。这意味着在多分类问题中,模型更倾向于选择具有最高输出值的类别。
    ** 在这里就体现为最优policy中action的选择。

    ③平滑性:softmax 函数是平滑的,这意味着它在所有点上都是可导的,这在训练神经网络时非常有用,因为可以通过梯度下降等优化算法来更新模型参数。

交叉熵

当采用softmax函数作为神经网络的输出时,一般采用交叉熵来衡量两个概率的区别,即真值与神经网络输出概率的区别,因此交叉熵可以作为神经网络的损失函数。参考【动手学深度学习】part9-softmax回归

  • 交叉熵定义为:
    假设模型的输出为 z,真实标签为 y,则整个过程可以表示为:
    p = s o f t m a x ( z ) L = H ( y , p ) = − ∑ i = 1 n y i log ⁡ ( p i ) \begin{aligned}\mathbf{p}&=\mathrm{softmax}(\mathbf{z})\\\\L=H(\mathbf{y},\mathbf{p})&=-\sum_{i=1}^ny_i\log(p_i)\end{aligned} pL=H(y,p)=softmax(z)=i=1nyilog(pi)

策略更新思想

将policy_net的目标函数定义为最大化state value,即:
J ( θ ) = E [ ∑ t = 0 ∞ γ t R t + 1 ] = E s 0 [ V π θ ( s 0 ) ] J(\theta)=\mathbb{E}\left[\sum_{t=0}^\infty\gamma^tR_{t+1}\right]=\mathbb{E}_{s_0}[V^{\pi_\theta}(s_0)] J(θ)=E[t=0γtRt+1]=Es0[Vπθ(s0)]
V π θ ( s 0 ) = ∑ a π ( a ∣ s , θ ) q π ( s , a ) V^{\pi_\theta}(s_0)=\sum_a\pi(a|s,\theta)q_\pi(s,a) Vπθ(s0)=aπ(as,θ)qπ(s,a)
为了求解最优policy使得state value最优,借鉴“梯度下降”(参考:【算法学习】优化算法-小批量随机梯度下降mini-batch SGD)的思想,求解 J ( θ ) J(\theta)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值