首页 > 其他分享 >人工智能AI→计算机视觉→机器视觉→深度学习→在ImageNet有限小样本数据集中学习深度模型的识别任务实践二

人工智能AI→计算机视觉→机器视觉→深度学习→在ImageNet有限小样本数据集中学习深度模型的识别任务实践二

时间:2024-11-14 12:44:51浏览次数:3  
标签:AI 32 模型 深度 卷积 LeNet 视觉 self

前言:
通过前篇《人工智能AI→计算机视觉→机器视觉→深度学习→在ImageNet有限小样本数据集中学习深度模型的识别任务实践》我们可以学到如何对实际生活、工作场景中的字符识别、人脸识别、图像类别进行识别的基于深度学习方法的技术路径实现具体包括:准备数据集制作创建深度学习网络模型训练网络模型和保存模型文件模型测试评估模型识别数据统计分析,这个开发过程值得熟悉,后续我们基于工程实践的应用开发大多用到,区别之处在于不同应用场景采用模型相应适配即可,必要时候进行模型的主体框架设计、参数设置、或者改进以满足实际应用需求。
初入该领域的专业同学、工程师、技术工作者、研究人员、或者相关领域涉及这块的从业者可能会听到很多关于深度学习模型及结构的名称的描述词汇、例如LeNet、AlexNet、ZFNet、VGG、GoogleNet、ResNet、FS、SeNet、CNN、RNN、BP、Inception、Transformer,诸多的命名深度学习网络模型是否有种不知从而入手的感觉,那么该帖子《人工智能AI→计算机视觉→机器视觉→深度学习→在ImageNet有限小样本数据集中学习深度模型的识别任务实践二》实践二就我们一起来探明究竟这类模型的结构相同点以及演进后的创新点,并且这样改进的原因和效果,从而通过关键的模型研究洞悉其本质结构特点,从而为后续再接触到新的模型也能够掌握分析其结构和识别效果的评估依据,从而有对其的认知:模型是什么、能用来做那块应用、模型识别的效果能够什么程度;而这就是我们今天学习的任务目标。
ImageNet大赛冠军模型及其结构特点

1、LeNet模型简介
前篇我们讲述了操作流程,如果我们期望在特定应用场景改进我们模型实现更好的识别效果,那么可在创建深度学习网络模型这块进行研究和钻研,其次是制作数据集层面算力是支撑。那我们就从LeNet→AlexNet→ZFNet→VGG→GoogleNet→ResNet→FS→SeNet开始讲解模型的构成和改进那些点有怎样的识别效果。借鉴我们之前帖子中描述模型AlexNet的方式,描述LeNet其结构原理图及程序实现。
大家可能会说已经学过了AlexNet(2012),为什么还要往回再学LeNet(1987年研究卷积神经网络,1989年首次提出LeNet网络模型雏形,1998年发表LeNet-5论文应用于实践得到验证,真正意义上的卷积神经网络)网络结构呢:原因有两点①LeNet是由LeCun杨立昆等人提出于1998年提出的一种用于手写体字符识别的非常高效的卷积神经网络。当年美国大多数银行和邮局就是用它来识别支票和信封上面的手写数字的。它的识别准确性非常高,并且模型简洁,其开创性的采用了卷积操作来实现特征提取,也是后续各大神经网络的伊始!在2018年,LeCun与Geoffrey Hinton(2024年诺贝尔物理奖获得者,正是其团队的AlexNet网络模型在ImageNet2012获得冠军)和Yoshua Bengio一起获得了图灵奖(被称为“计算机界的诺贝尔奖”),因为他们在深度学习方面的贡献,他们三人有时被称为“深度学习三巨头”。② LeNet在深度学习和卷积神经网络领域是“0—1”的开创性基础研究贡献,而AlexNet属于在此基础上“1—N”的创新突破将原来仅限于手写字符识别的应用扩展到其他更多图像识别领域并且成功率显著提升。从LeNet到Alexnet模型简洁改进明确易于说明清楚和理解,后面更多深层的网络改进原理都可以参考此类方法,具有通识性。

