当前位置: 首页 > news >正文

转置卷积(transposed-conv)

一、什么是转置卷积

1、转置卷积的背景

       通常,对图像进行多次卷积运算后,特征图的尺寸会不断缩小。而对于某些特定任务 (如图像分割和图像生成等),需将图像恢复到原尺寸再操作。这个将图像由小分辨率映射到大分辨率的尺寸恢复操作,叫做上采样 (Upsample),如下图所示:

对于上采样(up-sampling)操作,目前有着一些插值方法进行处理:

  • 最近邻插值(Nearest neighbor interpolation)
  • 双线性插值(Bi-Linear interpolation)
  • 双立方插值(Bi-Cubic interpolation) 

       然而,这些上采样方法都是基于人们的先验经验来设计的,在很多场景中效果并不理想 (如:规则固定、不可学习)。因此,我们希望神经网络自己学习如何更好地插值,即接下来要介绍的转置卷积。 与传统的上采样方法相比,转置卷积的上采样方式并非预设的插值方法,而是同标准卷积一样,具有可学习的参数,可通过网络学习来获取最优的上采样方式

2、对反卷积的误解

       曾经,转置卷积又称反卷积 (Deconvolution)。zfnet在他们可视化的时候,利用到了《Zeiler, M., Taylor, G., and Fergus, R. Adaptive deconvolutional networks for mid and high level featurelearning. In ICCV, 2011》这篇论文中的反卷积操作,进行特征图的可视化,那什么是deconv操作呢?实际上deconv是有误导性的,令人误认为是卷积的逆运算,实际上cnn的卷积是不可逆的,deconv实际上是转置卷积(Transposed Convolution),是对矩阵进行上采样的一种方法。deconv的作用一般有以下几种:

(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)upsampling(上采样):在pixel-wise prediction比如image segmentation以及image generation中,由于需要做原始图片尺寸空间的预测,而卷积由于stride往往会降低图片size, 所以往往需要通过upsampling的方法来还原到原始图片尺寸,deconv就充当了一个upsampling的角色。在语义分割中,会在编码器中用卷积层提取特征,然后在解码器中恢复原先尺寸,从而对原图中的每个像素分类。该过程同样需用转置卷积。经典方法有 FCN 和 U-Net。
 

未完待续...

http://www.lryc.cn/news/322686.html

相关文章:

  • P1481 魔族密码
  • 无人机/飞控--ArduPilot、PX4学习记录(2)
  • 【Arxml专题】-29-使用Cantools将CAN Matrix Arxml自动生成C语言代码
  • 【id:21】【20分】E. 抄袭查找(结构体+指针+函数)
  • ASP.NET-常用控件总结
  • SpringBoot3整合Mybatis-Plus与PageHelper包冲突解决
  • MQTT Keep Alive机制
  • 基于springboot+vue的游戏交易系统
  • 高职(大专)结构化面试之答题思路
  • Python基础学习笔记(一)
  • 机器学习-可解释性机器学习:支持向量机与fastshap的可视化模型解析
  • 32.768K晶振X1A000141000300适用于无人驾驶汽车电子设备
  • 利用autodl服务器跑模型
  • 【微服务】分布式调度框架PowerJob使用详解
  • 一命通关广度优先遍历
  • 力扣4寻找两个正序数组的中位数
  • jmeter之常用函数-第六天
  • 原创!分解+集成思想新模型!VMD-CNN-BiGRU-Attention一键实现时间序列预测!以风速数据集为例
  • ab (Apache benchmark) - 压力/性能测试工具
  • 除了Confluence,有没有其他工具一样好用?
  • 查询表中数据(全列/特定列/表达式,where子句(比较/逻辑运算符),order by子句,limit筛选分页),mysql执行顺序
  • 【Linux】多线程概念 | POSIX线程库
  • Java Spring AOP代码3分钟快速入手
  • .NET开源快速、强大、免费的电子表格组件
  • docker一键部署若依前后端分离版本
  • Java项目开发之fastjson详解
  • 面试算法-62-盛最多水的容器
  • 【智能算法】海洋捕食者算法(MPA)原理及实现
  • 刷题DAY24 | LeetCode 77-组合
  • Spring Boot为什么默认使用CGLIB动态代理