深度学习笔记(九)—— 损失函数[Loss Functions]

  这是深度学习笔记第九篇,完整的笔记目录可以点击这里查看。
  
  Data loss在有监督学习问题中,度量预测值(例如分类问题中类的分数)和真值之间的兼容性。Data loss是每个样本的数据损失的平均值。也就是说,L=(1/N)∑iLi,其中N是训练数据的个数。在实践中,可能需要解决的几种问题类型:

1 Classification

1.1 SVM

  分类问题中最常见的两种loss函数是支持向量机(Support Vector Machine, SVM)(比如Weston Watkins公式):
在这里插入图片描述
  有些人认为平方损失函数更好:
在这里插入图片描述

1.2 cross-entropy loss

  第二种常见的选择是使用交叉熵损失(cross-entropy loss)的Softmax分类器:
在这里插入图片描述
  当标签集非常大时,计算全部Softmax概率变得非常昂贵。对于某些应用程序,近似的版本很流行。例如,在自然语言处理任务中使用分层Softmax可能会有所帮助(参阅这里)。分层Softmax将单词分解为树(tree)中的标签。然后将每个标签表示为树上的一条路径,并在树的每个节点上训练一个Softmax分类器来消除左右分支之间的歧义。树的结构对性能有很大的影响,这通常取决于具体的问题。

1.3 Attribute classification

  以上两种损失都假设有一个正确的答案。但是,如果yi是一个二进制向量,其中每个样本都可能有或可能没有特定的属性,并且这些属性不是独占的,该怎么办?例如,Instagram上的图像可以被认为是用一大组所有标签中的某个标签子集来标记的,并且一个图像可能包含多个标签。在这种情况下,一个好的方法是为每个单独的属性建立一个二进制分类器。例如,每个类别的二进制分类器将采用以下形式:
在这里插入图片描述
  其中,yij是+1或-1,这取决于第 i 个示例是否标记有第 j 个属性。并且,当类被预测为存在时,得分向量fj将是正的,否则为负。需要注意的是,如果正样本的得分小于+1,或者负样本的得分大于-1,则损失是累积的。
  另一种方法是为每个属性单独训练一个logistic回归分类器。二元逻辑回归分类器只有两个类(0,1),并将类1的概率计算为:
在这里插入图片描述
  由于类1和类0的概率之和为1,所以类0的概率为:
在这里插入图片描述
  因此,如果σ(wTx+b)>0.5,或者如果分数wTx+b>0,则这个样本将被划分为正样本(y=1)。然后损失函数使这个概率最大化。这可以简化为最小化负对数概率:
在这里插入图片描述
  其中,标签yij被假定为1(正)或0(负),σ(⋅)是sigmoid函数。上面的表达式看起来很吓人,但f上的梯度实际上非常简单和直观:
在这里插入图片描述

2 Regression

  回归是一项预测实际价值量的任务,例如房屋价格或图像中某物的长度。对于这个任务,通常计算预测量和真实值之间的损失,然后计算差值的L2平方范数或L1范数。L2平方范数计算单个样本的损失表达式为:
在这里插入图片描述
  将L2范数进行平方的原因是梯度变得更简单,而不改变最优参数的值,因为平方是一种单调的运算操作。L1范数将通过沿每个维度的绝对值求和来表示:
在这里插入图片描述
  其中,如果要预测的数量不止一个,则总和∑j是所需预测的所有维度的总和。只看第 i 个例子的第 j 维,并用δij表示真实值和预测值之间的差异,该维的梯度(即∂Li/∂fj)很容易导出为带L2范数的δij或sign(δij)。也就是说,分数上的梯度要么与误差中的差值成正比,要么是固定的,只继承差值的符号。
  需要注意的是,L2损失比Softmax等更稳定的损失更难优化。直观地说,它需要来自网络的一个非常脆弱和特定(fragile and specific)的属性来为每个输入(及其补充)输出一个正确的值。不同的是,在Softmax中,每个分数的精确值并不那么重要,重要的是它们的大小是否恰当。此外,L2损失的鲁棒性较差,因为异常值可能会引入巨大的梯度。当面对回归问题时,首先考虑将输出量化到bin中是否是绝对不够的。例如,如果你要预测产品的星级,那么使用5个独立的分类器进行1-5星级的评级可能会比使用回归损失效果更好。分类还有一个额外的好处,它可以给你一个回归输出的分布,而不仅仅是一个没有显示其可信度的单一输出。如果确实无法将要解决的问题当成分类问题来解决,确实需要使用L2,那么需要注意:例如,L2更脆弱,在网络中应用dropout(尤其是在L2丢失之前的层中)不是一个好主意。
  总结一句话就是,当面对回归任务时,首先要考虑它是否绝对必要。相反,最好将输出离散化到bin中,并尽可能对其进行分类。

3 Structured prediction

  结构损失(structured loss)指的是标签可以是任意结构的情况,例如图形、树或其他复杂对象。通常还假设结构的空间非常大,不容易枚举。结构化支持向量机损失背后的基本思想是要求正确的结构yi和得分最高的错误结构之间有一个余量。将这种问题作为一个简单的无约束优化问题用梯度下降进行求解是不常见的。相反,通常设计特殊的求解器,以便利用结构空间的特定简化假设。由于这类实现较为复杂,因此这里只是简单提及一下,不作展开讨论。



*本博客翻译总结自CS231n课程作业网站,该网站需要翻墙才能访问。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值