图解强化学习 |手算PG算法

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: PG(Policy Gradient)策略梯度算法直接优化策略网络,输出动作概率而非价值,适用于离散/连续动作空间。需整回合采样后计算折扣回报Gₜ,以-logπ·G为损失函数更新参数,提升高回报动作概率。可引入基线(如平均回报)构建优势函数,提升训练稳定性与效率。(239字)

 PG算法的基础认识

Policy Gradient,策略梯度算法

传统价值算法(DQN)只能选离散最优动作,连续动作场景难以适配PG直接优化决策策略,离

散、连续动作空间都能适用不靠估值选动作,直接更新策略参数;需跑完完整回合汇总数据后再更

新。

image.gif


PG的网络结构

策略网络(Policy Network)

PG 只有一个网络:Actor 网络,没有 Critic,没有价值输出。

输入:当前的状态S

输出:动作的概率

输入状态 s (6维)
全连接层 1 (ReLU)
全连接层 2 (ReLU)
输出层 → Softmax → 动作概率 [p0, p1, p2]

image.gif

PG 不输出价值,只输出动作概率

image.gif


网络更新

网络更新过程

目的:让总奖励高的动作被选中的概率变大,让总奖励低的动作概率变小,直接优化决策策略。

(1)采集一整条回合数据。

从游戏开始到结束,收集所有的:状态 s、动作 a、奖励 r、是否结束 done

(PG 必须等一整局玩完才能更新)

(2)计算每一步动作的 累计折扣回报 Gₜ。

从当前步开始,到回合结束,所有未来奖励的加权总和:



Gₜ 越大 → 这个动作越好

Gₜ 越小 → 这个动作越差

(3)前向传播,计算动作的对数概率

将状态 s 输入 PG 策略网络,得到动作概率 π(a|s),再取对数

image.gif

(4)计算 PG 损失函数

image.gif

(5)反向传播更新网络参数

 最小化损失 → 等价于 最大化总奖励→ 好动作概率上升,坏动作概率下降

PG 更新 = 收集整局数据 → 算总回报 G → 用 -logπ * G 做损失 → 让好动作更容易被选中

log_prob = log( 你刚才选的那个动作的概率 )

用 log_prob,乘积求导转为加减求导,梯度计算数学上更简便,最大化动作概率等价最大化对数

概率,适配深度学习最小损失的优化范式。

作用只有一个:告诉网络,我刚才选了哪个动作。因为概率永远 < 1,所以

log_prob 永远是负数。(0.9 → -0.1;0.5 → -0.69;0.1 → -2.3)

G(累计奖励)

G 代表:你刚才做的这个动作,到底好不好

G 越大 → 动作越好

G 越小 → 动作越差

带基线的 PG

下面的流程图中,我们并没有使用回报,而是使用了优势函数:

区别在于:

之前(用 G_t):两个动作都被强化(因为 G_t 都是正的)

现在(用 Advantage):只强化“比平均好”的动作,抑制“比平均差”的动作

baseline的确定,最简单的方式比如可以使用用当前 batch 的平均回报

G = [2.8, 2.0]

b = (2.8 + 2.0) / 2 = 2.4

b0 = b1 = 2.4

image.gif


手动计算

动作空间:{左(0), 右(1)}

折扣因子:γ = 0.9

批次:先看单条轨迹(B=1),长度 T=2

策略网络:给定状态输出动作概率(softmax 后)

t = 0

输入:当前状态s    

输出 logits:z0 = [0.2, 1.0]

softmax 得到概率: πθ(a|s0) = softmax(z0)≈ [0.31, 0.69]      P(左)=0.31    P(右)=0.69

采样动作  a0 = 1(右)

环境反馈奖励 r0 = 1

进入下一状态s1

t = 1

z1 = [1.2, 0.3]

πθ(a|s1) ≈ [0.71, 0.29]

a1 = 0(左)

r1 = 2

τ = {

     s0, a0=1, r0=1,

     s1, a1=0, r1=2

}

计算 Return(回报)

image.gif

(1)PG算法叫做策略梯度算法,因为直接对策略进行梯度优化

(2)策略梯度公式:

image.gif

(3)回合制更新

image.gif 编辑


目录
相关文章
|
5天前
|
弹性计算 前端开发 Ubuntu
阿里云服务器ECS的租用教程和简单的前端页面部署
本文详解阿里云学生福利领取(含300元卡券)及ECS轻量服务器选购与部署全流程:涵盖学生机免费申领、配置选型建议(Ubuntu/CentOS/Windows)、安全组设置、Nginx安装、网页部署及Xshell远程连接等实操步骤,新手友好。
247 8
|
5天前
|
供应链 数据安全/隐私保护
1688新手零基础运营全攻略,新手快速起店实操指南
本文为1688新手商家量身打造的零基础运营指南,涵盖合规入驻、店铺装修、产品优化、免费流量获取、BSR权重提升及高频避坑技巧,全程实操、无套路、零付费,助新手快速起店、稳定出单。
13762 1
|
5天前
|
JavaScript 定位技术 API
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
CodeGraph 是一款爆火的本地代码智能工具,通过 tree-sitter 解析 AST 构建结构化知识图谱(存于 SQLite),为编程 Agent 提前生成“代码地图”。它显著降低 Agent 在中大型项目中的探索成本——实测工具调用减少71%、Token 降57%、速度提升46%,支持19+语言及主流框架路由识别,完全离线、无需 API Key。
634 3
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
|
1月前
|
Ubuntu Linux Windows
Rufus中文版U盘启动盘制作工具使用全攻略(图文版)
Rufus是一款免费开源、体积仅约2MB的便携式U盘启动盘制作工具,免安装、自带简体中文,支持UEFI+BIOS双模式,写入快、校验准,轻松将Windows/Linux等ISO镜像写入U盘。(239字)
|
28天前
|
机器学习/深度学习 IDE 数据挖掘
2026最新Jupyter Notebook安装使用保姆级教程(附安装包+图文步骤)
Jupyter Notebook是基于网页的交互式编程工具,支持Python、R等数十种语言。以单元格为单位执行代码,即时显示结果,融合代码、文字与图表,适合数据分析、教学及报告编写。推荐通过Anaconda一键安装。
|
2月前
|
存储 人工智能 安全
深度解析 OpenClaw 在 Prompt / Context / Harness 三个维度中的设计哲学与实践
本文的核心思路是从Prompt、Context和Harness这三个维度展开,分析OpenClaw的设计思路,提炼出其中可复用的方法论,来思考如何将这些精华的设计哲学应用到我们自己的Agent系统设计和业务落地中去。(文章内容基于作者个人技术实践与独立思考,旨在分享经验,仅代表个人观点。)
2113 43
深度解析 OpenClaw 在 Prompt / Context / Harness 三个维度中的设计哲学与实践
|
5天前
|
人工智能 机器人 芯片
人工智能|YOLOv8实战
本内容为安全帽检测实战项目,基于YOLOv8模型,涵盖Kaggle数据获取、自定义yaml配置、模型训练(yolo_train.py)与测试(yolo_test.py),并提供服务器(FastAPI+Docker)、边缘(Jetson+TensorRT)及国产嵌入式(RK3588+RKNN)三类部署方案,支持工业场景实时智能识别。(239字)
189 1
|
5天前
|
人工智能 自然语言处理 API
阿里云海外重磅发布 Qwen Cloud
Qwen Cloud,正是为AI Agent 而生的全新服务方式。
1181 44
|
5天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
8559 37
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考

热门文章

最新文章