强化学习策略梯度梳理3-SOTA上(附PPO2代码)

2026强化学习保姆级入门:从Q-learning到PPO算法实践全解析 这次我们来看一个面向2026年的强化学习入门教程。这个教程的目标很直接:用保姆级的方式,帮你系统性地搞懂强化学习(Reinforcement Learning, RL)的核心概念和主流算法。它涵盖了从经典的Q-learning、DQN,到更现代的A3C、PPO等关键算法,全程力求通俗易懂,非常适合AI、机器人(具身智能)等领域的学习者和开发者入门。 对于想入门强化学习的人来说,最关心的往往是这几个问题:概念是不是太抽象?数学公式会不会劝退?有没有可以直接跑的代码?环境配置复不复杂?本文就将围绕这个教程,带你 阅读详情

强化学习策略梯度梳理-SOTA

这个部分主要参考周博磊老师的第六节的顺序
主要参考课程 Intro to Reinforcement Learning,Bolei Zhou
相关文中代码
https://github.com/ThousandOfWind/RL-basic-alg.git

进阶方向1

PG

首先策略的优化目标是
J ( θ ) = E τ ∼ π θ [ R ( τ ) ] J(\theta)=\mathbb{E}_{\tau \sim \pi_{\theta}}[R(\tau)] J(θ)=Eτ∼πθ​​[R(τ)]
策略梯度的计算方法
∇ θ J ( θ ) = E π θ [ G t ∇ θ log ⁡ π θ ( s , a ) ] ≈ 1 N ∑ i = 1 N G t i ∇ θ log ⁡ π θ ( s i , a i ) \begin{aligned} \nabla_{\theta} J(\theta) &=\mathbb{E}_{\pi_{\theta}}\left[G_{t} \nabla_{\theta} \log \pi_{\theta}(s, a)\right] \\ & \approx \frac{1}{N} \sum_{i=1}^{N} G_{t}^{i} \nabla_{\theta} \log \pi_{\theta}\left(s_{i}, a_{i}\right) \end{aligned} ∇θ​J(θ)​=Eπθ​​[Gt​∇θ​logπθ​(s,a)]≈N1​i=1∑N​Gti​∇θ​logπθ​(si​,ai​)​

通过引入baseline我们可以削减方差
A π ( s , a ) = Q π ( s , a ) − V π ( s ) A^{\pi}(s, a)=Q^{\pi}(s, a)-V^{\pi}(s) Aπ(s,a)=Qπ(s,a)−Vπ(s)

这里我还有个不太明白的地方, 为什么baseline可以用state value替代,因为我们期待的baseline应该是与策略无关吧, 但是V多多少少还是和策略有关呀,也可能我理解错了

总结

好精辟,这我不得背下来!

∇ θ J ( θ ) = E π θ [ ∇ θ log ⁡ π θ ( s , a ) G t ] −  REINFORCE  = E π θ [ ∇ θ log ⁡ π θ ( s , a ) Q w ( s , a ) ] −  Q Actor-Critic  = E π θ [ ∇ θ log ⁡ π θ ( s , a ) A w ( s , a ) ] −  Advantage Actor-Critic  = E π θ [ ∇ θ log ⁡ π θ ( s , a ) δ ] −  TD Actor-Critic  \begin{aligned} \nabla_{\theta} J(\theta) &=\mathbb{E}_{\pi_{\theta}}\left[\nabla_{\theta} \log \pi_{\theta}(s, a) G_{t}\right]-\text { REINFORCE } \\ &=\mathbb{E}_{\pi_{\theta}}\left[\nabla_{\theta} \log \pi_{\theta}(s, a) Q^{\mathrm{w}}(s, a)\right]-\text { Q Actor-Critic } \\ &=\mathbb{E}_{\pi_{\theta}}\left[\nabla_{\theta} \log \pi_{\theta}(s, a) A^{\mathrm{w}}(s, a)\right]-\text { Advantage Actor-Critic } \\ &=\mathbb{E}_{\pi_{\theta}}\left[\nabla_{\theta} \log \pi_{\theta}(s, a) \delta\right]-\text { TD Actor-Critic } \end{aligned} ∇θ​J(θ)​=Eπθ​​[∇θ​logπθ​(s,a)Gt​]− REINFORCE =Eπθ​​[∇θ​logπθ​(s,a)Qw(s,a)]− Q Actor-Critic =Eπθ​​[∇θ​logπθ​(s,a)Aw(s,a)]− Advantage Actor-Critic =Eπθ​​[∇θ​logπθ​(s,a)δ]− TD Actor-Critic ​

