爱吧机器人网 » 技术 > 神经网络 > 正文

从检查过拟合到数据增强 一文简述提升神经网络性能方法

核心提示:神经网络是一种在很多用例中能够提供最优准确率的机器学习算法。但是,很多时候我们构建的神经网络的准确率可能无法令人满意,或者无法让我们在数据科学竞赛中拿到领先名次



神经网络是一种在很多用例中能够提供最优准确率的机器学习算法。

但是,很多时候我们构建的神经网络的准确率可能无法令人满意,或者无法让我们在数据科学竞赛中拿到领先名次。

所以,我们总是在寻求更好的方式来改善模型的性能。有很多技术可以帮助我们达到这个目标。本文将介绍这些技术,帮助大家构建更准确的神经网络。

检查过拟合



保证神经网络在测试集上运行良好的第一步就是验证神经网络没有过拟合。什么是过拟合呢?

当你的模型开始记录训练数据而不是从中学习的时候,就发生了过拟合。然后,当你的模型遇到之前没有见过的数据时,它就无法很好的运行。

为了更好地理解,我们来看一个类比。我们有一个记性特好的同学,假设一次数学考试马上就要来临了。

你和这位擅长记忆的同学开始学习课本。这名同学记住课本中的每一个公式、问题以及问题的答案,然而你要比他来得聪明一些,所以你决定以直觉为基础、解决问题、学习这些公式是如何发挥作用的。

考试来了,如果试卷中的问题是直接来源于课本的,那么可以想像那名记忆力超群的同学发挥得更好,但是,如果试题是涉及应用直观知识的全新问题,那么你将会做得更好,而你的朋友会惨败。

如何鉴别模型是否过拟合呢?你仅仅需要交叉检查训练准确率和测试准确率。

如果训练准确率远远高出了测试准确率,那么可以断定你的模型是过拟合了。你也可以在图中画出预测点来验证。

下面是一些避免过拟合的技术:

数据正则化(L1 或 L2);

Dropout:随机丢弃一些神经元之间的连接,强制神经网络寻找新的路径并泛化;

早停(Early Stopping):促使神经网络训练早点停止,以减少在测试集中的误差。

超参数调节




超参数是你必须给网络初始化的值,这些数值不能在训练的过程中学到。

在卷积神经网络中,这些超参数包括:核大小、神经网络层数、激活函数、损失函数、所用的优化器(梯度下降、RMSprop)、批大小、训练的 epoch 数量等等。

每个神经网络都会有最佳超参数组合,这组参数能够得到最大的准确率。

你也许会问,「有这么多超参数,我如何选择每个参数呢?」不幸的是,对每个神经网络而言,并没有确定最佳超参数组合的直接方法,所以通常都是通过反复试验得到的。但是也有一些关于上述超参数的最佳实践:

学习率:选择最优学习率是很重要的,因为它决定了神经网络是否可以收敛到全局最小值。选择较高的学习率几乎从来不能到达全局最小值,因为你很可能跳过它。所以,你总是在全局最小值附近,但是从未收敛到全局最小值。选择较小的学习率有助于神经网络收敛到全局最小值,但是会花费很多时间。这样你必须用更多的时间来训练神经网络。较小的学习率也更可能使神经网络困在局部极小值里面,也就是说,神经网络会收敛到一个局部极小值,而且因为学习率比较小,它无法跳出局部极小值。所以,在设置学习率的时候你必须非常谨慎。

神经网络架构:并不存在能够在所有的测试集中带来高准确率的标准网络架构。你必须实验,尝试不同的架构,从实验结果进行推断,然后再尝试。我建议使用已经得到验证的架构,而不是构建自己的网络架构。例如:对于图像识别任务,有 VGG net、Resnet、谷歌的 Inception 网络等。这些都是开源的,而且已经被证明具有较高的准确率。所以你可以把这些架构复制过来,然后根据自己的目的做一些调整。

