Answers:
这是一个很大的问题,实际上已经进行了一些研究来解决您提到的容量/深度问题。
有大量证据表明,卷积神经网络的深度已导致学习更丰富,更多样化的特征层次结构。从经验上看,我们看到性能最好的网络往往是“深层”:牛津VGG-Net有19层,Google Inception体系结构很深,Microsoft Deep Residual Network有152个层,这些都获得了非常出色的ImageNet基准结果。
从表面上看,事实是,除非使用某种正则化函数,否则更高容量的模型倾向于过度拟合。非常深的网络过度拟合会损害性能的一种方法是,它们会在少数训练时期内迅速接近非常低的训练误差,即,我们无法为通过数据集的大量遍历训练网络。像Dropout这样的技术,一种随机的正则化技术,使我们可以在很长的时间内训练非常深的网络。实际上,这使我们能够学习更好的功能并提高分类精度,因为我们可以从训练数据中获得更多的通过。
关于您的第一个问题:
为什么不只减少深度神经网络中每层的层数/节点数,而使其仅处理少量数据呢?
如果我们减少训练集的大小,这将如何影响泛化性能?如果我们使用较小的训练集大小,则可能导致学习较小的分布式特征表示,这可能会损害我们的泛化能力。最终,我们希望能够很好地概括。拥有更大的训练集可以使我们学习更多样化的分布式要素层次结构。
关于第二个问题:
在“插入”之前,神经网络是否需要基本的“最小参数数量”?在一定数量的层以下,神经网络的性能似乎不如手工编码的功能好。
现在,让我们在有关深度问题的上述讨论中添加一些细微差别。鉴于我们当前所处的最新状态,从头开始训练高性能的转换网络似乎已在使用某种深度架构。
但是有一系列针对模型压缩的结果。因此,这不是您问题的直接答案,而是相关的。模型压缩对以下问题感兴趣:给定一个高性能模型(在我们的案例中,我们说一个深度转换网络),我们可以压缩模型,减少模型的深度甚至参数数,并保持相同的性能吗?
我们可以将高性能,高容量的转换网络视为老师。我们可以使用老师来训练更紧凑的学生模型吗?
令人惊讶的答案是:是的。有一系列结果,关于转换网络的一篇好文章是Rich Caruana和Jimmy Ba的文章 。深网真的需要深化吗?。他们能够训练一个较浅的模型来模仿较深的模型,而性能损失很小。关于此主题还有更多工作,例如:
在其他作品中。我确定我会错过其他好文章。
对我来说,这些结果质疑这些浅层模型真正具有多少容量。在Caruana,Ba文章中,他们指出以下可能性:
“结果表明,深度学习的优势可能部分源于深度架构与当前训练程序之间的良好匹配,并且有可能设计出更好的学习算法来训练更准确的浅层前馈网络。参数的数量,深度可能使学习变得容易,但可能并不总是必不可少的”
必须清楚一点很重要:在Caruana,Ba的文章中,他们并没有从头开始训练浅层模型,即仅从类标签进行训练以获取最新的性能。相反,他们训练了一个高性能的深度模型,并从该模型中提取了每个数据点的对数概率。然后,我们训练一个浅层模型来预测这些对数概率。因此,我们不在类标签上训练浅层模型,而是使用这些对数概率。
尽管如此,这仍然是一个有趣的结果。虽然这不能直接回答您的问题,但是这里有一些有趣的想法非常相关。
从根本上讲:记住模型的理论“容量”与找到模型的良好配置之间存在差异,这一点始终很重要。后者取决于您的优化方法。