V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jeddida
V2EX  ›  程序员

求助:工业上 RL 强化学习 SAC 应用遇到的问题

  •  
  •   jeddida · 9 天前 · 892 次点击
    场景:三根水管并联,且每根都有一个阀门开控制开度,然后三根水管汇集连接一个水压表,水压表另外一侧连接一个随机的用水水管,现在需要动态的调节阀门让水压表稳定在 0.5 (调节阀门后会有一个滞后变化过程)

    我先从 dcs 采集数据,然后用 lstm 构建了 env ,用 sb3 sac 开始训练,看日志确实开始收敛奖励也越来越高。

    但是效果还是不太好,想问一下大佬们 lstm 建模的问题,我感觉我 lstm 模型有问题,我现在是:采集了三个开度 水压表 和随即用水量,训练的时候用历史 20 步和当前的三个开度+用水量+压力(补零)来预测当前的压力。

    求大佬指点一二!万分感谢!
    7 条回复    2025-06-30 09:04:16 +08:00
    qscasdqwezxc
        1
    qscasdqwezxc  
       9 天前 via Android
    目测不是模型的问题
    Rl 不是做这个的
    你采集的数据本来就不是收敛的
    你可以贴一下你的 reward 怎么算的
    jeddida
        2
    jeddida  
    OP
       9 天前
    @qscasdqwezxc 我用 sac 训练的话不能直接在线在 dcs 训练,所以我采集了数据通过 lstm 建模,自定义 gym 环境,然后用 sb3 开始训练,目的是水压稳定在 0.5:reward:
    error = abs(pressure - self.target_pressure)
    if error <= 0.005:
    reward = 1.2
    elif error <= 0.01:
    reward = 1.0 + (0.005 - error) * 40
    elif error <= 0.05:
    reward = 1.0 - 15 * (error - 0.01)
    elif error <= 0.1:
    reward = 0.4 - 4 * (error - 0.05)
    else:
    reward = -5.0 * (error - 0.1)
    Sawyerhou
        3
    Sawyerhou  
       9 天前
    不太懂这个,

    如果你训练好的 sac 的确能让你的 lstm 稳定在 0.5 ,却不能让真实水压稳在 0.5 ,
    那可能的确是 lstm 的问题,否则就不一定是 lstm 的问题,

    如果确实是 lstm 的问题,有没有可能在线学习?用水压表直接进行训练,省略环境模型( lstm )
    jeddida
        4
    jeddida  
    OP
       9 天前
    @Sawyerhou 在线训练太慢了,效果很差。我测试 lstm 环境下可以稳定在 0.5 ,我希望误差可以稳定在 0.02 ,但是实际上有的都在了 0.04 ,我对 lstm 训练不太了解,大佬了解吗?大佬也在做强化学习方面的研究吗?可否留个绿泡泡。
    Sawyerhou
        5
    Sawyerhou  
       8 天前
    @jeddida #4 我是做数据测试的,而非算法开发,离得比较远,等等看其他真大佬怎么说。

    另外,价值函数可以用 r=max(0, 0.02-e)吗?虽然我觉得并不是这个函数的问题。
    zhangeric
        6
    zhangeric  
       8 天前
    先找一下算法吧,工业上有很多专用算法,比如 pid 控制.
    jeddida
        7
    jeddida  
    OP
       8 天前
    @zhangeric 谢谢老哥的建议,目前就是在用 pid 。效果不太好所以打算用 sac ,因为后面会优化很多,所以 pid 吃不消了,而且鲁棒性太差了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5733 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 02:44 · PVG 10:44 · LAX 19:44 · JFK 22:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.