了解神经网络中的权重分布

机器算法验证 神经网络
2022-04-01 08:38:39

我正在训练一个具有多个卷积层和底部全连接层的深度神经网络,我正在生成权重分布的直方图,以尝试了解网络的训练方式。

在查看图表时,我发现了一些令人费解的事情:大多数权重接近于零,只有一小部分权重变得非常大。为什么会这样?这是好的和预期的,还是不受欢迎的?尽管我只发布了两个示例层,但这在我的整个网络中都在发生。

权重分布直方图

附加信息:

  • 数据非常稀疏且几乎是二进制的(大部分是 1,很少是 0)
  • 输入被标准化为范围 0-1
  • 尚未使用 L1/L2,因为权重大多很小
  • 激活都是泄漏的 Relu (a=0.3)
  • 我在每次预激活后执行批量标准化
1个回答

这是意料之中的。CNN 中的权重构成特征检测器,因此图像中的某个模式与强权重相关联,但图像的其余像素不应在下一层神经元中引起任何激活。

每次显示图像时,一层中只有一小部分神经元被激活,并且需要一小部分权重来激活(或抑制)任何特定的神经元。此外,网络需要检测的模式数量相当少,尤其是在早期层。因此,网络的整体连通性通常非常稀疏。

相同的推理适用于调节方法,例如 L2/L1 - 迫使权重变小使网络对数据中的噪声更加鲁棒,并迫使网络只学习许多图像中存在的特征。