逻辑回归原理详解
逻辑回归主要用于解决分类问题,并且是对于概率的分类,例如今天是雨天还是晴天,是雨天就是0概率,是晴天就是1概率。通常我们预测出的情况是今天是晴天的概率值。谈及逻辑回归的原理,需要先从广义线性回归(GLM)讲起:
广义线性回归(GLM)
广义线性回归满足以下的三个条件:
- 对于参数 θ \theta θ,y|x满足指数族分布
- T ( y ) = y T(y)=y T(y)=y, T ( y ) T(y) T(y)为充分统计量,对于预测值 h θ ( x ) = E [ T ( y ) ∣ x ] h_\theta(x)=E[T(y)|x] hθ(x)=E[T(y)∣x]
- η = Θ T x \eta=\Theta^T x η=ΘTx
指数族分布
p ( y ; η ) = b ( y ) e x p ( η T T ( y ) − a ( η ) ) ( 1 ) p(y;\eta)=b(y)exp(\eta^TT(y)-a(\eta))\quad (1) p(y;η)=b(y)exp(ηTT(y)−a(η))(1)
- η \eta η被称为自然参数
- T ( y ) T(y) T(y)被称为充分统计量,常用的是 T ( y ) = y T(y)=y T(y)=y
- a ( η ) a(\eta) a(η)被称为对割函数,可以起到归一化的作用
- 指数族参数 η \eta η是 x x x的线性组合,可以表示为 η = Θ T x \eta=\Theta^T x η=ΘTx
- 常见的指数族分布有:伯努利分布,高斯分布,多项式分布,泊松分布…
由指数族分布到逻辑回归
逻辑回归的数据分布满足伯努利分布,假设伯努利分布的均值为
ϕ
\phi
ϕ,则伯努利分布的概率密度函数可以表示为:
P
(
y
;
ϕ
)
=
ϕ
y
(
1
−
ϕ
)
1
−
y
P(y;\phi)=\phi^y(1-\phi)^{1-y}
P(y;ϕ)=ϕy(1−ϕ)1−y
=
e
x
p
(
y
l
o
g
ϕ
+
(
1
−
y
)
l
o
g
(
1
−
ϕ
)
\qquad \quad =exp(ylog\phi+(1-y)log(1-\phi)
=exp(ylogϕ+(1−y)log(1−ϕ)
=
e
x
p
(
y
l
o
g
ϕ
1
−
ϕ
+
l
o
g
(
1
−
ϕ
)
)
(
2
)
\qquad \quad =exp(ylog\frac{\phi}{1-\phi}+log(1-\phi)) \quad (2)
=exp(ylog1−ϕϕ+log(1−ϕ))(2)
因为
T
(
y
)
=
y
T(y)=y
T(y)=y,因此可以得到
η
=
l
o
g
ϕ
1
−
ϕ
(
3
)
\eta=log\frac{\phi}{1-\phi} \quad(3)
η=log1−ϕϕ(3)
此时我们可以得到
ϕ
=
1
1
+
e
−
η
(
4
)
\phi=\frac{1}{1+e^{-\eta}} \quad(4)
ϕ=1+e−η1(4)
这样我们就得到了sigmoid函数
逻辑回归模型
对于二分类的问题 ,设伯努利分布的均值为
ϕ
\phi
ϕ,则可以得到:
ϕ
=
1
1
+
e
−
η
=
1
1
+
e
−
θ
T
x
(
5
)
\phi=\frac{1}{1+e^{-\eta}}=\frac{1}{1+e^{-\theta^Tx}} \quad(5)
ϕ=1+e−η1=1+e−θTx1(5)
为了方便计算,我们使得
h
θ
=
1
1
+
e
−
θ
T
x
(
6
)
h_\theta=\frac{1}{1+e^{-\theta^T x}} \quad (6)
hθ=1+e−θTx1(6)
此时逻辑回归(满足伯努利分布)的表达式为:
P
(
y
∣
x
;
θ
)
=
(
h
θ
(
x
)
y
(
1
−
h
θ
(
x
)
)
1
−
y
(
7
)
P(y|x;\theta)=(h_\theta(x)^y(1-h_\theta(x))^{1-y}\quad(7)
P(y∣x;θ)=(hθ(x)y(1−hθ(x))1−y(7)
我们得到了样本的分布情况,我们想要那个最可能导致样本这样分布的参数。因此我们使用极大似然函数求最可能导致结果的那个参数。
似然函数为:
L
(
θ
)
=
P
(
Y
∣
X
;
θ
)
L(\theta)=P(Y|X;\theta)
L(θ)=P(Y∣X;θ)
=
∏
i
=
0
i
=
m
(
h
θ
(
x
i
)
y
i
(
1
−
h
θ
(
x
i
)
)
1
−
y
i
(
8
)
\qquad =\prod_{i=0}^{i=m}(h_\theta(x_i)^{y_i}(1-h_\theta(x_i))^{1-y_i}\quad(8)
=∏i=0i=m(hθ(xi)yi(1−hθ(xi))1−yi(8)
对数似然函数为:
l
(
θ
)
=
l
o
g
L
(
θ
)
l(\theta)=logL(\theta)
l(θ)=logL(θ)
=
∑
i
=
0
i
=
m
y
i
l
o
g
h
θ
(
x
i
)
+
(
1
−
y
i
)
l
o
g
(
1
−
h
θ
(
x
i
)
)
(
9
)
\quad \ \ =\sum_{i=0}^{i=m}y_ilog{h_\theta}(x_i)+(1-y_i)log(1-h_\theta(x_i))\quad(9)
=∑i=0i=myiloghθ(xi)+(1−yi)log(1−hθ(xi))(9)
我们的目标是使对数函数最大化,此时只能使用梯度上升的算法去求最大值,为了使用梯度下降算法。我们将式(9)变为如下形式(除以m是使误差不再依赖样本数量)
J
(
θ
)
=
−
1
m
[
∑
i
=
0
i
=
m
y
i
l
o
g
h
θ
(
x
i
)
+
(
1
−
y
i
)
l
o
g
(
1
−
h
θ
(
x
i
)
)
]
(
10
)
J(\theta)=-\frac{1}{m} [\sum_{i=0}^{i=m}y_ilog{h_\theta}(x_i)+(1-y_i)log(1-h_\theta(x_i))]\quad(10)
J(θ)=−m1[∑i=0i=myiloghθ(xi)+(1−yi)log(1−hθ(xi))](10)
此时的误差是由
θ
\theta
θ导致的,因此我们使用梯度下降更新
θ
\theta
θ:
θ
j
=
θ
j
−
α
∂
J
(
θ
)
∂
θ
j
\theta_j=\theta_j-\alpha \frac{\partial J(\theta)}{\partial \theta_j}
θj=θj−α∂θj∂J(θ)
∂
J
(
θ
)
∂
θ
j
=
−
1
m
∑
i
=
0
i
=
m
(
y
i
1
h
θ
(
x
i
)
∂
h
θ
(
x
i
)
∂
θ
j
−
(
1
−
y
i
)
1
1
−
h
θ
(
x
i
)
∂
(
x
i
)
∂
θ
j
)
\frac{\partial J(\theta)}{\partial \theta_j}=-\frac{1}{m}\sum_{i=0}^{i=m}(y_i\frac{1}{h_\theta(x_i)}\frac{\partial h_\theta(x_i)}{\partial \theta_j}-(1-y_i)\frac{1}{1-h_\theta(x_i)}\frac{\partial(x_i)}{\partial \theta_j})
∂θj∂J(θ)=−m1∑i=0i=m(yihθ(xi)1∂θj∂hθ(xi)−(1−yi)1−hθ(xi)1∂θj∂(xi))
=
−
1
m
∑
i
=
0
i
=
m
(
y
i
1
h
θ
(
x
i
)
−
(
1
−
y
i
)
1
1
−
h
θ
(
x
i
)
)
∂
h
θ
(
x
i
)
∂
θ
j
\qquad =-\frac{1}{m}\sum_{i=0}^{i=m}(y_i\frac{1}{h_\theta(x_i)}-(1-y_i)\frac{1}{1-h_\theta(x_i)})\frac{\partial h_\theta(x_i)}{\partial \theta_j}
=−m1∑i=0i=m(yihθ(xi)1−(1−yi)1−hθ(xi)1)∂θj∂hθ(xi)
=
−
1
m
∑
i
=
0
i
=
m
(
y
i
1
h
θ
(
x
i
)
−
(
1
−
y
i
)
1
1
−
h
θ
(
x
i
)
)
h
θ
(
x
j
i
)
(
1
−
h
θ
(
x
j
i
)
)
\qquad =-\frac{1}{m}\sum_{i=0}^{i=m}(y_i\frac{1}{h_\theta(x_i)}-(1-y_i)\frac{1}{1-h_\theta(x_i)})h_\theta(x^i_j)(1-h_\theta(x^i_j))
=−m1∑i=0i=m(yihθ(xi)1−(1−yi)1−hθ(xi)1)hθ(xji)(1−hθ(xji))
=
1
m
∑
i
=
0
i
=
m
(
h
θ
(
x
i
)
−
y
i
)
x
j
i
(
11
)
\qquad = \frac{1}{m}\sum_{i=0}^{i=m}(h_\theta(x_i)-y_i)x_j^i \quad(11)
=m1∑i=0i=m(hθ(xi)−yi)xji(11)
其中sigmoid函数求导的性质: ∂ f ( x ) ∂ x = f ( x ) ( 1 − f ( x ) ) \frac{\partial f(x)}{\partial x}=f(x)(1-f(x)) ∂x∂f(x)=f(x)(1−f(x))