Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 奖励趋同,但强化学习中的行动不正确_Python_Reinforcement Learning - Fatal编程技术网

Python 奖励趋同,但强化学习中的行动不正确

Python 奖励趋同,但强化学习中的行动不正确,python,reinforcement-learning,Python,Reinforcement Learning,我正在开发一个强化学习代理 我的奖励结构看起来像 thermal_coefficient = -0.1 zone_temperature = output[6] if zone_temperature < self.temp_sp_min: temp_penalty = self.temp_sp_min - zone_temperature elif zone_temperature > self.temp_

我正在开发一个强化学习代理

我的奖励结构看起来像

thermal_coefficient = -0.1

        zone_temperature = output[6]

        if zone_temperature < self.temp_sp_min:
            temp_penalty = self.temp_sp_min - zone_temperature
        elif zone_temperature > self.temp_sp_max:
            temp_penalty = zone_temperature - self.temp_sp_max
        else :
            temp_penalty = 0
热系数=-0.1
区域温度=输出[6]
如果区域温度<自身温度>最小值:
温度惩罚=自身温度sp最小值-区域温度
elif区域温度>自身温度sp最大值:
温度惩罚=区域温度-自身温度最大值
其他:
温度惩罚=0
我的
temp\u sp\u min
为23.7,
temp\u max
为24.5。当我基于epsilon贪婪行动选择策略训练代理时,大约10000集之后,我的奖励趋同,当我现在测试经过训练的代理时,代理采取的行动没有意义,这意味着当
区域温度
小于
温度
时,它正在采取行动,这进一步降低了区域温度

我不明白我错在哪里。有人能帮我吗


感谢

epsilon贪婪算法采取不合逻辑的行动是正常的,事实上这些行动应该是探索(以概率1-epsilon采取的行动)


但我认为对于你的问题,这是一个你需要的上下文MAB算法,因为你的回报取决于上下文/状态(当前温度)。尝试其他在LinUCB或DQN等条件下性能更好的算法

嗨,我正在使用DQN培训代理。问题是代理在测试阶段采取了错误的操作。我理解在培训期间,它可以探索并采取一些不合逻辑的行动。但是在测试阶段,一旦代理接受了培训,它就应该总是采取合乎逻辑的行动,对吗?如果“不合逻辑”的行动的频率随着时间的推移而减少,那也没关系。总的来说,这些问题在很大程度上取决于模型以及你如何评估它。根据Epsilon贪婪的例子,您可以在特定时间通过将Epsilon=0停止探索,并开始一个完整的利用策略。嗨@Jad!!谢谢你的回复。我不明白为什么在测试阶段,不合逻辑行为的频率会随着时间的推移而降低,在测试中,它只是根据训练期间的学习从特定的状态采取行动。那么,一旦学会了,为什么频率会降低呢?