反卷积公式的理解

article/2025/10/19 10:43:52

卷积基础已知。
定义
i 输入尺寸
o 输出尺寸
p 填充padding
s 步长,这里面似乎应该解释为放大倍数
k 卷积核大小

卷积操作尺寸计算公式为 o = (i +2p -k)/s +1
反卷积的计算公式
(1)如果 (i + 2p - k)%s= 0, 则关系为i= s(o-1)-2p+k,
(2)如果(i + 2p -k)%s!=0, 则关系为i=s(o-1)-2p+k+ (o+2p-k)%s
看了网上不少内容,介绍了很多反卷积的东西,但是没有解释这个公式的

简单的理解
算一下就知道,实际上式如其名,反卷积的公式就是卷积反过来,通过o加上参数去求i。第二种情况,式子中有个余数,就是考虑卷积过程中,多了个余数mod,由于最后一步不够长,没有用来生成o的尺寸,那么o反过去算i的时候,是没有算这个mod的,所以最后加上它。

更深的理解:
实际上卷积操作可以转化成两个矩阵相乘实现。把输入的二维矩阵拉成一列x,然后构造一个矩阵c,让c的每一行和x的一列相乘相当于一次卷积。如下图,44的矩阵,用33的卷积核,步长为1,padding =0,变成2*2的矩阵,可以转化成如下两个矩阵的相乘。
在这里插入图片描述
从这个角度也可以理解在神经网络中通过卷积得到下一层,实际上和全连接层乘以参数矩阵得到下一层类似,卷积层参数就相当特殊的稀疏权重矩阵的参数。

看网上很多内容加了上面一段,太菜,理解不到有什么和下面的反卷过程有什么关系,不过这个内容本身挺有意义的。

根据卷积的特点来考虑反卷积,卷积的时候是考虑x的kk个相邻像素之间的相关性,利用卷积核,生成一个特征,或者说合成一个更高级的像素,然后跨过s步继续合成下一个像素,最后形成y。反过来看,首先想到的是y的1个像素生成kk个x的像素,但是实际上y的相邻像素之间也是有相关性的,并且根据卷积的形成过程,y的两个像素A,B对应到x的小矩阵Ax,Bx,是有重合的。所以这个反向过程也是一种卷积的操作,根据y相邻像素,合成x的像素,并且x的像素也具有相关性。所以反卷积也应该是一种卷积操作。
关于跨步stride,正向卷积的时候,主要通过跨步缩小y的尺寸,那么反卷积的时候,不可能跨步,跨步是减小尺寸,不是增大,跨步之后的尺寸字才能≤x,那么怎么办呢。想到扩大原来的矩阵,就是填充。怎么填充呢?不能直接在边上填充。得想到原来y左上角的像素是和x左上角的像素对应起来的,如果只是在边缘填充,那么不能保持这种对应,y左上角的像素只能对应到x中间的像素。考虑跨步的时候是ss的像素区域变成了1个像素,这里的填充的时候就在每个像素的周围填充像素,也就是1个像素变成ss个像素,如下图,就是没两行/列像素之间,填充s-1行/列。然后反卷积的跨步长度取1进行卷积,就能保证这种相关性了。这个stride应该称作放大倍数更好,现在的很多代码平台参数是称它为跨步,所以从跨步的角度来解释应该是这样的。实际上直接理解成放大倍数应该更好吧。
在这里插入图片描述
考虑stride,填充y,y的尺寸变成了s(o - 1) +1

再考虑padding,卷积中关于padding的作用,反卷积过程中这个padding作用大概类似吧,不然没必要加。这里加上padding的尺寸=为了对y做卷积之后尺寸能还原成x的大小即可。代入最上面的知道其他参数,由o求i公式一,即有:
s(o-1)+1+2p’-(k-1) = i = s(o-1)-2p+k
可得p’ = k - p -1,
有余数的时候对应加上就行
综上,反卷积的时候,在输入矩阵行/列中间插入s-1行/列,然后加上p’宽的padding,然后做s=1,核为k的卷积就完了。


http://chatgpt.dhexx.cn/article/RFjW7J01.shtml

相关文章

【数字信号处理】卷积编程实现 ( 卷积计算原理 | 卷积公式计算 | 使用 matlab 计算卷积 | 使用 C 语言实现卷积计算 )

文章目录 一、卷积计算原理二、卷积计算1、计算 y(0)2、计算 y(1)3、计算 y(2) 三、使用 matlab 计算卷积四、使用 C 语言实现卷积计算 一、卷积计算原理 对于 线性时不变系统 ( LTI - Linear time-invariant ) 来说 , 假设 x ( n ) x(n) x(n) 是 LTI 系统的 " 输入序列…

第二十一讲 卷积公式

一,卷积公式: 已知:,设:求:因为拉氏变换是由幂级数变过来的,所以上面的问题可以转换为下面的问题方便计算: 已知:,设:求:&#xff0…

卷积积分整理

卷积是一种计算方法 1、一维连续卷积 1.1 基本概念 h ( x ) f ( x ) ⊗ g ( x ) ∫ − ∞ ∞ f ( u ) g ( x − u ) d u h(x) f(x)\otimes g(x) \int_{-\infty}^{\infty}f(u)\times g(x-u)du h(x)f(x)⊗g(x)∫−∞∞​f(u)g(x−u)du 对于线性时不变系统,它的…

卷积神经网络卷积计算,卷积网络计算公式

卷积运算的过程是什么?卷积计算的矩阵是怎么来的,如下图,这个卷积运算示意图怎么理解? 首先,卷积核相同,输入相同,输出的特征是一样的。只不过将输出的矩阵形式换成了列向量的形式。 实质上一…

