题目标题

常见损失函数,过拟合,梯度消失/爆炸

难度:中级

深度学习
参考解析

损失函数:
Zero-one Loss(0-1损失)0-1 loss 是最原始的loss,它是一种较为简单的损失函数,如果预测值与目标值不相等,那么为1,否则为0
Hinge loss主要用于支持向量机(SVM)中
softmax-loss (多类别)
Logistic-loss(二分类的交叉熵损失函数)
交叉熵,cross entropy(多分类)
softmax cross entropy
triplet loss
均方误差(mean squared error,MSE),也叫平方损失或 L2 损失,常用在最小二乘法中
平均绝对误差(Mean Absolute Error,MAE)是所有单个观测值与算术平均值的绝对值的平均,也被称为 L1 loss,常用于回归问题中
Smooth L1损失
原始的L1 loss和L2 loss都有缺陷,比如L1 loss的最大问题是梯度不平滑,而L2 loss的最大问题是容易梯度爆炸
center loss:一个batch中的每个样本的feature离feature 的中心的距离的平方和要越小越好,也就是类内(intra-class)距离要越小越好。这就是center loss。

过拟合:
模型(在训练集和验证集上都)无法得到较低的训练误差,我们将这一现象称作欠拟合(underfitting);
模型的训练误差远小于它在验证/测试数据集上的误差,我们称该现象为过拟合(overfitting)。

梯度消失/爆炸?
梯度消失:梯度趋近于零,网络权重无法更新或更新的很微小,网络训练再久也不会有效果;
梯度爆炸:梯度呈指数级增长,变的非常大,然后导致网络权重的大幅更新,使网络变得不稳定。
Sigmoid导数的取值范围在0~0.25之间,而我们初始化的网络权值图片: https://uploader.shimo.im/f/6m1gJwJDrja940bL.png通常都小于1,因此,当层数增多时,小于0的值不断相乘,最后就导致梯度消失的情况出现。同理,梯度爆炸的问题也就很明显了,就是当权值图片: https://uploader.shimo.im/f/TO8L6nw2ZURSo26v.png过大时,导致 图片: https://uploader.shimo.im/f/6HBrRUzvfYPqbkey.png,最后大于1的值不断相乘,就会产生梯度爆炸。
梯度消失和梯度爆炸本质上是一样的,都是因为网络层数太深而引发的梯度反向传播中的连乘效应。
解决梯度消失、爆炸主要有以下几种方案:
(1) 换用Relu、LeakyRelu、Elu等激活函数
(2) BatchNormalization
(3)梯度剪切、正则等等