您当前的位置:首页 > 电脑百科 > 人工智能

了解神经网络和模型泛化

时间:2020-10-30 10:10:55  来源:  作者:

深层神经网络的模型概括,过度拟合和正则化方法的挑战

了解神经网络和模型泛化

> Source

 

在完成了与神经网络有关的多个AI项目之后,我意识到模型的概括能力对于AI项目的成功至关重要。 我想写这篇文章来帮助读者了解如何使用正则化方法来优化模型的性能,并更好地理解基于神经网络提供可靠且可扩展的AI解决方案的复杂性。

泛化是用于描述模型对新数据做出反应的能力的术语。

泛化是模型经过训练后可以消化新数据并做出准确预测的能力。 这可能是您的AI项目中最重要的元素。 模型的概括能力对于AI项目的成功至关重要。 确实,我们担心模型在训练数据上训练得太好,但是无法推广。

因此,我们常常没有达到生产阶段……在提供新数据时,它会做出不准确的预测,即使模型能够对训练数据做出准确的预测,也会使模型无用。 这称为过拟合。

相反的情况也可能发生。 欠拟合是指未对数据进行足够的模型训练。 在欠拟合的情况下,即使使用训练数据,模型也一样无用,也无法做出准确的预测。

了解神经网络和模型泛化

 

在所有AI项目中,我们都基于现有数据构建模型,并希望它们能完美地适应(概括)新数据。 在监督学习中,我们拥有过去的数据以及所有我们希望预测的预测值和真实值。 尽管定义了业务问题,但是收集相关数据,清理和准备数据以及建立模型都具有挑战性,并且非常耗时……另一个挑战仍然存在–如何知道模型能否很好地预测未来?

训练可以很好地泛化到新数据的深度神经网络是一个具有挑战性的问题。

当涉及到神经网络时,正则化是一种对学习算法稍加修改的技术,以使模型具有更好的泛化能力。 反过来,这也改善了模型在看不见的数据上的性能。

模型复杂度

从业务角度来看,深度神经网络的主要优势在于,随着向越来越大的数据集馈入数据,神经网络的性能不断提高。 当公司尝试创建数据网络效果时,这非常有趣。

但是,具有几乎无限数量的示例的模型最终将在网络能够学习的容量方面达到某些限制。 正确的正则化是获得更好的泛化性能的关键原因,因为深度神经网络经常被过度参数化并可能遭受过度拟合的问题。

我们可以通过以下方法降低神经网络的复杂度,以减少过度拟合:

了解神经网络和模型泛化

 

减少模型的容量可将模型过度拟合训练数据集的可能性降低到不再适合的程度。

通过保持较小的网络权重来减少过度拟合的技术称为正则化方法。

正则化:添加额外信息以将不适的问题转化为更稳定的良好问题的一类方法。

下面,我列出了我们经常使用的几种正则化方法(确实存在其他方法,例如权重约束或活动正则化)。 但是,减少过度拟合的最简单方法是从本质上限制模型的容量。

全连接(FC)层最容易过拟合,因为它们包含最多的参数。 辍学应该应用于这些层(影响它们与下一层的连接)。 除标准形式的辍学外,还存在几种辍学的变体,旨在进一步提高泛化性能。 例如,自适应辍学,其中辍学率由另一个神经网络动态确定…

了解神经网络和模型泛化

 

但是,我注意到,如果您使用CNN,则现在不经常使用辍学。 相反,我看到越来越多的数据科学家使用批处理规范化。 当您拥有大量数据集时,批处理规范化比辍学更为有效。

噪声正规化的一种常见类型是在训练过程中注入噪声:将噪声添加或乘以神经网络的隐藏单元。 通过在训练深度神经网络时允许一些误差,不仅可以提高训练性能,而且可以提高模型的准确性。

根据Jason Brownlee的说法,训练期间使用的最常见的噪声类型是在输入变量中添加高斯噪声。 添加的噪声量(例如,扩展或标准偏差)是可配置的超参数。 噪声太小没有作用,而噪声太大使映射功能难以学习。 确保在评估模型或使用模型对新数据进行预测时,不添加任何噪声源。

早期停止早期停止是一种交叉验证策略,在该策略中,我们将一部分训练集保留为验证集。 实际上,当我们看到验证集的性能越来越差时,我们就停止了对模型的训练。

换句话说,这种方法尝试在估计噪声的模型之前,尽早停止估计器的训练阶段,即该阶段已学会从数据中提取所有有意义的关系。

这是通过监视验证损失(或另一个验证指标)并在此特定指标停止改进时结束训练阶段来完成的。 通过这样做,我们给估算器足够的时间来学习有用的信息,但没有足够的时间来学习噪声。

了解神经网络和模型泛化

> Source

 

我使用这种方法的问题是,不能保证在任何给定的时间点,模型都不会再次开始改进。 一个比提早停止更实际的方法是存储在验证集上获得最佳性能的模型权重…

转移学习此方法是通过将网络的权重初始化为在大型通用数据集中预先训练的具有相同体系结构的另一个网络的权重来完成的。 我们经常将这种方法用于计算机视觉项目。 当我们的业务问题没有太多数据时,它对我们有很大帮助,但是我们可以找到另一个类似的问题。 在这种情况下,我们可以使用迁移学习来减少过度拟合。

