Artificial intelligence 神经网络与时差学习

Artificial intelligence 神经网络与时差学习,artificial-intelligence,neural-network,backpropagation,reinforcement-learning,temporal-difference,Artificial Intelligence,Neural Network,Backpropagation,Reinforcement Learning,Temporal Difference,我读过一些关于时态差分学习的论文和讲座(有些是关于神经网络的,比如萨顿关于TD Gammon的教程),但我很难理解这些方程,这就引出了我的问题 -预测值V_t从何而来?然后,我们如何得到V_Ut(t+1) -当TD与神经网络一起使用时,返回传播的究竟是什么?也就是说,当使用TD时,返回传播的错误从何而来?向后和向前的视图可能会令人困惑,但当您处理一些简单的东西,如游戏程序时,实际上事情非常简单。我不是在看你正在使用的参考资料,所以让我只是提供一个概述 假设我有一个类似神经网络的函数逼近器,它有两

我读过一些关于时态差分学习的论文和讲座(有些是关于神经网络的,比如萨顿关于TD Gammon的教程),但我很难理解这些方程,这就引出了我的问题

-预测值V_t从何而来?然后,我们如何得到V_Ut(t+1)


-当TD与神经网络一起使用时,返回传播的究竟是什么?也就是说,当使用TD时,返回传播的错误从何而来?

向后和向前的视图可能会令人困惑,但当您处理一些简单的东西,如游戏程序时,实际上事情非常简单。我不是在看你正在使用的参考资料,所以让我只是提供一个概述

假设我有一个类似神经网络的函数逼近器,它有两个函数,
train
predict
,用于训练特定的输出并预测状态的结果。(或在给定状态下采取行动的结果。)

假设我有一个玩游戏的痕迹,我使用
predict
方法告诉我在每一点要做什么动作,并假设我在游戏结束时输了(V=0)。假设我的状态是s_1,s_2,s_3…s_n

monte-carlo方法表示,我使用跟踪和最终分数对跟踪中的每个状态训练函数逼近器(例如,我的神经网络)。因此,根据此跟踪,您可以执行如下操作:

列车(序列号,0)
列车(s_n-1,0)
...
列车(SU 1,0)

也就是说,我要求每个州预测追踪的最终结果

动态规划方法说,我根据下一个状态的结果进行训练。所以我的训练应该是

列车(序列号,0)
列车(s_n-1,测试(s_n))
...
列车(SU 1,测试(SU 2))

也就是说,我要求函数逼近器预测下一个状态预测什么,最后一个状态预测跟踪的最终结果

TD学习在两者之间混合,其中
λ=1
对应于第一种情况(蒙特卡罗),而
λ=0
对应于第二种情况(动态规划)。假设我们使用
λ=0.5
。那么我们的培训将是:

列车(序列号,0)
列车(s_n-1,0.5*0+0.5*测试(s_n))
列车(s_n-2,0.25*0+0.25*测试(s_n)+0.5*测试(s_n-1)+)

现在,我在这里写的不是完全正确的,因为你实际上没有在每一步重新测试近似器。相反,您只需从一个预测值开始(
V=0
,在我们的示例中),然后用下一个预测值更新它,以便在下一步进行训练<代码>V=λ·V+(1-λ)·测试(s_i)


这比蒙特卡罗和动态规划方法学习得快得多,因为您不要求算法学习这样的极值。(忽略当前预测或忽略最终结果。)

实际上,我希望输入是当前状态和可能的控制信号,输出类似于水平上的预期进度。通过这种方式,您可以在每个步骤测试所有可能的控制信号,并选择输出最佳的控制信号。你的最终奖励将是该级别的进步(通过该级别可能会有一笔特别奖金)。在这个方案中,如果在一定时间后没有进步,你可能会想暂停该级别。但是,您不需要任何训练数据,只需要通过使用NN玩关卡获得的经验。我希望看到的是,它首先学会向右移动。然后它学会了跳跃。然后,必须根据特征学习更精细的行为。请注意,您可能希望提取特征(例如,敌人或坑在哪里)以使学习更容易。