欢迎来真孝善网,为您提供真孝善正能量书籍故事!

【转载】深度学习关键要素:损失函数解析

时间:10-27 现代故事 提交错误

1. 损失函数

损失函数(Loss function)用于估计你的模型的预测值f(x)f(x)与真实值YY之间的不一致程度。它是一个非负实值函数,通常用L(Y,f(x) )L(Y,f(x))来表示。损失函数越小,模型的鲁棒性越好。损失函数是经验风险函数的核心部分,也是结构风险函数的重要组成部分。模型的风险结构包括风险项和正则项,通常如下:

*=argmin1Ni=1NL(yi,f(xi;))+()

*=argmin1Ni=1NL(yi,f(xi;))+()

其中,前面的均值函数代表经验风险函数,LL代表损失函数,后面的是正则项或惩罚项,可以是L1、L2或其他正则函数。整个表达式的意思是找到使目标函数最小化的 的值。

2.常用损失函数

有五种常见的丢失错误:

1. Hinge Loss:主要应用于支持向量机(SVM);

2. Cross Entropy Loss、Softmax Loss:用于逻辑回归和softmax分类;

3. Square Loss:主要是最小二乘法(OLS);

4. Exponential Loss:主要用在Adaboost集成学习算法中;

5.其他损失(如0-1损失、绝对值损失)

2.1 铰链损失

铰链损失这个名字来自于它的损失函数图,它是一条折线。一般函数表达式为:

L(mi)=max(0,1mi(w))

L(mi)=max(0,1mi(w))

表示如果分类正确,loss为0,否则loss为1mi(w)1mi(w) 。

在机器学习中,Hing可以用来解决间距最大化的问题。最有代表性的就是SVM问题。原始SVM优化函数如下:

argminw,z12||w||2+Cizist.yiwTxi1zizi0

argminw,z12||w||2+Cizist.yiwTxi1zizi0

如果约束发生变形,则为:

i1yiwTxi

i1yiwTxi

那么损失函数可以进一步写为:

J(w)=12||w||2+Cimax(0,1yiwTxi)=12||w||2+Cimax(0,1mi(w))=12||w ||2+CiL铰链(mi)

J(w)=12||w||2+Cimax(0,1yiwTxi)=12||w||2+Cimax(0,1mi(w))=12||w ||2+CiL铰链(mi)

因此,SVM的损失函数可以看作L2范数和Hinge损失之和。

2.2 Softmax损失

可能有人认为逻辑回归的损失函数是平方损失,其实不然。假设样本是高斯分布的,可以通过线性回归推导出平方损失函数,而逻辑回归并不能得到平方损失。在逻辑回归的推导中,假设样本服从伯努利分布(0-1分布),然后得到满足这个分布的似然函数,然后取对数求极值,如此在。逻辑回归并不寻求似然函数的极值,而是以最大化为思想,然后推导出其经验风险函数为:最小化负似然函数(即maxF(y,f(x))minF( y,f(x)))maxF(y,f(x))minF(y,f(x)))。从损失函数的角度来看,就变成了Softmax损失函数。

对数损失函数的标准形式:

L(Y,P(Y|X))=logP(Y|X)

L(Y,P(Y|X))=logP(Y|X)

刚才提到,取对数是为了方便最大似然估计的计算。因为在MLE中,直接求导是很困难的,所以通常先取对数,然后再求极值点。损失函数L(Y,P(Y|X))L(Y,P(Y|X))表示样本XX在分类Y的情况下,使得概率P(Y|X)P(Y| X) 达到最大值(也就是说,用已知的样本分布来寻找最有可能(即最大概率)引起这个分布的参数值;或者说,什么样的参数可以给我们观察当前数据集的最高概率)。由于log函数是单调递增的,logP(Y|X)logP(Y|X)也会达到最大值。因此,在前面加一个负号后,最大化P(Y|X)P(Y|X) 就相当于最小化LL。

逻辑回归的P(Y=y|x)P(Y=y|x)的表达式如下(为了将类别标签y统一为11和00):

h(x)=11+exp(f(x))

h(x)=11+exp(f(x))

2.3 平方损失

最小二乘法是线性回归的一种,OLS将问题转化为凸优化问题。在线性回归中,假设样本和噪声都服从高斯分布(中心极限定理),最后可以通过最大似然估计(MLE)推导出最小二乘公式。最小二乘法的基本原理是:最优拟合直线应该是使各点到回归线的距离之和最小,即平方和最小的直线。

