损失函数:
1、绝对值损失函数
2、平方损失函数 (回归任务)
3、指数损失函数
4、交叉熵损失函数 (分类任务)
正则化:
L1正则化是指权值向量中各个元素的绝对值之和,可以实现让参数矩阵稀疏,让参数稀疏的好处,可以实现对特征的选择
L2正则化是指权值向量中各个元素的平方和然后再求平方根,解决过拟合问题。
1*1卷积: 实现跨通道交互、升降维、增加非线性
过拟合: 泛化能力差,原因:
网络太复杂,数据量不够; ---调小模型,增加数据集
训练集与测试集特征分布不一致;--正则化,dropout
样本中噪声数据干扰太大,
迭代次数太多了 -----提前停止
BN以及BN在测试阶段如何处理 ?
对每一个batch的数据根据求得的均值和方差进行归一化处理,主要作用是加速训练收敛,防止过拟合。
测试阶段,可以根据训练数据机每一个batch的均值和方差做平滑处理或者求均值,得到全局的均值和方差。
dropout在测试阶段如何处理 ?
Dropout 是在训练过程中以一定的概率的使神经元失活,即输出为0,以提高模型的泛化能力,减少过拟合。
在测试时,应该用整个训练好的模型,因此不需要dropout。在测试的时候没有神经元被丢弃,因此输出值需要按dropout比率缩小。
BN和Dropout单独使用都能减少过拟合并加速训练速度,但如果一起使用的话并不会产生1+1>2的效果,相反可能会得到比单独使用更差的效果
为什么会出现梯度消失和梯度爆炸 ?
梯度消失:在神经网络中,当前面隐藏层的学习速率低于后面隐藏层的学习速率,即随着隐藏层数目的增加,分类准确率反而下降了。 这种现象叫梯度消失。
梯度爆炸:由于初始化权值过大,前面层会比后面层变化的更快,就会导致权值越来越大,梯度爆炸的现象就发生。 这种现象叫梯度爆炸
因为通常神经网络所用的激活函数是sigmoid函数,这个函数有个特点,就是能将负无穷到正无穷的数映射到0和1之间,并且对这个函数求导的结果是f′(x)=f(x)(1-f(x))。
因此两个0到1之间的数相乘,得到的结果就会变得很小了。神经网络的反向传播是逐层对函数偏导相乘,因此当神经网络层数非常深的时候,最后一层产生的偏差就因为乘了很多的小于1的数而越来越小,最终就会变为0,从而导致层数比较浅的权重没有更新,这就是梯度消失
1、选择合适的激活函数
一般使用 Relu函数,Relu的导数为1.不建议使用Sigmoid函数和tanh函数,因为二者的导函数的区域小,容易梯度消失。
2、选择合适的参数初始化方法
3、使用权重参数正则化
4、使用Batch Normalization
5、使用残差结构
分类有哪些评估指标:
1、正确率 = 实际为正例/(预测为正例) 检索出来的条目有多少是正确的
2、召回率 = 预测为正例且实际为正例 /实际为正列 所有正确条目有多少被检索出来了
F1Score = 2*PR/(P +R)
讲一下SOFTMAX ?
该元素的指数与所有输出元素指数和的比值。通过Softmax函数就可以将多分类的输出值转换为范围在[0, 1]和为1的概率分布