Day4 Loss Function

关键词:Loss Function、正规化Regularization、 SVM Loss,Softmax Loss (交叉熵损失)

Loss Function 

The approach will have two major components: 

Score function that maps the raw data to class scores 

Loss function tells how good our current classifier is  评价当前的分类器是否理想

We will then cast this as an optimization problem in which we will minimize the loss function with respect to the parameters of the score function.


Multi-class Support Vector Machine loss 

SVM支持向量机,知乎上有详解,有兴趣可以去看下。这里只是以SVM的Loss Function为例

SVM Loss Function

s 是 score 的首字母,对应Score Function,模型给某一个样本的分数,事实上s不是一个数字,而是一组数字,因为每个类别都有一个分数。而 sj 就代表对第 j 个类别的分数,这个分数越高就代表样本 xi 越可能属于这个类别。yi 则代表了正确的类别编号。

Hinge Loss

图片中的Loss Function称为 “Hinge Loss”,对于样本 xi --> 得分 s,如果正确类别的得分 s_yi  比错误类别 s_j 的得分高出一定的安全距离(这里就是公式中的1),那么就认为在这个得分的小分量中,损失函数为0,而如果没有达到这个条件,还差多少损失就是多少。

安全距离是否一定要是1?

这个安全距离其实是无所谓的,可以定义为任意数值。因为我们事实上只关心样本有没有被正确的分类,而这些得分的绝对大小其实并没有太大意义,我们更关心的是他们之间的相对大小。也就是说,如果把权重W的数值整体放大为原来的两倍,那么得分s也会随之变为原来的两倍,但他们之间的相对大小关系是没有改变的,这个时候就相当于把安全距离从1变成了2。因此,不同的安全距离事实上只能产生一个放缩的作用,最后得出的分类器在本质上是一样的.

拓展 Squared hinge loss

You’ll sometimes hear about people instead using the squared hinge loss SVM (or L2-SVM), which uses the form max(0,−)^2 that penalizes violated margins more strongly (quadratically instead of linearly). The unsquared version is more standard, but in some data sets the squared hinge loss can work better. This can be determined during cross-validation.

Q2: what is the min/max possible loss?

hinge loss的取值范围:(0,正无穷大),当识别正确的类别的得分 >(错误类别的得分+1)时,取最小值0。

Q3: At initialization W is small so all s ≈ 0. What is the loss?

假设有n个类别,那么对于上述loss  function,将会有n-1个求max的算式求和。当s ≈ 0,这n-1个算式的结果都为 1,所以Loss = n -1 . 

在实际计算的时候,最开始我们会给权重w初始化为一组随机数字,在这个时候得出的所有分数大小都是相近的, 这种情况下根据损失函数的定义,损失函数应该接近 C - 1(C是类别的数量)。这是一个很好的debug技巧,如果最开始的损失函数数值与之相差太远的话,很可能存在bug。

Q: Suppose that we found a W such that L = 0. Is this W unique?

No! 2W is also has L = 0!  如果把权重W的数值整体放大为原来的两倍,那么得分s也会随之变为原来的两倍,但他们之间的相对大小关系是没有改变的。

L = 0 W is not unique


Example Code

对于Loss Function 正规化

避免过拟合

所以我们对Loss Function进行正规化

正规化

正则化损失:用来衡量模型的复杂程度的,强迫模型趋于更加简单,避免过拟合

解决什么问题?

针对 L = 0 ,希望得到一个独特的W(避免出现W,2W这种情况)。我们希望能像某些特定权重W添加一些偏好,对其他权重则不添加,以此来消除模糊性。如加上L2范式,对于W和2W,2W的惩罚会高于W,所以最终的结果会是W。

λ 是一个超参数,用来确定数据损失和正则化损失之间的相对权重。如果λ比较大,则说明我们更看重正则化损失,如果比较小,就说明更看重数据损失。λ 过大了会造成欠拟合问题,过小会造成过拟合问题。

R(W)就是关于正则化损失具体的定义了,常用的有L1正则化和L2正则化(推荐)等,见下图

正则化的具体定义

