【花书阅读笔记】第七章:深度学习中的正则化 Part II
提前终止
在训练过程中训练集误差逐渐降低,但是测试集误差逐渐升高
我们只要返回验证集误差最低的参数设置,可以获得验证集误差更低的模型。
提前终止(early stopping):当算法停止时,我们返回的这些参数不是最新的参数。当验证集上的误差在指定的循环次数内没有进一步改善时, 算法就会终止。
令 n 为评估间隔的步数。 令 p 为“耐心 (patience)",即观察到较坏的验证集表现 p 次后终止。 令 θo 为初始参数。
θ←θo
i←0
j←0
v←∞
θ∗←θ
i∗←i
while j<p do 运行训余算法 n 步,更新 θ
i←i+n
v′← ValidationSetError (θ)
if v′<v then
j←0
$\boldsymbol{\theta}^{} \leftarrow \boldsymbol{\theta} $
$i^{} \leftarrow i $
v←v′
else
j←j+1
end if
end while
最佳参数为 θ∗, 最佳训练步数为 i∗
提前终止是一种非常不显眼的正则化形式,它几乎不需要改变基本训练过程、目标函数或一组允许的参数值。权重衰减很容易地使网络陷入局部极小值。
考虑二次近似函数J:
J^(θ)=J(w∗)+21(w−w∗)⊤H(w−w∗)
梯度为
∇wJ^(w)=H(w−w∗)
下降的效果是:
w(τ)w(τ)−w∗=w(τ−1)−ϵ∇wJ^(w(τ−1))=w(τ−1)−ϵH(w(τ−1)−w∗)=(I−ϵH)(w(τ−1)−w∗)
现在利用H的特征分解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 并且 ϵ 选择得足够小以保证 ∣1−ϵλi∣<1, 经过 τ 次参数更新后轨迹如下:
Q⊤w(τ)=[I−(I−ϵΛ)τ]Q⊤w∗
在$ L^2$正则化的时候,我们可以得到
Q⊤w~=(Λ+αI)−1ΛQ⊤w∗Q⊤w~=[I−(Λ+αI)−1α]Q⊤w∗
我们发现只需要满足:
(I−ϵΛ)τ=(Λ+αI)−1α
那么L2正则与提前终止的结果等价
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n9KIiQSY-1596801134927)(image-20200807173548463.png)]
Bagging
Bagging (bootstrap aggregating)通过结合几个模型降低泛化误差。
主要的想法是通过训练几个不同的模型,然后让所有模型一起决策样例输出。这种技术成为集成方法。
假设我们有k个模型, 在每个模型上的误差是ϵi, 这个误差的的零均值方差是E[ϵi2]=v, 且不同的误差之间的协方差是E[ϵiϵj]=c。 集成模型后的平均误差变为了k1∑iϵi。而此时的零均方误差期望是:
E⎣⎡(k1i∑ϵi)2⎦⎤=k21E⎣⎡i∑⎝⎛ϵi2+j=i∑ϵiϵj⎠⎞⎦⎤=k1v+kk−1c
此时我们发现如果模型相关性越小,降低的均方误差越小。也就是说如果不同模型全部相同,那么均方误差将没有下降。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7BFQA50E-1596801134940)(image-20200807175925062.png)]
图为不同模型对数据集检测的差别,如果综合不同模型将会增大模型鲁棒性。
Dropout
dropout 可以被认为是集成大量深层神经网络的Bagging方法。dropout表示从基础网络中除去非输出单元后的子网络。
![【花书阅读笔记】第七章正则化 第二部分 【花书阅读笔记】第七章正则化 第二部分](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQwNi9iNzMyZGRlYTI3ZTIwM2RkNDk2ZWNhOTBjMDA0OTFmZS5wbmc=)
图中演示的是一个小的网络dropout的过程,其中有很多没有构成连接的网络。但通常在较大网络中,这种情况不怎么会出现。
。