You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Guided Cost Learning每局平均成本不降反升,求原因及合理性判断

Guided Cost Learning算法中平均成本不降反升的问题分析

可能的原因排查方向

  • 成本网络输出无约束:你的CostNN最后一层没有激活函数,直接输出线性值。而Guided Cost Learning要求成本函数非负(代价不能为负),无约束的输出可能出现负值,打乱成本计算逻辑。建议给最后一层添加sigmoid或ReLU,把输出限制在非负区间。
  • 算法训练阶段特性:该算法是交替训练成本网络与策略的:先让成本网络区分专家轨迹(低成本)和当前策略轨迹(高成本),再用成本网络优化策略。训练初期策略性能差,成本网络可能先给差轨迹打高分;当策略逐渐接近专家时,成本网络可能调整整体成本尺度,导致短期成本上升,但长期应回落。建议增加训练轮次观察后续趋势。
  • 数据分布偏移:若专家数据与当前策略生成的轨迹分布差异过大,成本网络无法有效学习合理的成本函数。需检查两者的状态分布是否有重叠,同时确认成本网络的损失函数是否正确(比如用对比损失:max(0, cost(策略轨迹) - cost(专家轨迹) + margin),确保专家轨迹成本更低)。
  • 策略优化方向错误:如果策略优化时是最大化成本网络输出(而非最小化),必然导致成本上升。需确认策略优化目标是最小化轨迹的期望成本E[cost(s,a)]。
  • 超参数不合理:学习率过高会导致训练不稳定;批次大小过小会让成本网络更新噪声大;交替训练频率不当(比如成本网络训练次数不足就更新策略)也会引发异常。

你的CostNN代码优化点

当前实现缺少输出约束,修改如下:

class CostNN(nn.Module):
    def __init__(
        self, 
        state_dim,
        hidden_dim1 = 128, 
        out_features = 1, 
    ):
        super(CostNN, self).__init__()
        self.net = nn.Sequential(
            nn.Linear(state_dim, hidden_dim1),
            nn.ReLU(),
            nn.Linear(hidden_dim1, out_features),
            nn.Sigmoid()  # 添加激活函数约束输出为非负
        )
    def forward(self, x):
        return self.net(x)

实验结果判断

从你提供的结果图来看,当前训练轮次较少,短期成本上升可能是初期正常波动。如果后续成本持续上升,则说明存在上述某类问题,建议先调整CostNN并增加训练轮次再观察。

内容的提问来源于stack exchange,提问作者AlgorithmAce

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 07:22:37