当前位置: 首页 > news >正文

东莞石龙网站建设无锡网站

东莞石龙网站建设,无锡网站,网站如何做电脑和手机软件,网站建设价目表两类AC的改进算法 整理了动手学强化学习的学习内容 1. TRPO 算法#xff08;Trust Region Policy Optimization#xff09; 1.1. 前沿 策略梯度算法即沿着梯度方向迭代更新策略参数 。但是这种算法有一个明显的缺点#xff1a;当策略网络沿着策略梯度更新参数#xff0c…两类AC的改进算法 整理了动手学强化学习的学习内容 1. TRPO 算法Trust Region Policy Optimization 1.1. 前沿 策略梯度算法即沿着梯度方向迭代更新策略参数 。但是这种算法有一个明显的缺点当策略网络沿着策略梯度更新参数可能由于步长太长策略突然显著变差进而影响训练效果。 针对以上问题考虑在更新时找到一块信任区域trust region在这个区域上更新策略时能够得到某种策略性能的安全性保证这就是信任区域策略优化trust region policy optimizationTRPO算法的主要思想。 1.2. 一些推导 首先最常规的动作价值函数状态价值函数优势函数定义如下 接着一个策略的好坏可以期望折扣奖励J(πθ)J(\pi_\theta)J(πθ​)表示 J(πθ)Es0,a0,...[∑t0∞γtr(st)]Es0[Vπθ(s0)]J(\pi_\theta)E_{s_0,a_0,...}[\sum_{t0}^{\infty}\gamma^tr(s_t)]E_{s_0}[V^{\pi_\theta}(s_0)]J(πθ​)Es0​,a0​,...​[t0∑∞​γtr(st​)]Es0​​[Vπθ​(s0​)] 其中s0∼ρ0(s0)s_0 \sim \rho_0(s_0)s0​∼ρ0​(s0​)at∼πθ(at∣st)a_t \sim \pi_\theta(a_t|s_t)at​∼πθ​(at​∣st​)at1∼P(st1∣st,at)a_{t1} \sim P(s_{t1}|s_t,a_t)at1​∼P(st1​∣st​,at​)。 由于初始状态s0s_0s0​的分布ρ0\rho_0ρ0​和策略无关因此上述策略πθ\pi_\thetaπθ​下的优化目标J(πθ)J(\pi_\theta)J(πθ​)可以写成在新策略πθ′\pi_{\theta}πθ′​的期望形式 从而推导新旧策略的目标函数之间的差距 将时序差分残差定义为优势函数A 所以只要我们能找到一个新策略使得J(θ′)−J(θ)0J(\theta)-J(\theta)0J(θ′)−J(θ)0就能保证策略性能单调递增。 但是直接求解该式是非常困难的因为πθ′\pi_{\theta}πθ′​是我们需要求解的策略但我们又要用它来收集样本。把所有可能的新策略都拿来收集数据然后判断哪个策略满足上述条件的做法显然是不现实的。 于是 TRPO 做了一步近似操作对状态访问分布进行了相应处理。具体而言忽略两个策略之间的状态访问分布变化直接采用旧的策略的状态分布定义如下替代优化目标 当新旧策略非常接近时状态访问分布变化很小这么近似是合理的。其中动作仍然用新策略πθ′\pi_{\theta}πθ′​采样得到我们可以用重要性采样对动作分布进行处理 为了保证新旧策略足够接近TRPO 使用了KL散度来衡量策略之间的距离并给出了整体的优化公式 这里的不等式约束定义了策略空间中的一个 KL 球被称为信任区域。在这个区域中可以认为当前学习策略和环境交互的状态分布与上一轮策略最后采样的状态分布一致进而可以基于一步行动的重要性采样方法使当前学习策略稳定提升。 1.3. 近似求解 直接求解上式带约束的优化问题比较麻烦TRPO 在其具体实现中做了一步近似操作来快速求解。 对目标函数和约束在θk\theta_kθk​进行泰勒展开分别用 1 阶、2 阶进行近似 于是我们的优化目标变成了 此时我们可以用KKT条件直接导出上述问题的解 1.4. 共轭梯度 一般来说用神经网络表示的策略函数的参数数量都是成千上万的计算和存储黑塞矩阵的逆矩阵会耗费大量的内存资源和时间。 TRPO 通过共轭梯度法conjugate gradient method回避了这个问题它的核心思想是直接计算xH−1gxH^{-1}gxH−1gxxx即参数更新方向。假设满足 KL距离约束的参数更新时的最大步长为βθ′−θ\beta\theta-\thetaβθ′−θ。 于是根据 KL 距离约束条件12(θ′−θk)TH(θ′−θk)δ\frac{1}{2}(\theta-\theta_k)^TH(\theta-\theta_k)\delta21​(θ′−θk​)TH(θ′−θk​)δ有12(βx)TH(βx)δ\frac{1}{2}(\beta x)^TH(\beta x)\delta21​(βx)TH(βx)δ。求解β\betaβ得到β2δxTHx\beta\sqrt{\frac{2\delta}{x^THx}}βxTHx2δ​​。因此此时参数更新方式为 θk1θk2δxTHxx\theta_{k1}\theta_k\sqrt{\frac{2\delta}{x^THx}}xθk1​θk​xTHx2δ​​x 因此只要可以直接计算xH−1gxH^{-1}gxH−1g就可以根据该式更新参数问题转化为解HxgHxgHxg。实际上HHH为对称正定矩阵所以我们可以使用共轭梯度法来求解。 共轭梯度法的具体流程如下 在共轭梯度运算过程中直接计算αk\alpha_kαk​和rk1r_{k1}rk1​需要计算和存储海森矩阵HHH。为了避免这种大矩阵的出现我们只计算HxHxHx向量而不直接计算和存储HHH矩阵。这样做比较容易因为对于任意的列向量vvv容易验证 即先用梯度和向量vvv点乘后计算梯度。 def hessian_matrix_vector_product(self, states, old_action_dists, vector):# 计算黑塞矩阵和一个向量的乘积new_action_dists torch.distributions.Categorical(self.actor(states))kl torch.mean(torch.distributions.kl.kl_divergence(old_action_dists,new_action_dists)) # 计算平均KL距离kl_grad torch.autograd.grad(kl,self.actor.parameters(),create_graphTrue)kl_grad_vector torch.cat([grad.view(-1) for grad in kl_grad])# KL距离的梯度先和向量进行点积运算kl_grad_vector_product torch.dot(kl_grad_vector, vector)grad2 torch.autograd.grad(kl_grad_vector_product,self.actor.parameters())grad2_vector torch.cat([grad.view(-1) for grad in grad2])return grad2_vectordef conjugate_gradient(self, grad, states, old_action_dists): # 共轭梯度法求解方程x torch.zeros_like(grad)r grad.clone()p grad.clone()rdotr torch.dot(r, r)for i in range(10): # 共轭梯度主循环Hp self.hessian_matrix_vector_product(states, old_action_dists,p)alpha rdotr / torch.dot(p, Hp)x alpha * pr - alpha * Hpnew_rdotr torch.dot(r, r)if new_rdotr 1e-10:breakbeta new_rdotr / rdotrp r beta * prdotr new_rdotrreturn x1.5. 线性搜索 由于 TRPO 算法用到了泰勒展开的 1 阶和 2 阶近似这并非精准求解因此θ\thetaθ可能未必比θk\theta_kθk​好或未必能满足 KL 散度限制。TRPO 在每次迭代的最后进行一次线性搜索以确保找到满足条件。具体来说就是找到一个最小的非负整数iii使得按照 θk1θkαi2δxTHxx\theta_{k1}\theta_{k}\alpha^i \sqrt{\frac{2\delta}{x^THx}}xθk1​θk​αixTHx2δ​​x 求出的θk1\theta_{k1}θk1​依然满足最初的 KL 散度限制并且确实能够提升目标函数这KaTeX parse error: Undefined control sequence: \apha at position 1: \̲a̲p̲h̲a̲ ̲\in (0,1)其中是一个决定线性搜索长度的超参数。 1.6. 总结 至此我们已经基本上清楚了 TRPO 算法的大致过程它具体的算法流程如下 2. PPO 算法Trust Region Policy Optimization 2.1. 前沿 PPO 算法作为TRPO算法的改进版但是其算法实现更加简单。并且大量的实验结果表明与TRPO相比PPO能学习得一样好甚至更快这使得PPO成为非常流行的强化学习算法。如果我们想要尝试在一个新的环境中使用强化学习算法那么 PPO 就属于可以首先尝试的算法。 PPO 的优化目标与 TRPO 相同但 PPO用了一些相对简单的方法来求解TRPO 使用泰勒展开近似、共轭梯度、线性搜索等方法直接求解。具体来说PPO 有两种形式一是 PPO-惩罚二是 PPO-截断接下来对这两种形式进行介绍。 2.2. PPO-惩罚 PPO-Penalty用拉格朗日乘数法直接将 KL 散度的限制放进了目标函数中这就变成了一个无约束的优化问题在迭代的过程中不断更新 KL 散度前的系数。即 令dkDKLπθk(πθk,πθ)d_kD_{KL}^{\pi_{\theta_k}}(\pi_{\theta_k},\pi_{\theta})dk​DKLπθk​​​(πθk​​,πθ​)β\betaβ的更新规则如下 如果dkδ/1.5d_k\delta/1.5dk​δ/1.5那么βk1βk/2\beta_{k1}\beta_k/2βk1​βk​/2如果dkδ×1.5d_k\delta \times 1.5dk​δ×1.5那么βk1βk×2\beta_{k1}\beta_k \times 2βk1​βk​×2否则βk1βk\beta_{k1}\beta_kβk1​βk​ 其中δ\deltaδ是事先设定的一个超参数用于限制学习策略和之前一轮策略的差距。 2.3 PPO-截断 PPO的另一种形式 PPO-截断PPO-Clip 更加直接它在目标函数中进行限制以保证新的参数和旧的参数的差距不会太大即: 其中clip(x,l,r):max(min(x,r),l)clip(x,l,r):max(min(x,r),l)clip(x,l,r):max(min(x,r),l) 即把xxx限制在[l,r][l,r][l,r]内。上式中ϵ\epsilonϵ是一个超参数表示进行截断clip的范围。 如果Aπθk(s,a)0A^{\pi_{\theta_k}}(s,a)0Aπθk​​(s,a)0说明这个动作的价值高于平均最大化这个式子会增大πθ(a∣s)πθk(a∣s)\frac{\pi_\theta (a|s)}{\pi_{\theta_k} (a|s)}πθk​​(a∣s)πθ​(a∣s)​但不会让其超过1ϵ1\epsilon1ϵ。反之如果Aπθk(s,a)0A^{\pi_{\theta_k}}(s,a)0Aπθk​​(s,a)0最大化这个式子会减小πθ(a∣s)πθk(a∣s)\frac{\pi_\theta (a|s)}{\pi_{\theta_k} (a|s)}πθk​​(a∣s)πθ​(a∣s)​但不会让其超过1−ϵ1-\epsilon1−ϵ。如下图所示。 代码 最后两个算法的代码可参考GitHubGood Night!
http://www.ho-use.cn/article/10812519.html