卷积计算——卷积公式

W i n p u t W_{input} Winput​和 H i n p u t H_{input} Hinput​是图片的宽和高。 W f i l t e r W_{filter} Wfilter​和 H f i l t e r H_{filter} Hfilter​是卷积核的宽和高。 P P P是padding填充的圈数。 S S S是卷积核的步长。

matlab light log,MATLAB Implementation: light-weight vs. heavy-weight 转自林达华

这次,回到一个实际一点的问题,关于matlab的实现。 同一个数学问题,在实际计算中,往往是可能有多种途径的。虽然殊途同归,但是效率很可能大相径庭(即使这些不同途径在理论上有相同的复杂度)。对于 小规模计算&#xff0…

概率漫谈 转自 林达华

(2013-01-29 18:20:49) 转载▼ 分类: 科技 一段时间,随着研究课题的深入,逐步研习现代概率理论,这是一个令人耳目一新的世界。这个世界实在太博大,我自己也在不断学习之中。这篇就算起一个头吧,后面有空的时…

麻省理工MIT大神解说数学体系;2012年计算机博士港中大林达华简历(公号回复“MIT林达华”下载彩标PDF论文)

麻省理工MIT大神解说数学体系;2012年计算机博士港中大林达华简历(公号回复“MIT林达华”下载彩标PDF论文) 原创: 林达华 数据简化DataSimp 今天 数据简化DataSimp导读:林达华是MIT计算机科学博士,读研时以贝叶斯非参建模斩获顶会NIPS2010年最佳学生论文奖、ICCV2009和2…

林达华解说数学体系

[转]MIT牛人解说数学体系 一直想对数学有个宏观把握,恰好看到这篇文章,甚是高兴。网上说,本文出自林达华,我是从这里转载的。在此基础上,将概率论小节移到实分析下,并加粗了一些语句,还补充两张…

【java】商城进货交易记录程序设计

【任务介绍】 1.任务描述 商城仓库中有多种商品,商品每次进货需要生成一条进货记录保存到文件。本案 例要求编写一个记录商城进货交易的程序,使用字节流将商场的进货信息记录在本地 的 CSV 文件中。程序具体要求如下。 程序启动后,先打印库…

开源Java商城项目Javashop的部署过程

推荐:需要Java商城定制开发可以联系本人:QQ3413414 电话15911100004 服务器为:阿里云CentOS 8.2版本,做测试用2核4G就够 Javashop B2C源码地址 https://gitee.com/enation/Javashop-B2C 因为这个项目是基于maven的,所…

JAVA 单商户商城系统 成熟源码 支持二开

三勾商城是开发友好的微信小程序商城,框架支持SAAS,支持发布 iOS Android 公众号 H5 各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)等多个平台,不可多得的二开神器, 为大中小企业提供极致的移动电子…

java商城系统设计—竞拍

竞价拍卖商城系统功能介绍: 一、可单独设置参与竞拍的商品,适用于各种经营需求; 二、可开启抬价“机器人”和“回本设置”,确保商品不会被用过低的价格买走,保证商城的盈利性; 三、可设置“加价倒计时”…

java 商城系统架构之第三篇——集群架构搭建

需要商城系统的朋友,请联系下方微信 其实集群说起来是很简单的,无非就是server部署在多台机器上,DB、session、文件等在做个机器、CDN加速就OK了。 但是实际上需要做的事还有非常多,并且在过程中需要填非常多的坑。 这里说一个…

如何做一个基于JAVA购物商城系统毕业设计毕设作品(springboot框架)

分析架构 我们开发系统,常规有两个架构,一个BS架构(浏览器/服务器模式),一个CS(客户端/服务器端模式);基于JAVA的网站开发属于B/S架构(即浏览器和服务器架构模式&#x…

java商城推荐算法(含源码,小程序,vue,uniapp)

用户协同推荐算法思想 如果你喜欢苹果、香蕉、芒果等物品,另外有个人也喜欢这些物品,而且他还喜欢西瓜,则很有可能你也喜欢西瓜这个物品。 所以说,当一个用户 A 需要个性化推荐时,可以先找到和他兴趣相似的用户群体 …

JAVA商城源码-B2B2C商城系统-独立部署,一套源码终身可用

在现在电商迅速占领市场的时代里,选择开发商城系统已经成为了一种趋势,现在开发搭建商城系统有很多编程语言可以选择,目前在电商里市面上受到很多商家企业的喜爱的便是Java商城系统,那为什么要选择Java电商系统呢? 1、…

商城 源码 java_java网上商城平台源码(含数据库脚本)

【实例简介】管理员后台管理商品以及对留言订单的处理,用户对订单的购买及留言 【实例截图】 【核心代码】 package com.shop.controller; import java.util.Date; import java.util.Map; import java.util.Map.Entry; import javax.servlet.http.HttpServletRequest; import …

java商城系统设计-----积分商城系统

积分商城的“积分”概念,指的是用户(更多指的是经过注册验证的用户)在消费后获得的一种奖励,从而实现客户关怀、客户忠诚度提升的目的。其消费模式包括传统的现场消费如超市购物,也包括日益普及的网上购物。获得的积分…

Java商城项目实战

项目背景 编写目的 明确业务背景、业务范围、基本业务逻辑和业务框架,期望读者包括:项目发起人、最终用户、项目投资方、项目管理团队、项目执行团队,以及其他项目干系人。 参考文档 “ESMS3.x 详细设计说明设计文档.doc”: 详细设计说明…