如何确定卷积神经网络中设置的神经元数量?

数据挖掘 机器学习 神经网络 深度学习 张量流 美国有线电视新闻网
2022-02-12 07:44:31

我是深度学习的新手,仍在学习如何从头开始训练我的神经网络。有时我会在 YouTube 上观看教程,甚至在 MOOC 平台上观看在线课程。卷积神经网络的基础通常具有 Conv2D 和 MaxPooling 层,以使输入更小且易于训练。

问题是这个在线教程有时会使用具有更多神经元的 Conv2D 的设置,然后是其他具有较小神经元的 Conv2D。比如第 1 层是 Conv2D(512...),第 2 层是 Conv2D(256....) 等等。另一个教程设置是递增的,例如从 Conv2D(16....) 开始,然后是 Conv2D(32....) 并递增。这些老师没有告诉我们为什么他们这样编码设置。

我们如何知道使用哪种设置?它们之间有什么区别吗?在网上找不到如何参考这个案例。如果有一篇论文已经描述了这个案例,我希望得到它,谢谢。

2个回答

一个典型的最佳实践是阅读相关论文或检查 github 项目,其中包含有关类似架构以及其他 ML 工程师如何构建它们的信息。通常,您可以在 CNN 架构中看到一些特定模式,例如增加沿管道的深度(或通道数),同时减少每层结果的宽度和高度。由于搜索空间巨大且时间有限,因此通常最好依赖已经构建的架构,并尽可能使用迁移学习来缩短训练周期。另一方面,如果你正在做纯粹的研究,并且想要创建一流的、新的、最先进的 CNN 架构,那么你将需要在 CNN 架构工程和超参数调优方面付出很大的努力,幸运的是在系统的基础上。

这是一种设计架构选择,属于机器学习中流行的超参数选择问题。

通常,神经元的数量会随着网络深度的增加而增加,然后再次减少。这背后的动机是先在较小的层中捕获“局部特征”,然后再在较大的层中捕获更复杂的数据特征。以下是著名的 AlexNet 示例,它是最早实现人类图像识别性能的神经网络之一:

AlexNet 架构

一般来说,“为什么”和“如何”选择神经元的数量实际上取决于设计者,并且通常通过经验测试来决定。它们的选择仍然是机器学习领域的一个悬而未决的问题。