2、LeNet模型结构解析:
LeNet:也称Lenet-5,共5个隐藏层(2个卷积层和3个全连接层,最后一个全链接层为输出层)。LeNet网络模型结构原理图参考示意图
这里我们卷积用C表示,池化用S表示,全连接用FC表示,本工程实践中LeNet网络模型结构为两块:
①初始化init模块网络层设置:input(33232)→C1(3,16,5)→S(2,2)→C2(16,32,5)→S(2,2)→FC1(3255,120)→FC2(120,84)→FC3(84,10)
②forward前向传递模块数据流向:input→C1→reLu激活→S→C2→reLu激活→S→flattern→FC1→reLu激活→FC2→reLu激活→FC3(输出层classNum)

3、LeNet网络模型程序搭建:
程序实现放在文件里:本系列博客中涉及到的模型构建程序都放在文件里,调用相应的模型只需要找到对应模型的调用,然后训练时和推理预测时只需要找到创建工程的和做简单参数设置适配即可,在前篇程序实践部分都有完整源码参考到,后续该系列模型使用讲解都可适用:
#程序开始

import torch.nn as nn
import torch.nn.functional as F

class LeNet(nn.Module):
    def __init__(self):
        super(LeNet, self).__init__()
        #卷积C1输入3*32*32,卷积核5*5,输出16特征值
        self.conv1 = nn.Conv2d(in_channels=3, out_channels=16, kernel_size=5)
        #池化S参数设置
        self.pool1 = nn.MaxPool2d(2, 2)
        #卷积C2层参数设置
        self.conv2 = nn.Conv2d(in_channels=16, out_channels=32,kernel_size= 5)
        #池化层S参数设置
        self.pool2 = nn.MaxPool2d(2, 2)
        #全连接层参数设置
        self.fc1 = nn.Linear(32*5*5, 120)
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)

    def forward(self, x):
        #前向网络设置,数据流向,卷积、激活、池化连续叠加两次,然后全连接、激活叠加两次,x.view一层,最后输出全连接层就是输出层sofmax
        x = F.relu(self.conv1(x))    # input(3, 32, 32) output(16, 28, 28)#卷积C1、激活relu。输入输出的计算公式参考附图。
        x = self.pool1(x)            # output(16, 14, 14)#池化
        x = F.relu(self.conv2(x))    # output(32, 10, 10)#卷积C2、激活relu
        x = self.pool2(x)            # output(32, 5, 5)#池化
        x = x.view(-1, 32*5*5)       # output(32*5*5)
        x = F.relu(self.fc1(x))      # output(120)#全连接FC1,激活relu
        x = F.relu(self.fc2(x))      # output(84)#全连接FC2,激活relu
        x = self.fc3(x)              # output(10)#全连接输出层
        return x

##程序完成
程序中涉及到如何计算input(3,32,32)图像数据时,如何按照前面设置参数计算该层卷积的输出有相应的计算公式如图所示:
卷积运算输出计算公式
4、LeNet网络模型和ALexNet网络模型的相同点和不同点
通过对LeNet网络结构和程序实现的学习,让我们再结合之前学到的Alexnet网络模型结构和程序实现对比分析我们发现了一些在深度学习领域较为普遍的模型搭建的技巧和原理:
当前实践中LeNet-5与ALexnet两款模型结构对比
总结采用的实践二中两款模型的区别:相同点和不同点
①LeNet模型和AlexNet模型都是基于卷积、池化、激活函数、前向传递等这些个通用的基础科学原理的积木/轮子模块通过排列、组合、叠
加等的方式组建起来的网络模型,我们学习到这一步也先暂且不去考虑卷积、池化、激活等这些具体积木/轮子里面到底怎样的数学公式和
原理,先侧重知道其在模型中的功能即可,重点跟着脚步梳理出来我们这个模型的整体组成结构,并且熟悉这些结构组成和相互之间的异
同之处。
②ALexNet在LeNet基础上的区别:a、LeNet5层网络模型,Alexnet8层网络,网络层数深度增加,通道数增加,卷积核尺寸设置
b、激活函数采用ReLU函数,减少梯度消失现象,和之前采用的sigmoid相比更有利于训练深层网络模型
c、使用Dropout抑制过拟合(算法模型比数据模型复杂)
d、数据增广,随机加一些预处理方法平移缩放裁剪旋转、翻转或者增减亮度等,扩大训练数据集复杂度
e、使用GPU训练,增强计算能力,重叠池化层缓解过拟合

