无法理解卷积神经网络中滤波器的计算方式。

4
我已经学习了机器学习4个月,我理解MLP背后的概念。然而,当我开始阅读卷积神经网络方面的内容时,问题就来了。让我先告诉你我所知道的,然后再问我的困惑。
CNN的核心部分包括:
- 卷积层:使用“n”个滤波器生成“n”个特征映射。 - RELU层:用于规范化卷积层的输出。 - 池化层:用于生成表示更抽象概念的新特征映射。
重复前3个层数次,最后一部分是常见分类器,如MLP。
我的疑问如下:
1. 如何创建在卷积层中使用的滤波器?我需要创建一个滤波器,对其进行训练,然后将其放入Conv层中,还是使用反向传播算法进行训练? 2. 假设我有一个有3个过滤器的卷积层,那么它将输出3个特征映射。经过RELU和池化层处理后,我仍然拥有3个特征映射(较小的)。当再次通过Conv层时,如何计算输出?我必须在每个特征图上分别应用滤波器,还是在3个特征映射上执行某种操作,然后求和?我不知道如何计算第二个Conv层的输出以及它将输出多少个特征映射。 3. 如何将数据从Conv层传递到MLP(用于NN的最后分类)?
如果有人知道一个简单的CNN实现而不使用框架,我会很感激。我认为学习东西最好的方式是自己去做。在你已经知道东西如何工作时,可以使用框架,因为它们可以节省很多时间。
1个回答

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

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

我也建议你看这些讲座。


谢谢:D!! 我会看那些讲座 - Malvrok

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接