我是靠谱客的博主 等待裙子,最近开发中收集的这篇文章主要介绍深度神经网络中的损失函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

深度神经网络中的目标函数(objective function)

  1. 亦称:“损失函数”(loss function)& “代价函数”(cost function)
  2. 可谓整个深度网络模型的“指挥棒”
  3. 通过样本的预测结果与真实标记之间产生的误差,反向传播 指导网络参数学习 与 表示学习

文章目录

      • 1 分类任务的损失函数
        • 1.1 交叉熵(cross entrypy)损失函数
        • 1.2 合页(hinge)损失函数
        • 1.3 坡道(ramp)损失函数
        • 1.4 大间隔交叉熵(large-margin softmax)损失函数
        • 1.5 中心(center)损失函数
      • 2 回归任务的损失函数
        • 2.1 l1和 l2损失函数
        • 2.2 Tukey's biweight 损失函数
      • 3 其他任务的损失函数

1 分类任务的损失函数

1.1 交叉熵(cross entrypy)损失函数

  • 亦称Softmax损失函数
  • 最常用的分类损失函数
  • 通过指数化变换,使网络输出 h h h 转换成 概率形式
    L c r o s s e n t r y p y l o s s = L s o f t m a x l o s s = − 1 N ∑ i = 1 N log ⁡ e h y i ∑ j = 1 C e h j L_{cross entrypy loss}=L_{softmax loss}=-frac{1}{N}sum_{i=1}^Nlogfrac{e^{h_{y_i}}}{sum_{j=1}^Ce^{h_j}} Lcrossentrypyloss=Lsoftmaxloss=N1i=1Nlogj=1Cehjehyi

1.2 合页(hinge)损失函数

  • 在支持向量机中,被广泛使用
  • 对错误越大的样本,施加越严重的惩罚
  • 对噪声(离群点)的抵抗能力较差
  • 分类效果:交叉熵损失函数 略优于 合页损失函数
    L h i n g e l o s s = 1 N ∑ i = 1 N max ⁡ { 0 , 1 − h y i } L_{hinge loss}=frac{1}{N}sum_{i=1}^Nmax{0,1-h_{y_i}} Lhingeloss=N1i=1Nmax{0,1hyi}

1.3 坡道(ramp)损失函数

  • 非凸(non-convex)损失函数(具有良好的抗噪特性)
  • 在分类误差较大的区域,进行截断,来适当减小对整个误差函数的影响
  • 亦称“鲁棒(robust)损失函数” & “截断合页(truncated hinge)损失函数”
    L r a m p l o s s = L h i n g e l o s s − 1 N ∑ i = 1 N max ⁡ { 0 , s − h y i } = 1 N ∑ i = 1 N ( max ⁡ { 0 , 1 − h y i } − max ⁡ { 0 , s − h y i } ) L_{ramp loss}=L_{hinge loss}-frac{1}{N}sum_{i=1}^Nmax{0,s-h_{y_i}}=frac{1}{N}sum_{i=1}^N(max{0,1-h_{y_i}}-max{0,s-h_{y_i}}) Lramploss=LhingelossN1i=1Nmax{0,shyi}=N1i=1N(max{0,1hyi}max{0,shyi})
    截断点: s s s,其取值最好根据分类任务的类别数 C C C而定, s = − 1 C − 1 s=-frac{1}{C-1} s=C11

1.4 大间隔交叉熵(large-margin softmax)损失函数

以上提到的交叉熵损失函数、合页损失函数、坡道损失函数的缺陷

  • 没有显示地将特征判别性学习考虑进整个网络训练中

问题解决:大间隔交叉熵损失函数、中心损失函数

  • 考虑了增大类间距离,减小类内差异
  • 提升了网络学习特征的判别能力

L l a r g e − m a r g i n s o f t m a x l o s s = − 1 N ∑ i = 1 N log ⁡ e ∥ W i ∥ ∥ x i ∥ ϕ ( θ h y i ) e ∥ W i ∥ ∥ x i ∥ ϕ ( θ h y i ) + ∑ j ≠ y i e ∥ W i ∥ ∥ x i ∥ cos ⁡ ( θ j ) L_{large-margin softmax loss}=-frac{1}{N}sum_{i=1}^Nlogfrac{e^{parallel W_i parallel parallel x_i parallel phi(theta_{h_{y_i}})}}{e^{parallel W_i parallel parallel x_i parallel phi(theta_{h_{y_i}})}+sum_{jneq y_i}e^{parallel W_i parallel parallel x_i parallel cos(theta_j)}} Llargemarginsoftmaxloss=N1i=1NlogeWixiϕ(θhyi)+j=yieWixicos(θj)eWixiϕ(θhyi)

  • 将第 i i i类分类间隔“拉大”了,扩大了类间距离
  • 由于它不仅要求分类正确,而且要求类间保持较大间隔,从而训练目标比传统交叉熵损失函数更困难;也正是因此,得到一个额外的好处,防止了模型过拟合
  • 分类效果:优于 交叉熵损失函数、合页损失函数

1.5 中心(center)损失函数

