在具有函数逼近的Q学习中,是否可以避免手工制作功能?

时间:2014-12-09 02:23:46

标签: machine-learning deep-learning q-learning function-approximation

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

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

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

显然,对于具有高维度的问题,状态的数量变得非常大,使得q值表存储不可行。

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

  • 距离最近点的距离
  • 距离最近的幽灵
  • Pacman是否在隧道中?

然后,对于每个单独的状态而不是q值,您只需要为每个单独的特征都有q值。

所以我的问题是:

强化学习代理是否可以创建或生成其他功能?

我做过一些研究:

This post提到了Geramifard的iFDD方法

这是“发现功能依赖性”的一种方式,但我不确定这是否是功能生成,因为本文假设您从一组二进制功能开始。

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

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

由于

1 个答案:

答案 0 :(得分:4)

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

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

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