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

时间:2016-11-05 02:26:50

标签: machine-learning neural-network convolution conv-neural-network

我已经学习了4个月的机器学习,我理解MLP背后的概念。当我开始阅读卷积神经网络时,问题出现了。让我告诉你我所知道的,然后问我遇到了什么问题。

CNN的核心部分是:

  • 卷积层:你有" n"用于生成" n"的过滤器数量特色地图。
  • RELU Layer:您可以使用它来规范化卷积层的输出。
  • 子采样层用于"生成"一个新的特征映射,代表更抽象的概念。

重复前3个图层,最后一个部分是常见的分类器,例如MLP。

我怀疑如下:

  1. 如何创建卷积层中使用的过滤器?我是否必须创建一个过滤器,训练它,然后将其放入Conv层,或者我是否使用反向传播算法进行训练?
  2. 想象一下,我有一个包含3个滤镜的转换层,然后它将输出3个特征映射。应用RELU和子采样层后,我仍然会有3个功能图(较小的)。再次通过Conv Layer时,如何计算输出?我是否必须单独在每个要素图中应用滤镜,或者对3个要素图执行某种操作然后进行求和?我不知道如何计算第二个Conv图层的输出,以及它将输出多少个要素图。
  3. 如何将数据从Conv层传递到MLP(在NN的最后部分进行分类)?
  4. 如果有人在不使用框架的情况下知道CNN的简单实现,我将不胜感激。我认为学习东西的最佳方法是自己动手。在另一个时候,当你已经知道东西是如何工作的时候,你可以使用框架,因为它们可以节省你很多时间。

1 个答案:

答案 0 :(得分:1)

  1. 您使用反向传播算法训练它,就像训练MLP一样。
  2. 您可以单独应用每个过滤器。例如,如果第一层中有10个要素贴图,而第二层中的一个要素贴图的滤镜形状为3 * 3,则对第一层中的十个要素贴图中的每一个应用3 * 3滤镜,每个特征图的权重是不同的,在这种情况下,一个过滤器将具有3 * 3 * 10个权重。 为了更容易理解,请记住,非灰度图像的像素有三个值 - 红色,绿色和蓝色,所以如果您将图像传递到卷积神经网络,那么在输入层中您可以使用3个要素图(对于RGB),因此下一层中的一个值也将连接到第一层中的所有3个要素图 The following image demonstrates it
  3. 你应该展平卷积特征映射,例如,如果你有10个大小为5 * 5的特征映射,那么你将有一个250值的层,然后没有什么不同于MLP,你连接所有这些人工神经元通过权重对下一层中的所有人工神经元进行处理。
  4. Here有人在没有框架的情况下实施了卷积神经网络。

    我还建议您those讲座。