【CS231n 学习笔记】Lecture7:Convolutional Neural Networks

CS231n学习笔记目录(2016年Andrej Karpathy主讲课程)

  • Lecture1:Introduction(介绍)
  • Lecture2:Image Classification Pipeline(数据驱动的图像分类方式) (上)
  • Lecture2:Image Classification Pipeline(数据驱动的图像分类方式) (下)
  • Lecture3:Loss functions and Optimization(线性分类器损失函数与最优化)
  • Lecture4:Backpropagation and Neural Networks(反向传播与神经网络)
  • Lecture5:Training Neural Networks(神经网络训练细节) Part 1
  • Lecture6:Training Neural Networks(神经网络训练细节) Part 2
  • Lecture7:Convolutional Neural Networks(卷积神经网络)
  • Lecture8:Spatial Localization and Detection(迁移学习之物体定位与检测)

卷积神经网络的原理

CNN笔记:通俗理解卷积神经网络_结构之法 算法之道-CSDN博客_卷积神经网络

另补充:

步长的限制。假设图像大小为N,滤波器大小为F,如果(N-F)/stride+1=整数,则stride为允许的步长,否则不允许。

为什么滤波器的尺寸总是奇数?奇数尺寸的滤波器有更好的表达,一般使用3、5、7尺寸的滤波器。

为什么使用0来进行填充?0不会对输入数据造成影响,滤波器只用考虑输入数据。

常用卷积网络

LeNet5

LeNet5分为卷积层块和全连接层块两个部分。卷积块里的基本单位是卷积层之后接最大池化层,卷积层用来识别图像里的空间模式,如线条和物体局部,池化层用来降低卷积层对位置的敏感性。LeNet5网络的具体结构为:

  • C1卷积层:首先对MNIST数据集进行处理,使用6个5*5的卷积核,设置填充为2,使得原数据高和宽变为32*32,设置步幅为1,得到6组大小为28*28的特征映射,在输出上使用Relu激活函数;
  • S2池化层:使用2*2的采样窗口,设置步幅为2,所以每个采样单元之间不重叠,使用最大池化,用采样单元中最大的值代替整个采样单元,得到6组大小为14*14的特征映射;
  • C3卷积层:使用16个5*5的卷积核,得到16组10*10的特征映射,使用Relu激活函数;
  • S4池化层:和S2一样使用采样窗口为2*2的最大池化汇聚,得到16组5*5的特征映射;
  • C5卷积层:使用120个5*5的卷积核,得到120组1*1的特征映射;
  • F6全连接层:输入16*5*5个神经元,输出84个神经元;
  • 输出层:由10个径向基函数组成。

【CS231n 学习笔记】Lecture7:Convolutional Neural Networks_第1张图片

AlexNet

是第一个现代深度卷积网络模型,是2012 年 ImageNet 图像分类竞赛的冠军。它基于LeNet5作了小小的改动:

  • 使用 GPU 进行并行训练(这是因为当时的GPU并没有很高的性能);
  • 采用了 ReLU 作为非线性激活函数;
  • 使用 Dropout 防止过拟合;
  • 使用数据增强来提高模型准确率等。

AlexNet 的结构包括 5 个卷积层、 3 个汇聚层和 3 个全连接层:

【CS231n 学习笔记】Lecture7:Convolutional Neural Networks_第2张图片

ZFNet

ZFNet是2013年 ImageNet 图像分类竞赛的冠军,与AlexNet有相同的层数,相同的基本结构,在步长、卷积核数量上略有不同。

【CS231n 学习笔记】Lecture7:Convolutional Neural Networks_第3张图片

VGGNet

VGGNet出现在2014年 ImageNet 图像分类竞赛中,提出了可以通过重复使⽤简单的基础块来构建深度模型的思路。

VGG块的组成规律是:连续使⽤数个相同的填充为1、窗口形状为3*3的卷积层后接上一个步幅为2、窗口形状为2*2的最大池化层。卷积层保持输入的高和宽不变,而池化层则对其减半。

【CS231n 学习笔记】Lecture7:Convolutional Neural Networks_第4张图片

GoogLeNet

GoogLeNet是2014年 ImageNet 图像分类竞赛的冠军,最关键的创新点是引入了Inception模块,GoogLeNet由9个Inception v1 模块和5个汇聚层以及其他一些卷积层和全连接层构成,总共为22层网络:

【CS231n 学习笔记】Lecture7:Convolutional Neural Networks_第5张图片

ResNet

ResNet是2015年 ImageNet 图像分类竞赛的冠军。普通卷积神经网络(不带残差)上堆叠越来越多的层时,分类效果也会越来越好吗?答案是不能,这里对比了20层和56层普通网络,下图左边是训练误差,右边是测试误差:

【CS231n 学习笔记】Lecture7:Convolutional Neural Networks_第6张图片

 可以看出56层的训练误差和测试误差均高于20层,下面贴出Andrej大神做的对比结果(2016年的课摄像效果不太好,图像不清晰),左边是普通卷积网络的结果,右边是ResNet的结果:

【CS231n 学习笔记】Lecture7:Convolutional Neural Networks_第7张图片

 很明显,两者的结果是反的,普通网络加大层数损失值反而更大,而ResNet层数越多,模型在训练误差和测试误差上都在持续地改进。基本结构如下:

【CS231n 学习笔记】Lecture7:Convolutional Neural Networks_第8张图片

 (纯学习分享,如有侵权,联系删文)

你可能感兴趣的:(computer,vision,卷积神经网络)