【转载】机器学习中的损失函数

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


1. 损失函数

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

θ∗=argminθ1N∑i=1NL(yi,f(xi;θ))+λ Φ(θ)

θ∗=arg⁡minθ1N∑i=1NL(yi,f(xi;θ))+λ Φ(θ)

其中,前面的均值函数表示的是经验风险函数,LL代表的是损失函数,后面的 ΦΦ 是正则化项(regularizer)或者叫惩罚项(penalty term),它可以是L1,也可以是L2,或者其他的正则函数。整个式子表示的意思是找到使目标函数最小时的θθ值。

2. 常用损失函数

常见的损失误差有五种:

1. 铰链损失(Hinge Loss):主要用于支持向量机(SVM) 中;

2. 互熵损失 (Cross Entropy Loss,Softmax Loss ):用于Logistic 回归与Softmax 分类中;

3. 平方损失(Square Loss):主要是最小二乘法(OLS)中;

4. 指数损失(Exponential Loss) :主要用于Adaboost 集成学习算法中;

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

2.1 Hinge loss

Hinge loss 的叫法来源于其损失函数的图形,为一个折线,通用的函数表达式为:

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

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

表示如果被正确分类,损失是0,否则损失就是 1−mi(w)1−mi(w) 。


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

argminw,ζ12||w||2+C∑iζist.∀yiwTxi≥1−ζiζi≥0

argminw,ζ12||w||2+C∑iζist.∀yiwTxi≥1−ζiζi≥0

将约束项进行变形,则为:

ζi≥1−yiwTxi

ζi≥1−yiwTxi

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

J(w)=12||w||2+C∑imax(0,1−yiwTxi)=12||w||2+C∑imax(0,1−mi(w))=12||w||2+C∑iLHinge(mi)

J(w)=12||w||2+C∑imax(0,1−yiwTxi)=12||w||2+C∑imax(0,1−mi(w))=12||w||2+C∑iLHinge(mi)

因此, SVM 的损失函数可以看作是 L2-norm 和 Hinge loss 之和。

2.2 Softmax Loss

有些人可能觉得逻辑回归的损失函数就是平方损失,其实并不是。平方损失函数可以通过线性回归在假设样本是高斯分布的条件下推导得到,而逻辑回归得到的并不是平方损失。在逻辑回归的推导中,它假设样本服从伯努利分布(0-1分布),然后求得满足该分布的似然函数,接着取对数求极值等等。而逻辑回归并没有求似然函数的极值,而是把极大化当做是一种思想,进而推导出它的经验风险函数为:最小化负的似然函数(即maxF(y,f(x))→min−F(y,f(x)))maxF(y,f(x))→min−F(y,f(x)))。从损失函数的视角来看,它就成了Softmax 损失函数了。

log损失函数的标准形式:

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

L(Y,P(Y|X))=−log⁡P(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 Squared Loss

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

平方损失(Square loss)的标准形式如下:

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

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

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

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

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

Y−f(X)​Y−f(X)​ 表示残差,整个式子表示的是残差平方和 ,我们的目标就是最小化这个目标函数值,即最小化残差的平方和。

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

MSE=1n∑i=1n(Yi~−Yi)2

MSE=1n∑i=1n(Yi~−Yi)2

2.4 Exponentially Loss

损失函数的标准形式是:

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)=fm−1(x)+αmGm(x)

fm(x)=fm−1(x)+αmGm(x)

Adaboost 每次迭代时的目的都是找到最小化下列式子的参数αα 和GG:

argminα,G=∑i=1Nexp[−yi(fm−1(xi)+αG(xi))]

arg⁡minα,G=∑i=1Nexp⁡[−yi(fm−1(xi)+αG(xi))]

易知,Adabooost 的目标式子就是指数损失,在给定nn个样本的情况下,Adaboost 的损失函数为:

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

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

关于Adaboost的详细推导介绍,可以参考Wikipedia:AdaBoost或者李航《统计学习方法》P145。

2.5 其他损失

0-1 损失函数

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

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

绝对值损失函数

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

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

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


3. Hinge loss 与 Softmax loss

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

SVM将输出 f(xi,W)f(xi,W) 作为每个分类的评分(没有规定的标准,难以直接解释);

与SVM 不同,Softmax 分类器可以理解为逻辑回归分类器面对多个分类的一般话归纳,其输出(归一化的分类概率)更加直观,且可以从概率上解释。

在Softmax分类器中, 函数映射f(xi,W)f(xi,W) 保持不变,但将这些评分值看做每个分类未归一化的对数概率,且将折叶损失替换为交叉熵损失(cross-entropy loss),公式如下:

