1

这张幻灯片根据一组权重和特征函数显示了Q(状态,动作)的方程。我对如何编写特征函数感到困惑。

给定一个观察,我可以理解如何从观察中提取特征。但是根据观察,人们不知道采取行动的结果会对特征产生什么影响。那么如何编写一个将观察和动作映射到数值的函数呢?

在后面几张幻灯片展示的 Pacman 示例中,人们知道,给定一个状态,一个动作的效果将是什么。但情况并非总是如此。例如,考虑购物车杆问题(在 OpenAI 健身房中)。特征(实际上是观察的内容)是四个值:推车位置、推车速度、磁极角度和磁极旋转速度。有两个动作:向左推和向右推。但事先并不知道这些动作将如何改变四个特征值。那么如何计算 Q(s, a) 呢?也就是说,如何编写特征函数f i (state, action)

谢谢。

4

1 回答 1

0

你如何选择动作取决于你的算法和你的探索策略。例如,在 Q 学习中,您可以做一些称为 epsilon 贪婪探索的事情。Espilon % 的时间你随机选择一个动作,而其他 % 的时间你采取具有最高期望值的动作(贪婪动作)。

那么如何编写一个将观察和动作映射到数值的函数呢?

通过使用奖励,您可以近似状态、动作值。然后使用奖励和(取决于算法)下一个状态的值。例如一个 Q 学习更新公式: 在此处输入图像描述

您使用奖励和您对下一个状态的最佳未来值的估计来更新旧的 Q(s,a) 值。

在表格 Q 学习中,您可以单独估计每个 Q(s,a) 值,并在每次访问状态并采取行动时更新该值。在函数逼近 Q 学习中,您使用神经网络之类的东西来逼近 Q(s,a) 的值。在选择要选择的动作时,您将状态和动作输入到神经网络中,并取回神经网络对每个动作的近似值。然后根据您的算法选择动作(如 epsilon 贪心方法)。当您的代理与环境交互时,您使用新数据训练和更新神经网络以改进函数逼近。

于 2018-11-06T04:51:04.363 回答