【学习笔记】ML的核心-Loss Functions!

我写这篇很大的原因是因为感觉对各种Loss Functions掌握的不够。经我各种翻阅和调查99%的博客都只告诉你这些个Loss Function是什么,在什么模型下用,他们却不告诉你为什么,怎么来的。(我不会告诉你我是因为被阿里的面试官问了一堆Loss Function问成了个扑街仔才写这篇文章的orz)

希望对大家有所帮助!

0. 本篇大纲

  1. Loss Function的定义

  2. Regression与Classification对Loss Function的选择

  3. Regression中各种Loss Function的选择

  4. Classification中各种Loss Function的选择

  5. Credit

1. Loss Function定义

What it is?
  • Loss Function(损失函数)是用来计算模型h(x)的预测值和(训练集中的)真实值y的不一致程度。
Why important?
  • 在机器学习的各种模型中Loss Function是一个有非凡意义的概念!通过训练使Loss Function的逐渐减小,模型h(x)和(训练集中)真实值y就越接近,模型的bias就越小,我们就能够得到一个和训练集拟合程度越高的模型。(当然拟合过头overfit了,容易扑街= 。=)

2. Regression与Classification对Loss Function的选择

Main Reasons(万变不离其宗的理由): Loss Function(损失函数)是用来计算模型h(x)的预测值和(训练集中的)真实值y的不一致程度。(重要的事情重复三遍X1)

1. Regression:

How to choose Loss for Regression?
1.png

Loss Function(损失函数)是用来计算模型h(x)的预测值和(训练集中的)真实值y的不一致程度。(重要的事情重复三遍X2)

所以对于Regression来说,Loss Function是指每个真实值与其线性模型h(x)不一致程度之合。h(x)与真实值越接近,cost越小,h(x)与真实值越远,cost越大。因此我们需要的cost function需要仅在=真实值的时候为0,越远离真实值越大(不论cost function是直的(MAE)还是弯的(MSE))。

通过使用这样的Cost function和Loss Function,我们就可以很好的找出最能够最好拟合一条符合真实值分布的线。

2.png

2. Classification:

How to choose Loss for Classification?
3.png
3.1.png

Loss Function(损失函数)是用来计算模型h(x)的预测值和(训练集中的)真实值y的不一致程度。**(重要的事情重复三遍X3)

所以对于Classification而言,Loss Function是指每一个真实分类y与其模型对其分类h(x)的不一致程度之和。h(x)分对了类,cost小,h(x)分错了类,cost大。因为我们需要cost function需要在分对类尽可能接近0或者直接等于0(当y=1的时候, h(x)>1的部分,当y=0的时候,h(x)<0的部分),分的不对的时候尽可能大(不论cost function是弯的(Log Loss)还是直的(Hinge Loss))。

通过使用这样的Cost function和Loss Function,我们就可以很好的找出最能够最好拟合一条符合真实值分布的线。

4.png

3. Regression VS Classification

Why MAE or MSE can not be used in Classification?
5.png

