机器学习11-经典网络解析
机器学习11-经典网络解析
- AlexNet
- ImageNet 大规模视觉识别挑战赛
- 一、赛事背景与目的
- 二、数据集与任务设置
- 三、参赛规则与流程
- 四、评审标准与机制
- 五、历史与影响
- 六、中国团队的表现
- 贡献
- 解析
- CONV1层
- MaxP00L1层
- NORM1层
- CONV2层
- CONV3、CONV4层
- CONV4,Max POOL3 层
- FC6、FC7、FC8层
- 总结
- ZFNet
- VGG
- VGG网络贡献:
- VGG16
- 思考
- GoogleNet
- Inception结构
- 一、Inception结构简介
- 二、Inception结构的核心组件
- 三、Inception结构的演变版本
- 四、Inception结构的设计原则
- 五、Inception结构的应用与影响
- ResNet
AlexNet
2012年ImageNet 大规模视觉识别挑战赛冠军,精度提升超过10%。
ImageNet大规模视觉识别挑战赛(ImageNet Large Scale Visual Recognition Challenge,简称ILSVRC)是全球计算机视觉领域最具影响力的竞赛之一。以下是对该挑战赛的详细介绍:
ImageNet 大规模视觉识别挑战赛
一、赛事背景与目的
ILSVRC诞生于计算机视觉领域发展的关键时期,旨在推动图像识别技术的进展和发展。通过该挑战赛,研究人员能够测试并展示最新的计算机视觉算法和技术,为全球AI研究团队提供一个公平竞争的平台。
二、数据集与任务设置
- 数据集:ImageNet数据集是ILSVRC的核心,由斯坦福大学的Fei-Fei Li教授及其团队开发。该数据集包含超过1400万张标注图像,涵盖超过20000个类目,为研究人员提供了训练深度学习模型的基础。
- 任务设置:ILSVRC设置了多个任务,涵盖计算机视觉中的核心问题,包括图像分类、目标检测、图像定位以及场景分类等。参赛者需要针对这些任务开发模型,并在提供的数据集上进行训练和测试。
三、参赛规则与流程
- 报名注册:参赛者需在ILSVRC官网上注册,提供团队信息及相关资质验证。
- 下载数据集:报名成功后,团队将获得ImageNet数据集的使用许可,并下载数据集用于模型训练。
- 模型训练:参赛者可以利用自有的计算资源或通过云计算平台训练模型。
- 结果提交:在规定时间内,参赛者需要通过官网提交模型的结果文件进行评审。
四、评审标准与机制
ILSVRC的评审机制十分严格,主要通过自动化评审系统对提交的模型进行测试。评审标准包括Top-1错误率、Top-5错误率、平均精度(Mean Average Precision, mAP)以及召回率与精确率等。这些指标能够全面评估模型在图像分类、目标检测等任务上的性能。
五、历史与影响
- 历史突破:自2010年首次举办以来,ILSVRC见证了多项技术突破。其中,2012年由Geoffrey Hinton、Ilya Sutskever和Alex Krizhevsky提出的AlexNet模型首次将深度卷积神经网络应用于图像分类任务,并以大幅降低Top-5错误率的成绩赢得比赛。这一胜利引发了全球范围内对深度学习的研究热潮。
- 影响力:ILSVRC不仅推动了计算机视觉领域的飞速发展,还为深度学习的崛起奠定了基础。多年来,该挑战赛涌现出了一批著名的参赛团队和技术突破,如GoogLeNet、ResNet和EfficientNet等。这些技术创新不仅赢得了比赛,还广泛应用于现实世界中的图像识别、自动驾驶、医疗影像分析等领域。
六、中国团队的表现
在ILSVRC的历史上,中国团队也取得了显著的成绩。例如,在2016年的挑战赛中,来自中国的团队包揽了多个项目的冠军,展示了中国在计算机视觉领域的研究实力和技术水平。
综上所述,ImageNet大规模视觉识别挑战赛作为计算机视觉领域的标志性赛事,不仅推动了深度学习技术的突破,还培养了众多卓越的研究团队。未来,随着AI技术的不断进步,类似ILSVRC的赛事将继续推动技术创新,为各行各业带来更加智能化的解决方案。
贡献
AlexNet一一验证了深度卷积神经网络的高效性
主体贡献
1.提出了一种卷积层加全连接层的卷积神经网络结构
2. 首次使用ReLU函数做为神经网络的激活函数
3.首次提出Dropout正则化来控制过拟合
4.使用加入动量的小批量梯度下降算法加速了训练过程的收敛;
5.使用数据增强策略极大地抑制了训练过程的过拟合;
6.利用了GPU的并行计算能力,加速了网络的训练与推断。
解析
CONV1层
MaxP00L1层
MaxP00L1层:窗口大小3x3,步长为2( 重叠有助于对抗过拟合)
作用:降低特征图尺寸,对抗轻微的目标偏移带来的影响
输出尺寸: (55-3) /2+1 = 27
特征图个数:96
参数个数:0
NORM1层
局部相应归一化层(NORM1)作用
- 对局部神经元的活动创建竞争机制;
- 响应比较大的值变得相对更大;
- 抑制其他反馈较小的神经元;
- 增强模型的泛化能力
但是后来的研究表明:更深的网络中该层对分类性能的提升 效果并不明显,且会增加计算量与存储空间。
CONV2层
第二层(C0NV2):256个5x5卷积核(相当于在原图上用50×50卷积核去做卷积,增大了识别特征的概率,并缩减计算量,卷积结合律的好处),步长为1,使用零填充p=2
问题:输入:27x27x96大小的特征图组,输出特征图个数及尺寸为多少?
尺寸:(27-5+2*2)/1+1=27
个数:256
为什么不是256×96个?
输入特征图的通道数:输入特征图的通道数(例如RGB图像的3个通道,或上述中的96个通道)影响的是卷积核的深度(或称为卷积核的通道数)。每个卷积核的深度必须与输入特征图的通道数相匹配,以便能够正确地与输入特征图进行卷积操作。但是,这并不影响输出特征图的数量;它只影响卷积核本身的结构。
CONV3、CONV4层
第三、四层(CONV3、CONV4):384个3x3卷积核,步长为1,使用零填充p=1
问题:C0NV3输入:13x13x256大小的特征图组,输出特征图个数及尺寸为
多少?
尺寸:(13-3+2*1)/1+1=13
个数:384
CONV4,Max POOL3 层
第五层(CONV5):256个3x3卷积核,步长为1,使用零填充p=1
最大池化层来进一步缩小特征图尺寸
FC6、FC7、FC8层
(FC6、FC7、FC8):全连接神经网络分类器
MAXP00L3的输出:特征响应图组,展开为6×6×256=9216维向量
FC6输入:9216维向量
输出:图像类别概率
总结
- 用于提取图像特征的卷积层以及用于分类的全连接层是同时学习的;
- 卷积层与全连接层在学习过程中会相互影响、相互促进
- 重要技巧:
Dropout策略防止过拟合;
使用加入动量的随机梯度下降算法,加速收敛;
验证集损失不下降时,手动降低10倍的学习率;
采用样本增强策略增加训练样本数量,防止过拟合
集成多个模型,进一步提高精度
ZFNet
与AlexNet网络结构基本一致!
主要改进:
将第一个卷积层的卷积核大小改为了7×7;
将第二、第三个卷积层的卷积步长都设置为2;
增加了第三、第四个卷积层的卷积核个数
VGG
VGG网络贡献:
使用尺寸更小的3x3卷积核串联来获得更大的感受野;
放弃使用11x11和5x5这样的大尺寸卷积核
深度更深、非线性更强,网络的参数也更少;
去掉了AlexNet中的局部响应归一化层(LRN)层。
VGG16
- 13个卷积层与3个全连接
- 分为5段conv1,…",conv5,每一段中卷积层的卷积核个数均相同
- 所有卷积层均采用3x3的卷积核及ReLU激活函数;
- 所有的池化层都采用最大池化,其窗口大小为2x2、步长为2;
- 经过一次池化操作,其后卷积层的卷积核个数就增加一倍,直至到达512;
思考
问题:小卷积核有哪些优势?
假设卷积层输入和输出的特征图个数均为C:
三个3×3的卷积串联参数个数
(3×3×C)×C×3=27C^2
一个7×7的卷积层卷积参数个数
(7×7×C)×C=49C^2
**回答:**多个小尺寸的卷积核串联可以得到与大尺寸卷积核相同的感受野。使用小卷积核串联构成的网络深度更深,非线性更强,参数也更少。
**问题2:**为什么VGG网络前四段里,每经过一次池化操作,卷积核个数就增加一倍?
回答:
1.池化操作可以减小特征图尺寸,降低显存占用
2.增加卷积核个数有助于学习更多的结构特征,但会增加网络参数数量以及内存消耗
3.一减一增的设计平衡了识别精度与存储、计算开销
最终提升了网络性能!
**问题3:**为什么卷积核个数增加到512后就不再增加了?
回答:
1.第一个全连接层含102M参数,占总参数个数的74%;
2.这一层的参数个数是特征图的尺寸与个数的乘积;
3.参数过多容易过拟合,且不易被训练
如将最后一层卷积核个数增加至1024,这一层参数个数为:771024*4096=205,520,896≈200M
GoogleNet
GoogleNet的创新点:
- 提出了一种Inception结构,它能保留输入信号中的更多特征信息。
- 去掉了AlexNet的前两个全连接层,并采用了平均池化这一设计使得Google Net只有500万参数。比AlexNet变小了两倍。
- 在网络的中部加入了辅助分类器,克服了训练过程中的梯度消失问题。
Inception结构
网络中串联结构存在的问题----后面的卷积层只能处理前层输出的特征图,前层因某些原因,(比如感受野的限制)丢失了某些重要信息后层无法进行找回。
Inception结构是由Google开发的一种深度卷积神经网络架构,旨在解决计算机视觉领域中的图像分类和物体识别任务。以下是对Inception结构的详细介绍:
一、Inception结构简介
Inception结构最初在2014年被提出,并在ImageNet图像分类挑战赛上取得了显著成果。其设计灵感来源于模块化的思想,将不同尺度和不同层级的滤波器并行应用于输入,然后将它们的输出在通道维度上拼接在一起,形成了一个多分支的结构。这种并行使用不同卷积核尺寸的方式可以捕捉到不同尺度的图像特征,提高了网络对输入图像的理解能力。
二、Inception结构的核心组件
Inception模块是Inception架构的核心组件,它由多个并行的分支组成。每个分支都使用不同大小的卷积核进行卷积操作,例如1×1、3×3和5×5的卷积核。此外,为了减少参数数量和计算复杂度,每个分支都会在输入前使用1×1的卷积核进行降维处理。除了卷积层之外,Inception模块还包括池化层,可以帮助减小特征图的空间尺寸,从而提高计算效率和减少过拟合的风险。
三、Inception结构的演变版本
-
Inception v1(GoogLeNet):首次引入了Inception模块,该模块通过并行使用不同大小的卷积核和池化操作来捕获不同尺度的特征。为了减小计算量,GoogLeNet采用了1×1卷积作为“瓶颈层”来降低特征的通道数。
-
Inception v2:在v1的基础上引入了批量归一化(Batch Normalization),这有助于加速训练并提高模型的泛化能力。同时,v2还使用了小卷积核替代大卷积核,以进一步减少参数数量和计算复杂度。
-
Inception v3:整合了Inception v2的特点,并进行了更多改进。例如,不再直接使用max pooling层进行下采样,而是设计了两个并行的分支(一个是pooling层,另一个是卷积层),最后将两者结果拼接在一起。此外,还使用了RMSProp优化器和Factorized 7×7卷积等。
-
Inception v4:引入了一个新的stem模块,该模块放在Inception块之间执行。同时,Inception v4重新提出了三种新的Inception模块(A、B和C)。此外,还引入了专用的“缩减块”(reduction block),用于改变网格的宽度和高度。
四、Inception结构的设计原则
- 避免表征瓶颈:特别是在网络早期,应避免使用极端压缩导致的瓶颈。表征规模应平缓地从输入向输出递减,直到最终任务。
- 更高维度的表征:更容易在一个网络内本地化处理。在卷积网络中加大每层的激活能获得更多的非纠缠特征,可使网络训练更快速。
- 空间聚合:可以在更低维度嵌入上进行,不会损失或损失太多的体现能力。例如在进行3×3卷积之前,可以在空间聚合之前降低输入表征。
- 平衡网络的宽度和深度:通过平衡每阶段的过滤器数量和网络深度,可以实现网络的优化表现。同时提高宽度和深度可以提高网络质量,但只有在并行提高时才能对计算常量进行优化提升。
问题1:平均池化向量化与直接展开向量化有代么区别
五、Inception结构的应用与影响
Inception网络在计算机视觉领域得到了广泛应用,被用于图像分类、目标检测、图像生成等任务。其设计思想和结构对深度学习模型的发展和优化产生了重要影响和贡献。
综上所述,Inception结构是一种具有创新性和实用性的深度卷积神经网络架构,通过并行使用不同尺度的卷积核和池化操作,以及引入批量归一化、小卷积核替代大卷积核等改进方法,提高了网络对输入图像的理解能力和计算效率。