深度神经网络中的损失函数

深度神经网络中的目标函数(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}^N\log\frac{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}^N\max\{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}^N\max\{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}^N\log\frac{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_{j\neq 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}^N\parallel 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}^N\log\frac{e^{h_{y_i}}}{\sum_{j=1}^Ce^{h_j}}+\frac{\lambda}{2}\sum_{i=1}^N\parallel 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}^N\sum_{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}^N\sum_{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}^N\sum_{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 } k\in\{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_k\log\frac{y_k}{\hat y_k},由于y_k为常数,则\Longleftrightarrow L_{KL loss}=-\sum_{k=1}^Cy_k\log{\hat y_k} LKLloss=k=1Cyklogy^kykykLKLloss=k=1Cyklogy^k

你可能感兴趣的:(deep,learning)