深度学习—反卷积的理解

1、Deconvolution大致可以分为以下几个方面:

  (1)非监督学习:unsupervised learning,其实就是covolutional sparse coding:这里的deconv只是观念上和传统的conv反向,传统的conv是从图片生成feature map,而deconv是用unsupervised的方法找到一组kernel和feature map,让它们重建图片。

  (2)CNN可视化:通过deconv将CNN中conv得到的feature map还原到像素空间,以观察特定的feature map对哪些pattern的图片敏感,这里的deconv其实不是conv的可逆运算,只是conv的transpose,所以tensorflow里一般取名叫transpose_conv。

  (3)上采样:在pixel-wise prediction比如image segmentation[4]以及image generation[5]中,由于需要做原始图片尺寸空间的预测,而卷积由于stride往往会降低图片size, 所以往往需要通过upsampling的方法来还原到原始图片尺寸,deconv就充当了一个upsampling的角色。

2、直观解释

  反卷积就是卷积,只是中间padding了下,然后再做卷积。其实更应叫做转置卷积,只能还原原来的特征图大小,而不是原来的值。

(1)卷积(convolution):卷积核为 3x3;no padding , strides=1 ;"反卷积"(the transpose of conv) 可以理解为upsample conv。卷积核为:3x3; no padding , strides=1。

   

(2)那看下strides=2的时候,转置卷积相当于带洞卷积,也叫作微步卷积。

  

参考动图:https://github.com/vdumoulin/conv_arithmetic

3、数学解释:

  一句话解释:逆卷积相对于卷积在神经网络结构的正向和反向传播中做相反的运算。

  逆卷积(Deconvolution)比较容易引起误会,转置卷积(Transposed Convolution)是一个更为合适的叫法.回想第一句话,你猜的没错,所谓逆卷积其实就是正向时左乘C的转置,而反向时左乘C的转置的转置,即最终使C的运算。

  正向传播:输入矩阵可展开为16维向量,记作想x,输出矩阵可展开为4维向量,记作y,卷积运算可表示为  y=Cx;

  反向传播:那么当反向传播时又会如何呢?首先我们已经有从更深层的网络中得到的梯度,然后左乘C的转置的转置,做矩阵运算。

参考:https://www.zhihu.com/question/43609045/answer/132235276

   https://www.zhihu.com/question/43609045/answer/132235276

原文地址:https://www.cnblogs.com/eilearn/p/9125177.html

时间: 2024-08-30 07:44:54

深度学习—反卷积的理解的相关文章

从软件工程的角度写机器学习6——深度学习之卷积神经网络(CNN)实现

卷积神经网络(CNN)实现 背景 卷积神经网络广泛用于图像检测,它的实现原理与传统神经网络基本上是一样的,因此将普遍意义的神经网络和卷积神经网络的实现合成一篇. 神经网络实现思路 "扔掉神经元" 尽管所有教程在介绍神经网络时都会把一大堆神经元画出来,并且以输入节点--神经元--输出结点连线,但是,在编程实现时,基于神经元去编程是低效的.典型如这篇经典文章里面的代码: http://blog.csdn.net/zzwu/article/details/575125. 比较合适的方法是将神

深度学习:卷积神经网络(convolution neural network)

(一)卷积神经网络 卷积神经网络最早是由Lecun在1998年提出的. 卷积神经网络通畅使用的三个基本概念为: 1.局部视觉域: 2.权值共享: 3.池化操作. 在卷积神经网络中,局部接受域表明输入图像与隐藏神经元的连接方式.在图像处理操作中采用局部视觉域的原因是:图像中的像素并不是孤立存在的,每一个像素与它周围的像素都有着相互关联,而并不是与整幅图像的像素点相关,因此采用局部视觉接受域可以类似图像的此种特性. 另外,在图像数据中存在大量的冗余数据,因此在图像处理过程中需要对这些冗余数据进行处理

深度学习(卷积神经网络)一些问题总结(转)