(credit:What are the main reasons not to use MSE as a cost function for Logistic Regression?

从上面这张图(y=1时各种cost function,x轴为z=θx)中我们很显然可以看出,MSE这个cost function仅在=真实值的时候为0,也就是仅仅在h(x)=1的时候cost=0。当h(x)>1的时候,cost增加了,然而在classification的定义中,h(x)>1的时候仍然是分为1这个类中的。cost根本不需要增加,也不能增加!由此说明MAE和MSE这种Loss Function是不适用于Classification的问题的。

What if I used MSE in Classification?
6.png

(credit: 吴恩达 机器学习课程的某页PPT)

正如上图,如果在Classification中使用MAE,它的Loss Function是非凹(convex)的,但在Classification中使用Log Regression,它的Loss Function是convex的。(具体证明可以用Loss Function的二阶导恒大于等于0证明,大家可以上网搜一下)

What if I used Hinge Loss in Regression?
7.png

当我们对Regression使用Hinge Loss:

如果全局仅仅只用y=1的这半边Hinge Loss,那么这个模型对<1的点是0容忍,>1的点是全部容忍,那么最终当Loss Function=0时,就会导致所有的点都在同一边。

如果用了y=1和y=0两边的Hinge Loss,那么对分类对且距离大于1的点是容忍的,对其他的不容忍,这就会导致迭代到最后所有点离那条线就会太远,这条线就不能很好的拟合所有的点,不是一个很好的Regression的线,而是变成一条分类的线了。

8.png

3.Loss Function in Regression

(未完待续)

4. Loss Function in Classification

Classification中经典的Loss Functions大致有5种:

  1. Log Loss(Logist Regressionn)

  2. Focal Loss

  3. KL Divergence/Relative Entropy

  4. Exponential Loss(AdaBoost)

  5. Hinge Loss(SVM)

本文主要讲Log Loss, Hinge Loss, Exponential Loss这3种Loss Function。

1. Log Loss

Log Loss要从Logistic Regression的基本的intuition讲起。当有一个二分类的问题时,它的思想大致上是把一个线性回归的结果映射到(0,1)这个区间范围。当这个线性回归的结果映射在(0.5,1)分为一类,映射在(0,0.5)的时候分为另一类。

41.png

同图上,我们对h(x)可以这样认为:h(x)代表的意义是在0和x给定的这个条件下,y取得1的概率,当h(x)>0.5时,分类为1,h(x)<0.5,分类为0。

由此我们可以通过条件概率的特有的属性,通过求Maximum Likelihood Estimation来求得可以使得所见到的训练数据出现概率最大。然后log化,通过log函数特有的性质,使连乘变成连加。

42.png
43.png

这就是Log Loss来的思想,总结一下几个点:

1.基本intuition:将线性回归映射到(0,1)区间

2.g/h(x)代表概率,>0.5分到y=1的类,<0.5分到y=0的类

3.通过条件概率特有属性,通过MLE来求得训练数据出现概率最大

4.log化,连乘变连加,得出loss function,也得出每一个点的cost function

2. Hinge Loss

我在做国内的面试的时候经常被面试官考到让我对Logistic Regression和SVM做比较。讲道理来说,Logistic Regression和SVM的分类核心思想是完全不一样的,这就导致了它们的Loss Function的不同。

SVM的核心思想是在几何空间内做一个划分(h(x)),这个h(x)能使其两边的点尽可能有很大的区分度。所以Hinge Loss的每个点的cost function在分对且离线大于一定范围(一般为1)的时候为0,其他时候为cost=z+1(y=1时)或者cost=-z+1(y=-1时)。

44.png

而它的loss function就是将这些cost function连加起来。

45.png

(SVM的Loss Function不完全是Hinge Loss,之后我会写LR和SVM的比较中会写到。)

总结一下:

1.基本intuition:每个点都要离分类器这条线尽可能远。

2.每个点cost function在分对类且离分类器为1时,cost function等于0,其他时候为yz+1。

3.连加起来得到总体的Loss Function。

3. Exponential Loss

exponential loss一般是用于Adaboost的情况的。(Adaboost我没有很深入的了解,如果以后对其了解加深,可能会多写一些!)

46.png

它的loss function是一堆cost function相加,每个cost function都是e的-zi次方。zi是分类器预测值加权和乘上分类器的标签。

总结一下:

1.每个点cost function是e的-zi次方,zi为分类器预测值加权和乘上分类器的标签。

2.连加起来得到的总和为Loss Function。

5. Credit

【深度学习】一文读懂机器学习常用损失函数(Loss Function)

What are the main reasons not to use MSE as a cost function for Logistic Regression?

损失函数(Loss Function) -1

Loss Functions for Regression and Classification

Introduction to Boosting

5 Regression Loss Functions All Machine Learners Should Know

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

推荐阅读更多精彩内容