继续之前的:
- 《深度学习知识卡片:深度学习基本概念》
- 《深度学习知识卡片:Logistic 回归》
- 《深度学习知识卡片:浅层网络的特点》
- 《深度学习知识卡片:深度神经网络的特点》
- 《深度学习知识卡片:偏差与方差》
- 《深度学习知识卡片:正则化》
最优化是机器学习模型中非常非常重要的模块,它不仅主导了整个训练过程,同时还决定了最后模型性能的好坏和收敛需要的时长。以下两张信息图都展示了最优化方法需要关注的知识点,包括最优化的准备和具体的最优化方法。

以上展示了最优化常常出现的问题和所需要的操作。首先在执行最优化前,我们需要归一化输入数据,而且开发集与测试集归一化的常数(均值与方差)与训练集是相同的。上图也展示了归一化的原因,因为如果特征之间的量级相差太大,那么损失函数的表面就是一张狭长的椭圆形,而梯度下降或最速下降法会因为「锯齿」现象而很难收敛,因此归一化为圆形有助于减少下降方向的震荡。
后面的梯度消失与梯度爆炸问题也是十分常见的现象。「梯度消失」指的是随着网络深度增加,参数的梯度范数指数式减小的现象。梯度很小,意味着参数的变化很缓慢,从而使得学习过程停滞。梯度爆炸指神经网络训练过程中大的误差梯度不断累积,导致模型权重出现很大的更新,在极端情况下,权重的值变得非常大以至于出现 NaN 值。
梯度检验现在可能用的比较少,因为我们在 TensorFlow 或其它框架上执行最优化算法只需要调用优化器就行。梯度检验一般是使用数值的方法计算近似的导数并传播,因此它能检验我们基于解析式算出来的梯度是否正确。