什么是代理损失函数?

机器算法验证 优化 损失函数
2022-02-10 21:24:48

谁能澄清一下代理损失函数是什么?我很熟悉损失函数是什么,并且我们想要产生一个可微的凸函数,但我不明白如何令人满意地使用代理损失函数并真正相信它的结果背后的理论。

2个回答

在学习的上下文中,假设您对数据集有分类问题,其中是您的特征,是您的真实标签。{(X1,Y1),,(Xn,Yn)}XnYn

给定一个假设函数,损失函数采用假设函数的预测(即)以及该特定函数的真实标签输入并返回一个惩罚。现在,一个总体目标是找到一个假设,使其最小化经验风险(即,最小化出错的机会):h(x)l:(h(Xn),Yn)Rh(Xn)

Rl(h)=Eempirical[l(h(X),Y)]=1miml(h(Xi),Yi)

在二元分类的情况下,常用的损失函数是 -损失函数:01

l(h(X),Y)={0Y=h(X)1otherwise

一般来说,我们关心的损失函数不能被有效地优化。例如, -损失函数是不连续的。因此,我们考虑另一个让我们的生活更轻松的损失函数,我们称之为代理损失函数01

替代损失函数的一个示例可以是(SVM 中所谓的铰链损失),它是凸的并且易于使用常规优化方法。这个函数作为我们一开始想要最小化的实际损失的代理。显然,它有其缺点,但在某些情况下,代理损失函数实际上会导致能够学习更多。我的意思是,一旦你的分类器达到最佳风险(即最高精度),你仍然可以看到损失减少,这意味着它正在尝试将不同的类推得更远,以提高其鲁棒性。ψ(h(x))=max(1h(x),0)

一般而言,此功能用于惩罚错误分类。最后,您的目标是将数据分类到正确的类别中并评估您的结果。要训​​练模型,您需要开发损失函数和最常见的均方误差。但在 MSE 中,准确度可能无法反映分类器的真实准确度。因此,我们想要一个损失函数(如 0-1 损失函数),如果类别错误,则错误为 1,如果预测正确,则错误为 0。这在 svm 中使用并称为铰链损失。但从广义上讲,如果您查看公式

∑max(0,1−y(i)(w⊺ x(i)+b))

它基本上应用相同。您可能想阅读更多关于 L1 和 L2 正则化如何出现在图片中的信息,但直观地说,这就是我所理解的。