为什么CNN中的卷积核一般都是奇数*奇数,没有偶数*偶数的

为什么CNN中的卷积核一般都是奇数*奇数,没有偶数*偶数的,第1张

这个你具体可以参考下矩阵卷积的性质。一般来说,矩阵卷积会以卷积核模块的一个部分为基准进行滑动,一般cnn中的卷积核是方形的,为了统一标准,会用卷积核模块中心为基准进行滑动,从被卷积矩阵第一个框按一定布长从左到右从上到下进行滑动,最后滑动到被积矩阵最后一块。所以卷积核一般为奇数,主要是方便以模块中心为标准进行滑动卷积。

晚上好,今天研究一下在卷积神经网络中,如何计算多通道输入的参数数量问题。
       具体是这样的:假如现在要识别一张RGB的彩色,那么,它就是一个多通道输入了,请看:
 最左边的是一个32x32x3的图像输入,其中3就代表有三个通道,那么对应的,它的每个卷积核就有3个通道,假设每个通道上的卷积核是5x5大小的,所以,每个卷积核就是:5x5x3,需要注意的是,不同通道上的卷积核的参数
是不共享的!
      在本例中,具体算法就是:使用卷积核的三个通道与对应的输入图像数据的三个通道分别做内积,最后对应的数相加,得到输出数据28x28x1,也就是说:每个卷积核(不管它包含多少个通道)可以输出一个单通道的输出神经元!  
再多总结一下:卷积核的物理含义就是用来提取某种特征的,则多个卷积核就能提取多种特征。
     有了上面这些理论知识,下面的问题就很好算了,题目是:输入三通道,输出192通道,卷积核大小是3x3,问该卷积层有多少参数?
    分析一下:输入通道有三个,所以每个卷积核的通道也有三个(各个通道上的参数不共享),输出通道有192个,所以,一共有192个卷积核,那么,由这些卷积核计算得到的卷积层的参数有:(3(33))192=5184个。
 真TMD费劲,加油吧,少年!

我们在用keras进行神经网络建模后,打印模型的摘要(print(modelsummary))会出现每一层参数的个数,很多初学者可能会对参数个数怎么计算的非常困惑,本文将由浅至深的讲解卷积神经网络各层参数的计算方法,对卷积神经网络结构还不了解的同学请自行百度了解。
1什么是卷积神经网络的参数
我们都知道神经网络是一个前向传播和反向优化的过程,这个优化过程其实优化的是层与层之间的连接权重w和权重b。其实每一层连接都可以简单的抽象为:W X+b=Y
其中X为输入,Y为预测值,都可以作为训练数据输入,因此是我们已知的。在整个过程中未知的就是W和b了也是需要通过训练得到的参数。
卷积神经网络的参数因为卷积网络的特性而稍微有些特殊,但整体来讲还是对权重W和偏置b的拟合。
2卷积层参数个数计算
卷积层是通过卷积核对原始输入进行扫描,然后获得具有局部特征的输出,预测准确性与卷积核的设置有重要关系,因此卷积核就是我们需要拟合的参数,至于参数个数怎么计算,需要细致的进行分解。
(1)卷积核个数
通常用一个卷积核无法获得输入的全部信息,因此通常会设置多个卷积核,每个卷积核都是独立的,计算方式完全一致。每个卷积核对原始输入进行处理后都会生成一个feature_map,因此卷积核的个数和feature_map的个数其实是相同的。
(2)卷积核大小
在二维神经网络中(即图像处理的常用卷积神经网络模式),通常用正方形的卷积核对原始输入进行卷积,常用的有3 3,5 5,7 7等。
(3)原始图像通道数
通道数的不同会影响子卷积核的个数,比如有是三个通道的图像,每一个通道都需要用卷积核进行处理,但卷积核的参数其实是不同的,最终对所有通道进行加和加上一个偏置就是我们最终得到的feature_map,因此参数个数实际变为3 3 3+1。其中1代表偏置,在所有通道中是共享的。
(4)最终参数个数
用卷积核个数乘上卷积核大小,其实就是最终的参数个数,本文为2 (3 3 3+1)。2代表卷积核的个数,第一个3代表通道数,第二个3和第三个3代表卷积核大小,1代表偏置。
3池化层参数个数计算
池化层为根据池化层大小确定保留值,可以理解为对feature_map的降维,其中不涉及参数的计算。
4全连接层参数个数计算
全连接层首先对池化层输出的数据进行flattern处理,即400 30转换为12000 1,假设输出为12维的,那么参数个数为12000 12+12,加号后边的12代表每个全连接层后都跟一个偏置b。
5总结
无论是一维、二维还是三维卷积神经网络的哪一层参数计算,都可以用卷积层参数计算的思路解决,首先确定卷积核大小,其次确定卷积核个数,最终确定图像输入的通道数。这几个东西确定后,再求解参数就十分简单了。
本篇文章假设你已经十分了解卷积神经网络的基础知识,因此没有相关的图解,只是介绍了参数确定的思路,希望对大家有所启发。

