卷积网络中的通道(Channel)理解

卷积网络中有一个很重要的概念,通道(Channel),也有叫特征图(feature map)的。

卷积网络中主要有两个操作,一个是卷积(Convolution),一个是池化(Pooling)

其中池化层并不会对通道之间的交互有影响,只是在各个通道中进行操作。

而卷积层则可以在通道与通道之间进行交互,之后在下一层生成新的通道,其中最显著的就是Incept-Net里大量用到的1x1卷积操作。基本上完全就是在通道与通道之间进行交互,而不关心同一通道中的交互。

一般我们说图像的通道,有两种含义的解释

一是图像的色彩通道(如RGB),二是特征图(卷积过滤器的输出结果)的输出通道(out_channel)

实际上,两者本质上是相同的,都是表示之前输入上某个特征分布的数据。

那么先来看看为什么可以说它们是相同的。

一、图像的色彩通道

通道这个概念最初指的是电子图片中RGB通道,或者CMYK通道这样的配色方案,比如说一张RGB的64x64的图片,可以用一个64x64x3的张量来表示。这里的3指的就是通道,分别为红色(Red)、绿色(Green)、蓝色(Blue)三个通道。

因为这三种颜色是三原色,所以基本上可以合成任何人眼可分辨的颜色。而三个通道的图片也基本上可以表示所有图片了。

在计算机视觉处理中,一般图片数据除了是单通道的灰度图片外,就是RGB通道的彩色图片了。

对RGB图片进行卷积操作后,根据过滤器的数量就可以产生更多的通道。事实上,多数情况还是叫后面的卷积层中的通道为,特征图。但实际上在张量表示下,特征图和前面提到的通道差不多,有时候后面的也都叫通道了。

当把通道和特征图当成是一个东西,然后来看RGB图片中的通道是怎么获得的就会非常有意思了。

首先通道需要卷积操作来完成,也就是说我们需要三个过滤器来生成RGB通道。那么这个过滤器是什么呢,又是以什么为输入呢。

拿以上数码相机成像过程来类比卷积的话,就会发现,这里的红绿蓝三色的滤光片,正好可以类比成卷积中的过滤器,外界射进来的光就是输入,通过这三个特征过滤器,获得了一个三通道的输出

那么卷积核大小是多大呢,这里可以说是感光元件上一个像素大小,而原始的射入的光的精度则是光子级别的,对这个光的一个像素大小的范围进行卷积,获得这个范围当前过滤器捕捉特征的强度。也就是绿光、红光、蓝光的强度。

二、通道与特征

这样看来,图片中的通道就是某种意义上的特征图。一个通道是对某个特征的检测,通道中某一处数值的强弱就是对当前特征强弱的反应

如一个蓝色通道中,如果是256级的话,那么一个像素如果是255的话那么就表示蓝色度很大。从这个角度来看灰度图片的话,就会发现其实灰度图片就是一个白色过滤器生成的特征图。

于是卷积网络中的特征图,也能够很直接地理解为通道了。

之后通过对一定范围的特征图进行卷积,可以将多个特征组合出来的模式抽取成一个特征,获得下一个特征图。之后再继续,对特征图进行卷积,特征之间继续组合,获得更复杂的特征图。

又因为池化层的存在,会不断提取一定范围内最强烈的特征,并且缩小张量的大小,使得大范围内的特征组合也能够捕捉到。

对单个特征图进行视觉化的话,会发现它是在对什么特征进行捕捉。最近一个很有意思的Blog文章就展示了这方面的结果,很有意思。

通过特征角度来看卷积网络的话,那么1x1卷积也就很好理解了。即使1x1卷积前后的张量大小完全不变,比如说16x16x64 -> 16x16x64这样的卷积,看上去好像是没有变化。但实际上,可能通过特征之间的互动,已经由之前的64个特征图组成了新的64个特征图。

有时候我理解一个这样的1x1卷积操作,就会把它当成是一次对之前特征的整理

三、通道的终点

这样子不停卷积下去,直到最后一层,剩下一个一维向量时,每个标量代表着一个通道,捕捉到的特征又是什么呢。

如果是物体分类任务的话,就正是我们需要输出判别的一个个物体类别。

比如说第一个数是代表猫特征,第二个数代表狗特征,第三个代表人… 这个时候去从里面选数值最大那个当做分类的种类就好了。

到这里可能仔细的人会注意,最后几层不是没卷积操作吗,而是全连接网络。

一个概念上需要澄清的是,虽然说1x1卷积,而且也从融合特征角度,给了它特殊的理解。但如果再仔细看看的话,就会发现实际上1x1卷积就是全连接网络。所以我们可以把最后的1x1网络当成某种程度上的1x1卷积。

上面的网络最后几层,将张量展平然后输入全连接网络。因为剩下的特征图中都保留了很重要的信息,为了利用所有的信息,并且让它们获得足够的交互,所以直接输入全连接网络,获得最后的特征向量。

这个特征向量能够用来干什么呢。一个很有趣的应用案例是Siamese网络。输入一张脸,输出一个128的特征向量,于是这个向量就类似于ID号码。

之后再输入一张脸,得到一个特征向量,这时候只需要比较一下获得的两个特征向量就能够知道这两张脸是不是同一个人。

如果将最后的特征向量视觉化,或许我们还能发现,向量中每个标量所代表的特征,比如说眼睛之间的间距,肤色…

用本文的通道来说的话,最后获得了一个128个通道向量表示。

四、通道的参数

首先,对于卷积核(或称为卷积过滤器)的大小,一个卷积核的通道数与它进行卷积的输入必须是相同。

例如:32*32*3的图像的卷积核通道数必须是3,如5*5*3

