什么是卷积

卷积就是把卷积核放在输入上进行滑窗,将当前卷积核覆盖范围内的输入与卷积核相乘,值进行累加,得到当前位置的输出,其本质在于融合多个像素值的信息输出一个像素值,本质上是下采样的,所以输出的大小必然小于输入的大小,如下图所示:

什么是反卷积

反卷积和转置卷积都是一个意思,所谓的反卷积,就是卷积的逆操作,我们将上图的卷积看成是输入通过卷积核的透视,那么反卷积就可以看成输出通过卷积核的透视,具体如下图所示:

比如左上角的图,将输出的55按照绿色的线的逆方向投影回去,可以得到[[55,110,55],[110,55,110],[55,55,110]]的结果;
我们将得到的四张特征图进行叠加(重合的地方其值相加),可以得到下图:

最终我们得到的特征图与卷积输入的特征图值的大小并不相同,说明卷积和反卷积并不是完全对等的可逆操作(因为采用相同的卷积核,卷积和反卷积得到的输入输出不同),也就是反卷积只能恢复尺寸,不能恢复数值

反卷积(deconv)为何能被称作转置卷积(Transposed conv)

因为反卷积就是将卷积操作中的卷积核矩阵进行了转置!!!!
下面详细来说:
我们知道,卷积在框架中的底层实现是通过矩阵相乘的方式,仍然以第一个卷积的例子来说:
我们将3X3的卷积核变换成4X16的矩阵,如下图所示:

为什么要将3X3的卷积核变换成4X16的矩阵呢?
原因:
1.在我们最开始讲到的卷积的例子当中,对于4X4的输入而言,卷积核一共要放置4次(移动四次),一次在原位置,一次横向移动一下,再纵向移动一下,再横向移动一下,把输入看成一维的向量的话,就有了以上的卷积核矩阵;
2.为什么要补0变成16维呢?因为是为了矩阵相乘,我们的输入是4X4,打成一维的就是1X16,当单个卷积核卷积的时候,另外7个值是没有参与计算的,所以要补7个0;
接下来,我们将4X4的输入变成16X1的矩阵,如下图所示:

然后矩阵相乘再进行reshape即可得到卷积的结果:

然后我们反卷积是如何实现的,如下图所示:

在反卷积中,将4X16的卷积核进行了转置,与1X4的输入相乘,四个中间过程可以代表矩阵相乘过程中的中间结果;
将中间结果reshape成4X4,再相加,可以得到与我们之前介绍反卷积推导相同的中间流程;

反卷积(Transposed conv deconv)实现原理(通俗易懂)相关推荐

  1. 深度学习 | 反卷积/转置卷积 的理解 transposed conv/deconv

    原文:https://blog.csdn.net/u014722627/article/details/60574260 深度学习 | 反卷积/转置卷积 的理解 transposed conv/dec ...

  2. tensorflow一维卷积输入_深度学习中的反卷积(Transposed Convolution)

    反卷积(Transposed Convolution)是一种图像上采样(UpSample)的方法,在DCGAN中用它来将随机采样的值转换为一张完整的图像. DCGAN生成手写数字.图片来源[5] Tr ...

  3. 深度学习卷积网络中反卷积/转置卷积的理解 transposed conv/deconv

    搞明白了卷积网络中所谓deconv到底是个什么东西后,不写下来怕又忘记,根据参考资料,加上我自己的理解,记录在这篇博客里. 先来规范表达 为了方便理解,本文出现的举例情况都是2D矩阵卷积,卷积输入和核 ...

  4. Deconvolution 反卷积 Transposed Convolution 转置卷积 Fractionally Strided Convolution

    看DCGAN时,看到了deconvolution,概念总混淆,记录一下 首先明确以下这几个概念: Transposed convolutional layers (also known as frac ...

  5. 反卷积(Transposed Convolution, Fractionally Strided Convolution or Deconvolution)

    反卷积(Deconvolution)的概念第一次出现是Zeiler在2010年发表的论文Deconvolutional networks中,但是并没有指定反卷积这个名字,反卷积这个术语正式的使用是在其 ...

  6. 反卷积原理 + pytorch反卷积层参数output_padding

    一般我们会认为2维卷积的计算分为了以下3类: 1.full   2.same   3. valid 参考:https://cn.mathworks.com/help/matlab/ref/conv2. ...

  7. 深度学习之卷积、全连接、反卷积等

    全连接参考1:https://zhuanlan.zhihu.com/p/32819991 全连接参考2:代码实现 神经网络前后传输 CNN中卷积.池化的前向与反向传播: CNN卷积神经网络和反向传播( ...

  8. 机器学习19:反卷积算法

    机器学习19:反卷积算法(转载和整理) 在整理全卷积网络的过程中,被反卷积的概念困扰很久,于是将反卷积算法单独整理为一篇博客,本文主要转载和整理自知乎问题如何通俗易懂地解释反卷积?中的高票答案. 1. ...

  9. Tensorflow反卷积(DeConv)实现原理+手写python代码实现反卷积(DeConv)

    最近看到一个巨牛的人工智能教程,分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.平时碎片时间可以当小说看,[点这里可以去膜拜一下大神的" ...

最新文章

  1. OpenCV——膨胀与腐蚀
  2. 函数指针--Nginx和Redis中两种回调函数写法
  3. HDU2085:核反应堆(递推)
  4. java lr分析表建立程序_[源码和文档分享]基于Java实现的LR(1)分析法语法分析程序...
  5. python死机_请问下为什么我用PYTHON写编译器一旦用READ就死机
  6. 自定义http报头_浅谈http协议(三):HTTP 报文及其结构
  7. idea maven 删除dependencies_使用IDEA创建Maven工程 创建javase工程
  8. 数据库阻塞---讲解设计应用程序时避免阻塞的八个准则
  9. React 与 React-Native 使用同一个 meteor 后台
  10. 错误一例:expected expression before } token
  11. 已解决:如何彻底删除快压/以及彻底删除顽固的dll文件
  12. matlab绘制图形hold on_Matlab绘图示例
  13. 基于NNIE神经网络引擎_海思hi3516DV300方案硬件平台适合做哪些开发
  14. md 生成目录 码云_码云搭建博客
  15. selenium 复制粘贴
  16. 关于Dubbo的面试题,建议收藏
  17. 在 Word 中如何画底线、直线、虚线?
  18. oracle10g数据库复制,windows 下oracle 10G 数据库移植到 linux平台 (通过文件直接复制方法)...
  19. Alitum Designer 出现警告:[Warning] xxx.SchDoc Compiler Net xxx has no driving source
  20. 解决禅道升级报错:Column not found: 1054 Unknown column 'readme' in 'zt_im_client'

热门文章

  1. C语言中双感叹号的作用
  2. win10 1803 版本 麦克风问题 解决办法
  3. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf3 in position 4645: invalid continuation byte
  4. 如何做MySQL的星型结构_MySQL Sakila示例数据库的星型模型
  5. 设计模式 -- 工厂模式
  6. 6500 RPR VS SSO
  7. OMRON欧姆龙 CP1H 使用以太网模块CP1W-CIF41,配置方法和异常排查
  8. 线性回归建模及模型诊断
  9. 图像梯度(opencv-c++)
  10. IOS angular ng-click ng-touch 手机延时问题,fastclick