逻辑回归算法,虽说名字有回归,实则是一个分类模型,而且是二分类。
Logistic本质上是一个基于条件概率的判别模型(Discriminative Model)
g(z) =
11+e−z
1
1
+
e
−
z
通过这个图像sigma函数,通常以0.5为分界,大于0.5为正样本,反之为负样本,是一个二分类的方法。
那么将这个函数扩展到多维空间,就是说不只是二分类,而是多分类问题,那么原始的函数
g(z) =
11+e−z
1
1
+
e
−
z
(二分类)
就要变成
hθ(x)=g(θTx)=11+e−θTx
h
θ
(
x
)
=
g
(
θ
T
x
)
=
1
1
+
e
−
θ
T
x
(多分类)
现在需要解决的一个问题是求
θ
θ
,如何得到合适的参数向量
θ
θ
根据sigma函数的特性,我们可以这样假设一下:
P(y=1|x;θ)=hθ(x)
P
(
y
=
1
|
x
;
θ
)
=
h
θ
(
x
)
(根据当前的参数,提供样本x,该样本属于y=1的概率)
P(y=0|x;θ)=1−hθ(x)
P
(
y
=
0
|
x
;
θ
)
=
1
−
h
θ
(
x
)
上两式为已知样本X和参数
θ
θ
的前提下,样本X属于正样本(y = 1) 负样本 (y = 0)的条件概率
然后将以上两个公式进行合并
P(y|x;θ)=(hθ(x))y(1−hθ(x))1−y
P
(
y
|
x
;
θ
)
=
(
h
θ
(
x
)
)
y
(
1
−
h
θ
(
x
)
)
1
−
y
这个公式也就是对二分类综合的公式,能分别求出属于正样本、负样本的概率
此时会用到最大似然估计的知识。最大似然估计的目的是:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。
既然概率出来了,那么最大似然估计也该使用了。假定样本与样本之间相互独立,那么整个样本集生成的概率即为所有样本生成概率的乘积:
L(θ)=p(y⃗ |X;θ)=∏mi=1(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i) L ( θ ) = p ( y → | X ; θ ) = ∏ i = 1 m ( h θ ( x ( i ) ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i )
为了简化问题,我们对整个表达式求对数(将指数问题对数化是处理数学问题常见的方法):
l(θ)=log L(θ)=∑mi=1log h(x(i))+(1−y(i))log(1−h(x(i))) l ( θ ) = l o g L ( θ ) = ∑ i = 1 m l o g h ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h ( x ( i ) ) )
满足似然函数 (θ) ( θ ) 的最大的 θ θ 值即是我们需要求解的模型。
梯度上升算法
Xi+1=Xi+α∗∂f(Xi)Xi
X
i
+
1
=
X
i
+
α
∗
∂
f
(
X
i
)
X
i
其中,
α
α
为步长。
回到Logistic Regression问题,我们同样对函数求偏导。
∂∂θjl(θ)=(y1g(θTx)−(1−y)11−g(θTx))∂∂θjg(θTx)=(y1g(θTx)−(1−y)11−g(θTx))g(θTx)(1−g(θTx))∂∂θjθTx=(y(1−g(θTx))−(1−y)g(θTx))xj=(y−hθ(x))xj
∂
∂
θ
j
l
(
θ
)
=
(
y
1
g
(
θ
T
x
)
−
(
1
−
y
)
1
1
−
g
(
θ
T
x
)
)
∂
∂
θ
j
g
(
θ
T
x
)
=
(
y
1
g
(
θ
T
x
)
−
(
1
−
y
)
1
1
−
g
(
θ
T
x
)
)
g
(
θ
T
x
)
(
1
−
g
(
θ
T
x
)
)
∂
∂
θ
j
θ
T
x
=
(
y
(
1
−
g
(
θ
T
x
)
)
−
(
1
−
y
)
g
(
θ
T
x
)
)
x
j
=
(
y
−
h
θ
(
x
)
)
x
j
对以上公式的详细过程:
∂∂θjl(θ)=∂l(θ)∂g(θTx)∗∂g(θTx)∂θTx∗∂θTx∂θj ∂ ∂ θ j l ( θ ) = ∂ l ( θ ) ∂ g ( θ T x ) ∗ ∂ g ( θ T x ) ∂ θ T x ∗ ∂ θ T x ∂ θ j
其中:
l(θ)=y∗log g(θTx)+(1−y)log(1−g(θTx))
l
(
θ
)
=
y
∗
l
o
g
g
(
θ
T
x
)
+
(
1
−
y
)
l
o
g
(
1
−
g
(
θ
T
x
)
)
∂l(θ)∂g(θTx)=y∗1g(θTx)+(1−y)∗11−g(θTx)∗(−1)
∂
l
(
θ
)
∂
g
(
θ
T
x
)
=
y
∗
1
g
(
θ
T
x
)
+
(
1
−
y
)
∗
1
1
−
g
(
θ
T
x
)
∗
(
−
1
)
令 z=θTx z = θ T x
g(z)′=ddz11+e−z=1(1+e−z)2(e−z)=1(1+e−z)∗(1−1(1+e−z))=g(z)(1−g(z)) g ( z ) ′ = d d z 1 1 + e − z = 1 ( 1 + e − z ) 2 ( e − z ) = 1 ( 1 + e − z ) ∗ ( 1 − 1 ( 1 + e − z ) ) = g ( z ) ( 1 − g ( z ) )
可得:
∂g(θTx)∂θTx=g(θTx)∗(1−g(θTx)) ∂ g ( θ T x ) ∂ θ T x = g ( θ T x ) ∗ ( 1 − g ( θ T x ) )
接下来就剩下第三部分:
∂θTx∂θj=∂(θ1x1+θ2x2+...+θmxm)∂θj=xj
∂
θ
T
x
∂
θ
j
=
∂
(
θ
1
x
1
+
θ
2
x
2
+
.
.
.
+
θ
m
x
m
)
∂
θ
j
=
x
j
(这个公式应该很容易理解,简单的偏导公式,只有第j项进行计算)
再有就是:
hθ(x)=g(θTx)=11+e−θTx h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x
综合第三部分即得到:
∂∂θjl(θ)=(y−hθ(x))xj
∂
∂
θ
j
l
(
θ
)
=
(
y
−
h
θ
(
x
)
)
x
j
因此,梯度迭代公式为:
θj:=θj+α(y(i)−hθ(x(i)))x(i)j
θ
j
:=
θ
j
+
α
(
y
(
i
)
−
h
θ
(
x
(
i
)
)
)
x
j
(
i
)
本篇文章参考了http://www.cnblogs.com/bonelee/p/7253508.html,并对齐进行了整理,思路更清晰直观。