TRPO

Trust region policy optimization. Schulman, L., Moritz, Jordan, Abbeel. 2015
考虑到PG的存在的两大问题:

  1. 采样效率低(on-policy)
  2. 容易收敛到局部最优

为了使得训练更稳定 -> Trust region & natural policy gradient
make it as off-policy policy optimization -> 重要性采样

natural policy gradient

这里数学过量。。。我姑且先放弃。话说周博磊老师视频讲natural policy gradient真的是贼来劲
请参考强化学习进阶 第七讲 TRPO

Importance sampling

我们知道策略梯度一个问题是只能on-policy,对经验的利用率很低,但如果加入重要性采样,我们就可以把过去的样本也利用上了
E x ∼ p [ f ( x ) ] = ∫ p ( x ) f ( x ) d x = ∫ q ( x ) p ( x ) q ( x ) f ( x ) d x = E x ∼ q [ p ( x ) q ( x ) f ( x ) ] \mathbb{E}_{x \sim p}[f(x)]=\int p(x) f(x) d x=\int q(x) \frac{p(x)}{q(x)} f(x) d x=\mathbb{E}_{x \sim q}\left[\frac{p(x)}{q(x)} f(x)\right] Ex∼p​[f(x)]=∫p(x)f(x)dx=∫q(x)q(x)p(x)​f(x)dx=Ex∼q​[q(x)p(x)​f(x)]
J ( θ ) = E a ∼ π θ [ r ( s , a ) ] = E a ∼ π ^ [ π θ ( s , a ) π ^ ( s , a ) r ( s , a ) ] J(\theta)=\mathbb{E}_{a \sim \pi_{\theta}}[r(s, a)]=\mathbb{E}_{a \sim \hat{\pi}}\left[\frac{\pi_{\theta}(s, a)}{\hat{\pi}(s, a)} r(s, a)\right] J(θ)=Ea∼πθ​​[r(s,a)]=Ea∼π^​[π^(s,a)πθ​(s,a)​r(s,a)]

Trust Regions

尽管如此,我们还是不希望我们将要用的经验距离现在的目标区别太大,
所以我们可以用KL散度进行约束
K L ( π θ o l d ∥ π θ ) = − ∑ a π θ o l d ( a ∣ s ) log ⁡ π θ ( a ∣ s ) π θ o l d ( a ∣ s ) K L\left(\pi_{\theta_{o l d}} \| \pi_{\theta}\right)=-\sum_{a} \pi_{\theta_{o l d}}(a \mid s) \log \frac{\pi_{\theta}(a \mid s)}{\pi_{\theta_{o l d}}(a \mid s)} KL(πθold​​∥πθ​)=−a∑​πθold​​(a∣s)logπθold​​(a∣s)πθ​(a∣s)​
这样我们就得到了优化目标,然后再用拉格朗日法求解
J θ old  ( θ ) = E t [ π θ ( a t ∣ s t ) π θ old  ( a t ∣ s t ) R t ]  subject to  K L ( π θ old  ( ⋅ ∣ s t ) ∥ π θ ( ⋅ ∣ s t ) ) ≤ δ \begin{array}{l} J_{\theta_{\text {old }}}(\theta)=\mathbb{E}_{t}\left[\frac{\pi_{\theta}\left(a_{t} \mid s_{t}\right)}{\pi_{\theta_{\text {old }}}\left(a_{t} \mid s_{t}\right)} R_{t}\right] \\ \text { subject to } K L\left(\pi_{\theta_{\text {old }}}\left(\cdot \mid s_{t}\right) \| \pi_{\theta}\left(\cdot \mid s_{t}\right)\right) \leq \delta \end{array} Jθold ​​(θ)=Et​[πθold ​​(at​∣st​)πθ​(at​∣st​)​Rt​] subject to KL(πθold ​​(⋅∣st​)∥πθ​(⋅∣st​))≤δ​

