我对机器学习的背景知识不多,如果我的问题看起来很傻,请原谅我。
根据我所阅读的资料,迄今为止最佳的无模型强化学习算法是Q学习,其中代理的世界中每个状态-动作对都被赋予一个q值,在每个状态下选择q值最高的动作。然后q值按以下方式更新:
Q(s,a) = (1-α)Q(s,a) + α(R(s,a,s’) + (max_a’ * Q(s’,a’))) 其中α是学习率。
显然,对于高维度的问题,状态数量会变得天文数字般庞大,使得q值表的存储变得不可行。
因此,Q学习的实际实现需要通过状态的泛化(即特征)来进行q值近似。例如,如果代理是吃豆人,那么特征可能包括:
- 到最近的豆子的距离
- 到最近的鬼的距离
- 吃豆人是否在隧道中?
这样,你就不需要为每一个状态都有一个q值,而只需要为每一个特征有一个q值。
所以我的问题是:
强化学习代理是否可以创建或生成额外的特征?
我做了一些研究:
这个帖子提到了A Geramifard的iFDD方法
- http://www.icml-2011.org/papers/473_icmlpaper.pdf
- http://people.csail.mit.edu/agf/Files/13RLDM-GQ-iFDD+.pdf
这是一种“发现特征依赖关系”的方法,但我不知道这是否属于特征生成,因为该论文假设你从一组二进制特征开始。
我找到的另一篇相关论文是使用深度强化学习玩Atari游戏,该论文“使用一系列神经网络架构提取高级特征”。
我已经阅读了这篇论文,但仍需进一步理解他们的算法。这是否是我在寻找的?
谢谢
回答:
看起来你已经自己回答了这个问题 🙂
特征生成并不是Q学习(和SARSA)算法的一部分。然而,在一个称为预处理的过程中,你可以使用广泛的算法(你展示了一些)从数据中生成/提取特征。结合不同的机器学习算法会产生混合架构,这是你在研究什么对你的问题最有效时可能需要了解的一个术语。
这里有一个使用SARSA的特征示例(它与Q学习非常相似)。你引用的论文是否对你的情景有帮助,你需要自己决定。正如机器学习中常见的那样,你的方法高度依赖于问题本身。如果你在机器人领域,并且手动定义离散状态很困难,神经网络可能会有帮助。如果你能自己想出启发式方法(如吃豆人示例中那样),那么你可能不需要它。