卷积

卷积神经网络(三):权值初始化方法之Xavier与MSRA

為{幸葍}努か 提交于 2020-03-05 20:25:03
基础知识 首先介绍一下Xavier等初始化方法比直接用高斯分布进行初始化W的优势所在: 一般的神经网络在前向传播时神经元输出值的方差会不断增大,而使用Xavier等方法理论上可以保证每层神经元输入输出方差一致。 这里先介绍一个方差相乘的公式,以便理解Xavier: Xavier 现在我们先来分析一层卷积: 其中ni表示输入个数。 根据概率统计知识我们有下面的方差公式: 特别的,当我们假设输入和权重都是0均值时(目前有了BN之后,这一点也较容易满足),上式可以简化为: 进一步假设输入x和权重w独立同分布,则有: 于是,为了保证 输入与输出方差一致 ,则应该有: 为什么要保证输入和输出的方差一致:如果不一致,则会造成方差越来越大(vary(y)>var(x)),或是越来越小(var(y) 为了保证前向传播和反向传播时每一层的方差一致,应 但是,实际当中输入与输出的个数往往不相等,于是为了均衡考量, 最终我们的权重方差应满足 : ——————————————————————————————————————— ——————————————————————————————————————— 学过概率统计的都知道 [a,b] 间的均匀分布的方差为: 因此, Xavier 初始化的实现就是下面的均匀分布 ——————————————————————————————————————————

卷积层自我理解

☆樱花仙子☆ 提交于 2020-03-05 20:01:33
卷积层相对全连接层的优势: 全连接层用于图片分类的用法是,假如有一张1000*1000的图片,通过神经元和激励函数产生非线性,假如说有10^6 方的神经元,那么便有10^12 方的权重即参数。 现在利用卷积层的生物特征,人眼是通过各种局部特征组合来做分类的,所以利用感受野的概念。 提出卷积核,用来感受局部特征。因此假设有10^6 方个神经元,此时只有10^8 个权重。 这10^8 个权重提取了10^6 个局部特征,但如果不需要这么多的局部特征,只需要几十,几百个,那么参数量就大大减少了。这样做的依据是同一个卷积核能被用来提取某一固定特征,所以某一固定特征的提取共享一个卷积核,称之为参数共享。但其实就是降低了隐藏层神经元的数量! 卷积层提取特征: 一般利用多层卷积层来提取图片特征,原理是,第一层通过几十个卷积核提取几十个局部特征,可能是线段、圆弧段这类的简单几何特征,然后将几十个局部特征分布在不同通道输入下一层卷积层。 下一层卷积层用与输入通道数一致的卷积核来卷积输入的局部特征进一步提取特征,此时的提取出什么和卷积核如何设计已经极为抽象,但是可以相信的是此时经过学习,可以提取更高级抽象的特征。 参考:https://www.zhihu.com/question/39022858第二个答案。 下一层继续上述操作,如此经过了多层之后,最后输出一张高级特征的特征图

cnn提取基本特征的例子

感情迁移 提交于 2020-03-05 18:14:10
<div class="text-title"> <h1> 原来CNN是这样提取图像特征的。。。 <span class="article-tag"> </span> </h1> <div class="article-info"> <span class="time" id="news-time" data-val="1542969000000">2018-11-23 18:30</span> <span data-role="original-link">来源:<a href="https://www.sohu.com/?spm=smpc.content.content.1.1583387992313onUFvkL" target="_blank" data-spm-data="1">计算机视觉life</a></span> </div> 原标题:原来CNN是这样提取图像特征的。。。 阅读本文8分钟就够了吧? 对于即将到来的人工智能时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的领域,会不会感觉马上就out了?作为机器学习的一个分支,深度学习同样需要计算机获得强大的学习能力,那么问题来了,我们究竟要计算机学习什么东西?答案当然是图像特征了。将一张图像看做是一个个像素值组成的矩阵,那么对图像的分析就是对矩阵的数字进行分析,而图像的特征

卷积神经网络的七条核心知识

只谈情不闲聊 提交于 2020-03-05 16:25:31
卷积神经网络由哪几部分组成 ?卷积神经网络在视觉上具有较大的应用,卷积神经网络分为卷积层、池化层和全连接层。 什么是卷积核,卷积核的作用是什么 ?其中卷积核是一种数字矩阵,不同的卷积核用来提取特征,不同的卷积核可以提取不同的特征,位于不同深度的卷积核提取的也不同。正是因为卷积核再图像内滑动提取特征的性质,一整张图像使用一个卷积核,使得卷积神经网络具有参数共享的特性,也就减少了计算量。 什么是卷积层?不同卷积层的作用是什么 ?标准神经网络的每层执行的是激活函数的输入输出操作,卷积神经网络的每层卷积层是执行卷积操作。一般来说卷积层的第一层可以提取不同方向的纹理,第二层可以提取颜色等信息,更深层次的神经网络可以提取不同性质的组合状态。 怎样解决卷积的过程中会使图像变小问题 ?可以通过padding的方法先扩充图像再卷积,这样使得输出图像大小保持不变。padding方法还可以解决卷积过程中边缘像素卷积次数少的问题。 什么是池化层?池化层的作用是什么 ?池化层在卷积层后面,可以使卷积后的特征得到强化。池化层分为两种,max pooling和average pooling,池化层的作用是将明显的特征进一步提取。 什么是全连接层 ?全连接层是卷积神经网络最后的部分,通常是全连接神经网络的结构,起到分类的作用。全连接层通常连接softmax分类器用来分类。 经典的卷积神经网络模型有哪些

卷积神经网络:卷积层和池化层

橙三吉。 提交于 2020-03-05 14:23:49
Mnist是针对小图像块处理的,这篇讲的是针对大图像进行处理的。两者在这的区别还是很明显的,小图像(如8*8,MINIST的28*28)可以采用全连接的方式(即输入层和隐含层直接相连)。但是大图像,这个将会变得很耗时:比如96*96的图像,若采用全连接方式,需要96*96个输入单元,然后如果要训练100个特征,只这一层就需要96*96*100个参数(W,b),训练时间将是前面的几百或者上万倍。所以这里用到了部分联通网络。对于图像来说,每个隐含单元仅仅连接输入图像的一小片相邻区域。 卷积层:   自然图像有其固有特性,也就是说,图像的一部分的统计特性与其他部分是一样的。这也意味着我们在这一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,我们都能使用同样的学习特征。   对于图像,当从一个大尺寸图像中随机选取一小块,比如说8x8作为样本,并且从这个小块样本中学习到了一些特征,这时我们可以把从这个8x8样本中学习到的特征作为探测器,应用到这个图像的任意地方中去。特别是,我们可以用从8x8样本中所学习到的特征跟原本的大尺寸图像作卷积,从而对这个大尺寸图像上的任一位置获得一个不同特征的激活值。   看下面例子容易理解:   假设你已经从一个96x96的图像中学习到了它的一个8x8的样本所具有的特征,假设这是由有100个隐含单元的自编码完成的。为了得到卷积特征

1*1卷积核的理解和作用

痴心易碎 提交于 2020-03-05 12:43:16
权值共享基本上有两种方法: 在同一特征图和不同通道特征图都使用共享权值,这样的卷积参数是最少的,例如上一层为30*30*40,当使用3*3*120的卷积核进行卷积时,卷积参数为:3*3*120个.(卷积跟mlp有区别也有联系一个神经元是平面排列,一个是线性排列) 第二种只在同一特征图上使用共享权值,根据上面的例子,则卷积参数为:3*3*40*120. 1×1的卷积大概有两个方面的作用吧: 1. 实现跨通道的交互和信息整合 2. 进行卷积核通道数的降维和升维 以GoogLeNet的3a模块为例,输入的feature map是28×28×192,3a模块中1×1卷积通道为64,3×3卷积通道为128,5×5卷积通道为32,如果是左图结构,那么卷积核参数为1×1×192×64+3×3×192×128+5×5×192×32,而右图对3×3和5×5卷积层前分别加入了通道数为96和16的1×1卷积层,这样卷积核参数就变成了1×1×192×64+(1×1×192×96+3×3×96×128)+(1×1×192×16+5×5×16×32),参数大约减少到原来的三分之一。同时在并行pooling层后面加入1×1卷积层后也可以降低输出的feature map数量,左图pooling后feature map是不变的,再加卷积层得到的feature map,会使输出的feature map扩大到416

Attention

六月ゝ 毕业季﹏ 提交于 2020-03-05 10:53:49
1. CBAM Convolutional Block Attention Module (CBAM) 表示卷积模块的注意力机制模块。是一种结合了空间(spatial)和通道(channel)的注意力机制模块。 2. Channel Attention Module 我们知道一张图片经过几个卷积层会得到一个特征矩阵,这个矩阵的通道数就是卷积核的个数。那么,一个常见的卷积核经常达到1024,2048个,并不是每个通道都对于信息传递非常有用了的。因此,通过对这些通道进行过滤,也就是注意,来得到优化后的特征. 主要思路就是: 增大有效通道权重,减少无效通道的权重 M c ( F ) = σ ( M L P ( A v g P o o l ( F ) ) + M L P ( M a x P o o l ( F ) ) ) = σ ( W 1 ( W 0 ( F a v g c ) ) + W 1 ( W 0 ( F m a x c ) ) ) \begin{aligned} \Large M_c(F)=& \Large\sigma(MLP(AvgPool(F))+MLP(MaxPool(F))) \\ \\ =&\Large\sigma (W_1(W_0(F_{avg}^c))+W_1(W_0(F_{max}^c))) \end{aligned} M c ​ ( F ) = = ​ σ (

小白也能入门的深度学习

不羁的心 提交于 2020-03-05 09:50:25
卷积神经网络是近年来深度学习能在计算机视觉领域取得突破性成果的基石。它也逐渐在被其他诸如自然语言处理、推荐系统和语音识别等领域广泛使用。 一、卷积神经网络简介 卷积神经网络的结构:卷积层、池化层、全连接层。全连接层通常作为网络的最后几层,其中的每个神经元都与上层中的所有神经元相连,所以称之为全连接层。全连接层之前是若干对卷积层与池化层,卷积层与池化层一一对应,且卷积层在前,池化层在后。本质上卷积层与池化层作用是将原始的数据中的特征进行抽象,全连接层则利用这些抽象出来的特征对样本数据进行分类,并未样本打上标签。 卷积层与池化层是卷积神经网络的核心部分。 卷积层:由若干特征图构成,特征图由卷积核对输入数据卷积后得到,卷积核可被看做是一种对特定特征非常敏感的探测器。卷积核对输入数据卷积的过程就是,实际就是尝试发现输入数据中某个特征的过程。特征图会记录卷积核在原输入数据不同部分的激活程度(特征越契合,激活程度越高)。每个卷积核负责识别一种特定特征,卷积后将产生一张对应该特征的特征图,卷积层通常由若干个卷积核与之对应。 池化层的价值在于缩减输入数据的规模,比如将特征图中若干个激活值合并为新特征图中的一个激活值。合并方法很多,比如最大值合并、平均值合并和随机合并,采用何种方法根据业务来定。 二、卷积层 卷积核的宽和高,以及卷积核的个数由人工预定义得到。卷积核对什么特征敏感

深度学习笔记(九)感受野计算

三世轮回 提交于 2020-03-05 07:22:29
1 感受野的概念    在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。一般感受野大小是目标大小的两倍左右最合适!       RCNN论文中有一段描述,Alexnet网络pool5输出的特征图上的像素在输入图像上有很大的感受野(have very large receptive fields (195 × 195 pixels))和步长(strides (32×32 pixels) ), 这两个变量的数值是如何得出的呢? 2 感受野大小的计算 感受野计算时有下面的几个情况需要说明:   (1)第一层卷积层的输出特征图像素的感受野的大小等于滤波器的大小   (2)深层卷积层的感受野大小和它之前所有层的滤波器大小和步长有关系   (3)计算感受野大小时,忽略了图像边缘的影响,即不考虑padding的大小,关于这个疑惑大家可以阅读一下参考文章2的解答进行理解 这里的每一个卷积层还有一个strides的概念,这个strides是之前所有层stride的乘积。 即strides(i) = stride(1) * stride(2) * ...* stride(i-1) 关于感受野大小的计算采用top to down的方式, 即先计算最深层在前一层上的感受野,然后逐渐传递到第一层,使用的公式可以表示如下:   

转置卷积、微步卷积、空洞卷积是什么?

此生再无相见时 提交于 2020-03-04 21:17:21
文章目录 转置卷积(deconvolution) 微步卷积 空洞卷积(膨胀卷积) 转置卷积(deconvolution) 转置卷积是一个将低维特征转换到高维特征。为什么叫做转置卷积呢?其实就是引入了转置的思想。 假设我们现在有一个p维的向量Z,然后有个d维的向量X,p<d. 这样就会出现 Z = W·X,其中W的维度为(p,d),叫做转换矩阵. 现在,我们要从Z通过相似的方法来得到X,这样我们不难想到: X= W.T · X 其中W.T的维度是(d,p),但是这两个W并不是同一个值,而是具有转置的形式而已。 上面的例子是一维向量的情况,在卷积操作中,也可以借用这个思想,从低维到高维的转变可以在形式上看成是转置操作。 比如我们现在对一个4 * 4的输入做3 * 3的卷积操作(m=3,stride=1,padding=0),得到一个2 * 2的特征映射 如果我们想对这个2 * 2特征映射进行3 * 3卷积,并反过来得到4 * 4的输出,就可以用到转置卷积: 如上图所示,对2 * 2的特征映射先做 (m-1)padding 得到6 * 6的输入,然后对其进行3*3的卷积操作,从而得到4 * 4的特征映射。 同样,这个两个3 * 3的卷积参数不是一致的,都是可学习的。 微步卷积 微步卷积其实是一个转置卷积的一个特殊情况,就是卷积操作的 stride ≠ 1 。因为在现实中