阐述、总结【动手学强化学习】章节内容的学习情况,复现并理解代码。
文章目录
一、算法背景
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:π(a∣s) ”,现在通过“函数拟合”去学习一个关于policy的函数,即 π θ ( a ∣ s ) {\pi}_θ(a|s) πθ(a∣s),参数为θ。
二、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) πθ(a∣s) 概率)
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) πθ(a∣s)
②强调最大值: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=1∑nyilog(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∑π(a∣s,θ)qπ(s,a)
为了求解最优policy使得state value最优,借鉴“梯度下降”(参考:【算法学习】优化算法-小批量随机梯度下降mini-batch SGD)的思想,求解 J ( θ ) J(\theta)

最低0.47元/天 解锁文章
6935

被折叠的 条评论
为什么被折叠?



