Skip to content

Conversation

@Mi-729
Copy link

@Mi-729 Mi-729 commented Jan 22, 2026

问题描述

修复了 PPO-Lagrange 算法在训练过程中出现的 NaN 值和断言失败问题。

修改内容

  1. online_adapter.py:

    • 添加输入 action 的 NaN 检测和处理
    • 添加 reward、cost、obs 的 NaN 防护
    • 添加异常处理包装
  2. ppo_lag.py:

    • 修复 cost_limit 断言条件
    • 改进梯度计算的数值稳定性
    • 修复拉格朗日乘子更新逻辑
  3. policy_gradient.py:

    • 优化梯度计算流程
    • 改进数值稳定性
  4. onpolicy_adapter.py:

    • 同步相关适配器修改
  5. 新增脚本:

    • reproduce_nan_issue.py: NaN 问题复现和调试脚本
    • train_with_risk.py: 风险敏感训练对比实验脚本

测试验证

  • 修复了 NaN 值导致的训练崩溃
  • 修复了 cost_limit 断言失败
  • 提高了算法的数值稳定性和鲁棒性
  • 新增脚本可用于问题复现和实验对比

影响范围

这些修改主要影响:

  • 使用 PPO-Lagrange 算法的安全强化学习训练
  • 在数值不稳定环境中训练的鲁棒性
  • 调试和实验工具的完整性

详细修改:
1. online_adapter.py:
   - 添加输入action的NaN检测和处理
   - 添加reward、cost、obs的NaN防护
   - 添加异常处理包装

2. ppo_lag.py:
   - 修复cost_limit断言条件
   - 改进梯度计算的数值稳定性
   - 修复拉格朗日乘子更新逻辑

3. policy_gradient.py:
   - 优化梯度计算流程
   - 改进数值稳定性

4. onpolicy_adapter.py:
   - 同步相关适配器修改

这些修改解决了训练过程中出现的NaN值和断言失败问题,提高了算法的鲁棒性。
- reproduce_nan_issue.py: 用于复现和调试PPO-Lagrange中的NaN值问题
- train_with_risk.py: 对比实验脚本,支持风险敏感安全强化学习训练
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant