赞
踩
逻辑回归(Logistic Regression)是统计中经典的二分类算法,逻辑回归模型如下:
P
(
Y
=
1
∣
x
)
=
e
x
p
(
w
⋅
x
)
1
+
e
x
p
(
w
⋅
x
)
(1)
P(Y=1|x)=\frac{exp(w·x)}{1+exp(w·x)}\tag{1}
P(Y=1∣x)=1+exp(w⋅x)exp(w⋅x)(1)
P ( Y = 0 ∣ x ) = 1 1 + e x p ( w ⋅ x ) (2) P(Y=0|x)=\frac{1}{1+exp(w·x)}\tag{2} P(Y=0∣x)=1+exp(w⋅x)1(2)
其中,输入 x = { x ( 1 ) , x ( 2 ) , . . . , x ( n ) , 1 } x=\{x^{(1)},x^{(2)},...,x^{(n)},1\} x={x(1),x(2),...,x(n),1},输出 Y ∈ [ 0 , 1 ] Y\in[0,1] Y∈[0,1], w = { w ( 1 ) , w ( 2 ) , . . . , w ( n ) , b } w=\{w^{(1)},w^{(2)},...,w^{(n)},b\} w={w(1),w(2),...,w(n),b}。对于给定的 x x x,可以求条件概率 P ( Y = 1 ∣ x ) P(Y=1|x) P(Y=1∣x)和 P ( Y = 0 ∣ x ) P(Y=0|x) P(Y=0∣x)的值,逻辑回归比较两个结果的大小,将 x x x分到概率值较大的一类。
将上面的(1)式进行变换有
P
(
Y
=
1
∣
x
)
=
e
x
p
(
w
⋅
x
)
1
+
e
x
p
(
w
⋅
x
)
=
1
1
+
e
x
p
(
−
w
⋅
x
)
(3)
P(Y=1|x)=\frac{exp(w·x)}{1+exp(w·x)}=\frac{1}{1+exp(-w·x)}\tag{3}
P(Y=1∣x)=1+exp(w⋅x)exp(w⋅x)=1+exp(−w⋅x)1(3)
从(3)可以看出逻辑回归就是在线性回归的基础上加了个
s
i
g
m
o
i
d
sigmoid
sigmoid函数(
f
(
x
)
=
1
1
+
e
−
x
f(x)=\frac{1}{1+e^{-x}}
f(x)=1+e−x1)
几率(odds):指该事件发生的概率与该事件不发生的概率的比值,即
o
d
d
s
=
p
1
−
p
odds=\frac{p}{1-p}
odds=1−pp,其中
p
p
p为事件发生的概率。该事件的对数几率或
l
o
g
i
t
logit
logit函数是:
l
o
g
i
t
(
p
)
=
l
o
g
p
1
−
p
(4)
logit(p)=log\frac{p}{1-p}\tag{4}
logit(p)=log1−pp(4)
将逻辑回归模型的公式(1)和(2)带入(4)可得
l
o
g
P
(
Y
=
1
∣
x
)
1
−
P
(
Y
=
1
∣
x
)
=
l
o
g
P
(
Y
=
1
∣
x
)
P
(
Y
=
0
∣
x
)
=
w
⋅
x
(5)
log\frac{P(Y=1|x)}{1-P(Y=1|x)}=log\frac{P(Y=1|x)}{P(Y=0|x)}=w·x\tag{5}
log1−P(Y=1∣x)P(Y=1∣x)=logP(Y=0∣x)P(Y=1∣x)=w⋅x(5)
从式(5)可以看出,在逻辑回归模型中,
Y
=
1
Y=1
Y=1的对数几率是关于
x
x
x的线性函数。
也就是说在线性回归模型中,输出 Y Y Y是关于输入 x x x的线性模型,在逻辑回归模型中输出 Y Y Y的几率是关于 x x x的线性模型。
线性函数 w ⋅ x w·x w⋅x的值域为实数域,通过式(1)将线性函数转换为概率, w ⋅ x w·x w⋅x的值越大概率值就越接近1, w ⋅ x w·x w⋅x的值越小概率值就越接近0。
给定数据集
T
=
{
(
x
1
,
y
1
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T=\{(x_1,y_1),...,(x_N,y_N)\}
T={(x1,y1),...,(xN,yN)},令
P
(
Y
=
1
∣
x
)
=
p
(
x
)
P(Y=1|x)=p(x)
P(Y=1∣x)=p(x),利用极大似然估计求解模型参数
w
w
w,似然函数为:
L
(
w
)
=
∏
i
=
1
N
[
p
(
x
i
)
]
y
i
[
1
−
p
(
x
i
)
]
1
−
y
i
(6)
L(w)=\prod_{i=1}^{N}[p(x_i)]^{y_i}[1-p(x_i)]^{1-y_i}\tag{6}
L(w)=i=1∏N[p(xi)]yi[1−p(xi)]1−yi(6)
对数似然函数为:
l
o
g
L
(
w
)
=
∑
i
=
1
N
[
y
i
l
o
g
p
(
x
i
)
+
(
1
−
y
i
)
l
o
g
(
1
−
p
(
x
i
)
)
]
=
∑
i
=
1
N
[
y
i
l
o
g
p
(
x
i
)
1
−
p
(
x
i
)
+
l
o
g
(
1
−
p
(
x
i
)
)
]
=
∑
i
=
1
N
[
y
i
(
w
⋅
x
i
)
−
l
o
g
(
1
+
e
x
p
(
w
⋅
x
i
)
)
]
(7)
logL(w)=\sum_{i=1}^{N}[{y_i}logp(x_i)+(1-y_i)log(1-p(x_i))]\\ =\sum_{i=1}^{N}[{y_i}log\frac{p(x_i)}{1-p(x_i)}+log(1-p(x_i))]\\ =\sum_{i=1}^{N}[{y_i}(w·x_i)-log(1+exp(w·x_i))]\tag{7}
logL(w)=i=1∑N[yilogp(xi)+(1−yi)log(1−p(xi))]=i=1∑N[yilog1−p(xi)p(xi)+log(1−p(xi))]=i=1∑N[yi(w⋅xi)−log(1+exp(w⋅xi))](7)
求解
l
o
g
L
(
w
)
logL(w)
logL(w)的极大值,得到
w
w
w的估计值。
损失函数一般是越小越好,所以取负对数似然,防止求和之后数值过大,再取个平均,损失函数如下:
min
w
J
(
w
)
=
−
1
N
l
o
g
L
(
w
)
=
−
1
N
∑
i
=
1
N
[
y
i
l
o
g
p
(
x
i
)
+
(
1
−
y
i
)
l
o
g
(
1
−
p
(
x
i
)
)
]
=
−
1
N
∑
i
=
1
N
[
y
i
(
w
⋅
x
i
)
−
l
o
g
(
1
+
e
x
p
(
w
⋅
x
i
)
)
]
(8)
\min_wJ(w)=-\frac{1}{N}logL(w)=-\frac{1}{N}\sum_{i=1}^{N}[{y_i}logp(x_i)+(1-y_i)log(1-p(x_i))]\\ =-\frac{1}{N}\sum_{i=1}^{N}[{y_i}(w·x_i)-log(1+exp(w·x_i))]\tag{8}
wminJ(w)=−N1logL(w)=−N1i=1∑N[yilogp(xi)+(1−yi)log(1−p(xi))]=−N1i=1∑N[yi(w⋅xi)−log(1+exp(w⋅xi))](8)
有了损失函数,采用梯度下降算法求参数
w
w
w:
∇
J
(
w
)
=
∂
J
(
w
)
∂
w
w
=
w
−
α
∇
J
(
w
)
(9)
\nabla J(w)=\frac{\partial J(w)}{\partial w}\\ w=w-{\alpha}\nabla J(w)\tag{9}
∇J(w)=∂w∂J(w)w=w−α∇J(w)(9)
上面说的逻辑回归适用于二分类,如果遇到多分类任务就要用到多项逻辑回归。
假设因变量
Y
∈
{
1
,
2
,
.
.
.
,
K
}
Y\in\{1,2,...,K\}
Y∈{1,2,...,K},那么多项逻辑回归模型为:
P
(
Y
=
k
∣
x
)
=
e
x
p
(
w
k
⋅
x
)
1
+
∑
j
=
1
K
−
1
e
x
p
(
w
j
⋅
x
)
,
k
∈
1
,
.
.
.
,
K
−
1
P
(
Y
=
K
∣
x
)
=
1
1
+
∑
j
=
1
K
−
1
e
x
p
(
w
j
⋅
x
)
(10)
P(Y=k|x)=\frac{exp(w_k·x)}{1+\sum_{j=1}^{K-1}exp(w_j·x)},k\in1,...,K-1\\ P(Y=K|x)=\frac{1}{1+\sum_{j=1}^{K-1}exp(w_j·x)}\tag{10}
P(Y=k∣x)=1+∑j=1K−1exp(wj⋅x)exp(wk⋅x),k∈1,...,K−1P(Y=K∣x)=1+∑j=1K−1exp(wj⋅x)1(10)
其中,
x
∈
R
n
+
1
,
w
j
,
w
k
∈
R
n
+
1
x\in R^{n+1},w_j,w_k\in R^{n+1}
x∈Rn+1,wj,wk∈Rn+1。其实多项逻辑回归就是把逻辑回归中的
s
i
g
m
o
i
d
sigmoid
sigmoid函数换成了
s
o
f
t
m
a
x
softmax
softmax,多项逻辑回归可以表示为:
p
(
Y
=
k
∣
x
)
=
e
x
p
(
w
k
⋅
x
)
∑
j
=
1
K
e
x
p
(
w
j
⋅
x
)
,
k
∈
1
,
.
.
.
,
K
(11)
p(Y=k|x)=\frac{exp(w_k·x)}{\sum_{j=1}^{K}exp(w_j·x)},k\in1,...,K\tag{11}
p(Y=k∣x)=∑j=1Kexp(wj⋅x)exp(wk⋅x),k∈1,...,K(11)
当
j
=
K
j=K
j=K时,
e
x
p
(
w
K
⋅
x
)
=
1
exp(w_K·x)=1
exp(wK⋅x)=1,就是(10)式了。
多项逻辑回归实际上是二分类逻辑回归在多标签分类下的一种拓展。
若某个样本属于多个标签,可以训练 k k k个二分类的逻辑回归分类器。第 i i i个分类器用以区分每个样本是否可以归为第 i i i类,训练该分类器时,需要把标签重新整理为“第 i i i类标签”与“非第 i i i类标签”两类。通过这样的办法,就解决了每个样本可能拥有多个标签的情况。
逻辑回归引入softmax函数,使输出值与模型参数之间的关系不再是线性关系。此时如果选择与线性回归一样的平方损失函数,就会导致cost function可能是非凸函数。对于非凸函数进行梯度下降法,会导致陷入局部最优情况。选择对数损失函数,会使这个函数变成凸函数。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。