神经网络为什么可以(理论上)拟合任何函数?

论坛 期权论坛 study     
匿名的用户   2019-6-10 00:34   5944   5
神经网络可以拟合任何函数的理论是如何证明的?需要多少层隐层,每一层需要多少神经元?
分享到 :
0 人收藏

5 个回复

倒序浏览
2#
热心的回应  16级独孤 | 2019-6-10 00:34:24 发帖IP地址来自
我来给一个不是很直接相关的解释,并且说明为什么从实践角度来看是没有意义的。

首先我们有一个很简单的结论:
分段线性函数可以拟合任意连续函数。
这个可以用连续函数的定义证明。

考虑到神经网络比分段线性函数复杂很多,所以逼近任意连续函数是很正常的,从感觉上来说。

Borel可测也不值得注意,原因有两个:
1. Borel可测函数可以用连续函数逼近,所以神经网络逼近连续函数和逼近Borel可测函数没啥大区别。
2. 从实践上讲,我们基本不需要Borel可测函数,连续函数就完全够了。

返回为什么我们不需要太在意这个结论。因为分段线性函数就可以拟合,但是这个拟合是理论上可以拟合,不代表我们实践中真的可以找到或者很容易找到这样一个分段线性函数。数学理论里有大量解的存在性证明(甚至唯一性证明),但往往缺乏有效的算法去找到一个解,甚至压根没有算法找到解。所以我觉得只需要记个结论,从实践的角度来说没必要在乎它。
3#
热心的回应  16级独孤 | 2019-6-10 00:34:25 发帖IP地址来自
强烈推荐CMU《深度学习导论》的Lecture1和Lecture2,其中Lecture1有非常清晰的直观理解,Lecure2有非常浅显的理论阐述。


该回答主要从3个不同的函数类型,以及直观理解和浅显理论2个角度,分别论述:
1,布尔输入+布尔输出的 逻辑函数;
2,连续输入+离散输出的 分类函数;
3,连续输入+连续输出的 普通函数。
注:回答内的“感知机”均为以阈值函数,作为激活函数的神经元。


一,逻辑函数:
1,直观理解:
1个感知机可模拟与或非3种运算,3个感知机组成包含1个隐层的感知机网络(姑且称其为网络吧)可以模拟异或运算。因此,理论上,神经网络可模拟任意组合的逻辑函数。

2,浅显理论:
2.1,“真值表+DNF公式”:“任意布尔运算均可通过真值表穷举,真值表每一行对应DNF公式的每一项,DNF公式的每一项对应网络隐含层的每一个节点”。因此,理论上,一层感知机网络,即可表示通用布尔运算函数。

2.2,“卡诺图”:“按横/纵相邻的最大
个真值1合并,可简化真值表DNF公式,可以简化隐含层个数”,但在最坏卡诺图下,一层感知机网络中感知机的最大数目

2.3,卡诺图+异或法:通过使用异或法,通过增加隐含层的数量,来减少每一层的感知机个数。



二,分类函数:
1,直观理解:
1个以阈值函数为核心的感知机,实际上是一个线性分类器。因此,理论上,存在明确边界,任意复杂的决策面均可由多层感知机构成的线性决策边界组合而成。

2,浅显理论:
2.1,圆柱体:通过使用决策线拟合圆柱体的方式,单层无穷多个感知机,拟合通用分类决策面


2.2,卡诺图:构建深度网络,在增加层数的同时减少感知机个数。在构建2个隐含层的网络中,第2层需要
个感知机。

2.3,卡诺图+异或法:详情可见(一.2.3),本质相同。



三,普通函数:
1,直观理解和浅显理论:
对1元函数来说,1个以2个感知机构建的单层网络,可构建脉冲函数,通过类似积分的思想,拟合任意函数曲线。多元函数类似,可参考(二.2.1)的方式构建圆柱体,本质相同。



四,最终结论:
1,适配通用函数的神经网络必须拥有足够的容量,即一定深度下,必须满足一定的神经元个数就能适配任意函数。
2,与阈值函数不同,使用带梯度的其他激活函数作为感知机,可在浅层网络丢失部分信息的时候,在深层补偿一定的信息。
因此,神经网络对通用函数的拟合,一定是宽度,深度和激活函数之间的权衡。


