深度学习介绍(三)LeNet

卷积神经网络
卷积神经网络(CNNs)是人工神经网络的一种,已成为当前语音分析和图像识别领域的研究热点。卷积网络是为识别二维形状而特殊设计的一种多层感知器,这种网络结构对平移、比例缩放、倾斜或者其它形式的变形具有高度不变性。
CNNs是第一个真正成功训练多层网络结构的学习算法。它利用空间关系减少需要学习的参数数目以提高BP算法的训练性能。CNNs作为一个深度学习架构提出是为了最小化数据的预处理要求。那么如何利用空间关系减少学习的参数数目呢?接下来我们先介绍下CNNs的整体结构,然后再具体说CNNs是如何利用空间结构减少需要学习的参数数目的。
在此之前需要先说明以下几点:
每个层有多个Feature Map,每个Feature Map通过一种卷积滤波器提取输入的一种特征,然后每个Feature Map有多个神经元;
为什么是卷积运算?卷积运算一个重要的特点就是,通过卷积运算,可以使原信号特征增强,并且降低噪音。
为什么要采用下采样?利用图像局部相关性的原理,对图像进行子抽样,可以减少数据处理量同时保留有用信息。
以LeNet-5为例:
这里写图片描述
不包含输入层,LeNet-5共有7层。输入图像为32*32大小的图片。
经过6个滤波器(filter)进行卷积运算后,得到一个卷积层。该卷积层由6个feature maps组成,也就是说一个filter提取输入图像的一种特征。
INPUT为32*32,filter的大小即kernel size为5*5,stride = 1,卷积后得到的feature maps边长的计算公式是:
output_h =(originalSize_h-kernelSize_h)/stride +1
所以,卷积层的feature map的变长为:conv1_h=(32-5)/1 + 1 = 28
卷积层的feature maps尺寸为28*28.
由于同一feature map共享权值,所以总共有6*(5*5+1)=156个参数。
卷积层之后是pooling层,也叫下采样层或子采样层(subsampling)。它是利用图像局部相关性的原理,对图像进行子抽样,这样在保留有用信息的同时可以减少数据处理量。pooling层不会减少feature maps的数量,只会缩减其尺寸。常用的pooling方法有两种,一种是取最大值,一种是取平均值。
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.
之后的卷积和pooling过程与此类似,然后是两个全连接层和一个输出层。全连接的意思就是C5中的每个卷积核均在S4中所有16个feature maps上进行卷积操作,即C5中的每个节点均与前一层C4中的每个节点相连。输出层是一个10维的向量,对每个输入的样本进行判断,若输出结果为0001000000,则说明模型判定输入的手写数字为3.
这里写图片描述
个人认为,要更好地理解全连接层和输出层,不妨将从输入层到S4层之前的所有层看作一层,将其作为输入层,而后面紧接着的是一个有两层隐层的神经网络。这样从整体看来,就是将一个有两个隐层的神经网络的输入替换为经过卷积和pooling得到的feature maps的过程。我们做的只是把神经网络中原本的图像数据输入,替换为先经过卷积和pooling提取到特征后,再将特征作为输入的一个过程。所以,从这点来看,深度学习其实做的工作就是进行特征提取,因此,它还有一个别名叫做无监督特征学习就不足为奇了(这里强调的是特征学习,而非无监督)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值