zoukankan      html  css  js  c++  java
  • LeNet-5网络结构及训练参数计算

    经典神经网络诞生记:

    •       1、LeNet,1998年
    •   2、AlexNet,2012年
    •   3、ZF-net,2013年
    •   4、GoogleNet,2014年
    •   5、VGG,2014年
    •   6、ResNet,2015年

    LeNet-5

    LeNet-5是由 Yann LeCun 等人于1998年提出的,是一个用于识别手写数字的网络,其网络结构图如下所示:




    LeNet-5的输入是 32×32 的灰度图像,只有一个通道。网络结构包括两组卷积层+池化层的组合,两个全连接层,输出是 84×1维的向量,再通过一个特定的分类器得到预测值。前期LeNet-5 中的池化都是平均池化,而现在通常会使用最大池化。另外现在通常会使用 Softmax 来得到 10 路输出作为预测。

    在 LeNet-5 中,随着网络的深入,数据的高度和宽度逐渐缩小,通道数逐渐增加。LeNet-5 是一个很小的网络,只有约 6 万个参数,现代的神经网络经常有上千万甚至上亿个参数。

    LeNet-5共有7层,不包含输入层,每层都包含可训练参数(连接权重)。输入图像为32*32大小。这要比Mnist数据库中最大的字母(28*28)还大。这样做的原因是希望潜在的明显特征如笔画端点或角点能够出现在最高层特征监测器感受野的中心。在LeNet-5中,最后一层卷积层的感受野的中心在32x32的输入图像中形成了一个20x20的区域,输入像素值被归一化了,这样背景(白色)对应-0.1,前景(黑色)对应1.175.这使得输入的均值约等于0,方差约等于1,这样能够加速学习。

    LeNet-5网络跟现在的网络结构相似,在一些处理方式上有区别:

    • LeNet-5使用Sigmoid和Tanh函数来获取非线性输出,现在常使用的非线性函数是ReLU;
    • LeNet-5是在池化层之后引入了非线性,现在一般是在卷积层后通过激活函数获取非线性,在池化层后不再引入非线性;


    训练参数计算:


    C1层

    属性:卷积层 卷积核大小 5*5

    输入:32*32

    输出特征图大小:28*28 (32-5+1)

    卷积核种类(特征图个数): 6

    神经元数量: 28*28*6

    可训练参数: 6*(5*5+1)(6个特征图,每个特征图含一个滤波器5*5个参数,和一个偏置参数)

    连接数: 6*(5*5+1)*28*28


    S2层

    属性:下采样层 采样区域大小 2*2

    采样方式: 2*2区域的4个值相加,乘以一个可训练参数,再加上一个偏置参数,结果通过Sigmoid非线性化

    输出特征图大小: 14*14

    采样种类(特征图个数): 6

    神经元数量: 6*14*14

    可训练参数: 6*(1+1)(采样的权重+一个偏置参数)

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


    C3层

    属性: 卷积层 卷积核大小 5*5

    输出特征图大小: 10*10

    卷积核种类(特征图个数): 16

    可训练参数:C3跟S2并不是全连接的,具体连接方式是: C3的前6个特征图以S2中3个相邻的特征图子集为输入。接下来6个特征图以S2中4个相邻特征图子集为输入。然后的3个以不相邻的4个特征图子集为输入。最后一个将S2中所有特征图为输入,对应如下:


    这样算,可训练参数 = 6*(3*5*5+1)+6*(4*5*5+1)+3*(4*5*5+1)+1*(6*5*5+1)=1516

    连接数:10*10*1516


    S4层

    属性:下采样层 采样区域大小 2*2

    采样方式: 2*2区域的4个值相加,乘以一个可训练参数,再加上一个偏置参数,结果通过Sigmoid非线性化

    输出特征图大小: 5*5

    采样种类(特征图个数): 16

    神经元数量: 16*5*5

    可训练参数: 16*(1+1)(采样的权重+一个偏置参数)

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


    C5层

    属性:卷积层 卷积核大小 5*5

    输入:5*5

    输出特征图大小:1*1 (5-5+1)

    卷积核种类(特征图个数): 120

    神经元数量: 120*1

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

    连接数: 120*(5*5*16+1)=48120


    F6

    属性: 全连接层

    输入: 120维的向量

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

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


    Gaussian Connections

    LeNet-5最后一步是Gaussian Connections,采用了RBF函数(即径向欧式距离函数),计算输入向量和参数向量之间的欧式距离。目前已经被Softmax取代。


  • 相关阅读:
    201521044091《Java程序设计》第7周学习总结
    201521044091《java程序设计》第四次总结
    201521044091 《java程序设计》第八周学习总结
    201521044091 《Java程序设计》第5周学习总结
    201521044091 《Java程序设计》第2周学习总结
    201521044091 《Java程序设计》第3周学习总结
    MySQL设置字符集CHARACTER SET
    Create My MySQL configuration by Percona
    How to use jQuery to manipulate Cookies
    How to use OpenXml to import xml data to Sql server
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9411751.html
Copyright © 2011-2022 走看看