1 个具有 1000 个神经元的隐藏层与 10 个具有 100 个神经元的隐藏层

人工智能 神经网络
2021-11-15 20:36:28

这些类型的问题可能与问题有关,但我试图找到研究来解决隐藏层的数量及其大小(每层中的神经元数量)是否真的重要的问题。

所以我的问题是,如果我们有 1 个包含 1000 个神经元的大型隐藏层与每个包含 100 个神经元的 10 个隐藏层,这真的很重要吗?

4个回答

基本上,拥有多个层(又名深度网络)会使您的网络更渴望识别输入数据的某些方面。例如,如果您有房子的详细信息(大小、草坪大小、位置等)作为输入并想要预测价格。第一层可以预测:

  • 面积大,价格高
  • 卧室数量少,价格低

第二层可能会得出以下结论:

  • 大面积+少量卧室=大卧室=+-效果

是的,一层也可以“检测”统计数据,但是它将需要更多的神经元,因为它不能依赖其他神经元来完成检测该统计数据所需的总计算的“部分”。

看看这个答案

有很多方面。

1. 训练: 由于梯度消失(后爆炸)问题,训练深度网络是一项艰巨的工作。因此不建议构建 10x100 的神经网络。

2. 训练好的网络性能:

  • 信息丢失: 神经网络的经典用法是分类问题。这意味着我们希望从数据中获得一些明确定义的信息。(例如,图片中有没有人脸。)所以通常分类问题有很多输入,很少输出,更何况隐藏层的大小是从输入到输出下降的。然而,我们使用更少的神经元逐层丢失信息。(即,我们无法根据上面是否有人脸这一事实来重现原始图像。)因此,如果输入的大小为(假设)1000,您必须知道使用 100 个神经元会丢失信息。
  • 信息复杂性:然而,更深的网络(如 Tomas W 所述)可以从输入数据中获取更复杂的信息。尽管如此,不建议使用 10 个全连接层。建议使用卷积/relu/maxpooling 或其他类型的层。最火层可以压缩输入的一些重要部分。(例如图片的特定部分有没有线条) 第二层可以说:图片的这个地方有一个特定的形状。等等等等。

所以更深的网络更“聪明”,但 10x100 的网络结构是一个不错的选择。

如果您要解决的问题是线性可分的,那么 1000 个神经元中的一层可以比 100 个神经元中的每一个的 10 层做得更好。如果问题是非线性的并且不是凸的,那么您需要深度神经网络。

我认为您对神经网络的基础知识感到困惑。每层都有单独的激活函数和输入/输出连接权重。

第一个隐藏层的输出将乘以权重,由下一层的激活函数处理,依此类推。单层神经网络对于简单的任务非常有限,更深的 NN 可以比单层执行得更好。

但是,如果您的应用程序不是相当复杂,请不要使用超过层。总之,100 个神经元层并不意味着比 10 层 x 10 个神经元更好的神经网络,但 10 层是虚构的,除非你在进行深度学习。从隐藏层中的 10 个神经元开始,尝试添加层或向同一层添加更多神经元以查看差异。多层次的学习会更容易,但需要更多的训练时间。