逻辑回归(Logistic regression)是统计学习中经典的分类方法,其基本用法是用于二分类,但是也很容易推广到多分类。
1.逻辑函数(sigmoid 函数)
首先介绍一下sigmoid函数,其基本形式如下:
g
(
x
)
=
1
1
+
e
−
x
g(x)=\frac{1}{1+e^{-x}}
g(x)=1+e−x1
其图像如下
当z趋向无穷大时,g(z)趋向与1,当z趋向无穷小时,g(z)趋向于0。
通常,输入的样本是向量x,要学习的参数矩阵是w和b,样本的标记是
Y
∈
Y\in
Y∈{0,1}。此时回归模型如下
P
(
Y
=
1
∣
x
)
=
1
1
+
e
x
p
(
−
z
)
P(Y=1|x)=\frac{1}{1+exp(-z)}
P(Y=1∣x)=1+exp(−z)1
P
(
Y
=
0
∣
x
)
=
1
−
1
1
+
e
x
p
(
−
z
)
P(Y=0|x)=1-\frac{1}{1+exp(-z)}
P(Y=0∣x)=1−1+exp(−z)1
其中z=w*x,应学习到响应的参数矩阵w,使得标记为1的样本,其z值尽量大,标记为0的样本,其z值尽量小。学习的过程需要通过最优化损失函数来进行。下面简单介绍二分类中损失函数的定义。
逻辑回归模型是由一系列权值系数w决定的,问题关键就是如何获得这一组系数。通常是通过极大似然函数获得的。
似然函数是统计模型中参数的函数,也就是w中每一个系数的函数。当输出确定,也就是给定了每个样本的标签值y,关于参数w的似然函数L(w|y)数值上等于给定w,输出值为y的概率。因此当似然函数越大,其输出值为y的可信度越高,因此可以通过对似然函数取极大值来获得参数w的最优解。
逻辑回归模型学习时,对于训练集
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)},其中
y
i
∈
{
0
,
1
}
y_i\in\{0,1\}
yi∈{0,1},设
P
(
y
=
1
∣
x
)
=
p
(
x
i
)
P
(
y
=
0
∣
x
)
=
1
−
p
(
x
i
)
P(y=1|x)=p(x_i)\quad P(y=0|x)=1-p(x_i)
P(y=1∣x)=p(xi)P(y=0∣x)=1−p(xi)
则似然函数为
∏
i
=
1
n
[
p
(
x
)
]
y
i
[
1
−
p
(
x
)
]
1
−
y
i
\prod_{i=1}^{n}[p(x)]^{y_i}[1-p(x)]^{1-y_i}
i=1∏n[p(x)]yi[1−p(x)]1−yi
取对数为
∑
i
=
1
n
y
i
l
o
g
p
(
x
i
)
+
(
1
−
y
i
)
l
o
g
(
1
−
p
(
x
i
)
)
\sum_{i=1}^{n}y_ilogp(x_i)+(1-y_i)log(1-p(x_i))
i=1∑nyilogp(xi)+(1−yi)log(1−p(xi))
其中
p
(
x
i
)
=
1
1
+
e
x
p
(
w
∗
x
)
p(x_i)=\frac{1}{1+exp(w*x)}
p(xi)=1+exp(w∗x)1
对似然函数求最大值,即为对其求最小值
L
(
w
)
=
−
∑
i
=
1
n
(
y
i
l
o
g
π
(
x
i
)
+
(
1
−
y
i
)
l
o
g
(
1
−
π
(
x
i
)
)
L(w)=-\sum_{i=1}^{n}(y_ilog\pi(x_i)+(1-y_i)log(1-\pi(x_i))
L(w)=−i=1∑n(yilogπ(xi)+(1−yi)log(1−π(xi))
此即为logit loss函数,也叫交叉熵损失函数。对L(w)求最小值,即可得到w的参数估计。求最小值的方法有很多,如梯度下降法,牛顿法等等。
2. 多项逻辑回归
二项分类的逻辑回归很容易推广到多分类问题。设现在有一个n类分类问题,则可以构建一个n维标签向量
y
=
(
y
1
,
y
2
.
.
.
.
y
n
)
y=(y^1,y^2....y^n)
y=(y1,y2....yn),其中只有1个值
y
i
y^i
yi为1,其余都为0,表示该样本归于第i个分类。
对于单个样本,似然函数可以写成:
∏
i
=
1
n
p
i
(
x
)
y
i
\prod_{i=1}^np^i(x)^{y^i}
i=1∏npi(x)yi
其中
p
i
(
x
)
p^i(x)
pi(x)表示模型预测向量的第n个分量,由于
y
i
y^i
yi只有1个分量为1,其余为0,因此似然函数可以化简为
p
(
x
)
p(x)
p(x)
对于一共有N个样本的数据集,其似然函数为
∏
i
=
1
N
p
(
x
i
)
\prod_{i=1}^{N}p(x_i)
i=1∏Np(xi)
取对数得
L
(
w
)
=
∑
i
=
1
N
l
o
g
(
p
(
x
i
)
)
L(w)=\sum_{i=1}^Nlog(p(x_i))
L(w)=i=1∑Nlog(p(xi))其中对于每一个样本,其
p
(
x
i
)
p(x_i)
p(xi)为模型输出向量中,取值为1的对应第i个分量的值。
其中模型输出值
p
(
x
)
定
义
为
p(x)定义为
p(x)定义为:
p
(
x
i
)
=
e
x
p
(
w
∗
x
)
∑
j
=
1
n
e
x
p
(
w
∗
x
j
)
p(x^i) = \frac{exp(w*x)}{\sum_{j=1}^nexp(w*x^j)}
p(xi)=∑j=1nexp(w∗xj)exp(w∗x)
此为soft函数,其可以将模型输出变量进行归一化处理,对输出的值进行指数式放大或者缩小。
采用最优化方法求的L(W)对w矩阵的最小值,即可求得问题的解