二值交叉熵损失函数证明

下面的损失函数是用于图像分类任务,对于单个样本而言,令 y y y为样本的期望输出, y ^ \hat{y} y^为样本的实际输出,那么Logistic回归的损失函数就可以表示为:

L ( y ^ i , y i ) = − [ y i l o g ( y i ^ ) + ( 1 − y i ) l o g ( 1 − y i ^ ) ] L(\hat{y}_{i},y_{i}) = -[{y}_{i}log(\hat{y_{i}})+(1-{y}_{i})log(1-\hat{y_{i}})] L(y^i,yi)=[yilog(yi^)+(1yi)log(1yi^)]
而对于全体样本集的成本函数,就可以表示为:

J ( w , b ) = 1 m ∑ i = 1 m L ( y ^ i , y i ) = − 1 m ∑ i = 1 m [ y i l o g ( y i ^ ) + ( 1 − y i ) l o g ( 1 − y i ^ ) ] J(w,b) =\frac{1}{m}\sum_{i=1}^{m}L(\hat{y}_{i},y_{i})=-\frac{1}{m}\sum_{i=1}^{m}[{y}_{i}log(\hat{y_{i}})+(1-{y}_{i})log(1-\hat{y_{i}})] J(w,b)=m1i=1mL(y^i,yi)=m1i=1m[yilog(yi^)+(1yi)log(1yi^)]

与损失函数不同的是,它描述了在全体样本集上,模型的参数 w w w b b b与优化目标之间的关系,在这两个公式中,成本函数其实是损失函数的平均值。

那么我们先看一下对于损失函数而言,为什么它能发挥作用:

如果期望输出 y = 1 y=1 y=1,那么优化目标为 m i n [ L ( y ^ i , y i ) ] = m i n [ − l o g ( y i ^ ) ] min[ L(\hat{y}_{i},y_{i})]=min[-log(\hat{y_{i}})] min[L(y^i,yi)]=min[log(yi^)],显然此时 y i ^ \hat{y_{i}} yi^越大,优化目标会得到最小值;
如果期望输出 y = 0 y=0 y=0,那么优化目标为 m i n [ L ( y ^ i , y i ) ] = m i n [ − l o g ( 1 − y i ^ ) ] min[ L(\hat{y}_{i},y_{i})]=min[-log(1-\hat{y_{i}})] min[L(y^i,yi)]=min[log(1yi^)],显然此时 y i ^ \hat{y_{i}} yi^越小,优化目标会得到最小值;

下面证明下这个损失函数是怎么来的:
Logistic回归模型如下:
y ^ = s i g m o i d ( w T x + b ) \hat{y}=sigmoid(w^{T}x+b) y^=sigmoid(wTx+b)
s i g m o i d ( z ) = 1 1 + e − z sigmoid(z)=\frac{1}{1+e^{-z}} sigmoid(z)=1+ez1

那么令 y ^ \hat{y} y^为给定 x x x的情况下 y = 1 y=1 y=1的概率:
y ^ = p ( y = 1 ∣ x ) \hat{y}=p(y=1\mid x) y^=p(y=1x)

那么则有:

i f : y = 1 , p ( y ∣ x ) = y ^ if:y=1 , p(y\mid x)=\hat{y} if:y=1,p(yx)=y^
i f : y = 0 , p ( y ∣ x ) = 1 − y ^ if:y=0 , p(y\mid x)=1-\hat{y} if:y=0,p(yx)=1y^

由于是个二分类问题, y y y的值非1即0,那么合并上式就可得到:
p ( y ∣ x ) = y ^ y ( 1 − y ^ ) ( 1 − y ) p(y\mid x) =\hat{y}^{y}(1-\hat{y})^{(1-y)} p(yx)=y^y(1y^)(1y)

同时由于log函数是严格单调递增的函数,在机器学习中,我们往往不太关注log的底数到底是什么,甚至直接省略掉,所以出现了log的写法,但是在数学中这样写是错的。所以,为了后续求解方便,我们可以取对数,于是 p ( y ∣ x ) p(y\mid x) p(yx)等价于 l o g ( p ( y ∣ x ) ) log(p(y\mid x)) log(p(yx))
l o g ( p ( y ∣ x ) ) = − [ y l o g ( y ^ ) + ( 1 − y ) l o g ( 1 − y ^ ) ] log(p(y\mid x)) = -[ylog(\hat{y})+(1-y)log(1-\hat{y})] log(p(yx))=[ylog(y^)+(1y)log(1y^)]

而对于成本函数来说,他对于整个训练集优化 w w w b b b,所以就有了这个上面出现过的式子:

J ( w , b ) = 1 m ∑ i = 1 m L ( y ^ i , y i ) = − 1 m ∑ i = 1 m [ y i l o g ( y ^ ) + ( 1 − y i ) l o g ( 1 − y ^ ) ] J(w,b) =\frac{1}{m}\sum_{i=1}^{m}L(\hat{y}_{i},y_{i})=-\frac{1}{m}\sum_{i=1}^{m}[{y}_{i}log(\hat{y})+(1-{y}_{i})log(1-\hat{y})] J(w,b)=m1i=1mL(y^i,yi)=m1i=1m[yilog(y^)+(1yi)log(1y^)]

在这里其实是可以用最大似然估计的方法来求这个解的,但是在实际的优化中,我们往往直接使用梯度下降法。
而这个损失函数,其实就是二值交叉熵,是一种交叉熵的特例。

你可能感兴趣的:(机器学习)