详细解释CNN卷积神经网络各层的参数和连接个数的计算

详细解释CNN卷积神经网络各层的参数和连接个数的计算

2023年7月29日发(作者:)

详细解释CNN卷积神经⽹络各层的参数和连接个数的计算积神经⽹络是⼀个多层的神经⽹络,每层由多个⼆维平⾯组成,⽽每个平⾯由多个独⽴神经元组成。 图:卷积神经⽹络的概念⽰范:输⼊图像通过和三个可训练的滤波器和可加偏置进⾏卷积,滤波过程如图⼀,卷积后在C1层产⽣三个特征映射图,然后特征映射图中每组的四个像素再进⾏求和,加权值,加偏置,通过⼀个Sigmoid函数得到三个S2层的特征映射图。这些映射图再进过滤波得到C3层。这个层级结构再和S2⼀样产⽣S4。最终,这些像素值被光栅化,并连接成⼀个向量输⼊到传统的神经⽹络,得到输出。 每个层有多个Feature Map,每个Feature Map通过⼀种卷积滤波器提取输⼊的⼀种特征,然后每个Feature Map有多个神经元。 CNN⼀个⽜逼的地⽅就在于通过感受野和权值共享减少了神经⽹络需要训练的参数的个数,所谓权值共享就是同⼀个Feature Map中神经元权值共享,该Feature Map中的所有神经元使⽤同⼀个权值。因此参数个数与神经元的个数⽆关,只与卷积核的⼤⼩及FeatureMap的个数相关。但是共有多少个连接个数就与神经元的个数相关了,神经元的个数也就是特征图的⼤⼩。 下⾯以最经典的LeNet-5例⼦来逐层分析各层的参数及连接个数。

C1层是⼀个卷积层,由6个特征图Feature Map构成。特征图中每个神经元与输⼊为5*5的邻域相连。特征图的⼤⼩为28*28,这样能防⽌输⼊的连接掉到边界之外(32-5+1=28)。C1有156个可训练参数(每个滤波器5*5=25个unit参数和⼀个bias参数,⼀共6个滤波器,共(5*5+1)*6=156个参数),共156*(28*28)=122,304个连接。 S2层是⼀个下采样层,有6个14*14的特征图。特征图中的每个单元与C1中相对应特征图的2*2邻域相连接。S2层每个单元的4个输⼊相加,乘以⼀个可训练参数,再加上⼀个可训练偏置。每个单元的2*2感受野并不重叠,因此S2中每个特征图的⼤⼩是C1中特征图⼤⼩的1/4(⾏和列各1/2)。S2层有12(6*(1+1)=12)个可训练参数和5880(14*14*(2*2+1)*6=5880)个连接。 C3层也是⼀个卷积层,它同样通过5x5的卷积核去卷积层S2,然后得到的特征map就只有10x10个神经元,但是它有16种不同的卷积核,所以就存在16个特征map了。 C3中每个特征图由S2中所有6个或者⼏个特征map组合⽽成。为什么不把S2中的每个特征图连接到每个C3的特征图呢?原因有2点。第⼀,不完全的连接机制将连接的数量保持在合理的范围内。第⼆,也是最重要的,其破坏了⽹络的对称性。由于不同的特征图有不同的输⼊,所以迫使他们抽取不同的特征(希望是互补的)。 例如,存在的⼀个⽅式是:C3的前6个特征图以S2中3个相邻的特征图⼦集为输⼊。接下来6个特征图以S2中4个相邻特征图⼦集为输⼊。然后的3个以不相邻的4个特征图⼦集为输⼊。最后⼀个将S2中所有特征图为输⼊。这样C3层有1516(6*(3*25+1)+6*(4*25+1)+3*(4*25+1)+(25*6+1)=1516)个可训练参数和151600(10*10*1516=151600)个连接。 S4层是⼀个下采样层,由16个5*5⼤⼩的特征图构成。特征图中的每个单元与C3中相应特征图的2*2邻域相连接,跟C1和S2之间的连接⼀样。S4层有32个可训练参数(每个特征图1个因⼦和⼀个偏置16*(1+1)=32)和2000(16*(2*2+1)*5*5=2000)个连接。 C5层是⼀个卷积层,有120个特征图。每个单元与S4层的全部16个单元的5*5邻域相连。由于S4层特征图的⼤⼩也为5*5(同滤波器⼀样),故C5特征图的⼤⼩为1*1(5-5+1=1):这构成了S4和C5之间的全连接。之所以仍将C5标⽰为卷积层⽽⾮全相联层,是因为如果LeNet-5的输⼊变⼤,⽽其他的保持不变,那么此时特征图的维数就会⽐1*1⼤。C5层有48120(120*(16*5*5+1)=48120由于与全部16个单元相连,故只加⼀个偏置)个可训练连接。 F6层有84个单元(之所以选这个数字的原因来⾃于输出层的设计),与C5层全相连。有10164(84*(120*(1*1)+1)=10164)个可训练参数。如同经典神经⽹络,F6层计算输⼊向量和权重向量之间的点积,再加上⼀个偏置。然后将其传递给sigmoid函数产⽣单元i的⼀个状态。 最后,输出层由欧式径向基函数(Euclidean Radial Basis Function)单元组成,每类⼀个单元,每个有84个输⼊。

图:卷积和⼦采样过程:卷积过程包括:⽤⼀个可训练的滤波器fx去卷积⼀个输⼊的图像(第⼀阶段是输⼊的图像,后⾯的阶段就是卷积特征map了),然后加⼀个偏置bx,得到卷积层Cx。⼦采样过程包括:每邻域四个像素求和变为⼀个像素,然后通过标量Wx+1加权,再增加偏置bx+1,然后通过⼀个sigmoid激活函数,产⽣⼀个⼤概缩⼩四倍的特征映射图Sx+1。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1690612345a379136.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信