批处理规范化(BN)是一种规范深度神经网络中间层中的激活的技术。

批处理标准化除了具有正则化效果外,还可以通过其他方式帮助您的模型(允许使用更高的学习率等)。 我建议您验证每层的权重和偏差分布看起来近似于标准正态。

由于BN具有正则化效果,因此这也意味着您可以经常删除辍学(这很有帮助,因为辍学通常会减慢训练速度)。

在训练过程中,我们会更新批次归一化参数以及神经网络的权重和偏差。 批处理归一化的另一个重要观察结果是,由于使用迷你批显示随机性,因此批处理归一化可作为正则化。

了解神经网络和模型泛化

 

批处理大小=一次向前/向后传递中的训练示例数。 批次大小越大,您将需要更多的存储空间。

数据扩充。 处理过度拟合的另一种方法是提高数据质量。 您可能会想到离群值/噪声消除,但是实际上它们的效率非常有限。 另一个有趣的方式(尤其是在与图像有关的任务中)是数据增强。 目的是随机转换训练样本,以使它们在模型中看起来不同时,它们传达相同的语义信息。 就个人而言,当我发现模型在训练集上的损失接近0时,我便开始考虑使用数据增强。

意见建议

我建议在考虑正则化方法之前先执行一些基本步骤。 确实,在大多数时候,我们无法确定对于每个学习问题,都存在一个可学习的神经网络模型,该模型可以产生所需的低泛化误差。

正确的期望

首先要找到一个很好的参考,它表示您在数据集或最相似的可找到参考的体系结构上,都可以达到所需的泛化错误。 在训练自己的数据集之前,尝试在这些参考数据集上重现这样的结果是很有趣的,以测试所有基础结构是否正确到位。

训练程序验证

这也是检查您的训练程序是否正确的关键。 这些检查包括:

了解神经网络和模型泛化

 

超参数/架构搜索

最后,关键是要了解,正则化本身并不一定意味着您的泛化误差会变小:模型必须具有足够大的容量才能实现良好的泛化属性。 这通常意味着您需要足够深的网络,然后才能看到正则化的好处。

如果没有其他帮助,您将必须测试多个不同的超参数设置(贝叶斯优化可能会在此处提供帮助)或多个不同的体系结构更改。

有关此主题的更多信息,我建议以下链接:

-https://arxiv.org/pdf/1710.05179.pdf- https://machinelearningmastery.com/train-neural-networks-with-noise-to-reduce-overfitting/- https://towardsdatascience.com/batch- normalization-in-neural-networks-1ac91516821c- https://papers.nips.cc/paper/5032-adaptive-dropout-for-training-deep-neural-networks.pdf- http://jmlr.org/papers/ volume15 / srivastava14a.old / srivastava14a.pdf- https://wp.wwu.edu/machinelearning/2017/01/22/generalization-and-overfitting/

