人工智能AI→计算机视觉→机器视觉→深度学习→在ImageNet有限小样本数据集中学习深度模型的识别任务实践三
在LeNet和ALexNet之后,又演进开发出ZFNet→VGG→GoogleNet→ResNet→FS→SeNet及MobileNet、EfficientNet等,而今天我们将重点介绍在前人基础上后续的诸多网络模型的结构发展演进及优缺点,并且对代表性网络结构改进点进行实践说明。
前言:
通过前篇《人工智能AI→计算机视觉→机器视觉→深度学习→在ImageNet有限小样本数据集中学习深度模型的识别任务实践二》的学习,我们对计算机视觉—机器视觉—深度学习—识别任务实践中:准备数据集制作、创建深度学习网络模型、训练网络模型和保存模型文件、模型测试评估、模型识别数据统计分析,这个开发过程有了进一步的认知学习;并且对深度学习网络模型从提出卷积神经网络LetNet(1988)雏形到创新应用网络模型AlexNet(2012)两款早期具有代表性的深度学习网络模型的提出、改进、然后应用于实践取得良好识别效果的主要网络模型结构发展进行了详细的讲述,从中也认识到:在科学技术前进的道路上那些为众人道的伟大的成绩往往都是很好的吸收了前人的知识积累,在此基础上做出来的科学合理的微小的结合实际应用需求的改进从而实现进一步的成绩。正是有了LeNet和ALexNet开创性的贡献,引出了后续诸多应用和基础领域通用和专用有效的深度学习模型:ZFNet→VGG→GoogleNet→ResNet→FS→SeNet及MobileNet、EfficientNet等,而今天我们将重点介绍在前人基础上后续的诸多网络模型的结构发展演进及优缺点,并且对代表性网络结构改进点进行实践说明。至此我们会完成了对ImageNet样本集图像识别任务主要网络模型的较为全面的应用学习,基于此我们后面将具备了对再有改进模型的学习和分析能力,以及工程实践方法;这个方法值得该领域学习、工作、工程应用研究者熟悉,因为基于实践应用的模型是层出不穷的,掌握该方法便能再接触到此类模型时很好地认知网络模型结构特点,并且更好运用模型。
图示基于ImageNet数据集的深度学习网络模型演进特点总结可知:
在LeNet、AlexNet模型基础演进的ZFNet、VGG、GoogleNet、ResNet、TS、SeNet等
1、深度学习网络模型层数逐步增多:5->8->8->19->22->152->152->152
2、卷积层增多、卷积核尺寸类型增多,尺寸元区域适当趋小更有利于获取丰富的图形特征;具体表现在ALexNet卷积核最大到1111,到ZFNet77,到VGG33这类模型目前都采用卷积、池化、激活函数等排列组合链式堆叠串联方式进行搭建。
3、从GoogleNet开始在原有卷积、池化、激活基础上增添了Inception结构:11、33、55的卷积核并联并且结合均值池化模块组成Inception结构(在这里我们暂且就用以往的卷积、池化网络结构链式按顺序排列组成网络结构成为链式串联结构,而Inception Architecture区别在于是卷积和池化的链接方式增加了并联组合链接结构以示两种网络结构的区别),优点是:保留输入信号中的更多特征信息,然后该Inception模块再和其他的卷积、池化等一起排列组合串联叠加进行网络搭建,其中AlexNet的前两个全连接层,采用了平均池化,这一设计使得GoogLeNet只有500万参数就可以。
4、ResNet相比普通网络每两层间增加了跳跃式链接机制:跨层连接(也称为跳跃连接或shortcut connection),每两层链接将输入信号直接添加到残差块的输出上,这就形成了残差学习,通过这种跳跃式/残差网络结构(residual network)可以把网络层数设置的很深,同时还能避免出现退化现象,保持良好的识别效果。
5、FS采用集成模型模式,取了Inception、Inception-ResNet、ResNet宽度残差网络模型识别结果取均值的集成应用模式。
6、SeNet采用通道注意力机制,在输入输出之间添加SE模块Squeeze-and-Excitation block:挤压激励采用平均池化,通道压缩生成描述符,然后通过非线性变换学习通道依赖关系,然后注意力系数与特征图进行相乘。SE注意力机制通过明确建模通道之间的相互依赖性,可以自适应地重新校准通道特征响应。
7、池化层增多、池化尺寸元根据采样计算需求设置
8、激活函数多采用ReLu,或者ReLu+Sigmoid;更有利于训练深层神经网络
9、综述这些改进使得深度学习网络模型的网络层数更纵深,结构从单纯的卷积池化链式串联,到Inception添加卷积池化串联结构,再到网络层数更深的残差网络结构避免梯度退化,以及添加SE模块通道注意力机制等,激活ReLu,Dropout,数据增广,GPU增强运算等使得在特定数据集里面的识别效果趋同人类。
后记:
到这里我们就完成了基于ImageNet数据集深度学习网络模型硕果累累的演进10年,基本上掌握了何为深度学习神经网络,原来具体点就是所谓的卷积神经网络CNN等、雏形就是LeNet(1989),到ALexNet(2012)在ImageNet数据集的优异表现被发掘步入大众视野,而由此人工智能时代深度学习网络模型+计算机视觉就开始燃爆了各行各业的应用场景研发,吸引着无数从业者,研究人员、学者教授、乃至普通生活的人们都倾注目光;然后诞生了ZFNet、VGG、GoogleNet、ResNet、TS、SeNet等深度学习网络模型。经过过去这10年-15年的发展在ImageNet图像数据集上计算机视觉这个领域的深度学习模型在学术研究层面达到了可被工业界工程应用的理论基础认可,开始广受赞助;而这是提供了图像分类识别的基础网络模型的框架和设计思路,借助于开源的力量,基础模型易于获取,从而为工程师们提供了开发的基础素材,在最后应用的实际工况里面记住这个基础从而得以发挥优势取得成绩。我们后续再基于此补充一篇程序实践将目前这款代表性演进网络进行程序实践在ImageNet数据集,大家可能也会发现,借助python语言和开源框架搭建深度学习网络模型并且验证识别结果这样的任务目标变得不难实现,其实的确是这样的,在深度学习领域python具有着广泛的受众面,将前沿的领域深度学习这些理解都很花费时间的模型在实践时候变得反而比理解更容易只要跟着指导步骤来做实现。作为好奇心,其实大家即使不在从这这个领域的人们,只要我们对人工智能的表现充满憧憬和期待的都可以大胆尝试,例如就从笔者这几篇辅助学习的资料着手,先不深究一些深度学习网络模型底层原理,重点关注其功能和实现方式,然后把用来说识别的目标任务明确,把搭建流程方法实践一遍体会:准备数据集制作、创建深度学习网络模型、训练网络模型和保存模型文件、模型测试评估、模型识别数据统计分析这样的操作实践,然后我想到那时候我们大家会对我们生活和工作中经常听到的人工智能的词汇有更具象化的认识,这个认识变得看得见,摸得着更加真实,辅助于简单基础特征提取、逻辑分析和概率统计理论我们会对在开篇我们说的那诸多的应用场景会有更具象化的通透:
“当你在停车场出入口时车牌号字符串总能被正确的自动提取识别,亦或邮政编码的手写字符串自动识别,
当你在超市收银台选择结算付款用人脸支付时你的个人面部信息也总能被正确识别并且对应到你的个人支付账户,
当你在智能工厂会发现装有摄像头的机械臂竟然能够识别工作台上面的各类工件分别是什么并且将其摆放到相应的物料框里;
每每看到这些你是否会想到承载这些生活、工作应用场景的智能系统和设备背后有那些科学技术在做支撑,这些智能技术是什么,都能有那些功能作用,同时能应用到那些生活和工作的应用场景? ”
当在看到这些场景时,你不再仅仅只是看到这些应用场景,而是更洞悉看到了原来这就是通过一些网络结构提取图像特征,通过对图像特征进行识别从而确定相应的类别名称:车牌号、手写字符串、人脸名字、工件等。在这个人工智能+计算机视觉+深度学习网络模型蓬勃发展的时代,通过这些理论学习和小的程序实践:深度学习网络模型程序运行在特定数据集的识别效果(后续补,基于笔者提供的方法这个是每个感兴趣的读者都可以亲自按照操作流程尝试调试网络资源开源框架的模型实现效果),我们就能参与、感受深度学习真实的巧妙作用,通过这个触碰这个时代人工智能深度学习的脉搏,基于这样的实践客观认知我们对未来生活和工作的期待会更加具象化和贴切。这对于即使是所有感兴趣的大家来说都是有吸引力的。
参考资料:
- 《计算机视觉与深度学习》哔哩哔哩学习视频教程资料,该系列帖子为辅助实践学习博客分享
- 《OpenCV图像算法》哔哩哔哩学习视频教程资料,该系列帖子为辅助实践学习博客分享
- 《机器视觉技术》:人工智能->计算机视觉->机器视觉/深度学习领域——推荐一本书系列专栏
- 用通俗易懂的方式讲解:LeNet与AlexNet原理
- ZF深度学习算法
- 并联组合链接结构Inception Architecture—GoogLeNet
- VGG在ImageNet识别
- 深入浅出之Resnet网络
- 深度学习经典网络学习ResNet
- 前篇《人工智能AI→计算机视觉→机器视觉→深度学习→在ImageNet有限小样本数据集中学习深度模型的识别任务实践二》
- SeNet模型原理及代码介绍
- 通道注意力机制SeNet详解
更多推荐




所有评论(0)