大家熟知的大疆无人机也不例外
下面就来说说控制理论和深度学习优化的关系。在控制理论里,“误差”即受控机器的输出与期望值之间的距离。如何根据“误差”让机器做出下一步更新的算法就是控制器。
对于深度学习优化,将模型输出和期望输出的误差来定义为损失函数。损失函数通过执行“误差的反向传播” [1] 得到梯度来影响权重。就像 Hinton 老先生在其发表在 Nature [1] 的文章里那样描述的,梯度是每个权值对总的损失函数贡献,其与损失函数为线性关系。
把深度学习里的”梯度”看成是当前权重与最优权重的“误差”,这样 SGD-Momentum就与 PID 优化器通过”梯度”与“误差”的联系而联系到了一起。如下图,可以看到控制过程与深度学习的优化过程的联系,可以发现控制系统里的反馈、误差、PID控制器与深度学习里的反响传播、梯度、优化器有着很高的相似度。
如果把控制里的误差用梯度替换掉的话,那么深度学习优化器 SGD-Momentum 和反馈控制器 PID 就有如下的关系:
这样 SGD-Momentum 可以等效为 PI 控制器。而在控制理论中,PI 控制有超调的问题,也就是说 SGD-Momentum 有超调问题,这一点其实很容易理解,因为 I(Integral)是历史梯度的积累。也就是说如果历史梯度朝着同一个方向变化的话,那么朝着该方向的变化就会不断地加速,但是如果要改变方向,那么由于历史梯度还是朝着相反的方向变化,就会产生滞后反应或者也叫超调(Overshoot)的问题。