Machine learning 在Q-学习中添加约束并在违反约束时分配奖励

Machine learning 在Q-学习中添加约束并在违反约束时分配奖励,machine-learning,artificial-intelligence,dynamic-programming,reinforcement-learning,q-learning,Machine Learning,Artificial Intelligence,Dynamic Programming,Reinforcement Learning,Q Learning,我最近参加了一个RL课程,我正在为一个电源管理应用程序编写一个Q-learning控制器,其中我有连续状态和离散动作。我使用神经网络(Q网络)来近似动作值并选择最大动作值。像任何控制系统一样,我对代理不能违反的变量有一定的约束或界限。比如说,如果我的控制器(代理)的动作是给电池放电或充电,那么产生的能量不能分别小于0或大于最大容量 我想了解如何在动作选择或值近似例程中添加此类约束?我想到了两种方法 (1) 假设我正在为T步跑一集。在每一步中,我将当前状态输入Q网络,并选择最大动作值。在采取这一行

我最近参加了一个RL课程,我正在为一个电源管理应用程序编写一个Q-learning控制器,其中我有连续状态和离散动作。我使用神经网络(Q网络)来近似动作值并选择最大动作值。像任何控制系统一样,我对代理不能违反的变量有一定的约束或界限。比如说,如果我的控制器(代理)的动作是给电池放电或充电,那么产生的能量不能分别小于0或大于最大容量

我想了解如何在动作选择或值近似例程中添加此类约束?我想到了两种方法

(1) 假设我正在为T步跑一集。在每一步中,我将当前状态输入Q网络,并选择最大动作值。在采取这一行动时,如果我的约束被违反,我可以分配一个巨大的负面奖励,如果没有,我可以分配相关的奖励。最终,所有获得巨大负面回报的行为(对应于不良行为)都将被避免,因此代理将在模型约束下运行。然而,如果我从优化的角度考虑的话,就永远不应该采取这样的行动,因为它们不在允许的范围内。所以理想情况下,我应该停止迭代,因为所有的顺序动作都是不可接受的。这将导致数据的严重浪费

(2) 其次,我将当前状态反馈给Q网络,选择对应于最大Q值的动作并检查约束。如果违反,我将采取与第二高Q值对应的操作并重复,直到满足约束。但这会导致最优化吗

我认为这可能是在训练涉及多变量约束的自主控制系统时经常出现的问题。我会很高兴收到您的反馈

我想说,选项(1)更可取,而且通常是这样做的。如果你真的不想执行某个动作,就不要执行,停止这一集(并给予巨大的负面奖励)。关于选项(2),我认为它不会导致最优

此外,Q-学习是一种非策略算法。这意味着您可以通过使用其他一些采样器策略收集的样本来训练您的目标策略,这样可以“更安全”并避免危险的操作。然而,由于勘探减少,这可能需要更多的时间

无论如何,这是RL中非常常见的问题。我建议你看看谷歌上的“成本敏感探索”,你会发现一些关于你的问题的有趣的研究

回复评论

我不完全明白。您是否已经有tuple
(s,a,r,s')
的数据集?(由任何代理人/保单收取)。如果是这样的话,不要停止这一集,只需学习(使用批处理算法,如拟合Q迭代)。如果必须在线收集数据,我建议您停止:您收集一个操作,按照Q-learning更新规则更新策略,然后继续这一集。如果是这样的话,而且安全是你最关心的问题,只要有不允许的事情发生,就停止这一集


我看到的唯一一个与“学习需要很多”相关的问题是,如果你的真正目标是“及时的”(例如,你在一段时间后给予积极的奖励),那么经纪人将很难体验到这一点。然而,这是无法避免的:在“安全/学习时间”和“探索/开发”之间总是有一个折衷方案。

谢谢@Simon。我无法理解的是,如果我在代理执行导致违反其中一个约束的操作时结束这一集,我就是在浪费相应的数据。假设我在24小时内学习,我的代理人在1小时内的每个时间步采取行动。我的状态定义为,S={v1,v2,v3}。我有365天的v1和v2的历史时间序列数据。在t=1时,我每天给V3分配一个固定值,让代理进行探索。现在,我的代理在t=2时执行无效操作,分配一个巨大的负R并停止训练。我不是浪费了这一天的训练数据吗?我猜既然RL代理需要很多时间来训练,我将不得不给它大量的训练数据。我的问题是,我可以复制这个数据365天,然后把它延长到2年,3年等等吗?这将如何影响我的代理的性能?在RL中如何解决这些问题?@Naveen我仍然认为,对违反行为给予负面奖励是最有原则的方式。只选择可接受的动作意味着动作集在每个时间步都是不同的,我不确定在这种情况下是否有任何收敛的保证。相反,惩罚无效行为意味着您只需手动调整奖励和转换函数,这是合法的。也许在实践中,只选择有效的动作可能会更好(我不知道),但在大多数论文中(比如Deepmind),他们通常会限制动作(有时甚至没有任何惩罚)。@Naveen这意味着他们只是剪辑动作。假设最大动作为10。政策规定执行15。您可以将其剪裁为10并对额外的5进行处罚,也可以将其剪裁为10而忽略任何处罚。@Naveen欢迎:)顺便说一句,这是一个类似的问题