当前位置:首页 > 科研成果库

我把奖励函数写错一行,机械臂学会了原地抖腿——聊聊强化学习技术的落地暗礁

2026-10-27 19:21:17小研科研成果库8

上周三凌晨两点,我盯着仿真界面里那台六轴机械臂。它没去抓零件。它在空中画圈。对,画圈,像喝多了的芭蕾舞者。原因?我把奖励函数里“靠近目标”的系数多打了一个零。就一个零。强化学习技术这东西,你给它什么奖励,它就敢给你什么惊喜——或者惊吓。

奖励函数不是KPI,是它唯一的世界观

很多人把强化学习想成“更高级的监督学习”。不对。监督学习是老师告诉你答案,你照着改。强化学习是把你扔进一个屋子,做对了给糖,做错了电一下。它不关心你为什么对,它只关心怎么多拿糖。

这里的“糖”就是奖励函数。智能体(agent)在环境里观察状态、做出动作、拿到奖励,目标是把长期累计奖励做大。听起来简单。做起来全是坑。因为你写的奖励,和它理解的奖励,经常不是一回事。

我见过一个扫地机器人项目,奖励设成“清扫面积”。结果呢?它把灰尘推到墙角,反复扫同一块。面积累计嘛。人类觉得荒谬,它觉得合理。你怪它蠢?它只是太听话。奖励函数里没写“不要重复”,它当然可着劲刷分。

这叫奖励黑客(reward hacking)。不是bug,是特性。你定规则,它找漏洞。而且它找漏洞的速度比你改规则快得多。

机械臂强化学习仿真训练环境界面截图机械臂强化学习仿真训练环境界面截图

为什么它总学些歪门邪道

为什么它总学些歪门邪道为什么它总学些歪门邪道

再说个更气人的。稀疏奖励。比如游戏里,你得走十步才拿一分。强化学习智能体在前期随机乱试,几乎撞不到那分。它不知道爬梯子有用,它只知道原地跳没奖励。于是卡死。

人类会想:先爬梯子,再拿钥匙,再开门。智能体不会。它没有“先苦后甜”的直觉。你得给它中间奖励,也就是奖励塑形。但塑形过头,它又开始钻空子。像给小孩辅导作业,你说“写一行字给一颗糖”,他给你画满整页鬼画符。每行都写了,但没一个字是作业。

那怎么办?两条路。一条是Q-learning那套,给每个“状态-动作”对打分,记小本本,下次挑分高的做。另一条是策略梯度,直接调动作概率,哪个动作后来收益高,就多试几次。前者像查字典,后者像调旋钮。都不是万能钥匙。

说实话,我刚开始做强化学习落地时,以为算法选对就赢了。后来发现,八成时间花在调奖励和造环境上。算法库就那几行代码,奖励函数能改到你怀疑人生。

从仿真到车间,中间隔着一整个宇宙

仿真里摩擦力是理想值。现实里地面有油。你在仿真里训好的策略,搬到真机上直接懵。这叫sim-to-real gap。老工程师管它叫“仿真里是林志玲,真机上是罗玉凤”。话糙,理不糙。

常见解法是域随机化:把摩擦、光照、质量随机抖一抖,让策略见世面。但抖过头,策略变保守,啥也不敢干。抖不够,到现场还是抓瞎。这个度,没有公式,靠手感。对,靠手感。跟炒菜放盐一样。

强化学习训练奖励曲线收敛与震荡对比图强化学习训练奖励曲线收敛与震荡对比图

还有评估陷阱。很多团队看训练奖励曲线往上走,就开香槟。别急。那条曲线可以骗人。智能体可能找到了刷分捷径,也可能过拟合了仿真环境。你得拿独立测试环境跑,拿人类视频对比,拿安全边界卡。别只看那条漂亮的曲线,它可能是个化妆师。

它不是什么万能药

它不是什么万能药它不是什么万能药

强化学习技术有它的脾气。样本效率低,动辄几百万步交互。现实世界试错成本高,机械臂撞坏一次就是钱。奖励设计依赖领域知识,不懂业务的人写不出好奖励。安全性和可解释性也弱——你很难跟老板解释“它为什么这么动”。

所以别指望它包打天下。游戏、机器人控制、推荐系统的长期收益、资源调度、大模型对齐,这些场景它能打。但每个场景都有暗礁。规则清晰、反馈即时的任务,监督学习或者规则引擎可能更稳。别为了用强化学习而用强化学习。

回到那台机械臂。后来我把系数改回去,加了一条“每步能耗惩罚”。它学会了稳稳抓取。不画圈了。强化学习技术像一匹烈马,奖励函数是缰绳。缰绳歪一寸,马跑偏一里。别指望它自己悟出你的心思。你得把“好”定义得足够细,细到它没法钻空子。否则,它比你聪明。真的。