赞
踩
逻辑回归虽然名字中带有回归,但是并不是一个回归模型,而是一个分类模型。逻辑回归的目的就是解决分类问题,最常用的就是解决二分类问题。
逻辑回归(Logistic Regression)与线性回归(Linear Regression)都是一种广义线性模型(generalized linear model)。逻辑回归假设因变量 y 服从伯努利分布,而线性回归假设因变量 y 服从高斯分布。 因此与线性回归有很多相同之处,去除Sigmoid映射函数的话,逻辑回归算法就是一个线性回归。可以说,逻辑回归是以线性回归为理论支持的,但是逻辑回归通过Sigmoid函数引入了非线性因素,因此可以轻松处理0/1分类问题。
这广义线性模型家族中的模型形式基本上都差不多,不同的就是因变量不同。
1.寻找一个合适的预测函数,一般是h函数(即hypothesis函数)。这个函数就是我们要找分类函数,用来预测输入数据的判断结果。这个过程很重要,需要对数据有一定的了解和分析,知道或猜测函数大概的形式,比如说是线性函数还是非线性函数。
2.构造一个Cost函数(即损失函数),该函数用来表示预测函数(h)与训练数据类别(y)之间的偏差,可以将二者之间的差(h-y)或者差平方
(
h
−
y
)
2
(h-y)^2
(h−y)2或者其他的形式。综合考虑所有的训练数据的“损失”,将Cost求和或者求平均,记为
J
(
θ
)
J(\theta)
J(θ)函数,表示所有的训练数据预测值与实际类别的偏差。
3.想办法使得
J
(
θ
)
J(\theta)
J(θ)最小并且求得最佳参数。
J
(
θ
)
J(\theta)
J(θ)函数的值越小,表示预测函数越准确(即h函数越准确),所以要找到
J
(
θ
)
J(\theta)
J(θ)函数的最小值。找函数的最小值有不同的方法,这里使用的是梯度下降法(Gradient Descent)。
逻辑回归是一个分类方法,用于解决分类问题,常用于解决二分类问题,即输出类别有两种。在这里,我们要选用Sigmoid函数即:
g
(
z
)
=
1
1
+
e
−
z
g(z)=\frac{1}{1+e^{-z}}
g(z)=1+e−z1简单解释下逻辑回归模型为什么要用Sigmoid函数。
从指数族分布讲起,指数族分布 (The exponential family distribution),区别于指数分布(exponential distribution)。在概率统计中,若某概率分布满足下式,我们就称之属于指数族分布。
p
(
y
;
η
)
=
b
(
y
)
e
x
p
(
η
T
T
(
y
)
−
a
(
η
)
)
p(y;η)=b(y)exp(η^{T}T(y)−a(η))
p(y;η)=b(y)exp(ηTT(y)−a(η))
其中η是natural parameter, T(y)是充分统计量, exp−a(η))是起到归一化作用。 确定了T,a,b,我们就可以确定某个参数为η的指数族分布.
统计中很多熟悉的概率分布都是指数族分布的特定形式,如伯努利分布,高斯分布,多项分布(multionmal), 泊松分布等。下面介绍其中的伯努利分布。
伯努利分布
p
(
y
;
ϕ
)
=
ϕ
y
(
1
−
ϕ
)
1
−
y
p(y;ϕ)=ϕ^y(1−ϕ)^{1−y}
p(y;ϕ)=ϕy(1−ϕ)1−y
=
e
x
p
[
y
l
o
g
ϕ
+
(
1
−
y
)
l
o
g
(
1
−
ϕ
)
]
=exp[ylogϕ+(1−y)log(1−ϕ)]
=exp[ylogϕ+(1−y)log(1−ϕ)]
=
e
x
p
[
y
l
o
g
ϕ
1
−
ϕ
+
l
o
g
(
1
−
ϕ
)
]
=exp[ylog\frac{ϕ}{1−ϕ}+log(1−ϕ)]
=exp[ylog1−ϕϕ+log(1−ϕ)]
把伯努利分布可以写成指数族分布的形式,且
T
(
y
)
=
y
T(y)=y
T(y)=y
η
=
l
o
g
ϕ
1
−
ϕ
η=log\frac{ϕ}{1−ϕ}
η=log1−ϕϕ
a
(
η
)
=
−
l
o
g
(
1
−
ϕ
)
=
l
o
g
(
1
+
e
η
)
a(η)=−log(1−ϕ)=log(1+e^η)
a(η)=−log(1−ϕ)=log(1+eη)
b
(
y
)
=
1
b(y)=1
b(y)=1
同时我们可以看到
ϕ
=
1
1
+
e
−
η
ϕ=\frac{1}{1+e{−η}}
ϕ=1+e−η1 就是logistic sigmoid的形式。
具体的解释,可以看这篇文章 logistics 为什么用sigmoid函数.
接下来需要确定数据划分的边界,对于图1和图2的两种数据分布,显然图1需要一个线性的边界,而图2需要一个非线性的边界。所以接下来我们只讨论线性边界。
对于线性边界的情况,边界形式如下:
θ
0
+
θ
1
x
1
+
.
.
.
.
+
θ
n
x
n
=
∑
i
=
0
n
θ
i
x
i
=
θ
T
x
\theta_0+\theta_1x_1+....+\theta_nx_n =\sum_{i=0}^n\theta_ix_i =\theta ^Tx
θ0+θ1x1+....+θnxn=i=0∑nθixi=θTx构造预测函数为:
h
θ
(
x
)
=
g
(
θ
T
x
)
=
1
1
+
e
−
θ
T
x
h_\theta(x)=g(\theta^Tx)=\frac {1}{1+e^{-\theta ^Tx}}
hθ(x)=g(θTx)=1+e−θTx1
h
θ
(
x
)
h_\theta(x)
hθ(x)函数的值有特殊的含义,它表示结果取1的概率,因此对于输入x的分类结果为类别1和类别0的概率分别为:
P
(
y
=
1
∣
x
;
θ
)
=
h
θ
(
x
)
P(y=1|x;\theta)=h_\theta(x)
P(y=1∣x;θ)=hθ(x)
P
(
y
=
0
∣
x
;
θ
)
=
1
−
h
θ
(
x
)
P(y=0|x;\theta)=1-h_\theta(x)
P(y=0∣x;θ)=1−hθ(x)
我们知道损失函数分为0-1损失,平方损失,绝对损失和对数似然损失(对数损失)。
在这里我们采用对数似然损失。当然,损失函数都是人为选择的,选择什么损失函数都行。但是如果这里用最小二乘法作为损失函数的话,函数曲线是非凸的,不利于求解参数。而对数似然函数作为损失函数的话,曲线是凸的,方便求解。
根据对数似然损失函数,有:
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
{
−
l
o
g
(
h
θ
(
x
)
)
i
f
y
=
1
−
l
o
g
(
1
−
h
θ
(
x
)
)
i
f
y
=
0
Cost(h_\theta(x),y) = \begin {cases} -log(h_\theta(x)) & {if y=1} \\ -log(1-h_\theta(x)) &{if y=0} \end {cases}
Cost(hθ(x),y)={−log(hθ(x))−log(1−hθ(x))ify=1ify=0
根据伯努利分布,有
p
(
y
∣
x
;
θ
)
=
h
θ
(
x
)
y
(
1
−
h
θ
(
x
)
)
1
−
y
p(y|x;\theta)=h_\theta(x)^y(1-h_\theta(x))^{1-y}
p(y∣x;θ)=hθ(x)y(1−hθ(x))1−y
取似然函数:
L
(
θ
)
=
∏
i
=
1
m
p
(
y
i
∣
x
i
;
θ
)
=
∏
i
=
1
m
h
θ
(
x
i
)
y
i
(
1
−
h
θ
(
x
i
)
)
1
−
y
i
L(\theta)=\prod_{i=1}^m p(y^i|x^i;\theta)=\prod_{i=1}^mh_\theta(x^i)^{y^i}(1-h_\theta(x^i))^{1-y^i}
L(θ)=i=1∏mp(yi∣xi;θ)=i=1∏mhθ(xi)yi(1−hθ(xi))1−yi
对数似然函数:
l
(
θ
)
=
l
o
g
L
(
θ
)
=
∑
i
=
1
m
[
y
i
l
o
g
(
h
θ
(
x
i
)
)
+
(
1
−
y
i
)
l
o
g
(
1
−
h
θ
(
x
i
)
)
]
l(\theta)=logL(\theta)=\sum_{i=1}^m[y^ilog(h_\theta(x^i))+(1-y^i)log(1-h_\theta(x^i))]
l(θ)=logL(θ)=i=1∑m[yilog(hθ(xi))+(1−yi)log(1−hθ(xi))]
最大似然估计就是要求
l
(
θ
)
取
最
大
值
时
的
θ
l(\theta)取最大值时的\theta
l(θ)取最大值时的θ,故将
J
(
θ
)
=
−
1
m
l
(
θ
)
J(\theta)=-\frac{1}{m}l(\theta)
J(θ)=−m1l(θ),即
J
(
θ
)
=
−
1
m
∑
i
=
1
m
[
y
i
l
o
g
(
h
θ
(
x
i
)
)
+
(
1
−
y
i
)
l
o
g
(
1
−
h
θ
(
x
i
)
)
]
J(\theta)=-\frac{1}{m}\sum_{i=1}^m[y^ilog(h_\theta(x^i))+(1-y^i)log(1-h_\theta(x^i))]
J(θ)=−m1i=1∑m[yilog(hθ(xi))+(1−yi)log(1−hθ(xi))]
所以
J
(
θ
)
取
最
小
值
时
的
θ
为
要
求
的
最
佳
参
数
J(\theta)取最小值时的\theta为要求的最佳参数
J(θ)取最小值时的θ为要求的最佳参数
求参优化也有不同的方法如梯度下降法,拟牛顿法等方法可以使用,在这里我们用梯度下降法。
梯度下降公式如下:
θ
j
:
=
θ
j
−
α
δ
δ
θ
j
J
θ
,
(
j
=
0
,
1
,
2
,
.
.
.
.
,
n
)
\theta_j:=\theta_j-\alpha\frac{\delta}{\delta\theta_j}J\theta,(j=0,1,2,....,n)
θj:=θj−αδθjδJθ,(j=0,1,2,....,n)式子中
α
为
学
习
步
长
\alpha为学习步长
α为学习步长,下面来求偏导:
上面求解过程中用到的公式有:
因此,梯度下降公式可以更新为:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。