Computer vision 如何确定用于图像分类的卷积神经网络的参数?

Computer vision 如何确定用于图像分类的卷积神经网络的参数?,computer-vision,neural-network,unsupervised-learning,autoencoder,Computer Vision,Neural Network,Unsupervised Learning,Autoencoder,我正在使用卷积神经网络(无监督特征学习检测特征+Softmax回归分类器)进行图像分类。我已经看过Andrew NG在这个领域的所有教程。() 我开发的网络具有以下特点: 输入层-尺寸8x8(64个神经元) 隐藏层-大小400个神经元 输出层-大小3 我已经学会了使用稀疏自动编码器将输入层连接到隐藏层的权重,因此具有400种不同的功能 通过从任何输入图像(64x64)获取连续的8x8面片并将其馈送到输入层,我得到了400个大小为(57x57)的特征贴图 然后,我使用最大池和一个大小为19 x

我正在使用卷积神经网络(无监督特征学习检测特征+Softmax回归分类器)进行图像分类。我已经看过Andrew NG在这个领域的所有教程。()

我开发的网络具有以下特点:

  • 输入层-尺寸8x8(64个神经元)
  • 隐藏层-大小400个神经元
  • 输出层-大小3
我已经学会了使用稀疏自动编码器将输入层连接到隐藏层的权重,因此具有400种不同的功能

通过从任何输入图像(64x64)获取连续的8x8面片并将其馈送到输入层,我得到了400个大小为(57x57)的特征贴图

然后,我使用最大池和一个大小为19 x 19的窗口来获得400个大小为3x3的特征图

我将此功能映射提供给softmax层,将其分为3个不同的类别

这些参数,如隐藏层的数量(网络的深度)和每层神经元的数量,都在教程中提出,因为它们已经成功地用于一个特定的数据集,其中所有图像的大小都是64x64

我想将其扩展到我自己的数据集,其中的图像要大得多(比如400x400)。 我怎么决定

  • 层数

  • 每层神经元的数量

  • 池窗口的大小(最大池)


  • 简言之,您可以确定参数的可能值,并使用这些值,运行一系列建模模拟,然后进行预测,以选择最佳参数值,从而使预测误差最小,模型更简单


    在数据分析术语中,我们用于确定模型参数的值,因为以无偏的方式进行预测非常重要。

    隐藏层的数量: 所需隐藏层的数量取决于数据集的内在复杂性,这可以通过查看每个层实现的功能来理解:

    • 零隐藏层允许网络仅对线性函数建模。这对于大多数图像识别任务来说是不够的

    • 一个隐藏层允许网络建模任意复杂的函数。这对于许多图像识别任务来说是足够的

    • 理论上,两个隐藏层与单个层相比没有什么好处,但是,在实践中,一些任务可能会发现额外的一层是有益的。应谨慎处理,因为第二层可能会导致过度配合。使用两个以上的隐藏层几乎从来都不是有益的,只有在特别复杂的任务中,或者当有大量的训练数据可用时(根据Evgeni Sergeev的评论更新)

    长话短说,如果你有时间,然后测试一个和两个隐藏层,看看哪个达到了最满意的结果。若你们并没有时间,那个么你们应该在一个隐藏层上下赌注,这样你们就不会犯太大的错误

    卷积层的数量: 根据我的经验,卷积层越多越好(在合理范围内,因为每个卷积层减少了完全连接层的输入特征数量),尽管在大约两层或三层之后,精度增益变得相当小,因此您需要确定您的主要关注点是泛化精度还是训练时间。也就是说,所有的图像识别任务都是不同的,所以最好的方法是简单地尝试一次增加一个卷积层的数量,直到您对结果感到满意为止

    每个隐藏层的节点数: …再说一次,没有神奇的公式来决定节点的数量,每个任务都是不同的。一个粗略的指导是使用一些节点,其大小为前一层的2/3,而第一层的大小为最终要素图的2/3。然而,这只是一个粗略的指南,并且取决于数据集。另一个常用的选项是从过多的节点开始,然后通过修剪删除不必要的节点

    最大池窗口大小: 我总是在卷积之后直接应用最大池,所以我可能没有资格对应该使用的窗口大小提出建议。也就是说,19x19最大池似乎过于严重,因为它实际上会丢弃大部分数据。也许您应该看看更传统的LeNet网络布局:

    重复执行卷积(通常为5x5或3x3),然后执行最大池(通常使用2x2池窗口,但对于大型输入图像可能需要4x4)

    总之
    找到合适的网络布局的最佳方法就是进行试错测试。很多测试。没有一刀切的网络,只有您知道数据集的内在复杂性。执行大量必要测试的最有效方法是通过。

    在最先进的技术中,我们读到:“我们最好的配置是在配置422-960-480-480-480-480-480-100中具有五个隐藏层的网络。这些层完全连接并使用校正的线性单元……”。(他们没有使用卷积层。)目前的答案是“使用两个以上的隐藏层几乎没有任何好处。”没有引用引用或提供参数。@Evgeni Sergeev有趣的发现,本文中使用的训练样本数量非常多,因此我猜它们可以在不过度拟合的情况下使用大型网络。我已相应地更新了答案。