损失函数

L1损失函数

L1损失函数定义

L1范式损失函数,也称为最小均对值误差(LAD),将目标值和估计值的绝对差值的总和最小化
l1.PNG

特点

  • 鲁棒
  • 不稳定解,也就是可能有多个解

L2损失函数

L2损失函数定义

L2范数损失函数,也被称为最小平方误差(LSE),将目标值和估计值的差值的平方和的最小化
l2.PNG

特点

  • 鲁棒性不是特别好
  • 稳定解,总是一个解
  • 相对于L1损失函数,L2损失函数会放大最大误差和最小误差之间的差距
  • 对异常点比较敏感

SSIM损失函数

SSIM损失函数定义

该损失函数考虑到了亮度,对比度和结构等指标,也就是考虑了人类的视觉感知,一般来说SSIM得到的结果会比L1,L2范式损失函数更有细节
ssim.PNG

MS-SSIM损失函数

MS-SSIM损失函数定义

在SSIM损失函数的基础上额外考虑了分辨率这一主观因素
MSSSIM.PNG

激活函数

激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端

Sigmoid激活函数

也称为Logistic函数,用于隐藏层的输出

  • 输出范围:0~1
  • 用途:可用于做二分类
  • 适用范围:特征相差较复杂或者是相差不是特别大的时候,效果比较好
    sigmoid.PNG

特点

  • 梯度消失:从其绘制图可以看出,在Sigmoid函数趋近于0和1时变化率趋于平坦,此时梯度接近于0。倘若神经网络使用Sigmoid激活函数进行反向传播时,输出接近0或1的神经元梯度趋近于0,这些神经元称为饱和神经元
  • 计算成本高

Relu(修正线性单元)

Rulu激活函数的解析式为Relu = max(0,x) ,其函数图像如下所示
relu.PNG

特点

  • 当输入值小于0时,输出为0
  • 当输入值大于0时,输出值为本身,也就是说Relu函数可以使网络更快速的收敛,可对抗梯度消失的问题
  • Relu函数的输出不以0为中心
  • 前向传播过程中倘若x小于0,则神经元保持为非激活状态,且在后向传播中“杀死”梯度,使得权重无法更新,网络无法学习

Leaky Relu

Leaky Relu激活函数的解析式为LeakyRelu = max(0.01α,x)
leakyRelu.PNG

概念:当x<0时,仍然得到0.01的正梯度

特点

  • 一定程度上缓解了 dead Relu的问题
  • 使用该函数的结果并不连贯

P-Relu(Parametric ReLU)

解析式 : P - Relu = max(xα,x) ,图像如下所示
PRule.PNG

其中的α是超参数

Elu激活函数

ELU函数同样是为了解决Relu存在的问题而提出的
其解析式如下
ELU.PNG
函数图像如下
ELUP.PNG

特点

  • ELU通过在正值区间取输入x本身减轻了梯度弥散问题
  • 输出均值接近0,解决了Relu输出不以0为中心的问题
  • 不会有Dead Relu问题
  • 计算量稍大,原点不可导

Gelu激活函数

是bert中使用的激活函数,经过实验证明比relu效果好
解析式如下
gelu.PNG
函数图像如下
geluP.PNG

特点

  • 原点可导
  • 不会有Dead Relu问题
  • NLP邻域常用激活函数

参考内容

NLPer的日常笔记
ELU激活函数的提出

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议