由于TRPO涉及了大量会把我绕晕的理论我也姑且先不复现了

ACKTR

Y. Wu, et al. “Scalable trust-region method for deep reinforcement learning using Kronecker-factored approximation”. NIPS 2017

目标是为了提高TRPO的计算效率

SGD 是一阶优化
natural policy gradient 二阶优化,单数需要矩阵求逆,计算销量较低
K-FAC 不断分解矩阵,把大矩阵求逆变换成小矩阵求逆

PPO

保留了TRPO的约束条件

maximize ⁡ θ E t [ π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) A t ]  subject to  E t [ K L [ π θ o l d ( . ∣ s t ) , π θ ( . ∣ s t ) ] ] ≤ δ \begin{array}{l} \operatorname{maximize}_{\theta} \mathbb{E}_{t}\left[\frac{\pi_{\theta}\left(a_{t} \mid s_{t}\right)}{\pi_{\theta_{o l d}}\left(a_{t} \mid s_{t}\right)} A_{t}\right] \\ \text { subject to } \mathbb{E}_{t}\left[K L\left[\pi_{\theta_{o l d}}\left(. \mid s_{t}\right), \pi_{\theta}\left(. \mid s_{t}\right)\right]\right] \leq \delta \end{array} maximizeθ​Et​[πθold​​(at​∣st​)πθ​(at​∣st​)​At​] subject to Et​[KL[πθold​​(.∣st​),πθ​(.∣st​)]]≤δ​
unconstrained form ->
maximize ⁡ θ E t [ π θ ( a t ∣ s t ) π θ old  ( a t ∣ s t ) A t ] − β E t [ K L [ π θ old  ( ⋅ ∣ s t ) , π θ ( . ∣ s t ) ] ] \operatorname{maximize}_{\theta} \mathbb{E}_{t}\left[\frac{\pi_{\theta}\left(a_{t} \mid s_{t}\right)}{\pi_{\theta_{\text {old }}}\left(a_{t} \mid s_{t}\right)} A_{t}\right]-\beta \mathbb{E}_{t}\left[K L\left[\pi_{\theta_{\text {old }}}\left(\cdot \mid s_{t}\right), \pi_{\theta}\left(. \mid s_{t}\right)\right]\right] maximizeθ​Et​[πθold ​​(at​∣st​)πθ​(at​∣st​)​At​]−βEt​[KL[πθold ​​(⋅∣st​),πθ​(.∣st​)]]

PPO1

自适应优化
在这里插入图片描述

PPO2

这个实现除了周老师的tuturial还参考了https://github.com/zhangchuheng123/Reinforcement-Implementation/blob/master/code/ppo.py

记probability ratio 为
r t ( θ ) = π θ ( a t ∣ s t ) π θ old  ( a t ∣ s t ) r_{t}(\theta)=\frac{\pi_{\theta}\left(a_{t} \mid s_{t}\right)}{\pi_{\theta_{\text {old }}}\left(a_{t} \mid s_{t}\right)} rt​(θ)=πθold ​​(at​∣st​)πθ​(at​∣st​)​
用clip将这个值限定在一定范围内
L t ( θ ) = min ⁡ ( r t ( θ ) A ^ t , clip ⁡ ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) A ^ t ) L_{t}(\theta)=\min \left(r_{t}(\theta) \hat{A}_{t}, \operatorname{clip}\left(r_{t}(\theta), 1-\epsilon, 1+\epsilon\right) \hat{A}_{t}\right) Lt​(θ)=min(rt​(θ)A^t​,clip(rt​(θ),1−ϵ,1+ϵ)A^t​)
因此
当advantage 为正,loss 有上界
L ( θ ; θ o l d ) = min ⁡ ( π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) , ( 1 + ϵ ) ) A ^ t L\left(\theta ; \theta_{o l d}\right)=\min \left(\frac{\pi_{\theta}\left(a_{t} \mid s_{t}\right)}{\pi_{\theta_{o l d}}\left(a_{t} \mid s_{t}\right)},(1+\epsilon)\right) \hat{A}_{t} L(θ;θold​)=min(πθold​​(at​∣st​)πθ​(at​∣st​)​,(1+ϵ))A^t​
否则,有下界
L ( θ ; θ o l d ) = max ⁡ ( π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) , ( 1 − ϵ ) ) A ^ t L\left(\theta ; \theta_{o l d}\right)=\max \left(\frac{\pi_{\theta}\left(a_{t} \mid s_{t}\right)}{\pi_{\theta_{o l d}}\left(a_{t} \mid s_{t}\right)},(1-\epsilon)\right) \hat{A}_{t} L(θ;θold​)=max(πθold​​(at​∣st​)πθ​(at​∣st​)​,(1−ϵ))A^t​
因此
在这里插入图片描述

