如何通过反向传播训练卷积神经网络中的过滤器?
Posted
技术标签:
【中文标题】如何通过反向传播训练卷积神经网络中的过滤器?【英文标题】:How are filters in a convolutional neural network trained through backpropagation? 【发布时间】:2019-09-24 01:33:31 【问题描述】:我正在尝试从头开始实现卷积神经网络。问题是我不明白如何在 CNN 中学习过滤器。
我之前从头开始实现了一个前馈神经网络,并且我了解反向传播如何为它们工作。我也了解基本的 CNN 架构。但是如何计算更新后的过滤器?
我不想使用 tensorflow 之类的库,因为我想了解所有这些背后的概念。
【问题讨论】:
【参考方案1】:通过 CNN 的反向传播基本上与通过前馈层相同。您可以将 CNN 想象成一个滑动窗口,在输入的每个窗口上应用相同的前馈层。 (您只需获取窗口中的所有值并将它们排列在一个长向量中。)
您可以为每个窗口独立计算参数的梯度。因为您在每个窗口中应用相同的参数,所以您可以对来自每个窗口的梯度求和,并使用梯度进行更新,并使用它们来更新过滤器的参数。
附:自己编写反向传播可能是一个很好的练习,但您几乎无法达到框架的效率。
【讨论】:
以上是关于如何通过反向传播训练卷积神经网络中的过滤器?的主要内容,如果未能解决你的问题,请参考以下文章