优化器和损失函数:这方面有很多可供选择。事实上,如果有必要,你可以自定义损失函数。常用的优化器有 RMSprop、随机梯度下降和 Adam。这些优化器貌似在很多用例中都可以起作用。如果你的任务是分类任务,那么常用的损失函数是类别交叉熵。如果你在执行回归任务,那么均方差是最常用的损失函数。你可以自由地使用这些优化器超参数进行试验,也可以使用不同的优化器和损失函数。

批大小和 epoch 次数:同样,没有适用于所有用例的批大小和 epoch 次数的标准值。你必须进行试验,尝试不同的选择。在通常的实践中,批大小被设置为 8、16、32……epoch 次数则取决于开发者的偏好以及他/她所拥有的计算资源。

激活函数:激活函数映射非线性函数输入和输出。激活函数是特别重要的,选择合适的激活函数有助于模型学习得更好。现在,整流线性单元(ReLU)是最广泛使用的激活函数,因为它解决了梯度消失的问题。更早时候,Sigmoid 和 Tanh 函数都是最常用的激活函数。但是它们都会遇到梯度消失的问题,即在反向传播中,梯度在到达初始层的过程中,值在变小,趋向于 0。这不利于神经网络向具有更深层的结构扩展。ReLU 克服了这个问题,因此也就可以允许神经网络扩展到更深的层。



ReLU 激活函数

算法集成



如果单个神经网络不像你期待的那样准确,那么你可以创建一个神经网络集成,结合多个网络的预测能力。

你可以选择不同的神经网络架构,在不同部分的数据集上训练它们,然后使用它们的集合预测能力在测试集上达到较高的准确率。

假设你在构建一个猫狗分类器,0 代表猫,1 代表狗。当组合不同的猫狗分类器时,基于单个分类器之间的皮尔逊相关系数,集成算法的准确率有了提升。让我们看一个例子,拿 3 个模型来衡量它们各自的准确率:

Ground Truth: 1111111111
Classifier 1: 1111111100 = 80% accuracy
Classifier 2: 1111111100 = 80% accuracy
Classifier 3: 1011111100 = 70% accuracy

3 个模型的皮尔逊相关系数很高。所以,集成它们并不会提升准确率。如果我们使用多数投票的方式来组合这三个模型,会得到下面的结果:

Ensemble Result: 1111111100 = 80% accuracy
现在,让我们来看一组输出具备较低皮尔逊相关系数的模型:

Ground Truth: 1111111111
Classifier 1: 1111111100 = 80% accuracy
Classifier 2: 0111011101 = 70% accuracy
Classifier 3: 1000101111 = 60% accuracy

当我们组合这三个弱学习器的时候,会得到以下结果:

Ensemble Result: 1111111101 = 90% accuracy
正如你在上面所看到的,具有低皮尔逊相关系数的弱学习器的组合优于具有较高皮尔逊相关系数的学习器的组合。

缺乏数据



在使用了上述所有的技术以后,如果你的模型仍然没有在测试集上表现得更好一些,这可能是因为缺乏数据。

在很多用例中训练数据的数量是有限的。如果你无法收集更多的数据,那么你可以采取数据增强方法。



数据增强技术

如果你正在使用的是图像数据集,你可以通过剪切、翻转、随机裁剪等方法来增加新的图像。这可以为你正在训练的神经网络提供不同的样本。

结论

这些技术被认为是最佳实践经验,在提升模型学习特征的能力方面通常是有效的。希望对大家有所帮助。

End

上一篇:TensorFlow的使用之实现神经网络
下一篇:如何应用TFGAN快速实践生成对抗网络?

本周栏目热点

神经网络:人工智能以及我们的未来

[2016-11-20]   作者:James Crowder翻译:王益军审校:心原文链接:techcrunch把自己想象成在一辆未来的自动驾驶汽车的乘客。这辆汽车与你以一种 ...

计算机视觉领域前沿一览

[2018-07-30]  计算机视觉研究如何让计算机可以像人类一样去理解图片、视频等多媒体资源内容。例如用摄影机和计算机代替人眼对目标进行识别、跟踪和测量等,并进一步处理成更适合人眼观察或......

