我知道这不是一门精确的科学。但是你会说通常对于更复杂的任务,需要更深的网络吗?
学习问题越复杂,神经网络是否应该越深?
更深层次的模型可能有优势(在某些情况下)
大多数人会对您的问题回答“是”,例如,为什么神经网络变得更深,而不是更宽?为什么深度神经网络运行良好?.
事实上,在某些情况下,深度神经网络与浅层神经网络相比具有一定的优势。例如,请参阅以下论文
- Ronen Eldan 和 Ohad Shamir的前馈神经网络深度的力量(2016 年)
- Matus Telgarsky的神经网络深度的好处(2016 年)。
- Safran 和 Shamir用神经网络近似自然函数的深度-宽度权衡(2017)
- Petersen 和 Voigtlender使用深度 ReLU 神经网络(2018)对分段平滑函数进行优化逼近
宽度呢?
以下论文可能是相关的
更大的型号容量更大,但也有缺点
Vladimir Vapnik(VC 理论和 SVM 的共同发明者,也是学习理论最有影响力的贡献者之一)不喜欢神经网络,他可能会告诉你应该寻找最小的模型(函数集)这与您的数据一致(即一组可接受的函数)。
例如,观看此播客Vladimir Vapnik:统计学习 | 人工智能 (AI) 播客(2018 年),他在其中这么说。他基于统计不变量和谓词的新学习理论框架可以在论文重新思考统计学习理论:使用统计不变量进行学习(2019)中找到。您还应该阅读“学习刚刚开始”——对 Vladimir Vapnik 教授的采访(2014 年)。
更大的模型具有更大的容量(即更大的 VC 维度),这意味着您更有可能过度拟合训练数据,即模型可能无法真正泛化到看不见的数据。因此,为了不过度拟合,具有更多参数(以及容量)的模型也将需要更多数据。您还应该问自己为什么人们使用正则化技术。
在实践中,实现最先进性能的模型可能非常深入,但它们的训练计算效率也很低,并且需要大量的训练数据(手动标记或自动生成)。
此外,更深层次的神经网络还有许多其他技术复杂性,例如,梯度消失(和爆炸)问题等问题。
复杂的任务可能不需要更大的模型
有些人会告诉你,你需要深度模型,因为根据经验,一些深度模型已经取得了最先进的结果,但这可能是因为我们还没有找到更聪明、更有效的方法来解决这些问题。
因此,我不会说“复杂的任务”(无论定义是什么)必然需要更深层次的,或者一般来说,更大的模型。在设计我们的模型时,始终牢记奥卡姆剃刀等原则可能是个好主意!
旁注
作为旁注,我认为更多的人应该更多地关注机器学习的数学方面,即计算和统计学习理论。实践者太多,没有真正理解底层的学习理论,而理论家太少,由于缺乏对底层数学概念的理解,进展很快就会停滞不前。
为了让您更具体地了解当前深度学习社区的心态,在本课中,像 Ilya Sutskever 这样被认为是深度学习领域“重要且领先”的研究员,他在谈论 NP 完全问题时仿佛真的不知道他在说什么。NP完全问题不仅仅是“难题”。NP-completeness 在计算复杂性理论中有一个非常具体的定义!
更深的网络具有更多的学习能力,因为它们可以适应更复杂的数据。但同时,它们也更容易过度拟合训练数据,因此无法泛化到测试集。
除了过拟合,梯度爆炸/消失是另一个阻碍收敛的问题。这可以通过标准化初始化和标准化中间层来解决。然后,您可以使用随机梯度下降 (SGD) 进行反向传播。
当更深的网络能够收敛时,就检测到了另一个“退化”问题。准确度饱和,然后开始下降。这不是由过度拟合引起的。事实上,在这里添加更多的层会导致更高的训练误差。一个可能的解决方法是使用 ResNets(残差网络),它已被证明可以减少“退化”
从战术角度来看,我的经验是首先从一个较小的简单模型开始。训练模型并观察训练准确度和验证损失以及验证准确度。我的观察是,要成为一个好的模型,你的训练准确率应该至少达到 95%。如果没有,那么尝试优化一些超参数。如果训练准确性没有提高,那么您可以尝试逐步增加模型的复杂性。随着您增加更多复杂性,过度拟合、消失或爆炸梯度的风险会变得更高。
您可以通过监控验证损失来检测过拟合。如果随着模型精度的提高,后期的验证损失开始上升,那么你就是过拟合了。那时,您将不得不在模型中采取补救措施,例如添加 dropout 层和使用正则化器。Keras 文档在这里。
正如nbro在回答中指出的那样,解决这个问题的理论很复杂。我强烈推荐这个主题的优秀教程,可以在 YouTube 上找到。
笼统地说,我想说在机器学习的当前状态下,“更复杂”的任务需要更多可训练的参数。您可以通过增加宽度和增加深度来增加参数计数。再说一次,非常笼统地说,我想说的是,在实践中,人们发现增加深度比增加宽度更成功。
但是,这在很大程度上取决于“更复杂”的含义。我会争辩说,生成某些东西从根本上来说是一个比仅仅识别某些东西更复杂的问题。然而,生成 4 像素图像的 GAN 可能比最浅的 ImageNet 网络要浅得多。
人们也可以提出一个论点,即深度学习任务的复杂性定义是“需要更多层 == 更复杂”,在这种情况下,很明显,根据定义,更复杂的任务需要更深的网络。