后记:
到目前为止我们已经完成了开创型卷积神经网络LeNet(1988)和在此基础上应用扩展创新型深度网络模型AlexNet(2012)两款早期具有代表性的深度学习网络模型的结构组成、原理简介、程序实践。大家是否会和笔者一样产生一些感悟:从LeNet(1988)到AlexNet(2012)早起的两款模型的改进从网络层数的5→8层,以及激活函数选用ReLU,采用Dropout等方法防止过拟合等,其实模型本身的改进变动是微小的,但是产生的应用识别效果却是很显著的;而这微小的改进得到大众所认知却是ImageNet2012年在图像识别赛事中正确率远远提升获得冠军后才为众人所看到,用了从1988年到2012年有24年时间的沉淀积累摸索发展才实现的(而且要知道仅仅是LeNet演进的过程:1987年开始研究卷积神经网络CNN,从1989年首次提出网络模型雏形LeNet到不断调试应用于实践并且于1998发表LeNet-5版本网络模型的论文都用了10年时间)。深度学习网络模型的改进是一方面,另一方面借助于ImageNet大规模数据集的学习素材实现了数据集数据量保证,同时同时期能够实现的计算能力的保证,在这三个领域的共同前进发展基础上从而使得ALexNet图像识别效果被发掘。从中也告诉我们在科学技术前进的道路上那些为众人道的伟大的成绩往往都是很好的吸收了前人的知识积累,在此基础上做出来的科学合理的微小的创新从而实现进一步的成绩。 正是有了LeNet和ALexNet开创性的贡献,引出了后续诸多应用和基础领域通用和专用有效的深度学习模型:ZFNet→VGG→GoogleNet→ResNet→FS→SeNet及MobileNet、EfficientNet等,这也是我们续篇应用实践学习的重点,并且真正意义上拓宽了网络模型的深度到更深的量级,正式开启了深度学习网络模型富有创造力的大模型时代。

参考资料:

  1. 《计算机视觉与深度学习》哔哩哔哩学习视频教程资料,该系列帖子为辅助实践技术博客分享
  2. 《OpenCV图像算法》哔哩哔哩学习视频教程资料,该系列帖子为辅助实践技术博客分享
  3. 《为什么想到也要写点内容分享与大家》
  4. 前篇《人工智能AI→计算机视觉→机器视觉→深度学习→在ImageNet有限小样本数据集中学习深度模型的识别任务实践》
  5. LeNet论文阅读笔记《Gradient-Based Learning Applied to Document Recognition》
  6. ALexNet论文阅读笔记《ImageNet Classification with Deep Convolutional Neural Networks》
  7. ImageNet大规模视觉识别任务
  8. 用通俗易懂的方式讲解:LeNet与AlexNet原理

标签:AI,32,模型,深度,卷积,LeNet,视觉,self
From: https://blog.csdn.net/qq_14904071/article/details/143657890

