卷积核 订阅
卷积核就是图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核。 展开全文
卷积核就是图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核。
信息
外文名
convolution kernel
又    称
滤波器
中文名
卷积核
卷积核卷积核的意义
卷积核其实在图像处理中并不是新事物,Sobel 算子等一系列滤波算子,一直都在被用于边缘检测等工作中,只是以前被称为 Filter。做图像处理的同学应该有印象。卷积核具有的一个属性就是局部性。即它只关注局部特征,局部的程度取决于卷积核的大小。比如用 Sobel 算子进行边缘检测,本质就是比较图像邻近像素的相似性。也可以从另外一个角度理解卷积核的意义。学过信号处理的同学应该记得,时域卷积对应频域相乘。所以原图像与卷积核的卷积,其实是对频域信息进行选择。比如,图像中的边缘和轮廓属于是高频信息,图像中某区域强度的综合考量属于低频信息。在传统图像处理里,这是指导设计卷积核的一个重要方面。
收起全文
精华内容
下载资源
问答
  • 在跑一份代码时,效果一直提升不上去,偶然将3 * 3的卷积核换成了4 * 4的卷积核,效果奇佳,于是搜索了一下卷积核的大小对网络性能的影响,总结如下: 1.大卷积核和小卷积核 显然,大卷积核的感受野更大,自然提取...
  • 今天小编就为大家分享一篇pytorch 自定义卷积核进行卷积操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了keras CNN卷积核可视化,热度图教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Write a function Convolution (Image I, Kernel H) that has arguments a. Image B (Images is corrupted by salt-and-pepper noise). b. Kernel H (You should allow varying size Kernels) ...
  • 针对卷积神经网络中卷积核数量多凭经验确定的问题,提出了一种统计图像边缘信息来确定卷积核数量的方法。采用边缘检测算子对训练图像进行边缘检测,并依据卷积层的卷积核尺寸对边缘图像进行边缘块提取;统计提取到的...
  • 卷积核

    千次阅读 2018-05-26 22:14:54
    今天一个同学问 卷积过程好像是对 一个通道的图像进行卷积, 比如10个卷积核,得到10个feature map, 那么输入图像为RGB三个通道呢,输出就为 30个feature map 吗, 答案肯定不是的, 输出的个数依然是 卷积核的...

    今天一个同学问 卷积过程好像是对 一个通道的图像进行卷积, 比如10个卷积核,得到10个feature map, 那么输入图像为RGB三个通道呢,输出就为 30个feature map 吗, 答案肯定不是的, 输出的个数依然是 卷积核的个数。 可以查看常用模型,比如lenet 手写体,Alex imagenet 模型, 每一层输出feature map 个数 就是该层卷积核的个数。


    1、 一通道单个卷积核卷积过程




    2、 一通道 多个卷积核卷积过程


    一个卷积核得到的特征提取是不充分的,我们可以添加多个卷积核,比如32个卷积核,可以学习32种特征。在有多个卷积核时,如下图所示:输出就为32个feature map

    卷积神经网络



    3、 多通道的多个卷积核

    下图展示了在四个通道上的卷积操作,有两个卷积核,生成两个通道。其中需要注意的是,四个通道上每个通道对应一个卷积核,先将w2忽略,只看w1,那么在w1的某位置(i,j)处的值,是由四个通道上(i,j)处的卷积结果相加然后再取激活函数值得到的。  所以最后得到两个feature map, 即输出层的卷积核核个数为 feature map 的个数。

    卷积神经网络

    卷积神经网络

    所以,在上图由4个通道卷积得到2个通道的过程中,参数的数目为4×2×2×2个,其中4表示4个通道,第一个2表示生成2个通道,最后的2×2表示卷积核大小。


    下面是常见模型, 理解一下 每层feature map 个数,为上一层卷积核的个数

    下图即为Alex的CNN结构图。需要注意的是,该模型采用了2-GPU并行结构,即第1、2、4、5卷积层都是将模型参数分为2部分进行训练的。在这里,更进一步,并行结构分为数据并行与模型并行。数据并行是指在不同的GPU上,模型结构相同,但将训练数据进行切分,分别训练得到不同的模型,然后再将模型进行融合。而模型并行则是,将若干层的模型参数进行切分,不同的GPU上使用相同的数据进行训练,得到的结果直接连接作为下一层的输入。

    卷积神经网络

    上图模型的基本参数为:

    输入:224×224大小的图片,3通道
    第一层卷积:5×5大小的卷积核96个,每个GPU上48个。
    第一层max-pooling:2×2的核。
    第二层卷积:3×3卷积核256个,每个GPU上128个。
    第二层max-pooling:2×2的核。
    第三层卷积:与上一层是全连接,3*3的卷积核384个。分到两个GPU上个192个。
    第四层卷积:3×3的卷积核384个,两个GPU各192个。该层与上一层连接没有经过pooling层。
    第五层卷积:3×3的卷积核256个,两个GPU上个128个。
    第五层max-pooling:2×2的核。
    第一层全连接:4096维,将第五层max-pooling的输出连接成为一个一维向量,作为该层的输入。
    第二层全连接:4096维
    Softmax层:输出为1000,输出的每一维都是图片属于该类别的概率。

    4 DeepID网络结构

    DeepID网络结构是香港中文大学的Sun Yi开发出来用来学习人脸特征的卷积神经网络。每张输入的人脸被表示为160维的向量,学习到的向量经过其他模型进行分类,在人脸验证试验上得到了97.45%的正确率,更进一步的,原作者改进了CNN,又得到了99.15%的正确率。

    如下图所示,该结构与ImageNet的具体参数类似,所以只解释一下不同的部分吧。

    卷积神经网络

    上图中的结构,在最后只有一层全连接层,然后就是softmax层了。论文中就是以该全连接层作为图像的表示。在全连接层,以第四层卷积和第三层max-pooling的输出作为全连接层的输入,这样可以学习到局部的和全局的特征。



    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------

    下面讲一下,caffe中的实现。


    Caffe中的卷积计算是将卷积核矩阵和输入图像矩阵变换为两个大的矩阵A与B,然后A与B进行矩阵相乘得到结果C(利用GPU进行矩阵相乘的高效性),三个矩阵的说明如下:

    (1)在矩阵A中

            M为卷积核个数,K=k*k,等于卷积核大小,即第一个矩阵每行为一个卷积核向量(是将二维的卷积核转化为一维),总共有M行,表示有M个卷积核。

    (2)在矩阵B中

            N=((image_h + 2*pad_h – kernel_h)/stride_h+ 1)*((image_w +2*pad_w – kernel_w)/stride_w + 1)

            image_h:输入图像的高度

            image_w:输入图像的宽度

            pad_h:在输入图像的高度方向两边各增加pad_h个单位长度(因为有两边,所以乘以2)

            pad_w:在输入图像的宽度方向两边各增加pad_w个单位长度(因为有两边,所以乘以2)

            kernel_h:卷积核的高度

            kernel_w:卷积核的宽度

            stride_h:高度方向的滑动步长;

            stride_w:宽度方向的滑动步长。

            因此,N为输出图像大小的长宽乘积,也是卷积核在输入图像上滑动可截取的最大特征数。

            K=k*k,表示利用卷积核大小的框在输入图像上滑动所截取的数据大小,与卷积核大小一样大。

    (3)在矩阵C中

            矩阵C为矩阵A和矩阵B相乘的结果,得到一个M*N的矩阵,其中每行表示一个输出图像即feature map,共有M个输出图像(输出图像数目等于卷积核数目)


     (在Caffe中是使用src/caffe/util/im2col.cu中的im2col和col2im来完成矩阵的变形和还原操作)

     

     举个例子(方便理解):

         假设有两个卷积核为,因此M=2,kernel_h=2,kernel_w=2,K= kernel_h * kernel_w=4

         输入图像矩阵为,因此image_h=3,image_w=3,令边界扩展为0即pad_h=0,pad_w=0,滑动步长为1,即stride_h=1,stride_w=1

         故N=[(3+2*0-2)/1+1]*[ (3+2*0-2)/1+1]=2*2=4

     

        A矩阵(M*K)为(一行为一个卷积核),B矩阵(K*N)为(B矩阵的每一列为一个卷积核要卷积的大小)

        A 矩阵的由来:::    

        B矩阵的由来:(caffe 有 imtocol.cpp代码,专门用于实现) 



        C=A*B=*=

        C中的分别为两个输出特征图像即feature map。验证了 有几个卷积核就有几个feature map

     

        在Caffe源码中,src/caffe/util/math_functions.cu(如果使用CPU则是src/util/math_functions.cpp)中的caffe_gpu_gemm()函数,其中有两个矩阵A(M*K)

        与矩阵    B(K*N),大家可以通过输出M、K、N的值即相应的矩阵内容来验证上述的原理,代码中的C矩阵与上述的C矩阵不一样,代码中的C矩阵存储的是偏置bias,

        是A  与B相乘后得到M*N大小的矩阵,然后再跟这个存储偏置的矩阵C相加完成卷积过程。如果是跑Mnist训练网络的话,可以看到第一个卷积层卷积过程中,

        M=20,K=25,N=24*24=576。

      (caffe中涉及卷积具体过程的文件主要有:src/caffe/layers/conv_layer.cu、src/caffe/layers/base_conv_layer.cpp、                src/caffe/util/math_functions.cu、src/caffe/util/im2col.cu)

        另外大家也可以参考知乎上贾扬清大神的回答,帮助理解http://www.zhihu.com/question/28385679

      (对于他给出的ppt上的C表示图像通道个数,如果是RGB图像则通道数为3,对应于caffe代码中的变量为src/caffe/layers/base_conv_layer.cpp中

         函数forward_gpu_gemm中的group_)


    贾扬清的PPT如下:

    下面看这个就简单多了, im2col.cpp 的代码也好理解了

    展开全文
  • feature map、卷积核卷积核个数、filter、channel的概念解释 feather map的理解 在cnn的每个卷积层,数据都是以三维形式存在的。你可以把它看成许多个二维图片叠在一起(像豆腐皮一样),其中每一个称为一个...

    feature map、卷积核、卷积核个数、filter、channel的概念解释

    feather map的理解

    在cnn的每个卷积层,数据都是以三维形式存在的。你可以把它看成许多个二维图片叠在一起(像豆腐皮一样),其中每一个称为一个feature map

    feather map 是怎么生成的?

    输入层:在输入层,如果是灰度图片,那就只有一个feature map;如果是彩色图片,一般就是3个feature map(红绿蓝)。

    其它层:层与层之间会有若干个卷积核(kernel)(也称为过滤器),上一层每个feature map跟每个卷积核做卷积,都会产生下一层的一个feature map,有N个卷积核,下层就会产生N个feather map。

    多个feather map的作用是什么?

    在卷积神经网络中,我们希望用一个网络模拟视觉通路的特性,分层的概念是自底向上构造简单到复杂的神经元。楼主关心的是同一层,那就说说同一层。
    我们希望构造一组基,这组基能够形成对于一个事物完备的描述,例如描述一个人时我们通过描述身高/体重/相貌等,在卷积网中也是如此。在同一层,我们希望得到对于一张图片多种角度的描述,具体来讲就是用多种不同的卷积核对图像进行卷,得到不同核(这里的核可以理解为描述)上的响应,作为图像的特征。他们的联系在于形成图像在同一层次不同基上的描述。

    下层的核主要是一些简单的边缘检测器(也可以理解为生理学上的simple cell)。

    上层的核主要是一些简单核的叠加(或者用其他词更贴切),可以理解为complex cell。

     

    多少个Feature Map?真的不好说,简单问题少,复杂问题多,但是自底向上一般是核的数量在逐渐变多(当然也有例外,如Alexnet),主要靠经验。

    卷积核的理解

    卷积核在有的文档里也称为过滤器(filter):  

    • 每个卷积核具有长宽深三个维度;
    • 在某个卷积层中,可以有多个卷积核:下一层需要多少个feather map,本层就需要多少个卷积核。

    卷积核的形状

    每个卷积核具有长、宽、深三个维度。在CNN的一个卷积层中:

    • 卷积核的长、宽都是人为指定的,长X宽也被称为卷积核的尺寸,常用的尺寸为3X3,5X5等;
    • 卷积核的深度与当前图像的深度(feather map的张数)相同,所以指定卷积核时,只需指定其长和宽 两个参数。例如,在原始图像层 (输入层),如果图像是灰度图像,其feather map数量为1,则卷积核的深度也就是1;如果图像是grb图像,其feather map数量为3,则卷积核的深度也就是3.

    卷积核个数的理解

    如下图红线所示:该层卷积核的个数,有多少个卷积核,经过卷积就会产生多少个feature map,也就是下图中 `豆腐皮儿`的层数、同时也是下图`豆腐块`的深度(宽度)!!这个宽度可以手动指定,一般网络越深的地方这个值越大,因为随着网络的加深,feature map的长宽尺寸缩小,本卷积层的每个map提取的特征越具有代表性(精华部分),所以后一层卷积层需要增加feature map的数量,才能更充分的提取出前一层的特征,一般是成倍增加(不过具体论文会根据实验情况具体设置)!

     

     

     

     

    卷积核的运算过程

    例如输入224x224x3(rgb三通道),输出是32位深度,卷积核尺寸为5x5。

    那么我们需要32个卷积核,每一个的尺寸为5x5x3(最后的3就是原图的rgb位深3),每一个卷积核的每一层是5x5(共3层)分别与原图的每层224x224卷积,然后将得到的三张新图叠加(算术求和),变成一张新的feature map。 每一个卷积核都这样操作,就可以得到32张新的feature map了。  也就是说:

    不管输入图像的深度为多少,经过一个卷积核(filter),最后都通过下面的公式变成一个深度为1的特征图。不同的filter可以卷积得到不同的特征,也就是得到不同的feature map。。。

    filter的理解

    filter有两种理解: 

    在有的文档中,一个filter等同于一个卷积核:只是指定了卷积核的长宽深;

    而有的情况(例如tensorflow等框架中,filter参数通常指定了卷积核的长、宽、深、个数四个参数),filter包含了卷积核形状和卷积核数量的概念:即filter既指定了卷积核的长宽深,也指定了卷积核的数量。

     

    理解tensorflow等框架中的参数 channel(feather map、卷积核数量)

    在深度学习的算法学习中,都会提到 channels 这个概念。在一般的深度学习框架的 conv2d 中,如 tensorflow 、mxnetchannels 都是必填的一个参数。

    channels 该如何理解?先看一看不同框架中的解释文档。

    首先,是 tensorflow 中给出的,对于输入样本中 channels 的含义。一般的RGB图片,channels 数量是 3 (红、绿、蓝);而monochrome图片,channels 数量是 1 。

    channels : Number of color channels in the example images. For color images, the number of channels is 3 (red, green, blue). For monochrome images, there is just 1 channel (black). ——tensorflow

    其次,mxnet 中提到的,一般 channels 的含义是,每个卷积层中卷积核的数量

    channels (int) : The dimensionality of the output space, i.e. the number of output channels (filters) in the convolution. ——mxnet

    为了更直观的理解,下面举个例子,图片使用自 吴恩达老师的深度学习课程 。

    如下图,假设现有一个为 6×6×36×6×3 的图片样本,使用 3×3×33×3×3 的卷积核(filter)进行卷积操作。此时输入图片的 channels 为 33 ,而卷积核中的 in_channels 与 需要进行卷积操作的数据的 channels 一致(这里就是图片样本,为3)。

    cnn

    接下来,进行卷积操作,卷积核中的27个数字与分别与样本对应相乘后,再进行求和,得到第一个结果。依次进行,最终得到 4×4 的结果。

    单个卷积核

    上面步骤完成后,由于只有一个卷积核,所以最终得到的结果为 4×4×1 , out_channels 为 1 。

    在实际应用中,都会使用多个卷积核。这里如果再加一个卷积核,就会得到 4×4×2 的结果。

    多个卷积核

    总结一下,我偏好把上面提到的 channels 分为三种:

    1. 最初输入的图片样本的 channels ,取决于图片类型,比如RGB;
    2. 卷积核中的 in_channels ,就是要操作的图像数据的feather  map张数,也就是卷积核的深度。(刚刚2中已经说了,就是上一次卷积的 out_channels ,如果是第一次做卷积,就是1中样本图片的 channels) ;
    3. 卷积操作完成后输出的 out_channels ,取决于卷积核的数量(下层将产生的feather map数量)。此时的 out_channels 也会作为下一次卷积时的卷积核的 in_channels。

    说到这里,相信已经把 channels 讲的很清楚了。在CNN中,想搞清楚每一层的传递关系,主要就是 height,width 的变化情况,和 channels 的变化情况。

    最后再看看 tensorflow 中 tf.nn.conv2d 的 input 和 filter 这两个参数。 
    input : [batch, in_height, in_width, in_channels] , 
    filter : [filter_height, filter_width, in_channels, out_channels(卷积核的数量/下层将产生的feather map数量)] 。

    里面的含义是不是很清楚了?

    conv2d

     

     

    CNN的学习过程:更新卷积核的值(更新提取的图像特征)

    因为卷积核实际上就是如3x3,5x5这样子的权值(weights)矩阵。我们的网络要学习的,或者说要确定下来的,就是这些权值(weights)的数值。网络不断前后向的计算学习,一直在更新出合适的weights,也就是一直在更新卷积核们。卷积核在更新了,学习到的特征也就被更新了(因为卷积核的值(weights)变了,与上一层的map卷积计算的结果也就变了,得到的新map就也变了。)。对分类问题而言,目的就是:对图像提取特征,再以合适的特征来判断它所属的类别。类似这种概念:你有哪些个子的特征,我就根据这些特征,把你划分到某个类别去。

    这样就很说的通了,卷积神经网络的一整套流程就是:更新卷积核参数(weights),就相当于是一直在更新所提取到的图像特征,以得到可以把图像正确分类的最合适的特征们。(一句话:更新weights以得到可以把图像正确分类的特征。) 

     

    展开全文
  • 文章目录一、卷积核(convolutional kernel):1.1 介绍1.2 设计中的问题二、池化(pooling):没有完全整理的blog整理完的blog 一、卷积核(convolutional kernel): 1.1 介绍 **目标:**实现对应于输入的局部感知...

    一、卷积核(convolutional kernel):

    1.1 介绍

    目标: 实现对应于输入的局部感知

    实现方式: 对输入的某个局部块进行加权求和

    理由: 感受野的提出(观察某个物体时我们既不能观察每个像素,也不能一次观察整体,而是先从局部开始认识)

    举例: 卷积核的大小一般有1x1,3x3和5x5的尺寸(一般是奇数x奇数)。

    卷积核参数定义、输出形状、计算量:

    卷积核的形状定义为W*D*C 分别为单个感受野的长度宽度(一般长宽相等),卷积核的深度(对应于卷积核所需要提供的三维深度上的连接需要,也就是输入深度,输入矩阵的通道数)

    卷积核的个数,每个卷积核大小形状的定义如上,但是可以定义多个卷积核,每一个卷积核,输出一个对应的结果,是一个一维的特征图(feature map),那么多个卷积核就会输出对应个数的特征图,堆叠在一起输出一个有深度的特征图矩阵。

    (备注理解:卷积核的权值共享只在每个单独通道上有效,这句话的意思是,对应于输入的一个通道,有一个卷积核的一个通道去对应滑动并且计算过这个通道每一个部分,在这个输入通道的图片或者讲featuremap中,我们可以说这个权值是共享的,应用范围仅限于这一个featuremap通道,但是对应于输入的其他通道呢,会有卷积核的其他部分去做这个通道的感受野特征提取。所以说通道与通道间的对应的卷积核是独立不共享的)。

    输入为32 32 1 卷积核为 3 3 1 1
    在这里插入图片描述

    卷积核的参数为3*3*1

    输入为32 32 10 卷积核为 3 3 10 3

    在这里插入图片描述

    卷积核的参数为3*3*10*3

    对应有了三个输出featuremap 分别是由三个卷积核分别的出来的

    1.2 设计中的问题

    关于卷积核大小设计的几个理解:

    卷积核大小必须大于1才有提升感受野的作用,所以最常用于特征提取的卷积核不能为1

    大小为偶数的卷积核即使对称地加padding也不能保证输入feature map尺寸和输出feature map尺寸不变(例如输入为4*4 卷积核大小为2*2,两边各加padding为1,滑动后一共有5个输出,与输入无法对应)

    想要达到相同感受野,卷积核越小,所需要的参数量越小,同时计算量也有越小。
    在这里插入图片描述

    错误想法记录:(这下面一段是错误想法)

    如果用小卷积核叠成两层我个人认为计算量会增加,如下图虽然参数量上两种方式分别为3*3+3*3 和 5*5 达到了感受也相同的目的 但是计算量上前者需要3*3*9+3*3次浮点型运算 后者需要5*5次运算即可(是由于这张图片引起的)
    在这里插入图片描述

    正确想法修正:(这下面一段是才是正确想法)

    如果用小卷积核叠成两层总体计算量会减少,虽然上面一段计算看似没有什么错误但是实际上是不正确的,因为当输入的featuremap较大(大于5的时候)5*5这种卷积和设置方法所增加的计算量远远大于小卷积核的堆积

    下面计算一下(假设输入featuremap为无限大H的一个矩阵)
    ( H − 3 + 1 ) ∗ ( H − 3 + 1 ) ∗ 3 ∗ 3 + ( H − 1 − 3 + 1 ) ( H − 1 − 3 + 1 ) ∗ 3 ∗ 3 ≈ H 2 ∗ 18 ( H − 5 + 1 ) ∗ ( H − 5 + 1 ) ∗ 5 ∗ 5 ≈ H 2 ∗ 25 (H-3+1)*(H-3+1)*3*3 + (H-1-3+1)(H-1-3+1)*3*3 \approx H^2*18\\ (H-5+1)*(H-5+1)*5*5 \approx H^2*25 (H3+1)(H3+1)33+(H13+1)(H13+1)33H218(H5+1)(H5+1)55H225
    使用这一张图片就会容易辨析很多
    在这里插入图片描述

    另外小卷积核的优势进行如下总结

    优势一:

    整合了一个以上个非线性激活层,代替单一非线性激活层,增加了非线性的拟合能力。

    优势二:

    减少了网络参数。

    以3个3*3的级联卷积代替1个7*7的卷积为例:可以减少7*7-3*3*\3=22个参数,减少了45%的参数。

    以2个3*3的级联卷积代替1个5*5的卷积为例:可以减少5*5-2*3*3=7个参数,减少了28%的参数。

    优势三:

    减少了计算量

    以3个3*3的级联卷积代替1个7*7的卷积为例:可以减少7*7*L-3*3*3*L=22*L次计算,减少了45%的计算量。

    以2个3*3的级联卷积代替1个5*5的卷积为例:可以减少5*5*L-2*3*3*L=7*L次计算,减少了28%的计算量。

    优势四:

    有感于1*1卷积核中还可以起到对通道数的升降进行控制的作用 (达到特征降维和升维的作用)。多个小卷积核的串联是否也可以在网络结构搜索中,给通道数设置增加更多的灵活性。

    基于以上几个理解所以,一般都用3作为卷积核大小。

    关于卷积核个数,卷积层深度的理解:

    每一层卷积有多少卷积核(输出多少channel),以及一共有多少层卷积,这些暂时没有理论支撑,一般都是靠感觉去设置几组候选值,然后通过实验挑选出其中的最佳值。

    多说几句,每一层卷积的channel数和网络的总卷积层数,构成了一个巨大的超参集合,这个超参集合里的最优组合,很可能比目前业界各种fancy的结构还要高效。只是我们一来没有理论去求解这个超参集合里的最优,二来没有足够的计算资源去穷举这个超参集合里的每一个组合,因此我们不知道这个超参集合里的最优组合是啥。

    现在业界里提出的各种fancy结构中不少都是不断trial and error,试出来一个效果不错的网络结构,然后讲一个好听的story,因为深度学习理论还不够,所以story一般都是看上去很美,背后到底是不是这回事只有天知道。比如好用到不行的batch norm,它的story是解决internal covariate shift,然而最近有篇文章How Does Batch Normalization Help Optimization? (No, It Is Not About Internal Covariate Shift)通过实验证明实际情况并不如此。

    推荐一篇讲如何设计CNN网络的文章A practical theory for designing very deep convolutional neural networks

    二、池化(pooling):

    卷积特征往往对应某个局部的特征。要得到global的特征需要将全局的特征执行一个aggregation(聚合)。池化就是这样一个操作,对于每个卷积通道中的一块、每个卷积通道的一整个通道上的卷积特征进行pooling就可以得到更有全局性的特征。这里的pooling当然就对应了cross region。

    没有完全整理的blog

    卷积神经网络中的参数计算 - hejunlin - 博客园

    卷积神经网络中图像池化操作全解析_深度学习思考者-CSDN博客_图网络+池化 site:csdn.net

    整理完的blog

    卷积神经网络的卷积核大小、卷积层数、每层map个数都是如何确定下来的呢? - 知乎

    深度学习面试题16:小卷积核级联卷积VS大卷积核卷积 - 知识天地 - 博客园

    一文读懂卷积神经网络中的1x1卷积核 - 知乎

    展开全文
  • 用一个三层多核的网络分类mnist0和2,卷积核的数量从1到23,每个收敛标准(也就是输出值与目标值的余项或误差),收敛199次,记录平均值和迭代次数和耗时。 在文<二分类卷积核极限数量实验>中做了一个网络 ...

    本文做了一个二分类网络

    (mnist 0,2)-con(5*5)*n-30*2-(1,0)(0,1)

    用一个三层多核的网络分类mnist0和2,卷积核的数量从1到23,每个收敛标准(也就是输出值与目标值的余项或误差),收敛199次,记录平均值和迭代次数和耗时。

    在文<二分类卷积核极限数量实验>中做了一个网络

    (mnist 0,2)-con(3*3)*n-30*2-(1,0)(0,1)

    这个网络用3*3的卷积核分类mnist的0和2用了1到12个卷积核,把本文的数据与3*3卷积核的实验做对比,进一步的比较两个卷积核的性能差异。

     

    首先观察平均准确率pave

     

    81*30*2

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    δ

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    平均准确率p-ave

    1.00E-04

    0.980864

    0.977914

    0.981411

    0.982672

    0.983733

    0.984016

    0.985766

    0.985644

    0.985357

    0.985769

    0.985844

    0.986019

    0.985654

    0.985976

    0.985874

    0.986416

    0.986331

    0.985991

    0.986016

    0.985989

    0.985914

    0.986233

    0.986044

    0.985919

    9.00E-05

    0.980534

    0.977986

    0.981391

    0.983211

    0.98502

    0.98446

    0.985549

    0.985619

    0.985951

    0.986298

    0.986208

    0.986183

    0.986351

    0.986218

    0.986358

    0.98676

    0.986378

    0.986373

    0.986358

    0.986373

    0.985636

    0.986273

    0.986016

    0.985384

    8.00E-05

    0.980569

    0.978501

    0.982777

    0.983801

    0.984657

    0.985644

    0.985939

    0.986408

    0.985941

    0.986536

    0.986576

    0.986528

    0.986593

    0.986653

    0.986583

    0.986593

    0.986655

    0.98662

    0.986348

    0.986653

    0.986358

    0.985941

    0.985424

    0.985601

    7.00E-05

    0.980594

    0.979298

    0.982652

    0.984785

    0.985656

    0.985859

    0.986096

    0.986353

    0.986481

    0.986665

    0.986603

    0.98703

    0.987053

    0.986973

    0.98678

    0.987018

    0.986933

    0.987205

    0.986228

    0.986186

    0.986331

    0.985996

    0.98667

    0.986161

    6.00E-05

    0.981171

    0.978588

    0.983376

    0.985159

    0.986268

    0.986143

    0.986323

    0.986605

    0.98689

    0.98697

    0.986988

    0.987225

    0.986988

    0.987295

    0.987132

    0.987065

    0.987322

    0.987227

    0.98672

    0.987137

    0.986988

    0.986855

    0.986241

    0.986468

                             

    8.00E-05

    3*3

    0.973478

    0.978289

    0.981113

    0.982794

    0.982749

    0.982295

    0.982829

    0.981788

    0.981823

    0.980736

    0.980861

    0.980584

               

    7.00E-05

    3*3

    0.974827

    0.980019

    0.982342

    0.983873

    0.983618

    0.983251

    0.983276

    0.98192

    0.982577

    0.981316

    0.980357

    0.980551

               

    6.00E-05

    3*3

    0.975916

    0.981326

    0.983633

    0.983651

    0.983289

    0.983506

    0.982744

    0.982694

    0.981885

    0.980983

    0.981401

    0.98214

               

     

    数据显示网络性能随着卷积核的数量的增加先上升后下降,也就是5*5卷积核的数量是有最优值的。

    这个最优值在n=16.

     

    与同样收敛标准的3*3卷积核的pave数据比较

     

    5*5卷积核的pave是全面的超过3*3卷积核的pave,3*3卷积核的数量最优值是n=4.上升区间要比5*5卷积核的要小的多。而且3*3卷积核当n=4的最优pave= 0.9838731而5*5卷积核当n=16的最优pave= 0.987322,5*5卷积核有约3.5‰的优势。

     

    比较数据pave5*5/pave3*3

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    8.00E-05

    1.005159

    1.004588

    1.002739

    1.001896

    1.002946

    1.00371

    1.003642

    1.00423

    1.0048

    1.005954

    1.005778

    1.006128

    7.00E-05

    1.004586

    1.002686

    1.002487

    1.001813

    1.002278

    1.002893

    1.003129

    1.004645

    1.004161

    1.005388

    1.006807

    1.00663

    6.00E-05

    1.002738

    1.00209

    1.001551

    1.002661

    1.002903

    1.002865

    1.003929

    1.00427

    1.005179

    1.006121

    1.005935

    1.004936

    sum(pave5*5)/sum(pave3*3)=1.004

     

    这组数据表明在收敛标准相同的情况下5*5卷积核的性能全面的优于3*3卷积核,平均优势约为4‰

     

    比较迭代次数

     

    81*30*2

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    δ

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    迭代次数n

    1.00E-04

    3209.98

    6975.638

    7363.025

    7453.508

    8030.121

    8209.131

    8630.955

    8684.327

    9112.995

    9148.955

    9656.925

    9869.96

    9889.809

    10413.8

    10727.65

    11156.84

    11031.92

    11173.88

    12029.69

    12294.01

    12389.15

    12822.99

    13324.31

    13005.06

    9.00E-05

    3381.819

    8103.452

    7721.583

    8017.533

    8450.186

    8984.714

    9013.945

    9386.688

    9336.07

    9987.206

    10166.42

    10282.16

    10486.11

    10940.55

    11312.08

    11630.43

    11940.03

    12206.22

    12483.41

    12746.71

    13603.18

    13341.53

    13723.67

    14164.79

    8.00E-05

    3565.95

    8590.111

    8054.503

    8537.628

    8830.101

    9223.749

    9429.794

    10006.53

    9910.286

    10370.01

    10705.7

    10913.14

    11624.41

    11558.77

    12314.22

    12474.17

    12794.68

    13285.33

    13392.81

    13747.66

    14239.21

    14334.86

    14627.82

    15069.08

    7.00E-05

    3725.186

    9393.518

    8461.538

    9181.452

    9379.437

    9337.613

    10421.36

    10354.9

    11001.84

    11252.77

    11381.25

    11728.87

    12194.73

    12512.37

    12769.56

    13044.42

    13593.27

    14041.14

    14534.64

    14710.97

    15126.15

    15183.9

    15450.38

    15632.75

    6.00E-05

    3902.291

    10110.89

    9198.528

    9740.055

    10056.36

    10608.86

    10682.66

    11087.84

    11739.25

    12161.47

    12721.34

    12915.67

    13252.76

    13764.64

    13771.96

    14229.73

    14580.07

    15235.59

    15556.83

    15645.44

    15919.39

    16150.39

    16255.92

    16431.82

                             

    8.00E-05

    3*3

    8280.965

    9263.935

    11330.61

    12633.43

    13926.37

    15185.44

    16021.58

    16417.08

    16968.12

    17287.1

    17275.55

    17629.21

               

    7.00E-05

    3*3

    8864.809

    10286.09

    11740.79

    13858.94

    15354.01

    16078.22

    16613.04

    17118.74

    17903.97

    18037.79

    18508.5

    18403.27

               

    6.00E-05

    3*3

    9461.895

    11461.08

    12902.63

    15540.71

    17113.66

    17103.62

    17932.74

    18677.93

    18283.78

    18910.44

    19475.59

    19564.79

               

     

    随着卷积核数量的增加迭代次数几乎是线性的增加的,同收敛标准的前提下5*5卷积核的迭代次数是小于3*3卷积核的迭代次数。

     

    比较耗时

     

     

    81*30*2

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    δ

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    耗时 min/199

    1.00E-04

    0.257233

    3.256583

    6.683417

    9.894767

    14.03952

    17.71815

    21.40008

    25.84643

    30.76985

    35.68508

    42.56842

    47.42133

    50.40343

    59.28032

    65.94902

    73.5505

    77.7106

    82.56972

    94.41842

    101.2041

    108.0909

    116.4581

    128.3673

    130.0171

    9.00E-05

    0.263017

    4.2436

    6.922833

    10.62842

    14.70467

    19.34858

    24.12698

    28.96998

    33.26892

    40.79973

    45.09903

    49.50177

    54.84795

    62.08508

    69.35002

    76.81838

    84.11837

    89.8964

    98.0324

    103.803

    117.5944

    120.9146

    134.1112

    142.0814

    8.00E-05

    0.273367

    4.2839

    7.169533

    11.26158

    15.7018

    19.8954

    25.18335

    31.1719

    33.65657

    40.31477

    45.43632

    52.4152

    60.97798

    65.53147

    74.8665

    80.60273

    89.3287

    97.78988

    105.3292

    113.2884

    122.5579

    130.0001

    141.8273

    151.9128

    7.00E-05

    0.280733

    4.6339

    7.503483

    12.05885

    16.59455

    20.77917

    26.49803

    32.49158

    38.69142

    43.58605

    51.27548

    56.43805

    62.65367

    70.79592

    77.52678

    85.3631

    95.72812

    103.4634

    113.9268

    120.5905

    129.7379

    137.6541

    147.6879

    156.7152

    6.00E-05

    0.2923

    2.444317

    8.167717

    12.85368

    17.69805

    23.46423

    28.22688

    32.48458

    40.68138

    47.6168

    54.71102

    60.64322

    69.49622

    78.80173

    84.65203

    93.76728

    102.3604

    110.6264

    122.3967

    128.5009

    137.1837

    145.3612

    153.558

    164.7346

                             

    8.00E-05

    3*3

    1.566383

    3.306883

    6.301367

    7.607283

    9.080433

    16.30447

    20.22028

    21.98902

    25.43633

    30.08465

    32.09258

    37.09115

               

    7.00E-05

    3*3

    1.677167

    3.657083

    6.378717

    10.33212

    14.28748

    17.20495

    19.26532

    24.54062

    28.65433

    31.4023

    35.70178

    38.67048

               

    6.00E-05

    3*3

    1.782067

    4.075683

    5.480233

    11.6074

    15.76265

    17.98672

    21.97478

    26.9867

    29.22455

    33.38313

    37.47727

    41.15603

               

     

    随着迭代次数的增加耗时也在增加,5*5卷积核当n=16时耗时102min/199次,而3*3卷积核当n=4时耗时11.6min/199次。也就是用8.79倍的时间换来性能提成3.5‰

    而5*5卷积核达到3*3卷积核的pave最大值0.9838731只需要3个5*5卷积核就够了,耗时约12.85min/199次。

     

    比较性能最大值pmax

     

     

    81*30*2

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    δ

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    最大值p-max

    1.00E-04

    0.984095

    0.988072

    0.989066

    0.989066

    0.991054

    0.989066

    0.99006

    0.99006

    0.99006

    0.99006

    0.990557

    0.989563

    0.989066

    0.99006

    0.990557

    0.989563

    0.991054

    0.99006

    0.989563

    0.990557

    0.99006

    0.990557

    0.99006

    0.991054

    9.00E-05

    0.985089

    0.987078

    0.990557

    0.991054

    0.990557

    0.99006

    0.99006

    0.99006

    0.99006

    0.990557

    0.990557

    0.989563

    0.989563

    0.991054

    0.99006

    0.99006

    0.991054

    0.991054

    0.990557

    0.99006

    0.990557

    0.99006

    0.990557

    0.991054

    8.00E-05

    0.985089

    0.987078

    0.989563

    0.99006

    0.990557

    0.990557

    0.99006

    0.990557

    0.990557

    0.989563

    0.99006

    0.990557

    0.99006

    0.990557

    0.990557

    0.990557

    0.99006

    0.990557

    0.99006

    0.991054

    0.992048

    0.99006

    0.991054

    0.990557

    7.00E-05

    0.985089

    0.987078

    0.99006

    0.99006

    0.991054

    0.99006

    0.99006

    0.991054

    0.990557

    0.991054

    0.991551

    0.990557

    0.990557

    0.991054

    0.99006

    0.990557

    0.991054

    0.990557

    0.991054

    0.991054

    0.990557

    0.991551

    0.992048

    0.991551

    6.00E-05

    0.985089

    0.988569

    0.99006

    0.992048

    0.992048

    0.991551

    0.990557

    0.991551

    0.990557

    0.991551

    0.990557

    0.992048

    0.991054

    0.990557

    0.991551

    0.991551

    0.991551

    0.990557

    0.991054

    0.991054

    0.992545

    0.991054

    0.991054

    0.990557

                             

    8.00E-05

    3*3

    0.987078

    0.989563

    0.989563

    0.99006

    0.989563

    0.99006

    0.99006

    0.989563

    0.990557

    0.990557

    0.99006

    0.990557

               

    7.00E-05

    3*3

    0.986581

    0.992048

    0.992048

    0.989563

    0.990557

    0.990557

    0.991054

    0.990557

    0.991054

    0.99006

    0.990557

    0.991054

               

    6.00E-05

    3*3

    0.987575

    0.990557

    0.990557

    0.990557

    0.990557

    0.990557

    0.991054

    0.991054

    0.991054

    0.990557

    0.992545

    0.992048

               

    这组数据变化不明显,最大的准确率pmax相差不到2‰,这意味这即便是选择了一个错误的卷积核数量,也差不多有同样大的概率得到相差不多的最优值。

     

    综上所述,本题针对9*9的图片,隐藏层节点30个的二分类网络,5*5的卷积核的性能全面超过3*3的卷积核。5*5卷积核的最优数量是16个,3*3卷积核的最优数量是4个,5*5卷积核的性能优势不小于3.5‰。

    展开全文
  • 自定义卷积核,用numpy完成图像卷积运算,生成对应特征图
  • 1.2 神经网络(多个神经元)的二维矩阵运算模型 第2章 单个卷积核的本质是一个神经元 2.1 卷积核的来源 2.2 卷积核的本质是:三维(长度 * 宽度 * 通道)输入的神经元 2.3 卷积核的直观运算:“积” = 算术乘 + 累加...
  • 什么是卷积核

    千次阅读 多人点赞 2019-11-14 10:44:34
    神经网络中的卷积核是训练出来的,是为了提取图像特征,借鉴了加权求和的特点。 卷积核的本质就是找出图片中和自己相似的部分。 卷积核的空间是对称的。如果存在一个卷积核A,那么一定存在另外一个卷积核B,使得B的...
  • 卷积核基本概念 全连接网络的问题在于参数太多,例如一个尺寸为200×200×3200 \times 200 \times 3200×200×3的图像会让下一层隐藏层中的一个神经元包含200×200×3=120,000200 \times 200 \times 3 = 120,000200...
  • 图像卷积详细解释 常用卷积核解释说明

    千次阅读 多人点赞 2019-10-22 11:33:14
    神经网络中的卷积层,它的原理就来源于图像卷积 概述 卷积在信号处理领域有极其广泛的应用, 也有严格的物理和数学定义. 本文只讨论卷积在数字图像处理中的应用. 在数字图像处理中, 有一种基本的处理方法:线性滤波...
  • 矩阵的卷积核

    2018-09-03 13:47:34
    最近在看图像处理,卷积运算这一块也查了很多,但是感觉都写的太复杂,我这里简单的写一下卷积到底是一个什么计算过程。 假设有一个卷积核h,就一般为3*3的矩阵
  • 卷积核就是图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核。又称滤波器。 同样提取某个特征,经过不同卷积核卷积后...
  • y-1) -4f(x,y) ∇2f=∂2x∂2f​+∂2y∂2f​=f(x+1,y)+f(x−1,y)+f(x,y+1)+f(x,y−1)−4f(x,y) 将上面的式子换一个表达方式,以x, y为坐标中心点,则可以表达为: 将原图像和拉普拉斯图像叠加在一起得锐化卷积核模板...
  • 常用图像卷积核小结

    千次阅读 多人点赞 2020-05-09 10:25:07
    锐化卷积核2.1 简介2.2 示例3. 一阶微分算子3.1 简介3.2 Prewitt算子3.3 Sobel算子3.4 示例4. 二阶微分算子4.1 简介4.2 Laplace算子4.3 LoG算子4.4 DoG算子4.5 示例 0. 前言 图像的卷积或滤波操作在各种场合应用很...
  • 针对卷积神经网络对手写数字识别训练在卷积核随机初始化情况下收敛速度慢和识别率低的问题,提出一种主成分分析(PCA)初始化卷积核的卷积神经网络(CNN)手写数字识别算法。算法首先选取训练样本集并将其送入CNN,...
  • 1、AlexNet中国使用到了一些非常大的卷积核,比如1111,55卷积核,之前人们的观念认为receptive filed感受野越大,看到的图片信息越多,因此获得的特征越好。但另外一个方面大的卷积核会导致计算量的暴增,不利于模型...
  • 卷积核,以及卷积核channel数的理解

    千次阅读 2020-01-15 17:32:06
    每一个卷积核的大小,为长宽深度。长,宽自定义,深度由上一层卷积核的个数或者输入图片的channel数决定。例如:如果上一层就是输入,输入为灰度图像,卷积核的深度为1。输入为rgb图像,卷积核的深度为3。如果上一层...
  • 这个是为博客‘非黑盒矣-卷积神经网络的可视化’匹配的已经训练好的网络。 通过该网络和博文中阐述的代码,从而复现实验。
  • kernel 中的卷积核介绍: 简介 卷积核(kernel),也叫卷积矩阵(convolution matrix)或者掩膜(mask),本质上是一个非常小的矩阵,最常用的是 3×3 矩阵。主要是利用核与图像之间进行卷积运算来实现图像处理,能...
  • 1*1卷积核的作用

    千次阅读 多人点赞 2020-08-13 13:40:55
    如果当前层和下一层都只有一个通道那么1×1卷积核确实没什么作用,但是如果它们分别为m层和n层的话,1×1卷积核可以起到一个跨通道聚合的作用,所以进一步可以起到降维(或者升维)的作用,起到减少参数的目的。...
  • 高斯卷积核C++实现

    2018-07-17 11:10:28
    高斯卷积核模板的C++代码实现,及高斯滤波的介绍和高斯公式分析。
  • 卷积核就是图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核。 二、卷积核概述 卷积核其实在图像处理中并不是新事物,...
  • 单通道图像的卷积计算过程 下面各图中所有数学符号的说明如下: n:图片的宽度和高度 n_c:表示图片的通道数 f: 过滤器的尺寸大小 m: 过滤器的数量 Q: 卷积运算后的输出图像的尺寸大小 p:所要填充的像素值,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 96,278
精华内容 38,511
关键字:

卷积核