问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

非常详细的反卷积(transposed convolution)的理解

发布网友 发布时间:2023-05-05 21:32

我来回答

1个回答

热心网友 时间:2023-10-12 20:34

参考链接

其实了解卷积之后可以直接看第4,5,6部分的。

上采样是把低分辨率输入转成高分辨率输出。

有以下几种上采样的方法:

如何用合适的方法进行上采样? 参考文章
反卷积不是一个预先定义好的插值方法,它有一些可学习参数(learnable parameters)。
反卷积的应用场合如下:

下面两个图带我们复习一下普通的卷积操作:先乘再加。

这种卷积操作的亮点是输出值和输入值之间存在位置上的关联性(positional connectivity)。举个例子,输入矩阵的左上角的元素会影响输出矩阵的左上角的元素。更具体地说,3*3的filter/kernel用于将输入矩阵中的9个元素关联于输出矩阵中的1个值。

如果我们需要将矩阵里的1个值和另一个矩阵里的9个值去关联起来,我们该怎么做呢?这是一个1对多的关系。这是卷积操作的逆向过程,因此被称为反卷积(Transposed convolution)

举个例子,我们希望将一个2 * 2的矩阵上采样成一个4 * 4的矩阵。而且需要保持1对9的对应关系,具体对应关系见下图。

但是如何执行这样的操作呢?我们先定义卷积矩阵(convolution matrix)和反卷积矩阵(transposed convolution matrix)。

我们希望可以定义这样一个矩阵。:输入矩阵和我们所定义的矩阵进行矩阵相乘就可以完成卷积计算。这个矩阵称为卷积矩阵,它是对卷积核kernel进行重新排列之后获得的。
举个例子:3*3的卷积核参数如下:

我们对这个3 3卷积核重新排列得到了一个4 16的矩阵:

上面就是一个卷积矩阵( convolution matrix)。每一行定义了一个卷积操作。卷积矩阵的每一行其实是重新排列的卷积核加了一些不同位置零填充(zero padding)。

这个卷积矩阵怎么用呢?首先我们需要去把输入矩阵(4 4)扁平化为一个列向量(16 1),如下图所示:

这样我们对这个4 16的卷积矩阵和一个16 1的输入矩阵进行矩阵乘法,进而把输出的4 1的矩阵reshape为2 2的矩阵,就能得到和上述直接进行卷积一样的结果了。

从上面的过程中,我们可以进行如下思考:
如果我们有一个4 * 16的卷积矩阵,我们就可以把16 * 1的输入矩阵变为4 * 1的输出矩阵。
那么如果我们有一个4 * 1的输入和一个16 * 4的矩阵,我们是不是可以通过矩阵乘法得到一个16 * 1的输出呢?

我们希望从4(2 * 2)到16(4 * 4)。因此我们需要用到16 * 4的矩阵。但是我们希望同时保持1对9的对应关系。

假设我们把卷积矩阵C(4 * 16)转置为C^T(16 * 4),把C^T(16 * 4)和一个列向量(4 * 1)相乘即可产生一个输出矩阵,而且这个反卷积矩阵C^T将输入向量中的每一个元素都跟输出向量中的9个元素相关联。

这里1对9的对应关系我自己可以用线性代数的知识去理解:反卷积矩阵中的第一列都需要且只需要跟输入向量中的第一个元素进行乘法和加法运算;反卷积矩阵中的第一列有9个非零元素;反卷积矩阵的第一列的不同元素和输入向量中的第一个元素进行乘法加法,都会影响输出向量中不同位置的元素。

以下是示意图:

输出可以reshape到4*4:

注意:实际的反卷积矩阵的权重值并不是从原始的卷积矩阵中的阿赖的。重要的是”the weight layout is transposed from that of the convolution matrix“

尽管叫做转置卷积/反卷积,但是这并不意味着我们去取已有的卷积矩阵来转置。叫做转置卷积的原因是:相比于标准的卷积矩阵(多对一),反卷积矩阵”转置“了输入和输出的对应关系(一对多)。

此外,反卷积矩阵的值是可学习的,我们并不需要一个预定义的插值方法。

其实反卷积并不是卷积,但是我们可以用卷积操作来模拟反卷积。我们在输入矩阵的值之间加零以上采样输入矩阵。加零的目的是使得直接进行卷积核进行反卷积产生一样的效果。

(一些文章是用这个方式去解释反卷积的。)但是这种方法效率更低,因为它在进行卷积前对输入进行了上采样加零。

注意:在生成的图片(generated images)中,反卷积是 checkerboard artifacts的产生原因。
这篇文章 介绍了上采样结合卷积操作的一种方法去减少 上述问题的出现。
如果你的主要目标是产生没有checkerboard artifacts的图片,建议阅读以上链接中的文章。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
蒲公英不只是“天然抗生素”,常泡水喝有8个好处,但注意3个禁忌_百度... 蒲公英茶的功效与作用,抗菌笑容和美容养颜/清热去火 喝蒲公英水可以去火吗 伦敦看展实录-Damien Hirst 做个俗人,贪财“好色”,说的便是达明安·赫斯特 瓷砖抗静电地板 Win10共享硬盘访问不了怎么办 何为《老师对我说》读后感150 有本小说里写的师生恋发生在大学里,老师让学生写何为勇者 学生只写了5... 白酒能泡洋葱吗 佳能PIXMA IP1000 打开盖后,墨水盒不可以自动出来 怎么办? 文峰公园动物园参观记作文4oo字 工商银行卡显示交易异常,暂停使用带上身份证到银行是什么意思 令箭荷花三棱能开花吗 用高古造句(大约30个左右) 60V电动车充电器输出电压是多少??? 电动车充电器电流过小充不进电? 电动车充电器48v和72v有什么区别? 二轮电动车充电器220V一50Hz红灯一直充都是红灯? 电瓶车充电器里哪二根线是电源线的电瓶车充电器输出端? 狼先生电动车充电器 古代寓意比赛胜出的词 描写自信的二字词语 能随便签信易借贷平台的授权书吗 承德市融资综合信用服务平台授权协议能签吗 船主的意思 船主的意思是什么 醉驾事故怎么处罚 能用火碱清洗油烟机吗怎么清洗 麟牒的引证解释麟牒的引证解释是什么 古巴如何看待中国 在信号处理中,经常会用到卷积,请问卷积的几何意义是什么?卷积为什么用途如此广泛?,请详细介绍,谢谢 卷积矩阵转置的意义? 通俗理解反卷积 一般纳税人如何进行纳税申报 衬衫v领口大了怎么改小窍门 yy90的频道简介 为什么有些频道看不到yy直播,在90频道能看到,换到其他频道就不行了。。。 我想问一下空气洗可以达到多少度? 羽绒被可以空气洗温度多少 考研300分满分270分算什么水平 侧泳可以减肥吗 银行付讫和转账付讫的区别? 双联开关接法5分钟让你轻松掌握 寄山僧(时年五十)原文|翻译|赏析_原文作者简介 秋夜寄弘济禅师的作者是谁? 寐寤的读音寐寤的读音是什么 直通车点击率及转化率越高,质量得分就会高;点击价格就会低,请问各位高手我这样理解对吗? 二进制透明加密怎么设置 信用卡取消滞纳金,换成违约金,违约金可以不用设定标准?可以利滚利?只要稀里糊涂同意了? 北京移动无限流流量卡被限速了怎么办现在微信都收不到了