【深度学习】反卷积(transposed convolution)介绍

反卷积与卷积

反卷积,顾名思义是卷积操作的逆向操作。

为了方便理解,假设卷积前为图片,卷积后为图片的特征。

卷积,输入图片,输出图片的特征,理论依据是统计不变性中的平移不变性(translation invariance),起到降维的作用。如下动图:
【深度学习】反卷积(transposed convolution)介绍_第1张图片
反卷积,输入图片的特征,输出图片,起到还原的作用。如下动图:
【深度学习】反卷积(transposed convolution)介绍_第2张图片
我们知道卷积结合池化的降维作用,将神经网络推向深度学习,开启神经网络的新世界,那么反卷积的作用呢?

反卷积的作用

反卷积崭露头角于“Unsupervised Representations Learning With Deep Convolutional Generative Adversarial Networks”,这篇论文主要工作就是用GANs生成图片,其中的generator和discriminator均采用深度学习,generator生成图片过程中采用的就是反卷积操作(当然discriminator采用卷积对generator生成的图片判别真伪)。generator生成图片示意:
【深度学习】反卷积(transposed convolution)介绍_第3张图片

反卷积的类型

  1. 一般类型:
    【深度学习】反卷积(transposed convolution)介绍_第4张图片

    输入:2*2
    计算过程:2+2*2-3+1
    输出:4

  2. fractionally-strided convolution:
    【深度学习】反卷积(transposed convolution)介绍_第5张图片

    输入:3*3
    计算过程:3+4-3+1
    输出:5

fractionally-strided,小数步数,体现在往间隙padding,名义上stride=1,但实际作用却是小于1!

Tensorflow中反卷积的实现

tf.nn.conv2d_transpose(value, filter, output_shape, strides, padding=’SAME’, data_format=’NHWC’, name=None)
参数解释:

value:[batch,in_height,in_width,in_channels]
filter:[batch,k_width,out_channels,in_channels]
output_shape:[batch,output_height,output_width,output_channels]
strides:对应在每一维的移动步数

你可能感兴趣的:(深度学习)