深度学习:5种经典神经网络模型介绍

news2024/11/28 6:40:48

目录

1. LeNet:CNN的鼻祖

2. AlexNet:深度学习的开山之作

3. VGGNet:深度与简洁的结合

4. GoogLeNet:Inception模块的创新

5. ResNet:残差学习的革命


卷积神经网络(CNN)已经发展为图像识别、视频分析和自然语言处理等领域的核心工具

本文将介绍五种在深度学习领域常见的CNN模型,分别是LeNetAlexNetVGGNetGoogLeNetResNet

1. LeNet:CNN的鼻祖

LeNet网络 是最早的卷积神经网络之一,由Yann LeCun等人于1998年提出。它主要用于手写数字识别任务,是深度学习和CNN历史上的一个重要里程碑。

该模型的提出主要应用于手写数字的识别任务

其网络结构如下:

  • 输入层:接收原始图像数据。

  • 卷积层:使用多个卷积核(或滤波器)来提取图像的局部特征。LeNet通常包含两个卷积层。

  • 池化层:在卷积层之后,使用池化操作来降低特征图的空间维度,同时保留重要的特征信息。

  • 全连接层:卷积层和池化层提取的特征被展平并传递到一个或多个全连接层,这些层负责进行更高层次的特征整合。

  • 输出层:最后一个全连接层的输出被传递到一个分类层,通常是一个softmax层,用于生成最终的类别概率。

 

LeNet 的典型结构如下:卷积层1+池化层1+卷积层2+池化层2+全连接层1+全连接层2+输出层

  1. 卷积层1:使用6个5x5的卷积核,步长为1,输出6个特征图。

  2. 池化层1:使用2x2的池化窗口,步长为2。

  3. 卷积层2:使用16个5x5的卷积核,步长为1,输出16个特征图。

  4. 池化层2:使用2x2的池化窗口,步长为2。

  5. 全连接层1:将特征图展平并连接到120个神经元。

  6. 全连接层2:将120个神经元的输出连接到84个神经元。

  7. 输出层:将84个神经元的输出连接到10个神经元,对应于数字0到9的分类。

LeNet 的结构虽然简单,但却奠定了后续CNN发展的基础。

2. AlexNet:深度学习的开山之作

2012年,Alex Krizhevsky等人提出的AlexNet在ImageNet竞赛中取得了突破性的成绩,推动了深度学习的发展。AlexNet是一个具有8层的深度网络,使用ReLU激活函数局部响应归一化(Local Response Normalization, LRN)技术,引入了多GPU训练的概念。

AlexNet架构的特点如下:

  1. 深度结构:AlexNet是一个具有8层的深度网络,其中5层是卷积层,2层是全连接层,还有3层是池化层。

  2. ReLU激活函数:在卷积层和全连接层之后使用ReLU(Rectified Linear Unit)作为激活函数,这有助于解决梯度消失问题,加速训练过程。

  3. 局部响应归一化:在池化层之后使用LRN,有助于提高模型的泛化能力。

  4. 数据增强:通过随机裁剪和水平翻转等技术对训练图像进行数据增强,以减少过拟合。

  5. Dropout:在训练过程中使用Dropout技术,随机丢弃一些神经元的输出,以防止模型对训练数据过度拟合。

  6. 多GPU训练:AlexNet是第一个使用多个GPU进行训练的CNN模型,这大大提高了训练效率。

AlexNet的具体结构如下:卷积层1+池化层1+卷积层2+池化层2+卷积层3+卷积层4+卷积层5+池化层3+全连接层1+全连接层2+输出层

  • 卷积层1:96个滤波器,11x11大小,步长4,后跟ReLU激活函数。

  • 池化层1:3x3大小,步长2。

  • 局部响应归一化1

  • 卷积层2:256个滤波器,5x5大小,步长1,后跟ReLU激活函数。

  • 池化层2:3x3大小,步长2。

  • 局部响应归一化2

  • 卷积层3:384个滤波器,3x3大小,步长1,后跟ReLU激活函数。

  • 卷积层4:384个滤波器,3x3大小,步长1,后跟ReLU激活函数。

  • 卷积层5:256个滤波器,3x3大小,步长1,后跟ReLU激活函数。

  • 池化层3:3x3大小。

  • 全连接层1:4096个神经元,后跟ReLU激活函数和Dropout。

  • 全连接层2:4096个神经元,后跟ReLU激活函数和Dropout。

  • 输出层:1000个神经元,使用softmax激活函数进行分类。

值得一提的是,alexNet 是端到端神经网络模型的开山之作

3. VGGNet:深度与简洁的结合

