神经网络:CNN 确认层/过滤器算法

人工智能 深度学习 卷积神经网络 权重 卷积算术
2021-10-26 18:13:01

我希望有人能证实一些关于卷积如何在卷积神经网络中工作的直觉。我看过所有关于在图像上应用卷积过滤器的教程,但大多数教程都关注单通道图像,比如 128 x 128 x 1 图像。我想澄清当我们将卷积滤波器应用于 RGB 3 通道图像时会发生什么。

现在这不是一个独特的问题,我想很多人也会问这个问题。只是那里似乎有很多答案,每个都有自己的变化,很难找到一个一致的答案。我在下面包含了一篇似乎与我自己的直觉相符的帖子,但我希望 SE 专家之一可以帮助验证层算术,以确保我的直觉没有偏离。

输入的深度与卷积层的输出深度有什么关系?

考虑一个具有 5 个卷积层和 3 个全连接层的 Alexnet 网络。我从这篇文章中借用了网络现在,假设输入是 227 x 227,过滤器指定为 11 x 11 x 96,步长为 4。这意味着有 96 个过滤器,每个过滤器的尺寸为 11x11x3,对吧? 所以每个过滤器总共有 363 个参数——不包括偏置项——并且有 96 个过滤器需要学习。所以 363*96 = 34848 过滤器值就像全连接层中的权重一样学习,对吧?

我的第二个问题涉及下一个卷积网络层。在下一层中,我将有一个 55 x 55 x 96 的图像。在这种情况下,过滤器是否会是 5x5x96——因为图像上现在有 96 个特征图?所以这意味着每个单独的过滤器都需要学习 5x5x96 = 2400 个过滤器值(权重),并且在所有 256 个过滤器中这意味着 614,400 个过滤器值?

我只是想确保我能准确理解每个级别所学的内容。

1个回答

你的第一点是正确的。过滤器存储在 4d 数组中,尺寸为 (height, width, input channels, filter number) 。顺序可能不同。你的第二点也是正确的。过滤后的结果堆叠在一起,因此输出维度为(高度、宽度、过滤器编号)下一层的过滤器大小为(过滤器宽度、过滤器宽度、最后一层的过滤器编号)。你对CNN的理解是正确的。如果你想获得更多关于 CNN 的资源,你可以试试 Andrew Ng 在 Coursera 上的 CNN 课程。希望你能更多地了解CNN。