首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Q-Learning的泛化函数

Q-Learning的泛化函数
EN

Stack Overflow用户
提问于 2009-10-09 09:02:22
回答 1查看 1K关注 0票数 1

我不得不在Q Learning上做一些工作,讲的是一个不得不在房子里搬家具的人(基本上就是这样)。如果房子足够小,我可以只有一个表示行动/奖励的矩阵,但随着房子变大,这是不够的。所以我不得不使用某种泛化函数来代替它。我的老师建议我不只使用一个,而是多个,这样我就可以比较它们,等等。你们推荐什么?

我听说在这种情况下,人们使用支持向量机,也可以使用神经网络。我不是真的在场内,所以我不能说。我过去有过一些使用神经网络的经验,但SVM似乎更难掌握。有没有其他我应该寻找的方法?我知道肯定有无数这样的东西,但我需要一些东西作为开始。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-13 05:48:32

正如术语的复习一样,在Q-learning中,您正在尝试学习Q函数,它取决于状态和动作:

代码语言:javascript
复制
Q(S,A) = ????

大多数课程中教授的Q-learning的标准版本告诉您,对于每个S和A,您需要在表中学习一个单独的值,并告诉您如何执行Bellman更新以收敛到最佳值。

现在,假设你使用了不同的函数近似器而不是table。例如,让我们尝试线性函数。以你的(S,A)对为例,想一想你可以从中提取的一系列特征。特征的一个例子是“我是否挨着墙”,另一个例子是“动作是否会将对象放在墙上”,等等。将这些特征编号为f1(S,A),f2(S,A),...

现在,尝试学习Q函数作为这些特征的线性函数

代码语言:javascript
复制
Q(S,A) = w1 * f1(S,A) + w2*f2(S,A) ... + wN*fN(S,A)

你应该如何学习权重w?好吧,既然这是家庭作业,我就让你自己考虑吧。

但是,作为提示,假设您在每个状态中有K个可能的状态和M个可能的操作。假设您定义了K*M特性,每个特性都是您是否处于特定状态并将采取特定操作的指示器。所以

代码语言:javascript
复制
Q(S,A) = w11 * (S==1 && A == 1) + w12 * (S == 1 && A == 2) + w21 * (S==2 && A==3) ...

现在,请注意,对于任何状态/动作对,只有一个特征将为1,其余特征将为0,因此Q(S,A)将等于相应的w,您实际上是在学习一个表。因此,您可以将标准的表Q学习视为使用这些线性函数进行学习的特例。所以,想一想正常的Q学习算法做什么,以及你应该做什么。

希望你能找到一个比K*M少得多的小的特征基础,这将允许你很好地表示你的空间。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1542690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档