目录
3.1
鞍点
鞍点(Saddle Point)是数学中一个重要的概念,特别是在微积分和优化理论中。鞍点是指在一个多变量函数的图像上,既不是局部极大值也不是局部极小值的一个点。具体来说,鞍点在某些方向上表现为极大值,而在其他方向上表现为极小值。
例如,在二维空间中,可以想象一个马鞍形状的曲面,鞍点就位于马鞍的中央。在这个点上,曲面沿一个方向(比如从左到右)是凹的(即一个极小值),而沿另一个方向(比如从前到后)是凸的(即一个极大值)。
在优化问题中,鞍点是一个具有重要意义的点,尤其是在对非凸函数进行分析时。优化算法,如梯度下降法,可能会陷入鞍点,导致无法找到真正的全局最优解。因此,理解和处理鞍点是优化理论中的一个关键挑战。
计算
1. 局部极值
与普通求导一样,梯度接近0即可,但是海森矩阵需要正定/负定。
2. 鞍点
与普通求导一样,梯度接近0即可,海森矩阵特征值有正有负。
逃离鞍点的方法
1. 计算二阶导数
太麻烦,时间复杂度高
2. 逃离鞍点
我们在训练一个网络的时候,参数数量动辄达百万千万级,所以误差表面其实有非常高的维度—— 参数的数量代表了误差表面的维度。维度这么高,就有非常多的路可以走呢。既然有非常多的路可以走,其实局部极小值就很少。
这很好,表明在高位空间,很多情况下会有足够的负向梯度一直下降,不会出现收敛于局部最小值。并且在实践中,为了降低时间复杂度,通常不使用海森矩阵计算判断鞍点。只需要看损失函数如果卡在一个高位了,就怀疑遇到了鞍点,那么就使用一些方法比如换一个损失函数等等。(下面的措施)如果改正后损失函数LF降低了就更好。
3.2
批 Batch
数据分为批计算,遍历所有批量的过程称为一个回合(epoch)。
1. 全批量(full batch)的数据来更新参数的方法即批量梯度下降法(Batch Gradient Descent,BGD)
2. 批量大小等于1:随机梯度下降法(Stochastic Gradient Descent,SGD),也称为增量梯度下降法
对于可以并行运算的GPU来说,提升批量大小(Batch Size)的时候不一定会耗费更多时间。
当时还需要考虑批量大小过小会导致批量数过多。
大批量 vs 小批量
大的批量更新比较稳定,小的批量的梯度的方向是比较有噪声的(noisy)。但实际上有噪声的的梯度反而可以帮助训练:
1. 小批量更快换损失函数,不容易局限于局部最小点
2. 测试集:大批量容易过拟合,小批量容易逃出局部最小点或者损失函数的‘峡谷’最小点
动量法
自适应学习率
Q:噪声过多怎么办?
噪声过多会:1.增加资源占用,2.使损失函数波动大,难以收敛,3.出现不可预见的过拟合(overfitting)。
Q:特征向量?
特征值超过3个就矩阵算,以下就手算。