修订历史:
- 2024-08-27 完成深度学习基础概念学习笔记
1 术语和定义
1.1 基础技术术语
1.1.1 局部极小值
局部极小值 local minimum
局部极小值是指在某个函数的定义域内,存在一个点,使得在这个点的邻域内,该点的函数值小于或等于邻域内所有其他点的函数值。简单来说,就是一个函数在某个区域内的最小值点。
局部极大值 local maximum 局部极大值是指在某个函数的定义域内,存在一个点,使得在这个点的邻域内,该点的函数值大于或等于邻域内所有其他点的函数值。通俗地讲,就是一个函数在某个区域内的最大值点。
临界点 critical point
临界点指的是梯度为零的点。
鞍点 saddle point
如下图(b)所示,红色圆点就是一个鞍点,因为它的形状像马鞍,故被叫作鞍点。鞍点的梯度为0,但不是局部极小值和局部极大值(local maximum)的点。
2 深度学习基础
2.1 为什么会出现神经网络优化失败?
在优化神经网络的过程中,我们可能遇到过如下的情况:
- 即便我们持续调整模型参数,损失值也不再下降。
- 通过对比深度网络、线性模型和浅层网络,我们发现深度网络的性能并不一定优于其他两者。这表明深度网络并未充分利用其潜力,这可能归因于优化过程存在的问题。
- 在某些情况下,模型一开始就训练不起来,不管我们怎么更新参数,损失值都难以降低,模型的性能也无法提升。
如下图所示,出现上述损失值不再下降的原因可能是某个地方的参数对损失的微分为 0.因为当模型参数的微分(即梯度)为零时,梯度下降不再能够继续更新参数,导致训练过程停止,损失值也就不会进一步降低了。
我们知道梯度为 0 的点被称为临界点。鞍点和局部极小值点都属于临界点,如何区分两者?
判断一个临界点到底是局部极小值还是鞍点需要知道损失函数的形状。可是怎么知道损失函数的形状?因为要讲清楚该过程,需要理解 泰勒级数近似(Tayler eries appoximation) 和 海森矩阵(Hessian matrix) 相关知识,这里略过。
2.2 如何逃离鞍点?
如果损失收敛在局部极小值,我们所在的位置已经是损失最低的点了,往四周走损失都会比较高,就没有路可以走了。但鞍点没有这个问题,旁边还是有路可以让损失更低的。只要逃离鞍点,就有可能让损失更低。
从经验上看起来,局部极小值并没有那么常见。多数的时候,我们训练到一个梯度很小的地方,参数不再更新,往往只是遇到了鞍点。