【机器学习基础】损失函数

举报
Micker 发表于 2020/06/30 22:17:34 2020/06/30
【摘要】 损失函数  损失函数是机器学习里最基础也是最为关键的一个要素,通过对损失函数的定义、优化,就可以衍生到我们现在常用的机器学习等算法中。1.损失函数  损失函数(loss function)是用来估量拟模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,损失函数的作用是衡量模型预测的好坏。通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数...

损失函数

  损失函数是机器学习里最基础也是最为关键的一个要素,通过对损失函数的定义、优化,就可以衍生到我们现在常用的机器学习等算法中。

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

image.png

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


2.损失函数常见分类
  在机器学习中,损失函数是用来衡量预测结果与实际值之间差别大小的指标。一般的损失函数有五种:

  一. Gold Standard(标准式,0-1式)
  主要用于理想sample,这种一般很少有实践场景,这个方法的作用更多的是用来衡量其他损失函数的效果。表达式如下:

image.png

  二. Hinge
  主要用于maximum-margin的分类算法,如svm算法。Hinge损失函数的描述如下式:

image.png

  这里t=1 or −1,y是预测值,而t是实际真实值,可以看出,当分类正确时,y和t会有相同的符号且|y|大于等于1(|y|>1表示:相比于支持向量,该点距离分类边界更远),此时损失函数L(y)的值为0;分类错误时,y和t符号相反,L(y)将随y变大。


  三. Logarithmic Loss(对数损失)
  主要用于逻辑回归算法(Logistric Regression),在kaggle比赛里面衡量算法性能的指标往往是logloss。表达式如下:

image.png

  这里N是样本的数量,M是类别数量,yij和pij都是二值型标志位,表示第i个样本是否属于第j类,y表示真实值,p表示预测值。logloss越小说明算法越好。在实际编程应用中注意添加一个冗余项(1e−15)之类的,避免出现log0这样的情况。


  四. squared loss(平方损失)
  主要用于线性回归(Liner Regression),平方损失也可以理解为最小二乘法,基本原则很好理解,即最优拟合曲线应该是是点到回归曲线的距离和最小的直线,也就是平方和最小,表达式如下:

image.png

  这里N是样本的数量,y是真实值,f(x)是预测值。


  五. exp-loss(指数损失)
  主要用于Boosting算法,对于拥有N个样本的情况下,指数损失的函数表达式如下:

image.png

  y是真实值,f(x)是预测值。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。