智能硬件周刊

智能硬件行业资讯,IoT、机器人、AR/VR、智能家居前沿

TensorBoard PPO log 解析 - 孤独的猫咪神

接上篇: macos(M4)上跑强化学习 - PyTorch LunarLander-v3 Stable-Baselines3 官方文档参考:https://stable-baselines3.readthedocs.io/en/master/common/logger.html#explanation-of-logger-output 通用的图例数据基础介绍: Value:原始真实指标数值。(图标中与图例颜色较淡的那根线) Smotthed:TensorBoard 自带曲线滑动平均处理后的数值。主要用来观察整体升降趋势。(图表中和图例相同颜色的那根线) Step:横轴坐标,也就是从训练开始,智能体和环境一共执行了多少步 action。 Relative:相对时间。用来横向对比不同实验训练速度快慢。 Rollout PPO 不是走一步更新一次,而是先收集一批轨迹,再统一训练,这一批收集过程就叫一次 rollout。 其中有2个图标:如下图 rollout/ep_len_mean 本轮 rollout 收集到的所有回合,平均回合长度(其实就是回合执行的时间,这里用步数代替了)。如下图: rollout/ep_rew_mean 本轮 rollout 收集到的所有回合,平均回合奖励(就是平均回合奖励的总数)。如下图: Time 其中只有一个,就是fps。(这个不是游戏渲染帧率)每秒完成多少条环境交互 step,也就是训练数据采集阶段的运行速度。 简单来说,fps越高,收集训练样本速度越快,也就意味着训练速度越快。 Train 这里有9个表格。 train/approx_kl Approximate KL Divergence,近似平均KL散度,代表的是更新前旧策略 和 更新后新策略 的分布差距有多大。 PPO 最核心思想:不能让策略一次性改动太大!,否则训练极易崩溃、震荡。 数值小:新旧策略几乎没变化,更新力度太弱,学习慢 数值大:新策略一次性改动过猛,很危险,容易训崩 网上有很多说法,有说0.001-0.02之间,有说0.001-0.03之间。不过没有找到详细的解析或说明。 train/clip_fraction 被 Clip 裁剪截断的样本占全部样本的比例。 强化学习中,需要限制策略更新幅度,阻止一次性改动过大。也就意味着,更新的新策略越多,裁剪越大。所以这里有一个规律,KL 越高 → 策略改动越大 → 更多样本触发裁剪 → clip_fraction 上升。 train/clip_fraction PPO 裁剪区间的半径,是初始化模型设置的参数。默认为0.2。可以开启动态自适应clip_range。 train/entropy_loss 熵损失。熵(Entropy):用来衡量策略随机性大小。 熵越大:动作概率分布越平均 → 智能体更喜欢随机探索 熵越小:策略趋向确定性,总是固定选最优动作,探索变少 train/explained_variance 解释方差(Explained Variance)专门用来评价 PPO 里 Critic 价值网络(估值网络)预测准不准。 数值区间解读 ≈ 1.0:完美!价值网络预测和真实回报几乎一致 > 0:价值网络有一定预测能力(有效) ≈ 0:价值网络预测效果 ≈ 和直接猜平均值差不多,基本没用 < 0:最差情况!价值网络预测完全不靠谱,甚至还不如直接输出常数均值 train/learning_rate 优化器当前使用的学习率 lr。其实就是控制神经网络每一次参数更新的步幅大小。 lr 大:参数改动幅度大,学习快,但容易震荡、训崩 lr 小:更新平稳,不容易翻车,但收敛速度变慢 图中是固定学习率,没有开启线性衰减(lr_schedule)。开启后随着训练步数增加,学习率会持续慢慢降低,这条曲线会一路向下倾斜。线性衰减优势在于,开始时快速探索,后期稳定收敛,不容易崩。 train/policy_gradient_loss 策略梯度损失(Actor 网络专属损失)。 这一步是策略更加倾向选择能拿到更高奖励的动作。只控制模型怎么选择动作。 好的表现是:缓慢持续下降,不会剧烈震荡、不会突然断崖式飙升。 强化学习的一个结论:平稳温和的迭代,经常比单次激进优化得到更好的最终结果。 train/value_loss 价值网络损失(Critic 网络专属损失)。 这个目标是让 Critic 的估值越来越贴近真实收益。 价值网络:评估当前状态好不好。 好的表现是:训练前期 Critic 完全不懂环境,预测偏差巨大;随着训练不断修正,估值误差持续缩小。平稳持续下降,没有突然剧烈跳涨。 train/loss 图表中这个会在policy_gradient_loss和value_loss前面。只是这里我放到了最后。 PPO 总的联合损失函数(Total Loss)。 策略梯度损失(policy_gradient_loss,优化 Actor) + 价值网络损失(优化 Critic)+ 熵损失(entropy_loss,鼓励探索,带负号)。 强化学习中,不能像普通监督学习一样,单纯认为 loss 越低 = 模型越好!。
热门文章

© 2026 智能硬件周刊 版权所有

Sitemap