首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在深层神经网络中对抗欠适应

如何在深层神经网络中对抗欠适应
EN

Data Science用户
提问于 2014-07-13 09:04:39
回答 2查看 26.2K关注 0票数 59

当我开始使用人工神经网络(NN)时,我认为我必须与过度拟合作斗争,这是主要问题。但在实践中,我甚至不能让我的神经网络通过20%的错误率障碍。我连我在随机森林上的分数都打不了!

我正在寻求一些非常普遍或不那么普遍的建议,关于应该如何做才能使NN开始捕捉数据的趋势。

为了实现NN,我使用Theano叠加的自动编码器与教程中的代码一起工作(小于5%的错误率)对MNIST数据集进行分类。它是一个多层感知器,上面有softmax层,每个隐藏层后来都被预先训练为自动编码器(在教程,第8章中有详细描述)。有大约50个输入特性和10个输出类。神经网络具有乙状结肠神经元,所有数据都被归一化为0,1。我尝试了许多不同的结构:隐层数和神经元数(100->100->100 -> 60->60->60 -> 60->30->15等),不同的学习和训练前速度等。

我能得到的最好结果是验证集上的错误率为20%,测试集上的错误率为40%。

另一方面,当我尝试使用随机森林(从科学学习),我很容易得到12%的错误率在验证集和25%(!)在测试集上。

为什么我训练前的深度神经网络表现这么差?我该试试什么?

EN

回答 2

Data Science用户

回答已采纳

发布于 2014-07-13 09:58:16

深网络的问题在于它们有大量的超参数可调,而且解空间很小。因此,寻找好的东西更像是一门艺术,而不是一项工程任务。我将从教程中的工作示例开始,并使用它的参数来查看结果是如何变化的--这给出了关于参数和结果(包括最终的和中间的)之间的依赖关系的良好直觉(尽管不是正式解释)。

此外,我发现下列文件非常有用:

它们都描述了基于成果的管理模式,但也包含了一些关于深度网络的见解。例如,关键之一是网络需要从层的角度进行调试--如果以前的层不能很好地表示功能,那么更多的层几乎没有机会修复它。

票数 37
EN

Data Science用户

发布于 2016-02-07 20:48:02

您可能有兴趣阅读Microsoft Research的研究人员的以下论文:

何开明,张向宇,任少清,孙健:图像识别中的深度残差学习 on arxiv,2015年。

他们和你有类似的问题:

当更深的网络能够开始收敛时,一个退化的问题就暴露出来了:随着网络深度的增加,精确度变得饱和(这可能不足为奇),然后迅速退化。出乎意料的是,这种退化并不是由于过度拟合造成的,并且在适当的深度模型中增加更多的层会导致更高的训练误差,正如11,42中所报告的,并通过我们的实验进行了彻底的验证。

为了解决这个问题,他们使用了一种跳过架构。在此基础上,他们对非常深的网络(1202层)进行了培训,并在2015年国际空间研究中心的挑战中取得了最佳成果。

票数 8
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档