【深度学习】经典卷积神经网络(一)LeNet-5

前言

为了能更好地指导卷积神经网络的设计,本系列将逐步学习一些经典的卷积神经网络模型。从一些比较古老的例如LeNet到比较新的例如SENet、UNet,从它们的设计中寻找思路,这将在各类问题卷积神经网络的设计都有参考价值。这类文章网上也很多,所以主要简单介绍下一些基本的信息然后从中寻找一些自己的心得体会。本文首先从最经典的LeNet开始。

基本结构


LeNet作为上个世纪的卷积神经网络在设计上相对简单,也能体现很多卷积神经网络设计的思想。其结构可以参考上图,这里主要介绍下卷积神经网络设计的一些动机。

关于卷积层

稀疏交互

如果像MLP一样隐层采用全连接,那么正如图像下方这种情况,参数量是巨大的。而卷积操作实际上局部点几个点决定下一层的某个点,例如上图中s3由x2,x3,x4决定,这样连接减少后的参数量大大减少。
不过这不只是为了减少参数量,这里因此也体现了隐马尔科夫性的思想,只由附近的决定,并且对于图像来说也更合理一些。另外,卷积从图像处理的角度也能够将图像的特征例如边缘提取出来,类似仿生学的思想,从低级特征到高级抽象,最终形成人脑中的视觉信号。

如果采用全连接就如同下面这种方式,28*28的图像每个点下一层都需要输入层784个点加权,这样的参数量是巨大的。
参数共享
卷积神经网络的参数主要是卷积核,例如上图中每个同一方向的箭头值都是一样的,这样能够进一步减少参数量。
等变表示
如果一个函数满足输入改变,输出也以同样方式进行改变的话,我们称它是等变的。
而卷积具有平移等变,而全连接层展开为一维向量很难具有这样的性质。

关于池化层

池化层主要是起一个下采样的作用,增大感受野,形变也不怎么明显。池化一方面可以减少参数量,将临近的相似像素合并,从而可以减小过拟合,只保留图像中更有用的信息,降低噪声的传递与对变化的明显性。至于池化层的stride,如果平移的步幅大一点对信息影响不大的话又能提高速度,那么也会进行设置。而padding是为了充分利用信息,因为有一些边界信息可能会因为窗口无法覆盖而难以计算。

思考

卷积神经网络在设计的过程中很多参数都会考虑运算量,是很有讲究的。LeNet在设计上主要为CNN提供了一种范例,即卷积+非线性激活函数+池化,相对现在很多流行的网络也没有太多可以挖掘的trick。

例如LeNet中有一个连接,也并非所有通道之间都有连接,原因也不是很好介绍,当时也主要是试出来的,对问题效果会比较好。
总结一下,对于LeNet可以学习的点:

  • 卷积神经网络的规范
  • 卷积层、池化层的动机
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值