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

Policy Gradient 之 A3C 与 A2C 算法 Policy Gradient 之 A3C 与 A2C 算法MotivationBackground Motivation 之前参加了学习强化学习以及PARL框架的训练营。这次是上次学习的一个拓展(“你学习,我送书,一起来爬RL的大山”)。这里主要来研究一下Policy Gradient下面的一个非常重要的算法A3C。 Background Policy Gradient方法是对立于Value-based方法的另外一大类解决强化学习问题的算法。Policy Gradient下属有许多重要的算法,比如最基本的 阅读详情

策略梯度SOTA

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

分布式Actor learner

A2C

A2C还没有分布式,只是后面分布了A2C,基于QAC我们做两个改动

advantage & lambda return

这里懒了一下,直接从ppo那里抄过来的

        # advantage
        advantage = 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(advantage.shape[0]-1, -1, -1):
            returns[i] = reward[i] + self.gamma * pre_return
            deltas[i] = reward[i] + self.gamma * pre_value - value[i]
            advantage[i] = deltas[i] + self.gamma * self.lamda * pre_advantage
            pre_return = returns[i]
            pre_value = value[i]
            pre_advantage = advantage[i]
最大熵
        entropies = -(log_pi * log_pi.exp()).sum(dim=1, keepdim=True)
        J = - (advantage.detach() * log_pi + entropies).mean()

batched A2C

多线程,同步更新,效率还比较低

A3C(Asynchronous Advantage Actor critic)

只是比A2C多了Asynchronous

  1. 在cpu上并行多个actor和本地环境交互
  2. 因为多个actor提供多样化的经验,所以不需要经验池
  3. 在本地计算梯度,并把梯度更新到目标网络上

在这里插入图片描述

worker

首先worker初始化的时候需要也传入那个真正被更新的网络

    def __init__(self, param_set, writer, share_model:DNNAgent, optimizer):
        self.obs_shape = param_set['obs_shape'][0]
        self.gamma = param_set['gamma']
        self.learning_rate = param_set['learning_rate']
        self.clone_share_model = param_set['clone_share_model']
        self.id = param_set['worker_id']

        self.ac = copy.deepcopy(share_model)
        self.soft_clone = param_set['soft_clone']
        if self.soft_clone:
            self.tau = param_set['tau']

        self.params = share_model.parameters()
        self.optimiser = optimizer

梯度回传的时候需要是把本地梯度引入到全局

        self.optimiser.zero_grad()
        loss.backward()
        grad_norm = th.nn.utils.clip_grad_norm_(self.params, 10)
        self.ensure_shared_grads()
        self.optimiser.step()

利用函数

    def ensure_shared_grads(self):
        for param, shared_param in zip(self.ac.parameters(),
                                       self.params):
            if shared_param.grad is not None:
                return
            shared_param._grad = param.grad
optimiser

这里我还没有懂啦,大概也可以直接用原本的pytorch自带的,我就在这里贴一个短的自定义版本做参考

class GlobalAdam(optim.Adam):
    def __init__(self, params, lr):
        super(GlobalAdam, self).__init__(params, lr=lr)
        for group in self.param_groups:
            for p in group['params']:
                state = self.state[p]
                state['step'] = 0
                state['exp_avg'] = torch.zeros_like(p.data)
                state['exp_avg_sq'] = torch.zeros_like(p.data)

                state['exp_avg'].share_memory_()
                state['exp_avg_sq'].share_memory_()
train
    writer, param_set = init()
    share_model = ac_sharenet(param_set)
    processes = []

    for i in range(param_set['num_processes']):
        p = mp.Process(target=run, args=(writer, param_set, share_model))
        p.start()
        processes.append(p)
    for p in processes:
        p.join()

IMPALA

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

相关推荐

强化学习Python工具链实战指南:gymnasium、SB3与可视化闭环

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

weixin_30825581的博客 372

强化学习策略梯度梳理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

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

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

diegouyi3472的博客 454

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

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

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

ICLR 2022十大论文:神经网络理论建模的关键跃迁

深度学习正从经验调参迈向理论建模阶段,其核心驱动力在于对模型‘如何学习’的本质追问。泛化理论不再依赖传统复杂度上界,而是通过局部弹性界、本征维度等几何与因果视角重新刻画模型行为;神经网络可解释性也突破可视化局限,转向注意力机制的因果干预、梯度路径的隐式偏好分析等原理级理解。这些进展不仅提升了模型鲁棒性与校准能力,更在医疗诊断、工业检测、边缘联邦学习等场景中实现工程落地。ICLR 2022作为该范式转移的标志性节点,集中呈现了泛化理论、神经网络可解释性等关键方向的突破性思想与可复现洞见。

chunchan1381的博客 423

深度学习八大神经网络实战速通:从CNN到Transformer的代码实现与部署

深度学习作为人工智能的核心技术,通过构建多层神经网络模型,能够从数据中自动学习特征与模式。其核心原理在于利用反向传播算法优化网络参数,以最小化预测误差。这项技术的价值在于能够处理图像、文本、序列等复杂数据,实现分类、预测、生成等高级智能任务,广泛应用于计算机视觉、自然语言处理、推荐系统等领域。本文聚焦于CNN、RNN、GAN、Transformer等八大经典神经网络,通过PyTorch和TensorFlow框架,提供从环境搭建、模型训练到效果验证的完整实战路径,帮助初学者快速建立深度学习知识体系,掌握核心模

