有没有办法将神经网络转换为另一个代表相同功能的神经网络?

人工智能 神经网络 比较 函数逼近 计算学习理论
2021-10-26 04:08:57

我已经阅读了Neural Turing Machines论文和关于神经网络计算能力的论文On the Computational Power of Neural Nets但是,我还不清楚一件事。

有没有办法将神经网络转换为另一个代表相同功能的神经网络?例如,给定一个表示某个函数的经过训练的循环神经网络,是否可以将此 RNN 转换为例如表示相同函数的 MLP?

如果上述问题的答案存在,我们能否证明神经网络之间的等价性,例如,多层感知器解决的所有问题都可以由循环神经网络解决,但反之则不成立,即 MLP 是 RNN 的子集(我不知道这是不是真的,这只是一个例子)。所以,如果我们得到所有神经网络之间的这种关系,我们就可以得到一个神经网络X那比其他的更强大,所以,我们可以扔掉所有其他的神经网络,因为X可以解决其他NN可以解决的任何问题。这个推理正确吗?

1个回答

为了回答这个问题,考虑神经网络架构的概念是有帮助的——在这种情况下,我们可以将架构视为网络深度(即层数)、宽度(即一层中的节点数)和其他一些结构方面,例如循环层、卷积层、池层等。

理论

就理论而言,有一些想法可以帮助您深入了解您的问题。首先是普遍引用的通用逼近定理,它指出单个隐藏层、具有 sigmoid 激活和有限宽度(即单个隐藏层中的节点数)的前馈神经网络可以逼近任何 n 维实值函数. 从表面上看,这告诉我们,我们可以使用最简单的架构之一做很多事情,并且可以(理论上)逼近更复杂的架构,例如 LSTM、CNN 等。

然而,虽然这似乎表明减少总是可能的,但对深度和宽度之间表征能力的不对称性的研究表明事情可能并不那么简单(例如,参见这篇论文这篇论文)。具体来说,网络深度相对于宽度提供了更大的表示能力。直观地说,这是有道理的——深度允许我们构建层次结构并堆叠多个非线性。事实上,这就是我们开始看到实践中答案的轮廓的地方——深度提供了一种清晰、简单的方法来将结构烘焙到我们的网络中。

所以,从理论的角度来看,全称逼近定理的回答是肯定的;是的,您可以将复杂的网络架构简化为单个隐藏层网络,但这样做的基础有点幼稚——它没有考虑网络相对于参数数量的效率。上面链接的两篇论文暗示这。

实践

在实践中,执行这种减少存在问题。迄今为止,最成功的模型具有深度架构。更重要的是,这些模型中有许多是专门的——我们有用于计算机视觉的 CNN,用于基于序列的数据的 RNN 等。这些架构被认为是一种将有关问题结构的知识整合到网络结构中的方法改进对所需表示的学习,这也需要深度。

事实上,去年的一篇论文将这个想法发挥到了极致。与权重无关的神经网络是专门构建的,因此它们的架构本质上是具有单个参数(权重)的表示,可以改变以生成具有不同性能特征的多个不同模型。在这项研究中开发的 WANN 并不是特别深,但它们也不是单层的。

这里的结果是,对于复杂的问题,深度对于有效的学习和梯度计算是必要的,并且它可以用于将问题结构编码到网络中。虽然可以将学习表示减少到单个隐藏层网络,但最终可能会将更多参数浓缩到具有非常高维梯度的单个隐藏层中,这并非不可想象。在实施方面,这是不可取的。