[2016-11-20]   BP人工 神经网络 改进 算法 C语言BP网络接受样本的顺序会对训练结果有较大的影响,基本 算法 比较偏爱较后出现的样本,因此,改进 算法 为 ...

[2016-11-20]   基于JOONE快速开发 神经网络 一 神经网络 介绍 20世纪70年代以来,随着计算机技术的不断发展,人工 神经网络 (ANN)的理论与实践都得 ...

神经网络和模糊逻辑的工作流

[2016-11-20]   行业观察 神经网络 和模糊逻辑的工作流 null 来源:神州数码erp 发布时间: 2009-10-14 9:06:01 关键词: 工作流,协同,B2B,OA  以下 ...

用人工智能神经网络给黑白照片上色 复现记忆中的旧时光

[2018-09-14]  在人工智能的时代,深度学习几乎已经应用在每一个领域,但如果我们能够构建一个基于深度学习的模型,让它能够给老照片着色,重现我们童年的 ...

AutoMl及NAS概述:更有效地设计神经网络模型工具

[2018-09-14]  还在为自己构建深度模型框架而抓耳饶腮吗?AutoML及NAS了解下,能够自动生成合适的模型结构,解脱你的双手,善待你的头发。随着人 ...

精选推荐

助力卷积神经网络时空特征学习 史上最大行人重识别视频数据集被提出
助力卷积神经网络时空特征学习 史上最大行人重识别视频数据集被提出

[2017-12-25]  本文提出了一个大型的、长序列的、用于行人重识别的视频数据集,简称LVreID。与现有的同类数据集相比,该数据集具有以下特点:1)长序列:平均每段视频序列长为200帧,包含丰......

从AI中窥探人性
从AI中窥探人性

[2018-01-03]  人们对人造智能的恐惧早已成为科幻书籍和电影的极好题材。但现在,一些同样的担忧开始影响关于现实世界AI技术的政策讨论。如果这样的担忧演变成为一种技术恐慌...

美国Natilus公司试飞水上无人货机 设计简单成本降低
美国Natilus公司试飞水上无人货机 设计简单成本降低

[2017-12-28]  Natilus创业公司成立于2014年,其梦想是建造大型无人机,以半价提供比船舶快得多国际货运。在十二月份,Natilus计划在旧金山湾测试一个9米翼展的小型原型无人机的水上滑行能力......

谷歌在中国成立一个新的人工智能(AI)研究中心
谷歌在中国成立一个新的人工智能(AI)研究中心

[2017-12-13]  谷歌正在中国建立一个新的人工智能(AI)研究中心,希望进一步扩展到中国,以充分利用中国高度重视的人工智能技术。人工智能是目前地球上最具竞争力的领域之一,亚马逊,微软......

人工神经网络技术解码人类行为和想象时的大脑活动信号
人工神经网络技术解码人类行为和想象时的大脑活动信号

[2017-08-23]  为搜索引擎过滤信息,棋盘游戏对弈,识别图像 人工智能在某些任务中远远超过了人类智能。来自弗莱堡由神经科学家私人讲师Tonio Ball博士领导的几个杰出的BrainLinks-Bra......

通过对抗性图像黑入大脑
通过对抗性图像黑入大脑

[2018-03-02]  在上面的图片中,左边是一张猫的照片。在右边,你能分辨出它是同一只猫的图片,还是一张看起来相似的狗的图片?这两张图片之间的区别在于, ...

机器人工程师具体都做什么?
机器人工程师具体都做什么?

[2017-12-08]  机器人工程师是幕后设计师,负责创建机器人和机器人系统,能够执行人类无法完成或不愿意完成的任务。 通过他们的创造,机器人工程师帮助工作更安全,更轻松,更高效,特别是......

苹果AI主管透露自动驾驶汽车项目关于机器学习方面的进展
苹果AI主管透露自动驾驶汽车项目关于机器学习方面的进展

[2017-12-11]  苹果隐秘的自动驾驶汽车项目多年来一直在转移焦点,但今年似乎正在加速。 4月份,公司获得了在加利福尼亚州进行自动驾驶汽车测试的许可证,而在6月份,苹果公司首席执行官库......