美文网首页
噪音鲁棒的损失函数

噪音鲁棒的损失函数

作者: Stack_empty | 来源:发表于2021-01-14 22:17 被阅读0次

一、前提知识

定义0——噪音、对称噪音、非对称噪音:

  • 噪音:在这里指的是标签错误的样本。例如在通过众包进行数据打标的场景中噪音就是一个不可避免的问题。
  • 对称噪音(symmetric/uniform noise):所有的样本,都以同样的概率会错标成其他标签;
  • 非对称噪音(asymmetric/class-confitional noise):不同类别的样本,其错标的概率也不相同。

定义1——损失函数的抗噪性:

如果一个损失函数,在有噪音的情况下,其风险最小化的模型(minimizer)跟没有噪音时是相同的,就称这个损失函数是抗噪的(noise-tolerant)。换言之,有噪音的情况下的最优模型,跟没噪音一样。(听起来是不是不可能?)

定义2——损失函数的对称性:

我们设模型f(x)的损失函数为L,设分类问题的类别有k类,则称这个损失函数L是对称的,当它满足下面的公式:
\sum_{i=1}^{k} L(f(\mathbf{x}), i)=C, \forall \mathbf{x} \in \mathcal{X}, \forall f

二、重大发现:有对称性的损失函数,具有一定的抗噪能力

作者通过推导以及实验,发现拥有对称属性的损失函数,对噪音的抵抗能力也更强。甚至,当噪音时对称噪音时,该损失函数理论上是完全抗噪的。

理论推导:

下面我们来推导一下:

首先假设我们面对的是对称噪音,噪音比为\eta.
设一个模型在没有噪音时的目标函数R_{L},即损失函数在所有训练样本上的期望:
R_{L}(f)=\mathbb{E}_{\mathbf{x}, y_{\mathbf{x}}} L\left(f(\mathbf{x}), y_{\mathbf{x}}\right)
然后,设该模型在当前有噪音的情况下,目标函数是R_{L}^{\eta},公式为:
R_{L}^{\eta}(f)=\mathbb{E}_{\mathbf{x}, \hat{y}_{\mathbf{x}}} L\left(f(\mathbf{x}), \hat{y}_{\mathbf{x}}\right)

那么,如果损失函数是对称的,我们可以有以下推导:


即可以得出结论:
R_{L}^{\eta}(f)=A+\alpha R_{L}(f)
其中A为常数,\alpha为跟噪音比\eta和类别k相关的系数。

由此可以知道,当\alpha > 0的时候(即当\eta<\frac{k-1}{k}时),R_{L}^{\eta}(f)R_{L}(f)是线性相关的,故他们的f的最优解也是一样的!而只需要满足对称噪音的噪音比\eta<\frac{k-1}{k}即可。

这相当于,在二分类问题中噪音比不超过50%,三分类问题中噪音不超过66%,十分类问题中噪音不超过90% ,都跟没噪音一样!

基于直觉的理解:

推导出上面的结论,我当时也十分的惊讶,居然这么神奇。我们想一想,上面的结论中,最重要的假设是什么?有两方面:

  1. 损失函数自身的对称属性
    这个属性直观的理解,可以通过下图:


    上图展示了一个四分类问题,损失函数对称,就意味着如果一个样本,它的真实标签把所有标签都遍历一遍,计算其损失之和,这个和是个常数。
  2. 对称噪音,即当一个样本错标时,它被分配到任意一个标签的概率都是相同的。

在这样的情况下,噪音的出现,在某种意义上,相当于一个样本把所有标签都遍历了一遍。那么对整体的损失函数,只不过是增加了一个常数,因此不影响最终的优化结果。

现实的例子

通过上面的神奇的发现,我们不禁想问,拥有这么神奇的属性的损失函数应该很少见吧。其实不是,常见的MAE(mean absolute error,平均绝对误差),就是一个典型的拥有对称性的损失函数。而我们最最常用的CCE(categorical cross-entropy loss,交叉熵损失函数)、MSE(mean squire error,均方误差),则是非对称的。

下面是他们的损失函数:
L\left(f(\mathbf{x}), \mathbf{e}_{\mathbf{j}}\right)=\left\{\begin{array}{ll} \sum_{i=1}^{k} e_{j i} \log \frac{1}{u_{i}}=\log \frac{1}{u_{j}} & \mathrm{CCE} \\ \left\|\mathbf{e}_{\mathbf{j}}-u\right\|_{1}=2-2 u_{j} & \mathrm{MAE} \\ \left\|\mathbf{e}_{\mathbf{j}}-u\right\|_{2}^{2}=\|u\|_{2}^{2}+1-2 u_{j} & \mathrm{MSE} \end{array}\right.

通过遍历类别求和,验证其对称性:
\sum_{i=1}^{k} L\left(f(\mathbf{x}), \mathbf{e}_{\mathbf{i}}\right)=\left\{\begin{array}{ll} \sum_{i=1}^{k} \log \frac{1}{u_{i}} & \mathrm{CCE} \\ \sum_{i=1}^{k}\left(2-2 u_{i}\right)=2 k-2 & \operatorname{MAE} \\ k\|u\|_{2}^{2}+k-2 & \mathrm{MSE} \end{array}\right.
可以看出,MAE确实具有对称性。

作者在MNIST和RCV1数据集上做了一些实验,见下图:


可以看出,在有噪音的情况下,CCE最大的特点就是,测试集上的accuracy像坐过山车一样,很快到达坡顶,然后飞流直下。而MAE在测试集上则是缓缓地爬坡,没有明显的下降趋势。

然而,MAE自然也有其缺点,其收敛十分艰难,从图中可以看出,它在训练集上的收敛速度很慢,甚至严重欠拟合。

相关文章

  • 噪音鲁棒的损失函数

    一、前提知识 定义0——噪音、对称噪音、非对称噪音: 噪音:在这里指的是标签错误的样本。例如在通过众包进行数据打标...

  • 损失函数与鲁棒性

    损失函数 机器学习模型关于单个样本的预测值与真实值的差称为损失。损失越小,模型越好,如果预测值与真实值相等,就是没...

  • 机器学习:常见的损失函数

    损失函数简要介绍 0-1损失 绝对值损失 log对数损失函数 平方损失函数 指数损失函数 Hinge损失函数 损失...

  • (4)损失函数

    损失函数用来表示输出与实际值的差距。常用的损失函数为0-1损失函数、平方损失函数、绝对损失函数、对数损失函数、交叉...

  • 机器学习线性回归实例

    生成直线数据并加入噪音画图显示 定义模型的输入和输出 定义模型的反向传播 定义损失函数 训练模型

  • 【深度学习】

    1, 两个重要的函数:得分函数和损失函数损失函数: hinge损失,softmax 损失。hinge损失: max...

  • 各机器学习模型的目标函数

    目标函数和损失函数的区别 损失函数:模型拟合的越好,损失应该越小; 目标函数:优化的目标,可以是“损失函数”或者“...

  • 损失函数概述

    常用的损失函数 1.L1损失(绝对损失函数) 和 L2 损失(平方损失函数) L1范数损失函数,也被称为 最小绝对...

  • 机器学习随笔

    1 模型的函数表达式,如逻辑回归函数 2 定义损失函数,最小二乘损失,0/1损失,交叉熵。 3 目标函数,损失函数...

  • 常见损失函数

    损失函数 什么是损失函数 ​ 损失函数(Loss Function)又叫做误差函数,用来衡量算法的运行情况,估...

网友评论

      本文标题:噪音鲁棒的损失函数

      本文链接:https://www.haomeiwen.com/subject/miqmaktx.html