由MLE与MAP推导损失函数和正则化

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=1nf(yi;θ)=i=1nσ2π 1exp[2σ2(yiθ)2]=(2πσ2)2n1exp[2σ2i=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σ2i=1n(yiθ)2θlogf(y;θ)=22σ2i=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=n1i=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=1nE[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[θ22logf(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=1nyi
因为
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) yN(μ=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(yx;θ)=σ2π 1e2σ2(yy^)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(yx;θ)=i=1mp(y(i)x(i);θ)=i=1mσ2π 1exp2σ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(yx;θ)=i=1mlog(σ2π 1exp2σ2(y(i)y^(i))2)=mlogσ2mlog2πi=1m2σ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=1m2σ2(y(i)y^(i))2=m1i=1my(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(yx;θ)=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) yLaplace(μ=y^,λ),有
p ( y ∣ x ; θ ) = 1 2 λ e − ∣ y − y ^ ∣ λ p(y|x;\theta)=\frac{1}{2\lambda}e^{-\frac{|y-\hat y|}{\lambda}} p(yx;θ)=2λ1eλyy^
似然函数为
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(yx;θ)=i=1mp(y(i)x(i);θ)=i=1m2λ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(yx;θ)=mlog2λi=1mλ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=1my(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(yx;θ)=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=1x;θ)=y^p(y=0;θ)=1y^
概率质量函数为
P ( y ∣ x ; θ ) = y ^ y ( 1 − y ^ ) 1 − y P(y|x;\theta)=\hat y^y(1-\hat y)^{1-y} P(yx;θ)=y^y(1y^)1y
对于 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} y0,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=1my^(i)y(i)(1y^(i))1y(i)=i=1mpθ(y=1x(i))y(i)(1pθ(y=1x(i))1y(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=1my(i)logy^(i)+(1y(i))log(1y^(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=1kpjI(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=1mj=1KpjI(y(i))=i=1mj=1Kpθ(y(i)=jx(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=1mj=1KI(y(i))logpθ(y(i)=jx(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=1mj=1Ky(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=1mlog(λ2π 1exp2λθ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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值