gpt4 book ai didi

neural-network - CNN 中卷积层到全连接层的输入维度

转载 作者:行者123 更新时间:2023-12-02 19:36:54 25 4
gpt4 key购买 nike

问题是关于卷积神经网络的数学细节。假设网络的架构(其目标是图像分类)是这样的

  • 输入图像 32x32
  • 第一个隐藏层 3x28x28(通过与 3 个滤波器卷积形成)大小 5x5,步幅长度 = 0 并且无填充),然后是激活
  • 池化层(在 2x2 区域上池化)产生的输出为3x14x14
  • 第二个隐藏层 6x10x10(通过与 6 个滤波器进行卷积形成)大小为 5x5,步幅长度 = 0 并且无填充),然后是激活
  • 池化层(在 2x2 区域上池化)产生的输出为6x5x5
  • 全连接层 (FCN) -1,具有 100 个神经元
  • 全连接层 (FCN) -2,具有 10 个神经元

根据迄今为止的阅读,我了解到每个 6x5x5 矩阵都连接到 FCN-1。我有两个问题,两个问题都与一层的输出馈送到另一层的方式有关。

  1. 第二个池化层的输出是6x5x5。这些是如何馈送到 FCN-1 的?我的意思是,FCN-1 中的每个神经元都可以看作以标量作为输入(或 1x1 矩阵)的节点。那么我们如何给它提供 6x5x5 的输入呢?我最初认为我们可以将 6x5x5 矩阵展平并将其转换为 150x1 数组,然后将其输入神经元,就好像我们有 150 个训练点一样。但是,扁平化特征图是否会覆盖图像空间结构的论点?
  2. 从第一个池化层,我们得到 3 个大小为 14x14 的特征图。第二层的特征图是如何生成的?假设我查看从第一个卷积层获得的 3 个特征图的同一区域(从特征图左上角开始的 5x5 区域)。这三个 5x5 的 patch 是否用作单独的训练示例来生成下一组特征图中的相应区域?如果是这样,那么如果三个特征图是输入图像的 RGB 值呢?我们还会使用它们作为单独的训练示例吗?

最佳答案

一般来说,某些 CNN(例如 VGG 16 、 VGG 19)所做的是,它们会展平 MAX_POOL 层的 3D 张量输出,因此在您的示例中,FC 层的输入将变为 (None,150) ,但其他 CNN(如 ResNet50 )使用全局 max 函数来获取 6x1x1 (输出张量的维度),然后将其展平(将变为 (None,6) code>) 并送入 FC 层。

This link has an image to a popular CNN architecture called VGG19 .

为了回答您的查询,其中扁平化击败了空间排列,当您扁平化图像时,假设像素位置为 Xij (即第 i 行,第 j 列 = n*i+j ,其中 n 是图像的宽度),然后根据矩阵表示,我们可以说它的上邻居是 Xi-1,j (n*(i-1)+j) 对于其他邻居依此类推,由于像素与其相邻像素之间存在相关关系,FC层会自动调整权重以反射(reflect)该信息。

因此,您可以将convo->activation->pooling层组视为特征提取层,其输出张量(类似于向量中的维度/特征)将在网络末端。

关于neural-network - CNN 中卷积层到全连接层的输入维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45143571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com