在这个卷积核中卷积层数的参数3与输入的通道数3是相同的(对于三个通道的输入而言)。

其次,对于卷积运算,一个卷积核经过计算得到的一定是一个映射,一个数字。

接着,对于卷积核的深度,就是有几个卷积核。下图中就是有五个卷积核,即卷积核的深度是5。

例子:

假设现有一个为 6×6×3的图片样本,使用 3×3×3 的卷积核(filter)进行卷积操作。此时输入图片的 channels 为 3

卷积核中in_channels 与 需要进行卷积操作的数据的 channels 一致(这里就是图片样本,为3)。

然后进行卷积,卷积核中的27个数字与分别与样本对应相乘后,再进行求和,得到第一个结果。依次进行。由于只有一个卷积核(卷积核数为1),所以最终得到的结果为 4×4×1out_channels 为 1

在实际应用中,都会使用多个卷积核。这里如果再加一个卷积核(卷积核数为2),就会得到 4×4×2 的结果

卷积网络中的通道(Channel)理解相关推荐

  1. 卷积网络中的通道(channel)和特征图(feature map)

    卷积网络中的通道(Channel)和特征图 转载自:https://www.jianshu.com/p/bf8749e15566 今天介绍卷积网络中一个很重要的概念,通道(Channel),也有叫特征 ...

  2. 卷积网络中的通道(Channel)和特征图

    卷积网络中有一个很重要的概念,通道(Channel),也有叫特征图(feature map)的. 首先,卷积网络中主要有两个操作,一个是卷积(Convolution),一个是池化(Pooling). ...

  3. (转)卷积网络中的通道(Channel)和特征图

    今天介绍卷积网络中一个很重要的概念,通道(Channel),也有叫特征图(feature map)的. 首先,之前的文章也提到过了,卷积网络中主要有两个操作,一个是卷积(Convolution),一个 ...

  4. 卷积网络中的通道、特征图、过滤器和卷积核

    卷积网络中的通道.特征图.过滤器和卷积核 1.feature map 1 feature map 在cnn的每个卷积层,数据都是以三维形式存在的.你可以把它看成许多个二维图片叠在一起(像豆腐皮一样), ...

  5. 【CNN】理解卷积神经网络中的通道 channel

    在深度学习的算法学习中,都会提到 channels 这个概念.在一般的深度学习框架的 conv2d 中,如 tensorflow .mxnet ,channels 都是必填的一个参数. channel ...

  6. 如何理解卷积神经网络中的通道(channel)

    在卷积神经网络中我们通常需要输入 in_channels 和 out_channels ,即输入通道数和输出通道数,它们代表什么意思呢?本文将给出一个形象的理解. 对于通道的理解可以参考下面的这篇文章 ...

  7. 深度学习卷积网络中反卷积/转置卷积的理解 transposed conv/deconv

    搞明白了卷积网络中所谓deconv到底是个什么东西后,不写下来怕又忘记,根据参考资料,加上我自己的理解,记录在这篇博客里. 先来规范表达 为了方便理解,本文出现的举例情况都是2D矩阵卷积,卷积输入和核 ...

  8. Gram矩阵与卷积网络中的卷积的直观理解

    Gram矩阵其实是一种度量矩阵.矩阵分析中有这样的定义. 设 V V是nn维欧式空间 ϵ1,⋯,ϵn \mathbf{\epsilon_1, \cdots, \epsilon_n }是它的一个基, g ...

  9. CVPR2020:点云分析中三维图形卷积网络中可变形核的学习

    CVPR2020:点云分析中三维图形卷积网络中可变形核的学习 Convolution in the Cloud: Learning Deformable Kernels in 3D Graph Con ...

最新文章

  1. MVC应用程序播放RealPlayer(rmvb)视频
  2. linux命令:find文件查找工具
  3. phpStudy for Linux (lnmp+lamp一键安装包)
  4. 【约束布局】ConstraintLayout 之 Chains 链式约束 ( Chains 简介 | 代码 及 布局分析 | 链头设置 | 间距设置 | 风格设置 | 权重设置 )
  5. EndNote(二)之英文引文导入方式
  6. Java虚拟机的Heap监狱
  7. P4294-[WC2008]游览计划【斯坦纳树】
  8. 如何设计一个安全的登录流程
  9. Vijos CoVH之再破难关(搜索+hash)
  10. 如何简单解释 MapReduce算法
  11. R_ggplot2地理信息可视化_史上最全(二)
  12. thinkphp对数据库操作有哪些内置函数
  13. Jsoup爬虫并解析网页
  14. ADSL拨号工作原理
  15. 华为荣耀3c手机语言设置在哪个文件夹,(科普)详解Android系统SD卡各类文件夹名称...
  16. 多目标优化算法:多目标非洲秃鹫优化算法MOAVOA(提供Matlab代码)
  17. 严重: Compilation error org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
  18. 微信客户管理方式及如何微信客户管理
  19. workman 日志_workerman
  20. yaourt下载速度太慢_加快Yaourt软件包的安装速度

热门文章

  1. 从人工客服到人机协同,容联云用AI重塑联络中心
  2. Kubernetes进阶使用(二)
  3. java实现短链接得到长链接!!!
  4. 解决WIN 7 不能任意修改无线网卡MAC地址的问题
  5. 两个实打实干活的同事离职了,老板连谈都没谈,一句挽留都没有,你怎么看?
  6. 中西方对时间的差异_中西方时间观念的不同
  7. 用过滤器实现file类实现输出目录以及子目下的结尾为.java的文件
  8. 三坐标测圆的直径怎么测_大半径短圆弧用三坐标测不准?知道为什么吗?
  9. linux镜像文件没有gho,使用OneKey备份系统后找不到GHO系统文件解决方法
  10. 人见人爱A-B--set