避免神经网络过拟合的5种技术

作者: THU数据派 2019-12-20 09:15:48

 本文介绍了5种在训练神经网络中避免过拟合的技术。

最近一年我一直致力于深度学习领域。这段时间里,我使用过很多神经网络,比如卷积神经网络、循环神经网络、自编码器等等。我遇到的最常见的一个问题就是在训练时,深度神经网络会过拟合。

当模型试着预测噪声较多的数据的趋势时,由于模型参数过多、过于复杂,就会导致过拟合。过拟合的模型通常是不精确的,因为这样的预测趋势并不会反映数据的真实情况。我们可以通过模型在已知的数据(训练集)中有好的预测结果,但在未知的数据(测试集)中较差的表现来判断是否存在过拟合。机器学习模型的目的是从训练集到该问题领域的任何数据集上均有泛化的较好表现,因为我们希望模型能够预测未知的数据。

在本文中,我将展示5种在训练神经网络时避免过拟合的技术。

一、简化模型

处理过拟合的第一步就是降低模型复杂度。为了降低复杂度,我们可以简单地移除层或者减少神经元的数量使得网络规模变小。与此同时,计算神经网络中不同层的输入和输出维度也十分重要。虽然移除层的数量或神经网络的规模并无通用的规定,但如果你的神经网络发生了过拟合,就尝试缩小它的规模。

二、早停

在使用迭代的方法(例如梯度下降)来训练模型时,早停是一种正则化的形式。因为所有的神经网络都是通过梯度下降的方法来学习的,所以早停是一种适用于所有问题的通用技术。使用这种方法来更新模型以便其在每次迭代时能更好地适应训练集。在一定程度上,这种方法可以改善模型在测试集上的表现。但是除此之外,改善模型对训练集的拟合会增加泛化误差。早停规则指定了模型在过拟合之前可以迭代的次数。

避免神经网络过拟合的5种技术(附链接)

早停

上图展示了这种技术。正如我们看到的,在几次迭代后,即使训练误差仍然在减少,但测验误差已经开始增加了。

三、使用数据增强

在神经网络中,数据增强只意味着增加数据规模,也就是增加数据集里中图像的数量。一些热门的图像增强技术有翻转、平移、旋转、缩放、改变亮度、添加噪声等等。获取更全面的参考,可访问:

Albumentations:

https://github.com/albumentations-team/albumentations

Imgaug:

https://github.com/aleju/imgaug

避免神经网络过拟合的5种技术(附链接)

数据增强

如上图所示,使用数据增强可以生成多幅相似图像。这可以帮助我们增加数据集规模从而减少过拟合。因为随着数据量的增加,模型无法过拟合所有样本,因此不得不进行泛化。

四、使用正则化

正则化是一种降低模型复杂度的方式。它是通过在损失函数中添加一个惩罚项来实现正则化。最常见的技术是L1和L2正则化:

  • L1惩罚项的目的是使权重绝对值最小化。公式如下:
避免神经网络过拟合的5种技术(附链接)

L1正则化

  • L2惩罚项的目的是使权重的平方最小化。公式如下:
避免神经网络过拟合的5种技术(附链接)

L2正则化

以下表格对两种正则化方法进行了对比。

L1正则化

L2正则化

1. L1惩罚权重绝对值的总和

1. L2惩罚权重平方和的总和

2. L1生成简单、可解释的模型

2. L2正则化能够学习复杂数据模式

3. L1受极端值影响较小

3. L2受极端值影响较大

L1正则化vs L2正则化

那么哪一种方式更有利于避免过拟合呢?答案是——看情况。如果数据过于复杂以至于无法准确地建模,那么L2是更好的选择,因为它能够学习数据中呈现的内在模式。而当数据足够简单,可以精确建模的话,L1更合适。对于我遇到的大多数计算机视觉问题,L2正则化几乎总是可以给出更好的结果。然而L1不容易受到离群值的影响。所以正确的正则化选项取决于我们想要解决的问题。

