下面的损失函数是用于图像分类任务,对于单个样本而言,令 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^)+(1−yi)log(1−yi^)]
而对于全体样本集的成本函数,就可以表示为:
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=1∑mL(y^i,yi)=−m1i=1∑m[yilog(yi^)+(1−yi)log(1−yi^)]
与损失函数不同的是,它描述了在全体样本集上,模型的参数 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(1−yi^)],显然此时
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+e−z1
那么令
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=1∣x)
那么则有:
i
f
:
y
=
1
,
p
(
y
∣
x
)
=
y
^
if:y=1 , p(y\mid x)=\hat{y}
if:y=1,p(y∣x)=y^
i
f
:
y
=
0
,
p
(
y
∣
x
)
=
1
−
y
^
if:y=0 , p(y\mid x)=1-\hat{y}
if:y=0,p(y∣x)=1−y^
由于是个二分类问题,
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(y∣x)=y^y(1−y^)(1−y)
同时由于log函数是严格单调递增的函数,在机器学习中,我们往往不太关注log的底数到底是什么,甚至直接省略掉,所以出现了log的写法,但是在数学中这样写是错的。所以,为了后续求解方便,我们可以取对数,于是
p
(
y
∣
x
)
p(y\mid x)
p(y∣x)等价于
l
o
g
(
p
(
y
∣
x
)
)
log(p(y\mid x))
log(p(y∣x))
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(y∣x))=−[ylog(y^)+(1−y)log(1−y^)]
而对于成本函数来说,他对于整个训练集优化 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=1∑mL(y^i,yi)=−m1i=1∑m[yilog(y^)+(1−yi)log(1−y^)]
在这里其实是可以用最大似然估计的方法来求这个解的,但是在实际的优化中,我们往往直接使用梯度下降法。
而这个损失函数,其实就是二值交叉熵,是一种交叉熵的特例。