经典卷积神经网络(一):LeNet-5和AlexNet

本节介绍几种广泛使用的典型深层卷积神经网络。

LeNet-5

LeNet-5[LeCun et al., 1998]虽然提出的时间比较早,但是是一个非常成功
的神经网络模型。基于LeNet-5的手写数字识别系统在90年代被美国很多银行
使用,用来识别支票上面的手写数字。

LeNet-5的网络结构如图所示。

不计输入层,LeNet-5共有7层,每一层的结构为:

  1. 输入层:输入图像大小为32 × 32 = 1024。

  2. C1层是卷积层,使用6个5 × 5的滤波器,得到6组大小为28 × 28 = 784的特征映射。因此,C1层的神经元数量为6 × 784 = 4,704,可训练参数
    数量为6 × 25 + 6 = 156,连接数为156 × 784 = 122,304(包括偏置在内,
    下同)。

  3. S2层为汇聚层,采样窗口为2×2,使用平均汇聚,并使用一个非线性函数。神经元个数为6 × 14 × 14 = 1,176,可训练参数数量为6 × (1 + 1) = 12,连接数为6 × 196 × (4 + 1) = 5,880。

  4. C3层为卷积层。LeNet-5中用一个连接表来定义输入和输出特征映射之间
    的依赖关系,如图5.11所示,共使用60个5×5的滤波器,得到16组大小
    为10×10的特征映射。神经元数量为16×100 = 1,600,可训练参数数量为(60 × 25) + 16 = 1,516,连接数为100 × 1,516 = 151,600。
    (如果不使用连接表,则需要
    96个5 × 5的滤波器)。

  5. S4层是一个汇聚层,采样窗口为2 × 2,得到16个5 × 5大小的特征映射,
    可训练参数数量为16 × 2 = 32,连接数为16 × 25 × (4 + 1) = 2000。

  6. C5层是一个卷积层,使用120 × 16 = 1,920个5 × 5的滤波器,得到120
    组大小为1 × 1的特征映射。C5层的神经元数量为120,可训练参数数量
    为1,920 × 25 + 120 = 48,120,连接数为120 × (16 × 25 + 1) = 48,120。

  7. F6层是一个全连接层,有84个神经元,可训练参数数量为84×(120+1) =
    10,164。连接数和可训练参数个数相同,为10,164。

  8. 输出层:输出层由10个欧氏径向基函数(Radial Basis Function,RBF)
    函数组成。这里不再详述。

    扫描二维码关注公众号,回复: 14636004 查看本文章

可以知道,卷积层的每一个输出特征映射都依赖于所有输入特征映射,相当于卷积层的输入和输出特征映射之间是全连接的关系。实际上,这种全连接关系不是必须的。我们可以让每一个输出特征映射都依赖于少数几个输入特征映射。

定义一个连接表(Link Table) T T T 来描述输入和输出特征映射之间的连接关系。如果第 p p p个输出特征映射依赖于第 d d d个输入特征映射,则
T p , d = 1 T_{p,d} = 1 Tp,d=1,否则为0。

Y p = f ( ∑ d , T p , d = 1 W p , d ⊗ X d + b p ) Y^p=f\left(\sum\limits_{d,\\ T_{p,d}=1}W^{p,d}\otimes X^d+b^p\right) Yp=f d,Tp,d=1Wp,dXd+bp
其中 T T T P × D P × D P×D大小的连接表。假设连接表 T T T 的非零个数为 K K K,每个滤波器的
大小为 m × n m × n m×n,那么共需要 K × m × n + P K × m × n + P K×m×n+P 参数。

在LeNet-5中,连接表的基本设定如图所示。C3层的第0-5个特征映射
依赖于S2层的特征映射组的每3个连续子集,第6-11个特征映射依赖于S2层
的特征映射组的每4个连续子集,第12-14个特征映射依赖于S2层的特征映射
的每4个不连续子集,第15个特征映射依赖于S2层的所有特征映射。

论文地址:
http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf

AlexNet

AlexNet[Krizhevsky et al., 2012]是第一个现代深度卷积网络模型,其首次使用了很多现代深度卷积网络的一些技术方法,比如使用GPU进行并行训练,
采用了ReLU作为非线性激活函数,使用Dropout防止过拟合,使用数据增强
来提高模型准确率等。

