Q-Learning的泛化功能

时间:2009-10-09 09:02:22

标签: language-agnostic artificial-intelligence reinforcement-learning

我必须在Q Learning上做一些工作,关于一个家伙必须在房子周围移动家具(基本上就是这样)。如果房子足够小,我可以只有一个表示行动/奖励的矩阵,但随着房屋面积变大,这是不够的。所以我必须使用某种泛化函数。我的老师建议我不仅使用一个,而是使用几个,所以我可以比较它们。你们推荐什么?

我听说在这种情况下,人们正在使用支持向量机,也就是神经网络。我不是真的在场上,所以我不知道。我过去曾经有过神经网络的一些经验,但是SVM看起来要困难得多。还有其他方法我应该寻找吗?我知道它们肯定会有很多,但我需要一些东西才能开始。

由于

1 个答案:

答案 0 :(得分:2)

正如作为术语的复习,在Q学习中,您正在尝试学习Q函数,这取决于状态和动作:

Q(S,A) = ????

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

现在,让我们说使用不同的函数近似代替表格。例如,让我们尝试线性函数。拿你的(S,A)对,想一想你可以从中提取的一系列功能。一个特征的例子是“我在墙旁边”,另一个例子是“动作将物体放在墙壁旁边”,等等。编号这些特征f1(S,A),f2(S,A),. ..

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

Q(S,A) = w1 * f1(S,A) + w2*f2(S,A) ... + wN*fN(S,A)

你应该如何学习重量?好吧,因为这是一个家庭作业,我会让你自己考虑一下。

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

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,这样您就可以很好地表现您的空间。