相关文章

  • OpenAI官方发布:利用ChatGPT提升写作的12条指南
    近日,OpenAI官方发布了学生如何利用ChatGPT提升写作的12条指南,值得深入研究学习。在如今AIGC应用爆发增长的时间点,如何充分利用生成式AI工具,如ChatGPT,有效切快速的提升写作和学习能力,成为每个学生、学者、甚至职场人必须掌握的技能之一。以下十二个操作技巧,将为您提供全新的......
  • 分享Illustrator(AI)中文版安装包百度云资源下载
    随着科技的发展和人工智能的日益强大,在我们日常生活和工作种,经常会听到AI这个名词。实际上,今天我们文章讲的AI,并非人工智能。AdobeIllustrator,简称AI,是一种应用于出版、多媒体和在线图像的工业标准矢量插画的软件。Illustrator集图形、图像编辑处理、网页动画、向量动画制作......
  • 17岁少年4个月内凭借AI赚取百万,全民AI产品经理时代来了!
    随着AI时代的到来叠加经济下行,越来越多的独立开发者梦想着实现年入百万的壮举。近日,这种小概率事件正在发生。17岁高中生做了个AIAPP,短短四个月销售额达100万美元。小伙儿ZachYadegari(下面暂称小扎克)在X上炫战绩,引来大量网友围观。小扎克发文表示,CalAI的收入超过了......
  • 如何打造你的AI大模型:开源大模型指南
    本地大语言模型为什么要用开源模型大语言模型有两种类型:闭源的模型,如GPT-3.5、GPT-4、Cluade、文心一言等开源的模型,如LLaMA、ChatGLM,Qianwen等开源模型的优势已知目前最强的gpt4等大模型是商用闭源的,这些模型参数更大,更加智能,为什么我们会关注开源模型呢?可......
  • AI做小红书小绿书创作,一键打造热门笔记,轻松实现躺赢收入!(Coze工作流)
    最近小红书和小绿书图文二创非常火爆!今天我们就实战拆解一下使用Coze让AI自动完成爆款笔记。操作思路,根据同行爆款笔记,投喂给AI,让AI二创来出标题、文案和配图。图文二创工作流拆分:提取笔记内容-文案重写-文案配图-内容发布。1.内容提取:浏览小红书,寻找热门笔记。提取笔记......
  • AI赋能电商:提升销售效率与用户体验的新引擎
    在数字化时代,人工智能(AI)技术正逐步渗透到各行各业,其中电商行业尤为显著。AI技术的引入不仅为电商平台带来了前所未有的创新应用,还极大地提升了销售效率和用户体验。本文将探讨AI技术在购物推荐、会员分类、商品定价等方面的应用,并分享如何运用AI技术推动电商平台的数字化转型,为......
  • 刷题答题脚本—>接入AI (python+css)
    刷题答题脚本———接入AIgithub地址:https://github.com/LY-zhang-yi-hao/do-homework-AI-python创作不易,github点个star,有时间分享更多实用代码,谢谢!本项目使得刷题的脚本的编写下限变低,利用阿里云模型回答问题,不需要进行题库的编写或网页搜索。将问题发送给AI,拿到答案后,进行......
  • 深度学习模型的原理、应用与未来发展
    深度学习(DeepLearning)是机器学习的一个分支,已在近十年里取得了巨大进展,推动了人工智能(AI)的跨越式发展。从自动驾驶、语音识别到医疗诊断,深度学习正在深刻影响各行各业。本文将对深度学习模型的基本原理、常见模型类型、实际应用以及未来趋势进行详细介绍,以帮助读者更深入地理......
  • java 使用开源免费API实现翻译功能 - 代码基于spring ai和国产大模型
    大模型技术推动翻译进入新阶段过去,我们主要依赖百度或其他团队提供的翻译API来实现中英、英中、日中、中日等多种语言间的翻译。然而,随着大模型技术的发展,其在内容理解能力上已远超传统翻译工具。现在,我们可以完全依靠这些先进的大模型来进行更准确、自然的多语言翻译工作,这......
  • AI技术在提高电商平台销售效率方面发挥的作用
    在电商行业,AI技术的应用正在重塑从用户交互到供应链管理的各个方面,为电商平台提升销售效率和用户体验带来了全新可能性。以下是一些创新的AI应用领域:1.智能购物推荐系统个性化推荐:基于用户的浏览历史、购买记录和偏好,AI可以通过机器学习模型(如协同过滤、深度学习等)生成个......