1.bn和dropout 在训练与测试阶段的区别:
bn在训练时使用的是batch的数据,在测试时使用的是全量数据集计算均值和方差,bn作用在wx+b之后(激活函数之前)的步骤,dropout作用在wx+b之前.Bn将数据分布拉回到均值为0,标准差为1的分布。避免过拟合的原因:
-
BN 可以看作在各层之间加入了一个新的计算层,对数据分布进行额外的约束,从而增强模型的泛化能力,避免过拟合;
-
但同时 BN 也降低了模型的拟合能力,破坏了之前学到的特征分布;
dropout主要是在训练时对输入向量进行1/1-p,保持输入数据的期望不变,测试就可以避免rescal
2.反向传播算法:(内容很多,建议看百面机器学习第220页)
3.过拟合:
过拟合(正则化、增加训练数据、数据增强、标签平滑(使模型对预测的结果不那么自信,以减少错误答案的建模)、BatchNorm、Early-Stop、交叉验证(重点在于验证,在数据集很小的时候避免过拟合)、Dropout、Pre-trained、引入先验知识
4.初始化(不同网络初始化有啥区别,神经网络隐层可以全部初始化为0吗:
Xavier初始化,适用于sigmoid 和 tann激活函数
hekaiming 初始化,relu,leaky relu
5.优化器:
BGD,SGD,MINIBGD
momentum:动量
AdaGrade :采用历史梯度平方和自适应调节参数学习率,相当于增加了环境感知,Adadelta.RMSprop 用梯度指数衰减平均值,避免学习率逐渐消失,
Adam将惯性保持和环境感知集一身,使用一阶矩和二阶矩,并且考虑了初始值为0时的偏置校正
所以一般使用 SGD
6.样本不均衡(降/过采样和带权重的loss)
7.评价指标:
Acc(准确率):分类正确的样本占总样本个数的比例
Precision(精确率):正类预测为正类占所有预测为正类的比值
Recall(召回率):正类预测为正类占所有实际正类的比值
P-R曲线:调整置信度阈值,以召回率为横轴,精确率为纵轴,经过点(0,0)
ROC曲线:调整截断点,横轴:假阳性率:Fp/TN+FN 纵轴:真阳性率:TP/TP+FP
AUC:ROC曲线下面积,一般为0.5~1,AUC越大说明分类器能把真正样本排在前面,分类性能好
MAP:每一个类别AP曲线下方面积的平均值
F1分数 = 2*precision*recall/(precision+recall)
8.逻辑回归:
损失函数:
9.L1正则化和L2正则化的区别:
a.解空间角度:L1范数将解空间约束在矩形范围内,最优解更容易落与目标函数等高线的角点碰撞,产生稀疏解
b.函数叠加:L1求导,其极小值点落在坐标轴左边,只要原目标函数的导数小于C,最小点就会落在原点,产生稀疏解。L2正则项在原点处导数为0,只要原函数原点导数不为01,极小值点就不在原点
c.贝叶斯先验:L1引入拉普拉斯先验,其图像在原点处产生尖峰,认为原点概率最大
L2引入高斯先验,在原点处是平滑的,也就是说,原点周围的点取到概率是一致的
10.模型压缩:
剪枝:权重剪枝:权重小于某个特定的阈值,认为其对结果影响很小,因此将它设置为0
敏感度分析:设置一个剪枝等级,也就是预先确定一个稀疏度,然后执行一次剪枝,在测 试集上评估剪枝后的模型并记录准确率得分,后按每层对应的最高的score的稀疏度进行剪枝
量化:FP32的32-bit转化为代表INT8的8-bit。
正则化:使用L1正则化,将参数置零,增加了模型的稀疏度,减少模型的大小。group 正则化
知识蒸馏:在小模型的基础上再加一个额外的soft target的loss function,通过lambda来调节两个loss functions的比重。。 输入使用的教师模型的soft——target(softmax中增加温度参数T),增加输入的信息量