涉及问题: 1.每个图如何卷积: (1)一个图如何变成几个? (2)卷积核如何选择? 2.节点之间如何连接? 3.S2-C3如何进行分配? 4.16-120全连接如何连接? 5.最后output输出什么形式? ①各个层解释: 我们先要明确一点:每个层有多个Feature Map,每个Feature Map通过一种卷积滤波器提取输入的一种特征,然后每个Feature Map有多个神经元. C1层是一个卷积层(为什么是卷积?卷积运算一个重要的特点就是,通过卷积运算,可以使原信号特征增强,并且降低噪音

深度学习(一) 卷积神经网络CNN

Contents 图像数据集基础 全连接神经网络解决图片问题的弊端(前世) 卷积神经网络的今生 网络结构 卷积操作 池化操作 小结 图像数据集基础 数字图像划分为彩色图像.灰度图像.二值图像和索引图像几种.其中,像素是构成图像的基本单位,例如一张28×28像素的图片,即表示横向有28个像素点,纵向有28个像素点. 最常用的彩色图像和灰度图像: 彩色图像:每个像素由RGB三个分量来表示,即红绿蓝.每个分量介于(0,255).那么,对于一个28×28的彩色图像,便可以由三个表示RGB颜色分量的28×

深度学习之卷积神经网络CNN及tensorflow代码实现示例

一.CNN的引入 在人工的全连接神经网络中,每相邻两层之间的每个神经元之间都是有边相连的.当输入层的特征维度变得很高时,这时全连接网络需要训练的参数就会增大很多,计算速度就会变得很慢,例如一张黑白的 28×28 的手写数字图片,输入层的神经元就有784个,如下图所示: 若在中间只使用一层隐藏层,参数 w 就有 784×15=11760 多个:若输入的是28×28 带有颜色的RGB格式的手写数字图片,输入神经元就有28×28×3=2352 个-- .这很容易看出使用全连接神经网络处理图像中的需要训

深度学习——深卷积网络:实例探究

1. 三个经典网络 红色部分不重要,现在已经不再使用 这篇文章较早,比如现在常用max,而当时用avg,当时也没有softmax 这篇文章让CV开始重视DL的使用,相对于LeNet-5,它的优点有两个:更大,使用ReLU 以作者名字命名 same表示使用same过滤器,也就是输入和输出维度一致 16表示总共有16个CONV和FC,这篇文章指出了信道数和维度变化的规律性(随网络增加/减少),缺点是参数实在太多了 阅读论文顺序:2-3-1 2. 残差网络 残差网络由残差块组成,它使得网络可以变得更深

深度学习经典卷积神经网络之VGGNet

VGGNet是牛津大学计算机视觉组(VisualGeometry Group)和GoogleDeepMind公司的研究员一起研发的的深度卷积神经网络.VGGNet探索了卷积神经网络的深度与其性能之间的关系,通过反复堆叠3*3的小型卷积核和2*2的最大池化层,VGGNet成功地构筑了16~19层深的卷积神经网络.VGGNet相比之前state-of-the-art的网络结构,错误率大幅下降,并取得了ILSVRC 2014比赛分类项目的第2名和定位项目的第1名.同时VGGNet的拓展性很强,迁移到其

【深度学习】卷积层提速Factorized Convolutional Neural Networks

Wang, Min, Baoyuan Liu, and Hassan Foroosh. "Factorized Convolutional Neural Networks." arXiv preprint arXiv:1608.04337 (2016). 本文着重对深度网络中的卷积层进行优化,独特之处有三: - 可以直接训练.不需要先训练原始模型,再使用稀疏化.压缩比特数等方式进行压缩. - 保持了卷积层原有输入输出,很容易替换已经设计好的网络. - 实现简单,可以由经典卷积层组合得到

深度学习之卷积和池化

转载:http://www.cnblogs.com/zf-blog/p/6075286.html 卷积神经网络(CNN)由输入层.卷积层.激活函数.池化层.全连接层组成,即INPUT-CONV-RELU-POOL-FC (1)卷积层:用它来进行特征提取,如下: 输入图像是32*32*3,3是它的深度(即R.G.B),卷积层是一个5*5*3的filter(感受野),这里注意:感受野的深度必须和输入图像的深度相同.通过一个filter与输入图像的卷积可以得到一个28*28*1的特征图,上图是用了两个