感谢原文作者!原文地址:http://eletva.com/tower/?p=186

一、Loss Function

什么是Loss Function?wiki上有一句解释我觉得很到位,引用一下:The loss function quantifies the amount by which the prediction deviates from the actual values。Loss Function中文损失函数,适用于用于统计,经济,机器学习等领域,虽外表形式不一,但其本质作用应是唯一的,即用于衡量最优的策略。本章只从机器学习(ML)领域来对其进行阐述,机器学习其实是个不停的模拟现实的过程,比如无人驾驶车,语音识别,流感预测,天气预报,经济周期行为等众多领域,是互联网发展过程中“科学家”(暂且这么称呼吧)对于人类文明进步的另一个贡献,其本质就是要建立一个数学模型用于模拟现实,越接近真实越好,那么转化为数学语言即LF越小越好,因为LF值代表着现实与学习预测的差距,这个不停的缩小LF值的过程就称为优化,如果理解这些的话,就不难理解优化问题对于ML来说的重要性了,如水之于鱼,魂之于人!

二、几种Loss Function概述

如上一节所述,LF的概念来源于机器学习,同时我们也知道机器学习的应用范围相当广泛,几乎可以涵盖整个社会领域,那么自然不同的领域多少会有不同的做法,这里介绍在一般的机器学习算法中常见的几种,具有概括性。

2.1 一般形式

LF分为两部分:L+R,L表示loss term,其中,y(i)∈{−1,1},w表示学习出来的权重,该公式的作用很明显了,用来收集现实与学习结果的差距,是LF的核心部分,LF的不同大部分也是指的loss term的不同;R表示范式,范式存在的意思是进行约束,以防止优化过偏。

2.2 一般的loss term有5种,分别用于5种常见的机器学习算法

Gold Standard(标准式)于理想sample,这种一般很少有实践场景,这个方法的作用更多的是用来衡量其他LF的效用;Hinge于soft-margin svm算法;log于LR算法(Logistric Regression);squared loss于线性回归(Liner Regression)和Boosting。

1)Gold Standard loss,一般我们称这个LF为L01,从公式中可以看出该公式的主要职责是在统计多少个错误的case,很明显现实数据不允许如此简单的统计方式

从公式我们可以很清楚的看出,当m<0的时候L=1,m<0说明预测失败,那么Loss则加1,这样将错误累加上去,就是Gold Standard loss的核心思想。

2)hinge loss,常用于“maximum-margin”的算法,公式如下

这个公式也很好理解,其中mi(w)在前面介绍过,表示样本i在模型下的预测值和样本i的类标记{-1,1}的乘积,这个乘积可以用来检验预测与真实结果是否一致来表示分类是否正确,当乘积大于0时表示分类正确,反之亦然。

3) log loss(一般又称为基于最大似然的负log loss)

likelihood=

其中 是log函数

最大似然思想指的是使得某种情况发生的概率最大的思想,根据LR的思想(参考这篇文章logistic回归深入篇(1)),我们知道g(w)对应的simod图,其将实域上的值映射到区间{0,1},因此我们可以把g(w)看作事件A发生的概率,那么1-g(w)可以看作事件A不发生的概率,那么公式likelihood表达的含义就很明显了,y也是一个概率值,可以看做是对事件A与A逆的分量配额,当然我们的期望是A发生的可能越大越好,A逆发生的可能越小越好!因此likelihood是一个max的过程,而loss是一个min的过程,因此log loss是负的likelihood。

4)square loss

这个loss很好理解,就是平方差,loss 一般也成为最小二乘法

5)boosting loss

这个loss主要是基于指数函数的loss function。

三、几种Loss Function的效果对比

上图是多LF的效果对比图,其中蓝色的是Gold loss,可以看作水平基线,其他的loss的效果可以基于与它的比较结果,首先,红色的是Hinge loss,黄色的是log loss,绿色的是boosting loss,黑色的是square loss,从上图可以看出以下结论: Hinge,log对于噪音函数不敏感,因为当m<0时,他们的反应不大,而黑线与绿线可能更爱憎分明,尤其是黑线,因此,在很多线性分类问题中,square loss也是很常见的LF之一。

