神经网络:LeNet-5解析

一: 卷积神经网络(CNN: Convolutional Neural Network)

       CNN是由一个或多个卷积层和顶端的全连通层组成,同时也包括关联权重和池化层等。下图就是一个经典的神经网络。

       卷积层:卷积层是卷积神经网络的核心层,而卷积(Convoltuion)是卷积层的核心。卷积运算就是用卷积分别乘以输入张量中的每一个元素,然后输出一个代表每个输入信息的张量。其中卷积核(Kernel) 又被称为权重过滤器,简称为过滤器(Fliter)。

 

       卷积计算公式:

  • H:图片高度
  • W:  图片宽度
  • D:原始图片通道数,也是卷积核个数
  • F: 卷积核高宽大小,一般取1*1,3*3,5*5,7*7等
  • P:图像边填充大小或者零填充
  • S:滑动步长

      则经过本层卷积运算后的输出即下一层的输入为:

  • H1 = ( H-F+2P ) / S +1
  • W1= ( W-F+2P ) / S +1
  • D1 = F

       池化层:池化(Pooling)又称下采样(Subsampling)。池化层在CNN中可用来减少尺寸、提高运算速度及减少噪声影响,让葛特征更具有健壮性。通常在卷积层的后面会加上一个池化层。池化的方式通常有三种:最大池化(MaxPooling);均值池化(MeanPooling);随机/概率池化。下图为最大池化示例:

Max Pooling

      激活函数:(Activation Function)就是对神经网络中某一部分神经元的非线性运算,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。激活函数一般要求可微,且不改变输入数据的维度。常见的激活函数有:Sigmoid函数、tanh函数、relu函数、softplus函数、dropout函数等。

       代价函数:代价函数是神经网络模型的效果评估及优化的目标函数,常用于监督学习中关于分类模型和回归模型中迭代优化。分类问题中常用交叉熵(cross_entropy)算法,回归问题常用误差评估(mean_squared_error)算法。

 

二 :CNN 之 LeNet-5 模型

         CNN 模型有很多变种,LeNet-5 模型就是比较有代表性的模型。

         LeNet-5 模型结构为输入层--卷积层--池化层--卷积层--池化层--全连接层--全连接层--输出层,为串联模型。如下图所示:

       各层参数详解:

       1. INPUT 输入层:

           图像数据归一化为 32*32 尺寸

       2. C1层-卷积层:

 

C1层-卷积层参数
输入图片32*32 
卷积核大小5*5 
卷积核数量(种类)6 
输出FeatureMap28*28计算公式:H1 = ( H-F+2P ) / S +1
神经元数量28*28*6 
可训练参数(5*5+1)*6=156每个卷积核5*5=25个参数和一个bias参数,一共6个卷积核
全连接数(5*5+1)*6*28*28=122304 

      3. S2层-池化层

S2层-池化层参数
输入28*28 
采样大小2*2 
采样方式 4个输入相加,乘以一个可训练参数,再加上一个可训练偏置,结果通再过sigmoid函数。
采样种类6 
输出FeatureMap14*14 
神经元数量14*14*6 
全连接数(2*2+1)*14*14*6=5880 

      4. C3层-卷积层

C3层-卷积层参数
输入S2中所有6个或者几个特征map组合 
卷积核大小5*5 
卷积核数量(种类)16 
输出FeatureMap10*10

H1 = ( H-F+2P ) / S +1

神经元数量10*10*16 
可训练参数

6*(3*5*5+1)

+6*(4*5*5+1)

+3*(4*5*5+1)

+1*(6*5*5+1)=1516

C3的前6个特征图以S2中3个相邻的特征图子集为输入;接下来6个特征图以S2中4个相邻特征图子集为输入;然后的3个以不相邻的4个特征图子集为输入;最后一个将S2中所有特征图为输入
全连接数10*10*1516=151600 

           5. S4层-池化层

S4层-池化层参数
输入10*10 
采样大小2*2 
采样方式 4个输入相加,乘以一个可训练参数,再加上一个可训练偏置,结果通再过sigmoid函数。
采样种类16 
输出FeatureMap5*5 
神经元数量5*5*16=400 
全连接数(2*2+1)*5*5*16=2000 

            6. C5层-卷积层

C5层-卷积层参数
输入S4层的全部16个FeatureMap(与s4全相连) 
卷积核大小5*5 
卷积核数量(种类)120 
输出FeatureMap1*1

H1 = ( H-F+2P ) / S +1

神经元数量1*1*120 
可训练参数(5*5*16+1)*120=48120 
全连接数(5*5*16+1)*120=48120 

          7.F6层-全连接层

F6层-全连接层参数
输入C5层输出的 1*1*120 向量 
计算方式 计算输入向量和权重向量之间的点积,再加上一个偏置,结果通过sigmoid函数输出。
可训练参数(1*1*120+1)*84=10164F6层有84个节点,对应于一个7x12的比特图,-1表示白色,1表示黑色,这样每个符号的比特图的黑白色就对应于一个编码

          8. OUTPUT层-全连接层

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

          该层有84x10=840个参数和连接。

 

         LeNet-5 神经网络总结:

         LeNet5 这个网络虽然很小,但是它包含了深度学习的基本模块:卷积层,池化层,全连接层,是其他深度学习模型的基础。

 

 三 :参考链接

https://cuijiahua.com/blog/2018/01/dl_3.html

https://blog.csdn.net/XJY104165/article/details/78218057

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值