我用一张表来表示 Q 函数,同时训练代理在不接触墙壁的情况下接住奶酪。
矩阵的第一行和最后一行(和列)与墙壁相关联。我在最后一个牢房里放了一块奶酪,特工在训练时必须抓到它。
到目前为止,我已经用动态状态完成了它,并且在必要时,我用新状态调整了矩阵的大小。我使用了四个动作(上、左、右和下)。
我现在想使用 ANN 来表示我的 Q 函数。我怎么做?这种神经网络的输入和输出应该是什么?
我用一张表来表示 Q 函数,同时训练代理在不接触墙壁的情况下接住奶酪。
矩阵的第一行和最后一行(和列)与墙壁相关联。我在最后一个牢房里放了一块奶酪,特工在训练时必须抓到它。
到目前为止,我已经用动态状态完成了它,并且在必要时,我用新状态调整了矩阵的大小。我使用了四个动作(上、左、右和下)。
我现在想使用 ANN 来表示我的 Q 函数。我怎么做?这种神经网络的输入和输出应该是什么?
神经网络(NN)是一种“函数逼近器”,即可以用来逼近函数的模型。事实上,一个至少有一个隐藏层的神经网络是一个“通用”的函数逼近器(也就是说,它可以逼近任何函数)。
在数学中,函数通常表示为形式的映射, 在哪里和分别是域(输入)和共域(输出), 和意思是“地图”到. 因此,NN(具有至少一个隐藏层)可以逼近任何函数这种形式的。
在您的上下文中,table 是一个函数:它是状态和动作(输入)和 Q 值(输出)之间的映射,它们是“预期的未来累积奖励”(如果您从某个状态执行某个操作然后继续,您将获得该奖励)遵循相同的政策)。因此,Q 函数可以更正式地表示为, 在哪里是“状态空间”和是您问题中的“行动空间”。最初,您的 Q 表不包含正确的(最佳)值。但是,在训练(或学习)之后,希望您的 Q 表将是针对您的特定问题的最佳 Q 函数的近似值。
那么你如何使用 NN 来表示这个表呢?NN 的输入和输出应该是什么?
假设您的表被实现为矩阵. 然后是个国家价值和行动. 所以,在这种情况下,组合和是输入,而是你的输出功能。
要将此表表示为 NN,您可以将状态和动作作为 NN 的输入,并将状态和动作作为输出价值。然后,您将训练 NN(使用例如反向传播)来学习,给定一个状态和一个动作作为输入,对所有人和. 所以,在你的-学习算法,而不是使用代表,您将简单地使用神经网络的当前输出。
请注意,在实践中,我认为,如果您在每个时间步更新 NN 的权重,您可能会在训练 NN 时遇到问题(因为例如,NN 不能很好地处理相关数据,并且通常,“经验”您从时间步到时间步获得的数据将高度相关)。无论如何,这就是如何使用 NN 来表示一个功能。还有其他方法,但至少从概念上讲,这是最简单的方法。