【转】Loss Function View的更多相关文章

  1. [machine learning] Loss Function view

    [machine learning] Loss Function view 有关Loss Function(LF),只想说,终于写了 一.Loss Function 什么是Loss Function? ...

  2. 损失函数(loss function)

    通常而言,损失函数由损失项(loss term)和正则项(regularization term)组成.发现一份不错的介绍资料: http://www.ics.uci.edu/~dramanan/te ...

  3. loss function

    什么是loss?   loss: loss是我们用来对模型满意程度的指标.loss设计的原则是:模型越好loss越低,模型越差loss越高,但也有过拟合的情况.   loss function: 在分 ...

  4. Derivative of the softmax loss function

    Back-propagation in a nerual network with a Softmax classifier, which uses the Softmax function: \[\ ...

  5. loss function与cost function

    实际上,代价函数(cost function)和损失函数(loss function 亦称为 error function)是同义的.它们都是事先定义一个假设函数(hypothesis),通过训练集由 ...

  6. 损失函数(Loss Function) -1

    http://www.ics.uci.edu/~dramanan/teaching/ics273a_winter08/lectures/lecture14.pdf Loss Function 损失函数 ...

  7. 【caffe】loss function、cost function和error

    @tags: caffe 机器学习 在机器学习(暂时限定有监督学习)中,常见的算法大都可以划分为两个部分来理解它 一个是它的Hypothesis function,也就是你用一个函数f,来拟合任意一个 ...

  8. 惩罚因子(penalty term)与损失函数(loss function)

    penalty term 和 loss function 看起来很相似,但其实二者完全不同. 惩罚因子: penalty term的作用是把受限优化问题转化为非受限优化问题. 比如我们要优化: min ...

  9. 论文笔记之: Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function

    Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function CVPR 2 ...

随机推荐

  1. mongo设计(一)

    原文:http://blog.mongodb.org/post/87200945828/6-rules-of-thumb-for-mongodb-schema-design-part-1 By Wil ...

  2. 列表checkbox全选

    $(document).ready(function(){ $(":checkbox:eq(0)").change(function(){ if ($(this).is(" ...

  3. 提升进程权限为DEBUG权限

    在网上也看到了一些提升进程令牌的函数但都不怎么好用,最后我还是从一个黑客后门程序的源代码中提取出了一个好的提升进程令牌的函数,不敢独享,跟大家分享下.那个后门真的写的很好... Hysia提示你: 这 ...

  4. 在chart上加入一条指示线

    原文 http://hi.baidu.com/fuwei_bj/item/7e576410e970683db831801a <mx:AreaChart width="521" ...

  5. Git与SVN的比较及优点

    前天处女面被问到了你为什么要用Git而不用SVN,答的不是很理想,正好今天晚上小组内部进行了Git使用的培训,便想着总结一下Git与SVN的差异以及Git的优点. 一.Git与SVN的比较 1.git ...

  6. 如何将你牛逼的iOS代码分享到CocoaPod(转)

    为了让读者一目了然,现在就从新建工程到最后提交podspec,简单粗暴的讲一通.Cocoapods不用解释太多,一句话...它是目前iOS开发中最广为使用的第三方库依赖管理工具. 下面开始讲创建pod ...

  7. [Android]Plug-in com.android.ide.eclipse.adt was unable to load class com.android.ide

    今天启动eclipse的时候报了上述错误,打开xml是都报错.其实解决方法很简单:重启eclipse即可.

  8. win32 控件的创建和消息响应

    1. 控件的创建 控件的创建和窗口创建是一样的,例如: ,,,, hWnd,(HMENU)IDB_BUTTON01,hInst,NULL); 是一个按钮的创建,其中hWnd是窗口句柄,hInst是应用 ...

  9. jqeruy的append一个有趣的用法(挪移控件位置)

    使用:$(放置的容器).append($(需要迁移的控件)) 需求:列表中点击编辑可以在无刷修改 以前的方法是在列表中的每条数据直接放置控件.但是这个地区选择控件是服务器自定义控件不可以放置在列表的循 ...

  10. Assets理解随笔

    在PlayFramework中应用 在Play框架中提供的都是动态文件响应,前端工作内容大部分是静态文件.Assets大概起的就是这个作用. 默认路径看 conf/routes 里: # Map st ...