(本文翻译自Alexandre Gonfalonieri的文章《Understand Neural Networks & Model Generalization》,参考:https://towardsdatascience.com/understand-neural-networks-model-generalization-7baddf1c48ca)



Tags:神经网络   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
SimpleAI.人工智能、机器学习、深度学习还是遥不可及?来这里看看吧~ 从基本的概念、原理、公式,到用生动形象的例子去理解,到动手做实验去感知,到著名案例的学习,到用所学来实现...【详细内容】
2021-10-19  Tags: 神经网络  点击:(47)  评论:(0)  加入收藏
MNIST 这里就不多展开了,我们上几期的文章都是使用此数据集进行的分享。手写字母识别EMNIST数据集Extended MNIST (EMNIST), 因为 MNIST 被大家熟知,所以这里就推出了 EMNIST...【详细内容】
2021-09-08  Tags: 神经网络  点击:(182)  评论:(0)  加入收藏
理解什么是人工智能,以及机器学习和深度学习如何影响它,是一种不同凡响的体验。在 Mate Labs 我们有一群自学有成的工程师,希望本文能够分享一些学习的经验和捷径,帮助机器学习...【详细内容】
2021-06-09  Tags: 神经网络  点击:(128)  评论:(0)  加入收藏
资料来源:getwallpapers.com 深度学习是机器学习中重要分支之一。它的目的是教会计算机做那些对于人类来说相当自然的事情。深度学习也是无人驾驶汽车背后的一项关键性技术,...【详细内容】
2021-04-13  Tags: 神经网络  点击:(168)  评论:(0)  加入收藏
私有虚拟网络(VPN)是在公用网络基础之上建立的私有加密通信隧道网络,企业对于自管辖网络中个人使用VPN软件行为具有监管责任,但技术上却很难识别VPN的加密与通信方式,因此利用人工智能(AI)领域的神经网络技术从网络流量中识...【详细内容】
2021-01-07  Tags: 神经网络  点击:(193)  评论:(0)  加入收藏
深层神经网络的模型概括,过度拟合和正则化方法的挑战> Source 在完成了与神经网络有关的多个AI项目之后,我意识到模型的概括能力对于AI项目的成功至关重要。 我想写这篇文章来...【详细内容】
2020-10-30  Tags: 神经网络  点击:(101)  评论:(0)  加入收藏
本文最初发表于 Towards Data Science 博客,经原作者 Andre Ye 授权,InfoQ 中文站翻译并分享。卷积神经网络(Convolutional Nerual Network,CNN)构成了图像识别的基础,这无疑是深...【详细内容】
2020-10-16  Tags: 神经网络  点击:(115)  评论:(0)  加入收藏
本报告讨论了非常厉害模型优化技术 —— 知识蒸馏,并给大家过了一遍相关的TensorFlow的代码。...【详细内容】
2020-09-25  Tags: 神经网络  点击:(92)  评论:(0)  加入收藏
算法算法从1950年代的早期研究开始,机器学习的所有工作似乎都随着神经网络的创建而积累起来。 从逻辑回归到支持向量机,相继提出了新算法之后的算法,但是从字面上看,神经网络是...【详细内容】
2020-09-17  Tags: 神经网络  点击:(90)  评论:(0)  加入收藏
卷积神经网络(CNN)广泛应用于深度学习和计算机视觉算法中。虽然很多基于CNN的算法符合行业标准,可以嵌入到商业产品中,但是标准的CNN算法仍然有局限性,在很多方面还可以改进。这篇文章讨论了语义分割和编码器-解码器架构...【详细内容】
2020-09-17  Tags: 神经网络  点击:(93)  评论:(0)  加入收藏
▌简易百科推荐
作为数据科学家或机器学习从业者,将可解释性集成到机器学习模型中可以帮助决策者和其他利益相关者有更多的可见性并可以让他们理解模型输出决策的解释。在本文中,我将介绍两个...【详细内容】
2021-12-17  deephub    Tags:AI   点击:(15)  评论:(0)  加入收藏
基于算法的业务或者说AI的应用在这几年发展得很快。但是,在实际应用的场景中,我们经常会遇到一些非常奇怪的偏差现象。例如,Facebook将黑人标记为灵长类动物、城市图像识别系统...【详细内容】
2021-11-08  数据学习DataLearner    Tags:机器学习   点击:(32)  评论:(0)  加入收藏
11月2日召开的世界顶尖科学家数字未来论坛上,2013年诺贝尔化学奖得主迈克尔·莱维特、2014年诺贝尔生理学或医学奖得主爱德华·莫索尔、2007年图灵奖得主约瑟夫·斯发斯基、1986年图灵奖得主约翰·霍普克罗夫特、2002...【详细内容】
2021-11-03  张淑贤  证券时报  Tags:人工智能   点击:(39)  评论:(0)  加入收藏
鉴于物联网设备广泛部署、5G快速无线技术闪亮登场,把计算、存储和分析放在靠近数据生成的地方来处理,让边缘计算有了用武之地。 边缘计算正在改变全球数百万个设备处理和传输...【详细内容】
2021-10-26    计算机世界  Tags:边缘计算   点击:(45)  评论:(0)  加入收藏
这是几位机器学习权威专家汇总的725个机器学习术语表,非常全面了,值得收藏! 英文术语 中文翻译 0-1 Loss Function 0-1损失函数 Accept-Reject Samplin...【详细内容】
2021-10-21  Python部落    Tags:机器学习   点击:(43)  评论:(0)  加入收藏
要开始为开源项目做贡献,有一些先决条件:1. 学习一门编程语言:由于在开源贡献中你需要编写代码才能参与开发,你需要学习任意一门编程语言。根据项目的需要,在后期学习另一种语言...【详细内容】
2021-10-20  TSINGSEE青犀视频    Tags:机器学习   点击:(37)  评论:(0)  加入收藏
SimpleAI.人工智能、机器学习、深度学习还是遥不可及?来这里看看吧~ 从基本的概念、原理、公式,到用生动形象的例子去理解,到动手做实验去感知,到著名案例的学习,到用所学来实现...【详细内容】
2021-10-19  憨昊昊    Tags:神经网络   点击:(47)  评论:(0)  加入收藏
语言是人类思维的基础,当计算机具备了处理自然语言的能力,才具有真正智能的想象。自然语言处理(Natural Language Processing, NLP)作为人工智能(Artificial Intelligence, AI)的核心技术之一,是用计算机来处理、理解以及运...【详细内容】
2021-10-11    36氪  Tags:NLP   点击:(48)  评论:(0)  加入收藏
边缘计算是什么?近年来,物联网设备数量呈线性增长趋势。根据艾瑞测算, 2020年,中国物联网设备的数量达74亿,预计2025年突破150亿个。同时,设备本身也变得越来越智能化,AI与互联网在...【详细内容】
2021-09-22  汉智兴科技    Tags:   点击:(54)  评论:(0)  加入收藏
说起人工智能,大家总把它和科幻电影中的机器人联系起来,而实际上这些科幻场景与现如今的人工智能没什么太大关系。人工智能确实跟人类大脑很相似,但它们的显著差异在于人工智能...【详细内容】
2021-09-17  异步社区    Tags:人工智能   点击:(57)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条