卷积层的过滤器从何而来?

Where the filters of convolutional layers come from?

我的问题是关于 CNN 中卷积层的内核或过滤器。我们可以指定过滤器的大小以及一个卷积层中应该有多少个过滤器。但是我们从不指定过滤器的值。我知道过滤器就像用于处理图像的矩阵。

我想知道是否有一种算法可以生成过滤器并在训练期间对其进行优化。谢谢。

深度卷积神经网络的主要目的就是学习那些数字。每个过滤器中所谓的内核值,以便它从图像中提取正确的信息。

首先,为了简单的解释,假设我们有 3*3 过滤器,它最初将所有 9 个值分配给 0.5 。它遍历图像并通过计算生成下一级特征图,简单来说,让我们将其保留为乘法。

它做最后一层的激活和最后的概率预测,进而决定类的数量。 如果模型不能很好地预测 batch/sample,它会向后传播,损失并改变这些内核的值(9 个值)。它不仅仅是这 9 个值,但是这个过程是针对每个级别的卷积过滤器。

现在为了高效地进行训练过程,您可以通过各种不同的方法来初始化这些值。

  1. 统一分配相同的值
  2. 分配均值和标准差恒定的随机值
  3. 在一个范围内分配随机值等等。

如果您使用的是 keras,请在此处查看内核初始化程序 https://keras.io/initializers/