【问题标题】:How are filters in a convolutional neural network trained through backpropagation?如何通过反向传播训练卷积神经网络中的过滤器?
【发布时间】:2019-09-24 01:33:31
【问题描述】:

我正在尝试从头开始实现卷积神经网络。问题是我不明白如何在 CNN 中学习过滤器。

我之前从头开始实现了一个前馈神经网络,并且我了解反向传播如何为它们工作。我也了解基本的 CNN 架构。但是如何计算更新后的过滤器?

我不想使用 tensorflow 之类的库,因为我想了解所有这些背后的概念。

【问题讨论】:

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


    【解决方案1】:

    通过 CNN 的反向传播基本上与通过前馈层相同。您可以将 CNN 想象成一个滑动窗口,在输入的每个窗口上应用相同的前馈层。 (您只需获取窗口中的所有值并将它们排列在一个长向量中。)

    您可以为每个窗口独立计算参数的梯度。因为您在每个窗口中应用相同的参数,所以您可以对来自每个窗口的梯度求和,并使用梯度进行更新,并使用它们来更新过滤器的参数。

    附:自己编写反向传播可能是一个很好的练习,但您几乎无法达到框架的效率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多