这可能是神经网络 LeNet-5 最详细的解释了! admin 2023-02-14 18:33:01 篇首语:本文由小编为大家整理,主要介绍了这可能是神经网络 LeNet-5 最详细的解释了!相关的知识,希望对你有一定的参考价值。 大家好,我是红色石头! 说起深度学习目标检测算法,就不得不提 LeNet- 5 网络。LeNet-5由LeCun等人提出于1998年提出,是一种用于手写体字符识别的非常高效的卷积神经网络。出自论文《Gradient-Based Learning Applied to Document Recognition》 论文传送门: http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf 一、网络结构 LetNet-5是一个较简单的卷积神经网络。上图显示了其结构:输入的二维图像(单通道),先经过两次卷积层到池化层,再经过全连接层,最后为输出层。整体上是:input layer->convulational layer->pooling layer->activation function->convulational layer->pooling layer->activation function->convulational layer->fully connect layer->fully connect layer->output layer. 整个 LeNet-5 网络总共包括7层(不含输入层),分别是:C1、S2、C3、S4、C5、F6、OUTPUT。 几个参数: 层编号特点: 英文字母+数字英文字母代表以下一种:C→卷积层、S→下采样层(池化)、F→全连接层数字代表当前是第几层,而非第几卷积层(池化层.ec) 术语解释: 参数→权重w与偏置b连接数→连线数参数计算:每个卷积核对应于一个偏置b,卷积核的大小对应于权重w的个数(特别注意通道数) 二、输入层(Input Layer) 输入层(INPUT)是 32x32 像素的图像,注意通道数为1。 三、C1 层 C1 层是卷积层,使用 6 个 5×5 大小的卷积核,padding=0,stride=1进行卷积,得到 6 个 28×28 大小的特征图:32-5+1=28。 参数个数:(5*5+1)*6=156,其中5*5为卷积核的25个参数w,1为偏置项b。 连接数:156*28*28=122304,其中156为单次卷积过程连线数,28*28为输出特征层,每一个像素都由前面卷积得到,即总共经历28*28次卷积。 四、S2 层 S2 层是降采样层,使用 6 个 2×2 大小的卷积核进行池化,padding=0,stride=2,得到 6 个 14×14 大小的特征图:28/2=14。 S2 层其实相当于降采样层+激活层。先是降采样,然后激活函数 sigmoid 非线性输出。先对 C1 层 2x2 的视野求和,然后进入激活函数,即: 参数个数:(1+1)*6=12,其中第一个 1 为池化对应的 2*2 感受野中最大的那个数的权重 w,第二个 1 为偏置 b。 连接数:(2*2+1)*6*14*14= 5880,虽然只选取 2*2 感受野之和,但也存在 2*2 的连接数,1 为偏置项的连接,14*14 为输出特征层,每一个像素都由前面卷积得到,即总共经历 14*14 次卷积。 五、C3 层 C3 层是卷积层,使用 16 个 5×5xn 大小的卷积核,padding=0,stride=1 进行卷积,得到 16 个 10×10 大小的特征图:14-5+1=10。 16 个卷积核并不是都与 S2 的 6 个通道层进行卷积操作,如下图所示,C3 的前六个特征图(0,1,2,3,4,5)由 S2 的相邻三个特征图作为输入,对应的卷积核尺寸为:5x5x3;接下来的 6 个特征图(6,7,8,9,10,11)由 S2 的相邻四个特征图作为输入对应的卷积核尺寸为:5x5x4;接下来的 3 个特征图(12,13,14)号特征图由 S2 间断的四个特征图作为输入对应的卷积核尺寸为:5x5x4;最后的 15 号特征图由 S2 全部(6 个)特征图作为输入,对应的卷积核尺寸为:5x5x6。 值得注意的是,卷积核是 5×5 且具有 3 个通道,每个通道各不相同,这也是下面计算时 5*5 后面还要乘以3,4,6的原因。这是多通道卷积的计算方法。 参数个数:(5*5*3+1)*6+(5*5*4+1)*6+(5*5*4+1)*3+(5*5*6+1)*1=1516。 连接数:1516*10*10 = 151600。10*10为输出特征层,每一个像素都由前面卷积得到,即总共经历10*10次卷积。 六、S4 层 S4 层与 S2 一样也是降采样层,使用 16 个 2×2 大小的卷积核进行池化,padding=0,stride=2,得到 16 个 5×5 大小的特征图:10/2=5。 参数个数:(1+1)*16=32。 连接数:(2*2+1)*16*5*5= 2000。 七、C5 层 C5 层是卷积层,使用 120 个 5×5x16 大小的卷积核,padding=0,stride=1进行卷积,得到 120 个 1×1 大小的特征图:5-5+1=1。即相当于 120 个神经元的全连接层。 值得注意的是,与C3层不同,这里120个卷积核都与S4的16个通道层进行卷积操作。 参数个数:(5*5*16+1)*120=48120。 连接数:48120*1*1=48120。 八、F6层 F6 是全连接层,共有 84 个神经元,与 C5 层进行全连接,即每个神经元都与 C5 层的 120 个特征图相连。计算输入向量和权重向量之间的点积,再加上一个偏置,结果通过 sigmoid 函数输出。 F6 层有 84 个节点,对应于一个 7x12 的比特图,-1 表示白色,1 表示黑色,这样每个符号的比特图的黑白色就对应于一个编码。该层的训练参数和连接数是(120 + 1)x84=10164。ASCII 编码图如下: 参数个数:(120+1)*84=10164。 连接数:(120+1)*84=10164。 九、OUTPUT层 最后的 Output 层也是全连接层,是 Gaussian Connections,采用了 RBF 函数(即径向欧式距离函数),计算输入向量和参数向量之间的欧式距离(目前已经被Softmax 取代)。 Output 层共有 10 个节点,分别代表数字 0 到 9。假设x是上一层的输入,y 是 RBF的输出,则 RBF 输出的计算方式是: 上式中 i 取值从 0 到 9,j 取值从 0 到 7*12-1,w 为参数。RBF 输出的值越接近于 0,则越接近于 i,即越接近于 i 的 ASCII 编码图,表示当前网络输入的识别结果是字符 i。 下图是数字 3 的识别过程: 参数个数:84*10=840。 连接数:84*10=840。 十、可视化网址 http://yann.lecun.com/exdb/lenet/a35.html http://scs.ryerson.ca/~aharley/vis/conv/flat.html http://scs.ryerson.ca/~aharley/vis/conv/ 总结 LeNet-5 与现在通用的卷积神经网络在某些细节结构上还是有差异的,例如 LeNet-5 采用的激活函数是 sigmoid,而目前图像一般用 tanh,relu,leakly relu 较多;LeNet-5 池化层处理与现在也不同;多分类最后的输出层一般用 softmax,与 LeNet-5 不太相同。 LeNet-5 是一种用于手写体字符识别的非常高效的卷积神经网络。CNN 能够得出原始图像的有效表征,这使得 CNN 能够直接从原始像素中,经过极少的预处理,识别视觉上面的规律。然而,由于当时缺乏大规模训练数据,计算机的计算能力也跟不上,LeNet-5 对于复杂问题的处理结果并不理想。 最后,红色石头给大家准备好了 LeCun 的这篇 LeNet-5 的 46 页论文《Gradient-Based Learning Applied to Document Recognition》,需要的可以在本公众号后台回复【lenet5】,获取! 下一篇我将使用 PyTorch 复现LeNet-5 网络,并介绍完整的 demo 实例,下期见! 推荐阅读 (点击标题可跳转阅读) 干货 | 公众号历史文章精选 我的深度学习入门路线 我的机器学习入门路线图 重磅! AI有道年度技术文章电子版PDF来啦! 扫描下方二维码,添加 AI有道小助手微信,可申请入群,并获得2020完整技术文章合集PDF(一定要备注:入群 + 地点 + 学校/公司。例如:入群+上海+复旦。 长按扫码,申请入群 (添加人数较多,请耐心等待) 感谢你的分享,点赞,在看三连 以上是关于这可能是神经网络 LeNet-5 最详细的解释了!的主要内容,如果未能解决你的问题,请参考以下文章 局域网屏幕共享软件Inletex使用教程 adb执行命令提示“findstr”不是内部或外部命令,也不是可运行的程序或批处理文件 您可能还会对下面的文章感兴趣: 相关文章 浏览器打不开网址提示“ERR_CONNECTION_TIMED_OUT”错误代码的解决方法 如何安装ocx控件 VMware的虚拟机为啥ip地址老是自动变化 vbyone和EDP区别 linux/debian到底怎么重启和关机 苹果平板键盘被弄到上方去了,如何调回正常? 机器学习常用距离度量 如何查看kindle型号