损失函数是一个非负实数函数,用来量化模型预测和真实标签之间的差异.下面介绍几种常用的损失函数.
最直观的损失函数是模型在训练集上的错误率,即0-1损失函数
L ( y , f ( x ; θ ) ) = { 0 i f y = f ( x ; θ ) 1 i f y ≠ f ( x ; θ ) = I ( y ≠ f ( x ; θ ) ) L(y,f(x; \theta)) = \left\{\begin{matrix} 0 & if ~y = f(x; \theta) \\ 1 & if ~y \neq f(x; \theta) \end{matrix}\right. =I(y \neq f(x; \theta)) L(y,f(x;θ))={01if y=f(x;θ)if y=f(x;θ)=I(y=f(x;θ))
其中 I ( ⋅ ) I(\cdot) I(⋅)为指示函数。
但是这类损失函数模型的数学性质并不好,不连续,倒数为0,难以优化。
用于预测标签y为实数值的任务中。一般不用与分类问题。
L ( y , f ( x ; θ ) ) = 1 2 ( y − f ( x ; θ ) ) 2 L(y,f(x; \theta))=\frac{1}{2}(y - f(x; \theta))^2 L(y,f(x;θ))=21(y−f(x;θ))2
刚读到这里的时候我就产生了一个问题,就是为什么要用这种形式表示二者的区别呢,取个绝对值也可以表示啊。(来自小白的疑问)。
然后我就查了一下平方损失函数的推倒,原来是有背景的。
平方损失函数的意义是在特征值为 x x x的情况下,找出可以使平方函数最小的模型,也就是误差最小的模型。这样的目的与极大似然函数的目的相同,或者说这种问题就是要用极大似然函数解决。
在似然函数取对整理后会有这样一项:
− 1 2 ( y ( i ) − f ( x ( i ) ; θ ) ) 2 -\frac{1}{2}(y^{(i)} - f(x^{(i)}; \theta))^2 −21(y(i)−f(x(i);θ))2
那么 L ( y , f ( x ; θ ) ) L(y,f(x; \theta)) L(y,f(x;θ))越小,则似然函数越大,就越符合要求,就得到了该损失函数。
一般用于分类问题,假设样本的标签 y ∈ { 1 , . . . . , C } y \in \{1,....,C\} y∈{1,....,C}为离散的类别,模型 f ( x ; θ ) ∈ [ 0 , 1 ] C f(x; \theta) \in [0,1]^C f(x;θ)∈[0,1]C的值为类别标签的条件概率分布:
p ( y = c ∣ x ; θ ) = f c ( x ; θ ) p(y = c|x; \theta) = f_c(x; \theta) p(y=c∣x;θ)=fc(x;θ)
满足
f c ( x ; θ ) ∈ [ 0 , 1 ] ∑ c = 1 C f c ( x ; θ ) = 1 f_c(x; \theta) \in [0,1]~~~~~~\sum_{c = 1}^{C}f_c(x; \theta)=1 fc(x;θ)∈[0,1] c=1∑Cfc(x;θ)=1
我理解的是描述了x输入下在y各个属性的符合概率。
然后提供两个分布:一个是标签的真实分布y,一个式模型的预测分布 f ( x ; θ ) f(x;\theta) f(x;θ)。
真实分布用one-hot向量表示,预测分布上面以及给出。
然后可以用交叉熵来衡量二者的差异,两个分布的交叉熵为:
L ( y , f ( x ; θ ) ) = − y T l o g f ( x ; θ ) = − ∑ c = 1 C y c l o g f c ( x ; θ ) L(y,f(x; \theta)) = - y^Tlogf(x; \theta) = -\sum_{c = 1}^{C}y_c~logf_c(x; \theta) L(y,f(x;θ))=−yTlogf(x;θ)=−c=1∑Cyc logfc(x;θ)
举一个例子:
样本标签向量y为 [ 0 , 0 , 1 ] T [0,0,1]^T [0,0,1]T
模型预测向量为: [ 0.3 , 0.3 , 0.4 ] T [0.3,0.3,0.4]^T [0.3,0.3,0.4]T
则二者的交叉熵为 − l o g ( 0.4 ) -log(0.4) −log(0.4)
由于y为one-hot向量,所以也可以写成:
L ( y , f ( x ; θ ) ) = − l o g f y ( x ; θ ) L(y, f(x; \theta)) = -logf_y(x; \theta) L(y,f(x;θ))=−logfy(x;θ)
对于二分类问题,设y为 { − 1 , 1 } \{-1,1\} {−1,1}, f ( x ; θ ) ∈ R f(x; \theta) \in \mathbb{R} f(x;θ)∈R,则函数为:
L ( y , f ( x ; θ ) ) = [ 1 − y f ( x ; θ ) ] + L(y, f(x; \theta)) = [1- yf(x; \theta)]_+ L(y,f(x;θ))=[1−yf(x;θ)]+
《神经网络与深度学习》-邱锡鹏