一个神经网络可以只用11隐藏层解决了什么问题?

机器算法验证 机器学习 神经网络
2022-01-31 06:43:27

一个具有单个隐藏层的网络可以N神经元(其中N) 逼近任意函数,使该网络的误差接近0作为N方法?

4个回答

这个问题似乎暗示了所谓的通用逼近定理的某个版本。这是来自 Wikipedia 的 Cybenko UAT的声明。

修复一个连续函数σ:RR(激活函数)和正整数d,D. 功能σ不是多项式当且仅当,对于每个连续函数函数f:RdRD(目标函数),每个紧凑子集KRd,并且每个ϵ>0存在一个连续函数fϵ:RdRD(层输出)具有表示:

fϵ=W2σW1,
在哪里W2,W1是可组合的仿射图和表示组件组合,使得近似界:
supxKf(x)fϵ(x)<ε
都成立(从的距离可以无限小)。ϵffϵ

所以并不是任何函数都可以近似——函数必须是连续的。在某个紧凑子集和某些未指定的上,该误差仅小于ϵKD

在你有一些数据并且你想估计一个神经网络的实际设置中,Cybenko UAT 是沉默的——它没有告诉你如何去估计,也没有告诉你如何选择隐藏层的宽度,以达到这个精度。W2,W1D

最后,对某些类型的函数实现小的近似误差并不等同于“解决任何问题”。

(神经网络有许多近似定理,它们得出不同的结论(但主题相似)并有不同的假设。)

其他答案已经提到了通用逼近定理,并且从严格的数学意义上讲,它并不适用于所有函数,它仅近似于预定义的误差水平。

但是,有一种不同的方式来解释这个问题:如果单层网络可以将任何函数(满足 UAT 的标准)逼近到任何所需的精度,我们为什么要使用多层网络?答案是,给定指定的精度,单层网络可能必须非常大和/或可能需要很长时间来训练。多层网络可以更小,并且可以更快地训练(前提是我们使用了适当的技术,例如反向传播算法)。

该问题询问“任意功能”和“任何问题”;接受的答案只讨论连续函数。

对于现在所说的问题的答案,在两个版本中,显然都是“否”。一些有趣的反例:

  • “任何问题”包括图灵的Entscheidungsproblem,这是众所周知的无法解决的问题。
  • “任意函数”,如果你想解决更“数学”的问题,可能会很奇怪。阿克曼函数是一个很好的例子,它具有相对温和的定义,任何具有基本数学技能(和大量时间)的孩子都可以轻松计算它,但它以巨大速度增长(比指数快得多)。它不是原始递归的,也就是说,它不能由仅由for循环组成的程序计算,即每个循环的迭代次数在循环开始时是已知的。具有非常简单的线性求和神经元结构和一些乘法的神经网络仅限于原始递归函数(至少在无界域上)并且无法近似。
  • 有一些不连续的函数作为反例当然也很有效,例如Dirichlet 函数
  • 根据评论,并且脚踏实地,一个简单的sin函数也可以提供有关 UAT 的反例。

更多关于“网络错误接近 0”​​的评论

关于贝叶斯错误率有一个重要的概念。即使是最强大的模型也可能达到非常高的错误率,只是因为存在很大的不可约误差。

举个例子,想想我们是否有大量具有完全相同特征但标签不同的数据。