文章目录
1. Introduction
在机器学习的监督学习中,我们尝试找到一个将数据映射到目标或标签的函数。 我们经常使用神经网络作为近似器,并学习最佳权重以近似函数。 因此,我们需要构建适当的成本函数作为优化准则以优化权重。 成本函数是衡量模型估计X和y之间关系的能力方面的错误程度的度量。 这通常表示为预测值和实际值之间的差异或距离。
估计是一个统计术语,用于使用测量值来找到未知参数的一些估计。 点估计是对某些感兴趣的数量提供单一“最佳”预测的尝试,该预测可以是某个参数模型中的单个参数或参数向量,例如线性回归中的权重。
极大似然估计(MLE)可以定义为一种用于从样本数据中估计参数(例如均值或方差)的方法,以使获得观测数据的概率(似然性)最大化。MLE是一致性和效率估算器。 当训练示例的数量接近无穷大时,参数的最大似然估计会收敛到参数的真实值。 Cramér-Rao下界表明,没有一个一致的估计量具有比最大似然估计量低的均方误差。 由于一致性和效率的原因,MLE通常被认为是用于机器学习的首选估计器。
通过允许先验影响点估计的选择来遵循贝叶斯方法。 极大大后验概率(MAP)可用于根据经验数据获得未观测量的点估计。 MAP估计选择最大后验概率点。 MAP的优势在于可以利用先验带来的信息,而这些信息无法在训练数据中找到。 此附加信息有助于以增加的偏差为代价减少点估计中的方差。
2. Efficiency and Consistency of MLE
MLE是一种估计统计模型参数的方法。给定具有未知参数
θ
\theta
θ的统计模型
f
(
y
;
θ
)
f(y;\theta)
f(y;θ)的分布,MLE用于通过使用观测值
y
y
y最大化概率
f
(
y
;
θ
)
f(y;\theta)
f(y;θ)来估计参数
θ
\theta
θ。
θ
^
(
y
)
=
arg
max
θ
f
(
y
;
θ
)
\hat \theta(y)=\mathop{\arg\max}_\theta f(y;\theta)
θ^(y)=argmaxθf(y;θ)
2.1 Cramér-Rao Lower Bound
Cramér-Rao下界**[1]**(CRLB)描述了确定性参数
θ
\theta
θ的估计量方差的下界。
V
a
r
(
θ
^
(
Y
)
)
≥
(
∂
∂
θ
E
[
θ
^
(
Y
)
]
)
2
I
(
θ
)
Var(\hat \theta(Y))\ge\frac{(\frac \partial {\partial \theta}\mathbb E[\hat\theta(Y)])^2}{I(\theta)}
Var(θ^(Y))≥I(θ)(∂θ∂E[θ^(Y)])2
其中
I
(
θ
)
I(\theta)
I(θ)是是Fisher信息,用于测量可观测随机变量
Y
Y
Y携带的有关已知参数
θ
\theta
θ的信息。对于无偏估计器
θ
^
(
Y
)
\hat\theta(Y)
θ^(Y),有
V
a
r
(
θ
^
(
Y
)
)
≥
1
I
(
θ
)
Var(\hat \theta(Y))\ge \frac{1}{I(\theta)}
Var(θ^(Y))≥I(θ)1
意味着任何无偏估计器的方差至少是Fisher信息的倒数。
2.2 Efficiency
从2.1节中我们知道,估计器 θ ^ ( Y ) \hat\theta(Y) θ^(Y)的方差不能小于CRLB。 因此,方差等于下界的任何估计量都被认为是有效的估计器**[2]**。
我们假设
Y
=
{
Y
1
,
⋯
,
Y
n
}
\boldsymbol Y=\{Y_1,\cdots,Y_n\}
Y={Y1,⋯,Yn}是一组独立且一致分布的高斯随机变量
N
(
θ
,
σ
2
)
\mathcal N(\theta,\sigma^2)
N(θ,σ2)。假设
y
=
{
y
1
,
⋯
,
y
n
}
\boldsymbol y=\{y_1,\cdots,y_n\}
y={y1,⋯,yn}为一组观测值,那么
f
(
y
;
θ
)
=
∏
i
=
1
n
f
(
y
i
;
θ
)
=
∏
i
=
1
n
1
σ
2
π
exp
[
−
(
y
i
−
θ
)
2
2
σ
2
]
=
1
(
2
π
σ
2
)
n
2
exp
[
−
∑
i
=
1
n
(
y
i
−
θ
)
2
2
σ
2
]
\begin{aligned}f(\boldsymbol y;\theta) &= \prod^n_{i=1}f(y_i;\theta) \\ &= \prod^n_{i=1}\frac{1}{\sigma \sqrt{2\pi}}\exp{\left[ {-\frac{(y_i-\theta)^2}{2\sigma^2}} \right]} \\ &= \frac{1}{(2\pi\sigma^2)^{\frac n 2}}\exp{\left[{-\frac{\sum_{i=1}^n(y_i-\theta)^2}{2\sigma^2}}\right]} \end{aligned}
f(y;θ)=i=1∏nf(yi;θ)=i=1∏nσ2π1exp[−2σ2(yi−θ)2]=(2πσ2)2n1exp[−2σ2∑i=1n(yi−θ)2]
对方程两边取对数可以得到:
log
f
(
y
;
θ
)
=
−
n
2
log
(
2
π
σ
2
)
−
∑
i
=
1
n
(
y
i
−
θ
)
2
2
σ
2
∂
log
f
(
y
;
θ
)
∂
θ
=
−
2
∑
i
=
1
n
(
y
i
−
θ
)
2
σ
2
=
0
\log{f(\boldsymbol y;\theta)}=-\frac n 2\log(2\pi\sigma^2)-\frac{\sum_{i=1}^n(y_i-\theta)^2}{2\sigma^2}\\ \frac{\partial \log{f(\boldsymbol y; \theta)}}{\partial \theta}=-2\frac{\sum_{i=1}^n(y_i-\theta)}{2\sigma^2}=0
logf(y;θ)=−2nlog(2πσ2)−2σ2∑i=1n(yi−θ)2∂θ∂logf(y;θ)=−22σ2∑i=1n(yi−θ)=0
因此,MLE为
θ
^
M
L
E
=
1
n
∑
i
=
1
n
y
i
\hat \theta_{MLE}=\frac 1 n \sum_{i=1}^n y_i
θ^MLE=n1∑i=1nyi。
E
[
θ
^
M
L
E
(
y
)
]
=
1
n
∑
i
=
1
n
E
[
y
i
]
=
θ
\mathbb E[\hat \theta_{MLE}(y)]=\frac 1 n\sum^n_{i=1}\mathbb E[y_i]=\theta
E[θ^MLE(y)]=n1i=1∑nE[yi]=θ
为了确定CRLB,需要计算Fisher信息:
I
(
θ
)
=
−
E
[
∂
2
∂
θ
2
log
f
(
y
;
θ
)
]
=
n
σ
2
I(\theta)=-\mathbb E[\frac{\partial^2}{\partial \theta^2}\log f(\boldsymbol y;\theta)]=\frac{n}{\sigma^2}
I(θ)=−E[∂θ2∂2logf(y;θ)]=σ2n
根据2.1节有
V
a
r
(
θ
^
M
L
E
(
Y
)
)
≥
1
I
(
θ
)
=
σ
2
n
V
a
r
(
θ
^
(
Y
)
)
=
1
I
(
θ
)
Var(\hat \theta_{MLE}(Y))\ge\frac{1}{I(\theta)}=\frac{\sigma^2}{n}\\ Var(\hat\theta(Y))=\frac{1}{I(\theta)}
Var(θ^MLE(Y))≥I(θ)1=nσ2Var(θ^(Y))=I(θ)1
因此,CRLB满足,MLE是有效的。
2.3 Consistency
假设
θ
^
n
\hat\theta_n
θ^n为一个观测序列
{
Y
1
,
⋯
,
Y
n
}
\{Y_1,\cdots,Y_n\}
{Y1,⋯,Yn}的估计,
θ
^
n
\hat \theta_n
θ^n是一致性的如果当
θ
^
n
→
θ
\hat \theta_n \to \theta
θ^n→θ时,满足
P
(
∣
θ
^
−
θ
∣
>
ϵ
)
→
0
,
a
s
n
→
∞
\mathbb P(|\hat \theta -\theta|>\epsilon)\to 0,\quad as\ n\to \infty
P(∣θ^−θ∣>ϵ)→0,as n→∞
上述不等式的一个充分条件是
E
[
(
θ
^
n
−
θ
)
2
]
→
0
,
a
s
n
→
∞
\mathbb E[(\hat\theta_n-\theta)^2]\to 0,\quad as\ n\to\infty
E[(θ^n−θ)2]→0,as n→∞
同样假设
Y
=
{
Y
1
,
⋯
,
Y
n
}
\boldsymbol Y=\{Y_1,\cdots,Y_n\}
Y={Y1,⋯,Yn}是一组独立且一致分布的高斯随机变量
N
(
θ
,
σ
2
)
\mathcal N(\theta,\sigma^2)
N(θ,σ2)。假设
y
=
{
y
1
,
⋯
,
y
n
}
\boldsymbol y=\{y_1,\cdots,y_n\}
y={y1,⋯,yn}为一组观测值,那么由2.2节可知
θ
^
M
L
E
(
y
)
=
1
n
∑
i
=
1
n
y
i
\hat \theta_{MLE}(y)=\frac{1}{n}\sum_{i=1}^n y_i
θ^MLE(y)=n1i=1∑nyi
因为
E
[
(
θ
^
−
θ
)
2
]
=
V
a
r
(
θ
^
n
)
=
σ
2
n
\mathbb E[(\hat\theta-\theta)^2]=Var(\hat\theta_n)=\frac{\sigma^2}{n}
E[(θ^−θ)2]=Var(θ^n)=nσ2
因此充分条件成立,
θ
^
n
\hat \theta_n
θ^n是一致性的如果当
θ
^
n
→
θ
\hat \theta_n \to \theta
θ^n→θ时。
从上面我们知道,MLE是一致且有效的估计器,随着训练数据的数量接近无穷大,参数的估计将收敛到参数的真实值。
3. Deriving Cost Function
MLE核MAP提供了推到损失函数的机制,接下来将从MLE和MAP推导常用的损失函数和正则化。
3.1 Cost Function
在机器学习中,我们通常将预测输出 y ^ \hat y y^与实际目标 y y y之间的误差作为损失函数进行计算,以优化权值系数。均方误差损失和均值绝对误差损失用于回归任务,而交叉熵则用于分类任务。都可以从MLE派生。
3.1.1 Mean Squared Error
均方误差(L2-Loss)被广泛用于线性回归。 假设训练集
{
(
x
(
1
)
,
y
(
1
)
)
,
⋯
,
(
x
(
m
)
,
y
(
m
)
)
}
\{(x^{(1)},y^{(1)}),\cdots,(x^{(m)},y^{(m)})\}
{(x(1),y(1)),⋯,(x(m),y(m))}是一组满足独立同分布高斯随机变量的样本
y
∼
N
(
μ
=
y
^
,
σ
2
)
y\sim\mathcal N(\mu=\hat y,\sigma^2)
y∼N(μ=y^,σ2)。
y
^
=
f
(
x
;
θ
)
p
(
y
∣
x
;
θ
)
=
1
σ
2
π
e
−
(
y
−
y
^
)
2
2
σ
2
\hat y = f(x;\theta)\\ p(y|x;\theta)=\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(y-\hat y)^2}{2\sigma^2}}
y^=f(x;θ)p(y∣x;θ)=σ2π1e−2σ2(y−y^)2
似然函数为
p
(
y
∣
x
;
θ
)
=
∏
i
=
1
m
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
∏
i
=
1
m
1
σ
2
π
exp
−
(
y
(
i
)
−
y
^
(
i
)
)
2
2
σ
2
\begin{aligned} p(\boldsymbol y|\boldsymbol x;\theta) &= \prod_{i=1}^m p(y^{(i)}|x^{(i)};\theta) \\ &= \prod_{i=1}^m\frac{1}{\sigma\sqrt{2\pi}}\exp{-\frac{(y^{(i)}-\hat y^{(i)})^2}{2\sigma^2}} \end{aligned}
p(y∣x;θ)=i=1∏mp(y(i)∣x(i);θ)=i=1∏mσ2π1exp−2σ2(y(i)−y^(i))2
两边取对数有,
log
p
(
y
∣
x
;
θ
)
=
∑
i
=
1
m
log
(
1
σ
2
π
exp
−
(
y
(
i
)
−
y
^
(
i
)
)
2
2
σ
2
)
=
−
m
log
σ
−
m
2
log
2
π
−
∑
i
=
1
m
(
y
(
i
)
−
y
^
(
i
)
)
2
2
σ
2
\begin{aligned} \log p(\boldsymbol y|\boldsymbol x;\theta) &= \sum_{i=1}^m \log (\frac{1}{\sigma\sqrt{2\pi}}\exp{-\frac{(y^{(i)}-\hat y^{(i)})^2}{2\sigma^2}}) \\ &= -m\log\sigma - \frac m 2\log{2\pi}-\sum_{i=1}^m\frac{(y^{(i)}-\hat y^{(i)})^2}{2\sigma^2} \end{aligned}
logp(y∣x;θ)=i=1∑mlog(σ2π1exp−2σ2(y(i)−y^(i))2)=−mlogσ−2mlog2π−i=1∑m2σ2(y(i)−y^(i))2
J M S E ( θ ) = 1 m ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2 2 σ 2 = 1 m ∑ i = 1 m ∥ y ( i ) − y ^ ( i ) ∥ 2 \begin{aligned} J_{MSE}(\theta) &= \frac{1}{m}\sum_{i=1}^m\frac{(y^{(i)}-\hat y^{(i)})^2}{2\sigma^2} \\ &= \frac{1}{m}\sum_{i=1}^m\|y^{(i)}-\hat y^{(i)}\|^2 \end{aligned} JMSE(θ)=m1i=1∑m2σ2(y(i)−y^(i))2=m1i=1∑m∥y(i)−y^(i)∥2
其中
y
^
(
i
)
\hat y^{(i)}
y^(i)是数据
x
(
i
)
x^{(i)}
x(i)使用权值
θ
\theta
θ的预测值。对
θ
\theta
θ最大化对数似然函数与最小化均方误差相同,因此
θ
∗
=
arg
max
θ
log
p
(
y
∣
x
;
θ
)
=
arg
min
θ
J
M
S
E
(
θ
)
\theta^*=\mathop{\arg\max}_\theta \log p(\boldsymbol y|\boldsymbol x;\theta) = \mathop{\arg\min}_\theta J_{MSE}(\theta)
θ∗=argmaxθlogp(y∣x;θ)=argminθJMSE(θ)
上述过程证明的均方误差损失与极大似然估计是一致的。
3.1.2 Mean Absolute Error
与3.1.1小节类似,假设训练集符合Laplace分布
y
∼
L
a
p
l
a
c
e
(
μ
=
y
^
,
λ
)
y\sim Laplace(\mu=\hat y,\lambda)
y∼Laplace(μ=y^,λ),有
p
(
y
∣
x
;
θ
)
=
1
2
λ
e
−
∣
y
−
y
^
∣
λ
p(y|x;\theta)=\frac{1}{2\lambda}e^{-\frac{|y-\hat y|}{\lambda}}
p(y∣x;θ)=2λ1e−λ∣y−y^∣
似然函数为
p
(
y
∣
x
;
θ
)
=
∏
i
=
1
m
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
∏
i
=
1
m
1
2
λ
exp
−
∣
y
(
i
)
−
y
^
(
i
)
∣
λ
\begin{aligned} p(\boldsymbol y|\boldsymbol x;\theta) &= \prod_{i=1}^m p(y^{(i)}|x^{(i)};\theta) \\ &= \prod_{i=1}^m\frac{1}{2\lambda}\exp{-\frac{|y^{(i)}-\hat y^{(i)}|}{\lambda}} \end{aligned}
p(y∣x;θ)=i=1∏mp(y(i)∣x(i);θ)=i=1∏m2λ1exp−λ∣y(i)−y^(i)∣
两边取对数有,
log
p
(
y
∣
x
;
θ
)
=
−
m
log
2
λ
−
∑
i
=
1
m
∣
y
(
i
)
−
y
^
(
i
)
∣
λ
\log p(\boldsymbol y|\boldsymbol x;\theta) = -m\log{2\lambda} - \sum_{i=1}^m\frac{|y^{(i)}-\hat y^{(i)}|}{\lambda}
logp(y∣x;θ)=−mlog2λ−i=1∑mλ∣y(i)−y^(i)∣
J M S E ( θ ) = 1 m ∑ i = 1 m ∣ y ( i ) − y ^ ( i ) ∣ J_{MSE}(\theta)=\frac{1}{m}\sum_{i=1}^m |y^{(i)}-\hat y^{(i)}| JMSE(θ)=m1i=1∑m∣y(i)−y^(i)∣
对
θ
\theta
θ最大化对数似然函数与最小化平均绝对误差相同,因此
θ
∗
=
arg
max
θ
log
p
(
y
∣
x
;
θ
)
=
arg
min
θ
J
M
A
E
(
θ
)
\theta^*=\mathop{\arg\max}_\theta \log p(\boldsymbol y|\boldsymbol x;\theta) = \mathop{\arg\min}_\theta J_{MAE}(\theta)
θ∗=argmaxθlogp(y∣x;θ)=argminθJMAE(θ)
3.1.3 Cross-Entropy
MSE与MAE用于优化回归任务,对于二分类问题,我们常使用交叉熵作为损失函数,它可以从伯努利分布推导出来,我们假设随机变量
y
\boldsymbol y
y服从伯努利分布,
y
^
\hat y
y^是
y
=
1
y=1
y=1的概率,
p
(
y
=
1
∣
x
;
θ
)
=
y
^
p
(
y
=
0
∣
;
θ
)
=
1
−
y
^
p(y=1|x;\theta) = \hat y\\ p(y=0|;\theta) = 1-\hat y
p(y=1∣x;θ)=y^p(y=0∣;θ)=1−y^
概率质量函数为
P
(
y
∣
x
;
θ
)
=
y
^
y
(
1
−
y
^
)
1
−
y
P(y|x;\theta)=\hat y^y(1-\hat y)^{1-y}
P(y∣x;θ)=y^y(1−y^)1−y
对于
m
m
m个样本
{
(
x
(
1
)
,
y
(
1
)
)
,
⋯
,
(
x
(
m
)
,
y
(
m
)
)
}
\{(x^{(1)},y^{(1)}),\cdots,(x^{(m)},y^{(m)})\}
{(x(1),y(1)),⋯,(x(m),y(m))},
y
∈
0
,
1
y\in{0, 1}
y∈0,1,似然函数为:
L
(
θ
)
=
∏
i
=
1
m
y
^
(
i
)
y
(
i
)
(
1
−
y
^
(
i
)
)
1
−
y
(
i
)
=
∏
i
=
1
m
p
θ
(
y
=
1
∣
x
(
i
)
)
y
(
i
)
(
1
−
p
θ
(
y
=
1
∣
x
(
i
)
)
1
−
y
(
i
)
\begin{aligned} L(\theta)&=\prod_{i=1}^m {\hat y^{(i)}}^{y^{(i)}}(1-\hat y^{(i)})^{1-y^{(i)}} \\ &=\prod_{i=1}^m p_\theta(y=1|x^{(i)})^{y^{(i)}}(1-p_\theta(y=1|x^{(i)})^{1-y^{(i)}}\end{aligned}
L(θ)=i=1∏my^(i)y(i)(1−y^(i))1−y(i)=i=1∏mpθ(y=1∣x(i))y(i)(1−pθ(y=1∣x(i))1−y(i)
对数似然函数为
log
L
(
θ
)
=
∑
i
=
1
m
y
(
i
)
log
y
^
(
i
)
+
(
1
−
y
(
i
)
)
log
(
1
−
y
^
(
i
)
)
\log L(\theta)=\sum_{i=1}^m y^{(i)}\log \hat y^{(i)}+(1-y^{(i)})\log(1-\hat y^{(i)})
logL(θ)=i=1∑my(i)logy^(i)+(1−y(i))log(1−y^(i))
等价于交叉熵。
对于K类随机变量
y
∈
{
1
,
⋯
,
K
}
,
p
(
y
=
j
)
=
p
j
\boldsymbol y\in\{1,\cdots, K\},p(y=j)=p_j
y∈{1,⋯,K},p(y=j)=pj,根据广义伯努利分布可以得到概率质量函数**[3]**:
P
(
y
)
=
∏
j
=
1
k
p
j
I
(
y
)
P(\boldsymbol y)=\prod_{j=1}^k p_j^{I(y)}
P(y)=j=1∏kpjI(y)
其中
I
(
y
=
j
)
I(y=j)
I(y=j)是指示函数,当
y
=
j
y=j
y=j时,
I
(
y
)
=
1
I(y)=1
I(y)=1,否则为0。
对于
m
m
m个样本,似然函数为:
L
(
θ
)
=
∏
i
=
1
m
∏
j
=
1
K
p
j
I
(
y
(
i
)
)
=
∏
i
=
1
m
∏
j
=
1
K
p
θ
(
y
(
i
)
=
j
∣
x
(
i
)
)
I
(
y
(
i
)
)
L(\theta) = \prod_{i=1}^m\prod_{j=1}^K p_j^{I(y^{(i)})}= \prod_{i=1}^m\prod_{j=1}^K p_\theta(y^{(i)}=j|x^{(i)})^{I(y^{(i)})}
L(θ)=i=1∏mj=1∏KpjI(y(i))=i=1∏mj=1∏Kpθ(y(i)=j∣x(i))I(y(i))
对数似然函数为
log
L
(
θ
)
=
∑
i
=
1
m
∑
j
=
1
K
I
(
y
(
i
)
)
log
p
θ
(
y
(
i
)
=
j
∣
x
(
i
)
)
\log L(\theta) = \sum_{i=1}^m\sum_{j=1}^K I(y^{(i)})\log p_\theta(y^{(i)}=j|x^{(i)})
logL(θ)=i=1∑mj=1∑KI(y(i))logpθ(y(i)=j∣x(i))
在实际中,标签通常采用独热编码,因此
I
(
y
(
i
)
)
=
y
(
i
)
I(y^{(i)})=y^{(i)}
I(y(i))=y(i)。
多分类交叉熵损失为:
J
C
E
(
θ
)
=
−
1
m
∑
i
=
1
m
∑
j
=
1
K
y
(
i
)
log
y
^
(
i
)
J_{CE}(\theta)=-\frac{1}{m}\sum_{i=1}^m\sum_{j=1}^K y^{(i)}\log{\hat y^{(i)}}
JCE(θ)=−m1i=1∑mj=1∑Ky(i)logy^(i)
以上证明MSE,MAE和交叉熵可以有MLE使用不同的分布假设推导得到。
3.2 Regularization
3.1节证明过程的假设之一是样本数近似于无限。实际上,我们可能无法收集到足够的训练集,这会导致模型过度拟合:测试精度远低于训练精度,并且随着训练迭代次数的增长,测试误差将增大。为了避免过拟合,我们通常在成本函数中添加正则化以限制权重。常使用 L 1 L_1 L1正则化和 L 2 L_2 L2正则化,它们都可以从MAP中导出**[5]**。
利用贝叶斯定理可以极大化后验概率,
p
(
θ
∣
y
)
=
p
(
y
∣
θ
)
p
(
θ
)
p
(
y
)
p(\theta|y)=\frac{p(y|\theta)p(\theta)}{p(y)}
p(θ∣y)=p(y)p(y∣θ)p(θ)
θ ∗ = arg max θ p ( θ ∣ y ) = arg max θ p ( y ∣ θ ) p ( θ ) = arg max θ [ log p ( y ∣ θ ) + log p ( θ ) ] \begin{aligned}\theta^* &= \mathop{\arg\max}_\theta p(\theta|y)\\ &= \mathop{\arg\max}_\theta p(y|\theta)p(\theta)\\ &= \mathop{\arg\max}_\theta [\log p(y|\theta)+\log p(\theta)]\end{aligned} θ∗=argmaxθp(θ∣y)=argmaxθp(y∣θ)p(θ)=argmaxθ[logp(y∣θ)+logp(θ)]
其中
arg
max
θ
log
p
(
y
∣
θ
)
\mathop{\arg\max}_\theta \log p(y|\theta)
argmaxθlogp(y∣θ)是MLE,如果假设先验符合高斯分布
θ
∼
N
(
0
,
1
λ
)
\theta\sim N(0,\frac 1 \lambda)
θ∼N(0,λ1),
log
p
(
θ
)
=
∑
i
=
1
m
log
(
1
2
π
λ
e
x
p
−
λ
2
θ
2
)
=
−
m
2
log
2
π
λ
−
m
λ
2
θ
2
\log p(\theta)=\sum_{i=1}^m\log(\frac{1}{\sqrt{\frac{2\pi}{\lambda}}}exp{-\frac \lambda 2\theta^2}) = -\frac m 2\log \frac {2\pi}{\lambda} - m\frac \lambda 2\theta^2
logp(θ)=i=1∑mlog(λ2π1exp−2λθ2)=−2mlogλ2π−m2λθ2
将其带入3.1节公式中可以得到:
θ
∗
=
arg
max
θ
(
log
p
(
y
∣
θ
)
+
log
p
(
θ
)
)
=
arg
min
θ
(
J
(
θ
)
+
λ
2
∥
θ
∥
2
2
)
\begin{aligned} \theta^* &= \mathop{\arg\max}_\theta (\log p(y|\theta)+\log p(\theta))\\ &= \mathop{\arg\min}_\theta(J(\theta) + \frac \lambda 2\|\theta\|^2_2)\end{aligned}
θ∗=argmaxθ(logp(y∣θ)+logp(θ))=argminθ(J(θ)+2λ∥θ∥22)
公式的第二项为
L
2
L_2
L2正则化。
同理,假设符合Laplace分布
θ
∼
L
a
p
l
a
c
e
(
0
,
2
λ
)
\theta\sim Laplace(0,\frac 2 \lambda)
θ∼Laplace(0,λ2),
log
p
(
θ
)
=
m
log
λ
4
−
m
λ
2
∣
θ
∣
\log p(\theta) = m\log \frac \lambda 4 - m \frac \lambda 2 |\theta|
logp(θ)=mlog4λ−m2λ∣θ∣
θ ∗ = arg max θ ( log p ( y ∣ θ ) + log p ( θ ) ) = arg min θ ( J ( θ ) + λ 2 ∥ θ ∥ 1 ) \begin{aligned} \theta^* &= \mathop{\arg\max}_\theta (\log p(y|\theta)+\log p(\theta))\\ &= \mathop{\arg\min}_\theta(J(\theta) + \frac \lambda 2\|\theta\|_1)\end{aligned} θ∗=argmaxθ(logp(y∣θ)+logp(θ))=argminθ(J(θ)+2λ∥θ∥1)
公式的第二项为 L 1 L_1 L1正则化。
4. Experiment
在这一部分中,使用波士顿房价数据集进行回归预测。此外,我们将比较
L
1
L_1
L1正则化和
L
2
L_2
L2正则化的影响。
from sklearn.datasets import load_boston
import tensorflow as tf
import numpy as np
import random
using_reg = True
is_l2 = False
is_MSE = False
weight_decay = 0.5
epoch = 1000
batch_size = 50
lr = 0.001
boston = load_boston()
X = boston.data
Y = boston.target
[m, n] = X.shape
X_max = np.max(X, 0)
X_min = np.min(X, 0)
X_mean = np.mean(X, 0)
X_pre = (X - X_min) / (X_max-X_min)
random.seed(0)
test_ind = random.sample(range(m), 106)
train_ind = list(set(range(m)).difference(test_ind))
X_test = X_pre[test_ind][:]
Y_test = Y[test_ind][:]
X_train = X_pre[train_ind][:]
Y_train = Y[train_ind][:]
X_train = np.reshape(X_train, (400, 13))
Y_train = np.reshape(Y_train, (400, 1))
X_test = np.reshape(X_test, (106, 13))
Y_test = np.reshape(Y_test, (106, 1))
tf.reset_default_graph()
X_input = tf.placeholder(tf.float32, shape=(None, n), name='X')
Y_input = tf.placeholder(tf.float32, shape=(None, 1), name='Y')
W1 = tf.Variable(tf.random_normal([13, 64]), dtype=tf.float32, name='W1')
b1 = tf.Variable(tf.random_normal([64]), dtype=tf.float32, name='b1')
W2 = tf.Variable(tf.random_normal([64, 16]), dtype=tf.float32, name='W2')
b2 = tf.Variable(tf.random_normal([16]), dtype=tf.float32, name='b2')
W3 = tf.Variable(tf.random_normal([16, 1]), dtype=tf.float32, name='W3')
b3 = tf.Variable(tf.random_normal([1]), dtype=tf.float32, name='b3')
l1 = tf.nn.relu(tf.matmul(X_input, W1) + b1)
l2 = tf.nn.relu(tf.matmul(l1, W2) + b2)
l3 = tf.matmul(l2, W3) + b3
if using_reg:
if is_l2:
tf.add_to_collection('regular', tf.contrib.layers.l2_regularizer(weight_decay)(W1))
tf.add_to_collection('regular', tf.contrib.layers.l2_regularizer(weight_decay)(W2))
tf.add_to_collection('regular', tf.contrib.layers.l2_regularizer(weight_decay)(W3))
else:
tf.add_to_collection('regular', tf.contrib.layers.l1_regularizer(weight_decay)(W1))
tf.add_to_collection('regular', tf.contrib.layers.l1_regularizer(weight_decay)(W2))
tf.add_to_collection('regular', tf.contrib.layers.l1_regularizer(weight_decay)(W3))
l1 = tf.layers.dense(inputs=X_input, units=64, activation=tf.nn.relu, name='l1')
l2 = tf.layers.dense(inputs=l1, units=16, activation=tf.nn.relu, name='l2')
l3 = tf.layers.dense(inputs=l2, units=1, activation=None, name='l3')
if is_MSE:
loss = tf.losses.mean_squared_error(predictions=l3, labels=Y_input)
else:
loss = tf.losses.absolute_difference(predictions=l3, labels=Y_input)
if using_reg:
loss += tf.add_n(tf.get_collection('regular'))
optimizer = tf.train.GradientDescentOptimizer(lr)
train = optimizer.minimize(loss)
sess = tf.Session()
sess.run(tf.initialize_all_variables())
random.seed()
loss_save = []
for i in range(epoch):
indexs = np.arange(1, 400)
random.shuffle(indexs)
for j in range(8):
index = indexs[j*batch_size:(j+1)*batch_size]
batch_x = X_train[index][:]
batch_y = Y_train[index][:]
sess.run([train], feed_dict={X_input:batch_x, Y_input:batch_y})
temp = sess.run([loss], feed_dict={X_input:X_test, Y_input:Y_test})
loss_save.append(temp[0])
import matplotlib.pyplot as plt
plt.plot(range(epoch), loss_save)
pred = sess.run([l3], feed_dict={X_input:X_test})
print(np.mean((pred-Y_test)**2))
[1] Cramér H. Mathematical methods of statistics[M]. Princeton university press, 1999.
[2] https://engineering.purdue.edu/ChanGroup/ECE645Notes/StudentLecture08.pdf.
[3] Murphy K P. Machine learning: a probabilistic perspective[M]. MIT press, 2012.
[4] [1] Deep learning - Information theory & Maximum likelihood. https://jhui.github.io/2017/01/05/Deep-learning-Information-theory/.
[5] Goodfellow I, Bengio Y, Courville A. Deep learning[M]. MIT press, 2016.