卷积的意义及其派生(一)

1.卷积的意义

1.1从LTI的角度看

卷积最开始其实是信号处理中用来描述线性移不变系统Linear time-invariant systems的。线性,表明可以叠加,信号可以拆分成脉冲的响应;时不变,指信号不随着时间的迁移改变,意味着能量守恒。

那么,由线性时不变的性质,可以把输入信号拆成一个个的脉冲信号:

然后再由时不变的性质,每个冲激处的响应都是一样的:

那么当求t3时刻的输出信号时,利用线性的性质,输出值就是三个响应(上图红色点)的叠加。

这时再看表达式就清楚一些了:

1. x[k]的本质是权重系数,是输入信号拆分后每个位置的冲激;

2. 系统响应h原本在t=0的位置,被冲激向右移动距离k到达一个新的位置,然后取此时n位置的响应h[n-k];

3.响应和在x[k]下加权求和,得到输出信号。

4.虽然公式中是对正负无穷的冲激进行求和,但是t之后的响应其实不会对t时刻造成影响的。

5.时域的卷积等效于频域相乘,所以卷积也被称作滤波。

1.2从积分的角度看

既然是加权求和,在连续的情况下就是积分,积分的对象是两个函数的乘积。x[k]保持不变,h[k]先进行左右对称翻转,得到h[-k],然后再右移k,得到h[n-k]。参考维基百科,有下面的图示:

这样的解释从几何上看更加直观地表示公式本身,但其实也更难以理解为什么要“翻转”。但好处是可以直观地对比与互相关的不同:

互相关没有翻转,所以当卷积符号右边的函数是对称函数时,卷积等价于互相关。

2. 二维卷积

对大部分人来说,图像中的二维卷积是更为熟悉的。它其实和一维卷积一样,仍然是翻转,滑动和加权。只不过一般性的卷积都是对称的,所以就等价于求相关。这也是为什么之前说到的拉普拉斯算子可以求斑点,因为拉普拉斯算子本身的响应就是一个墨西哥草帽的样式。

结合LTI的性质,二维卷积的滤波器就是一个冲激的响应,这个响应是平移不变的,所以才需要那么多滤波器,每个滤波器表示一种响应/特征提取,CNN才“变宽”。

在torch中一般使用torch.nn.Conv2d实现卷积。但这个函数只指定了输入输出的通道数,滤波器的尺寸,步长,填充方式等。输出的尺寸需要下面公式来计算:

o=1+\frac{i+2p-k}{s}

上式中的1表示卷积核在初始的左上角位置一定会对应一个输出,第二项表示每移动一次对应一个输出。

填充的方式有Arbitrary padding,Half padding,Full padding。

No Padding

Half(Same) Padding

Full Padding

tf的padding有两个值,一个是SAME,一个是VALID

valid其实就是不填充?

Half padding第一次卷积的卷积核中心对应填充前的左上角,填充的范围差不多是卷积核尺寸的一半;保证输入和输出的feature map尺寸相同,p=⌊k/2⌋Full padding填充前的左上角则对应卷积核的左下角,填充范围差不多是整个卷积核。如果padding再多,原始的信息没有参与计算,所以这种padding已经是上限了k-1了,所以叫full。

反卷积通俗详细解析与nn.ConvTranspose2d重要参数解释_iioSnail的博客-CSDN博客

卷积的参数量:

3. one by one 卷积

最早出现在NIN文章中,GoogleNet中的Inception得到了使用,作用主要是降维/升维。和普通卷积核的区别就是滤波器大小是1x1,这样每个像素的卷积结果就与其邻域无关,即没有考虑局部信息之间的关系。

既然在空域上相当于对图像整体乘一个因子,那么它是怎么起作用的呢。对图像灰度值的缩放确实没什么收益,收益发生在图像是多通道时。当图像为多通道时,feature map也有相同的数目,这时1x1卷积就相当于不同feature map的线性组合。而根据组合前后的数目相对大小,就可以起到降维升维的作用,实现跨通道的信息整合(相当于一个多层感知机MLP)。

知道了1x1卷积的含义,就可以总结其作用:1.改变维度;2.跨通道信息交互。3.增加非线性

1x1卷积除了以上的优点,还具有计算量小的特点。计算量小不仅仅是因为其尺寸小,更是因为其不会因为计算机“行先序”的特点造成内存访问混乱的问题。虽然卷积很好理解,但是在实际计算中,卷积的感受野在内存中的位置不是连续的,为了解决这个问题,一般使用空间换时间的方法,即使用im2col操作,将特征图和卷积核重新排列,使得卷积操作可以直接使用GEMM矩阵相乘实现。而1x1卷积在Im2col前后的内存存放是相同的。

4. 空洞卷积

Dilated/Atrous Convolution(中文叫做空洞卷积或者膨胀卷积) 或者是 Convolution with holes 

普通卷积空洞卷积

空洞卷积首要的作用就是增大感受野。但其实增加感受野的方法至少还有其他两种。一种是VGG中的发现:2个3x3的卷积核的级联相当于5x5的感受野,感受野与层数的关系是(kernel-1)*layer+1,但级联太多就导致网络太深。还有一种是先pooling再卷积,但池化会带来信息的丢失,导致太小的目标信息无法重建。

空洞卷积还有一个特点就是可以保持特征图尺寸不变,这在语义分割中是比较有用的。

dilated conv的问题之一是The Gridding Effect。原因是连续性被跳跃性地取点破坏,感受野是大了,但是对应在第一层上的采样点更加离散了:

图森组通过Hybrid Dilated Convolution (HDC)解决。间隙在空洞卷积中成为膨胀因子(dilated ratio)。HDC的原理简单来说就是几个空洞卷积的膨胀系数使用不同的值,这样空洞的位置就不固定,就能互补,从而减轻格子效应:


Reference:

1.知乎https://www.zhihu.com/question/54149221/answer/323880412

2.空洞卷积(膨胀卷积)的相关知识以及使用建议(HDC原则)-CSDN博客

3. CICC科普

4.线性时不变

5.脉冲响应

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/875991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【iOS】——通知机制及底层原理

通知传值概要 通知传值可以跨越多个界面进行传值,一般用于后一个界面向前一个界面传值。 通知传值支持多个接收者,多个对象可以同时接收同一个通知并进行处理。这样可以实现一对多的通信,方便跨多个对象进行值传递。 使用步骤 1.在发送者中…

Latent Factor Analysis via Dynamical Systems:LFADS (Nature methods 2018)

Nature Methods:https://www.nature.com/articles/s41592-018-0109-9 LFADS Run Manager for Matlab:https://lfads.github.io/lfads-run-manager/ 目录 Single session:假设:方法:结果: Multi-sessions:假设&#xff…

【C++】位运算:两整数之和

1.题目 2.算法思路 本题不能只用 -,那大概率用到位运算符。 异或的作用是无进位相加,所以需要通过异或运算(^)来替代加法运算,但是我们无法确定进位的信息。所以需要与运算(&)来得到进位的…

【Android】Activity生命周期与五种启动模式

文章目录 生命周期返回栈Activity状态生命周期方法 启动模式standard模式singleTask模式singleTop模式singleInstance模式singleInstancePerTask模式配置方式 生命周期 返回栈 每个Activity的状态由它在Activity栈(又叫“回退栈back stack”)中的位置决…

MySQL高性能读写分离实战

介绍 我的上一篇文章实现了mysql的主从复制结构,今天这篇继续将如何实现读写分离。 读写分离是指:针对数据库的写操作(插入、更新、删除等)访问主数据库,读操作访问从数据库。 因为一般网站的读请求的数量是远远大于…

《数据结构:顺序实现二叉树》

文章目录 一、树1、树的结构与概念2、树相关术语 二、二叉树1、概念与结构2、满二叉树3、完全二叉树 三、顺序二叉树存储结构四、实现顺序结构二叉树1、堆的概念与结构2、堆的实现3、堆的排序 一、树 1、树的结构与概念 树是一种非线性的数据结构,它是由n&#xff…

【Python机器学习】决策树的构造——划分数据集

分类算法除了需要测量信息熵,还需要划分数据集,度量划分数据集的熵,以便判断当前是否正确划分了数据集。 我们将对每个特征划分数据集的结果计算一次信息熵,然后判断按照哪个特征划分数据集是最好的划分方式。 想象一个分部在二…

4-4 数值稳定性 + 模型初始化和激活函数

数值稳定性 这里的 t t t表示层,假设 h t − 1 h^{t-1} ht−1是第 t − 1 t-1 t−1层隐藏层的输出,经过一个 f t f_{t} ft​得到第 t t t层隐藏层的输出 h t h^{t} ht。 y y y表示 x x x进来,第一层一直到第 d d d层,最后到一个损…

