虽然大部分研究都是以在实际系统中部署学习为目标的

adminadmin 9393体育 2024-02-01 69 0

  之前的文章中介绍了基于模型的优化运行方法,这篇文章简单聊一下一种不需要用到模型的无模型优化运行方法——强化学习。在暖通空调领域,06-07年左右就有学者用Q-learning对一个暖通空调系统进行了优化,随后一直不温不火。之后当AlphaGo横空出世战胜洁宝等一众围棋世界冠军后,强化学习再次回到人们视野,并且开始广泛应用于能源领域。本文章默认读者对强化学习的基本概念和实现原理有着一定了解,并且对暖通空调系统的优化运行有一定认识。前者可以自行在百度上搜索,有非常详细的教程,后者可以参考我之前的文章:https://zhuanlan.zhihu.com/p/669199313

  除了因为强化学习近10年来大火,大家都想蹭一下热度之外,强化学习这类无模型的方法相比于基于模型的方法有一个非常突出的优势,那就是它不需要建立起任何关于目标系统的模型。众所周知,尽管基于模型的方法研究了这么多年已经非常成熟,但是实际应用时,大家往往更愿意使用一些简单的控制规则,采用模型方法实现实际系统优化控制的项目凤毛麟角。其中一个主要原因就是想要建立一个可用的、准确的系统太过困难。在系统投运初期,系统的运行数据基本没有,如何对模型进行辨识是一个问题。当运行一段时间后终于有了一定数据量时,你想再修改自控逻辑就非常复杂了,没人愿意给你重构一遍自控系统。强化学习就不需要建立系统的模型。我们知道,它的基本原理就是通过不同的学习机制不断地尝试能够获取更高奖励(一般是系统能耗更低、末端热舒适性更高等)的控制动作,从而逐渐地掌握系统的运行规律。在这个过程中,强化学习方法始终是与实际系统交互的,无需建立模型,只需要对学习机制(各种RL算法)、奖励(Reward)、输入(State)、输出(Action)进行设计即可。

  同时,强化学习还有另外一个优势,那就是其计算效率会比基于模型的方法高。需要注意的是,这里的计算效率指的是当强化学习完成学习过程后应用在实际系统的计算时间(但是它的学习过程一般非常非常缓慢,这个缺点会在后续讨论)。基于模型的方法每次都需要运行一次优化算法去寻优,如果是遗传算法之类的启发式算法,那么计算时间会相当长。而强化学习方法每次计算控制动作时,本质就是将State输入Q-table(Q-learning等非深度强化学习算法)或神经网络(DQN等深度强化学习算法)后进行一次前馈计算得到Action的过程,它的计算速度是非常快的。

  从本质上来说,强化学习和最优化理论(动态规划)之间关系非常密切,它们之间有很强的对应和类比关系:

  基于模型的方法其核心就是优化问题的求解,有四大要素:优化目标(以及约束)、优化变量、固定参数以及优化算法。暖通空调系统的优化目标一般就是最小化系统运行能耗以及最大化末端热舒适度;优化变量就是我最终的控制动作;固定参数就是不同的工况条件,在不同的优化时刻下这些参数不同,但是已知、无需优化,例如室外温度、末端冷负荷等等;优化算法就是各种规划类算法或者启发式算法等等,得到的是不同固定参数(工况)下的最优变量(控制动作)组合。

  强化学习方法也同样有四大要素:奖励(Reward)、动作(Action)、状态(State)以及强化学习算法(学习到π:S->A,也就是学会在不同的State下应该输出什么样的Action,使得未来预期的Reward最大化)。这两类要素是一一对应的:Reward就是优化目标,Action就是优化变量,State就是固定参数,优化算法对应的就是强化学习算法。因此,在设计强化学习方法时,可以根据基于模型的方法的设计思路来确定四大要素。

  这里需要提一下的是,由于强化学习的自身性质,它天然地更加适合解决类似下棋这样的连续性决策问题,能源领域中一个典型的连续性决策问题是带储能设备的系统优化(比如冰蓄冷、水蓄冷或者储电),还有一个是需求侧响应问题(考虑动态电价的日级别最优经济调度)。暖通空调系统的优化控制问题一般是单时刻决策问题,不涉及连续决策,有“大材小用”之嫌,但是并不影响强化学习的应用。

  综上所述,应用强化学习的一般流程为:定义强化学习的四大要素,开发强化学习控制器 -> 放在系统(一般是仿真系统)中让它不断的学习 -> 学习完毕,从学习模式进入到运行模式。这里简单说一下学习模式和运行模式的区别。学习模式下强化学习器输出控制动作时会进行探索,以增加搜索范围避免局部最优,例如DQN在输出时采用ε-贪婪的方式,DDPG会在输出时添加高斯噪声。而在学习完毕进行运行模式后,就会把这些探索步骤去掉,直接将控制动作输出。

  强化学习方法在暖通空调领域已经不算年轻的方向了(在电力领域更是广泛),早期的学者主要就是算法+场景创新,先把计算机领域的最新算法一个一个拿过来,再把暖通领域各个场景套一遍,现在走这条路已经很难了。目前的研究相对来说深入了一个层次,粗略可以分为几个研究方向(注意,下面的分类非常主观,仅代表个人看法,如有错误请轻喷):如何加快强化学习的学习速度。如前所述,尽管它在学习过程完成后计算效率很高,但是其学习过程非常缓慢,这是十分致命的问题。试想一个系统采用强化学习方法进行控制,结果运行五年了还在学习,那这个控制方法的意义就会十分有限。为了解决这个问题,当前的研究思路主要可以分为两个方向:问题降维分解,以及优化强化学习的“初值”。这两种思路很好理解,其灵感都可以认为来自基于模型的方法。如果一个优化问题难以求解,那么两种常见的思路就是:要么把这个问题降维分解,例如优化变量变少、优化目标简化、约束条件松弛;要么使这个问题的初始解尽可能地靠近最优解,让它寻优速度变快。问题降维分解。强化学习本质上是在学习一套从State到Action的最优映射策略,自然而然,State和Action的维度越高,这套策略的映射关系就越复杂,学习速度就越慢。如果能把State和Action的空间维度降低、分解开来,就有望提高学习速度。这种思路的主要技术路线是多智能体强化学习,从单智能体扩展到多智能体,每个智能体只学习部分的Action,降低学习难度。例如文献[1]将冷源系统分为冷机智能体、水泵智能体和冷却塔智能体,每一个智能体只需在自己对应的局部控制动作空间中寻优,系统级别的优化控制方案可以通过多智能体间的局部控制动作组合而成。除此之外,在工程中也通常会人工把Action维度降低,然后用专家知识补齐所有的控制动作。比如某系统有五台冷水机组,要对出水温度设定点进行优化。此时的Action无需是五台冷机各自的设定点,因为一般而言,为避免混水温度不同造成能源浪费,相同容量的冷机出水温度一般是一致的,因此只需要优化一个设定点即可,其他的可以用上述规则进行补齐。优化强化学习的"初值"。既然强化学习本质上也是优化,那么如果能够优化强化学习的初始网络参数初值,就有可能提高它的学习效率。这种思路的主要技术路线是迁移强化学习,就是把在其他类似系统中学习到的强化学习器的网络参数当做目标系统强化学习器的初值,从而加速其学习效率。此外,还有一种路线是基于模型的强化学习,可以认为无模型与有模型的一种折中,首先让强化学习器在仿真模型上学习,将学习到的参数作为实际系统的初值,从而提高计算效率。两种技术路线的应用,分别可见文献[2]和文献[3]。

  如何保证学习过程中的系统运行安全性。如前所述,强化学习方法在学习过程中会尽可能探索所有可能的控制动作,从而确定更新方向。但是对于实际系统而言,一些探索动作可能会引发能源系统的安全问题,导致系统发生故障、严重时甚至可能引发安全事故。为解决这个问题,领域学者开始关注安全强化学习(Safety Reinforcement Learning),主要有两类技术路线。第一类比较硬核,是根据领域问题的特性以及安全性需求,对强化学习算法本身的更新机制进行修改。第二类更为简单和具有泛化性,就是在Action输出后再加一个安全层(Safety Layer),用于对输出的Action进行判断和调整,安全层的设计可以依靠一些领域常用的基本控制规则,或在此基础上自主创造。例如文献[4]针对多能互补系统的强化学习方法开发了一类Safety Callback Policy,以确保系统运行的安全性。

  当前,每年发表的RL文章数不胜数,除这两个方向以外还有很多其他方向的文章,无法一一列举。

  强化学习方法从理论上确实能够解决基于模型方法的不足,但是它在应用时也确实存在一些致命的问题,目前来看距离落地应用还有比较远的距离:训练难度大、学习速度慢。用强化学习练过丹的朋友肯定知道,强化学习的收敛性和收敛速度完全是个玄学。别管你上什么算法,只要问题稍微复杂点,就很难学出来合理的控制结果。为什么RL在下棋上这么成功?一方面是强大的算力财力支持,另一方面围棋的规则是死的,而能源系统场景太多,设备组合、系统拓扑无穷无尽,如果每针对一个场景都得费劲心力再训练一个,那怕是要累死人了。那么迁移强化学习这些行不行?只能说自己上手一下就知道,有时候效果不如让它随机输出,可能节能效果还更好一点;如何从仿真应用到实际。虽然大部分研究都是以在实际系统中部署学习为目标的,但是事实上绝大多数的研究都是在仿真系统上验证的。仿真系统就算模型再怎么复杂,和实际中的环境那还是千差万别的,在仿真中的结果,能直接用在实际系统中吗?中间的Gap到底多大?这些都很难评估。

  总体而言,强化学习是目前能源系统优化运行领域非常火的一个方向。它提供了一种新的思路,有望摆脱领域对于准确模型的依赖。但是随之带来的低下的学习效率和低可靠性,只能说任何方法都存在它的不足,很难有十全十美的解决方案。从发成果或者追求毕业的角度,这个方向近几年明显是由于传统基于模型方法的。但是想要追求真正落地应用的话,还有很长的路要走。

虽然大部分研究都是以在实际系统中部署学习为目标的
版权声明

本文仅代表作者观点,不代表xx立场。
本文系作者授权xx发表,未经许可,不得转载。

喜欢0发布评论

评论列表

发表评论

  • 昵称(必填)
  • 邮箱
  • 网址