应用背景
该模型解决的是二分类问题,即 y ∈ { 0 , 1 } y\in \{0,1\} y∈{0,1},对数据做出的假设为伯努利分布,假设取1的真实概率为 ϕ \phi ϕ,目标为寻找到合适的 ϕ \phi ϕ,使得预测分布接近真实分布。公式如下所示:
p
(
y
=
1
/
x
;
θ
)
=
ϕ
p
(
y
=
0
/
x
;
θ
)
=
1
−
ϕ
\begin{matrix} p(y=1/x;\theta)=\phi\\ p(y=0/x;\theta)=1-\phi \end{matrix}
p(y=1/x;θ)=ϕp(y=0/x;θ)=1−ϕ
上述公式合二为一,即为所求的条件概率:
p
(
y
/
x
;
θ
)
=
ϕ
y
(
1
−
ϕ
)
1
−
y
p(y/x;\theta)=\phi^y(1-\phi)^{1-y}
p(y/x;θ)=ϕy(1−ϕ)1−y
求解过程
上述
ϕ
\phi
ϕ的函数公式为如下公式,也就是sigmoid函数,
ϕ
=
h
θ
(
x
)
=
1
1
+
e
x
p
(
−
θ
T
x
)
\phi = h_{\theta}(x)=\frac{1}{1+exp(-\theta^Tx)}
ϕ=hθ(x)=1+exp(−θTx)1
函数图示为
将上面公式带入条件概率公式可得:
p
(
y
/
x
;
θ
)
=
ϕ
y
(
1
−
ϕ
)
1
−
y
=
h
θ
(
x
)
y
(
1
−
h
θ
(
x
)
)
1
−
y
p(y/x;\theta)=\phi^y(1-\phi)^{1-y}=h_{\theta }(x)^y(1-h_{\theta}(x))^{1-y}
p(y/x;θ)=ϕy(1−ϕ)1−y=hθ(x)y(1−hθ(x))1−y
根据极大似然函数,求解目标为:
L
(
θ
)
=
∏
i
=
1
m
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
L(\theta)= \prod_{i=1}^{m}p\left ( y^{(i)}|x^{(i)} ;\theta \right )
L(θ)=i=1∏mp(y(i)∣x(i);θ)
将条件概率公式带入极大似然函数得到如下公式,
L
(
θ
)
=
∏
i
=
1
N
P
(
y
(
i
)
/
x
(
i
)
;
θ
)
=
∏
i
=
1
N
[
h
θ
(
x
(
i
)
)
y
(
i
)
(
1
−
h
θ
(
x
(
i
)
)
)
1
−
y
(
i
)
]
L(\theta)=\prod_{i=1}^{N}P(y^{(i)}/x^{(i)};\theta ) = \prod_{i=1}^{N} \left [h_{\theta }(x^{(i)})^{y{(i)}}(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}} \right ]
L(θ)=i=1∏NP(y(i)/x(i);θ)=i=1∏N[hθ(x(i))y(i)(1−hθ(x(i)))1−y(i)]
公式取log得到如下公式:
l
o
g
L
(
θ
)
=
∑
i
=
1
N
[
y
(
i
)
l
o
g
h
θ
(
x
(
i
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
]
logL(\theta) = \sum_{i=1}^{N}\left [ y^{(i)}logh_{\theta }(x^{(i)}) +({1-y^{(i)}})log(1-h_{\theta}(x^{(i)})) \right ]
logL(θ)=i=1∑N[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]
求取上述公式的最大值,即可求得合适的
θ
\theta
θ,进而求得合适的
ϕ
\phi
ϕ,求最大值即寻找上述公式导数为0的点,因而问题转换为求取上述公式的导数,其中sigmoid函数的导数为(这里设
z
=
θ
T
x
z=\theta^Tx
z=θTx):
h
′
(
z
)
=
∂
∂
z
1
1
+
e
−
z
=
1
(
1
+
e
−
z
)
2
e
−
z
=
1
(
1
+
e
−
z
)
(
1
−
1
(
1
+
e
−
z
)
)
=
h
(
z
)
(
1
−
h
(
z
)
)
h'(z)=\frac{\partial }{\partial z}\frac{1}{1+e^{-z}}=\frac{1}{(1+e^{-z})^2}e^{-z}=\frac{1}{(1+e^{-z})}(1-\frac{1}{(1+e^{-z})})=h(z)(1-h(z))
h′(z)=∂z∂1+e−z1=(1+e−z)21e−z=(1+e−z)1(1−(1+e−z)1)=h(z)(1−h(z))
将上述公式带入
l
o
g
L
(
θ
)
logL(\theta)
logL(θ)(取值
l
(
θ
)
l(\theta)
l(θ))的求导过程,公式如下:
∂
l
(
θ
)
∂
θ
j
=
(
y
1
h
(
θ
T
x
)
−
(
1
−
y
)
1
1
−
h
(
θ
T
x
)
)
∂
∂
θ
j
h
(
θ
T
x
)
=
(
y
1
h
(
θ
T
x
)
−
(
1
−
y
)
1
1
−
h
(
θ
T
x
)
)
h
(
θ
T
x
)
(
1
−
h
(
θ
T
x
)
)
∂
∂
θ
j
θ
T
x
=
(
y
(
1
−
h
(
θ
T
x
)
)
−
(
1
−
y
)
h
(
θ
T
x
)
)
x
j
=
(
y
−
h
θ
(
x
)
)
x
j
\frac{\partial l(\theta )}{\partial \theta _j}=(y\frac{1}{h(\theta ^Tx)}-(1-y)\frac{1}{1-h(\theta ^Tx)})\frac{\partial }{\partial \theta _j}h(\theta ^Tx)= (y\frac{1}{h(\theta ^Tx)}-(1-y)\frac{1}{1-h(\theta ^Tx)})h(\theta^Tx)(1-h(\theta^Tx))\frac{\partial }{\partial \theta_j}\theta^Tx= (y(1-h(\theta^Tx))-(1-y)h(\theta^Tx))x_j= (y-h_\theta(x))x_j
∂θj∂l(θ)=(yh(θTx)1−(1−y)1−h(θTx)1)∂θj∂h(θTx)=(yh(θTx)1−(1−y)1−h(θTx)1)h(θTx)(1−h(θTx))∂θj∂θTx=(y(1−h(θTx))−(1−y)h(θTx))xj=(y−hθ(x))xj
利用随机梯度下降法,迭代更新参数,公式如下,经过有限次迭代之后得到
θ
\theta
θ的最终取值:
θ
j
:
=
θ
j
+
α
(
y
(
i
)
−
h
θ
(
x
(
i
)
)
)
x
j
(
i
)
\theta_j := \theta_j+\alpha(y^{(i)}-h_{\theta}(x^{(i)}))x_j^{(i)}
θj:=θj+α(y(i)−hθ(x(i)))xj(i)
其中 α \alpha α指的是学习率。
常见知识点
并行化
根据上述梯度更新的公式,将数据集分块分别计算即可实现并行化。
特征重复n份对整体结果的影响
基本没有影响,对特征重复n份之后相当于把一个特征平均分成n份,且这些特征的权重也会被平均分成n份。