Batch Normalization(BN)
BN是训练神经网络的一种方法 目标:将特征(每层激活函数后的输出)归一化均值为0,标准差为1 作用:
- 可以使用更大的学习率,
加快模型的收敛 。(BN将不稳定的数据归一化为合理稳定的数据【数据起伏大】) - BN可以有助于权重值的学习。(可以避免X值经过直线的非线性激活函数后过饱和的线性情况)
- 可以有效的
减少(抑制)过拟 合现象
Bias和Variance(偏差和方差)
bias 是当前模型的平均预测与我们需要预测的实际结果之间的差异。一个bias高的模型,简单、欠拟合。
Variance为模型输出在一个数据点上的分布,Variance越大,模型在训练集上面的表现越好,但是在测试集上面很差,过拟合
模型评估指标
- AP(平均精度)
- mAP(各类平均精度)
- Acc(精准率)
- Recacc(召回率)
- Precision(精准率)
- F1-score
- ROC曲线
前向过程
前向过程是一个帮助模型计算每一层权重的过程,其中结果计算将产生一个结果,此时计算损失值,显示模型的好坏
反向求导
反向求导,为了降低损失函数的值,需要进行求导。反向求导可以帮助我们计算模型的每一层大导数,再更具每一层的优化器,更新神经网络的权重值。
反复迭代
反复迭代就是通过前向计算、反向求导、反向传播的反复迭代,降低模型损失,从而达到收敛效果。
激活函数
目前主流的卷积神经网络框架都会遵循类似卷积—>>池化—>>卷积—>>池化…—>>全连接—>>softmax 这样的网络结构,其中在卷积层后都会有跟随着一层激活层 . 作用:激活函数是用来加入非线性因素的,因为线性模型的表达能力不够
Sigmoid
Sigmoid又叫作 Logistic 激活函数,它将实数值压缩进 0 到 1 的区间内,还可以在预测概率的输出层中使用。该函数将大的负数转换成 0,将大的正数转换成 1。 Sigmoid缺陷: - 梯度消失 : 注意:Sigmoid 函数趋近 0 和 1 的时候变化率会变得平坦,也就是说,Sigmoid 的梯度趋近于 0。神经网络使用 Sigmoid 激活函数进行反向传播时,输出接近 0 或 1 的神经元其梯度趋近于 0。这些神经元叫作饱和神经元。因此,这些神经元的权重不会更新。此外,与此类神经元相连的神经元的权重也更新得很慢。该问题叫作梯度消失。因此,想象一下,如果一个大型神经网络包含 Sigmoid 神经元,而其中很多个都处于饱和状态,那么该网络无法执行反向传播。
不以零为中心 : Sigmoid 输出不以零为中心的。计算成本高 : exp() 函数与其他非线性激活函数相比,计算成本高
Tanh
Tanh 激活函数又叫作双曲正切激活函数(hyperbolic tangent activation function)。与 Sigmoid 函数类似,Tanh 函数也使用真值,但 Tanh 函数将其压缩至-1 到 1 的区间内。与 Sigmoid 不同,Tanh 函数的输出以零为中心,因为区间在-1 到 1 之间。你可以将 Tanh 函数想象成两个 Sigmoid 函数放在一起。在实践中,Tanh 函数的使用优先性高于 Sigmoid 函数。负数输入被当作负值,零输入值的映射接近零,正数输入被当作正值
Tanh 函数也会有梯度消失的问题
ReLU
当输入 x<0 时,输出为 0,当 x> 0 时,输出为 x。该激活函数使网络更快速地收敛。它不会饱和,即它可以对抗梯度消失问题,至少在正区域(x> 0 时)可以这样,因此神经元至少在一半区域中不会把所有零进行反向传播。由于使用了简单的阈值化(thresholding),ReLU 计算效率很高。 ReLU缺陷
- 不以零为中心:和 Sigmoid 激活函数类似,ReLU 函数的输出不以零为中心。
- 前向传导(forward pass)过程中,如果 x < 0,则神经元保持非激活状态,且在后向传导(backward
pass)中「杀死」梯度。这样权重无法得到更新,网络无法学习。当 x = 0 时,该点的梯度未定义,但是这个问题在实现中得到了解决,通过采用左侧或右侧的梯度的方式。
参考:常见的激活函数总结
希望对你有用! 谢谢点赞评论!
|