比较LeNet、AlexNet、VGG和ResNet模型及其优缺点的实际实验。

news2024/11/26 9:51:28
 

一、说明

        卷积神经网络,有很多种类,这不仅仅是各种试验或尝试。而且是已经设计好的网络存在若干不尽人意之处,需要弥补和改进。因此,本文就是记录这些网络的优缺点,从新意上说,本文全无,但是从启发初学者还是有点意义。

 非洲野生动物图像集中的几张图像

二、基础操作

2.1 实验使用的数据集

        我开始学习神经网络和 CNN 中的不同模型架构。在这里,我写了关于 4 个模型架构的文章,以及我在这 4 个模型上训练图像集时的发现。撰写本文仅用于学习目的,并更好地了解我们在这些模型中看到的改进。

        这里的所有观察结果都与一个图像集相关,不能作为模型性能的衡量标准。哪种模型最适合取决于每个用例。例如,如果您了解我的金属铸造项目,就会发现简单的 CNN 模型往往比 ResNet 模型表现得更好,而 ResNet 模型在此表现出色。

        我在实验中使用了[非洲野生动物]( https://www.kaggle.com/biancaferreira/african-wildlife )数据集。

        该数据集中有 4 个类:

  • 水牛
  • 大象
  • 犀牛
  • 斑马

2.1 本文内容

  • 什么是卷积神经网络
  • 在上述数据集上实现 4 个不同的 CNN 模型,并根据我的实验得出的推论简要介绍每个模型。
  • 结论

2.3 什么是卷积神经网络?

典型的CNN网络

  • 卷积神经网络是一种人工神经网络,主要用于图像识别应用。它由称为感知器的多层组成,用于以最详细的方式学习图像中存在的特征。
  • 这里的“卷积”代表了对图像内特征的理解。提取这些特征需要整个卷积过程。
  • 为了提取这些特征,我们使用过滤器并提及要使用的过滤器的数量(内核)。
  • 池化是 CNN 中的另一个概念。它用于减少对图像运行过滤器后获得的特征数量。与图像本身相比,过滤器使我们获得大量特征。因此,池化用于获得相同的更好的概括表示。例如,由于过滤器(内核)的数量及其形状,25x25 的图像最终可能具有 100x100 的特征。池化可以使用最大池化或均值池化来减少这些特征。我不会深入研究什么是池化。
  • 填充是另一个 CNN 概念,我们在图像的边缘添加零。这样做有两个原因。为了更好地读取边缘特征并获得与输入图像相似的输出。
  • 最后,CNN 的输出被展平并发送到全连接层。这是 CNN 的神经网络部分。它将使机器能够从提取的特征中学习并创建通用模型。

  • 要了解有关卷积神经网络的更多信息,我将从这个[视频]( https://youtu.be/aircAruvnKk )开始。

三、LeNet网

  • LeNet 架构由 Yann Lecun 于 1998 年发明,旨在能够执行光学字符识别 (OCR)。与其他架构相比,该架构非常小且简单。该图像集由 0-9 的黑白数字图像组成。
  • 它由3个卷积层和3个池化层组成。在这些层之后,输出被展平,数据被发送到全连接层。神经网络的最后一个密集层可以是用于预测输出的任何激活函数。
  • 根据 LeNet 发表的论文,在整个网络中,所有层的激活函数都是 tanh。我对该网络使用了相同的激活函数。我们必须记住,今天使用的常用激活函数在 1998 年还不存在。

2.1 在您的示例和发现中实施

LeNet 架构的损失和准确率图

  • 从上面的准确率图中可以看出,我们可以清楚地看到该模型显示的学习速度很慢。
  • 该网络缺乏深度是原因之一。
  • 另一个原因可能是使用了激活函数 tanh。

2.2 优点

  • 这个网络很好地介绍了神经网络的世界,而且非常容易理解。它非常适合字符识别图像。

2.3 缺点

  • 该模型是专门针对特定用例构建的。虽然这是 1998 年的一项重大突破,但它在处理彩色图像方面的表现却不佳。大多数图像识别问题都需要 RGB 图像才能更好地识别。
  • 由于模型不是很深,它很难扫描所有特征,从而产生性能较差的模型。如果神经网络没有从训练图像中获得足够的特征,那么模型将很难概括并创建准确的模型。

四、AlexNet 网

发表的论文中看到的 Alexnet 架构图像

  • AlexNet 架构于 2012 年在 ImageNet 大规模视觉识别挑战赛上推出。
  • 它由 Alex Krizhevsky 设计,并与 Illya Sutskever 和 Krizhevsky 的博士生导师 Geoffrey Hinton 博士一起出版。
  • AlexNet由8层组成,并使用了ReLu激活函数,这是深度学习的重大发现。它摆脱了梯度消失的问题,因为现在梯度值不再限制在一定范围内。
  • 它是第一个基于 GPU 的 CNN 模型,比以前的模型快 4 倍。

4.1 在您的示例和发现中实施

损失和准确度 AlexNet 架构

  • 我观察到,与 LeNet 相比,训练速度有所提高。我们在图中可以清楚地看到,该模型更快地实现了更好的精度。
  • 与 LeNet 相比,损失也以更快的速度减少。
  • 网络深度的增加和 ReLu 的引入对神经网络产生了重大影响。这个模型启发了未来模型的研究。

4.2 优点

  • AlexNet 是第一个使用 GPU 进行训练的主要 CNN 模型。这可以加快模型的训练速度。
  • AlexNet 是一种更深层次的 8 层架构,这意味着与 LeNet 相比,它能够更好地提取特征。它在当时的彩色图像上也很有效。
  • 该网络中使用的 ReLu 激活函数有 2 个优点。与其他激活函数不同,它不限制输出。这意味着不会有太多功能损失。
  • 它否定了梯度求和的负输出,而不是数据集本身。这意味着它将进一步提高模型训练速度,因为并非所有感知器都处于活动状态。

4.3 缺点

  • 与本文进一步使用的模型相比,该模型的深度非常小,因此很难从图像集中学习特征。
  • 我们可以看到,与未来的模型相比,需要更多的时间才能获得更高精度的结果。

五、VGG网

  • Visual Geometric Group 或 VGG 是一种 CNN 架构,在 AlexNet 两年后于 2014 年推出。引入该模型的主要原因是为了在训练图像分类/识别模型时了解深度对准确性的影响。
  • VGG 网络引入了将多个具有较小内核尺寸的卷积层分组的概念,而不是使用一个具有大内核尺寸的卷积层。这导致输出的特征数量减少,其次是包含 3 个 ReLu 层,而不是增加一个学习实例。从上图中可以看出,我们看到分层结构(灰色框),后面是池化层(红色框)。

5.1 在您的示例和发现中实施

VGG-16 架构的损耗和精度

  • 我在这里的观察是,虽然达到最大准确度所需的纪元数量有所减少,但损失需要更长的时间才能收敛到最小值。
  • VGG 中引入更多层使模型能够更好地理解图像中的特征。
  • 然而,不断学习和重新学习是 VGG 的一个问题,这就是为什么损失似乎如此不可预测(梯度爆炸)。
  • 这个问题在 ResNet 架构中得到了解决,该架构引入了残差学习的概念。

观察到 VGG-16 的验证损失

  • 验证损失往往会随着时间的推移而增加,这告诉我随着时间的推移,这个模型过度拟合了数据集。对于其他图像集,情况可能并不总是如此。

5.2 优点

  • VGG 带来了准确性的巨大提高和速度的提高。这主要是因为提高了模型的深度并引入了预训练模型。
  • 较小内核的层数增加会导致非线性增加,这对于深度学习始终是积极的。
  • VGG 带来了基于相似概念的各种架构。这为我们提供了更多选择,让我们可以选择哪种架构最适合我们的应用程序。

5.3 缺点

  • 我发现该模型的一个主要缺点是存在梯度消失问题。如果我们查看我的验证损失图,我们可以清楚地看到它呈增长趋势。其他任何型号都没有出现这种情况。ResNet 架构解决了梯度消失问题。
  • VGG 比新的 ResNet 架构慢,后者引入了残差学习的概念,这是另一个重大突破。

六、ResNet 残差网络

ResNet 中的残差学习

  • ResNet 于 2015 年推出,带来了准确性的大幅提升和速度的大幅提升。
  • VGG引入了增加层数的概念来提高精度,但是发现当我们将层数增加到超过20时,模型无法收敛到最小误差%。造成这种情况的一个主要原因是梯度消失问题。学习率变得如此之低,以至于模型的权重没有发生变化。
  • 另一个问题是梯度爆炸。这在我的 VGG 图中也可见,我的损失波动不规律。当引入批量归一化后,这个问题得到了解决,但它仍然在较小的范围内波动。
  • 为了解决这个问题,引入了残余学习的概念,该概念的灵感来自于人脑横向抑制的概念。它只是意味着大脑中的神经元能够控制其邻近神经元是否放电。
  • 残差学习可以用一个非常简单的例子来解释。最初,当我们学习骑自行车时,我们会犯错误,但我们会学习。一旦我们能够骑自行车,我们的大脑就会停止发射负责学习技能的神经元,使我们能够专注于与骑自行车有关的其他事情。

6.1 在您的示例和发现中实施

ResNet50 架构的损失和准确性

  • 我们看到在实现高精度和低损耗方面取得了巨大进步。残差学习的概念堪称神经网络的重大突破。
  • 从 ResNet 架构创建的模型还具有较低的验证损失,这意味着训练时不会发生过度拟合。

6.2 优点

  • ResNet 架构不需要在每个 epoch 中激发所有神经元。这大大减少了训练时间并提高了准确性。一旦学习了某个功能,它就不会尝试再次学习它,而是专注于学习新的功能。一种非常聪明的方法,极大地提高了模型训练性能。
  • 相同的 VGG 网络的复杂性导致了退化问题,可以通过残差学习来解决。

七、结论

        我进行此实验是为了更好地了解不同类型的 CNN 模型以及它们对图像分类模型的训练有何实际影响。您可以在我的合作笔记本上进一步探索这个实验。使用的图像来自本次kaggle比赛。

谢谢阅读!

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

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

相关文章

Sandbox: bash(5613) deny(1) file-write-create 错误解决

Showing Recent Errors Only Sandbox: bash(5613) deny(1) file-write-create /Users/xx/Dev/UniappLearn/MSLUniappDemo/Pods/resources-to-copy-MSLUniappDemo.txt image.png 解决方法 build setting搜索ENABLE_USER_SCRIPT_SANDBOXING,YES(默认&…

企业如何利用好用户画像对客户进行精准营销?提高营销转化?

随着市场竞争的加剧,企业对于客户的需求和行为越来越关注,如何利用好用户画像对客户进行精准营销,提高营销转化,成为企业关注的焦点。 一、了解用户需求和行为 首先,企业需要了解客户的需求和行为,包括客户…

AK F.*ing leetcode 流浪计划之半平面求交

欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击。 本期话题:半平面求交 背景知识 学习资料 视频讲解 https://www.bilibili.com/video/BV1jL411C7Ct/?spm_id_from333.1007.top_right_bar_window_history…

excel用RAND函数、或者RAND.NV函数生成随机数、这两个函数的区别

用RAND函数生成大于0小于1的随机数 插入-》函数: 选择RAND函数: 点击“继续”: 点击“确定”,就生成随机数了: 用RAND.NV函数生成一个大于0小于1的随机数 步骤跟RAND函数相同,只不过选择的是RAN…

[RK3568][Android12.0]--- 系统自带预置第三方APK方法

Platform: RK3568 OS: Android 12.0 Kernel: 4.19 Rockchip默认提供了机制来预置第三方APK, 方法很简单: 1. 在device/rockchip/rk3568创建preinstall目录(如果要可卸载,那就创建preinstall_del目录) 2. 将你要预安装的APK放进此目录即可 preinstall 不…

Karmada更高效地实现故障转移

随着云原生技术的发展,其应用场景不断扩大。越来越多的企业开始将应用程序部署在 Kubernetes 集群中,随着 Kubernetes 集群规模的不断扩大,也带来了许多管理挑战,例如多集群间负载均衡、资源调度、故障转移等问题。为了解决这些问…

μC/OS-II---时间管理(os_time.c)

目录 时间管理相关(os_time.c)Task延迟按时、分、秒、毫秒延时恢复被延时的Task返回系统当前的Tick计数值设置系统的Tick计数值 时间管理相关(os_time.c) Task延迟 void OSTimeDly (INT32U ticks) {INT8U y; #if OS_CRITI…

MHA实验

MHA: 什么是MHA masterhigh availabulity :基于主库的高可用环境下:主从复制,故障切换 主从的架构: MHA:最少要一主两从 mysql的单点故障问题,一旦主库崩溃,MHA可以在0-30秒内可以自动完成故障切换 M…

1m照片尺寸怎么调?三个方法解决!

为了满足不同的需求,比如上传到网站、存储在移动设备上或传输给他人等,将照片尺寸调整到1M可以有效地减少照片占用的存储空间,同时保持相对较高的图像质量。下面三种好用的方法。 方法一:使用嗨格式压缩大师 1、打开软件&#xf…

VEX —— Half-edges

目录 一,概述 二,等效 三,函数 在一些VEX函数,可将边看成为每个面非共享的半边; 一,概述 在houdini,边通常被视为面之间无方向且共享的,然而,对于一些任务&#xff08…

Stable Diffusion新手村-我们一起完成AI绘画

1.工具搭建 感谢bilibili的"秋葉aaaki"大佬出的整合包,让我们方便下载安装一键启动,去它的网盘里下载 我的显卡设备,暂时还够哈,出图速度还可以1-2分钟比较美的质感画面 下载以后需要解压下sd-webui-aki-v4.4.7z&#…

解决室内种植最大弊端的是方法—植物生长灯

对于“城市农夫”来说,植物在自己的精心照料下开花结果是最好的“心灵鸡汤”。而对于室内种植,其实存在着很大的弊端。 由于室内无法提供足够自然阳光,在一些气候条件不佳或长冬季的地方,自然光照不足会严重限制植物的生长&#…

【华为云IaaS基础三件套之----计算ECS、网络EIP、存储EVS】

MD[华为云IaaS基础三件套----计算、网络、存储] 华为云IaaS基础三件套之----计算ECS、网络EIP、存储EVS 说明: 这里只是简单从计算/网络/存储,进行介绍,阐明云上对于云下的优势;因ECS是三者综合,故最后说明。 1.网络----弹性公…

项目经理为什么要考PMP?PMP考试条件有哪些?

考得PMP,项目经理可以有以下收获: 1、面试条件上:有PMP证书优先; 2、覆盖行业和职位范围广,医疗,互联网,机械,建筑金融,汽车,零售等各行各业,基…

C 语言数组

C 语言数组 在本教程中,您将学习如何使用数组。您将借助示例学习如何声明,初始化和访问数组的元素。 数组是可以存储多个值的变量。例如,如果要存储100个整数,则可以为其创建一个数组。 示例 cint data[100];如何声明数组&…

【Kotlin精简】第8章 协程

1 简介 Kotlin 中的协程提供了一种全新处理并发的方式,您可以在 Android 平台上使用它来简化异步执行的代码。协程是从 Kotlin 1.3 版本开始引入,但这一概念在编程世界诞生的黎明之际就有了,最早使用协程的编程语言可以追溯到 1967 年的 Sim…

软考系统分析师知识点集锦二:系统规划

一、系统规划的步骤 (1)初步调查:根据企业战略目标,分析企业现状以及系统运行状况。(2)确定系统目标:确定系统的服务范围质量等。(3)分析子系统的组成:做系统划分并指定子系统功能。(4)拟定系统的实施方案:分析子系统优先级,确定开发顺序。(5)进行可行性研究:编写可…

【STM32单片机】比赛计时计分系统设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用STM32F103C8T6单片机控制器,使用OLED显示模块、矩阵按键模块、蜂鸣器等。 主要功能: 系统运行后,OLED默认显示第1节次比赛时间、AB得分。默认是12分钟倒计时…

轻量级数据中台,大中型企业数字化转型首选

随着互联网的高速发展和信息化的普及,企业面对快速增长的数据量和数据种类,要如何高效地管理、整合和分析这些海量数据成为了一大难题。而轻量级数据中台则是面对这种情况而言很好的一种解决方案。 我们可以从以下几个方面来认识数据中台: …

idea自动生成UML图

设置 选择我们UML图需要的部分! 选择显示的部分