3.1 局部极小值与鞍点
3.1.1 临界点及其种类
- 梯度下降失效: 梯度下降算法更新参数时,梯度 g 为零,导致参数不再更新,损失函数不再下降。
- 局部极小值: 周围的损失函数值都大于该点的损失函数值,是局部范围内的最低点。
- 鞍点: 周围的损失函数值既有大于该点的损失函数值,也有小于该点的损失函数值,形似马鞍,是局部范围内的“平坦”区域。
- 局部极大值: 周围的损失函数值都小于该点的损失函数值,是局部范围内的最高点。
3.1.2 判断临界值种类的方法
- 泰勒级数近似: 利用泰勒级数将损失函数在临界点附近展开,可以得到一个二次函数的近似,其中包含梯度 g 和海森矩阵 H 的信息。
- 梯度 g: 描述损失函数在临界点附近的斜率,可以帮助判断临界点的大致位置。
- 海森矩阵 H:
- 描述损失函数在临界点附近的曲率,可以更精确地判断临界点的种类。
- 计算特征值:
- 所有特征值为正:局部极小值。
- 所有特征值为负:局部极大值。
- 特征值有正有负:鞍点。
- 计算复杂度: 计算海森矩阵的特征值需要大量计算,实际应用中可能采用近似方法或替代方案。
3.1.3 逃离鞍点的方法
- 高维空间中的鞍点: 低维空间中的局部极小值在高维空间中可能变成鞍点,因为高维空间中存在更多的路径可以逃离鞍点。
- 鞍点的处理:
- 利用海森矩阵的特征向量: 找到负的特征值对应的特征向量,沿着该方向更新参数,可以逃离鞍点。
- 其他方法: 由于计算海森矩阵的特征向量计算量较大,实际应用中可能采用其他方法,例如使用动量、学习率调度等技术。
补充知识点
- 局部极小值和鞍点的数量: 在高维空间中,局部极小值和鞍点的数量可能远大于局部极大值。
- 梯度下降算法的改进: 为了避免收敛到鞍点,可以采用一些改进的梯度下降算法,例如:
- Adam 优化器: 结合了动量和自适应学习率,可以更有效地逃离鞍点。
- Nesterov 加速梯度: 在计算梯度时加入一个预测项,可以更快地逃离鞍点。