本文主要是介绍计算机视觉-卷积神经网络CNN之LeNet,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一. LeNet网络结构
- 二. LeNet结构剖析
- 1. 卷积块层
- 2. 全连接层块
- 三. 笔者个人理解
一. LeNet网络结构
二. LeNet结构剖析
LeNet是卷积神经网络之父Yann Lecun在1998年提出,用于解决手写数字识别的视觉任务。LeNet是如今各大深度CNN模型的鼻祖。LeNet分为卷积层块和全连接层块两部分。
1. 卷积块层
基本单位包括卷积层和最大池化层。卷积层块由卷积层和最大池化层重复堆叠构成。每个卷积层都使用55的卷积核,激活函数使用的是sigmoid。第一个卷积层输出通道数为6,第二个卷积层输出通道数增加到16(这是因为第二个卷积层比第一个卷积层的输入的高和宽要小,所以增加输出通道,从而使得两个卷积层的参数尺寸类似,信息量相当)。最大池化层的窗口形状均为22,步幅为2,由于池化窗口与步幅形状相同,所以池化窗口在输入上每次滑动所覆盖的区域互不重叠。
- 卷积层。用来识别图像里的空间模式,如线条、边缘、轮廓和物体局部;
- 最大池化层。用来降低卷积层对位置的敏感性。
2. 全连接层块
卷积块层的输出形状为(批量大小,通道,高,宽)。当卷积层块的输出传入全连接层块时,全连接层块会将小批量中的每个样本变平(flatten),即全连接层的输入形状将变成二维,其中第一维是小批量中的样本,第二维是每个样本变平后的向量表示,且向量长度维通道、高和宽的乘积。全连接层块含3个全连接层,输出个数分别为120,84和10,其中10为输出的类别个数。
三. 笔者个人理解
- 卷积就是相关运算,比如一个33的二维卷积核里面的权值为[[0,0,0],[1,1,1],[0,0,0]],那我们就可以理解成该卷积核(一个33的窗口)在图片上进行由左往右,由上往下的滑动时就是为了检测图片中的水平线条,再比如一个[[0,1,0],[0,1,0],[0,1,0]]的卷积核便可理解成检测图片中的垂直线条。由此类推,由线推广到任意形状的边界、轮廓,甚至物体的局部特征及完整的物体,都能随着CNN网络层数的增加,感受野的增大而学习到。
- 池化层除了用来降低卷积层对位置的敏感性之外,还一定程度上起到降低模型参数的数量,防止过拟合的作用,此外由于通过池化层,特征图会越来越小,也便于后续的变平flatten操作。
这篇关于计算机视觉-卷积神经网络CNN之LeNet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!