code

首先是动作部分,这里需要返回把做选择时候的action_log_probs以及value都保存到经验池

    def get_action(self, observation, *arg):
        obs = th.FloatTensor(observation)
        action_index, value, action_log_probs, _ = self.ac.select_action(obs=obs)
        return int(action_index), action_log_probs, value

然后是训练部分,可以拆开看其中的两个主要部分:
首先是计算advantage:
最简单的版本是:

        advangtage = th.zeros_like(reward)
        pre_return = 0
        for i in range(advangtage.shape[0]-1, -1, -1):
            pre_return = reward[i] + (1 - done[i]) * self.gamma * pre_return
            advangtage[i] = pre_return - value[i]

高级版本里面可以用到 λ \lambda λ 的思路

        advangtage = th.zeros_like(reward)
        returns = th.zeros_like(reward)
        deltas = th.zeros_like(reward)
        pre_return = 0
        pre_value = 0
        pre_advantage = 0
        for i in range(advangtage.shape[0]-1, -1, -1):
            returns[i] = reward[i] + (1 - done[i]) * self.gamma * pre_return
            deltas[i] = reward[i] + (1 - done[i]) * self.gamma * pre_value - value[i]
            advangtage[i] = deltas[i] + (1 - done[i]) * self.gamma * self.lamda * pre_advantage
            pre_return = returns[i]
            pre_value = value[i]
            pre_advantage = advangtage[i]

然后是训练,可以注意到loss有三个部分组成

            minibatch_new_value, minibatch_new_action_log_prob, minibatch_dist_entropy, _ \
                = self.ac.evaluate_actions(obs=minibatch_obs, action=action_index)
            ratio = th.exp(minibatch_old_action_log_prob - minibatch_new_action_log_prob)
            surr1 = ratio * minibatch_advantange
            surr2 = ratio.clamp( 1 - self.clip, 1 + self.clip)
            loss_surr = - th.mean(th.min(surr1, surr2))

            if self.lossvalue_norm:
                minibatch_return_6std = 6 * minibatch_return.std()
                loss_value = th.mean((minibatch_new_value - minibatch_return).pow(2))/minibatch_return_6std
            else:
                loss_value = th.mean((minibatch_new_value - minibatch_return).pow(2))

            loss_entropy = th.mean(th.exp(minibatch_new_action_log_prob) * minibatch_new_action_log_prob)

            total_loss = loss_surr + self.loss_coeff_value * loss_value + self.loss_coeff_entropy * loss_entropy

            self.optimiser.zero_grad()
            total_loss.backward()
            self.optimiser.step()

