【花书阅读笔记】第七章正则化 第二部分

【花书阅读笔记】第七章:深度学习中的正则化 Part II

提前终止

在训练过程中训练集误差逐渐降低,但是测试集误差逐渐升高

我们只要返回验证集误差最低的参数设置,可以获得验证集误差更低的模型。

提前终止(early stopping):当算法停止时,我们返回的这些参数不是最新的参数。当验证集上的误差在指定的循环次数内没有进一步改善时, 算法就会终止。


令 n 为评估间隔的步数。 令 p 为“耐心 (patience)",即观察到较坏的验证集表现 p p p 次后终止。 令 θ o \theta_{o} θo 为初始参数。
θ ← θ o \boldsymbol{\theta} \leftarrow \boldsymbol{\theta}_{o} θθo
i ← 0 i \leftarrow 0 i0
j ← 0 j \leftarrow 0 j0
v ← ∞ v \leftarrow \infty v
θ ∗ ← θ \theta^{*} \leftarrow \theta θθ
i ∗ ← i i^{*} \leftarrow i ii
while j < p j<p j<p do 运行训余算法 n n n 步,更新 θ \theta θ
i ← i + n i \leftarrow i+n ii+n
v ′ ← v^{\prime} \leftarrow v ValidationSetError ( θ ) (\boldsymbol{\theta}) (θ)
if v ′ < v v^{\prime}<v v<v then
j ← 0 j \leftarrow 0 j0
$\boldsymbol{\theta}^{} \leftarrow \boldsymbol{\theta} $
$i^{
} \leftarrow i $
v ← v ′ v \leftarrow v^{\prime} vv
else
j ← j + 1 j \leftarrow j+1 jj+1
end if
end while
最佳参数为 θ ∗ , \theta^{*}, θ, 最佳训练步数为 i ∗ i^{*} i


提前终止是一种非常不显眼的正则化形式,它几乎不需要改变基本训练过程、目标函数或一组允许的参数值。权重衰减很容易地使网络陷入局部极小值。

考虑二次近似函数 J J J:
J ^ ( θ ) = J ( w ∗ ) + 1 2 ( w − w ∗ ) ⊤ H ( w − w ∗ ) \hat{J}(\boldsymbol{\theta})=J\left(\boldsymbol{w}^{*}\right)+\frac{1}{2}\left(\boldsymbol{w}-\boldsymbol{w}^{*}\right)^{\top} \boldsymbol{H}\left(\boldsymbol{w}-\boldsymbol{w}^{*}\right) J^(θ)=J(w)+21(ww)H(ww)
梯度为
∇ w J ^ ( w ) = H ( w − w ∗ ) \nabla_{w} \hat{J}(\boldsymbol{w})=\boldsymbol{H}\left(\boldsymbol{w}-\boldsymbol{w}^{*}\right) wJ^(w)=H(ww)
下降的效果是:
w ( τ ) = w ( τ − 1 ) − ϵ ∇ w J ^ ( w ( τ − 1 ) ) = w ( τ − 1 ) − ϵ H ( w ( τ − 1 ) − w ∗ ) w ( τ ) − w ∗ = ( I − ϵ H ) ( w ( τ − 1 ) − w ∗ ) \begin{aligned} \boldsymbol{w}^{(\tau)} &=\boldsymbol{w}^{(\tau-1)}-\epsilon \nabla_{\boldsymbol{w}} \hat{J}\left(\boldsymbol{w}^{(\tau-1)}\right) \\ &=\boldsymbol{w}^{(\tau-1)}-\epsilon \boldsymbol{H}\left(\boldsymbol{w}^{(\tau-1)}-\boldsymbol{w}^{*}\right) \\ \boldsymbol{w}^{(\tau)}-\boldsymbol{w}^{*} &=(\boldsymbol{I}-\epsilon \boldsymbol{H})\left(\boldsymbol{w}^{(\tau-1)}-\boldsymbol{w}^{*}\right) \end{aligned} w(τ)w(τ)w=w(τ1)ϵwJ^(w(τ1))=w(τ1)ϵH(w(τ1)w)=(IϵH)(w(τ1)w)
现在利用 H H H的特征分解 H = Q Λ Q ⊤ \boldsymbol{H}=\boldsymbol{Q} \boldsymbol{\Lambda} \boldsymbol{Q}^{\top} H=QΛQ得到:
$$

w{(\tau)}-w{} =\left(I-\epsilon Q \Lambda Q{\top}\right)\left(w{(\tau-1)}-w^{}\right) \

Q{\top}\left(w{(\tau)}-w^{}\right) =(I-\epsilon \Lambda) Q{\top}\left(w{(\tau-1)}-w^{}\right)