相关文章:

  • 网站源码下载搭建网站设计的一般步骤是什么?
  • 中国电子商务中心官网青岛seo整站优化公司
  • 资讯网站开发网站建设合同要求
  • 旅游网站html专业网站建设设计
  • 临海市住房和城乡建设规划局网站如何将网站提交给谷歌
  • 大连网站关键字优化物流公司网站建设有什么要点
  • 开封网站建设报价宁波网络推广制作
  • 山西网站建设公司排名视频制作公司需要什么资质
  • 扶余市建设局网站邵阳邵东网站建设
  • 电商网站建设与课程设计怎样进行网站后台管理
  • 大连网站模板建站模板网小说下载
  • 网站交互主要做什么.net asp可以外链其它网站吗
  • 新竹自助网站旅游景点网站建设方案
  • 加盟酒店网站制作全球速卖通网址
  • 长春专业做网站公司哪家好温州网站推广外包
  • 新都有没有做网站的访问网站慢
  • 阜宁网站建设找哪家好做有支付系统的网站一般需要多少钱
  • 营销型网站模板展示珠海网站推广
  • 你了解网站建设吗 软文案例企业邮箱哪个好
  • 品牌网站制作公司哪家好公司建立网站怎么做分录
  • 怎么提高自己网站的知名度什么是高端网站建设
  • 江苏天宇建设集团官方网站表白网站制作器
  • 网站开发用什么工具接手一个新的网站应该怎样做
  • 沈阳正规网站建设哪家便宜wordpress按装教程
  • 如何开网站需要多少钱网站首页设计效果图
  • 和田地区建设局网站可以直接进入网站的正能量
  • 医院网站建设基本功能十大装修公司排名哪家最好
  • 菏泽去哪了做网站深圳微信小程序制作公司
  • 建设企业网站公积金做的最好的宠物网站
  • 浦东医院网站建设怎么用div做网站