Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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
Machine learning 什么';CartPole任务的最佳目标函数是什么?_Machine Learning_Gradient Descent_Reinforcement Learning - Fatal编程技术网

Machine learning 什么';CartPole任务的最佳目标函数是什么?

Machine learning 什么';CartPole任务的最佳目标函数是什么?,machine-learning,gradient-descent,reinforcement-learning,Machine Learning,Gradient Descent,Reinforcement Learning,我在做政策梯度,我想找出任务的最佳目标函数。该任务是开放式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

我在做政策梯度,我想找出任务的最佳目标函数。该任务是开放式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,除非我干预并修改奖励函数以在终止时返回负值。我之所以这么问,而不是仅仅进行一些实验,是因为其他地方存在错误。因此,如果有人能给我指出这方面的一个好做法,我可以把重点放在算法中更重要的错误上。

你应该使用最后一个(折扣奖励的总和),因为cart-pole问题是一个无限期MDP(你希望尽可能长地平衡极点)。解释为什么在无限期MDP中应使用折扣因子

取而代之的是,第一个奖励只是一个未贴现的奖励总额,如果情节长度固定(例如,一个机器人执行10秒的轨迹),就可以使用这个奖励。第二种方法通常用于有限水平MDP,但我不太熟悉

对于cart-pole,折扣系数应为0.9(或者,根据使用的算法,您可以搜索科学论文并查看使用的折扣系数)


最后一个音符。您描述的奖励函数(每个时间步+1)不是文献中唯一使用的函数。一个普通的(我认为也是“原始的”一个)在每一个时间步都给出0,如果磁极下降,则给出-1。其他奖励函数与杆和车之间的角度有关。

您应该使用最后一个(折扣奖励之和),因为车杆问题是一个无限水平MDP(您希望尽可能长时间平衡杆)。解释为什么在无限期MDP中应使用折扣因子

取而代之的是,第一个奖励只是一个未贴现的奖励总额,如果情节长度固定(例如,一个机器人执行10秒的轨迹),就可以使用这个奖励。第二种方法通常用于有限水平MDP,但我不太熟悉

对于cart-pole,折扣系数应为0.9(或者,根据使用的算法,您可以搜索科学论文并查看使用的折扣系数)

最后一个音符。您描述的奖励函数(每个时间步+1)不是文献中唯一使用的函数。一个普通的(我认为也是“原始的”一个)在每一个时间步都给出0,如果磁极下降,则给出-1。其他奖励功能与杆和车之间的角度有关