该系列将整理机器学习相关知识。这篇博客主要讨论:
1 线性回归与最小二乘法
2 逻辑斯谛回归:逻辑斯谛回归的定义、损失函数、推导
3 广义线性模型
1 线性回归
线性回归的目的是用一条曲线拟合数据,常用于在房价、股票预测等。这里将从误差的概率分布解释线性回归。假设线性回归的预测值和真实值表示为:
yi=θTxi+εi
y
i
=
θ
T
x
i
+
ε
i
在线性回归中,假设误差
εi
ε
i
是独立同分布
(误差有大有小,并且服从正太分布),并且服从均值为0,方差为
θ2
θ
2
的高斯分布,则有:
p(εi)=12πδ‾‾‾‾√exp(−(εi)22δ2)
p
(
ε
i
)
=
1
2
π
δ
e
x
p
(
−
(
ε
i
)
2
2
δ
2
)
合并上面两个式子,则有
p(yi|xi;θ)=12πδ‾‾‾‾√exp(−(yi−θTxi)22δ2)
p
(
y
i
|
x
i
;
θ
)
=
1
2
π
δ
e
x
p
(
−
(
y
i
−
θ
T
x
i
)
2
2
δ
2
)
假设样本集合大小为m,可以用极大似然估计对参数 θ θ 进行估计,在线性回归中似然函数可以表示为:
L(θ)=∏i=1m(p(yi|xi;θ)=∏i=1m12πδ‾‾‾‾√exp(−(yi−θTxi)22δ2)
L
(
θ
)
=
∏
i
=
1
m
(
p
(
y
i
|
x
i
;
θ
)
=
∏
i
=
1
m
1
2
π
δ
e
x
p
(
−
(
y
i
−
θ
T
x
i
)
2
2
δ
2
)
对数似然函数(将乘法转换为加法):
l(θ)=∑i=1mlog12πδ‾‾‾‾√exp(−(yi−θTxi)22δ2)
l
(
θ
)
=
∑
i
=
1
m
log
1
2
π
δ
e
x
p
(
−
(
y
i
−
θ
T
x
i
)
2
2
δ
2
)
=mlog(12πδ‾‾‾‾√)−12δ2∑i=1m(yi−θTxi)2
=
m
log
(
1
2
π
δ
)
−
1
2
δ
2
∑
i
=
1
m
(
y
i
−
θ
T
x
i
)
2
由上式子可以得到目标函数(求极小值):
J(θ)=12∑i=1m(yi−θTxi)2
J
(
θ
)
=
1
2
∑
i
=
1
m
(
y
i
−
θ
T
x
i
)
2
这个式子就是 线性回归的最小二乘法。
2 logistic regression
2.1 模型假设
逻辑斯谛回归是一种用于分类的机器学习算法,虽然叫回归,但实际上是用来做分类的,其本质上是一种线性模型。其假设模型是:
hθ(x)=g(θTx)
h
θ
(
x
)
=
g
(
θ
T
x
)
其中, g(z)=11+e−z g ( z ) = 1 1 + e − z ,则有:
hθ(x)=11+e−θTx
h
θ
(
x
)
=
1
1
+
e
−
θ
T
x
其中, hθ(x) h θ ( x ) 表示分类为正样本的概率,即 hθ(x)=p(y=1|x;θ) h θ ( x ) = p ( y = 1 | x ; θ ) 。以上只是得出了样本点是正例的概率,到底预测它是正例还是负例,我们还需要一个
decision boundary
,例如:
hθ(x)≥0.5→y=1 hθ(x)<0.5→y=0
h
θ
(
x
)
≥
0.5
→
y
=
1
h
θ
(
x
)
<
0.5
→
y
=
0
由逻辑斯谛函数的性质,可得到:
θTx≥0→y=1,θTx<0→y=0
θ
T
x
≥
0
→
y
=
1
,
θ
T
x
<
0
→
y
=
0
2.2 极大似然估计
二元分类可以看成一个伯努利分布,即0-1分布,上面提到
p(y=1|x;θ)=hθ(x)
p
(
y
=
1
|
x
;
θ
)
=
h
θ
(
x
)
p(y=0|x;θ)=1−hθ(x)
p
(
y
=
0
|
x
;
θ
)
=
1
−
h
θ
(
x
)
合并上述式子则有:
p(y|x;θ)=(hθ(x))y(1−hθ(xi))(1−y)
p
(
y
|
x
;
θ
)
=
(
h
θ
(
x
)
)
y
(
1
−
h
θ
(
x
i
)
)
(
1
−
y
)
由极大释然估计,假设所有样本独立同分部,将它们的概率相乘得到似然函数:
L(θ)=∏i=1m((hθ(xi))yi(1−hθ(xi))(1−yi))
L
(
θ
)
=
∏
i
=
1
m
(
(
h
θ
(
x
i
)
)
y
i
(
1
−
h
θ
(
x
i
)
)
(
1
−
y
i
)
)
取对数得到对数似然函数:
l(θ)=∑i=1m(yilog(hθ(xi))+(1−yi)(1−hθ(xi)))
l
(
θ
)
=
∑
i
=
1
m
(
y
i
log
(
h
θ
(
x
i
)
)
+
(
1
−
y
i
)
(
1
−
h
θ
(
x
i
)
)
)
2.3 逻辑回归的损失函数
逻辑斯谛回归的损失函数定义为:
J(θ)=1m∑i=1m(Cost(hθ(xi)),yi)
J
(
θ
)
=
1
m
∑
i
=
1
m
(
C
o
s
t
(
h
θ
(
x
i
)
)
,
y
i
)
其中:
Cost(hθ(x),y)=−log(hθ(x)) if y=1 ;Cost(hθ(x),y)=−log(1−hθ(x)) if y=0
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
log
(
h
θ
(
x
)
)
i
f
y
=
1
;
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
log
(
1
−
h
θ
(
x
)
)
i
f
y
=
0
结合两个式子,则简写为:
Cost(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x))
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
y
log
(
h
θ
(
x
)
)
−
(
1
−
y
)
log
(
1
−
h
θ
(
x
)
)
用图像表示为:
![](http://7xnzwk.com1.z0.glb.clouddn.com/15259312368518.jpg)
可以直观的看到,就是概率预测的和标签越接近惩罚越小,反之越大。当然,这里讲的只是二元分类,标签不是0就是1.
最后,逻辑回归的损失函数为
J(θ)=−1m∑i=1m(yilog(hθ(xi))+(1−yi)log(1−hθ(xi))
J
(
θ
)
=
−
1
m
∑
i
=
1
m
(
y
i
log
(
h
θ
(
x
i
)
)
+
(
1
−
y
i
)
log
(
1
−
h
θ
(
x
i
)
)
2.4 梯度下降优化过程
使用梯度下降进行优化:
θj=θj−α∂J(θ)∂θj
θ
j
=
θ
j
−
α
∂
J
(
θ
)
∂
θ
j
其中:
J(θ)=−1m∑i=1m(yilog(g(z))+(1−yi)log(1−g(z))
J
(
θ
)
=
−
1
m
∑
i
=
1
m
(
y
i
log
(
g
(
z
)
)
+
(
1
−
y
i
)
log
(
1
−
g
(
z
)
)
∂J(θ)∂θj=−1m∑i=1m(yig(z)∂g(z)θj−1−yi1−g(z)∂g(z)θj)
∂
J
(
θ
)
∂
θ
j
=
−
1
m
∑
i
=
1
m
(
y
i
g
(
z
)
∂
g
(
z
)
θ
j
−
1
−
y
i
1
−
g
(
z
)
∂
g
(
z
)
θ
j
)
=−1m∑i=1myi−g(z)g(z)(1−g(z))∂g(z)θj
=
−
1
m
∑
i
=
1
m
y
i
−
g
(
z
)
g
(
z
)
(
1
−
g
(
z
)
)
∂
g
(
z
)
θ
j
∂g(z)θj=g(z)(1−g(z)xij
∂
g
(
z
)
θ
j
=
g
(
z
)
(
1
−
g
(
z
)
x
j
i
带入上式即可都得到
∂J(θ)∂θj=1m∑i=1m(hθ(xi)−yi)xij
∂
J
(
θ
)
∂
θ
j
=
1
m
∑
i
=
1
m
(
h
θ
(
x
i
)
−
y
i
)
x
j
i
这就是逻辑斯谛回归的梯度下降更新式子:
θj=θj−α1m∑i=1m(hθ(xi)−yi)xij
θ
j
=
θ
j
−
α
1
m
∑
i
=
1
m
(
h
θ
(
x
i
)
−
y
i
)
x
j
i
3 广义线性模型GLM
讨论广义线性模型之前,先问下为什么逻辑斯谛回归中要使用sigmod(x)函数
?
本质上,线性回归和逻辑回归都是广义线性模型的特例。具体推导参考知乎文章广义线性模型和为什么 LR 模型要使用 sigmoid 函数,背后的数学原理是什么?