牛津大学的视觉几何组于2014年提出的VGGNet,以其深层结构3x3小卷积核而闻名。VGGNet展示了通过增加网络深度和使用小卷积核可以有效地提高模型性能。在ImageNet竞赛中取得了优异的成绩,并且因其简洁的设计和强大的性能而广受欢迎。

VGGNet的主要特点包括:

  1. 深层结构:VGGNet采用了更深的网络结构,最初的版本有16层(VGG-16),还有一个更小的版本有13层(VGG-13)。深度是VGGNet能够学习更复杂特征的关键。

  2. 小卷积核:与AlexNet使用的大卷积核不同,VGGNet使用了3x3的小卷积核,并且通过堆叠多个卷积层来捕获更广泛的空间特征。

  3. 连续的卷积层:在每个卷积层之后,VGGNet通常会连续使用更多的卷积层,而不是像AlexNet那样在卷积层和池化层之间交替。

  4. 池化层:VGGNet在连续的卷积层之后使用2x2的池化层,步长为2,以减少特征图的空间尺寸。

  5. 全连接层:在卷积和池化层之后,VGGNet使用几个全连接层,最终输出层使用softmax激活函数进行分类。

  6. 网络初始化:VGGNet采用了一种特定的权重初始化方法,这有助于加速训练过程并提高模型性能。

  7. 数据增强:VGGNet同样使用了数据增强技术,包括随机裁剪和水平翻转,以提高模型的泛化能力。

卷积层1(64个3x3卷积核)+ReLU激活函数+卷积层2(64个3x3卷积核)+ReLU激活函数+2x2池化层1

+卷积层3(128个3x3卷积核)+ReLU激活函数+卷积层4(128个3x3卷积核)+ReLU激活函数+2x2池化层2

+卷积层5(256个3x3卷积核)+ReLU激活函数+卷积层6(256个3x3卷积核)+ReLU激活函数+2x2池化层3

+卷积层7(512个3x3卷积核)+ReLU激活函数+卷积层8(512个3x3卷积核)+ReLU激活函数+2x2池化层4

+卷积层9(512个3x3卷积核)+ReLU激活函数+卷积层10(512个3x3卷积核)+ReLU激活函数+2x2池化层5

+全连接层1(4096个神经元)+全连接层2(4096个神经元)+输出层(1000个神经元)+ softmax激活函数(分类)。

VGG提出了小的卷积核代替大的卷积核的概念,几乎从vgg提出起,3*3连续的小卷积核成为了主流

4. GoogLeNet:Inception模块的创新

GoogLeNet,又称Inception网络,由Google研究人员在2014年提出。它引入了一种新的网络设计思路,即Inception模块,允许网络自动决定在不同尺度上使用哪种类型的卷积或池化操作,提高了模型的效率和性能。

Inception模块的核心思想是在同一层中并行地应用不同尺寸的卷积核,然后将结果在深度方向上合并。这样做的好处是可以捕获不同尺度的特征,而不需要手动设计网络结构来适应不同尺寸的特征。

一个典型的Inception模块包含以下部分:

  • 1x1卷积:用于跨通道降维或升维,有助于减少计算量和控制模型大小。

  • 3x3卷积:首先通过1x1卷积降维,然后应用3x3卷积。

  • 5x5卷积:首先通过1x1卷积降维,然后应用5x5卷积,通常5x5卷积之前会先应用一个3x3的最大池化来减小计算区域。

  • 3x3最大池化:直接在输入上应用3x3的最大池化,然后通过1x1卷积进行升维。

GoogLeNet的整体架构如下:

  • 输入层:接受原始图像数据。

  • 卷积层:一个64个滤波器的卷积层,使用7x7卷积核,步长为2,后跟ReLU激活函数。

  • 池化层:5x5的最大池化,步长为3。

  • Inception模块:多个Inception模块堆叠,每个模块包含不同尺寸的卷积和池化操作。

  • 辅助分类器:在网络中间部分添加辅助分类器,可以帮助网络学习更早的特征,并且提供额外的损失信号,有助于防止过拟合。

  • 全连接层:在多个Inception模块之后,使用全连接层进行特征整合。

  • 输出层:使用softmax激活函数的1000个神经元输出层,用于分类。

GoogLeNet的创新之处在于其Inception模块的设计,这种设计后来也被用于其他网络架构中,如Inception-v2、Inception-v3等。GoogLeNet展示了通过并行化不同尺寸的卷积操作,可以有效地提高网络的性能和效率。

此外,辅助分类器的引入也是GoogLeNet的一个重要特点,它有助于提高模型的泛化能力和训练稳定性。

5. ResNet:残差学习的革命

2015年,微软研究院提出的残差网络(Residual Networks,ResNet)通过引入残差学习框架,解决了深层网络训练中的梯度消失问题。在2015年的ImageNet和COCO竞赛中取得了优异的成绩,并因其解决深层网络训练难题的能力而广受关注。

