深度学习笔记2——卷积神经网络、LeNet5

1、卷积神经网络( Convolutional Neural Network, CNN)

1.1 局部感受野(Local Receptive Fields)

对于一般的深度神经网络,往往会把图像的每一个像素点连接到全连接的每一个神经元中,而卷积神经网络则是把每一个隐藏节点只连接到图像的某个局部区域,从而减少参数训练的数量。例如,一张1024×720的图像,使用9×9的感受野,则只需要81个权值参数。对于一般的视觉也是如此,当观看一张图像时,更多的时候关注的是局部。

1.2 共享权值(Shared Weights)

在卷积神经网络的卷积层中,神经元对应的权值是相同的,由于权值相同,因此可以减少训练的参数量。共享的权值和偏置也被称作卷积核或滤汲器。

1.3 池化(Pooling)

  • 由于待处理的图像往往都比较大,而在实际过程中,没有必要对原图进行分析,能够有效获得图像的特征才是最主要的,因此可以采用类似于图像压缩的思想,对图像进行卷积之后,通过一个下采样过程,来调整图像的大小。
  • 可以减小feature map 的尺寸,减少计算量。
  • 可以防止过拟合,过滤噪音。
  • 引入平移不变性

1.4 相较于全连接神经网络的优点

  • 学习原理的改进:不再是有监督的学习,不需要从图像中提取特征,直接从原始图像数据进行学习,可以防止信息在没进入网络之前丢失。
  • 学习方式的改进:全连接神经网络一层的结果是与上一层的结点全部连接,卷积神经网络某一层的结点只与上一层的一个图像块连接。
  • CNN是一个局部到整体的过程,而传统神经网络是整体的过程。

1.5 卷积核大小一般3x3不是更大尺寸的原因

  • 相较于大的卷积核,使用多个较小的卷积核可以获得相同的感受野和更多的特征信息。
  • 参数更少、计算量更小。
  • 可以使用更多的激活函数,有更多的非线性。

2、LeNet5

1998年计算机科学家Yann LeCun等提出的LeNet5采用了基于梯度的反向传播算法对网络进行有监督的训练,Yann LeCun在机器学习、计算机视觉等都有杰出贡献,被誉为卷积神经网络之父。LeNet5网络通过交替连接的卷积层和下采样层,将原始图像逐渐转换为一系列的特征图,并且将这些特征传递给全连接的神经网络,以根据图像的特征对图像进行分类。

2.1 LeNet5网络结构

LeNet系列最终稳定版是LeNet5,是一个7层的卷积网络(不包括输入层):
3个卷积层,2个池化层,2个全连接层
卷积层(Convolutions,C1)、池化层(Subsampling,S2)、卷积层(C3)、池化层(Subsampling,S4)、卷积层(C5)、全连接层(F6)、输出全连接层(径向基层)
使用的都是5x5的卷积核,步长stride=1,池化方法都为Avgpool,都是2x2的采样核,stride=2,激活函数都为Sigmoid

深度学习笔记2——卷积神经网络、LeNet5_第1张图片
深度学习笔记2——卷积神经网络、LeNet5_第2张图片

输出层的公式:N = (W - F + 2P) / S +1

  • N:输出层大小
  • W:输入层大小
  • F:卷积核大小
  • P:填充值大小
  • S:步长大小

2.2 网络结构详细解读

输入层:输入的手写体是32x32x1像素的图片(输入图片统一归一化)

C1卷积层

  • 通过(5x5)x6的卷积核,stride=1,生成特征图28x28x6:28=(32-5+2*0)/1+1,输入的图像是单通道的,所以特征图的数量等于卷积核的数量。
  • 每个卷积核是5x5的,每个特征平面有28x28的神经元(每个神经元对应一个偏置值),总共有6个特征平面。
  • 权值数(可训练参数,取决于卷积核的大小):(5x5x1+1)x6 = 156个,5x5x1:卷积核尺寸 x 上一层的特征平面数量,6为垓层的特征平面数量
    25个unit参数和一个bias参数,一共6个滤波器
  • 连接数:156x28x28 = 122304

S2池化层

  • 2x2的采样核,stride=2,生成特征图14x14x6:14=(28-2+2*0)/2+1
  • 待训练的权值:6x(2/2+2/2) =12
    每个特征平面对应一个采样层的一个平面,每个单元的2x2感受野并不重叠,因此S2中每个特征图的大小是C1中特征图大小的1/4(行和列各1/2)
  • 连接数:14x14x(2x2+1)x6 = 5880

C3卷积层

  • 通过(5x5)x6的卷积核,stride=1,生成特征图10x10x16
  • 经过(5x5)x16的卷积核这一层有16个特征平面
    C3的卷积层特征平面编号即0~15,池化层S2编号为0-5,输入6个通道,输出16个通道,经过一个编码,,编码表如下:
    深度学习笔记2——卷积神经网络、LeNet5_第3张图片
  • C3的前6个feature map与S2层相邻的3个feature map相连,对应三个池化层平面,那么也就是说有5x5x3个连接到卷积层特征平面的一个神经元。
  • 6~14每张特征平面对应4个卷积层,此时每个特征平面的一个神经元的连接数为5x5x4
  • 最后一个特征平面是对应池化层所有的样本平面
  • 权值数: (5x5x3+1)x6 + (5x5x4+1)x9 + 5x5x6+1 = 456 + 909+151 = 1516
  • 连接数: (456 + 909+151)x10x10 = 151600
  • 这一层为什么不和前面的一样进行卷积呢?Lecon的论文说,主要是为了打破对称性,提取深层特征,因为特征不是对称的,因此需要打破这种对称,以提取到更重要的特征

S4池化层

  • 2x2的采样核,stride=2,生成特征图5x5x16:5=(10-2)/2+1
  • 本层存在激活函数,为sigmod函数
  • 待训练的权值:16x(2/2+2/2) = 32
  • 连接数:5x5x(2x2+1)x16 = 2000

C5卷积层

  • 这一层的特征平面有120个
  • 通过(5x5)x120的卷积核,stride=1,生成特征图1x1x120,构成了S4和C5之间的全连接
  • 仍将C5标示为卷积层而非全相联层,是因为如果LeNet5的输入变大,而其他的保持不变,那么此时特征图的维数就会比1*1大
  • 待训练的权值:(5x5x16+1)x120 = 48120
  • 连接数:48120 x 1x1 = 48120

F6全连接层

  • 84个单元(设计背景:7=6种笔触+1,12=10中数字+正负2种数值方向,84=7x12),与C5层全相连
  • 输入:1x1x120,输出:1x1x84
  • 总参数量:120x84
  • 连接数:(84x(120x(1x1)+1)=10164

输出全连接层

  • 输入:1x1x84,输出:1x1x10
  • 由欧式径向基函数(Euclidean Radial Basis Function)单元组成,每类一个单元
  • 总参数量:10x84

2.3 LeNet5小结

LeNet5为分类任务,但没用现在广泛使用的softmax loss(交叉熵),而使用的是欧氏距离,等价于一个全连接层+欧式损失层

参考博文链接1:https://blog.csdn.net/weixin_42398658/article/details/84392845
参考博文链接2:https://blog.csdn.net/weixin_42398658/article/details/84392845

你可能感兴趣的:(深度学习,深度学习,计算机视觉,神经网络)