【问题标题】:Reinforcement Learning - Optimizing Weights Given Scores强化学习 - 给定分数优化权重
【发布时间】:2026-01-21 21:00:02
【问题描述】:

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

机器人根据该位置的一些已知特征(例如到该点的距离、从该点到所有其他点的平均距离、面积围绕已经探索的点等)。我的目标是优化这个效用函数的权重,以最快的速度探索整个环境。

因为分数取决于整个探索路径,我不想在探索过程中改变权重。为了测试权重组合,我希望模拟机器人使用这些权重在整个环境中运行,并获得结果分数。因此,我可以创建一个 |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-learning 算法,但这并没有真正起作用,因为根据所采用的路径和环境的结构,状态和动作的数量是可变的。我真正想要的是某种结构,它可以逐行接收数据,并确定使预期分数最大化的权重值及其组合。任何帮助/想法?谢谢。

【问题讨论】:

    标签: optimization neural-network reinforcement-learning


    【解决方案1】:

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

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

    每种都有不同的风格,具体取决于您有多少参数、您的分数有多嘈杂以及您期望有多少局部最优。

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

    【讨论】:

    • 太完美了。感谢您的链接!