gpt4 book ai didi

machine-learning - CartPole 任务的最佳目标函数是什么?

转载 作者:行者123 更新时间:2023-11-30 09:36:11 25 4
gpt4 key购买 nike

我正在做策略梯度,我试图找出该任务的最佳目标函数是什么。该任务是开放的 ai CartPole-v0 环境,其中代理在其生存的每个时间步中收到 1 的奖励,并在终止时收到 0 的奖励。我试图找出对目标函数建模的最佳方法。我想出了 3 个可能的功能:

def total_reward_objective_function(self, episode_data) :
return sum([timestep_data['reward'] for timestep_data in timestep_data])

def average_reward_objective_function(self, episode_data):
return total_reward_objective_function(episode_data) / len(episode_data)

def sum_of_discounted_rewards_objective_function(self, episode_data, discount_rate=0.7)
return sum([episode_data[timestep]['reward'] * pow(discount_rate, timestep)
for timestep in enumerate(episode_data)])

请注意,对于平均奖励目标函数将始终返回 1,除非我干预并修改奖励函数以在终止时返回负值。我之所以问而不是仅仅进行一些实验,是因为其他地方存在错误。因此,如果有人能指出我在该领域的良好实践,我就可以专注于算法中更严重的错误。

最佳答案

您应该使用最后一个(折扣奖励的总和),因为车杆问题是一个无限地平线 MDP(您希望尽可能长时间地平衡杆子)。 The answer to this question解释了为什么应该在无限水平 MDP 中使用折扣因子。

第一个只是奖励的未折现总和,如果剧集具有固定长度(例如,机器人执行 10 秒的轨迹),则可以使用它。第二种通常用在有限时域MDP中,但我不太熟悉。

对于车杆,折扣系数 0.9 应该有效(或者,根据所使用的算法,您可以搜索科学论文并查看所使用的折扣系数)。

最后一点。您描述的奖励函数(每个时间步+1)并不是文献中唯一使用的函数。常见的(我认为也是“原始”的)在每个时间步给出 0,如果杆子倒下则给出 -1。其他奖励函数与杆子和小车之间的角度有关。

关于machine-learning - CartPole 任务的最佳目标函数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41684801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com