LeNet论文阅读笔记

目录

  • 前言
  • LeNet论文第二部分阅读笔记
    • A. Convolutional Networks
    • B. LeNet-5
    • C. Loss Function

前言

    最近学完了吴恩达深度学习的视频课,根据师兄的建议,打算读一些网络结构方面的论文。LeNet本来是一篇很老的论文,开始只是抱着了解历史的心态,看了下第二部分的内容。没想到整体读下来,对CNN的基本原理有了更深的认识,收获还是蛮大的,打算开始写博客记录一下论文的阅读心得。
  科研小白第一次写博客,认识还很浅薄。下面这篇博客在阅读的过程中给了我很大帮助,表示感谢!另附上论文的链接
  LeNet论文的翻译与CNN三大核心思想的解读
  LeNet原文下载传送门

LeNet论文第二部分阅读笔记

    论文第二部分的题目是: II. CONVOLUTIONAL NEURAL NETWORKS FOR ISOLATED CHARACTER RECOGNITION
  下面是论文一些思想的摘录,加入了一些我自己的理解:
  为什么对图像要用卷积神经网络而不是全连接:
  1、图像往往尺寸很大,如果把图像看成行向量作为输入层,即使第一层全连接选择尽量少的神经元,第一层的参数也很多,导致整体参数都很多,计算量很大,模型也只适用于小图像。
  2、全连接的主要缺点是,对于图像来说,不具有平移和局部失真的不变性(全连接网络每个神经元感受到的都是整幅图像,对平移,形变不具有不变性。只要对同一幅图像加入一些扰动,输出就会不同),而卷积神经网络可以通过参数共享实现位移不变性(shift invariance)。
  3、全连接的另一个缺点是,完全忽略了输入的拓扑结构(将一幅图像转换为行向量,行向量特征的顺序其实是可以打乱的,但是应该所有图像转换为行向量打乱的方式要相同。在不改变神经元的输出的前提下,输入数据可以是任意的顺序),这样训练网络其实对结果没有影响。但是,对于图像来说,一个像素与其相邻的像素往往是具有空间上的相关性的,那么可以从这个空间相关性出发提取到图像的一些局部的特征信息(如角特征和边缘特征等,应该传统方法中有局部特征提取的算子)。显然提取图像局部特征是全连接网络做不到的,但是在卷积神经网络中,可以通过设置神经元的感受野,通过卷积操作来提取局部特征。
  另外,全连接也可以理解为是用和图像一样大小的卷积核对图像做卷积,这样就会得到一个值,卷积核的数量就是对应的全连接的神经元的数量。从这可以看出,每个神经元的感受野是全局的。
  一图胜千言,下面的图描述地很形象:
  LeNet论文阅读笔记_第1张图片
LeNet论文阅读笔记_第2张图片
LeNet论文阅读笔记_第3张图片
LeNet论文阅读笔记_第4张图片
LeNet论文阅读笔记_第5张图片  
  采用卷积神经网络,不仅可以大大减少参数的数量,还可以使得模型对图片具有位移不变性

A. Convolutional Networks

    在这部分,论文提到了CNN的三大核心思想:
  为了保证位移、尺度、畸变(shift, scale, distortion invariance)不变性,CNN整合了三个思想.
  CNN的三大核心思想:
  1、局部感受野:基于图像局部相关的原理,卷积用于提取图像局部特征。既使得每个神经元感受到图像的局部信息,从而对平移,形变具有不变性,又减少了网络的权值
  2、权值共享:一个feature map中的每个神经元共享同一个卷积核和偏置单元。正是由于权值共享,当输入图像发生位移时,输出的feature map也只是发生位移,因此对位移和形变鲁棒
  3、下采样:一旦特征被检测出来,该特征的绝对位置并不重要,重要的是它相对于其他特征的相对位置(例如对于mnist数据集,当我们检测到输入图片的左上方有一个水平线的端点,右上方有一个拐点,下方有一个垂直线的端点时,我们可以确定这个字符是“7”)。正相反,由于不同的“7”其实各有不同,特征的绝对位置很精确时,往往对于位置、形变的鲁棒性变差,因此用下采样使得feature map变模糊,可以降低输出结果对于位移、形变的敏感性。
  CNN相对于传统机器学习的不同:传统的机器学习需要手工设计特征;CNN是把卷积核作为特征提取算子来对图像提取特征,由于卷积核的参数是学习得到的,因此相当于卷积神经网络是自己训练得到了特征提取器,使用的是网络自己学习到的特征。

B. LeNet-5

    这部分论文对LeNet-5的网络结构进行了介绍:
LeNet论文阅读笔记_第6张图片
  与现代CNN不同的是,LeNet中,特征图并不是与前一层所有特征图相连。C5层的每一个feature map是和前一层的所有feature map相连的。但是C3层的每个特征图,只与S2层中部分特征图相连。C3中的前6个feature map分别与S2中的3个相邻的feature map相连,之后的6个feature map分别与S2中的4个相邻的feature map相连,之后的3个feature map分别与S2中的4个不完全相邻的feature map相连,最后一层feature map才与S2的所有层相连。这种不完全连接的目的是:
  1、使得网络的连接数保持在合理的范围内,应该就是减小运算量
  2、更重要的是,打破网络对称性,希望不同的feature map能够因为与前一层不同的feature map相连而学习到不同的特征
LeNet论文阅读笔记_第7张图片
  这部分谈一下我自己的理解。前面提到了将全连接换成具有局部感受野的卷积,可以提高网络的性能。卷积的特点是相比全连接来说,卷积在Height和Width的维度上,神经元的连接是稀疏的(下一层神经元只与上一层的感受野内的神经元相连,而不是和所有的神经元相连)。那么我们是否可以在channel维度上也引入这种稀疏连接的形式呢?LeNet的设计正是如此。下一层的神经元在channel维度上,不是与上一层的所有channel的神经元相连的,而是只与部分channel的神经元相连。但是这样设计还有一个额外的问题:
  将卷积换成全连接的优势是,卷积在进行运算时,感受野内的像素由于在空间上是相邻的,其灰度具有高度的相关性,因此更有利于提取特征。但是在channel的维度上,这可就不一定了。相邻的channel之间应该是没什么关联的,所以如果在channel层面上也采用稀疏连接,到底应该选那几个channel呢?文章的作者应该也是不太清楚这一点,所以在设计网络的时候是先选相邻的三层,然后相邻的四层,然后不完全相邻的四层,最后是五层全连。
  但是目前来看,LeNet的这种设计是被现代CNN抛弃了,我觉得原因可能是有两点:1、很可能就是GoogLeNet中提到的,这种设计不利于硬件设备的运算,反而效率更低;2、我们不知道哪几个channel的特征是相关性更强的,还需要计算不同层特征的相关性(可能就是风格转换中的Gram矩阵),很麻烦。

C. Loss Function

    基于最大似然估计准则,在LeNet论文的情形中应该是最小均方误差(MSE):
LeNet论文阅读笔记_第8张图片
  论文中提到了这个loss缺失了三个很重要的属性,由于水平有限,这部分内容没有读懂,但是作者通过在后面加了一项,对loss做了一个改进:
LeNet论文阅读笔记_第9张图片
  这样貌似可以避免输出全是0的问题。

你可能感兴趣的:(网络结构论文阅读,网络结构论文阅读)