优化与深度学习
1.优化与估计
尽管优化方法可以最小化深度学习中的损失函数值,但本质上优化方法达到的目标与深度学习的目标并不相同。
- 优化方法目标:训练集损失函数值
- 深度学习目标:测试集损失函数值(泛化性)
2.优化在深度学习中的挑战
- 局部最小值
- 鞍点
- 梯度消失
2.1局部最小值
对于目标函数f(x),如果f(x)在x上的值比在x邻近的其他点更小,那么f(x)可能是一个局部最小值。
如果f(x)在x上的值是目标函数在整个定义域上的最小值,那么f(x)是全局最小值。
举例:
我们可以⼤致找出该函数的局部最小值和全局最小值的位置。需要注意的是,图中箭头所指⽰的 只是⼤致位置。
深度学习模型的⽬标函数可能有若⼲局部最优值。当⼀个优化问题的数值解在局部最优解附近 时,由于⽬标函数有关解的梯度接近或变成零,最终迭代求得的数值解可能只令⽬标函数局部最 小化而⾮全局最小化。
2.2 鞍点
刚刚我们提到,梯度接近或变成零可能是由于当前解在局部最优解附近所造成的。事实上,另⼀ 种可能性是当前解在鞍点(saddlepoint)附近。
举个例⼦:
我们可以找出该函数的鞍点位置。
再举个定义在⼆维空间的函数的例⼦,例如 :
我们可以找出该函数的鞍点位置。也许你已经发现了,该函数看起来像⼀个⻢鞍,而鞍点恰好是 ⻢鞍上可坐区域的中⼼。
在上图的鞍点位置,⽬标函数在x轴⽅向上是局部最小值,而在y轴⽅向上是局部最⼤值。
假设⼀个函数的输⼊为k维向量,输出为标量,那么它的⿊塞矩阵(Hessianmatrix)有k个特 征值(参⻅“数学基础”⼀节)。该函数在梯度为零的位置上可能是局部最小值、局部最⼤值或者 鞍点:
• 当函数的⿊塞矩阵在梯度为零的位置上的特征值全为正时,该函数得到局部最小值。
• 当函数的⿊塞矩阵在梯度为零的位置上的特征值全为负时,该函数得到局部最⼤值。
• 当函数的⿊塞矩阵在梯度为零的位置上的特征值有正有负时,该函数得到鞍点。
随机矩阵理论告诉我们,对于⼀个⼤的⾼斯随机矩阵来说,任⼀特征值是正或者是负的概率都是 0.5[1]。那么,以上第⼀种情况的概率为0.5k。由于深度学习模型参数通常都是⾼维的(k很⼤), ⽬标函数的鞍点通常⽐局部最小值更常⻅。
深度学习中,虽然找到⽬标函数的全局最优解很难,但这并⾮必要。我们将在本章接下来的小节 中逐⼀介绍深度学习中常⽤的优化算法,它们在很多实际问题中都训练出了⼗分有效的深度学习 模型。
小结:
• 由于优化算法的⽬标函数通常是⼀个基于训练数据集的损失函数,优化的⽬标在于降低训 练误差。
• 由于深度学习模型参数通常都是⾼维的,⽬标函数的鞍点通常⽐局部最小值更常⻅。