L1 权重矩阵 w 所有分量的绝对值之和,L2 权重矩阵 w 所有分量的平方和 (似乎和曼哈顿距离和欧式距离相似)

L1正则化对于所有的损失是线性的,也就是说,10个数据点,每个点误差1个单位,和是完全等价的。

L2正则化由于平方的原因,对那些偏差特别大的点具有很大的惩罚。(1个数据点,误差10单位)的惩罚远远大于 (10个数据点,每个点误差1个单位)。

正是由于这个原因,L2正则化倾向于把权重均匀分布在每一个分量上,而L1正则化则倾向于将更多的权重清零,只保留几个大权重,他们对于模型的“复杂度”的定义是不一样的。示例如下:

对于w1,如果是 L1 正则化 ,R(w1) = 1,如果是 L2 正则化 ,R(w1) = 1

对于w2, 如果是 L1 正则化 R(w1) = 1,如果是 L2 正则化 ,R(w2) = 0.25

为了让Loss Function最小,当 L1 正则化,w1 , w2 都可行;如果是 L2 正则化,那么 w2 更优。

正规化对比

Softmax classifier

如果大家对逻辑回归有基础的话,那么softmax分类器可以当成一个多分类的逻辑回归。

多分类问题

Softmax分类器对应的Loss Function称为 交叉熵损失/cross-entropy loss,就是下图最下方的公式

交叉熵损失公式

对于上图的解释:

首先把得分s变成一个概率分布,即所有分量都在0到1之间,并且所有分量的和为1。 然后根据得到的概率分布计算损失 Li。

从直观上理解,交叉熵损失是把我们转化而来的概率分布与最理想的概率分布进行对比,衡量了二者之间的差距。最理想的概率分布就是正确的类别概率为1,其他所有类别的概率都是0。

计算过程,示例如下:

1. (假设得分s是未标准化的对数概率)对每个得分数值计算其指数次幂

2. 然后对于得到的所有值再做一个归一化的操作 

3. 最后把正确分类的那个概率值带到LOSS计算公式,就完成啦

计算过程示例

Q1:What is the min/max possible loss L_i?

最小值为0,当cat的得分趋近于正无穷,概率为1,其他的概率为0时,计算结果为0

最大值为正无穷大,当cat的概率无限接近于0,Li将趋近于正无穷大。 

Q2: Usually at initialization W is small so all s ≈ 0. What is the loss?

在实际计算的时候,最开始我们会给权重w初始化为一组随机数字,在这个时候得出的所有分数大小都是相近的, 这种情况下根据损失函数的定义,损失函数应该接近 logC(C是类别的数量),也可以用来做debug。 (0,logC)之间的一个值


SVM vs Softmax 

公式对比
SVM vs softmax 计算过程

最明显的区别就是LOSS值的计算方式,SVM是计算的分值的一个差值情况,SOFTMAX看的则是分类的准确率。

示例:

区别

case1:对于 [10,-2,3]     SVM Loss = 0,Softmax Loss = 0.000399

             改为[9,-2,3]        SVM Loss = 0,Softmax Loss =  0.001082 (略有增大)

case2:对于 [10,9,9]     SVM Loss = 0,Softmax Loss = 0.239489

           改为[9,9,9]        SVM Loss = 2,Softmax Loss = log 3 = 0.477121

SVM - Hinge Loss

只要样本满足边界条件,(正确类别的得分 > 错误类别得分+ 1 margin)之后就不进行优化了,因为此时的损失函数不会再减小了。

Softmax - Cross-Entropy Loss

只要样本发生变化,损失函数就会发生变化(即使变化值很小)。根据定义,想要得到理想的概率分布,势必要让正确类别的得分趋近于正无穷,错误类别的得分趋近于负无穷,所以模型会不断的优化参数,试图去迫近这个最理想的概率分布。(任何一个测试样本都会影响分类器性能)


参考文章:

http://www.mamicode.com/info-detail-2088132.html

http://blog.csdn.net/tangyudi/article/details/52098520?locationNum=14

cs231n 网站上有很棒的英文版笔记,在课程网站上,所有以notes结尾的链接中,比如本章相关的notes

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