pytorch 深度神经网络及训练 -2

防止过拟合
在统计学中,过拟合是指过于精确地匹配了特定数据集,导致模型不能良好地你和其他数据或预测未来的观察结果的现象。模型如果过拟合,会导致模型的偏差很小,但是方差会很大。相较用于训练的数据总量来说,一个模型只要结构足够复杂或参数足够多,就总是可以完美地适应数据。
过拟合的概念
深度学习模型的过拟合通常是指针对设计好的深度学习网络,在使用训练数据集训练时,在训练数据集上能够获得很高的识别精度(针对分类问题),或者很低的均方根误差(针对回归问题),但是把训练好的模型作用于测试集进行预测时,预测效果往往不是很理想。深度学习网络通常会有大量的可训练的参数,参数使网络具有更强的表示能力,使其在很多领域的性能超过了众多的“传统”机器学习方法,例如深度学习在图像识别、物体检测、语义分割和自然语言处理等领域表现优异。但众多的参数也带来了深度学习网络更容易得到过拟合的训练结果。
加号和减号分别代表空间中的两类数据,绿色实线代表过拟合的模型,黑色虚线代表为未过拟合的模型。可以发现虽然绿色实线完美地将训练数据全部分类正确,但是模型过于复杂,对训练数据过度拟合,和黑色虚线相比,当预测新的测试数据时会有更高的错误率。
防止过拟合的方法
在实践过程中,准确有效地检测深度学习模型是否过拟合是比较困难的,而且大的深度学习模型通常需要训练很长时间,如果没有有效防止网络过拟合的方式,很可能会花费大量的时间训练出无用的过拟合模型,所以众多的研究者也总结和发现了一些防止过拟合的方法。

  1. 增加数据量
    更深、更宽的深度学习网络,往往需要训练更多的参数,所以需要更多的数据量才能获得稳定的训练结果。更多的训练样本通常会使模型更加稳定,所以训练样本的增加不仅可以得到更有效的训练结果,也能在一定程度上防止模型过拟合,增强网络的泛化能力。但是如果训练样本有限,可以通过数据增强技术对现有的数据集进行扩充。数据增强则是通过已定的规则扩充数据,如在图像分类任务中,物体在图像中的位置、姿态、尺度、图像的明暗等都会影响分类结果,所以可以通过平移、旋转、缩放等手段对数据进行扩充。
  2. 合理的数据切分
    针对现有的数据集,在训练深度学习网络时,可以将数据集进行切分为训练集、验证集和测试集(或者使用交叉验证的方法,但是深度学习网络利用交叉验证进行训练的方式并不常见)。针对数据切分的结果,可以使用训练集来训练深度学习网络,并且通过验证集来监督网络的学习过程,可以在网络过拟合之前终止网络的训练。在模型训练结束后,可以利用测试集来测试训练结果的泛化能力。
    当然在保证数据尽可能来自同一分布的情况下,如何有效地对数据集进行切分也很重要,传统的数据切分方法通常是按照60:20:20的比例拆分,但是针对数据量的不同,数据切分的比例也不尽相同。尤其在大数据时代,如果数据集有几百万甚至上亿级条目时,这种60:20:20比例的划分已经不再合适,更好的方式是将数据集的98%用于训练网络,保证尽可能多的样本训练网络,使用1%的样本用于验证集,这1%的数据已经有足够多的样本来监督模型是否过拟合,最后使用1%的样本测试网络的泛化能力。所以针对数据量的大小、网络参数的数量,数据的切分比例可以根据实际的需要来确定。
    前面介绍的方法是通过增加数据量来监督、防止网络过拟合,但在实际情况中,数据量往往是已经确定了的,所以在有限的数据集上,如何防止网络过拟合显得更加重要。
  3. 正则化方法
    正则化通常是在损失函数上添加对训练参数的惩罚范数,通过添加的范数惩罚对需要训练的参数进行约束,防止模型过拟合。常用的正则化参数有l1和l2范数,l1范数惩罚项的目的是将参数的绝对值最小化,l2范数惩罚项的目的是将参数的平方和最小化。在固定的深度学习网络中,使用l1范数会趋向于使用更少的参数,而其他的参数都是0,从而增加网络稀疏性,防止模型过拟合。在实际应用中,一般利用l2范数进行正则化约束较多。使用正则化防止过拟合非常有效,如在经典的线性回归模型中,使用l1范数正则化的模型叫做Lasso回归,使用l2范数正则化的模型叫做Ridge回归。
  4. Dropout
    在深度学习网络中最常用的正则化技术是通过引入Dropout层,随机丢掉一些神经元,即在每个训练批次中,通过忽略一定百分比的神经元数量(通常是一半的神经元),减轻网络的过拟合现象。简单来说针对网络在前向传播的时候,让某个神经元的激活值以一定概率p停止工作,这样可以使模型泛化性更强,因为这样训练得到的网络的鲁棒性更强,不会过度依赖某些局部的特征。
    通过Dropout操作,会随机减少网络中神经元和连接权重的数量。
  5. 提前结束训练
    防止网络过拟合的最直观的方式就是提前终止网络的训练,其通常将数据切分为训练集、验证集和测试集相结合。例如,当网络在验证集上的损失不再减小,或者精度不再增加时,即认为网络已经训练充分,应终止网络的继续训练。但是该操作可能会获得训练不充分的最终参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值