在线性回归的模型中,是求出输出特征向量Y和输入样本矩阵X之间的线性关系系数θ,满足Y=Xθ,此时Y是连续的,如果想要Y输出的不是连续的,有什么办法呢,此时我们加一个激活函数g(Y)
g
(
Y
)
,此时Y输出值在某个范围中属于类别A,其他范围属于类别B,那么这个就是二元逻辑回归了,如果还有其他的类别则属于多元分类。
Y=θX
Y
=
θ
X
Z=g(Y)
Z
=
g
(
Y
)
其中
θ
θ
是参数,
g
g
是激活函数,Z是最后的输出。
有了模型,接下来就是设定损失函数,来求解参数。我们以二元逻辑回归为例。
P(y=1|x,θ)=1−gθ(x)
P
(
y
=
1
|
x
,
θ
)
=
1
−
g
θ
(
x
)
两者统一起来
P(y|x,θ)=gθ(x)y(1−gθ(x))1−y
P
(
y
|
x
,
θ
)
=
g
θ
(
x
)
y
(
1
−
g
θ
(
x
)
)
1
−
y
根据似然函数最大化来求解我们需要的模型系数θ。
L(θ)=∏i=1m(gθ(x(i)))y(i)(1−gθ(x(i)))1−y(i)
L
(
θ
)
=
∏
i
=
1
m
(
g
θ
(
x
(
i
)
)
)
y
(
i
)
(
1
−
g
θ
(
x
(
i
)
)
)
1
−
y
(
i
)
对数似然函数取反即为我们的损失函数
J(θ)
J
(
θ
)
。
J(θ)=−lnL(θ)=−∑i=1m(y(i)log(gθ(x(i)))+(1−y(i))log(1−gθ(x(i))))
J
(
θ
)
=
−
l
n
L
(
θ
)
=
−
∑
i
=
1
m
(
y
(
i
)
l
o
g
(
g
θ
(
x
(
i
)
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
g
θ
(
x
(
i
)
)
)
)
P(y=0|x,θ)=1−gθ(x)
P
(
y
=
0
|
x
,
θ
)
=
1
−
g
θ
(
x
)
那么
lnP(y=1|x,θ)P(y=0|x,θ)=lngθ1(x)1−gθ0(x)
l
n
P
(
y
=
1
|
x
,
θ
)
P
(
y
=
0
|
x
,
θ
)
=
l
n
g
θ
1
(
x
)
1
−
g
θ
0
(
x
)
lnP(y=0|x,θ)P(y=K|x,θ)=lngθ0(x)1−gθK(x)
l
n
P
(
y
=
0
|
x
,
θ
)
P
(
y
=
K
|
x
,
θ
)
=
l
n
g
θ
0
(
x
)
1
−
g
θ
K
(
x
)
lnP(y=1|x,θ)P(y=K|x,θ)=lngθ1(x)1−gθK(x)
l
n
P
(
y
=
1
|
x
,
θ
)
P
(
y
=
K
|
x
,
θ
)
=
l
n
g
θ
1
(
x
)
1
−
g
θ
K
(
x
)
lnP(y=2|x,θ)P(y=K|x,θ)=lngθ2(x)1−gθK(x)
l
n
P
(
y
=
2
|
x
,
θ
)
P
(
y
=
K
|
x
,
θ
)
=
l
n
g
θ
2
(
x
)
1
−
g
θ
K
(
x
)
....
.
.
.
.
lnP(y=K−1|x,θ)P(y=K|x,θ)=lngθK−1(x)1−gθK(x)
l
n
P
(
y
=
K
−
1
|
x
,
θ
)
P
(
y
=
K
|
x
,
θ
)
=
l
n
g
θ
K
−
1
(
x
)
1
−
g
θ
K
(
x
)
加上归一化条件
∑i=1KP(y=i|x,θ)=1
∑
i
=
1
K
P
(
y
=
i
|
x
,
θ
)
=
1
组成K个线性方程组,依次可以求得:
P(y=k|x,θ)
P
(
y
=
k
|
x
,
θ
)
至此,我们将损失函数推广至多元态。那么剩下的问题就是,如果挑选激活函数
g
g
。
LR激活函数为什么是sigmoid
我们重新来看二元逻辑回归的概率解释,假设x为正太分布,Y只有0和1两类,且
P(y=1)=π1,P(y=0)=π0
P
(
y
=
1
)
=
π
1
,
P
(
y
=
0
)
=
π
0
那么
P(y=1|x)=P(y=1,x)P(x)=π0N(x|u1,Σ1)∑iπiN(x|ui,Σi)=π0N(x|u1,Σ1)π0N(x|u0,Σ0)+π1N(x|u1,Σ1)=11+π0N(x|u0,Σ0)π1N(x|u1,Σ1)
P
(
y
=
1
|
x
)
=
P
(
y
=
1
,
x
)
P
(
x
)
=
π
0
N
(
x
|
u
1
,
Σ
1
)
∑
i
π
i
N
(
x
|
u
i
,
Σ
i
)
=
π
0
N
(
x
|
u
1
,
Σ
1
)
π
0
N
(
x
|
u
0
,
Σ
0
)
+
π
1
N
(
x
|
u
1
,
Σ
1
)
=
1
1
+
π
0
N
(
x
|
u
0
,
Σ
0
)
π
1
N
(
x
|
u
1
,
Σ
1
)
上一节中,我阐述了激活函数为什么sigmoid,这是有我们假设了数据服从伯努利分布,进而一步步推导出来。但是上一节中也提出了一个问题即,最大熵模型与LR的关系。那么我先了解一下最大熵模型。 熵度量了事物的不确定性,越不确定的事物,它的熵就越大。实际上人们学习知识的过程就是一个减熵的过程;下面介绍最大熵模型: 设X
X
和Y分别是输入输出数据集,最大熵模型可以表示为给定输入X
X
,以条件概率P(Y|X)输出的Y。在给定训练数据集的情况下,我可以得到P(X,Y)
P
(
X
,
Y
)
的经验分布P⎯⎯⎯⎯(X,Y)
P
¯
(
X
,
Y
)
边缘分布P(X)
P
(
X
)
的经验分布P⎯⎯⎯⎯(X)
P
¯
(
X
)
。
P⎯⎯⎯⎯(X,Y)=P⎯⎯⎯⎯(X=x,Y=y)=f(X=x,Y=y)N
P
¯
(
X
,
Y
)
=
P
¯
(
X
=
x
,
Y
=
y
)
=
f
(
X
=
x
,
Y
=
y
)
N
P⎯⎯⎯⎯(X)=P⎯⎯⎯⎯(X=x)=f(X=x)N
P
¯
(
X
)
=
P
¯
(
X
=
x
)
=
f
(
X
=
x
)
N
其中
f(x,y)
f
(
x
,
y
)
是特征函数描述输入x和输出y之间的关系。
f(x,y)={10x与y满足某个关系否则
f
(
x
,
y
)
=
{
1
x
与
y
满
足
某
个
关
系
0
否
则
那么特征函数
f(x,y)
f
(
x
,
y
)
关于经验分布
P⎯⎯⎯⎯(X,Y)
P
¯
(
X
,
Y
)
的期望为:
EP⎯⎯⎯⎯(f)=∑x,yP⎯⎯⎯⎯(x,y)f(x,y)
E
P
¯
(
f
)
=
∑
x
,
y
P
¯
(
x
,
y
)
f
(
x
,
y
)
特征函数
f(x,y)
f
(
x
,
y
)
关于条件分布
P(Y|X)
P
(
Y
|
X
)
和经验分布
P⎯⎯⎯⎯(X)
P
¯
(
X
)
的期望值为:
EP(f)=∑x,yP⎯⎯⎯⎯(x)P(y|x)f(x,y)
E
P
(
f
)
=
∑
x
,
y
P
¯
(
x
)
P
(
y
|
x
)
f
(
x
,
y
)
模型训练过程中,我们可以认为
EP⎯⎯⎯⎯(f)=EP(f)
E
P
¯
(
f
)
=
E
P
(
f
)
假如我们有M个特征函数
fi(x,y)(i=1,2...,M)
f
i
(
x
,
y
)
(
i
=
1
,
2...
,
M
)
就有M个约束条件:
EP⎯⎯⎯⎯(fi)=EP(fi)(i=1,2,...M)
E
P
¯
(
f
i
)
=
E
P
(
f
i
)
(
i
=
1
,
2
,
.
.
.
M
)
定义在条件概率分布P(Y|X)上的条件熵为:
H(P)=−∑x,yP⎯⎯⎯⎯(x)P(y|x)logP(y|x)
H
(
P
)
=
−
∑
x
,
y
P
¯
(
x
)
P
(
y
|
x
)
l
o
g
P
(
y
|
x
)
我们的目标是得到使
H(P)
H
(
P
)
最大的时候对应的
P(y|x)
P
(
y
|
x
)
,这里可以对
H(P)
H
(
P
)
加了个负号求极小值,这样做的目的是为了使
−H(P)
−
H
(
P
)
为凸函数,方便使用凸优化的方法来求极值。因此最大熵模型为:
min⏟P−H(P)=∑x,yP⎯⎯⎯⎯(x)P(y|x)logP(y|x)
m
i
n
⏟
P
−
H
(
P
)
=
∑
x
,
y
P
¯
(
x
)
P
(
y
|
x
)
l
o
g
P
(
y
|
x
)
约束条件为:
EP⎯⎯⎯⎯(fi)−EP(fi)=0(i=1,2,...M)
E
P
¯
(
f
i
)
−
E
P
(
f
i
)
=
0
(
i
=
1
,
2
,
.
.
.
M
)
∑yP(y|x)=1
∑
y
P
(
y
|
x
)
=
1
引入拉格朗日乘子,定义拉格朗日函数进行求解:
L(P,w)≡−H(P)+w0(1−∑yP(y|x))+∑i=1Mwi(EP⎯⎯⎯⎯(fi)−EP(fi))
L
(
P
,
w
)
≡
−
H
(
P
)
+
w
0
(
1
−
∑
y
P
(
y
|
x
)
)
+
∑
i
=
1
M
w
i
(
E
P
¯
(
f
i
)
−
E
P
(
f
i
)
)
其中
wi
w
i
是拉格朗日乘子,这样我们就将原问题
min⏟Pmax⏟wL(P,w)
m
i
n
⏟
P
m
a
x
⏟
w
L
(
P
,
w
)
转化为对偶问题
max⏟wmin⏟PL(P,w)
m
a
x
⏟
w
m
i
n
⏟
P
L
(
P
,
w
)
由于
min⏟PL(P,w)
m
i
n
⏟
P
L
(
P
,
w
)
是一个凸优化问题,那么我们求的极小值就是最优解,
∂L(P,w)∂P(y|x)=∑x,yP⎯⎯⎯⎯(x)(logP(y|x)+1)−∑yw0−∑x,y(P⎯⎯⎯⎯(x)∑i=1Mwifi(x,y))=0
∂
L
(
P
,
w
)
∂
P
(
y
|
x
)
=
∑
x
,
y
P
¯
(
x
)
(
l
o
g
P
(
y
|
x
)
+
1
)
−
∑
y
w
0
−
∑
x
,
y
(
P
¯
(
x
)
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
)
=
0
可以得到
P(y|x)
P
(
y
|
x
)
如下:
P(y|x)=exp(∑i=1Mwifi(x,y)+w0−1)=exp(∑i=1Mwifi(x,y))exp(1−w0)
P
(
y
|
x
)
=
e
x
p
(
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
+
w
0
−
1
)
=
e
x
p
(
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
)
e
x
p
(
1
−
w
0
)
由于约束条件
∑yP(y|x)=1
∑
y
P
(
y
|
x
)
=
1
,因此我们可以得到
Pw(y|x)
P
w
(
y
|
x
)
表达式如下:
Pw(y|x)=1Zw(x)exp(∑i=1Mwifi(x,y))
P
w
(
y
|
x
)
=
1
Z
w
(
x
)
e
x
p
(
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
)
其中
Zw(x)
Z
w
(
x
)
为规范化因子,定其形式如下:
Zw(x)=∑yexp(∑i=1Mwifi(x,y))
Z
w
(
x
)
=
∑
y
e
x
p
(
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
)
接下来第二步,我们需要求
max⏟wPw(y|x)
m
a
x
⏟
w
P
w
(
y
|
x
)
,我们直接采用求偏导数。之后将w代入上面的
Pw(y|x)
P
w
(
y
|
x
)
,这样我们对最大熵模型就有了足够的了解了。
最大熵模型与LR模型有类似的形式,它们又称为对数线性模型(log linear model)。 模型学习就是在给定的训练数据条件下对模型进行极大似然估计或正则化的极大似然估计。
回过头来我们再看LR模型,假设数据第i个特征对第k类的贡献是wki
w
k
i
,因为一个样本属于各类的概率之和为1,所以可以得到
P(y=k)=exp(∑iwkixi)∑k′exp(∑iwk′ixi)
P
(
y
=
k
)
=
exp
(
∑
i
w
k
i
x
i
)
∑
k
′
exp
(
∑
i
w
k
′
i
x
i
)
回到二元LR模型
P(y=1)=exp(∑iw1ixi)exp(∑iw1ixi)+exp(∑iw0ixi)=11+exp(−∑iwixi)
P
(
y
=
1
)
=
exp
(
∑
i
w
1
i
x
i
)
exp
(
∑
i
w
1
i
x
i
)
+
exp
(
∑
i
w
0
i
x
i
)
=
1
1
+
exp
(
−
∑
i
w
i
x
i
)
其中参数
wi
w
i
表示第i个特征对1类的贡献比对0类的贡献多多少。通过上面的描述我们可以得知LR和MaxEntropy模型具有异曲同工之妙。
LR如何防止过拟合以及为什么这些手段可以防止过拟合
通用的防止过拟合的问题的方法有两种,增加L1范数或者增加L2范数。那么L1范数和L2范数为什么都可以防止过拟合呢?同时为什么L1范数可以得到稀疏解呢?首先我们需要了解为什么会有过拟合,过拟合的本质是什么。过拟合的表现是训练数据模型拟合能力非常好,而测试数据拟合能力较为差,导致这一原因的因素是,数据中存在噪声,当我们在训练的时候,迭代过程中有噪声的作用,使得训练出来的权值参数(w
w
)是一个非常大值,那么这个是样本数据只要稍微的变化一点,就有可能导致输出结果变化非常大(类似Δx∗w非常大),这个时候就容易产生我们所谓的过拟合。明白了过拟合是怎么产生的之后,我就看L1范数和L2范数怎么解决这个问题。因为L2范数是可导的,我们先介绍L2范数。
L(w)=Lo+λ2n∑ww2
L
(
w
)
=
L
o
+
λ
2
n
∑
w
w
2
∂L(w)∂w=∂Lo∂w+λnw
∂
L
(
w
)
∂
w
=
∂
L
o
∂
w
+
λ
n
w
w→w−∂L(w)∂w=w−η∂Lo∂w−ηλnw
w
→
w
−
∂
L
(
w
)
∂
w
=
w
−
η
∂
L
o
∂
w
−
η
λ
n
w
从上式可以看出,加入L2正则化主要是减小参数
w
w
,从而达到防止过拟合效果。L1范数由于不可导性,不能只求导,因此我们需要绕道而行,常用的方法是坐标轴下降法或者Lasso回归法,这里不详细介绍。其实除此之外,我们也可以用分段求导来计算。
L(w)=Lo+λ2n∑w|w|
∂L(w)∂w=∂Lo∂w+λnsgn(w)
∂
L
(
w
)
∂
w
=
∂
L
o
∂
w
+
λ
n
s
g
n
(
w
)
w→w−∂L(w)∂w=w−η∂Lo∂w−ηλnsgn(w)
w
→
w
−
∂
L
(
w
)
∂
w
=
w
−
η
∂
L
o
∂
w
−
η
λ
n
s
g
n
(
w
)
L1,L2范数来自于对数据的先验知识,如果现有的数据来自于高斯分布,那么就应该在代价函数中加入数据先验P(x)
P
(
x
)
或者是对数似然logP(x)
l
o
g
P
(
x
)
,然后再去优化,这样最终的结果是,由于模型参数考虑了数据先验,模型效果就更好。如果数据是稀疏的,可以认为数据是服从拉普拉斯分布。通过对高斯分布和拉普拉斯分布执行对数似然,剩下的部分就是参数w
w
<script type="math/tex" id="MathJax-Element-86">w</script>的平方项或者绝对值项。从这点看,我们认为加入正则化项是源于我们得知了数据的先验知识。 因此我们从两个方面解释了正则化为什么可以防止过拟合。