最后呢有一个需要注意到部分是关于存储和采样的几个小细节,

  1. 一般复现都是用rollout storage。我其实还困惑了蛮久,这和DQN的memory buffer有什么区别,但是经过反复对比验证,可能主要区别就在于DQN中理想情况下是不会丢弃旧经验的,但是在rollout storage中会有一个固定的相对小的空间,遵循先入先出原则。
  2. 每次训练的时候实际上是取得所有存储的样本,然后对这些些样本做几次随机采样,并进行训练
    def learn(self, memory):
        batch = memory.get_current_trajectory()

        obs = th.FloatTensor(batch['observation'])
        action_index = th.LongTensor(batch['action_index'])
        next_obs = th.FloatTensor(batch['next_obs'])
        reward = th.FloatTensor(batch['reward'])
        done = th.FloatTensor(batch['done'])
        old_action_log_prob = th.FloatTensor(batch['action_log_prob'])
        value = th.FloatTensor(batch['value'])
		...
		
        for _ in range(self.ppo_epoch):
            minibatch_ind = np.random.choice(self.batch_size, self.minibatch_size, replace=False)
            minibatch_obs = obs[minibatch_ind]
            minibatch_old_action_log_prob = old_action_log_prob[minibatch_ind]
            minibatch_advantange = advangtage[minibatch_ind]
            minibatch_return = returns[minibatch_ind]
            ...
实验结果

loss 因为loss有三个项, 他们回传的程度分别是

loss_surrloss_valueloss_entropy
1loss_coeff_valueloss_coeff_entropy

需要自己调节吧,

  • 当熵回传的比重低,就会早早停在一个不太好的解
  • 当熵回传的比重高,策略就会倾向于均匀动作,相当于啥也没学到
  • 感觉其实挺难调到好的解的

在这里插入图片描述

动作倾向
可以看到动作倾向黄了,这说明策略是相对匀称,
可能是他终于明白这个环境要求匀称的策略
但鉴于结果还是不太好,也可能只是最大熵push它表现出这种策略
在这里插入图片描述

强化学习Python工具链实战指南:gymnasium、SB3与可视化闭环 强化学习(Reinforcement Learning)作为智能决策的核心范式,其工程落地高度依赖稳定、可调试、可复现的Python工具链。理解环境抽象(如gymnasium对terminated/truncated的语义分离)、算法封装(stable-baselines3统一接口与回调机制)及多粒度可视化(tensorboard微观监控 + wandb宏观实验管理)是跨越理论到实践的关键跃迁。这些技术不仅支撑CartPole等经典任务的快速验证,更在工业机器人控制、金融交易仿真等复杂场景中保障训练稳定性与 阅读详情

相关推荐

强化学习实战工具链:从gymnasium到torchrl的进阶路线图

强化学习(RL)不是纯理论推导,而是环境建模、算法实现与实验验证的工程闭环。理解马尔可夫决策过程(MDP)是起点,但真正落地需依托标准化工具链:gymnasium 提供严谨、显式化的环境接口,强制区分 terminated/truncated 并规范随机性控制;stable-baselines3 封装主流算法为可调试黑盒,大幅降低 PPO、DQN 等算法的验证门槛;rlberry 面向科研需求,自动化多种子实验、置信区间统计与 LaTeX 报告生成;而 torchrl 作为 PyTorch 官方原语库,支持

diegouyi3472的博客 454

强化学习策略梯度梳理4-SOTA中(DDPG TD3 SAC SAC-dicrete 附代码)

强化学习策略梯度梳理-SOTA下强化学习策略梯度梳理-SOTA下进阶方向2Q-learningDDPG连续空间TD3SAC 强化学习策略梯度梳理-SOTA下 同前文 这个部分仍然参考周博磊老师的第六节的顺序 主要参考课程 Intro to Reinforcement Learning,Bolei Zhou 相关文中代码 https://github.com/ThousandOfWind/RL-basic-alg.git 进阶方向2 Q-learning 这里标出Q-learning只是为了强调 DQN的ta

thousandsofwind的博客 3686

深度强化学习实现移动机器人导航避障:从仿真训练到实车部署的完整指南

深度强化学习将感知、决策与控制压缩为端到端策略网络,为移动机器人导航避障提供了无需显式建图的新范式。其核心原理是通过与环境交互获取奖励信号,自主学习“安全且快速到达目标”的动作策略。相较于传统A*、DWA等解耦管线,这一技术能自然产生更流畅的避障行为,并在仿真环境中表现出色,但直接迁移到实车时往往因物理差异而性能骤降。从算法选型到奖励设计,从域随机化到传感器噪声模拟,本文系统梳理了PPO、TD3、SAC等常用算法的适用场景,并给出可复现的项目骨架与工程实践建议,帮助读者在真实机器人上稳定部署强化学习导航策略