平方损失的标准形式如下:

L(Y,f(X))=(Yf(X))2

L(Y,f(X))=(Yf(X))2

当样本数为nn时,此时的损失函数为:

L(Y,f(X))=i=1n(Yf(X))2

L(Y,f(X))=i=1n(Yf(X))2

Yf(X)Yf(X)表示残差,整个公式表示残差的平方和。我们的目标是最小化这个目标函数的值,即最小化残差的平方和。

在实际应用中,我们使用均方误差(MSE)作为衡量标准,其公式如下:

MSE=1ni=1n(Yi~Yi)2

MSE=1ni=1n(Yi~Yi)2

2.4 指数损失

损失函数的标准形式为:

L(Y,f(X))=exp[Yf(X)]

L(Y,f(X))=exp[Yf(X)]

exp-loss主要用在Boosting算法中。在Adaboost算法中,经过mm次迭代,可以得到fm(x)fm(x):

fm(x)=fm1(x)+mGm(x)

fm(x)=fm1(x)+mGm(x)

Adaboost每次迭代的目的是找到最小化以下公式的参数和GG:

argmin,G=i=1Nexp[yi(fm1(xi)+G(xi))]

argmin,G=i=1Nexp[yi(fm1(xi)+G(xi))]

容易知道Adaboost的目标公式是指数损失。给定nn 个样本,Adaboost 的损失函数为:

L(Y,f(X))=12i=1nexp[yif(xI)]

L(Y,f(X))=12i=1nexp[yif(xI)]

Adaboost的详细推导介绍请参考维基百科:AdaBoost或李航《统计学习方法》 P145。

2.5 其他损失

0-1损失函数

