我正在研究一个模拟机器人通过移动到预定义的“感应位置”来探索未知但有图案的环境(例如办公楼)的项目。换句话说,在每个点处,机器人必须从可用的可见位置选择要移动到的新位置。我们的最终目标是让机器人学习如何利用环境中的模式来优化全球探索时间。
机器人通过基于关于位置的许多已知特征的线性组合(例如到该点的距离,从该点到所有其他的平均距离,区域)给出其效用得分来选择移动到下一个位置。围绕已经探索过的点等)。我的目标是优化此效用函数的权重,以便最快地探索整个环境。
因为得分取决于整个探索路径,所以我不想在探索中期改变权重。为了测试权重组合,我希望模拟机器人在这些权重的整个环境中运行,并获得最终得分。因此,我可以创建一个| w | +1 x n数据数组,其中| 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学习算法,但这并不是真的有效,因为根据所采用的路径和环境的结构,存在可变数量的状态和动作。我真正想要的是某种结构,它采用一排又一排的数据,并确定权重及其组合的值,以最大化预期得分。任何帮助/想法?感谢。
答案 0 :(得分:1)
您正式确定设置的方式(没有中间奖励,没有在线学习,只是最终得分)是黑盒优化(或系统发育强化学习)的典型方式
适当的算法包括遗传算法,进化策略或随机搜索。一些最先进的算法是:
每种都有不同的风格,取决于你有多少参数,你的分数有多嘈杂,以及你期望的当地最佳数量。
有关Python中这些实现的集合,请查看PyBrain库。