我对机器学习的背景知识很少,所以如果我的问题看起来很愚蠢,请原谅我。

根据我所读到的内容,迄今为止最好的无模型强化学习算法是 Q-Learning,其中代理世界中的每个状态和 Action 对都被赋予一个 q 值,并且在每个状态下具有最高值的 Action 选择 q 值。然后 q 值更新如下:

Q(s,a) = (1-α)Q(s,a) + α(R(s,a,s') + (max_a' * Q(s',a'))) 其中 α 是学习速度。

显然,对于高维问题,状态数量变得天文数字大,使得 q 值表存储不可行。

因此,Q-Learning 的实际实现需要通过状态(即特征)的泛化来使用 Q 值近似。例如,如果代理是吃 bean ,那么功能将是:

  • 到最近点的距离
  • 到最近幽灵的距离
  • 吃 bean 在隧道里吗?

  • 然后,而不是每个状态的 q 值,您只需要每个特征的 q 值。

    所以我的问题是:

    强化学习代理是否可以创建或生成附加特征?

    我做过的一些研究:

    This post 提到了 Geramifard 的 iFDD 方法
  • http://www.icml-2011.org/papers/473_icmlpaper.pdf
  • http://people.csail.mit.edu/agf/Files/13RLDM-GQ-iFDD+.pdf

  • 这是一种“发现特征依赖关系”的方法,但我不确定这是否是特征生成,因为本文假设您从一组二进制特征开始。

    我发现的另一篇论文是 Playing Atari with Deep Reinforcement Learning ,它“使用一系列神经网络架构提取高级特征”。

    我已经阅读了这篇论文,但仍然需要充实/完全理解他们的算法。这是我要找的吗?

    谢谢

    最佳答案

    好像你已经回答了你自己的问题:)

    特征生成不是 Q-learning(和 SARSA)算法的一部分。但是,在称为预处理的过程中,您可以使用多种算法(您展示了其中的一些)从数据中生成/提取特征。结合不同的机器学习算法会产生混合架构,这是您在研究最适合您的问题的方法时可能会考虑的术语。

    这是一个 example of using features with SARSA(与 Q-learning 非常相似)。
    你引用的论文是否对你的场景有帮助,你必须自己决定。与机器学习一样,您的方法高度依赖于问题。如果您从事机器人技术并且很难手动定义离散状态,那么神经网络可能会有所帮助。如果您可以自己思考启发式方法(如 pacman 示例),那么您可能不需要它。

    关于machine-learning - 在使用函数逼近的 Q-learning 中,是否可以避免手工制作特征?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27370495/

    10-12 16:03
    查看更多