残差学习:

ResNet的核心创新是残差学习框架,它通过引入跳跃连接(skip connections)或快捷连接(shortcut connections)来解决随着网络深度增加时训练难度增大的问题。这些连接允许网络中的信号绕过一层或多层直接传递,从而帮助梯度在网络中更有效地传播。

残差块

ResNet的基本单元是残差块(residual block),它包含两个卷积层,以及一个跳跃连接,该连接将块的输入直接添加到块的输出。如果输入和输出的维度不匹配,会在跳跃连接上使用1x1卷积来进行维度调整。

一个典型的残差块结构如下:

首先,输入通过卷积层1(通常有批量归一化ReLU激活函数)。然后,通过卷积层2(同样有批量归一化和ReLU激活函数,但在卷积层2之前没有ReLU)。之后,输入通过1x1卷积(如果需要)调整维度,然后与卷积层2的输出相加。最后,通过ReLU激活函数。

ResNet的不同版本

  • ResNet-18:含有18层的残差网络。

  • ResNet-34:含有34层的残差网络。

  • ResNet-50:含有50层的残差网络,是最常见的ResNet版本之一。

  • ResNet-101:含有101层的残差网络。

  • ResNet-152:含有152层的残度网络。

ResNet的架构特点

  • 批量归一化:ResNet在每个卷积层之后使用批量归一化,有助于加速训练过程并提高模型的稳定性。

  • ReLU激活函数:在卷积层之后使用ReLU作为激活函数。残差块:通过残差块结构,ResNet可以有效地训练非常深的网络。

  • 全局平均池化:在残差块之后,ResNet使用全局平均池化来减少全连接层的参数数量。

  • 全连接层和输出层:在全局平均池化之后,使用全连接层进行特征整合,最终输出层使用softmax激活函数进行分类。

ResNet的成功在于它提供了一种有效的方法来训练深层网络,使得网络可以更深而不会遇到梯度消失或梯度爆炸的问题

此外,ResNet的架构也启发了后续许多其他网络架构的发展,如DenseNet、ResNeXt等。

关于网络的具体实现以及完整项目,参考这个专栏即可:

图像分类_听风吹等浪起的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2192425.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

张雪峰谈人工智能技术应用专业的就业前景!

一、张雪峰谈人工智能技术应用专业 在教育咨询领域,张雪峰老师以其深入浅出的讲解和前瞻性的视角,为广大学子提供了宝贵的专业选择建议。对于人工智能技术应用专业,张雪峰老师通常给予高度评价,认为这是一个充满无限可能且就业前…

DELL SC compellent存储的四种访问方式

DELL SC存储(国内翻译为 康贝存储,英文是compellent), compellent存储是dell在大概10多年前收购的一家存储,原来这个公司就叫做compellent。 本文的阅读对象是第一次接触SC存储的技术朋友们,如何访问和管理SC存储。总…

陀螺仪LSM6DSV16X与AI集成(13)----中断获取SFLP四元数

陀螺仪LSM6DSV16X与AI集成.13--中断获取SFLP四元数 概述视频教学样品申请源码下载硬件准备SFLP开启INT中断中断读取传感器数据主程序演示 概述 本文将介绍如何通过中断机制获取 LSM6DSV16X 传感器的 SFLP(Sensor Fusion Low Power)四元数数据。LSM6DSV1…

深入剖析 Golang 的错误处理机制:让你的代码更加健壮与优雅

在 Go 语言中,错误处理是程序健壮性的重要组成部分。不同于许多其他编程语言使用的 try-catch 异常处理机制,Go 采用了一种更加简洁的方式,通过函数返回值处理错误。这种设计使得错误处理逻辑更加显式,代码也更容易理解和维护。 文…

Python 工具库每日推荐 【markdown2】

文章目录 引言Python文本处理库的重要性今日推荐:markdown2工具库主要功能:使用场景:安装与配置快速上手示例代码转换为HTML代码解释实际应用案例案例:博客文章处理案例分析高级特性自定义扩展安全模式命令行使用性能优化技巧扩展阅读与资源优缺点分析优点:缺点:总结【 已…

Byzantine setting 拜占庭环境

优秀教程 拜占庭将军问题(The Byzantine Generals Problem): 拜占庭将军问题(The Byzantine Generals Problem) Byzantine setting 在联邦学习和分布式计算中,“Byzantine setting”(拜占庭环境)是指一个分布式系统中的部分参与者可能表现出…

SE-Net模型实现猴痘病识别

关于深度实战社区 我们是一个深度学习领域的独立工作室。团队成员有:中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等,曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝,拥有2篇国家级人工智能发明专利。 社区特色…