五、使用丢弃法(Dropouts)

丢弃法是一种避免神经网络过拟合的正则化技术。像L1和L2这样的正则化技术通过修改代价函数来减少过拟合。而丢弃法修改神经网络本身。它在训练的每一次迭代过程中随机地丢弃神经网络中的神经元。当我们丢弃不同神经元集合的时候,就等同于训练不同的神经网络。不同的神经网络会以不同的方式发生过拟合,所以丢弃的净效应将会减少过拟合的发生。

避免神经网络过拟合的5种技术(附链接)

使用丢弃法

如上图所示,丢弃法被用于在训练神经网络的过程中随机丢弃神经网络中的神经元。这种技术被证明可以减少很多问题的过拟合,这些问题包括图像分类、图像切割、词嵌入、语义匹配等问题。

结论

简单回顾下上述内容,我解释了什么是过拟合以及为什么它是神经网络当中常见的问题。接下来我又给出了五种最常见的在训练神经网络过程中避免过拟合的方法——简化模型、早停、数据增强、正则化以及丢弃法。

神经网络 数据 图形
上一篇:人工智能时代,程序员就要被淘汰了? 下一篇:2019年Reddit机器学习板块17个热门项目:最新代码、资源应有尽有
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

5个杰出的商业机器学习用例

现在是仔细研究ML的好时机,看看您如何将其应用到您的业务中。下面是企业将ML应用到产品和服务创新的5种方式。

物联网IoT996 ·  3天前
如何使用支持向量机学习非线性数据集

什么是支持向量机呢?支持向量机是监督机器学习模型,可对数据进行分类分析。实际上,支持向量机算法是寻找能将实例进行分离的优秀超平面的过程。

不靠谱的猫 ·  4天前
机器学习的工作原理

机器学习是一种数据分析技术,可在数据集上构建预测模型,以提供有用的答案,这些答案可用于制定重要决策。 它利用统计概念和数学方法通过python和R等编码语言处理大数据。有多种机器学习技术。 但是,本文将介绍回归和分类。

闻数起舞 ·  2020-05-19 09:11:20
如何解决企业AI的巨大挑战

根据Gartner的说法,组织需要建立特定的用例,并部署具有可衡量结果的技术,以实现AI的价值。

闻数起舞 ·  2020-05-19 08:11:09
谷歌提出AI训练提速新方法,榨干GPU空闲时间,最高提速3倍多

因为通用计算芯片不能满足神经网络运算需求,越来越多的人转而使用GPU和TPU这类专用硬件加速器,加快神经网络训练的速度。

晓查 ·  2020-05-14 14:21:50
神经网络?决策树?都做不到!谁能解决可解释性AI?

神经网络是准确的,但无法解释;在计算机视觉中,决策树是可解释的,但不准确。可解释性AI(XAI)试图弥合这一分歧,但正如下面所解释的那样,“XAI在不直接解释模型的情况下证明了决策的合理性”。

读芯术 ·  2020-05-14 08:40:57
基于机器学习的用户实体行为分析技术在账号异常检测中的应用

伴随企业业务的不断扩增和电子化发展,企业自身数据和负载数据都开始暴增。然而,作为企业核心资产之一的内部数据,却面临着日益严峻的安全威胁。越来越多以周期长、频率低、隐蔽强为典型特征的非明显攻击绕过传统安全检测方法,对大量数据造成损毁。

信息安全与通信保密 ·  2020-05-13 11:10:32
人工智能如何改变医疗保健 实时数据分析对医疗保健至关重要

科学家认为,人工智能可以使人类摆脱许多领域的例行任务。医疗保健似乎是最需要这些更改的领域。

AI国际站 ·  2020-05-12 11:05:08
Copyright©2005-2020 51CTO.COM 版权所有 未经许可 请勿转载