卷积(CNN)| 反卷积(TCNN、Transposed CNN)| 卷积过程中feature map的通道变化 | 1 × 1卷积核如何降维/升维

关于深度学习中的一些小概念,因为网上的资源有些散乱,这里总结一些自己的,方便后面复习,摘一些图,但是会标明引用


一、卷积

对于卷积,下面一张图就够了,根据 stride 步长在 feature map 上移动卷积核进行的一种运算。1

在这里插入图片描述


二、反卷积

反卷积两张图就可以说明白了,如下:

在这里插入图片描述

注意:上图中绿色的即为反卷积核,我们可以得到4个feature map。

将4个feature map按照下图中进行叠加,就得到最终的feature map了,值得注意的是,确实是由 3 × 3 3\times 3 3×3 变为 4 × 4 4\times 4 4×4 了。

在这里插入图片描述


三、卷积过程中通道(channels)的变化

既然谈到深度学习,那么什么是深度呢?一方面是指网络的层数,到底有多少个卷积层?另一方面,还包括 feature map 的通道数量。那么在两次卷积之间,通道(channels)到底是如何变化的呢?

看下面这一张图就够了。2

在这里插入图片描述

卷积过程中,输入层有多少个通道,滤波器就要有多少个通道(可以看到,input和filter是相同厚度的,也就是说卷积核的厚度应该是和输入的feature map的通道数相等才对的),但是滤波器的数量是任意的(也就是说,我们到底有几个卷积核(filter)是可以变化的,也就是输出通道是可以控制的),滤波器的数量决定了卷积后 feature map 的通道数。

Q1:那么多通道,如果只有一个卷积核,最终为什么只输出一层feature map?

A1:这里是进行一个累加的,比如有 10 个通道,那么就有 10 层的卷积核,最终这 10 层是加到一起来得到一个的。当然我们如果有20个卷积核(filter)进行卷积,那么我们就会得到 20 层。

在这里插入图片描述

值得注意的是,用很多个卷积核的时候,每个卷积核的偏置是不同的3,这里自己还不太清楚,后面再补充。


四、1 × 1卷积核的降维/升维

如果卷积的输出输入都只是一个平面,那么1x1卷积核并没有什么意义,它是完全不考虑像素与周边其他像素关系。 但卷积的输出输入是长方体,所以1x1卷积实际上是对每个像素点,在不同的channels上进行线性组合(信息整合),且保留了图片的原有平面结构,调控depth,从而完成升维或降维的功能。4

如下图所示,如果选择2个filters的1x1卷积层,那么数据就从原本的depth 3 降到了2。若用4个filters,则起到了升维的作用。

在这里插入图片描述


  1. https://blog.csdn.net/weixin_39326879/article/details/120797857 ↩︎

  2. https://blog.csdn.net/briblue/article/details/83063170 ↩︎

  3. https://blog.csdn.net/weixin_47125742/article/details/118788914 ↩︎

  4. https://zhuanlan.zhihu.com/p/27642620 ↩︎

猜你喜欢

转载自blog.csdn.net/myf_666/article/details/129265038