理论上sigmoid等函数可以拟合所有函数,为什么我们还是追求深的神经网络,而不是宽的神经网络

深度神经网络相较于宽的浅层网络更能泛化,因为它们能在不同抽象层次学习特征,避免过拟合。尽管理论上一个足够宽的浅层网络可以拟合任何函数,但在实际中,深度网络能更好地从训练数据中学习并推广到新数据。过深或过宽的网络可能导致过拟合和训练时间增加。
摘要由CSDN通过智能技术生成

省流

宽的神经网络容易过拟合,深的神经网络更能够泛化。

想要读懂这篇文章,你需要知道

  1. 什么是神经网络的深度:神经网络的层数,更确切地说,隐藏层数
  2. 什么是神经网络宽度:在一个层上,神经元的数量

深度为2,宽度为6的神经网络
  1. 为什么激活函数如sigmoid可以拟合理论上所有的函数:
    因为sigmoid、relu等激活函数非线性的特点,将激活层上不同的sigmoid函数相加,能够近似各种复杂的函数。

在这里插入图片描述

正文

首先,理论上来说,我们并不需要深度神经网络。只要有足够的训练数据,只有一个隐藏层,但是足够宽(神经元够多)的神经网络足以拟合任何合理的函数。

然而,使用一个极宽的浅层网络存在一些问题。最主要的问题是,这些极宽、极浅的网络非常善于记忆,但不善于泛化。因此,如果你用每一个可能的输入值来训练网络,一个超宽的网络最终可以记住你想要的相应输出值,但从实际应用的角度来说,这没有价值。因为我们手上的训练资料不能概括现实中的所有情况。

多层网络的优势在于它们可以在不同的抽象层次上学习特征。例如,如果你要训练一个深度卷积神经网络对图像进行分类,你会发现第一层会训练自己识别非常基本的东西,如边缘,下一层会训练自己识别边缘的集合,如形状,下一层会训练自己识别形状的集合,如眼睛或鼻子,下一层甚至会学习更高阶的特征,如脸。多层网络在泛化方面的表现要好得多,因为它们学习了原始数据和最终分类结果之间的所有中间特征

这也就解释了为什么你可能会使用一个深度网络,而不是一个非常宽但浅的网络。但为什么不是一个非常深、非常宽的网络呢?我认为答案是,你希望你的网络尽可能的小,以产生好的结果。当你增加网络的规模时,你实际上只是引入了更多你的网络需要学习的参数,从而增加了过拟合的可能性。如果你建立了一个非常宽、非常深的网络,网络可能会记住训练时所有输入对应的输出,但你最终会得到一个无法泛化新数据的神经网络。

除了过度拟合的风险,你的网络越宽,训练的时间就越长。深度网络训练的计算成本已经很高了,所以我们追求的是让网络表现的好的同时,宽度尽可能得小。

参考:李宏毅机器学习
参考:stack exchange问题解答

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值