(1)现象:

        (1-1)一次性将batch数量个样本feed神经网络,进行前向传播;然后再进行权重的调整,这样的一整个过程叫做一个回合(epoch),也即一个batch大小样本的全过程就是一次迭代。

        (1-2)将训练数据分块,做成批(batch training)训练可以将多个训练数据元的loss function求和,使用梯度下降法,最小化 求和后的loss function ,进而对神经网络的参数进行优化更新

(2)一次迭代:包括前向传播计算输出向量、输出向量与label的loss计算和后向传播求loss对权重向量 w 导数(梯度下降法计算),并实现权重向量 w 的更新。

(3)优点:

        (a)对梯度向量(代价函数对权值向量 w 的导数)的精确估计,保证以最快的速度下降到局部极小值的收敛性;一个batch一次梯度下降;

        (b)学习过程的并行运行;

        (c)更加接近随机梯度下降的算法效果;

        (d)Batch Normalization 使用同批次的统计平均和偏差对数据进行正则化,加速训练,有时可提高正确率 [7]

(4)现实工程问题:存在计算机存储问题,一次加载的batch大小受到内存的影响;

(5)batch参数选择:

        (5-1)从收敛速度的角度来说,小批量的样本集合是最优的,也就是我们所说的mini-batch,这时的batch size往往从几十到几百不等,但一般不会超过几千

        (5-2)GPU对2的幂次的batch可以发挥更佳的性能,因此设置成16、32、64、128时往往要比设置为整10、整100的倍数时表现更优

    (6)4种加速批梯度下降的方法 [8] :

        (6-1)使用动量-使用权重的 速度 而非 位置 来改变权重。

        (6-2)针对不同权重参数使用不同学习率。

        (6-3)RMSProp-这是Prop 的均方根 ( Mean Square ) 改进形式,Rprop 仅仅使用梯度的符号,RMSProp 是其针对 Mini-batches 的平均化版本

        (6-4)利用曲率信息的最优化方法。

(1)定义:运用梯度下降算法优化loss成本函数时,权重向量的更新规则中,在梯度项前会乘以一个系数,这个系数就叫学习速率η

(2)效果:

        (2-1)学习率η越小,每次迭代权值向量变化小,学习速度慢,轨迹在权值空间中较光滑,收敛慢;

        (2-2)学习率η越大,每次迭代权值向量变化大,学习速度快,但是有可能使变化处于震荡中,无法收敛;

    (3)处理方法:

        (3-1)既要加快学习速度又要保持稳定的方法修改delta法则,即添加动量项。

    (4)选择经验:

        (4-1)基于经验的手动调整。 通过尝试不同的固定学习率,如01, 001, 0001等,观察迭代次数和loss的变化关系,找到loss下降最快关系对应的学习率。

        (4-2)基于策略的调整。

                (4-2-1)fixed 、exponential、polynomial

                (4-2-2)自适应动态调整。adadelta、adagrad、ftrl、momentum、rmsprop、sgd

    (5)学习率η的调整:学习速率在学习过程中实现自适应调整(一般是衰减)

        (5-1)非自适应学习速率可能不是最佳的。

        (5-2)动量是一种自适应学习速率方法的参数,允许沿浅方向使用较高的速度,同时沿陡峭方向降低速度前进

        (5-3)降低学习速率是必要的,因为在训练过程中,较高学习速率很可能陷入局部最小值。
参考文献:

[1]  Simon Haykin 神经网络与机器学习[M] 机械工业出版社, 2011

[2]   训练神经网络时如何确定batch的大小?

[3]   学习笔记:Batch Size 对深度神经网络预言能力的影响  

[4]   机器学习算法中如何选取超参数:学习速率、正则项系数、minibatch size  >network in network 这篇文章提出可以用11的卷积层代替全连接层,一开始很懵逼。后来看到一篇博客解释很清楚。
原文 >特征图谱的关键参数是特征图谱的大小,卷积核的大小,步长。
1、特征图谱的大小:特征图谱的大小是指特征图谱的行数和列数,也就是矩阵的维度,特征图谱的大小决定了卷积核的大小和数量,进而影响模型的性能和效率。
2、卷积核的大小:卷积核的大小是指卷积窗口的大小,也就是在特征图谱上进行卷积的区域大小,卷积核的大小决定了特征提取的粒度和数量,进而影响模型的准确性和泛化能力。
3、步长:步长是指卷积窗口每次在特征图谱上移动的距离,也就是卷积核每次跳过的像素数,步长的大小决定了特征图谱的大小和卷积 *** 作的次数,进而影响模型的计算速度和效率。

一个nn的卷积核有n^2个参数,对应于nn个权重和nn个偏差。每个参数都需要被训练,以最大程度的减少损失函数的值。卷积核的大小(n)是可以根据实际情况调整的,可以通过改变n的值来调整模型的复杂度,也可以改变模型的宽度和深度。

>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10554776.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存