关于损失函数的概率表示初识

损失函数

损失函数是一个非负实数函数,用来量化模型预测和真实标签之间的差异.下面介绍几种常用的损失函数.

0-1损失函数(0-1LossFunction)

最直观的损失函数是模型在训练集上的错误率,即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,难以优化。

平方损失函数(Quadratic Loss Function)

用于预测标签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(yf(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;θ))越小,则似然函数越大,就越符合要求,就得到了该损失函数。

交叉熵损失函数(Cross-EntropyLossFunction)

一般用于分类问题,假设样本的标签 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=cx;θ)=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=1Cfc(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=1Cyc 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;θ)

Hinge损失函数

对于二分类问题,设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;θ))=[1yf(x;θ)]+

Reference

《神经网络与深度学习》-邱锡鹏

你可能感兴趣的:(NLP,机器学习,机器学习,深度学习,python)