[深度学习]神经网络卷积方式:卷积、转置卷积与空洞卷积

释放双眼,带上耳机,听听看~!

感受野

定义:在卷积神经网络中,感受野的定义是,卷积神经网络中每一层输入的特征图(feature map)上的像素点在原始图像上的映射大小。

对于pooling操作,第一个作用是降低feature map的尺寸,减少需要训练的参数;第二,通过减小feature map的尺寸,将之前的4个像素点,压缩为1个,相当于通过这1个像素点,可以看到前面层的4个像素点,增大了感受野。但是,在图像分割操作中,先降低feature map的尺寸,再扩大feature map的尺寸,恢复成原图尺寸,会导致1)内部数据结构丢失,即空间层级化信息丢失;2)小物体信息无法重建(假设有4个pooling layer,则任何小于2^4=16 pixel的物体信息理论上无法重建)。因此,提出了dilated conv空洞卷积,解决保持感受野和保护图像尺寸间的互斥问题。

感受野计算公式:RF = ((RF -1)* stride) + fsize

 

空洞卷积

Dilated / Atrous Convolution,或者是Convolution with holes,顾名思义,即在标准的 convolution map中注入空洞,以此来增加感受野。相比于原来正常的卷积,空洞卷积多了一个超参数rate,指的是kernel的间隔数量(正常的卷积的rate为1)。

standard convolution with a 3*3 kernel (and padding)

[深度学习]神经网络卷积方式:卷积、转置卷积与空洞卷积

dilated convolution with a 3*3 kernel and dilation rate 2

[深度学习]神经网络卷积方式:卷积、转置卷积与空洞卷积

(a)图对应3*3的1-dilated conv,和普通的卷积操作一样;

(b)图对应3*3的2-dilated conv,实际的kernel size还是3*3,空洞为1,但是该卷积核的感受野已经增大到了7*7;

(c)图对应3*3的3-dilated conv,实际的kernel size还是3*3,空洞为3,但是该卷积核的感受野已经增大到了15*15。

对比传统的conv操作,3层3*3的卷积加起来,stride为1的话,只能达到7*7的感受野(
公式:RF = ((RF -1)* stride) + fsize),也就是和层数成线性关系,而dilated conv的感受野是指数级的增长。

dilated conv的优点:在不做pooling损失信息和不增加参数的情况下,加大了感受野,每个卷积输出都包含较大范围的信息。

应用于图像需要全局信息或者语音文本需要较长的sequence信息依赖的问题,如图像分割、语音合成、机器翻译等。

 

卷积、转置卷积与带孔卷积比较

对于标准的k*k卷积操作,stride为s,分三种情况:

(1)s > 1,即卷积的同时做了downsampling,卷积后图像尺寸较小;

(2)s = 1,普通的步长为1的卷积,比如在tensorflow中设置padding=SAME的话,卷积的图像输入与输出有相同的尺寸大小;

("VALID": only ever drops the right-most columns (or bottom-most rows).

"SAME": tries to pad evenly left and right, but if the amount of columns to be added is odd, it will add the extra column to the right, as is the case in this example (the same logic applies vertically: there may be an extra row of zeros at the bottom).)

(3)0 < s < 1,fractionally strided convolution,相当于对图像做upsampling。比如s=0.5时,意味着在图像每个像素之间padding一个空白像素后,stride改为1做卷积,得到的feature map尺寸增大一倍。

而dilated conv不是在像素之间padding空白的像素,而是在已有的像素的基础上,skip掉一些像素,或者输入不变,对conv的kernel参数中插一些0的weight,达到一次卷积看到的空间范围变大的目的。

当然,普通的卷积stride的步长设为大于1,也会达到增大感受野的效果。但是stride大于1就会导致downsampling,图像尺寸变小。

 

给TA打赏
共{{data.count}}人
人已打赏
安全运维

Elasticsearch模块功能之-索引分片分配(Index shard allocation)

2021-12-11 11:36:11

安全运维

Ubuntu上NFS的安装配置

2021-12-19 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索