有很多论文表明神经网络可以逼近各种各样的函数。但是,我找不到显示 NN 局限性的论文。
神经网络的局限性是什么?哪些功能不能神经网络有效学习(或使用梯度下降)?
我也在寻找描述这些限制的论文的链接。
有很多论文表明神经网络可以逼近各种各样的函数。但是,我找不到显示 NN 局限性的论文。
神经网络的局限性是什么?哪些功能不能神经网络有效学习(或使用梯度下降)?
我也在寻找描述这些限制的论文的链接。
任何算法都不能有效地学习随机函数,尤其是神经网络。但是,如果您正在寻找一个描述大小(指数)较小的函数,我不知道,但任何被推测为平均情况困难的函数可能无法通过神经网络有效地学习,例如,
这个答案在很大程度上取决于用于训练的神经网络和算法的类型。
如果您在一个输入层、一个输出层和没有隐藏层的神经网络上使用梯度下降,那么您将无法学习许多函数。一种简单的方法是 XOR 函数。由于 XOR 不是线性可分的,它不能用没有隐藏层的神经网络来表示。
如果您使用 NEAT 构建循环神经网络,则可以在给定足够的时间和数据的情况下表示所有函数(**)。这部分是由于递归神经网络是图灵完备的。
使用神经网络时限制的最大原因之一是难以解释网络在做什么。网络在从输入层到输出层的过程中逐渐建立对函数的理解,但是我们很难理解这个建立过程并解释神经网络试图做什么。这使得以有意义的方式手动调整您的神经网络非常困难,如果不是不可能的话。
另一个限制是需要(大量)训练才能对数据进行有意义的表示。神经网络在收敛到有意义的假设空间之前倾向于需要大量数据。这导致了无需人工交互即可生成训练数据的巧妙算法,例如生成对抗网络,但潜在的问题仍然存在。
** 并非所有函数都可以通过神经网络计算,但是,所有可计算函数都可以。不可计算函数的一个例子是所有程序从程序到该程序是否会停止的映射(停止问题)。