AlexNet赢得了2012年ImageNet图像分类竞赛的冠军。
AlexNet的结构如图所示,包括5个卷积层、3个全连接层和1个softmax
层。因为网络规模超出了当时的单个GPU的内存限制,AlexNet将网络拆为两半,分别放在两个GPU上,GPU间只在某些层(比如第3层)进行通讯。


AlexNet的具体结构如下:

  1. 输入层,224 × 224 × 3的图像;
  2. 第一个卷积层,使用两个11 × 11 × 3 × 48的卷积核,步长s = 4,零填充
    p = 3,得到两个55 × 55 × 48的特征映射组。
  3. 第一个汇聚层,使用大小为3×3的最大汇聚操作,步长s = 2,得到两个
    27 × 27 × 48的特征映射组。
  4. 第二个卷积层,使用两个 5×5×48×128的卷积核,步长s = 1,零填充
    p = 1,得到两个27 × 27 × 128的特征映射组。
  5. 第二个汇聚层,使用大小为3×3的最大汇聚操作,步长s = 2,得到两个
    13 × 13 × 128的特征映射组。
  6. 第三个卷积层为两个路径的融合,使用一个 3 × 3 × 256 × 384的卷积核,
    步长s = 1,零填充p = 1,得到两个13 × 13 × 192的特征映射组。
  7. 第四个卷积层,使用两个 3 × 3 × 192 × 192的卷积核,步长s = 1,零填
    充p = 1,得到两个13 × 13 × 192的特征映射组。
  8. 第五个卷积层,使用两个 3 × 3 × 192 × 128的卷积核,步长s = 1,零填
    充p = 1,得到两个13 × 13 × 128的特征映射组。
  9. 汇聚层,使用大小为3×3的最大汇聚操作,步长s = 2,得到两个6×6×128
    的特征映射组。
  10. 三个全连接层,神经元数量分别为4096,4096和1000。

Alex-Net是计算机视觉中首个被广泛关注、使用的卷积神经网络,特别是在2012年ImageNet竞赛中以超越第二名10.9个百分点的优异成绩一举夺冠,从而打响了卷积神经网络、乃至深度学习在计算机视觉领域中研究热潮的“第一枪”。

Alex-Net由加拿大多伦多大学的Alex Krizhevsky ,Ilya Sutskever(Hinton的两位博士生)和 提出,网络名“Alex-Net”即取自第一作者。

不过仍需指出 Alex-Net 的几点重大贡献,正因如此,Alex-Net 方可在整个卷积神经网络甚至连接主义机器学习发展进程中占据里程碑式的地位。

1.Alex-Net 首次将卷积神经网络应用于计算机视觉领域的海量图像数据集ImageNet(该数据集共计 1000 类图像,图像总数约 128 多万张),揭示了卷积神经网络拥有强大的学习能力和表示能力。另一方面,海量数据同时也使卷积神经网络免于过拟合。可以说二者相辅相成,缺一不可。自此便引发了深度学习,特别是卷积神经网络在计算机视觉中“井喷”式的研究。

2.利用 GPU 实现网络训练。在上一轮神经网络研究热潮中,由于计算资源发展受限,研究者无法借助更加高效的计算手段 (如 GPU),这也较大程度阻碍了当时神经网络的研究进程。“工欲善其事,必先利其器”,在Alex-Net 中,研究者借助 GPU 从而将原本需数周甚至数月的网络训练过程大大缩短至五到六天。在揭示卷积神经网络强大能力的同时,无疑也大大缩短了深度网络和大型网络模型开发研究的周期与时间成本。缩短了迭代周期,数量繁多、立意新颖的网络模型和应用才能像雨后春笋一般层出不穷。

3.一些训练技巧的引入使“不可为”变“可为”,甚至是“大有可为”。如ReLU 激活函数、局部响应规范化操作、为防止过拟合而采取的数据增广(data augmentation)和随机失活(dropout) 等,这些训练技巧不仅保证了模型性能,更重要的是为后续深度卷积神经网络的构建提供了范本。实际上,此后的卷积神经网络大体都是遵循这一网络构建的基本思路。

论文地址:
https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf


论文复现代码下载:
 
在「阿远学长」公众号后台回复:
【论文代码】
即可领取

猜你喜欢

转载自blog.csdn.net/AI_ayuan/article/details/129469670