This slide根据一组权重和特征函数显示了 Q(状态,动作)的等式。我对如何编写功能函数感到困惑。
给出一个观察,我可以理解如何从观察中提取特征。但是,从观察到的结果来看,人们不知道对这些功能采取什么行动。那么,如何编写一个将观察值和动作映射到数值的函数呢?
在稍后显示的Pacman示例中,显示了几张幻灯片,在给定状态的情况下,人们知道动作的效果。但这并非总是如此。例如,考虑购物车问题(在OpenAI体育馆中)。这些要素(实际上是观测值所包含的要素)有四个值:推车位置,推车速度,磁极角和磁极旋转速度。有两个动作:向左推和向右推。但是,人们事先并不知道这些动作将如何改变这四个特征值。那么如何计算Q(s,a)?也就是说,如何编写特征函数 f i (状态,动作)?
?谢谢。
答案 0 :(得分:0)
如何选择动作取决于算法和探索策略。例如,在Q学习中,您可以执行称为epsilon贪婪探索的操作。 Espilon随机选择一个动作的时间百分比,以及您采取最高期望值的动作的百分比(贪婪动作)。
那么,如何编写映射观察结果和 动作成数值?
通过使用奖励,您可以估算状态,动作值。然后使用奖励和(取决于算法)下一个状态的值。例如一个Q学习更新公式:
您使用奖励和对下一状态的最佳未来价值的估计来更新旧的Q(s,a)值。
在表格Q学习中,您可以单独估计每个Q(s,a)值,并在每次访问州采取措施时更新该值。在函数逼近Q学习中,您使用诸如神经网络之类的东西来逼近Q(s,a)的值。选择要选择的动作时,您将状态和动作输入到神经网络中,并取回每个动作的神经网络的近似值。然后根据您的算法(例如epsilon贪婪方法)选择操作。当您的代理与环境交互时,您将使用新数据训练和更新神经网络,以改善函数逼近度。