CNN笔记(4)--目标函数

9.目标函数(损失函数,代价函数)

9.1分类任务的目标函数

9.1.1 交叉熵损失函数(cross entropy)(SoftMax)

Lcross entropy loss=Lsoftmax_loss=1Ni=1NlogehyiCj=1ehj L c r o s s   e n t r o 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

通过指数化变换使网络输出 h 转换为概率形式

9.1.2 合页损失函数(hinge loss)

Lhinge loss=1Ni=1Nmax{0,1hyi} L h i n g e   l o s s = 1 N ∑ i = 1 N m a x { 0 , 1 − h y i }

一般分类任务,交叉熵比hinge更好

9.1.3 坡道损失函数(ramp loss function)

针对噪声数据离群点具备良好的抗噪特性

在分类(回归)误差较大区域进行了“截断”

Lramp loss=Lhinge loss1Ni=1Nmax{0,shyi}=1Ni=1N(max{0,1hyi}max{0,shyi}) L r a m p   l o s s = L h i n g e   l o s s − 1 N ∑ i = 1 N m a x { 0 , s − h y i } = 1 N ∑ i = 1 N ( m a x { 0 , 1 − h y i } − m a x { 0 , s − h y i } )

s 指定了“截断点”的位置
s 取值最好根据分类任务的类别数 C 而定,一般设置为 s = -1/(C-1)

也被称为截断合页函数

以上提到的交叉熵损失函数、合页损失函数和坡道损失函数只是简单衡量
模型预测值与样本真实标记之间的误差从而指导训练过程,它们并没有显式地
将特征判别性学习考虑到整个网络训练中。

9.1.4 大间隔交叉熵损失函数

传统的softmax中将输出结果h表示为全连接层参数W与该层特征向量 xi x i 的内积

可变换为

Lsoftmax loss=1Ni=1Nloge||Wi||||xi||cos(θyi)Cj=1e||Wj||||xi||cos(θj) L s o f t m a x   l o s s = − 1 N ∑ i = 1 N log ⁡ e | | W i | | | | x i | | cos ⁡ ( θ y i ) ∑ j = 1 C e | | W j | | | | x i | | c o s ( θ j )

将第i类分类间隔拉大,由 cos(θyi) c o s ( θ y i ) 变为 ϕ(θyi) ϕ ( θ y i )

得到大间隔交叉熵损失函数

Llarge_margin softmax loss=1Ni=1Nloge||Wi||||xi||ϕ(θyi)e||Wi||||xi||ϕ(θyi)+jyie||Wj||||xi||cos(θj) 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 | | ϕ ( θ y i ) e | | W i | | | | x i | | ϕ ( θ y i ) + ∑ j ≠ y i e | | W j | | | | x i | | c o s ( θ j )

其中,
ϕ(θ)=cos(mθ),D(θ),0θπmπm<θπ ϕ ( θ ) = { cos ⁡ ( m θ ) , 0 ≤ θ ≤ π m D ( θ ) , π m < θ ≤ π

式中, D(θ) D ( θ ) 满足单调递减,且 D(πm=cosπm) D ( π m = cos ⁡ π m )

9.1.5 中心损失函数

Lcenter loss=12i=1N||xicyi||22 L c e n t e r   l o s s = 1 2 ∑ i = 1 N | | x i − c y i | | 2 2

其中, cyi c y i 为第 yi y i 类所有深度特征的均值(‘中心’)

主要考虑控制类内差异,与考虑类间距离的损失函数配合(交叉熵损失函数)

最终目标函数表示为

Lfinal=Lcross entropy loss+Lcenter loss(h,yi)=1Ni=1NlogehyiCj=1ehj+λ2i=1N||xicyi||22 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 ( h , y i ) = − 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

式中 λ λ 为两个损失函数的调节项, λ λ 越大,类内差异比重越大

9.2 回归任务的损失函数

基本概念:残差

9.2.1 l1 l 1 损失函数

对N个样本:

Ll1 loss=1Ni=1Nt=1M|lit| L l 1   l o s s = 1 N ∑ i = 1 N ∑ t = 1 M | l t i |

9.2.2 l2 l 2 损失函数

对N个样本

Ll1 loss=1Ni=1Nt=1M(lit)2 L l 1   l o s s = 1 N ∑ i = 1 N ∑ t = 1 M ( l t i ) 2

两个损失函数在回归精度上相差无几,某些情况, l2 l 2 可能略优,速度也更快

9.2.3 Tukey’s biweight 损失函数(鲁棒损失函数)

非凸损失函数

可以克服回归任务中的离群点或样本噪声对整体回归模型的干扰影响

LTukeys biweight loss=c26Ni=1Nt=1M[1(1(litc)2)3],c2M6,if|lit|cotherwise 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 ] , i f | l t i | ≤ c c 2 M 6 , o t h e r w i s e

常数c决定函数拐点

9.3 其他任务的目标函数

标记分布问题 区别于分类问题的离散标记,也不同于回归问题的连续标记

语义分割

以一定程度缓解多标记任务中的类别不确信问题

利用softmax 将 输出结果h转换为合法分布

针对预测的标记向量(标记分布) y^ y ^ ,使用KL散度衡量与真实标记向量y的误差

LKL loss=kyklogyky^k L K L   l o s s = ∑ k y k log ⁡ y k y ^ k

由于 yk y k 为常量,等价于

LKL loss=kyklogy^k L K L   l o s s = − ∑ k y k log ⁡ y ^ k

参考文献:解析卷积神经网络—深度学习实践手册引用块内容

你可能感兴趣的:(笔记-算法)