文章目录
一、神经网络训练失败原因
二、局部最小值&鞍点
(一)梯度为0
- 引发后果:optimization失败,Loss函数找不到最小值。
- gradient为0的点:局部最小值&鞍点
- 鞍点(saddle point):是指函数在某个点上既不是极小值也不是极大值,而是在该点处的梯度为零。这种情况下,函数在该点可能是一个局部最小值、局部最大值或鞍点。
- critical point(临界点):指的是函数的定义域内使得函数的导数等于零或未定义的点。临界点非常重要,因为它们可能对应于函数的极值点,如局部最大值或最小值,或者拐点。
(二)如何判断local minima/maxima和saddle point
1. 利用周围点与最低点来求导
2. 利用Hessian矩阵的结论
- 如果Hessian矩阵恒>0,则为正定(positive definite),特点是其所有的特征值都是正数,则为local minima。
- 如果Hessian矩阵恒<0,则为负定(negative definite),特点是其所有的特征值都是负数,则为local maxima。
- 如何Hessian矩阵的特征值有正有负,则为saddle point。
如果一个实对称矩阵的所有特征值都为负数,或者一个二次型的所有取值都为负数,那么该矩阵或二次型被称为"negative definite"(负定)。
更具体地说,对于一个实对称矩阵 A,如果对于任意非零向量 x,都有 x^T A x < 0(其中 x^T 表示向量 x 的转置),那么矩阵 A 被称为负定矩阵。
类似地,对于一个二次型 Q(x) = x^T A x,如果对于任意非零向量 x,都有 Q(x) < 0,则二次型 Q(x) 被称为负定二次型。
3. Example
Loss函数图解释:越红的地方Loss函数越大,越蓝的地方Loss函数越小,整体是一个马鞍面。
4. saddle point的处理方法
- 找出Hessian矩阵的负数的特征值并计算其特征向量,沿着特征向量的地方就是gradient减小的方向。
- 缺点:计算Hessian矩阵的特征向量的运算量很大,所以应用性不高
三、批次&动量
(一)batch 批次
- epoch:所有batch训练过一次。
- shuffle:将batch打乱,所以每次训练的epoch都不一样。
- 越小的batch size反而效果更好。
- flat minima要优于sharp minima,因为sharp minima是对于训练集而言的,可能出现过拟合的现象(overfitting),换成测试集可能情况就大不相同。
(二)momentum 动量
- 结合前进的方向和gradient的反方向(梯度下降的方向)
- 类似于粒子群优化
四、自动调整学习率
(一)客制化learning rate
- learning rate:机器一次学习的步伐
- 若模型平坦,则learning rate调大;反之调小。
- 核心思想:使学习率随着参数的不同自动调节大小
- 方法:root mean square、RMSProp、
(二)learning rate scheduling
- 定义:使得η与时间有关
五、Classification 分类
(一)Scaler
1.定义:在机器学习中,Scaler是一种用于特征缩放(Feature Scaling)的技术。特征缩放是指对特征数据进行线性变换,将其转换到特定的范围内,以便更好地进行模型训练和预测。这对于很多机器学习算法是很重要的,因为不同的特征可能具有不同的尺度和分布,如果不进行缩放,可能会导致某些特征对模型的影响过大,从而影响模型的性能。
2.Scaler常用的两种方法是:
- 标准化(Standardization):通过减去均值并除以标准差,将特征数据转换为均值为0、标准差为1的分布。标准化后的特征具有零均值和单位方差,适用于大多数机器学习算法,如线性回归、逻辑回归、支持向量机等。
- 归一化(Normalization):通过将特征数据缩放到特定范围内,如[0, 1]或[-1, 1]。归一化后的特征保留了原始数据的比例关系,适用于某些需要保留特征间比例关系的算法,如K最近邻算法、神经网络等。
(二)class as one-hot vector
因为分类问题你无法表示出结果像它,所以要用one-hot vector来表示输入。
(三)softmax
将输入y变到0-1之间,先将y的n个变量e^x化,使其到(0,+∞)之间,然后y的各个变量标准化使得n个变量之和为1。
(四)Loss of Classification
- Cross-entropy(信息熵)要优于MSE,因为MSE有可能在Loss高的时候平坦,导致损失函数找不到最低点。