$$
假定 w ( 0 ) = 0 w^{(0)}=0 w(0)=0 并且 ϵ \epsilon ϵ 选择得足够小以保证 ∣ 1 − ϵ λ i ∣ < 1 , \left|1-\epsilon \lambda_{i}\right|<1, 1ϵλi<1, 经过 τ \tau τ 次参数更新后轨迹如下:

Q ⊤ w ( τ ) = [ I − ( I − ϵ Λ ) τ ] Q ⊤ w ∗ \boldsymbol{Q}^{\top} \boldsymbol{w}^{(\tau)}=\left[\boldsymbol{I}-(\boldsymbol{I}-\epsilon \boldsymbol{\Lambda})^{\tau}\right] \boldsymbol{Q}^{\top} \boldsymbol{w}^{*} Qw(τ)=[I(IϵΛ)τ]Qw
在$ L^2$正则化的时候,我们可以得到
Q ⊤ w ~ = ( Λ + α I ) − 1 Λ Q ⊤ w ∗ Q ⊤ w ~ = [ I − ( Λ + α I ) − 1 α ] Q ⊤ w ∗ \begin{array}{l} \boldsymbol{Q}^{\top} \tilde{\boldsymbol{w}}=(\boldsymbol{\Lambda}+\alpha \boldsymbol{I})^{-1} \boldsymbol{\Lambda} \boldsymbol{Q}^{\top} \boldsymbol{w}^{*} \\ \boldsymbol{Q}^{\top} \tilde{\boldsymbol{w}}=\left[\boldsymbol{I}-(\boldsymbol{\Lambda}+\alpha \boldsymbol{I})^{-1} \alpha\right] \boldsymbol{Q}^{\top} \boldsymbol{w}^{*} \end{array} Qw~=(Λ+αI)1ΛQwQw~=[I(Λ+αI)1α]Qw
我们发现只需要满足:
( I − ϵ Λ ) τ = ( Λ + α I ) − 1 α (\boldsymbol{I}-\epsilon \boldsymbol{\Lambda})^{\tau}=(\boldsymbol{\Lambda}+\alpha \boldsymbol{I})^{-1} \alpha (IϵΛ)τ=(Λ+αI)1α
那么 L 2 L^2 L2正则与提前终止的结果等价

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n9KIiQSY-1596801134927)(image-20200807173548463.png)]

Bagging

Bagging (bootstrap aggregating)通过结合几个模型降低泛化误差。

主要的想法是通过训练几个不同的模型,然后让所有模型一起决策样例输出。这种技术成为集成方法。

假设我们有 k k k个模型, 在每个模型上的误差是 ϵ i \epsilon_i ϵi, 这个误差的的零均值方差是 E [ ϵ i 2 ] = v \mathbb{E}\left[\epsilon_{i}^{2}\right]=v E[ϵi2]=v, 且不同的误差之间的协方差是 E [ ϵ i ϵ j ] = c \mathbb{E}\left[\epsilon_{i} \epsilon_{j}\right]=c E[ϵiϵj]=c。 集成模型后的平均误差变为了 1 k ∑ i ϵ i \frac{1}{k} \sum_{i} \epsilon_{i} k1iϵi。而此时的零均方误差期望是:
E [ ( 1 k ∑ i ϵ i ) 2 ] = 1 k 2 E [ ∑ i ( ϵ i 2 + ∑ j ≠ i ϵ i ϵ j ) ] = 1 k v + k − 1 k c \begin{aligned} \mathbb{E}\left[\left(\frac{1}{k} \sum_{i} \epsilon_{i}\right)^{2}\right] &=\frac{1}{k^{2}} \mathbb{E}\left[\sum_{i}\left(\epsilon_{i}^{2}+\sum_{j \neq i} \epsilon_{i} \epsilon_{j}\right)\right] \\ &=\frac{1}{k} v+\frac{k-1}{k} c \end{aligned} E(k1iϵi)2=k21Eiϵi2+j=iϵiϵj=k1v+kk1c
此时我们发现如果模型相关性越小,降低的均方误差越小。也就是说如果不同模型全部相同,那么均方误差将没有下降。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7BFQA50E-1596801134940)(image-20200807175925062.png)]

图为不同模型对数据集检测的差别,如果综合不同模型将会增大模型鲁棒性。

Dropout

dropout 可以被认为是集成大量深层神经网络的Bagging方法。dropout表示从基础网络中除去非输出单元后的子网络。

在这里插入图片描述

图中演示的是一个小的网络dropout的过程,其中有很多没有构成连接的网络。但通常在较大网络中,这种情况不怎么会出现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值