首页 > 编程知识 正文

huffman算法,resnet分类

时间:2023-05-05 22:29:25 阅读:50485 作者:3871

LeNet-5是一种比较简单的卷积神经网络。 下图显示输入的二维图像经过两次卷积层到池化层,然后经过整个连接层,最后使用softmax分类作为输出层。 有关CNN的信息,请参见https://blog.csdn.net/QQ _ 42570457/article/details/81458077

虽然网络LeNet-5很小,但它包含深度学习的基本模块:卷积层、池化层和全连接层。 是其他深度学习模式的基础。 这里详细分析LeNet-5。 同时,通过实例分析,加深对卷积层和池化层的理解。

LeNet-5共有有7层,不含输入,每层含可训练参数; 每层有多个Feature Map,每个FeatureMap用卷积滤波器提取输入特征,每个FeatureMap用多个神经元。

各层参数详解:

1、输入层-输入层首先是数据输入层,输入图像的尺寸一律归一化为32*32。

注意:本层不算LeNet-5的网络结构,传统上,不将输入层视为网络层次结构之一。

2、C1层-卷积层输入图像: 32*32

卷积核大小:5*5

卷积核的种类: 6

输出功率图大小: 28*28(32-51 )=28

神经元数量: 28*28*6

可训练参数: (5*5 1 )6)每个过滤器5*5=25个unit参数和1个bias参数的总计6个过滤器() ) ) ) ) ) ) )。

连接数: (5*5 1 ) *6*28*28=122304

详细说明:对输入图像进行第一次卷积运算(使用6个大小为5*5的卷积内核),得到6个C1特征图)大小为28*28的feature maps,32-5 )1=28 看看需要多少参数。 卷积核的大小为5*5,共有6*(5*51 )=156个参数。 其中1表示一个核有一个bias。 对于卷积层C1,由于C1中的像素连接到输入图像中的5*5像素和一个bias,因此总共有156*28*28=122304个连接。 有122304个连接,但只需学习156个参数,主要通过权重共享来实现。

3、S2层-池层(下采样层)输入: 28*28

采样区域:2*2

采样方式:加4个输入,乘以一个可训练参数,加上一个可训练偏移量。 结果是通过sigmoid

采样种类: 6

输出功能图大小: 14*14(28/2 )

神经元数量: 14*14*6

可训练参数:2*6(和的权利偏差) ) ) )。

连接数: (2*2 1 ) *6*14*14

S2中的各个特征图的大小是C1中的特征图的大小的1/4。

详细说明:次卷积后立即进行池运算,使用2*2核进行池化,得到s2、6个14*14的特征图(s2这个轮询层,C1中的2 * ) 然后,每个池化核有两个训练参数,因此共有2x6=12个训练参数,但有5x14x14x6=5880个连接。

4、C3层-卷积层输入: S2中所有6个或几个特征映射的组合

卷积核大小:5*5

卷积核的种类: 16

输出功能图大小: 10*10(14-51 )=10

c-3的每个特征map连接到S2的所有六个或若干特征map,表示基本层特征map是在上层提取的特征map的不同组合。

一种方式是C3的前六个特征图试图输入S2中的三个相邻特征图的子集。 接下来的六个特征图输入S2中的四个相邻特征图的子集。 然后,3个以不相邻的4个特征图的子集为输入。 最后,将S2的所有特征图作为输入。 (可训练参数(6) (5*5)1)6) ) )5*1) ) )4*5)5)1)=1516

连接数: 10*10*1516=151600

详细说明:第一次池化后进行第二次卷积,第二次卷积的输出是C3,16个10x10的特征图,卷积核大小为5*5。 我们知道S2有6个14*14的特征图,如何从6个特征图中得到16个特征图

? 这里是通过对S2 的特征图特殊组合计算得到的16个特征图。具体如下:

       C3的前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个连接。

        C3与S2中前3个图相连的卷积结构如下图所示:

       上图对应的参数为 3*5*5+1,一共进行6次卷积得到6个特征图,所以有6*(3*5*5+1)参数。 为什么采用上述这样的组合了?论文中说有两个原因:1)减少参数,2)这种不对称的组合连接的方式有利于提取多种组合特征。

5、S4层-池化层(下采样层)

       输入:10*10

       采样区域:2*2

      采样方式:4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。结果通过sigmoid

      采样种类:16

      输出featureMap大小:5*5(10/2)

      神经元数量:5*5*16=400

      可训练参数:2*16=32(和的权+偏置)

      连接数:16*(2*2+1)*5*5=2000

      S4中每个特征图的大小是C3中特征图大小的1/4

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

6、C5层-卷积层

     输入:S4层的全部16个单元特征map(与s4全相连)

     卷积核大小:5*5

     卷积核种类:120

     输出featureMap大小:1*1(5-5+1)

     可训练参数/连接:120*(16*5*5+1)=48120

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

7、F6层-全连接层

      输入:c5 120维向量

      计算方式:计算输入向量和权重向量之间的点积,再加上一个偏置,结果通过sigmoid函数输出。

      可训练参数:84*(120+1)=10164

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

     F6层的连接方式如下:

8、Output层-全连接层

       Output层也是全连接层,共有10个节点,分别代表数字0到9,且如果节点i的值为0,则网络识别的结果是数字i。采用的是径向基函数(RBF)的网络连接方式。假设x是上一层的输入,y是RBF的输出,则RBF输出的计算方式是:

     上式w_ij 的值由i的比特图编码确定,i从0到9,j取值从0到7*12-1。RBF输出的值越接近于0,则越接近于i,即越接近于i的ASCII编码图,表示当前网络输入的识别结果是字符i。该层有84x10=840个参数和连接。

上图是LeNet-5识别数字3的过程。

总结 LeNet-5是一种用于手写体字符识别的非常高效的卷积神经网络。卷积神经网络能够很好的利用图像的结构信息。卷积层的参数较少,这也是由卷积层的主要特性即局部连接和共享权重所决定。

 参考:http://cuijiahua.com/blog/2018/01/dl_3.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。