首页 > 编程知识 正文

线性卷积怎么计算,反卷积PI

时间:2023-05-06 08:09:57 阅读:160683 作者:3553

另一方面,概要卷积也称为秩变换卷积(Transposed Convolution )、上采样(Upsampled )。

其作用的例子如下:

1 .用神经网络生成图像时,往往需要将低分辨率的图像转换成高分辨率的图像。

2 .在语义分割中,可以通过使用卷积层用编码器进行特征提取,用解码层恢复到原始大小,对原始图像的各个像素进行分类。 这个过程也需要转置卷积。

2 .卷积操作回顾下一个卷积操作的工作原理,通过小例子直观地感受卷积操作。 假设有44的矩阵。 将33卷积内核应用于此矩阵,将“步进参数”设定为1,而不添加任何“填充”。 如下图所示,输出为22的矩阵。

该卷积操作在输入矩阵和卷积内核中,将各元素的乘积相加。 我们没有将1填充到步骤中使用,所以这个操作只能进行四次。 因此,我们的输出矩阵的大小是22。

此卷积操作在输入值和输出值之间存在位置连接关系,例如,输入矩阵左上方的值会影响输出矩阵左上方的值。 更具体地,33的卷积核被用于将输入矩阵的九个值耦接并且将其转换为输出矩阵的一个值。一个卷积操作是一个多对一(many-to-one)的映射关系请记住这个。 以后就可以使用了。

三.去卷积现在假设我们要反过来操作。 希望将输入矩阵的一个值映射为输出矩阵的9个值,这将是一个一对多(one-to-many)的映射关系。 这就像卷积操作的逆操作,其核心观点是转置卷积。 例如,将22的矩阵上采样为44的矩阵。 此操作将保持一对一的映射关系。

但是,我们怎么具体操作呢? 为了进行下一个讨论,必须定义卷积矩阵653358www.Sina.com/和相应的转置卷积矩阵65http://www.Sina.com/。

四.卷积矩阵可以用一个矩阵表示一个卷积操作。 这个表达很简单,就是将卷积核重新排列,以便我们可以通过普通的矩阵乘法进行矩阵卷积操作。 下图是原始卷积核:

对这个33的卷积核进行排序,得到以下416的卷积矩阵。

这就是卷积矩阵。 此矩阵的每一行都定义了卷积操作。 下图更直观地显示了这种排序是如何进行的。 卷积矩阵的每一行都是通过重新排列卷积内核元素并添加“0完成”(zero padding )完成的。

为了将卷积运算表示为卷积矩阵和输入矩阵的向量乘法,将输入矩阵44平差为161的列向量,如下图所示。

将这个416的卷积矩阵和116的输入列向量进行矩阵乘法运算,就得到输出列向量。

该输出的41矩阵可再塑性为22矩阵,该矩阵与我们最初通过传统卷积操作获得的一模一样。

简而言之,该卷积矩阵除了重新排列卷积内核的权重外,别无他物。 然后,卷积运算可以用矩阵积形式表示,表示为卷积矩阵和输入矩阵的列向量形式。

您在那里注意到了吗? 重要的是这个卷积矩阵。 可以从16(44 )到4 )2)。 这个卷积矩阵的大小正是416,从那开始吧。 如果有164的矩阵,可以从4(22 )到164)进行采样。 这不仅仅是上传样本。 啊! 继续吧!

5 .因为想把卷积矩阵从4(22 )置换为16 )4),所以使用了164的矩阵,但是还有一个需要注意的事情。 我们想维持1到9的映射关系。

试着将这个卷积矩阵c(416 )置换为CT (164 )。 将CT和列向量(41 )进行矩阵乘法运算,可以生成161的输出矩阵。 此转置矩阵将一个元素映射到九个元素。

  

这个输出可以塑形为(4×4)的矩阵:

                                                        

我们只是对小矩阵(2×2)进行上采样为一个更大尺寸的矩阵(4×4)。这个转置卷积矩阵维护了一个1个元素到9个元素的映射关系,因为这个关系正表现在了其转置卷积元素上。

需要注意的是:这里的转置卷积矩阵的参数,不一定从原始的卷积矩阵中简单转置得到的,转置这个操作只是提供了转置卷积矩阵的形状而已。

六.总结

转置卷积操作构建了和普通的卷积操作一样的连接关系,只不过这个是从反向方向开始连接的。我们可以用它进行上采样。另外,这个转置卷积矩阵的参数是可以学习的,因此我们不需要一些人为预先定义的方法。即使它被称为转置卷积,它并不是意味着我们将一些现存的卷积矩阵简单转置并且使用其转置后的值。

从本质来说,转置卷积不是一个卷积,但是我们可以将其看成卷积,并且当成卷积这样去用。我们通过在输入矩阵中的元素之间插入0进行补充,从而实现尺寸上采样,然后通过普通的卷积操作就可以产生和转置卷积相同的效果了。你在一些文章中将会发现他们都是这样解释转置卷积的,但是这个因为在卷积操作之前需要通过添加0进行上采样,因此是比较低效率的。

注意:转置卷积会导致生成图像中出现棋盘效应(checkerboard artifacts),这篇文章《Deconvolution and Checkerboard Artifacts》推荐了一种上采样的操作(也就是插值操作),这个操作接在一个卷积操作后面以减少这种现象。如果你的主要目的是生成尽可能少棋盘效应的图像,那么这篇文章就值得你去阅读。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。