weixin_30613343的博客 448

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

强化学习策略梯度梳理-SOTA一级目录策略梯度方法总结进阶方向1Trust region policy optimization(TRPO) 一级目录 这个部分主要参考周博磊老师的第六节的顺序 主要参考课程 Intro to Reinforcement Learning,Bolei Zhou 相关文中代码 https://github.com/ThousandOfWind/RL-basic-alg.git 策略梯度方法 首先策略的优化目标是 J(θ)=Eτ∼πθ[R(τ)] J(\theta)=\math

thousandsofwind的博客 979

51c自动驾驶~合集57

多目标多头蒸馏模块:我们看到轨迹模仿学习之后的轨迹还过了其他的MLP,这就是其他头,它的目标也是不一样的,第一个是跟碰撞相关的,第二个是跟行驶区域相关的,第三个是跟舒适度相关的,也就是说不同的评判指标都有一个teacher,之前的模仿学习就是人类的teacher,那么这些teacher是怎么来的呢?本文作者提出的新的范式,就是规划模块是多模的输出,同时,目标也是多样性的,即不仅是GT的轨迹也同时引入了更多的正样本,由不同的专家给出的。还是那句话,小米汽车的成功,是小米价值观,小米模式,和小米方法论的成功。

whaosoft~aiotの开发板商城 2354

深度强化学习——DQN

DQN(Deep Q-Learning)可谓是深度强化学习(Deep Reinforcement Learning)的开山之作,是将深度学习与增强学习结合起来从而实现从感知(Perception)到动作( Action )的端对端(End-to-end)学习的一种全新的算法。

草帽BOY的博客 11万+

不用买VR设备!用UE5内置模拟器开发虚拟现实项目的完整教程

本文提供了一套无需购买昂贵VR硬件的虚拟现实开发最佳实践方案。详细介绍了如何利用虚幻引擎5内置的XR模拟器,从零开始配置开发环境、模拟操作、构建场景并实现核心交互逻辑。通过这套纯软件方案,开发者可以高效学习VR开发核心,大幅降低入门门槛和成本。

weixin_29019241的博客 626

FPGA篮球计分器:从需求分析到模块化实现的实战指南

本文详细介绍了FPGA篮球计分器的设计与实现,涵盖需求分析、模块化设计及实战调试。重点解析了24秒精确倒计时、12分钟比赛计时、比分统计和数码管显示等核心模块的Verilog实现,提供了按键消抖、状态机设计和BCD码处理等关键技术细节,帮助开发者掌握FPGA数字系统设计方法。

sql99的博客 220

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

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

1256

comsol 多物理场仿真流程-以开关柜为例

1、主要方法 在SolidWorks中对于开关柜的内部与外部结构进行建模,生成能够导入软件计算的3D模型。将SolidWorks中的模型导入comsol软件中,设置参数进行多物理场耦合仿真。 1、具体步骤 删除高压开关柜中对其内部电磁环境无较大影响的结构,如低压测量柜、断路器内部结构等。 导入模型:将厂家提供的3D模型转化为solidworks结构模型。 修复模型:修复已转化模型中转化错误的部分、修复已转化模型中非实体部分、修复已转化模型中重叠实体部分 化简模型:去除过于...

健忘16的博客 7020

强化学习学习(1)概况

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

weixin_42700971的博客 863

一文速览:大模型语料构建与基础训练全流程实战指南

因为模型只有看到足够丰富、高质量的数据,才能真正学到“真本事”,展现出更强大的泛化能力,也就是能够在全新的场景和任务下,做出准确的推理和判断。我们日常做饭的时候,通常会先把买回来的菜仔细清洗干净,把坏掉的叶子、泥土、杂质等去除掉。同理,训练大模型的数据就像我们的食材,如果不干净,就会影响模型的学习效果,甚至训练出逻辑紊乱的模型。在大模型的世界里,有一句名言:“Garbage in, Garbage out”,翻译过来就是“垃圾输入,垃圾输出”,说白了,就是给模型喂的是什么数据,它学到的就是什么知识。

master_hunter的博客 1673

手把手教你学simulink实例--基于Simulink的船舶发电柴油机建模与健康状态研究

船舶发电柴油机是现代船舶电力系统的核心设备,为船舶提供稳定的电能供应。然而,由于长期运行在复杂的海洋环境中,船舶发电柴油机容易受到磨损、腐蚀和疲劳等损伤的影响,导致其性能下降甚至发生故障。因此,对船舶发电柴油机进行建模和健康状态监测具有重要意义。本项目旨在使用MATLAB/Simulink平台,建立船舶发电柴油机的动力学模型,并通过仿真分析其健康状态,预测潜在故障,从而提高船舶运行的安全性和经济性。

MHD0815的博客 1326

【论文自动阅读】Deep Reinforcement Learning: A Brief Survey

