才子佳人博客

我的故事我讲述

CNN中图像卷积操作的通道、滤波器、步长的理解
 
来源:blog.csdn.net  编辑:xjh  2019-12-27

通道(channel)怎么理解:通道可以理解为视角、角度。例如同样是提取边界特征的卷积核,可以按照R、G、B三种元素的角度提取边界。

计算例子:5*5*3 矩阵填充0后变成7*7*3矩阵,卷积运算,步长为2生成3*3*2的输出矩阵,若步长为1则生成5*5*2的输出矩阵。


解析:图中input 7*7*3中,7*7代表图像的像素/长宽,3代表R、G、B 三个颜色通道,可以看到周边有填充0; 有两个卷积核Filter w0、Filter w1,每个filter对应每个通道有一组w权重;一个filter滑动到一个位置后计算三个通道的卷积,求和,加bias,得到这个filter在该位置的最终结果;每个filter的输出是各个通道的汇总;输出的个数与filter个数相同。所以最右边能得到两个不同的输出。


下面详细分析 1 的计算过程:

第一个通道和对应权重的结果:0*1+0*1+0*(-1)+0*(-1)+0*0+1*1+0*(-1)+0*(-1)+1*0 = 1

第二个通道和对应权重的结果:0*(-1)+0*0+0*(-1)+0*0+1*0+1*(-1)+0*1+0*(-1)+2*0 = -1

第三个通道和对应权重的结果:0*0+0*1+0*0+0*1+2*0+0*1+0*0+0*(-1)+0*1 = 0

偏置:1

输出:1+(-1)+ 0 + 1 = 1

几个参数:

a. 深度depth:神经元个数,决定输出的depth厚度。同时代表滤波器个数。

b. 步长stride:决定滑动多少步可以到边缘。

c. 填充值zero-padding:在外围边缘补充若干圈0,方便从初始位置以步长为单位可以刚好滑倒末尾位置,通俗地讲就是为了总长能被步长整除。

上面的例子中:

•两个神经元,即depth=2,意味着有两个滤波器。

•数据窗口每次移动两个步长取3*3的局部数据,即stride=2。(步长是步子大小,不是步数,步长为2,恰好滑动9次覆盖所有数据就能生成3*3 的矩阵)

•zero-padding=1。

数据窗口滑动,导致输入在变化,但中间滤波器Filter w0的权重是固定不变的,这个权重不变即所谓的CNN中的参数(权重)共享机制。再打个比方,某人环游全世界,所看到的信息在变,但采集信息的双眼不变。不同人的双眼看同一个局部信息 所感受到的不同,即一千个读者有一千个哈姆雷特,所以不同的滤波器就像不同的双眼,不同的人有着不同的反馈结果。

来源:
https://blog.csdn.net/cheneykl/article/details/79740810


分类:网络日志| 查看评论
相关文章
文章点击排行
本年度文章点击排行
发表评论:
  • 昵称: *
  • 邮箱: *
  • 网址:
  • 评论:(最多100字)
  • 验证码: