卷积

CNN感受野大小计算

拈花ヽ惹草 提交于 2020-04-08 13:03:17
之前对感受野只是有主观的认识,但没有精确的计算过,导致在分析模型时带来了很大不便,现在做如下记录: 1 感受野的概念 在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。 2 感受野的计算 感受野计算时有下面的几个情况需要说明: (1)第一层卷积层的输出特征图像素的感受野的大小等于滤波器的大小。 (2)深层卷积层的感受野大小和它之前所有层的滤波器大小和步长有关系 (3)计算感受野大小时,忽略了图像边缘的影响,即不考虑padding的大小。 这里的每一个卷积层还有一个strides的概念,这个strides是之前所有层stride的乘机。 即:strides(i) = stride(1)*stride(2)*....*stride(i-1) 关于感受野大小的计算采用top to down的方式,即先计算最深层的前一层上的感受野,然后逐渐传递到第一层,使用的公式可以表示如下: L(k) = L(k-1)+(F(k)-1)*strides 其中L(k-1)为第k-1层对应的感受野大小,F(k)为第k层卷积核大小,或者是池化层的池化尺寸大小。 举个例子: 感受野的计算是逐层进行的,以下表中的网络结构为例: 感受野初始值L(0)=1,每层的感受野计算过程如下: L(0)=1 L(1)=1+(3-1)=3 L(2)=3

位运算卷积-FWT

穿精又带淫゛_ 提交于 2020-04-08 04:49:41
问题 给出两个幂级数 \(f,g\) ,求 \[h=\sum _i\sum _jx^{i\oplus j}f_ig_j \] 其中 \(\oplus\) 是可拆分的位运算。 算法 由于位运算具有独立性,可以一位位地考虑。 设 \(f=(f_0,f_1)\) ,即最高位为 0 的部分和最高位为 1 的部分。我们希望把这个卷积转化为点积来做。即 \[T\begin{bmatrix}f_0 \\f_1 \end{bmatrix}\cdot T\begin{bmatrix}g_0 \\g_1 \end{bmatrix}=T\begin{bmatrix}h_0 \\h_1 \end{bmatrix} \] 按照 \(f,g,h\) 的对应关系,对比系数容易得到 \(T\) 。 那么我们就可以先对 \(f,g\) 递归进行上述变换,然后再点积起来,逆变换回去,这样就能得到我们需要的 \(h\) 。显然逆变换可以直接用矩阵 \(T^{-1}\) 做同样的操作。 复杂度为 \(O(nk^2\log n)\) , \(k\) 为位状态数。 拓展 上面的过程只用到了位运算的可拆分性,所以可以尝试拓展一下。例如更高进制的位运算卷积,可以用完全一样的方法来做。做之前只要定义好位的运算即可。例如 [清华集训2016]石家庄的工人阶级队伍比较坚强 中的三进制卷积,类比二进制异或,定义三进制不进位加法

nn.ConvTranspose2d的参数output_padding的作用

只谈情不闲聊 提交于 2020-04-07 20:38:09
使用前提:stride > 1 same卷积操作 是通过padding使得卷积之后输出的特征图大小保持不变(相对于输入特征图),不代表得到的输出特征图的大小与输入特征图的大小完全相同, 而是他们之间的比例保持为 输入特征图大小/输出特征图大小 = stride 举例: 比如输入特征图为6*6,stride=2, kernel_size = 3, 所以进行same卷机操作得输出特征图为3*3 (6/2 = 3) 如果输入特征图为5*5,stride=2,kernel_size = 3,这时候设置padding = 1,那么也会得到输出特征图为3*3 那么这样的情况就会导致在逆卷积时出现一个问题。 问题: 不同大小的图片经过卷积运算能得到相同尺寸的输出,那么作为 逆运算 , 同样的一张输入图像经过反卷积是否会有不同尺寸的合法输出 ?这样的话就存在争议了 上面还只是进行same卷积的情况,如果考虑valid卷积,stride=2, kernel_size = 3,padding=0时,输入特征图为7*7和8*8的结果也是3*3 解决争议的办法就是使用output_padding参数 output_padding的作用是: 当 stride > 1时 ,Conv2d将多个输入形状映射到相同的输出形状。 output_padding通过在一边有效地增加计算出的输出形状来解决这种模糊性 。

实战级Stand-Alone Self-Attention in CV,快加入到你的trick包吧 | NeurIPS 2019

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-07 15:05:34
> 论文提出stand-alone self-attention layer,并且构建了full attention model,验证了content-based的相互关系能够作为视觉模型特征提取的主要基底。在图像分类和目标检测实验中,相对于传统的卷积模型,在准确率差不多的情况下,能够大幅减少参数量和计算量,论文的工作有很大的参考意义   来源:【晓飞的算法工程笔记】 公众号 论文: Stand-Alone Self-Attention in Vision Models 论文地址: https://arxiv.org/abs/1906.05909 Introduction   目前卷积网络的设计是提高图像任务性能的关键,而卷积操作由于平移不变性使其成为了图像分析的主力。受限于感受域的大小设定,卷积很难获取长距离的像素关系,而在序列模型中,已经能很好地用attention来解决这个问题。目前,attention模块已经开始应用于传统卷积网络中,比如channel-based的attention机制 Squeeze-Excite和spatially-aware的attention机制Non-local Network等。这些工作都是将global attention layers作为插件加入到目前的卷积模块中,这种全局形式考虑输入的所有空间位置,当输入很小时,由于网络需要进行大幅下采样

深度学习论文笔记

泄露秘密 提交于 2020-04-07 11:53:09
/*--> */ /*--> */ 论文笔记 R-CNN 选区域,拉伸,计算特征,用特征训练 svm分类器,分类结果计算重复度去重( nms),回归框的位置 相对以前的不同: 暴力搜索所有框变为预选框计算特征 经典方法提取的是人工设定的特征, RCNN用大的识别库训练深度网络提取特征,然后用小的检测库调优参数 缺点: 多个选取框之间很多重叠,单独计算特征会有很多重复计算,浪费时间 训练过程是多级流水线,卷积神经网络特征训练, SVM分类器训练,检测框回归训练 SPPNET R-CNN中,多个选区框的尺寸不同, resize再提取特征既费时,效果也没有那么好 提出金字塔 pooling针对不同尺寸的图,在 CNN后面加上一个特殊池化层,池化为 4x4, 2x2, 1x1的几个特征,然后拼接起来,变成 21*深度的固定尺寸的特征,并且包含有空间位置信息(与图片缩放的区别是什么?图片缩放会产生图像的畸变,但是 feature map的 pooling只是整合了空间信息) 能反向传播?(pooling 的时候记录max 的location ,这个location 的导数为1 ) 多尺寸训练? Fast R-CNN 分类和框回归化为同级,一起训练,而之前是先训练分类器,再训练框回归 全联接层,用截断 SVD近似全联接层的矩阵,速度加快 Faster R-CNN 区域推荐同样用神经网络实现

ICLR 2020 | 抛开卷积,multi-head self-attention能够表达任何卷积操作

感情迁移 提交于 2020-04-06 18:07:33
> 近年来很多研究将nlp中的attention机制融入到视觉的研究中,得到很不错的结果,于是,论文侧重于从理论和实验去验证self-attention可以代替卷积网络独立进行类似卷积的操作,给self-attention在图像领域的应用奠定基础 论文: On the Relationship between Self-Attention and Convolutional Layers 论文地址: https://arxiv.org/abs/1911.03584 论文代码: https://github.com/epfml/attention-cnn Introduction   transformer的提出对NLP领域的研究有很大的促进作用,得益于attention机制,特别是self-attention,会考虑词间的相似性,对当前词进行加权输出。受到词间关系学习的启发,self-attention也开始用于视觉任务中,但大都是attention和convonlution的结合。Ramachandran在19年的研究中,用full attention model达到了resnet baseline的精度,模型参数和计算量相比卷积网络减轻了不少   因此,论文主要研究self-attention layer在图片处理上是否能达到convolutional layer的效果

论文阅读: Siam FC

有些话、适合烂在心里 提交于 2020-04-01 19:43:52
一、研究动机## 一方面传统算法设计的跟踪模型过于简单,另一方面深度学习方法很难达到实时效果然而现实场景中的应用对速度要求较高。 “shallow method”( HCFT )没有很好地利用神经网络端到端的思想,在线更新模型不能达到实时效果。 作者提出了一种全连接孪生网络,实现了端到端的训练,它用第一帧的信息训练一个普适的相似性学习模型用,然后用训练好的孪生网络从一个大的搜索图片中选择模板图像(目标),速度超过了实时效果。另外,Siamese的网络结构都是全连接层,并且用稠和有效的滑动窗口技术计算两个特征(搜索区域和模板特征)的相关性。值得注意的是,作者用ImageNet Video中的视频数据训练模型,用OTB/VOT对算法进行测试,避免了训练和测试数据来自同一个域。 二、算法原理## 基本思路:   将第一帧图像目标作为模板图像 \(z\) ,将后续个帧图像作为搜索图像 \(x\) ,通过一个学习好的相似性对比函数 \(f(z,x)\) 在 \(x\) 上找到和 \(z\) 最为相像的备选区域作为预测的目标位置。相似度对比函数 \(f\) 将会用一个标记好的数据集进行训练。作者用深度网络作为相似度对比函数 \(f\) ,将网络作为一种变换 \(\varphi\) ,首先将这种变换分别应用到模板和搜索图像上,产生模板和搜索区域的特征 \(\varphi(z), \varphi

2019 IJCAI graph convolution networks using heat kernal for Semi-supervised Learning

感情迁移 提交于 2020-04-01 10:16:17
摘要:图卷积网络在图结构数据的半监督学习中取得了显著的成功。 基于图的半监督学习的关键是捕获由图结构施加于节点上的标签或特征的平稳性。 之前的方法,谱方法和空间方法,致力于将图卷积定义为相邻节点的加权平均,然后学习图卷积核,利用平滑性来提高基于图的半监督学习的性能。 如何确定合适的邻域来反映图结构中所表现出的平滑度相关信息 ,是一个有待解决的问题。 在这篇论文中,我们提出了 利用热核来增强低频滤波器,并在图上的信号变化中加强平滑性 。 GraphHeat利用热扩散下目标节点的局部结构,灵活地确定邻近节点,不受以往方法的顺序约束。 GraphHeat在三个基准数据集(Cora、Citeseer和Pubmed)上实现了基于图形的半监督分类。 与现有的光谱方法不同,GraphHeat利用热核对低频滤波器给予了更大的重视,明确地忽略了信号高频变化对图形的影响。 这样,GraphHeat就可以很好地捕捉由图结构施加于节点上的标签或特征的平稳性。从空间方法的角度来看,GraphHeat利用热扩散的过程来确定能够反映目标节点局部结构的邻近节点,并在图结构中体现出平滑度的相关信息。 图的平滑度是指连接的节点倾向于具有相同标签或相似特征。 基于图的半监督学习,例如节点分类,通过利用图结构施加于节点上的标签或特征的平稳性而获得成功。 e^(-skL)

深度学习常用方法

吃可爱长大的小学妹 提交于 2020-03-31 05:18:56
Deep Learning的常用模型或者方法   1、AutoEncoder自动编码器 Deep Learning最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结构的系统,如果给定一个神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每一层中的权重。自然地,我们就得到了输入I的几种不同表示(每一层代表一种表示),这些表示就是特征。自动编码器就是一种尽可能复现输入信号的神经网络。为了实现这种复现,自动编码器就必须捕捉可以代表输入数据的最重要的因素,就像PCA那样,找到可以代表原信息的主要成分。 具体过程简单的说明如下:   1)给定无标签数据,用非监督学习学习特征:            在我们之前的神经网络中,如第一个图,我们输入的样本是有标签的,即(input, target),这样我们根据当前输出和target(label)之间的差去改变前面各层的参数,直到收敛。但现在我们只有无标签数据,也就是右边的图。那么这个误差怎么得到呢?          如上图,我们将input输入一个encoder编码器,就会得到一个code,这个code也就是输入的一个表示,那么我们怎么知道这个code表示的就是input呢?我们加一个decoder解码器,这时候decoder就会输出一个信息

Very Deep Convolutional Networks for Large-Scale Image Recognition—VGG论文翻译

僤鯓⒐⒋嵵緔 提交于 2020-03-30 09:08:28
Very Deep Convolutional Networks for Large-Scale Image Recognition Karen Simonyan∗ & Andrew Zisserman+ Visual Geometry Group, Department of Engineering Science, University of Oxford {karen,az}@robots.ox.ac.uk 摘要 在这项工作中,我们研究了在大规模的图像识别环境下卷积网络的深度对识别的准确率的影响。我们的主要贡献是使用非常小的(3×3)卷积滤波器架构对网络深度的不断增加并进行全面评估,这表明通过将深度增加到16-19层可以实现对现有技术配置的显著改进。这些发现是我们ImageNet Challenge 2014提交的基础,我们的团队在定位和分类过程中分别获得了第一名和第二名。我们还证明了我们的研究可以很好的推广到其他数据集上,从而在其它数据集上取得了最好的结果。我们已公开了两个性能最好的ConvNet模型,以便促进对于计算机视觉中深度视觉表示的进一步研究。 1 引言 卷积网络(ConvNets)近来在大规模图像和视频识别方面取得了巨大成功(Krizhevsky等,2012;Zeiler&Fergus,2013;Sermanet等,2014;Simonyan&Zisserman