这篇综述先介绍强化学习(RL)的基础框架(如MDP)与挑战,再重点梳理深度强化学习(DRL)的核心算法(如DQN、TRPO、A3C)、深度神经网络在视觉理解中的应用,最后探讨当前研究方向(如模型基RL、分层RL)与待解决问题。

qq_43854103的博客 590

6-Halcon-- var_threshold 函数功能(用于基于局部统计特性的动态阈值分割的算子)

var_threshold 是 HALCON 中用于基于局部统计特性的动态阈值分割的算子,特别适用于处理低对比度图像或纹理均匀但包含细微差异的场景。与 dyn_threshold 不同,它不依赖预处理生成的参考图像,而是直接在局部区域内计算灰度值的统计特性(均值和标准差),从而自适应调整阈值。

weixin_45590420的博客 1329

强化学习算法关系图谱

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

weixin_42019995的博客 328

Python爬招聘网站:Selenium+ActionChains破解滑动验证码,批量采集岗位数据(新手可跑)

通过本文实战,你不仅学会了用Selenium+ActionChains破解滑动验证码,还掌握了爬虫的核心优化思路——“模拟人类行为”是突破反爬的关键。这套逻辑不仅适用于招聘网站,还能迁移到其他有滑动验证码的平台(如电商、资讯网站)。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1188

(2-4-01)目标检测与分割:地面提取(1)

请看下面的例子,生成了虚拟 LiDAR 点云数据,然后使用 DBSCAN 聚类方法进行 LiDAR 地面提取,并根据聚类结果可视化地面和非地面点云。首先生成虚拟 LiDAR 点云数据,然后基于设定的高程阈值进行地面提取,并通过 Open3D 可视化地面和非地面点云。地面提取是LiDAR(激光雷达)数据处理中的一个重要步骤,其目标是从点云数据中分离出地面点,即地面表面上的点。LiDAR点云数据通常包含地面点和非地面点(例如建筑物、树木等),地面提取的目标是从这些点中准确识别和提取地面点。

码农三叔 703

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

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

weixin_33910137的博客 510

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

51c大模型~合集111

OpenAI 的某发言人表示:「为了提高清晰度和安全性,我们增加了一个额外的后处理步骤,其中模型会审查原始的思维链,删除任何不安全的内容,然后简化某些复杂的思维。可以看到,虽然 ChatGPT 确实完成了任务并展示了总结版的思维链,但似乎并未如 OpenAI 发言人说的那样给出与提示词语言同样语言的总结版。北大-灵初联合实验室表示,Align-DS-V的多模态强推理能力是VLA模型大脑端的核心,接下来的研究训练计划,是利用多模态推理模型的跨模态穿透能力,实现action穿透,最终实现真正高效的VLA模型。

whaosoft~aiotの开发板商城 2320

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

零思考数据驱动:强化学习如何让视觉语言模型学会自主推理?

视觉推理是人工智能领域的关键挑战,旨在让模型不仅能识别图像内容,还能理解其内在逻辑关系并进行因果推断。其核心原理在于将复杂的视觉问答任务分解为可学习的多步推理过程,通过模拟人类认知的链式思考来提升答案的准确性和可解释性。这一技术的核心价值在于突破了传统方法对大量高质量、人工标注的“思维链”数据的依赖,显著降低了数据成本,同时增强了模型在未知场景下的泛化能力。在应用层面,视觉推理技术正广泛应用于智能客服、内容审核、自动驾驶环境理解、医疗影像辅助分析以及工业质检等需要深层语义理解的场景。本文聚焦的“通用视觉推理

conghuang7343的博客 357

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

51c深度学习~合集8

方法的完整数学描述略显复杂,如果只是想了解主要思想,可以只看上面 PatchMix的流程图即可(其实只是公式多,每个公式也不复杂,后续有机会做个演示动画,帮助大家理解。这个方法也可以用简单的 Mask 方法实现,但是本方法在大规模图像处理上效率是最高的),对该工作感兴趣的同行可以看一下,我尽量写得清楚一些。结合 PatMix 的流程图,主要过程如下:由于混合图像和混合图像之间,重叠比例的不同,mix-to-mix label 中每一项的权重分数是不同的,根据上图,可以得到权重系数可以表示为。

whaosoft~aiotの开发板商城 2964

一文速览Gemma 1至Gemma 4:从Gemma 1(MHA/MQA,且π0自定义了300M)、Gemma2(新增局部滑窗/改用GQA)、Gemma 3(含270M且首次出现4B)、Gemma 4

如此文《》所讲Google作为曾经的AI老大,我司自然紧密关注,所以当Google总算开源了一个gemma 7b,作为有技术追求、技术信仰的我司,那必须得支持一下,比如用我司的paper-review数据集微调试下,彰显一下gemma的价值与威力。

结构之法 算法之道 7856
上一篇: 强化学习策略梯度梳理4-SOTA中(DDPG TD3 SAC SAC-dicrete 附代码)
下一篇: 算法:有向图强连通分量 (2020网易互联网秋招笔试题4, 教授)
ThousandsOfWind
博客等级 码龄11年 21粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值