无法理解 Conv 网络中的过滤器是如何计算的

Can't understand how filters in a Conv net are calculated

学习机器学习4个月,了解MLP背后的概念。当我开始阅读有关卷积神经网络的内容时,问题就来了。让我告诉你我所知道的然后问我有什么问题。

一个CNN的核心部分是:

重复前 3 层几次,最后一部分是普通分类器,例如 MLP。

我的疑惑如下:

  1. 如何创建在卷积层中使用的过滤器?我必须创建一个过滤器,对其进行训练,然后将其放入 Conv Layer,还是使用反向传播算法对其进行训练?
  2. 假设我有一个带有 3 个过滤器的 conv 层,那么它将输出 3 个特征图。应用 RELU 和子采样层后,我仍然会有 3 个特征图(较小的)。再次通过Conv Layer时,如何计算输出?我是否必须分别在每个特征图中应用过滤器,或者对 3 个特征图进行某种操作然后求和?我不知道如何计算第二个 Conv Layer 的输出,以及它将输出多少个特征图。
  3. 如何将数据从 Conv 层传递到 MLP(用于 NN 最后一部分的分类)?

如果有人知道无需使用框架即可简单实现 CNN,我将不胜感激。我认为了解东西如何工作的最好方法是自己动手做。换个时间,当你已经知道东西是如何工作的时候,你可以使用框架,因为它们可以节省你很多时间。

  1. 你用反向传播算法训练它,就像你训练 MLP 一样。
  2. 您分别应用每个过滤器。例如,如果第一层有 10 个特征图,第二层的其中一个特征图的过滤器形状为 3*3,则对第一层的十个特征图应用 3*3 过滤器,每个特征图的权重不同,在这种情况下,一个过滤器将具有 3*3*10 权重。 为了更容易理解,请记住非灰度图像的像素具有三个值 - 红色、绿色和蓝色,因此如果您将图像传递给卷积神经网络,那么在输入层中您已经拥有 3 个特征映射(对于 RGB),因此下一层中的一个值也将连接第一层中的所有 3 个特征图
  3. 你应该展平卷积特征图,例如,如果你有 10 个大小为 5*5 的特征图,那么你将有一个具有 250 个值的层,然后与 MLP 没有什么不同,你连接所有这些人工神经元到下一层所有人工神经元的权重。

Here有人在没有框架的情况下实现了卷积神经网络。

我也会推荐你 those 讲座。