国庆出行怎么能少了这款美食

🎈国庆出游,怎能少了白吉饼!🎉宝子们,国庆假期大家都在哪里玩耍呀?今天我必须给大家强烈安利国庆旅游必带美食 ——食家巷白吉饼。😋白吉饼看似普通,却有着独特的魅力。它的外表金黄…

pip install dlib 失败报错的解决方案

pip install dlib 失败报错: 解决方案: 我是按照下面三条指令按照就能解决问题 pip install cmake -i https://pypi.tuna.tsinghua.edu.cn/simple pip install boost -i https://pypi.tuna.tsinghua.edu.cn/simple pip install dlib -i https://p…

Stm32新建工程

库函数的开发方式。能够了解底层逻辑。 HAL库的开方式。快速上手,理解浅。 库函数的文件目录 Libraries里面就是库函数的文件 project官方实例的工程和模板,可以参考库函数 Utilities,官方在用电路测评STM32时使用的程序。 蓝色为库函数的发…

机器学习课程学习周报十五

机器学习课程学习周报十五 文章目录 机器学习课程学习周报十五摘要Abstract一、机器学习部分1. 统计推断与贝叶斯推断2. GMM和EM算法补充3. 马尔可夫链蒙特卡罗法3.1 蒙特卡罗法3.2 马尔可夫链3.3 Diffusion模型中的马尔可夫链 总结 摘要 本周的学习涵盖了统计推断和贝叶斯推断…

布匹瑕疵检测数据集 4类 2800张 布料缺陷 带标注 voc yolo

布匹瑕疵检测数据集 4类 2800张 布料缺陷 带标注 voc yolo 对应标注,格式VOC (XML),选配Y0L0(TXT) label| pic_ num| box_ _num hole: (425, 481) suspension_ wire: (1739, 1782) topbasi: (46, 46) dirty: (613&…

近期最佳港片,探讨家庭与希望,结尾让人心碎

在当下的电影环境中,香港电影正在经历一场颇具深意的转变,逐渐将目光投向普通人的生活。这种变化在《但愿人长久》中体现得淋漓尽致,影片通过一个家庭的悲欢离合,让人深刻感受到人性的复杂。吴慷仁在片中扮演的角色,无…

github项目——系统设计入门

今天的github趋势,有几个项目印象感觉很有意思,之后可能会用的上,记录一下 系统设计入门 书籍教程类项目,有中文文档,刚好需要。 https://github.com/donnemartin/system-design-primer/blob/master/README-zh-Hans.md…

从零开始讲PCIe(9)——PCIe总线体系结构

一、分层结构 PCIe定义了一个分层架构,如图2-12所示。这些层逻辑上分为两个部分,分别独立运行:一个用于发送侧,另一个用于接收侧。分层方法对硬件设计者是很有好的,因为如果逻辑划分得当,在迁移到新版本的P…

Semantic Communications With AI Tasks——面向图像分类任务的语义传输系统

论文链接: 2109.14170 (arxiv.org)https://arxiv.org/pdf/2109.14170 1. 背景 无线网络从“万物互联”向“智能互联”转变的范式变化,这与香农和韦弗关于通信演变的预言相一致。传统的无线网络侧重于信号的准确传输(技术层面)&…

《CUDA编程》5.获得GPU加速的关键

从本章起&#xff0c;将关注CDUA程序的性能&#xff0c;即执行速度 1 用CUDA事件计时 在前几章中&#xff0c;使用的是C的<time.h>库进行程序运行计时&#xff0c;CUDA也提供了一种基于CUDA event的计时方式&#xff0c;用来给一段CUDA代码进行计时&#xff0c;这里只介…

数字化营销:开启商业新征程

在当今数字化时代&#xff0c;数字化营销已成为企业竞争的关键利器。 数字化营销有着完整的体系。首先是目标设定与市场分析&#xff0c;明确如提高品牌知名度、增加销量等目标&#xff0c;并通过市场调研了解消费者需求。接着是客户洞察与定位&#xff0c;收集客户数据构建画像…

安装最新 MySQL 8.0 数据库(教学用)

安装 MySQL 8.0 数据库&#xff08;教学用&#xff09; 文章目录 安装 MySQL 8.0 数据库&#xff08;教学用&#xff09;前言MySQL历史一、第一步二、下载三、安装四、使用五、语法总结 前言 根据 DB-Engines 网站的数据库流行度排名&#xff08;2024年&#xff09;&#xff0…

面试官:MySQL 什么时候会出现死锁问题?为什么不推荐使用RR隔离级别?

欢迎关注公众号 【11来了】 &#xff0c;持续 MyBatis 源码系列内容&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址&#xff1a;点击查看文章导读&#xff01; 感谢你的关注&#xff…