卷积神经网络(其他卷积方式)

介绍一些其它的卷积方式:

转置卷积

      假设有一个高维向量为x ∈ 卷积神经网络(其他卷积方式)​​​​​​和一个低维向量为z ∈ 卷积神经网络(其他卷积方式),p < d。如果用仿射变换来实现高维到低维的映射,

                                                       z = Wx,                                              (5.39)

 其中W ∈ 卷积神经网络(其他卷积方式)​​​​​​ 为转换矩阵。我们可以很容易地通过转置W 来实现低维到高维的反向映射,即

                                         卷积神经网络(其他卷积方式) 

 上述并不是逆运算,只是形式上的转置关系。 

 卷积操作也可以写为仿射变换的形式。假设一个5 维向量x,经过大小为3的卷积核卷积神经网络(其他卷积方式)进行卷积,得到3 维向量z。卷积操作可以写为

                                        卷积神经网络(其他卷积方式) 

其中C 是一个稀疏矩阵,其非零元素来自于卷积核w中的元素 。

                   如果要实现3 维向量z 到5 维向量x 的映射,可以通过仿射矩阵的转置来实现。 

                                    卷积神经网络(其他卷积方式)

 从公式(5.42) 和(5.45) 可以看出,从仿射变换的角度来看两个卷积操作z =w ⊗ x 和x = rot180(w) ˜⊕z 也是形式上的转置关系。因此,我们将低维特征映射到高维特征的卷积操作称为转置卷积(Transposed Convolution),也称为反卷积.

 和卷积网络中,卷积层的前向计算和反向传播也是一种转置关系。

       对一个p 维的向量z,和大小为m的卷积核,如果希望通过卷积操作来映射到高维向量,只需要对向量z 进行两端补零p = m− 1,然后进行卷积,可以得到p + m − 1 维的向量。

m = 3, p = 0 ,s = 1 m = 3, p = 0 ,s = 2
卷积神经网络(其他卷积方式) 卷积神经网络(其他卷积方式)
卷积 卷积
卷积神经网络(其他卷积方式) 卷积神经网络(其他卷积方式)
转置卷积 转置卷积

 注:m表示卷积核大小, p 表示零填充大小(zero-padding), s 表示步长(stride)。

 微步卷积   我们可以通过增加卷积操作的步长s > 1 来实现对输入特征的降采样操作,大幅降低特征维数。同样,我们也可以通过减少转置卷积的步长s < 1 来实现上采样操作,大幅提高特征维数。

       步长s < 1 的转置卷积也称为微步卷积(Fractionally-Strided Convolution)[Long et al., 2015]。为了实现微步卷积,我们可以在输入特征之间插入0 来间接地使得步长变小。 

       如果卷积操作的步长为s > 1,希望其对应的转置卷积的步长为1/s,需要在输入特征之间插入s − 1 个0 来使得其移动的速度变慢。

     以一维转置卷积为例,对一个p 维的向量z,和大小为m的卷积核,通过对向量z 进行两端补零p = m−1,并且在每两个向量元素之间插入s−1 个0,然后进行步长为1 的卷积,可以得到s × (p − 1) + m维的向量。上图给出了一个步长s = 2,无零填充p = 0 的两维卷积和其对应的转置卷积。

空洞卷积

             对于一个卷积层,如果希望增加输出单元的感受野,一般可以通过三种方式实现:

                                  (1)增加卷积核的大小;

                                 (2)增加层数;

                                (3)在卷积之前进行汇聚操作。

         空洞卷积(Atrous Convolution),或称为膨胀卷积(Dilated Convolution),是一种不增加参数数量,同时增加输出单元感受野的一种方法。相比原来的正常convolution,dilated convolution 多了一个 hyper-parameter 称之为 dilation rate 指的是kernel的间隔数量(e.g. 正常的 convolution 是 dilatation rate 1)。

                                            卷积神经网络(其他卷积方式)

                           Standard Convolution with a 3 x 3 kernel (and padding)

                                卷积神经网络(其他卷积方式)

                        Dilated Convolution with a 3 x 3 kernel and dilation rate 2

       空洞卷积通过给卷积核插入“空洞”来变相地增加其大小。如果在卷积核的每两个元素之间插入d − 1 个空洞,卷积核的有效大小为

                             m′ = m + (m − 1) × (d − 1),

其中d 称为膨胀率(Dilation Rate)。当d = 1 时卷积核为普通的卷积核。

图5.18给出了空洞卷积的示例

m = 3, p = 0, s = 1 m = 3, p = 0, s = 1
卷积神经网络(其他卷积方式) 卷积神经网络(其他卷积方式)
d=1 d=2

     前两种操作会增加参数数量,而第三种会丢失一些信息。

空洞卷积(dilated convolution)理解:https://www.jianshu.com/p/f743bd9041b3

注:m表示卷积核大小,p 表示零填充大小(zero-padding), s 表示步长(stride),d表示膨胀率(dilation)。

卷积神经网络的相关内容到此结束, 望各位读者批评和修正。