登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
轻量养虾,开箱即用!低 Token + 稳定算力,Gitee & 模力方舟联合出品的 PocketClaw 正式开售!点击了解详情
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
1
Star
0
Fork
0
kindlytrees
/
TRL-with-comments
代码
Issues
5
Pull Requests
0
Wiki
统计
流水线
服务
JavaDoc
PHPDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
开发画像分析
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
TRL中PPO算法的优势函数定义
待办的
#IBRACZ
kindlytrees
拥有者
创建于
2025-03-06 16:31
以下是 **VS Code** 中支持的 **Markdown + LaTeX** 格式(适用于 **Markdown Preview Enhanced** 插件或 **Jupyter Notebook**): # **RLHF 中的优势函数(Advantage Function)推导** ## **1. 价值函数定义** 在强化学习中,我们通常定义两种 **价值函数(Value Functions)**: - **状态值函数(State-Value Function)**: $$ V^{\pi}(s) = \mathbb{E}_{\pi} \left[ \sum_{t=0}^{\infty} \gamma^t r_t \mid s_0 = s \right] $$ 表示在状态 \(s\) 下,遵循策略 \(\pi\) 后期望的累积奖励。 - **状态-动作值函数(Q-Value Function)**: $$ Q^{\pi}(s, a) = \mathbb{E}_{\pi} \left[ \sum_{t=0}^{\infty} \gamma^t r_t \mid s_0 = s, a_0 = a \right] $$ 表示在状态 \(s\) 采取动作 \(a\) 后,遵循策略 \(\pi\) 所获得的累积奖励。 ## **2. 优势函数(Advantage Function)** **优势函数** 用来衡量某个动作 \(a\) 相较于状态值 \(V^{\pi}(s)\) 的好坏程度: $$ A^{\pi}(s, a) = Q^{\pi}(s, a) - V^{\pi}(s) $$ 其中: - **如果 \(A^{\pi}(s, a) > 0\)**,表示该动作比平均水平更优。 - **如果 \(A^{\pi}(s, a) < 0\)**,表示该动作比平均水平更差。 ## **3. 基于 TD 误差的优势函数估计** 在实际计算中,我们常使用 **TD 误差(Temporal Difference Error)** 来近似优势函数: $$ \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t) $$ $$ A_t \approx \delta_t $$ 但是,单步 TD 误差容易受噪声影响,因此我们引入 **广义优势估计(GAE, Generalized Advantage Estimation)** 进行平滑。 ## **4. 广义优势估计(GAE)** GAE 通过引入时间折扣因子 \(\lambda\) 计算平滑的优势值: $$ \hat{A}_t = \sum_{l=0}^{\infty} (\gamma \lambda)^l \delta_{t+l} $$ 其中: - \(\gamma\) 是 **折扣因子**,控制未来奖励对当前决策的影响。 - \(\lambda\) 控制 **短期 vs. 长期的平衡**: - **当 \(\lambda=0\)** 时,GAE 退化为 **单步 TD 误差**。 - **当 \(\lambda=1\)** 时,GAE 退化为 **Monte Carlo 估计**(更稳定但方差大)。 **递归计算公式**: $$ \hat{A}_t = \delta_t + \gamma \lambda \hat{A}_{t+1} $$ 实际实现时,GAE 计算是从 **时间步 T 逆序计算**,即: ```python lastgaelam = 0 advantages_reversed = [] for t in reversed(range(T)): delta = rewards[t] + gamma * values[t+1] - values[t] lastgaelam = delta + gamma * lambda * lastgaelam advantages_reversed.append(lastgaelam) advantages = torch.stack(advantages_reversed[::-1], axis=1) ``` 这样能确保 GAE 的平滑估计能更好地减少方差,提高策略更新的稳定性。 ## **5. 计算回报(Returns)** 最终的回报(Returns): $$ R_t = \hat{A}_t + V(s_t) $$ 这一回报用于训练价值网络,使其更好地估计未来的累积奖励。 --- # **总结** 1. **优势函数定义**:衡量某个动作相对于平均状态值的优劣程度: $$ A(s, a) = Q(s, a) - V(s) $$ 2. **TD 误差估计优势函数**: $$ \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t) $$ 3. **GAE 估计优势值**,通过 \(\lambda\) 控制短期和长期平衡: $$ \hat{A}_t = \delta_t + \gamma \lambda \hat{A}_{t+1} $$ 4. **回报计算**: $$ R_t = \hat{A}_t + V(s_t) $$ 5. **在 RLHF(PPO 训练)中,优势函数用于更新策略梯度,帮助智能体学到更优的行为策略**。 --- 这就是 **RLHF 训练中优势函数的核心推导**。 ### **说明** - 该 Markdown 文件可直接用于 **VS Code**,如果你安装了 **Markdown Preview Enhanced** 插件或 **Jupyter Notebook**,LaTeX 公式会正常渲染。 - 代码部分仍然用 Python 格式,方便代码高亮显示。 - 使用 `$$` 包裹公式,适用于 VS Code 及 Jupyter Notebook 的 MathJax 渲染。 你可以直接复制粘贴到 **VS Code** 进行查看 🚀
以下是 **VS Code** 中支持的 **Markdown + LaTeX** 格式(适用于 **Markdown Preview Enhanced** 插件或 **Jupyter Notebook**): # **RLHF 中的优势函数(Advantage Function)推导** ## **1. 价值函数定义** 在强化学习中,我们通常定义两种 **价值函数(Value Functions)**: - **状态值函数(State-Value Function)**: $$ V^{\pi}(s) = \mathbb{E}_{\pi} \left[ \sum_{t=0}^{\infty} \gamma^t r_t \mid s_0 = s \right] $$ 表示在状态 \(s\) 下,遵循策略 \(\pi\) 后期望的累积奖励。 - **状态-动作值函数(Q-Value Function)**: $$ Q^{\pi}(s, a) = \mathbb{E}_{\pi} \left[ \sum_{t=0}^{\infty} \gamma^t r_t \mid s_0 = s, a_0 = a \right] $$ 表示在状态 \(s\) 采取动作 \(a\) 后,遵循策略 \(\pi\) 所获得的累积奖励。 ## **2. 优势函数(Advantage Function)** **优势函数** 用来衡量某个动作 \(a\) 相较于状态值 \(V^{\pi}(s)\) 的好坏程度: $$ A^{\pi}(s, a) = Q^{\pi}(s, a) - V^{\pi}(s) $$ 其中: - **如果 \(A^{\pi}(s, a) > 0\)**,表示该动作比平均水平更优。 - **如果 \(A^{\pi}(s, a) < 0\)**,表示该动作比平均水平更差。 ## **3. 基于 TD 误差的优势函数估计** 在实际计算中,我们常使用 **TD 误差(Temporal Difference Error)** 来近似优势函数: $$ \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t) $$ $$ A_t \approx \delta_t $$ 但是,单步 TD 误差容易受噪声影响,因此我们引入 **广义优势估计(GAE, Generalized Advantage Estimation)** 进行平滑。 ## **4. 广义优势估计(GAE)** GAE 通过引入时间折扣因子 \(\lambda\) 计算平滑的优势值: $$ \hat{A}_t = \sum_{l=0}^{\infty} (\gamma \lambda)^l \delta_{t+l} $$ 其中: - \(\gamma\) 是 **折扣因子**,控制未来奖励对当前决策的影响。 - \(\lambda\) 控制 **短期 vs. 长期的平衡**: - **当 \(\lambda=0\)** 时,GAE 退化为 **单步 TD 误差**。 - **当 \(\lambda=1\)** 时,GAE 退化为 **Monte Carlo 估计**(更稳定但方差大)。 **递归计算公式**: $$ \hat{A}_t = \delta_t + \gamma \lambda \hat{A}_{t+1} $$ 实际实现时,GAE 计算是从 **时间步 T 逆序计算**,即: ```python lastgaelam = 0 advantages_reversed = [] for t in reversed(range(T)): delta = rewards[t] + gamma * values[t+1] - values[t] lastgaelam = delta + gamma * lambda * lastgaelam advantages_reversed.append(lastgaelam) advantages = torch.stack(advantages_reversed[::-1], axis=1) ``` 这样能确保 GAE 的平滑估计能更好地减少方差,提高策略更新的稳定性。 ## **5. 计算回报(Returns)** 最终的回报(Returns): $$ R_t = \hat{A}_t + V(s_t) $$ 这一回报用于训练价值网络,使其更好地估计未来的累积奖励。 --- # **总结** 1. **优势函数定义**:衡量某个动作相对于平均状态值的优劣程度: $$ A(s, a) = Q(s, a) - V(s) $$ 2. **TD 误差估计优势函数**: $$ \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t) $$ 3. **GAE 估计优势值**,通过 \(\lambda\) 控制短期和长期平衡: $$ \hat{A}_t = \delta_t + \gamma \lambda \hat{A}_{t+1} $$ 4. **回报计算**: $$ R_t = \hat{A}_t + V(s_t) $$ 5. **在 RLHF(PPO 训练)中,优势函数用于更新策略梯度,帮助智能体学到更优的行为策略**。 --- 这就是 **RLHF 训练中优势函数的核心推导**。 ### **说明** - 该 Markdown 文件可直接用于 **VS Code**,如果你安装了 **Markdown Preview Enhanced** 插件或 **Jupyter Notebook**,LaTeX 公式会正常渲染。 - 代码部分仍然用 Python 格式,方便代码高亮显示。 - 使用 `$$` 包裹公式,适用于 VS Code 及 Jupyter Notebook 的 MathJax 渲染。 你可以直接复制粘贴到 **VS Code** 进行查看 🚀
评论 (
0
)
登录
后才可以发表评论
状态
待办的
待办的
进行中
已完成
已关闭
负责人
未设置
标签
未设置
标签管理
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (
-
)
标签 (
-
)
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
参与者(1)
1
https://gitee.com/kindlytree/trl-with-comments.git
git@gitee.com:kindlytree/trl-with-comments.git
kindlytree
trl-with-comments
TRL-with-comments
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册