如何在softmax层之前选择全连接层中的神经元数量?

人工智能 神经网络 深度学习 卷积神经网络 人工智能设计
2021-10-28 12:23:22

我正在用 CNN 解决分类问题。班级数量为5。

  1. 如何在 softmax 层之前确定 FC 层中的神经元数量?
  2. 是吗N5, 在哪里N是多少班?
  3. 是否有任何文档用于确定 FC 层中的神经元数量(在 SoftMax 层之前)
1个回答

如何在 softmax 层之前确定 FC 层中的神经元数量?

训练不同的网络架构(最后一个 FC 层具有不同数量的神经元)。使用交叉验证——一组你没有训练过的数据——来衡量网络的性能,使用你事先确定的指标来衡量你的实验目标。例如,您可能会选择获得最高的分类准确度作为您的目标 - 但可能会为不平衡的数据集选择不同的东西,因为 90% 的准确度没有意义。

通常没有充分的理由过度调整您的网络。尝试一些 1.5 x 或 2 x 几何系列的变化(例如,层中有 5、10、20、40 个神经元)可能足以找到一个好的隐藏层大小。

是吗N5, 在哪里N是多少班?

不,一般来说。不过,这可能对您的问题很有效。

是否有任何文档用于确定 FC 层中的神经元数量(在 softmax 层之前)

并不真地。最直接的做法是找到适合您的类似问题的解决方案,并根据需要进行调整。所以你可以搜索任何类似的问题域,看看研究人员在那里使用了什么。

这里没有太多的理论可以指导你。然而,如果它有助于你的直觉,更多的神经元可以更好地适应你正在学习的目标函数中更高频率的变化,而更多的层将意味着更好地处理复杂的函数空间(例如,关于输入和输出之间映射的规则可以根据结合更简单的规则来制作)——在这两种情况下,只要您有足够的训练数据,NN 就可以近似地学习函数。这些不是机器学习功能的严格定义特征,因此许多 NN 用户将使用这种直观的视图。

如果有疑问,假设这不是图像、NLP 或其他经过充分研究的问题,那么我可能只是猜测每个隐藏层有 64 个神经元,并尝试 1、2 和 3 个隐藏层作为起点(都一样尺寸)。我不能说这是否对你和你的问题有用,但它可能有助于克服“空白页效应”并开始训练和测试一些变化。