Li=−log(efyi∑jefj)

Li=−log⁡(efyi∑jefj)

或等价的

Li=−fyi+log∑jfj

Li=−fyi+log⁡∑jfj

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

概率论解释:

P(yi|xi,W)=efyi∑jefj

P(yi|xi,W)=efyi∑jefj

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

实际操作注意事项——数值稳定: 编程实现softmax函数计算的时候,中间项efyiefyi 和 ∑jefj∑jefj 因为存在指数函数,所以数值可能非常大,除以大数值可能导致数值计算的不稳定,所以得学会归一化技巧.若在公式的分子和分母同时乘以一个常数CC ,并把它变换到求和之中,就能得到一个等价公式:

P(yi|xi,W)=CefyiC∑jefj=efyi+logC∑jefj+logC

P(yi|xi,W)=CefyiC∑jefj=efyi+log⁡C∑jefj+log⁡C

C的值可自由选择,不会影响计算结果,通过这个技巧可以提高计算中的数值稳定性.通常将C设为:

logC=−maxfj

log⁡C=−maxfj

该技巧就是将向量f中的数值进行平移,使得最大值为0。

准确地说,SVM分类器使用的是铰链损失(hinge loss),有时候又被称为最大边界损失(max-margin loss)。Softmax分类器使用的是交叉熵损失(corss-entropy loss)。Softmax分类器的命名是从softmax函数那里得来的,softmax函数将原始分类评分变成正的归一化数值,所有数值和为1,这样处理后交叉熵损失才能应用。

Example:图像识别


针对给出的图像,SVM分类器可能给你的是一个[−2.85,0.86,0.28][−2.85,0.86,0.28] 对应分类“猫”,“狗”,“船”,而softmax分类器可以计算出这三个标签的”可能性“是[0.,0160.631,0.353][0.,0160.631,0.353] ,这就让你能看出对于不同分类准确性的把握。

这里Hinge Loss计算公式为:

Li=∑j≠yimax(0,f(xi,W)j−f(xi,W))yi+Δ

Li=∑j≠yimax(0,f(xi,W)j−f(xi,W))yi+Δ

这里 ΔΔ 是一个阈值,表示即使误分类,但是没有达到阈值,也不存在损失 。上面的公式把错误类别 (j≠yi)(j≠yi) 都遍历一遍,求值加和。

设 xixi 的正确类别是”船”,阈值 Δ=1Δ=1 ,则对应的Hinge loss 为:

Li=max(0,−2.85−0.28+1)+max(0,0.86−0.28+1)=1.58

Li=max(0,−2.85−0.28+1)+max(0,0.86−0.28+1)=1.58

下图是对ΔΔ 的理解,蓝色表示正确的类别,ΔΔ 表示一个安全范围,就算是有其他的得分,只要没有到达红色的ΔΔ 范围内,,对损失函数都没有影响。这就保证了SVM 算法的解的稀疏性。


而Softmax 损失则是对向量 fyifyi 指数正规化得到概率,再求对数即可。

Li=−log(efyi∑jefj)=−log(0.353)≈1.04

Li=−log⁡(efyi∑jefj)=−log⁡(0.353)≈1.04

4.总结

机器学习作为一种优化方法,学习目标就是找到优化的目标函数——损失函数和正则项的组合;有了目标函数的“正确的打开方式”,才能通过合适的机器学习算法求解优化。

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

---------------------

作者:Vinicier

来源:CSDN

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

版权声明:本文为博主原创文章,转载请附上博文链接!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,265评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,078评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,852评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,408评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,445评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,772评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,921评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,688评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,130评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,467评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,617评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,276评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,882评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,740评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,967评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,315评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,486评论 2 348

推荐阅读更多精彩内容

  • 1 基本概念 损失函数(loss function):计算的是一个样本的误差。它是用来估量你模型的预测值 f(x)...
    高永峰_GYF阅读 9,049评论 0 7
  • 隔壁又传来那一小情侣的吵架声,他们搬来一个月,吵了一个月。时而吵闹,歇斯底里;时而甜蜜,羡煞旁人。听房东说租房的是...
    三月的木棉花阅读 442评论 0 1
  • 今天是清明节放假第一天,“清明时节雨纷纷,路上行人欲断魂”。因为我去拿货,所以早上4点钟冒着小雨就出发了!孩子昨...
    旁观者1009阅读 269评论 0 1
  • 今天玩王者荣耀,遇到一个自以为是高玩的人。一开始,他说:都跟着我打,保护我。但是我们都去清理兵线了。于是他雄赳赳气...
    秘密花园_f65d阅读 145评论 0 0