【问题标题】:Can I view convolutional neural network as fully connected neural network我可以将卷积神经网络视为完全连接的神经网络吗
【发布时间】:2017-06-14 21:30:13
【问题描述】:

例如,有一个 3 x 3 的图像,

一个具有两个 2x2 滤波器的卷积神经网络对图像进行卷积

最终输出尺寸为2x2x2

我可以将上面的过程看成如下吗?

由于 2x2 滤镜,在整个图像上滑动后,我得到了 4 个小图像

并使用这 4 个小图像作为全连接神经网络的输入

最后,我也能得到8个输出

我不太了解 CNN 中的反向传播,所以我试图从经典的全连接神经网络中理解它。

通过输入一个小图像,我们可以更新一次全连接神经网络中的权重,和更新CNN中过滤器的权重是一样的吗?

我想对了吗?

【问题讨论】:

    标签: machine-learning backpropagation


    【解决方案1】:

    简而言之,是的。您可以将 CNN 视为(以及其他可能的解释):

    • 具有卷积运算和直接为其计算梯度的神经网络(典型方法)
    • 一个具有权重共享的全连接网络,因此为简单起见,我们假设输入是大小为 3 的 1d,并且您的内核大小为 2,所以看起来像

      [X1 X2 X3] 转换 [w1 w2] = [X1w1+X2w2 X2w1+X3w3]

      这相当于拥有一个权重 vij 的全连接网络,意思是“第 i 个输入神经元和第 j 个隐藏神经元之间的权重”

      X1
      X2     h1 = X1v11+X2v21+X3v31
      X3     h2 = X1v12+X2v22+X3v32
      

      因此,如果您输入v31=v12=0v11=v22v21=v32,您将获得完全相同的网络。所谓平等,我的字面意思是这是同一个变量(因此称为权重共享)。

    • 小型神经网络的集合(同样,具有权重共享),它们连接到不同的小块输入(您正在提议)。所以你的整个模型看起来像:

                         /-patch 1 -- shared fully connected net\ 
      Input --splitting----patch 2 -- shared fully connected net--merging---
                         .                                      .
                         .                                      . 
                         \-patch K -- shared fully connected net/ 
      

    这只是同一对象的三个视图,在这两种情况下,如果您计算偏导数(梯度),您最终会得到完全相同的方程。

    【讨论】:

      猜你喜欢
      • 2020-11-01
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-20
      • 2020-10-07
      相关资源
      最近更新 更多