五,以上回答均为个人理解,详情可参考如下专栏笔记,有问题欢迎留言和私信交流:
1,拟合通用函数的直观理解:
想飞的猫:深度学习导论(11-485/785 lecture1 )2,拟合逻辑函数的浅显理论:
想飞的猫:深度学习导论(11-485/785 lecture2-上 )3,拟合分类函数和普通函数的浅显理论:
想飞的猫:深度学习导论(11-485/785 lecture2-下)
4#
热心的回应  16级独孤 | 2019-6-10 00:34:26 发帖IP地址来自
尝试回答一下,理论和实践有个玩笑:
Theory is when one knows everything but nothing works. Practice is when everything works but nobody knows why.
90年代初,这个理论就被提出来(Hornik et al.,1989; Cybenko,1989; Hornik et al., 1990),两层神经网络 + sigmoid激活函数可以是universal approximator,定理说明:
存在一个足够大的网络能够达到我们所希望的任意精度,但并没有说这个网络有多大。by 花书
先来看下花书(Deep Learning. lan Goodfellow)中的核心观点:
In summary, a feedforward network with a single layer is sufficient to represent any function, but the layer may be infeasibly large and may fail to learn and generalize correctly. In many circumstances, using deeper models can reduce the number of units required to represent the desired function and can reduce the amount of generalization error.
并且universal approximator并不新鲜,但很多不能用到机器学习中,比如有人提到sum of indicator bumps函数
斯坦福的cs231n中,也有提到,更深的模型更容易让目前的优化算法学习到:
Neural Networks work well in practice because they compactly express nice, smooth functions that fit well with the statistical properties of data we encounter in practice, and are also easy to learn using our optimization algorithms (e.g. gradient descent). Similarly, the fact that deeper networks (with multiple hidden layers) can work better than a single-hidden-layer networks is an empirical observation, despite the fact that their representational power is equal.
和直觉不太符合的是,该课程中进一步提出, bigger neural networks更容易学习到最优解:
The subtle reason behind this is that smaller networks are harder to train with local methods such as Gradient Descent: It’s clear that their loss functions have relatively few local minima, but it turns out that many of these minima are easier to converge to, and that they are bad (i.e. with high loss). Conversely, bigger neural networks contain significantly more local minima, but these minima turn out to be much better in terms of their actual loss. Since Neural Networks are non-convex, it is hard to study these properties mathematically, but some attempts to understand these objective functions have been made, e.g. in a recent paperThe Loss Surfaces of Multilayer Networks.
有意思的是,如果我们先用deep模型学习完,再用一个shadow去模拟这个模型,效果有可能比deep模型还好,但直接用shadow模型去学习原始样本却会表现很差。Do Deep Nets Really Need to be Deep?【2】这篇论文有详细的实验。
总结:并不是说有能力近似万能函数就万事大吉了,关键的还是能不能用现有的优化算法学到它。
参考:
【1】
CS231n Convolutional Neural Networks for Visual Recognition【2】
https://arxiv.org/pdf/1312.6184.pdf【3】
https://arxiv.org/pdf/1412.6550.pdf【4】
袁洋:神经网络有什么理论支持?
5#
热心的回应  16级独孤 | 2019-6-10 00:34:27 发帖IP地址来自
这个问题的有些答案我看的一脸懵逼
有些答主真的是一点数学都不懂啊,想搞点理论竟然都没学过泛函?
这个Universal Approximation Theorem的背后是Stone-Weierstrass定理的Lattice表述,我就直接放Wikipedia截图了:

这个定理是泛函最开始最基本的定理,任何一个泛函书、任何一个本科生level的泛函课程都会讲
Universal Approximation Theorem最开始就是这样一个个check条件证出来的,这是我上Deep Learning Theory的课上这么学的
于是问题就来了:这个定理最开始是拿来证什么的呢?是拿来证多项式稠密的,所以所谓的NN逼近所有函数其实和多项式是一样的原因
至于有什么用处?存在性定理大部分都很难用
6#
热心的回应  16级独孤 | 2019-6-10 00:34:28 发帖IP地址来自
不考虑overfitting的话,多项式就可以用来拟合任何闭区间上的连续函数……


Stone–Weierstrass_theorem
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:32080
帖子:6440
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP