1

我正在做一个项目,该项目有一个模拟机器人通过移动到预定义的“感应位置”来探索未知但有图案的环境(例如办公楼)。换句话说,机器人必须在每个点从可用的可见位置中选择一个新的位置来移动。我们的最终目标是让机器人学习如何利用环境中的模式来优化全局探索时间。

机器人根据该位置的一些已知特征的线性组合(例如到该点的距离、从该点到所有其他点的平均距离、该点周围的区域)给它一个效用分数,从而选择下一个要移动到的位置已经探索过,等等)。我的目标是优化这个效用函数的权重,以最快的速度探索整个环境。

因为分数取决于整个探索路径,所以我不想在探索过程中改变权重。为了测试权重组合,我希望模拟机器人使用这些权重在整个环境中运行,并获得结果分数。因此,我可以创建一个 |w|+1 xn 数据数组,其中 |w| 是权重的数量,例如:

w1    w2    w3     w4      score
0.23, 4.30, -0.33, -2.001, 17030
-1.3, 2.03, -10.1, -0.021, 21983
3.65, -1.1, 5.021, 0.2301, 19508
etc...

我的问题是,哪种强化学习算法最适合这个?我在文献和研究中发现的大部分内容都与分类有关,显然多元回归是行不通的。我也尝试实现一个 q-learning 算法,但这并没有真正起作用,因为根据所采用的路径和环境的结构,状态和动作的数量是可变的。我真正想要的是某种结构,它可以逐行接收数据,并确定使预期分数最大化的权重值及其组合。任何帮助/想法?谢谢。

4

1 回答 1

1

形式化设置的方式(没有中间奖励,没有在线学习,只有最终分数)是黑盒优化(或系统发育强化学习)的典型方式。

合适的算法包括遗传算法、进化策略或随机搜索。一些最先进的算法是:

每个都有不同的风格,这取决于你有多少参数,你的分数有多嘈杂,以及你期望有多少局部最优。

有关这些在 Python 中的实现的集合,请查看PyBrain库。

于 2011-04-20T19:00:32.320 回答