研究生选择学习Android开发的利与弊?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「Android的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!产品经理可以学学Axure快…

vscode远程免密登入

1、windows (1) 点击左下角 ->将当前窗口连接到主机…->(配置ssh文件,点击或者指定)->按这个格式添加 (2) 在cmd命令窗口:ssh-keygen -t rsa (-C “name”) #这个name是远程linux的用户名,这里也可以不加-C…

H264编码器实现-帧内预测之像素值预测

前言 本文所介绍的像素值预测,是指在帧内预测总体流程中的预测块每个像素值的推导过程。当我们已知向量像素的重建值的时候,我们就可以对当前预测块进行像素值预测。该过程得到的结果将与源像素值相减得到残差,为后续变换量化提供数据来源。…

Godot入门 04平台设计

新建创景,添加AnimatableBody2D节点。 添加Sprite2D节点 拖动图片 剪裁图片,吸附模式:像素吸附 添加CollisionShape2D,设置实际形状为矩形 重命名AnimatableBody2D节点为Platform,保存场景,拖动platform场景…

C#初级——条件判断语句、循环语句和运算符

条件判断语句 简单的条件判断语句&#xff0c;if()里面进行条件判断&#xff0c;如果条件判断正确就执行语句块1&#xff0c;如果不符合就执行语句块2。 if (条件判断) { 语句块1 } else { 语句块2 } int age 18;if (age < 18){Console.WriteLine("未…

深入理解 Java 虚拟机第三版(周志明)

这次社招选的这本作为 JVM 资料查阅&#xff0c;记录一些重点 1. 虚拟机历史 Sun Classic VM &#xff1a;已退休 HotSpot VM&#xff1a;主流虚拟机&#xff0c;热点代码探测技术 Mobile / Embedded VM &#xff1a;移动端、嵌入式使用的虚拟机 2.2 运行时数据区域 程序计…

软件测试20个基础面试题及答案

什么是软件测试&#xff1f; 答案&#xff1a;软件测试是指在预定的环境中运行程序&#xff0c;为了发现软件存在的错误、缺陷以及其他不符合要求的行为的过程。 软件测试的目的是什么&#xff1f; 答案&#xff1a;软件测试的主要目的是保证软件的质量&#xff0c;并尽可能…

“消费增值风暴:百万业绩背后的创新电商模式“

今日&#xff0c;我怀着无比激动的心情&#xff0c;向您揭示一个激励人心的成长篇章。我们的战略伙伴在短短一个月内&#xff0c;业绩如火箭般攀升&#xff0c;成功跨越百万销售额大关&#xff0c;同时&#xff0c;其用户活跃度居高不下&#xff0c;日均在线用户数稳稳占据8至1…

[Unity] ShaderGraph实现镜头加速线/残血效果 URP

效果如下所示&#xff1a;残血状态时&#xff0c;画面会压暗角&#xff0c;并出现速度线营造紧迫感。 使用到的素材如下&#xff0c;换别的当然也可以。[这是张白色的png放射图&#xff0c;并非皇帝的新图hhh] 这个效果的实现逻辑&#xff0c;其实就是利用time向圆心做透明度的…

HAL库源码移植与使用之低功耗模式

低功耗特性对用电池供电的产品&#xff1a; 更小电池体积&#xff08;降低了大小和成本&#xff09; 延长电池寿命 电磁干扰更小&#xff0c;提高无线通信质量 电源设计更简单&#xff0c;无需过多考虑散热问题 电源供电区分为&#xff1a; 分为VDD供电区…

友思特应用 | 硅片上的光影贴合:UV-LED曝光系统在晶圆边缘曝光中的高效应用

导读 晶圆边缘曝光是帮助减少晶圆涂布过程中多余的光刻胶对电子器件影响的重要步骤。友思特 ALE/1 和 ALE/3 UV-LED 高性能点光源&#xff0c;作为唯一可用于宽带晶圆边缘曝光的 i、h 和 g 线的 LED 解决方案&#xff0c;可高效实现WEE系统设计和曝光需求。 晶圆边缘曝光及处…

分布式相关理论详解

目录 1.绪论 2.什么是分布式系统&#xff0c;和集群的区别 3.CAP理论 3.1 什么是CAP理论 3.2 一致性 3.2.1 计算机的一致性说明 1.事务中的一致性 2.并发场景下的一致性 3.分布式场景下的一致性 3.2.2 一致性分类 3.2.3 强一致性 1.线性一致性 a) 定义 a) Raft算法…