作者 | hzwer 黄哲威 编辑 | 自动驾驶之心
原文链接:https://www.zhihu.com/question/535225379/answer/1919097852895958495
点击下方卡片,关注“自动驾驶之心”公众号
>>自动驾驶前沿信息获取→自动驾驶之心知识星球
本文只做学术分享,如有侵权,联系删文
来点强化学习笑话
鼓励一个走迷宫 AI 尽量去那些没见过的场景,结果 AI 找到了一个迷宫里的电视,不用动就能不断地见到新东西 《智能体只想看电视》
模型训练很慢,随便写点 bug 很多天以后才会观察到迹象
我入门强化学习做的项目 NIPS2017-LearningToRunACE,是在虚拟环境训练一个机器人跑步,要在规定时间跑得最远,模型输入就是各个机器人关节的速度位置,障碍物的位置等等,然后输出肌肉的舒张收缩控制量
当年强化学习搭好框架以后,基本上就是要设计奖励或者说学习目标
先写个速度最快的学习目标 -> 学了两天一看,模型学会了跳远然后摔倒,因为蹦出去那一下挺快的摔倒惩罚搞高点 -> 模型学会扎马步
换个惩罚项,模型重心不能低 -> 模型学会了走路,但是膝盖都快反关节了,因为弯膝盖让重心变低
加点左右脚关节状态统计量的对称性约束 -> 模型学会了双腿蹦跶往前一直跳
给阶段性奖励,比如跑了10米就给奖励 -> 学会在一个地方来回过线
后来我又搞了一个 LearningToPaint,希望教 AI 用画笔涂鸦,输入是一张图片,神经网络每一步输出几个笔触的控制量(位置颜色形状等等)
因为输入图像,要用卷积网络处理图像,然后接全连接输出,结果我训了一两个月模型才发现,我卷积网络参数从来就没有更新过,也就是说我在用一个随机参数的神经网络做视觉特征提取器,也训练的还行
我还把画笔接口写错了,一个参数既控制红色也控制画笔半径,导致画的红色总是怪怪的,也凑合用
学习目标设计也很容易坑,比方说设计最大化每一步接近目标的程度 -> 学会画一笔后擦掉,循环刷分
鼓励模型用小笔画,想着让模型关注细节 -> 学会磨洋工刷分
惩罚项加多了就会出现类似于 狼抓不到羊一头撞死 的故事
还有很多实现的坑,在 numpy / torch / GPU 几个地方转来转去能把人搞疯,学会熟练使用 cProfile单个小数 np.round 比 round 慢十几倍完全没想到过
这两年又用强化学习训语言大模型了
让另一个奖励模型给模型打分 -> 尽说谄媚的话(这就是人类反馈!),发明奇怪的咒语骗奖励模型
鼓励模型思考长一些 -> 生成重复字符刷分
加上重复检测 -> 生成越来越高级的车轱辘话,听君一席话,如听一席话
我以为我在训练模型,其实我是在接受模型毒打
神经网络强就强在它非常鲁棒,硬扛 bug 也能迭代
合作做深度学习,你可以在环境、预处理的代码里塞几个 bug,在数据里投毒
让你的小伙伴来调模型,在 AI 像一个智障的时候他就有无限的灵感
最后关头把 bug 删掉获得突飞猛进的效果 《优秀的 AI 来源于艰苦的训练环境》
自动驾驶之心
论文辅导来啦
知识星球交流社区
近4000人的交流社区,近300+自动驾驶公司与科研结构加入!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(大模型、端到端自动驾驶、世界模型、仿真闭环、3D检测、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型,更有行业动态和岗位发布!欢迎加入。
独家专业课程
端到端自动驾驶、大模型、VLA、仿真测试、自动驾驶C++、BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、CUDA与TensorRT模型部署、大模型与自动驾驶、NeRF、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频
学习官网:www.zdjszx.com