逻辑回归是线性回归的拓展形式,主要用来解决二分类问题 ( 0 / 1 ) (0/1) (0/1)。
线性回归
线性回归公式:
θ
T
x
=
θ
1
x
+
θ
2
x
+
…
…
+
θ
n
x
\theta ^{T}x=\theta _{1}x+\theta _{2}x+……+\theta _{n}x
θTx=θ1x+θ2x+……+θnx
其中
x
∈
R
n
x\in R^{n}
x∈Rn。
逻辑回归
将线性函数的输出压缩进区间
(
0
,
1
)
(0, 1)
(0,1)。
该值可以解释为概率:
P
(
y
∣
x
;
θ
)
=
σ
(
θ
T
x
)
P{(y|x;\theta)}=\sigma_{(\theta ^{T}x)}
P(y∣x;θ)=σ(θTx)
其中
σ
(
)
\sigma_{()}
σ()函数被称为
s
i
g
m
o
i
d
sigmoid
sigmoid函数或
l
o
g
i
s
t
i
c
logistic
logistic函数,其表达式为:
σ
(
x
)
=
1
1
+
e
−
x
\sigma_{(x)}=\frac{1}{1+e^{-x}}
σ(x)=1+e−x1
其图像为:
逻辑斯蒂回归模型
逻辑斯蒂回归模型是如下的条件概率分布:
P
(
Y
=
1
∣
x
)
=
e
ω
x
+
b
1
+
e
ω
x
+
b
P{(Y=1|x)}=\frac{e^{\omega x+b}}{1+e^{\omega x+b}}
P(Y=1∣x)=1+eωx+beωx+b
P
(
Y
=
0
∣
x
)
=
1
1
+
e
ω
x
+
b
P{(Y=0|x)}=\frac{1}{1+e^{\omega x+b}}
P(Y=0∣x)=1+eωx+b1
其中,
x
∈
R
n
x\in R^{n}
x∈Rn是输入,
Y
∈
[
0
,
1
]
Y\in [0,1]
Y∈[0,1]是输出,权重向量
ω
∈
R
n
\omega \in R^{n}
ω∈Rn,偏置
b
∈
R
b\in R
b∈R。
为了简化等式,将权重向量和输入向量加以扩充,仍记作
ω
,
x
\omega ,x
ω,x,即
ω
=
(
ω
(
1
)
,
ω
(
2
)
,
…
,
ω
(
n
)
,
b
)
T
,
x
=
(
x
(
1
)
,
x
(
2
)
,
…
,
x
(
n
)
,
1
)
T
\omega=(\omega^{(1)},\omega^{(2)},…,\omega^{(n)},b)^{T},x=(x^{(1)},x^{(2)},…,x^{(n)},1)^{T}
ω=(ω(1),ω(2),…,ω(n),b)T,x=(x(1),x(2),…,x(n),1)T。这时,逻辑斯蒂回归模型为:
P
(
Y
=
1
∣
x
)
=
e
ω
x
1
+
e
ω
x
P{(Y=1|x)}=\frac{e^{\omega x}}{1+e^{\omega x}}
P(Y=1∣x)=1+eωxeωx
P
(
Y
=
0
∣
x
)
=
1
1
+
e
ω
x
P{(Y=0|x)}=\frac{1}{1+e^{\omega x}}
P(Y=0∣x)=1+eωx1
记
P
(
Y
=
1
∣
x
)
=
π
(
x
)
,
P
(
Y
=
0
∣
x
)
=
1
−
π
(
x
)
P{(Y=1|x)}=\pi_{(x)},P{(Y=0|x)}=1-\pi_{(x)}
P(Y=1∣x)=π(x),P(Y=0∣x)=1−π(x)。
对于给定的训练数据集
T
=
[
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
N
,
y
N
)
]
T=[(x_{1}, y_{1}),(x_{2}, y_{2}),…,(x_{N}, y_{N})]
T=[(x1,y1),(x2,y2),…,(xN,yN)],其中,
x
i
∈
R
n
x_{i}\in R^{n}
xi∈Rn,
y
i
∈
[
0
,
1
]
y_{i}\in [0,1]
yi∈[0,1],可以运用极大似然估计法估计模型参数
ω
\omega
ω。
因为
P
(
Y
=
1
∣
x
)
=
π
(
x
)
,
P
(
Y
=
0
∣
x
)
=
1
−
π
(
x
)
P{(Y=1|x)}=\pi_{(x)},P{(Y=0|x)}=1-\pi_{(x)}
P(Y=1∣x)=π(x),P(Y=0∣x)=1−π(x),则似然函数为:
L
(
ω
)
=
∏
i
=
1
N
[
π
(
x
i
)
]
y
i
[
1
−
π
(
x
i
)
]
1
−
y
i
L_{(\omega)}=\prod^{N}_{i=1}[\pi_{(x_{i})}]^{y_{i}}[1-\pi_{(x_{i})}]^{1-y_{i}}
L(ω)=i=1∏N[π(xi)]yi[1−π(xi)]1−yi
取对数得:
L
(
ω
)
=
∑
i
=
1
N
[
y
i
l
o
g
(
π
(
x
i
)
)
+
(
1
−
y
i
)
l
o
g
(
1
−
π
(
x
i
)
)
]
L_{(\omega)}=\sum^{N}_{i=1}[y_{i}log(\pi_{(x_{i})})+(1-y_{i})log(1-\pi_{(x_{i})})]
L(ω)=i=1∑N[yilog(π(xi))+(1−yi)log(1−π(xi))]
=
∑
i
=
1
N
[
y
i
l
o
g
π
(
x
i
)
1
−
π
(
x
i
)
+
l
o
g
(
1
−
π
(
x
i
)
)
]
=\sum^{N}_{i=1}[y_{i}log\frac{\pi_{(x_{i})}}{1-\pi_{(x_{i})}}+log(1-\pi_{(x_{i})})]
=i=1∑N[yilog1−π(xi)π(xi)+log(1−π(xi))]
=
∑
i
=
1
N
[
y
i
(
ω
x
i
)
−
l
o
g
(
1
+
e
ω
x
i
)
]
=\sum^{N}_{i=1}[y_{i}(\omega x_{i})-log(1+e^{\omega x_{i}})]
=i=1∑N[yi(ωxi)−log(1+eωxi)]
对
L
(
ω
)
L_{(\omega)}
L(ω)求极大值,得到
ω
\omega
ω的估计值。
∂
L
(
ω
)
∂
ω
=
∑
i
=
1
N
[
y
i
x
i
−
e
ω
x
i
1
+
e
ω
x
i
x
i
]
=
0
\frac{\partial L_{(\omega)}}{\partial \omega}=\sum^{N}_{i=1}[y_{i}x_{i}-\frac{e^{\omega x_{i}}}{1+e^{\omega x_{i}}}x_{i}]=0
∂ω∂L(ω)=i=1∑N[yixi−1+eωxieωxixi]=0
而这是一个超越方程,不可解。
对于求极大值问题,可以转化为求其负数的极小值问题,并使用梯度下降法求得最优解。
此处,
∂
L
(
ω
)
∂
ω
\frac{\partial L_{(\omega)}}{\partial \omega}
∂ω∂L(ω)即为梯度。
设初始
ω
\omega
ω为
ω
0
\omega_{0}
ω0,则:
ω
1
=
ω
0
−
α
∂
L
(
ω
0
)
∂
ω
0
\omega_{1}=\omega_{0}-\alpha \frac{\partial L_{(\omega_{0})}}{\partial \omega_{0}}
ω1=ω0−α∂ω0∂L(ω0)
循环不断更新
ω
\omega
ω知道取得最优值。
而此时每计算一次梯度都需要遍历一遍样本,计算量十分巨大,占用内存过大。
所以,对于大规模样本,可以使用随机梯度下降法
(
S
G
D
)
(SGD)
(SGD),即每次只取总样本中的
b
a
t
c
h
batch
batch个样本进行一次梯度下降,其优点为更新梯度更快,占用内存更少。