人工神经网络基础为什么神经网络选择了“深度”?

Posted wuliyttaotao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了人工神经网络基础为什么神经网络选择了“深度”?相关的知识,希望对你有一定的参考价值。

  现在提到“神经网络”和“深度神经网络”,会觉得两者没有什么区别,神经网络还能不是“深度”(deep)的吗?我们常用的 Logistic regression 就可以认为是一个不含隐含层的输出层激活函数用 sigmoid(logistic) 的神经网络,显然 Logistic regression 就不是 deep 的。不过,现在神经网络基本都是 deep 的,即包含多个隐含层。Why?

1. universality approximation theorem(通用近似定理)

  任何连续的函数 $f: R^N o R^M$ 都可以用只有一个隐含层的神经网络表示。(隐含层神经元足够多)

技术分享图片

图 1:仅含一个隐含层的神经网络示意图

  一个神经网络可以看成是一个从输入到输出的映射,那么既然仅含一个隐含层的神经网络可以表示任何连续的函数,为什么还要多个隐含层的神经网络?

2. why deep?

  "Yes, shallow network can represent any function. 

  However, using deep structure is more effective."

  我们可以把仅含一个隐含层的神经网络结构叫做 shallow 的,把包含多个隐藏层的神经网络结构叫做 deep 的。

  李宏毅教授在他的机器学习视频中,提出一种叫做 Modularization(模块化)的解释。

技术分享图片

图 2:Modularization

  在多层神经网络中,第一个隐含层学习到的特征是最简单的,之后每个隐含层使用前一层得到的特征进行学习,所学到的特征变得越来越复杂。 如图 3 和 4 所示。

技术分享图片

图 3:不同level的特征-1

 

  low level 中每一个特征在 high level 或多或少被使用,这样对于每一个 high level 特征,只需要训练一套 low level 特征。是的,low level 特征被共用了,相当于将提取 low level 特征单独成立了一个模块,供高层调用。对于每一个 high level 特征,不需要每次都将 low level 特征训练一遍。这就是 deep 的好处。

技术分享图片

图 4:不同level特征-2

  在比较深度神经网络和仅含一个隐含层神经网络的效果时,需要控制两个网络的 trainable 参数数量相同,不然没有可比性。李宏毅教授在他的机器学习视频中举例,相同参数数量下,deep 表现更好;这也就意味着,达到相同的效果,deep 的参数会更少。

  不否认,理论上仅含一个隐含层的神经网络完全可以实现深度神经网络的效果,但是训练难度要大于深度神经网络。

  实际上,在深度神经网络中,一个隐含层包含的神经元也不少了,比如 AlexNet 和 VGG-16 最后全连接层的 4096 个神经元。在 deep 的同时,fat 也不是说不需要,只是没有像只用一层隐含层那么极端,每个隐含层神经元的个数也是我们需要调节的超参数之一。

References

李宏毅机器学习 

Universal approximation theorem - Wikipedia


以上是关于人工神经网络基础为什么神经网络选择了“深度”?的主要内容,如果未能解决你的问题,请参考以下文章

人工智能机器学习深度学习神经网络,都有什么区别,卷积神经网络和全连接神经网络的区别

人工智能深度学习神经网络在双色球彩票中的应用研究

人工智能 | 读心术?!日本深度神经网络算法重建人脑中图像

机器学习算法汇总:人工神经网络深度学习及其它

深度学习和传统的人工神经网络机器学习有啥区别? [关闭]

原创 [人工智能-深度学习-48]:RNN是循环神经网络还是递归神经网络?