卷积、反卷积与膨胀卷积
卷积(多---->1 的映射)
本质:在对输入做9--->1的映射关系时,保持了输出相对于input中的位置性关系
对核矩阵做以下变形:卷积核的滑动步骤变成了卷积核矩阵的扩增
卷积的矩阵乘法变成以下形式:核矩阵重排,输入featuremap变形为向量
反卷积(1---->多 的映射)
deconvlution/transpose-convlution
- 动机
- 想要网络去学出一种最优的上采样方法,而不是像基于插值似的手动方法,它有可以学习的参数.
缺点:反卷积会在生成的图像中造成棋盘效应(checkerboard artifacts),推荐在使用转置卷积进行上采样操作之后再过一个普通的卷积来减轻此类问题.
膨胀卷积(空洞卷积)
动机:
上采样及池化过程中存在致命的问题:
- 内部数据结构丢失,空间层级化信息丢失
- 小物体无法重建
希望:既可以保留内部数据结构又可以避免使用下采样这样的方式
定义:在标准卷积的Convolution map的基础上注入空洞,以此来增加感受野(reception field)。
因此,Dilated Convolution在Standard Convolution的基础上又多了一个超参数(hyper-parameter)称之为膨胀率(dilation rate)
问题:
- kernel并不连续,造成信息提取的不连续
- 旨在提取大范围信息,对小目标有弊。因此如何同时处理大小目标的关系,就成了膨胀卷积设计的关键。
具体实现:
膨胀后的卷积核的大小:
(0)所谓的空洞就是填充0
(1)设原始卷积核的大小是3*3
(2)设膨胀率为2,则膨胀后的卷积核的大小为:dilation_rate*(kernel_size - 1)+1
结果就是 2*(3-1)+1=5,膨胀后的卷积核大小是5*5
默认的dilation_rate=1.
改进:HDC--混合膨胀卷积
叠加的膨胀卷积的膨胀率dilated rate不能有大于1的公约数(比如[2, 4, 6]),不然会产生栅格效应
Group convlution
将输入通道分组,然后分别卷积.分两组,计算量就减半.