AI学习之深度学习系列---提前终止

深度学习正则化—提前终止

本篇文章旨在解决下面四个问题:
1. 什么是提前终止?
2. 提前终止有什么好处?
3. 为什么提前终止会有用?
4. 怎么实现提前终止?

问题1、2与4的答案
提前终止的目的是为了防止过拟合,如果我们只要返回使验证误差最低的参数,就可以获得验证集误差更低的模型。
这里写图片描述
图1.学习曲线(横轴为训练轮次,纵轴为负的对数似然)
对图1的注释:
蓝色曲线表示训练集上的loss随着训练轮次的变化而变化的情况。
红色曲线表示测试集上的loss随着训练轮次的变化而变化的情况。
注释:红色曲线是每训练完一个epoch后就测试一次所得到的曲线。
从图中可以看出,测试误差在前几个epoch中逐渐减小,但是训练到某个epoch后,测试误差又有了小幅度的增大。这说明此时发生了过拟合。

发生过拟合是我们所不愿意看见的,我们可以利用提前终止(early stopping)
来防止过拟合的发生。

提前终止是指:在测试误差开始上升之前,就停止训练,即使此时训练尚未收敛(即训练误差未达到最小值)。

首先我们要保存好现在的模型(网络结构和权值),训练num_batch次(即一个epoch),得到新的模型。将测试集作为新模型的输入,进行测试。如果我们发现测试误差比上次得到的测试误差大,我们并不会马上终止测试,而是再继续进行几个epoch的训练与测试,如果测试误差依旧没有减小,那么我们就认为该试验在上一次达到最低测试误差时停下来。具体算法可参见《deep learning》

问题3的答案
该问题是为了回答为什么提前停止可以起到正则化的作用。
首先,我们对损失函数在 ω 的邻域内用Taylor展开式展开(只展开至二次),则有

J(ω)=J(ω)+1/2(ωω)TH(ωω)

其中H是Hessian矩阵。这里之所以没有一阶导数的信息,是因为 ω 是最优解,在 ω 的邻域中,可以近似地认为梯度为0。
J(ω) 求梯度,得到
ωJ(ω)=H(ωω)

我们将参数向量 ω(0) 初始化为原点0。由梯度下降法,可以得到如下公式:
ω(τ)=ω(τ1)αωĴ (ω(τ1))

ω(τ)=ω(τ1)αH(ω(τ1)ω)

ω(τ)ω=(IαH)(ω(τ1)ω)

将H进行特征值分解: H=QTπQ ,其中Q是标准正交矩阵,π是对角矩阵。
那么
ω(τ)ω=QT(Iαπ)Q(ω(τ1)ω)

Q(ω((τ))ω)=(Iαπ)Q(ω((τ1))ω)

其中 α 足够小以保证|1απi|<1

Qω(τ)=(I(Iαπ)τ)Qω

在分析L2正则项的时候, Qω̃ =(I(π+εI)1ε)Qω
由上面两个式子比较可知,如果下式成立:

(π+εI)1ε=(Iαπ)τ

则L2正则化和提前终止可以认为是等价的。进一步,有
ε/(πi+ε)=(1απi)τ

两侧取对数,可知:
log(ε/(πi+ε))=τlog(1απi)

作一个简单的近似:

log(1+πi/ε)=τlog(1απi)

πi/ε=ατπi

(比较Taylor展开式的第一个非常数项,Taylor展开式是唯一的)
从而

τ=1/αε

以上的推导说明了提前终止可以起到正则化的作用。

附录:
对图1的横轴的解释:
Epoch: 使用训练集的全部数据对模型进行一次完整训练,被称之为一代训练.
Batch: 使用训练集中的一小部分样本对模型权重进行一次反向传播的参数更新,这一小部分样本被称为一批数据.
Iteration: 使用一个Batch数据对模型进行一次参数更新的过程,称之为一次训练.
下面以一个实例来解释这三个概念:
CIFAR10数据集中有50000张训练图片,10000张测试图片。现在选择Batch size = 256对模型进行训练。
则每个Epoch要训练的图片数量:50000
训练集具有的Batch个数:50000/256 = 195 + 1 = 196
每个Epoch需要完成的Batch个数:196
每个Epoch需要完成的Iteration个数:196
每个Epoch中发生模型权重更新的次数:196
训练10代后,模型权重更新的次数:1960
不同代的训练,其实用的是同一个训练集的数据。但是因为不同代的模型实际上是处在模型空间的不同位置,越往后,越接近谷底.

[1] http://www.friskit.me/2017/03/27/l2-equals-to-stop-early/
[2] https://zhuanlan.zhihu.com/p/29409502
[3] Bengio大神的《deep learning》

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 深度学习-3D点云实战系列是一套教程,主要集中在用户如何利用深度学习技术在三维图像(点云)中进行识别、分类、分割等方面进行实战操作。该教程分为多个部分,从基础理论知识开始,到具体的应用案例,提供了具有实用性的操作方法和技巧。 该系列教程所需的数据集、代码和操作指南都可在下载链接中得到。通过学习这些教程,用户可以深入了解三维图像的特征提取、分类和分割等方面的应用技术,为实际应用做好充分准备。 对于研究三维图像应用的学者和从业者而言,深度学习-3D点云实战系列是一个很好的学习和工作工具,可以帮助他们更好地理解和应用所需的技术方法。同样,这些知识和技巧也能够通过应用到实际场景中,为用户带来更好的应用体验和效果。 总的来说,深度学习-3D点云实战系列是一套具有实用性和应用价值的教程,对学习研究三维图像应用的用户有很大的帮助和意义。通过下载和使用该系列,用户可以更好地掌握相关技术和方法,提升自己在相关领域的竞争力和应用能力。 ### 回答2: 深度学习已经成为当前最热门的技术领域之一,随着科技的迅猛发展,3D点云技术也越来越受到人们的关注。为了提高大家在这方面的知识水平,有关3D点云实战的系列教程应运而生,这一系列教程是在深度学习的背景下,讲述了3D点云于人工智能的结合应用。 该系列下载包含多篇文章,旨在通过通俗易懂的方式,带领大家深入了解3D点云数据的处理、特征提取、分类、语义分割等方面。同时,还涉及到了目标检测、跨模态转换、深度生成模型等实际应用场景。这一系列教程着重讲述了3D点云与深度学习的结合,并详细介绍了几种常见的深度学习算法模型,如PointNet、GRNet等模型。 这一系列教程可供各种人群使用,无论您是初学者还是专业人士,都可以通过这些教程迅速掌握3D点云与深度学习在实际项目中的应用。此外,教程中还提供了大量的相关代码和数据集,可以方便读者进行进一步的实验和研究。 总之,该系列的下载是一份非常有价值的资料,具有重要的现实意义和应用价值,对关注深度学习和3D点云技术的朋友来说,是一份不可多得的学习材料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值