weixin_30835649的博客 497

强化学习策略梯度梳理-SOTA下(A2C,A3C 代码)

强化学习策略梯度梳理-SOTA上策略梯度SOTAA3C (Asynchronous Advantage Actor critic)QAC -> A3C 策略梯度SOTA 这个部分主要参考周博磊老师的第九节的顺序 主要参考课程 Intro to Reinforcement Learning,Bolei Zhou 相关文中代码 https://github.com/ThousandOfWind/RL-basic-alg.git 参考到了pytorch a3c A3C (Asynchronous Adva

thousandsofwind的博客 1085

深度强化学习PPO算法(python)

基于Tensorflow实现的PPO算法,依赖库:tensorflow-1.4及以上,gym

AURIXTC3XX系列的SOTA机制详解 硬件工程师电路分析物联网模电单片机嵌入式技术.doc

物联网 硬件工程师 新能源汽车 相关文档

【DeepMind】新算法MuZero在Atari基准上取得了新SOTA效果,成果问鼎Nature

深度强化学习实验室来源:AI科技评论作者:陈彩娴、青暮编辑:DeepRL近日,DeepMind一篇关于MuZero的论文“Mastering Atari, Go, Chess and ...

深度强化学习实验室:一个“开源开放、共享共进”的强化学习学术组织。 1270

RDMA 出现背景、如何实现?如何测试连通性?

文章目录一、背景:1、传统的 网络通信:2、传统网络通信的问题:二、RDMA :1、出现背景:2、RDMA 简介:3、如何工作:4、RDMA 与 Infiniband 的关系:5、支持 RDMA 的其他协议:6、RDMA 的优势:7、通过 Infiniband 实现 RDMA :8、如何测试 RDMA 连通性:   一、背景: 1、传统的 网络通信:     &n...

郑泽林 2162

双热点结合!GNN+强化学习 刷爆SOTA

性能提升:在Cyber Autonomy Gym for Experimentation (CAGE 2)环境中验证了方法的有效性,展示了代理在未训练过的网络变体上的性能提升。性能提升:在多个图和节点级任务中验证了方法的有效性,显示出比微调和其他基于提示的方法更好的分类性能和数据效率,平均提升1.64%。性能提升:在成都和纽约的真实城市数据上验证了框架的性能,展示了策略的零样本转移能力,与控制方法相比,性能提升接近最优。新的图表示方法:提出了一种新的图表示方法,适用于所有CSP实例,无需特定问题的图简化。

2401_88556812的博客 1561

Github多人协作

最近有门课程需要几个人一起开发一个项目,此前我们基本都是单干的,多人合作意味着需要及时将我们每个人的代码进行合并,U盘传文件这种方式太慢了,效率不行,而且没法解决两个人同时修改一个文件的问题,这次我们就尝试使用Github来协助开发。下面就来记录一下这次开发遇到的一些问题和解决的方法。 Git的安装 从官网下载最新版按照默认安装即可。 此处不多加说明。 Git常用命令 在此放上一...

yzr1216的博客 1万+

深入解析XTEA加密算法的核心机制与优化策略

本文深入解析XTEA加密算法的核心机制与优化策略,详细介绍了XTEA在嵌入式系统和资源受限环境中的优势,包括其高效的加解密速度和低资源消耗。文章还探讨了XTEA的轮函数设计、关键参数优化策略以及实战应用中的性能对比,为开发者提供了安全增强方案和优化技巧。

k8l9m0n的博客 243

GNN携手强化学习!刷爆顶会SOTA,霸榜的28个顶会方案!

