【典型网络模型】LeNet5 模型

       早在 1998 年,LeCun 等人就将卷积神经网络和工业相结合,将其发明的LeNet-5 网络广泛应用于当时美国大多数银行当中,用于识别支票上的手写数字。以输入层作为开端,中间掺杂了多个卷积层和池化层的组合,然后是若干个全连接层,最后是输出层,这是卷积神经网络最常见的网络结构。LeNet-5 是这种结构的代表,如下图:


       (0)INPUT层, LeNet-5 网络输入采用分辨率为 32*32 的图片。

       (1)C1层,参数为:卷积核(同时也被称为滤波器filter)个数为6,kernel size(卷积核大小)5x5,stride(步长)为1,padding(填充)为0,卷积后得到的feature maps边长的计算公式是: 

                                               output_h =(originalSize_h-kernelSize_h+2*padding)/stride +1 

       所以,卷积层的feature map的边长为:conv1_h=(32-5+2*0)/1 + 1 = 28 ,卷积层的feature maps尺寸为28*28. 由于同一卷积核共享参数,故C1层需要训练包括偏置和卷积核在内的(5*5+1)*6=156个参数(1表示偏置b),对于卷积层C1,C1的每个像素都与输入图像中的5*5个像素和1个bias有连接,所以总共有156*28*28=122304个连接(connection)。有122304个连接,但是我们只需要学习156个参数,主要是通过权值共享实现的。通过卷积运算,使得原始信号特征增强,并且降低噪音,而且不同卷积核可以提取图像中的不同特征,这些特征可能是人类可以理解的的,比如纹理、颜色等,也可能是无法理解的特征。

      (2)S2层,卷积层之后是pooling层,也叫下采样层。它是利用图像局部相关性的原理,对图像进行子抽样,这样在保留有用信息的同时可以减少网络训练参数及模型的过拟合程度。pooling层不会减少feature maps的数量,只会缩减其尺寸。常用的pooling方法有两种,一种是取最大值,一种是取平均值。S2中的每个点对应C1中2*2的区域(也叫感受野),也就是说kernelSize=2,stride=2,所以pool1_h = (onv1_h - kernelSize_h)/stride +1 = (28-2)/2+1=14。pooling后的feature map尺寸为14*14。S2这个pooling层是对C1中的2*2区域内的像素求和乘以一个权值系数w再加上一个偏置b,然后将这个结果再做一次映射(sigmoid)。于是每个池化核有两个训练参数,所以共有2x6=12个训练参数,但是有(2*2+1)x14x14x6=5880个连接。

    (3)C3层,第一次池化之后是第二次卷积,第二次卷积的输出是16个10x10的特征图,卷积核大小是 5*5. 我们知道S2 有6个 14*14 的特征图,怎么从6 个特征图得到 16个特征图了? 这里是通过对S2 的特征图特殊组合计算得到的16个特征图,具体如下: 

                                                   

        前6个feature map(对应上图第一个红框的6列)与S2层相连的3个feature map组合的得到(上图第一个红框),后面6个feature map与S2层相连的4个feature map组合的得到(上图第二个红框),,后面3个feature map与S2层部分不相连的4个feature map组合的得到,最后一个与S2层的所有feature map相连。卷积核大小依然为5*5,所以总共有6*(3*5*5+1)+6*(4*5*5+1)+3*(4*5*5+1)+1*(6*5*5+1)=1516个参数。而图像大小为10*10,所以共有151600个连接。 

扫描二维码关注公众号,回复: 955982 查看本文章

   (4)S4层, S4是pooling层,窗口大小仍然是2*2,共计16个feature map,C3层的16个10x10的图分别进行以2x2为单位的池化得到16个5x5的特征图。这一层有2x16共32个训练参数,5x5x5x16=2000个连接。连接的方式与S2层类似。

   (5)C5层,C5层是一个卷积层。由于S4层的16个图的大小为5x5,与卷积核的大小相同,所以卷积后形成的图的大小为1x1。这里形成120个卷积结果。每个都与上一层的16个图相连。所以共有(5x5x16+1)x120 = 48120个参数,同样有48120个连接。

    (6)F6层,F6层是全连接层。F6层有84个节点,对应于一个7x12的比特图,-1表示白色,1表示黑色,这样每个符号的比特图的黑白色就对应于一个编码。该层的训练参数和连接数是(120 + 1)x84=10164

     (7)output层,Output层也是全连接层,共有10个节点,分别代表数字0到9,且如果节点i的值为0,则网络识别的结果是数字i。采用的是径向基函数(RBF)的网络连接方式

   


                                                    

猜你喜欢

转载自blog.csdn.net/u012101561/article/details/79936234