神经网络需要多大才能学习任何东西

数据挖掘 神经网络
2021-10-06 00:29:19

是否有关于网络需要多大才能学习任意分类问题的文献,其中输入是 n 位整数,输出是 k 个类别之一?我对当前训练和初始化技术的理论界限和实践所需的大小感兴趣。

具体来说,允许神经网络查看所有可能的输入及其各自的输出,因此我不会从训练集中隐藏任何内容,因为该函数不被假定具有任何结构。

2个回答

神经网络的大小通常被视为超参数。您需要从单独的交叉验证集中对其进行估计。

对于神经网络,没有理论证明的界限(到处都有一些论文,但它们在实践中并不适用)。

您需要使用旧的“交叉验证”方法来搜索 NN 大小的最佳拟合值。

PS:有一篇来自 Yoshua Bengio 的论文,其中包含训练此类机器的所有技巧和特征。

https://arxiv.org/abs/1206.5533

让我们看看一些具体的任务。

输入是程序的字节码,作为整数。

让我们使用一个计算素数的程序。我很确定您可以用相当少的字节数编写这样的程序。让我们添加另一个整数,即我们想要找到的素数。输出将是素数的第二高位是 0 还是 1(即,如果素数以 0...010 或 0...011 开头)只有两个类。

或者,让输入为程序,输出程序是否停止(参见“停止问题”)。

我很确定,即使您限制了输入长度,即使是最大的神经网络也无法可靠地预测这两个示例的输出。所以不能保证只要有足够的节点就可以学习任何东西您可能可以保证 id 具有过度拟合的能力。给定 N 个训练示例(具有一致的标签),您可以构建一个具有 x 个节点的网络,该网络可以完美地记忆训练数据(但这无法泛化,因此对训练数据过度拟合)。