图神经网络(GNN)与强化学习(RL)的结合,是一个充满活力的研究领域,它融合了GNN在图数据表示上的深度学习能力和RL在决策过程中的策略优化能力。这种结合为处理具有复杂图结构的数据问题提供了强大的工具。GNN能够深入挖掘图中的模式和关系,而RL则擅长在动态环境中进行序列决策,尤其是在需要长期规划和适应环境变化的情况下。通过将两者结合起来,可以开发出能够同时学习图结构表示和做出最优决策的智能模型。

1552

固件测试工具选型需要考察的功能点汇总

通过专业的固件测试工具可以帮助我们提高测试效率、提升测试的覆盖度、确保测试的准确性,保障产品的安全和质量。本文我们讲固件测试工具的功能点进行梳理和汇总,方便大家在采购固件测试工具时进行选型比对。

daopuyun的博客 2113

深度强化学习的‘黑箱’揭秘:从Q-learning到策略梯度的算法进化史

本文深入探讨了深度强化学习(DRL)从Q-learning到策略梯度的算法演进历程,揭示了其核心原理与关键技术突破。文章详细解析了DRL如何解决传统强化学习的维度灾难问题,并介绍了现代算法如PPO和Actor-Critic框架的优化策略。同时,提供了实战中的超参数调优指南和常见陷阱分析,展望了多模态DRL和元强化学习等前沿趋势。

rock5的博客 660

AC360变频器使用案例

AC360变频器使用案例!

QING_BOSS的博客 518

二十一.基于国民MCU 的增加M4F DSP库调用的验证

Cortex-M4F内核不仅内置硬件FPU单元,还支持多种DSP指令集,比如支持单周期乘加指令(MAC)等。因此Cortex-M4执行所有的DSP指令集都可以在单周期内完成,而Cortex-M3和M0需要多个指令和多个周期才能完成同样的功能。比如开方运算,M3和M0只能通过迭代法(标准数学函数库)计算,而M4F直接调用VSQRT指令完成。参考:\Nationstech.N32G45x_Library.1.1.1\Nationstech.N32G45x_Library.1.1.1\projects\n32g4

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 934

深度强化学习实战指南:从核心算法到工业落地

深度强化学习(DRL)以价值函数方法(如DQN、Rainbow)和策略梯度方法(如PPO、SAC)为核心技术路线,通过优化策略与价值评估实现智能决策。在游戏AI(如腾讯“觉悟”)、工业控制(如华为数据中心节能)及自动驾驶等领域已实现规模化落地。主流工具链包括Ray/RLlib(分布式训练)、Stable-Baselines3(快速原型)及国产框架PARL/天授(中文友好)。当前DRL面临样本效率低、稀疏奖励及仿真到现实迁移等挑战,未来趋势聚焦离线强化学习、与大模型结合及安全可信框架构建。通过结合高效算法与成

1256

拼多多小球直径轨迹重合验证码识别

本文分析了拼多多新型验证码的实现原理与破解思路。该验证码采用Canvas绘制小球弹跳轨迹验证,主要难点在于参数还原和轨迹计算。作者通过逆向工程提取了包括弹跳段数、振幅、旋转参数等关键配置(存储在config.json),并利用Python成功模拟了验证过程。核心算法将滑块值映射为0-1区间,通过三次变换计算小球位置,最终采用斜率截距最小值比对完成验证。整个过程分为静态初始化、核心计算和动态渲染三个阶段,其中干扰元素不影响核心验证逻辑。该研究仅用于技术学习,强调严禁任何违法行为。

码王吴彦祖的博客 1336

强化学习学习(1)概况

强化学习(Reinforcement Learning, RL)算法可以按照等不同维度分类。下面用一张“思维导图式”清单,把常用算法按和。

weixin_42700971的博客 863

Python爬虫实战:高效爬取华尔街日报文章的技术与代码详解

在当今信息爆炸的时代,金融数据和分析对于投资者、研究人员和企业决策者来说至关重要。华尔街日报(WSJ)作为全球最具影响力的财经媒体之一,其文章内容具有极高的价值。本文将详细介绍如何使用Python最新技术构建一个高效、稳定的华尔街日报文章爬虫,涵盖从基础到高级的各种技术要点。本文详细介绍了如何使用Python最新技术构建一个高效、稳定的华尔街日报文章爬虫。我们从基础爬虫实现开始,逐步添加了高级功能如分布式处理、反反爬虫策略、数据清洗和存储等。异步处理:使用asyncio和httpx实现高性能网络请求。

