前言
弘扬中华传统美德,丑话要说在前面。任何机器学习方法都不是包治百病的灵丹妙药,它们也有各自的“舒适圈”,有时候还相当挑剔。强化学习,无论前面带不带“深度”二字,也同样有其鲜明的优势和局限性,务必要具体问题具体分析。不管公众号吹嘘得多么厉害,我们自己要摆正心态,不是所有需求都适合用DRL做,适合用DRL做的需求也未必能超越传统方法。
在我看来,算法工程师的核心能力可以总结成三点:1. 对各种算法本质及其能力边界的深刻理解;2. 对问题内在逻辑的深入分析;3. 对两者结合点的敏锐直觉。一个优秀算法工程师的高光时刻从拒绝不合理的需求开始,其他的都是后话。不经慎重评估而盲目上马的项目不仅是对资源的巨大浪费,更让每个参与者陷在深坑中痛不欲生。知道一种算法不能干什么与知道它能干什么同样重要,对DRL而言,即使在最理想的外部条件下,也有其绕不过去的七寸——泛化无能。这是DRL的基本原理决定的,任何在这一点上提出过高要求的应用都不适合用DRL解决。
DRL的过拟合天性
DRL解决的是从过去经验中学习有用知识,并用于后续决策的问题。有别于纯视觉应用,DRL不仅仅满足于识别和定位,而是要根据这些信息采取针对性的行动以获取最大长期收益。从本质上说,DRL就是一种依赖过拟合的算法,说白了就是通过暴力搜索把其中的成功经验记下来,并用以指导后续决策。别嫌露骨,别怕尴尬,岂不闻学术界某大牛的辛辣讽刺仍余音绕梁——强化学习是唯一被允许在训练集上测试的算法。由于缺乏直接监督信号用于训练,DRL还特别“费数据”,以至于需要专门的模拟器源源不断地产生数据供其挥霍。好不容易训出来的policy在训练环境用得好好的ÿ