L(Y,f(X))={01ifYf(X)ifY=f(X)

L(Y,f(X))={0ifYf(X)1ifY=f(X)

绝对值损失函数

L(Y,f(X))=|Yf(X)|L(Y,f(X))=|Yf(X)|

L(Y,f(X))=|Yf(X)|L(Y,f(X))=|Yf(X)|

对比上述损失函数的可视化图像如下:

3. Hinge损失和Softmax损失

SVM 和Softmax 分类器是两种最常用的分类器。

SVM会输出f(xi,W)f(xi,W)作为每个分类的得分(没有指定标准,很难直接解释);

与SVM不同的是,Softmax分类器可以理解为逻辑回归分类器面对多重分类的普通话归纳。它的输出(归一化分类概率)更加直观,可以用概率来解释。

在Softmax分类器中,函数映射f(xi,W)f(xi,W)保持不变,但这些分数被视为每个类的非归一化对数概率,并且铰链损失被替换为交叉熵损失(cross-熵损失),公式如下:

Li=log(efyijefj)

Li=log(efyijefj)

或同等水平

Li=fyi+logjfj

Li=fyi+logjfj

fjfj 表示分类得分向量ff 中的第ii 个元素。和SVM一样,整个数据集的损失值是数据集中所有样本数据的损失值Li的均值和正则化损失之和。

概率论讲解:

P(yi|xi,W)=efyijefj

P(yi|xi,W)=efyijefj

解释为给定数据xixi、WW 参数的情况下分配给正确分类标签yiyi 的归一化概率。

实际操作笔记—— 数值稳定性: 在编程实现softmax函数计算时,由于指数函数的存在,中间项efyiefyi和jefjjefj可能会有非常大的值。除以大值可能会导致数值计算不稳定,因此必须学习归一化技术。如果将公式的分子和分母乘以常数CC并变换为求和,则可以得到等效公式:

P(yi|xi,W)=CefyiCjefj=efyi+logCjefj+logC

P(yi|xi,W)=CefyiCjefj=efyi+logCjefj+logC

C的值可以自由选择,不会影响计算结果。该技术可以提高计算中的数值稳定性。通常C设置为:

logC=maxfj

logC=maxfj

技巧是平移向量f 中的值,使最大值为0。

准确地说,SVM 分类器使用铰链损失,有时称为最大边缘损失。 Softmax分类器使用交叉熵损失(corss-entropy loss)。 Softmax分类器以softmax函数命名,它将原始分类分数变成正的归一化值。所有值总和为1,以便可以应用后处理交叉熵损失。

示例:图像识别

对于给定的图像,SVM分类器可能会给你一个[2.85,0.86,0.28][2.85,0.86,0.28]对应于分类“猫”,“狗”,“船”,而softmax分类器可以计算出这三个标签的“可能性”是[0.0160.631,0.353][0.0160.631,0.353],这可以让你看到不同分类的准确性。

这里铰链损失的计算公式为:

Li=jyimax(0,f(xi,W)jf(xi,W))yi+

Li=jyimax(0,f(xi,W)jf(xi,W))yi+

这里是一个阈值,意思是即使分类错分但没有达到阈值,也没有损失。上式遍历所有错误类别(jyi)(jyi)并计算总和。

假设xixi的正确类别是“船”,阈值=1=1,则对应的Hinge损失为:

Li=max(0,2.850.28+1)+max(0,0.860.28+1)=1.58

Li=max(0,2.850.28+1)+max(0,0.860.28+1)=1.58

下图是对的理解。蓝色代表正确的类别,代表安全范围。即使有其他分数,只要没有达到红色范围,就不会对损失函数产生影响。这保证了SVM算法解的稀疏性。

Softmax损失是对向量fyifyi索引进行归一化得到概率,然后求对数。

Li=log(efyijefj)=log(0.353)1.04

Li=log(efyijefj)=log(0.353)1.04

4. 总结

作为一种优化方法,机器学习的学习目标是找到优化后的目标函数——损失函数与正则项的组合;只有目标函数的“正确开法”,才能通过合适的机器学习算法来解决优化问题。

不同的机器学习方法的损失函数是不同的。合理理解各种损失优化函数的特点更有利于我们对相关算法的理解。

添加一名作者

来源:CSDN

原文:https://blog.csdn.net/u010976453/article/details/78488279

用户评论

孤者何惧

一直想了解一下机器学习里的损失函数到底怎么运作啊!

    有5位网友表示赞同!

隔壁阿不都

看了这个标题感觉能学到不少的东西,准备好好看看这篇文章分享的知识。

    有18位网友表示赞同!

断秋风

机器学习的算法那么多,果然每个都有自己独特的玩法,损失函数也是其中不可或缺的一部分。

    有5位网友表示赞同!

不相忘

原来机器学习还会用到数学的概念啊,现在越来越觉得这个世界真是奇妙了!

    有17位网友表示赞同!

苏莫晨

看标题感觉很专业,但总希望能够解释清楚,让普通人也能理解。

    有12位网友表示赞同!

泪湿青衫

损失函数是什么?之前一直没搞明白这个问题,终于有机会了!

    有18位网友表示赞同!

娇眉恨

机器学习的应用越来越广了,了解这些基础知识也很重要啊。

    有15位网友表示赞同!

浅巷°

学习人工智能真是需要不断地学习新的概念和知识!

    有12位网友表示赞同!

tina

这篇文章能够简单易懂地讲解损失函数吗?期待能找到答案。

    有18位网友表示赞同!

神经兮兮°

机器学习的研究确实很前沿,希望这篇文章能给我带来一些启发。

    有11位网友表示赞同!

我绝版了i

听上去很有意思,我也想了解一下损失函数是如何在机器学习中起作用的。

    有19位网友表示赞同!

▼遗忘那段似水年华

标题很有深度,感觉作者对机器学习领域有深入研究。

    有7位网友表示赞同!

孤廖

机器学习的目标是准确预测结果,那么损失函数的作用是什么呢?

    有20位网友表示赞同!

↘▂_倥絔

看了这个标题就想到可以用机器学习来解决实际问题,真是太棒了!

    有15位网友表示赞同!

歆久

这篇文章能讲清楚不同类型的损失函数吗?非常期待看到详细的解释。

    有11位网友表示赞同!

炙年

感觉这个主题很有挑战性,希望作者能够用轻松通俗的方式讲解。

    有17位网友表示赞同!

为爱放弃

机器学习一直在发展,想知道最新的研究成果是什么?

    有17位网友表示赞同!

♂你那刺眼的温柔

人工智能越来越智能化,背后的技术原理也需要我们不断探索和理解。

    有11位网友表示赞同!

窒息

期待能从这篇文章中学到知识,提升对机器学习的理解!

    有19位网友表示赞同!

【【转载】深度学习关键要素:损失函数解析】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活