L c e n t e r l o s s = 1 2 ∑ i = 1 N ∥ x i − c y i ∥ 2 2 L_{center loss}=frac{1}{2}sum_{i=1}^Nparallel x_i-c_{y_i} parallel_2^2 Lcenterloss=21i=1Nxicyi22

  • 将注意力放在了减小 类内差异 上(迫使所有隶属于 y i y_i yi类的样本与中心不要距离过远,否则将增大惩罚)
  • 在实际使用时,经常与考虑 类间距离 的损失函数 配合使用,如交叉熵损失函数
    L f i n a l = L c r o s s e n t r o p y l o s s + λ L c e n t e r l o s s = − 1 N ∑ i = 1 N log ⁡ e h y i ∑ j = 1 C e h j + λ 2 ∑ i = 1 N ∥ x i − c y i ∥ 2 2 L_{final}=L_{cross entropy loss}+lambda L_{center loss}=-frac{1}{N}sum_{i=1}^Nlogfrac{e^{h_{y_i}}}{sum_{j=1}^Ce^{h_j}}+frac{lambda}{2}sum_{i=1}^Nparallel x_i-c_{y_i} parallel_2^2 Lfinal=Lcrossentropyloss+λLcenterloss=N1i=1Nlogj=1Cehjehyi+2λi=1Nxicyi22
    • 调节项: λ lambda λ

2 回归任务的损失函数

分类问题中

  • 样本真实标记 对应了一条独热向量(one hot vector)
  • 类别数 C = 5 C=5 C=5 ,某个样本真实标记(类别)为3号类别,则独热向量= ( 0 , 0 , 1 , 0 , 0 ) (0,0,1,0,0) (0,0,1,0,0)

回归问题中

  • 同样,样本真实标记 对应了一条向量
  • 但是,此时样本 i i i的真实标记向量 y i = ( y 1 , . . . , y i , . . . , y M ) , 其 中 M 为 标 记 向 量 的 维 度 ( 一 般 比 较 大 ) y_i=(y_1,...,y_i,...,y_M),其中M为标记向量的维度(一般比较大) yi=(y1,...,yi,...,yM)M
  • 样本 i i i,在第 t t t维的预测误差: l t i = y t i − y ^ t i l_t^i=y_t^i-hat y_t^i lti=ytiy^ti

2.1 l1和 l2损失函数

  • l 1 l_1 l1 损失函数: L l 1 l o s s = 1 N ∑ i = 1 N ∑ t = 1 M ∣ l t i ∣ L_{l_1 loss}=frac{1}{N}sum_{i=1}^Nsum_{t=1}^M|l_t^i| Ll1loss=N1i=1Nt=1Mlti
  • l 2 l_2 l2 损失函数: L l 1 l o s s = 1 N ∑ i = 1 N ∑ t = 1 M ( l t i ) 2 L_{l_1 loss}=frac{1}{N}sum_{i=1}^Nsum_{t=1}^M(l_t^i)^2 Ll1loss=N1i=1Nt=1M(lti)2
  • l 1 l_1 l1 l 2 l_2 l2 损失函数,在回归精度上,几乎相差无几(某些情况下 l 2 l_2 l2 损失略优)
  • l 2 l_2 l2 损失函数收敛速度比 l 1 l_1 l1 更快

2.2 Tukey’s biweight 损失函数

  • 非凸(non-convex)损失函数(具有良好的抗噪特性)
    L T u k e y ′ s b i w e i g h t l o s s = { c 2 6 N ∑ i = 1 N ∑ t = 1 M [ 1 − ( 1 − ( l t i c ) 2 ) 3 ] ∣ l t i ∣ ≤ c c 2 M 6 , 其他 L_{Tukey's biweight loss}= begin{cases} frac{c^2}{6N}sum_{i=1}^Nsum_{t=1}^M[1-(1-(frac{l_t^i}{c})^2)^3] & text{$|l_t^i|leq c$} \ frac{c^2M}{6}, & text{其他} end{cases} LTukeysbiweightloss={6Nc2i=1Nt=1M[1(1(clti)2)3]6c2M,ltic其他
  • 常数 c c c指定了函数拐点

3 其他任务的损失函数

在一些如人的年龄,身体倾斜角度识别任务中,样本标记具有不确定性。

  • 基于标记分布(label distribution)的损失函数为一种优质选择。
  • 在利用标记分布技术之前,首先需要将输出 h h h转化为合法分布。在此以Softmax函数为例可将输出转化为: y ^ k = e h y i ∑ j = 1 C e h j hat y_k=frac{e^{h_{y_i}}}{sum_{j=1}^Ce^{h_j}} y^k=j=1Cehjehyi,其中 k ∈ { 1 , 2 , . . . , k , . . . , C } kin{1,2,...,k,...,C} k{1,2,...,k,...,C}代表标记向量的第 k k k
  • Kullback-Leibler散度(KL divergence):用来度量 预测的标记向量 y ^ hat y y^真实的标记向量 y y y 之间的误差,KL散度亦称KL损失:
    L K L l o s s = ∑ k = 1 C y k log ⁡ y k y ^ k , 由 于 y k 为 常 数 , 则 ⟺ L K L l o s s = − ∑ k = 1 C y k log ⁡ y ^ k L_{KL loss}=sum_{k=1}^Cy_klogfrac{y_k}{hat y_k},由于y_k为常数,则Longleftrightarrow L_{KL loss}=-sum_{k=1}^Cy_klog{hat y_k} LKLloss=k=1Cyklogy^kykykLKLloss=k=1Cyklogy^k

最后

以上就是等待裙子为你收集整理的深度神经网络中的损失函数的全部内容,希望文章能够帮你解决深度神经网络中的损失函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(24)

评论列表共有 0 条评论

立即
投稿
返回
顶部