例如,有一张3×3的图像,
并且有一个卷积神经网络使用两个2×2的滤波器对图像进行卷积,
最终的输出维度是2x2x2
我可以将上述过程视为以下情况吗?
由于使用了2×2的滤波器,滑过整个图像后,我得到了4个小图像
然后将这些4个小图像作为全连接神经网络的输入
最后,我也能够得到8个输出
我对CNN中的反向传播不太了解,所以我试图从经典的全连接神经网络来理解它。
通过输入一个小图像,我们可以一次更新全连接神经网络中的权重,这与更新CNN中滤波器的权重是一样的吗?
我的想法对吗?
回答:
简而言之,是的。你可以将CNN视为(在其他可能的解释中):
- 具有卷积操作的神经网络,并直接为其计算梯度(典型方法)
-
具有权重共享的全连接网络,为了简化,让我们假设输入是一维的,大小为3,并且你有一个大小为2的内核,因此它看起来像
[X1 X2 X3] conv [w1 w2] = [X1w1+X2w2 X2w1+X3w3]
这相当于有一个全连接网络,其权重vij表示“第i个输入神经元和第j个隐藏神经元之间的权重”
X1X2 h1 = X1v11+X2v21+X3v31X3 h2 = X1v12+X2v22+X3v32
因此,如果你设置
v31=v12=0
和v11=v22
,v21=v32
,你就得到了完全相同的网络。我所说的相等,意思是这确实是同一个变量(因此称为权重共享)。 -
小型神经网络的集合(再次使用权重共享),这些网络连接到输入的不同小块(你提出的方法)。因此,你的整个模型看起来像:
/-patch 1 -- shared fully connected net\ Input --splitting----patch 2 -- shared fully connected net--merging--- . . . . \-patch K -- shared fully connected net/
这些只是对同一对象的三种看法,在这两种情况下,如果你计算偏导数(梯度),你将得到完全相同的方程。