如何将误差从卷积层传播到前一层?

数据挖掘 机器学习 深度学习 神经网络 卷积神经网络 反向传播
2021-09-18 22:19:40

我一直在尝试实现一个简单的卷积神经网络。但是我已经被这个问题困扰了一个多星期。

具体来说,假设一个卷积通道中有 3 层,l-1, l, l+1 -layer分别标记为。l-1层为输入层,形状为形状(num_channels, img_height, img_width)l为卷积层,形状为核(num_kernels, num_channels, filter_height, filter_width)l+1层为池化层,池化大小为(pool_height, pool_width)请注意,在我的简单实现中,过滤器是 3 维的,它们与输入具有相同的深度,即它们具有与输入相同的通道数。

在这个设置上,我在反向传播阶段遇到了一个问题。

我研究了许多关于神经网络的教程,但是,似乎所有教程都停止了将错误反向传播到l公式层:

δk(l)=upsample((Wk(l))Tδk(l+1))f(zk(l))
l问题是,我应该如何从层到层 反向传播误差l-1,即计算δk(l1),为了将几个 conv-pooling pass 链接在一起?


在我的实现中,有一个类被调用ConvPoolLayer,它有一个feedforward方法和一个backprop方法。该方法backprop需要将错误从输出传播到输入。当我将瞬间链接class ConvPoolLayer在一起时,我只需要将它们的feedforward方法和backprop方法分别训练在一起。

0个回答
没有发现任何回复~