常问问题

Gap层的原理

全局平均池化,是替代FC的一种方式,可以将每个二维的特征通道变成一个实数,该实数某种程度上具有该特征通道的全局信息。最开始主要是从模型压缩的应用中得到的灵感。

过拟合

小样本问题-模型方面

欠拟合

样本不均衡问题

自监督学习方法

分类评价指标

各个类别的样本数量往往不太平衡时,模型很容易偏向大类别而放弃小类别 (eg: 正负样本比例1:9,直接全部预测为负,acc也有90%。但正样本就完全被“抛弃”了)。 导致整体acc挺高,但是部分类别完全不能被召回

ResNet为什么有效

Dropout(解决过拟合现象)

BN层的原理(归一化+变换重构)

梯度消失和梯度爆炸

img
img

池化层的反向传播

参考链接:https://blog.csdn.net/Jason_yyz/article/details/80003271

l1和l2正则化

原理

种类

L1和L2区别

相同点:都用于避免过拟合

不同点:

  1. L1正则是拉普拉斯先验,而L2正则则是高斯先验。
  2. L1可以产生稀疏解,可以让一部分特征的系数缩小到0,从而间接实现特征选择。
  3. 所以L1适用于特征之间有关联的情况。L2让所有特征的系数都缩小,但是不会减为0,它会使优化求解稳定快速。所以L2适用于特征之间没有关联的情况
  4. 因为L1和服从拉普拉斯分布,所以L1在0点处不可导,难以计算,这个方法可以使用Proximal Algorithms或者ADMM来解决。
  5. l1和l2的鲁棒性

l2产生稀疏解原因

img

上图中的模型是线性回归,有两个特征,要优化的参数分别是w1和w2,左图的正则化是l2,右图是l1

蓝色线就是优化过程中遇到的等高线,一圈代表一个目标函数值,圆心就是样本观测值(假设一个样本),半径就是误差值,受限条件就是红色边界(就是正则化那部分),二者相交处,才是最优参数。

可见右边的最优参数只可能在坐标轴上,所以就会出现0权重参数,使得模型稀疏。

网络优化器总结

梯度下降法(Gradient Descent)

标准梯度下降法(GD)

批量梯度下降法(BGD)

随机梯度下降法(SGD)

动量优化法

动量优化方法是在梯度下降法的基础上进行的改变,具有加速梯度下降的作用。一般有标准动量优化方法Momentum、NAG(Nesterov accelerated gradient)动量优化方法。

Momentum

牛顿加速梯度(NAG, Nesterov accelerated gradient)算法

自适应学习率优化算法

AdaGrad算法RMSProp算法Adam算法以及AdaDelta算法

AdaGrad算法

RMSProp算法

AdaDelta算法

Adam

  1. Adam来自于Adaptive moments,它是另一种引入了动量的RMSProp算法。

5.4.1 Adam 算法

  1. Adam算法输入:

  2. RMSProp 算法中,通过累计平方梯度(采用指数移动平均)来修正学习率。

    Adam算法中,不仅采用同样的方式来修正学习率,还通过累计梯度(采用指数移动平均) 来修正梯度。

  3. 动量的计算可以类似Nesterov动量的思想:计算mini-batch的梯度时,采用更新后的参数 。

    此时称作NAdam 算法。

5.4.2 Adam 算法性质

  1. 假设迭代过程中,梯度刚好是固定的某个量,则有: 对于某个方向,假设其分量为 ,则对于 Adam 算法有:

  2. Adam 算法之所以需要使用一阶矩的修正和二阶矩的修正,是为了剔除时间因子 的影响。

  3. 在某些情况下,Adam 可能导致训练不收敛。主要原因是:随着时间窗口的变化,遇到的数据可能发生巨变。这就使得 可能会时大时小,从而使得调整后的学习率 不再是单调递减的。

    这种学习率的震荡可能导致模型无法收敛。

    AdaDeltaRMSProp 算法也都存在这样的问题。

    解决方案为:对二阶动量的变化进行控制,避免其上下波动(确保 是单调递增的):

  4. 实践证明,虽然在训练早期Adam 具有很好的收敛速度,但是最终模型的泛化能力并不如使用朴素的SGD 训练得到的模型好:Adam 训练的模型得到的测试集误差会更大。