【问题标题】:Can't understand how filters in a Conv net are calculated无法理解如何计算 Conv 网络中的过滤器
【发布时间】:2017-03-18 23:11:40
【问题描述】:

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

CNN 的核心部分是:

  • 卷积层:您有“n”个过滤器,可用于生成“n”个特征图。
  • RELU 层:你用它来标准化卷积层的输出。
  • 子采样层:用于“生成”代表更抽象概念的新特征图。

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

我的疑惑如下:

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

如果有人知道不使用框架的 CNN 的简单实现,我将不胜感激。我认为学习事物如何运作的最好方法是自己动手。在其他时候,当您已经知道事物的工作原理时,您可以使用框架,因为它们可以为您节省大量时间。

【问题讨论】:

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


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

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

    我也会推荐你thoselectures。

    【讨论】:

    • 谢谢你:D!我会看那些讲座
    猜你喜欢
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 2021-02-14
    相关资源
    最近更新 更多