2201_76125261的博客 386

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

深度强化学习实战指南:从PPO、DQN算法原理到调参部署全解析

这类课程标题看着很吸引人,但真正想学的人,最该关心的不是“100集”这个数字,而是这套内容能不能帮你把强化学习从“知道概念”变成“能动手、能调参、能解决实际问题”。深度强化学习(DRL)这几年在游戏AI、机器人控制、推荐系统里应用很广,但它的学习曲线很陡,很多人卡在理论看不懂、代码跑不通、效果调不出来这几个环节。 一个能帮你“学完即可就业”的课程,核心价值不在于覆盖了多少算法名字,而在于它是否解决了这三个实际问题: 1. 把数学公式和代码实现真正对应起来 ; 2. 给出可复现、可修改的实战项目环境 ; 3.

weixin_33910137的博客 510

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

强化学习算法解析:从基础理论到工程实践

强化学习作为机器学习的重要分支,通过智能体与环境的交互学习最优策略。其核心理论基于马尔可夫决策过程(MDP),衍生出蒙特卡洛方法、时序差分学习和动态规划等基础算法。深度强化学习革命性地结合了神经网络,诞生了DQN及其变种,解决了传统方法的稳定性问题。在工程实践中,策略优化算法如PPO和RLHF技术栈成为大模型对齐的关键工具。这些技术广泛应用于游戏AI、机器人控制和自动驾驶等领域,其中经验回放和目标网络等创新显著提升了训练效率。随着DPO等新算法的出现,强化学习正朝着参数高效、训练稳定的方向发展。

weixin_33895695的博客 371

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

多智能体(MAS)核心知识体系梳理

多智能体系统(MAS)是人工智能从单体智能向群体智能发展的核心技术,通过多个自主智能体的交互协作实现复杂任务。文章系统梳理了MAS的核心知识框架,包括基础认知、核心理论、关键问题、算法演进和应用场景。重点分析了信用分配、环境非平稳性等五大技术挑战,以及QMIX、MADDPG等前沿算法解决方案。在智能制造、自动驾驶等领域已实现规模化应用,未来将与大模型融合,解决安全伦理等挑战,推动AGI发展。MAS作为实现群体智能的关键范式,正成为AI迈向通用智能的重要技术支撑。

1887

强化学习算法关系图谱

梳理强化学习算法的,按照的逻辑展开。

weixin_42019995的博客 328

verl超参调优实战:影响训练效果的核心设置指南

本文介绍了基于星图GPU平台自动化部署verl镜像的实践方法,重点解析影响训练效果的核心超参数配置。通过该平台可快速搭建强化学习环境,适用于大语言模型的指令微调与偏好对齐等典型AI应用开发场景,助力高效实现模型性能优化。

weixin_42388898的博客 308

强化学习稀疏奖励问题的工程化解决方案全景

稀疏奖励是强化学习在真实场景落地的核心瓶颈,本质源于环境反馈信号的低频、延迟与高噪声特性。其原理在于标量奖励无法承载人类对‘过程正确性’的隐式判断,导致策略梯度消失或误导。技术价值体现在将不可观测任务目标转化为可观测学习信号,支撑智能体在无即时反馈下持续进化。典型应用场景涵盖机器人操作、金融交易、医疗手术等长周期、高精度、强约束领域。本文系统梳理HER、内在动机、课程学习与对比表征四大主线方案,聚焦如何从仿真到实机抑制性能衰减,并强调任务感知、物理可行性与状态鲁棒性三大工程关键。

weixin_34034670的博客 439
上一篇: 强化学习策略梯度梳理2 - AC(附代码)
下一篇: 强化学习策略梯度梳理4-SOTA中(DDPG TD3 SAC SAC-dicrete 附代码)
ThousandsOfWind
博客等级 码龄11年 21粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值