3、神经网络优化中的挑战
优化是一个很困难的任务,在传统机器学习中一般会很小心的设计目标函数和约束,以使得优化问题是凸的;然而在训练神经网络时,我们遇到的问题大多是非凸,这就给优化带来更大的挑战。
3.1 局部极小值
凸优化问题通常可以简化为寻找一个局部极小值点的问题,在凸函数中,任何一个局部极小点都是全局最小点;有些凸函数的底部是一个平坦区域,在这个平坦区域的任一点都是一个可以接受的解。如下图所示:
但是在非凸函数中,梯度经常卡在局部极小值点出不来,所以得不到全局最优解,如下图所示:
3.2 高原、鞍点和其他平坦区域
低维空间中,局部极小值很普遍。在更高维空间中,局部极小值很罕见,而鞍点则很常见。鞍点处的极值也为0,在鞍点处,Hessian 矩阵同时具有正负特征值。位于正特征值对应的特征
向量方向的点比鞍点有更大的代价,反之,位于负特征值对应的特征向量方向的点有更小的代价,从而神经网络也不能优化到一个极小值。我们可以将鞍点视为代价函数某个横截面上的局部极小点,同时也可以视为代价函数某个横截面上的局部极大点,如下图红色小点所示:
另外如果在高原处,梯度是平坦的,那么优化算法很难知道从高原的哪个方向去优化来减小梯度