问题:线性回归中,当我们有m个样本的时候,我们用的是损失函数是
J
(
θ
)
=
1
m
∑
i
=
1
m
1
2
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J_{(\theta)} = \frac{1}{m}\sum_{i=1}^m\frac{1}{2}(h_{\theta}(x^{(i)}) - y^{(i)})^2
J(θ)=m1i=1∑m21(hθ(x(i))−y(i))2
但是,到了逻辑回归中,损失函数一下子变成
J
(
θ
)
=
−
1
m
∑
i
=
1
m
[
y
(
i
)
l
o
g
(
h
θ
(
x
(
i
)
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
]
J_{(\theta)} = -\frac{1}{m}\sum_{i=1}^m[y^{(i)}log(h_{\theta}(x^{(i)})) + (1-y^{(i)})log(1-h_{\theta}(x^{(i)}))]
J(θ)=−m1i=1∑m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]
那么,逻辑回归的损失函数为什么是这个呢?
1. 前置数学知识:最大似然估计
1.1 似然函数
若总体
X
X
X属离散型,其分布律$ P{X=x} = p(x;\theta) $,
θ
∈
Θ
\theta\in\Theta
θ∈Θ的形式已知,
θ
\theta
θ为待估参数,
Θ
\Theta
Θ是
θ
\theta
θ的可能取值范围。设
X
1
,
X
2
,
.
.
.
,
X
n
X_1, X_2, ..., X_n
X1,X2,...,Xn是来自
X
X
X的样本,则
X
1
,
X
2
,
.
.
.
,
X
n
X_1, X_2, ..., X_n
X1,X2,...,Xn的联合概率分布为
∏
i
=
1
n
p
(
x
i
;
θ
)
\prod_{i=1}^np(x_i;\theta)
i=1∏np(xi;θ)
设
x
1
,
x
2
,
.
.
.
,
x
n
x_1, x_2, ..., x_n
x1,x2,...,xn是相应于样本
X
1
,
X
2
,
.
.
.
,
X
n
X_1, X_2, ..., X_n
X1,X2,...,Xn的一个样本值。则样本
X
1
,
X
2
,
.
.
.
,
X
n
X_1, X_2, ..., X_n
X1,X2,...,Xn取到观察值
x
1
,
x
2
,
.
.
.
,
x
n
x_1, x_2, ..., x_n
x1,x2,...,xn的概率,也就是事件
{
X
1
=
x
1
,
X
2
=
x
2
,
.
.
.
,
X
n
=
x
n
}
\{X_1=x_1, X_2=x_2, ..., X_n=x_n\}
{X1=x1,X2=x2,...,Xn=xn}发生的概率为
L
(
θ
)
=
L
(
x
1
,
x
2
,
.
.
.
,
x
n
;
θ
)
=
∏
i
=
1
n
p
(
x
i
;
θ
)
,
θ
∈
Θ
L(\theta)=L(x_1, x_2, ..., x_n;\theta)=\prod_{i=1}^np(x_i;\theta) ,\quad \theta\in\Theta
L(θ)=L(x1,x2,...,xn;θ)=i=1∏np(xi;θ),θ∈Θ
L
(
θ
)
L(\theta)
L(θ)称为样本的似然函数,它是
θ
\theta
θ的函数。(注意:这里
x
1
,
x
2
,
.
.
.
,
x
n
x_1, x_2, ..., x_n
x1,x2,...,xn是已知的样本值,都是常数)
1.2 最大似然估计
关于最大似然估计,我们可以有以下的直观想法:
现在已经去到样本值
x
1
,
x
2
,
.
.
.
,
x
n
x_1, x_2, ..., x_n
x1,x2,...,xn了,这表明取到这一样本值的概率
L
(
θ
)
L(\theta)
L(θ)比较大,而取到其他样本值概率比较小。由费希尔(R.A.Fisher)引进的最大似然估计,就是固定样本观察值
x
1
,
x
2
,
.
.
.
,
x
n
x_1, x_2, ..., x_n
x1,x2,...,xn,在
θ
\theta
θ取值的可能范围
Θ
\Theta
Θ内挑选使似然函数
L
(
x
1
,
x
2
,
.
.
.
,
x
n
;
θ
)
L(x_1, x_2, ..., x_n;\theta)
L(x1,x2,...,xn;θ)达到最大的参数值
θ
^
\hat{\theta}
θ^使
L
(
x
1
,
x
2
,
.
.
.
,
x
n
;
θ
^
)
=
max
θ
∈
Θ
L
(
x
1
,
x
2
,
.
.
.
,
x
n
;
θ
)
L(x_1, x_2, ..., x_n;\hat{\theta})= \max_{\theta\in\Theta}L(x_1, x_2, ..., x_n;\theta)
L(x1,x2,...,xn;θ^)=θ∈ΘmaxL(x1,x2,...,xn;θ)
这样得到的
θ
^
\hat{\theta}
θ^与样本值
x
1
,
x
2
,
.
.
.
,
x
n
x_1, x_2, ..., x_n
x1,x2,...,xn有关,常记为
θ
^
(
x
1
,
x
2
,
.
.
.
,
x
n
)
\hat{\theta}(x_1, x_2, ..., x_n)
θ^(x1,x2,...,xn),称为参数
θ
\theta
θ的最大似然估计值,相应的统计量
θ
^
(
X
1
,
X
2
,
.
.
.
,
X
n
)
\hat{\theta}(X_1, X_2, ..., X_n)
θ^(X1,X2,...,Xn)称为参数
θ
\theta
θ的最大似然估计量。
确定最大似然估计量的问题,就可以归结为求最大值的问题了。一般的求最大似然估计,都是转化为对数形式的似然函数来进行求解。
似然函数:
L
(
θ
)
=
L
(
x
1
,
x
2
,
.
.
.
,
x
n
;
θ
)
=
∏
i
=
1
n
p
(
x
i
;
θ
)
,
θ
∈
Θ
L(\theta)=L(x_1, x_2, ..., x_n;\theta)=\prod_{i=1}^np(x_i;\theta) ,\quad \theta\in\Theta
L(θ)=L(x1,x2,...,xn;θ)=i=1∏np(xi;θ),θ∈Θ
对数形式的似然函数(这里是自然对数,底数为e)
l
o
g
L
(
θ
)
=
∑
i
=
1
n
p
(
x
i
;
θ
)
,
θ
∈
Θ
logL(\theta)= \sum_{i=1}^np(x_i;\theta) ,\quad \theta\in\Theta
logL(θ)=i=1∑np(xi;θ),θ∈Θ
简单总结:
上面的数学知识说的通俗一点,就是通过样本来预测总体的分布,怎么来预测呢?
让总体分布尽量与样本的分布趋同,就是总体的分布与样本分布具有最大的相似性,然后再来求取分布中的参数
θ
\theta
θ。
2. 逻辑回归损失函数理解
2.1 逻辑回归前置知识
回归:输出的是连续数据,目的是找到最优的拟合。(例如:预测气温)
分类:输出的是离散数据,目的是找到决策边界。(例如:预测硬币正反)
逻辑回归是用来解决分类问题的,这里有一个前提假设,就是样本服从0-1分布,也就是伯努利分布n=1的情况。
0-1分布的分布律为:
X(随机变量) | 0 | 1 |
---|---|---|
P(概率) | 1-p | p |
下面介绍一下sigmoid函数如下:
y
=
1
1
+
e
(
−
x
)
y=\frac{1}{1+e^{(-x)}}
y=1+e(−x)1
这个函数的输出结果是一种概率,介于0到1之间。
2.2 理解方式1(ML课程的讲解方式)
逻辑回归中sigmoid函数为
h
θ
(
x
)
=
1
1
+
e
(
−
θ
T
x
)
h_{\theta}(x)=\frac{1}{1+e^{(-\theta^T x)}}
hθ(x)=1+e(−θTx)1 (其中
θ
T
x
=
∑
i
=
0
n
θ
i
x
i
\theta^T x=\sum_{i=0}^{n}\theta_ix_i
θTx=∑i=0nθixi)
可以用sigmoid函数表示0-1中取1的概率。所以我们的损失函数可以定义为
当
y
=
0
时
,
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
l
o
g
(
1
−
h
θ
(
x
)
)
当y=0时,Cost(h_\theta(x),y)=-log(1-h_\theta(x))
当y=0时,Cost(hθ(x),y)=−log(1−hθ(x))
当
y
=
1
时
,
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
l
o
g
(
h
θ
(
x
)
)
当y=1时,Cost(h_\theta(x),y)=-log(h_\theta(x))
当y=1时,Cost(hθ(x),y)=−log(hθ(x))
当我们把损失函数与0-1分布的分布律对应起来的时候,
p
=
h
θ
(
x
)
p=h_{\theta}(x)
p=hθ(x),损失函数就是在0-1分布的基础上取对数然后再取负数。这也好理解,损失函数的要求就是预测结果与真实结果越相近,函数值越小,所以会在前面加上负号。当y=0时,1-p的概率会比较大,在前面加上负号,Cost值就会很小;当y=1时,p的概率会比较大,在前面加上负号,Cost值就会很小。至于取对数,就是跟最大似然函数有关系,取对数不影响原本函数的单调性,而且会放大概率之间的差异,更好的区分各个样本的类别。
把上面损失函数写成统一的形式:
J
(
θ
)
=
−
1
m
∑
i
=
1
m
[
y
(
i
)
l
o
g
h
θ
(
x
(
i
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
]
J(\theta)=-\frac{1}{m}\sum_{i=1}^m[y^{(i)}logh_{\theta}(x^{(i)})+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))]
J(θ)=−m1i=1∑m[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]
好了,至此,我们得到了逻辑回归的损失函数。虽然大家都是这么讲的,但是,总是感觉没有太懂为什么最后得到了这个损失函数。如果想从数学的角度推导,可以继续往下看。
2.3 理解方式2
对于0-1分布的似然函数
0-1分布的分布律为
P
{
X
=
k
}
=
p
k
(
1
−
p
)
1
−
k
,
k
=
0
,
1
(
0
<
p
<
1
)
P\{X=k\}=p^{k}(1-p)^{1-k}, k=0,1 (0<p<1)
P{X=k}=pk(1−p)1−k,k=0,1(0<p<1)
当
x
1
,
x
2
,
.
.
.
,
x
n
x_1, x_2, ..., x_n
x1,x2,...,xn是来自于样本
X
1
,
X
2
,
.
.
.
,
X
n
X_1, X_2, ..., X_n
X1,X2,...,Xn的一个样本值,X的分布律为
P
{
X
=
x
}
=
p
x
(
1
−
p
)
1
−
x
,
x
=
0
,
1
(
0
<
p
<
1
)
P\{X=x\}=p^{x}(1-p)^{1-x}, x=0,1 (0<p<1)
P{X=x}=px(1−p)1−x,x=0,1(0<p<1)
它的似然函数为
L
(
p
)
=
∏
i
=
1
n
p
x
i
(
1
−
p
)
1
−
x
i
L(p) = \prod_{i=1}^{n}p^{x_i}(1-p)^{1-x_i}
L(p)=i=1∏npxi(1−p)1−xi
似然函数的对数形式为
l
o
g
L
(
p
)
=
(
∑
i
=
1
n
x
i
)
l
o
g
p
+
(
∑
i
=
1
n
(
1
−
x
i
)
)
l
o
g
(
1
−
p
)
logL(p) = (\sum_{i=1}^{n}{x_i})log\ p+ (\sum_{i=1}^{n}{(1-x_i)})log(1-p)
logL(p)=(i=1∑nxi)log p+(i=1∑n(1−xi))log(1−p)
对于逻辑回归的似然函数
逻辑回归中sigmoid函数为
h
θ
(
x
)
=
1
1
+
e
(
−
θ
T
x
)
h_{\theta}(x)=\frac{1}{1+e^{(-\theta^T x)}}
hθ(x)=1+e(−θTx)1,可以用sigmoid函数表示0-1中取1的概率,在这里用于表示逻辑回归中的概率。逻辑回归中的样本值为
(
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
.
.
.
,
(
x
m
,
y
m
)
)
((x^1, y^1), (x^2, y^2) ..., (x^m, y^m))
((x1,y1),(x2,y2)...,(xm,ym)),样本中的
x
i
x^i
xi是用来求概率
h
θ
(
x
)
h_{\theta}(x)
hθ(x)的,
y
i
y^i
yi是样本的真实值,也就是真实类别。在机器学习中,习惯称
x
i
x^i
xi为特征值,
y
i
y^i
yi为标签。
h
θ
(
x
)
h_{\theta}(x)
hθ(x)对应于0-1分布中的概率
p
p
p,
y
i
y^i
yi对应于0-1分布中的
x
i
x_i
xi,也就是样本值。这样我们就把逻辑回归和0-1分布对应起来了。我们用逻辑回归来作为分类模型,需要用最大似然估计的方法来评判模型的好坏。让总体分布尽量与样本的分布趋同,就是总体的分布与样本分布具有最大的相似性,然后再来求取模型中的参数
θ
\theta
θ,这样就可以得到比较符合最大似然估计的模型。这个模型其实就是
h
θ
(
x
)
h_{\theta}(x)
hθ(x)。
根据0-1分布的似然函数,我们可以写出逻辑回归的似然函数
L
(
p
)
=
∏
i
=
1
m
h
θ
(
x
(
i
)
)
y
(
i
)
(
1
−
h
θ
(
x
(
i
)
)
)
1
−
y
(
i
)
L(p) = \prod_{i=1}^{m}h_{\theta}(x^{(i)})^{y^{(i)}}(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}}
L(p)=i=1∏mhθ(x(i))y(i)(1−hθ(x(i)))1−y(i)
对数形式为
l
o
g
L
(
p
)
=
∑
i
=
1
m
y
(
i
)
l
o
g
h
θ
(
x
(
i
)
)
+
∑
i
=
1
m
(
1
−
y
(
i
)
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
logL(p) = \sum_{i=1}^{m}{y^{(i)}}log\ h_{\theta}(x^{(i)})+\sum_{i=1}^{m}(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))
logL(p)=i=1∑my(i)log hθ(x(i))+i=1∑m(1−y(i))log(1−hθ(x(i)))
逻辑回归的损失函数为
J
(
θ
)
=
−
1
m
∑
i
=
1
m
[
y
(
i
)
l
o
g
h
θ
(
x
(
i
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
]
J(\theta)=-\frac{1}{m}\sum_{i=1}^m[y^{(i)}logh_{\theta}(x^{(i)})+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))]
J(θ)=−m1i=1∑m[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]
J
(
θ
)
=
−
1
m
l
o
g
L
(
p
)
J(\theta) = -\frac{1}{m}logL(p)
J(θ)=−m1logL(p)
损失函数跟对数形式的似然函数很像,只是在前面乘以
−
1
m
-\frac{1}{m}
−m1。最大似然估计的方法要求
l
o
g
L
(
p
)
logL(p)
logL(p)的最大值,损失函数在其前面加上负号,就是求最小值,这个跟损失函数的特性刚好吻合。1/m是用来对m个样本值的损失函数值取平均,不会影响函数功能。
因此,逻辑回归的损失函数求最小值,就是根据最大似然估计的方法来的。
参考资料:
- 盛骤, 谢式千等.《概率论与数理统计》(第四版). 高等教育出版社.
- 吴恩达机器学习视频
.