当前位置: 首页 > news >正文

CNN进展:AlexNet、VGGNet、ResNet 和 Inception

一、说明

对于初学者来说,神经网络进展的历程有无概念?该文综合叙述了深度神经网络的革命性突破,从AlexNet开始,然后深度VGG的改进,然后是残差网络ResNet和 Inception,如果能讲出各种特色改进点的和改进理由,那么该文的内容已经全掌握了。

二、探索 AlexNet:突破性的深度卷积网络

        AlexNet 代表了深度卷积网络的开创性应用之一,真正重塑了机器学习领域。2012 年,这一革命性模型在 ImageNet LSVRC-2012 挑战赛中以 84.7% 的准确率夺得冠军,远远超过了第二名的 73.8% 的准确率。

        AlexNet 的核心是其架构,包括五个卷积 (CONV) 层和三个全连接 (FC) 层。AlexNet 选择整流线性单元 (ReLU) 作为其激活函数,这一战略举措对其令人印象深刻的性能做出了重大贡献。这是网络内各个层的结构快照:

        AlexNet 架构(来源:oreilly.com)

        这是 AlexNet 的框图:

整个网络由大约 6200 万个可训练参数组成,这些参数协调工作以提供令人震惊的结果。

        输入和输出尺寸:

AlexNet 接收大小为 227x227x3 的输入,并以 1000x1 概率向量的形式返回输出,每个元素对应于一个特定的类。

        ReLU 革命:

在 AlexNet 出现之前,sigmoid 和 tanh 等激活函数是常态。然而,这些函数很容易受到梯度消失(VG)问题的影响,从而阻碍了训练过程。AlexNet 中引入 ReLU 激活函数避免了这个问题,正如原始论文所证明的那样,使用 ReLU 的网络的错误率比使用 tanh 非线性的相同网络快大约六倍。

尽管 ReLU 有许多优点,但由于其无界性质,可能会导致学习变量过大。为了解决这个问题,AlexNet 实施了本地响应标准化 (LRN)。LRN 促进激活的神经元与其周围对应神经元之间的平衡,从而增强网络的整体稳定性。

克服过度拟合:

AlexNet 的另一个值得注意的贡献是其对抗过度拟合的策略。AlexNet 采用 dropout 层,其中每个连接在训练期间有 50% 的机会被暂时“丢弃”或忽略。这种随机省略连接可以防止模型陷入过度拟合的陷阱,并帮助其避开不利的局部最小值。作为权衡,模型收敛所需的迭代次数可能会增加一倍,但模型的整体鲁棒性和准确性会显着提高。

三、VGGNet:深入探讨

        时代:

        2014 年是国际家庭农业和晶体学年,也是机器学习的里程碑时刻。它见证了机器人首次登陆彗星以及罗宾·威廉姆斯的不幸去世。然而,在深度学习领域,VGGNet 正是在这一年诞生的。

        目的:

        VGGNet 的出现是为了解决减少卷积层参数数量的需求,从而提高模型的效率和训练速度。

        该设计:

        VGGNet 存在多个版本,例如 VGG16、VGG19 等,根据网络总层数进行区分。以下是 VGG16 架构的说明性细分:

VGG16 框图(来源:neurohive.io)

        VGG16 拥有约 1.38 亿个参数。需要强调的一个关键方面是,所有卷积核的大小均为 3x3,最大池核的大小为 2x2,步幅为 2。

优势:

        真正的创新在于 3x3 卷积。让我们举个例子。如果我们有一个大小为 5x5x1 的输入层,使用内核大小为 5x5 且步幅为 1 的卷积层将得到 1x1 的输出特征图。然而,通过实现两个步幅为 1 的 3x3 卷积层可以获得相同的输出特征图。好处?5x5 卷积层滤波器需要训练 25 个变量。相比之下,两个内核大小为 3x3 的卷积层总共需要 3x3x2=18 个变量,减少了 28% 的参数。

        该技术可以进一步扩展。7x7 卷积层的效果可以通过实现三个 3x3 卷积层来实现,将可训练变量的数量减少 44.9%。其结果是更快的学习和更强的针对过度拟合的鲁棒性。

四、ResNet:跳跃的艺术

         问题

        随着卷积神经网络变得更深,当反向传播到初始层时,导数几乎可以忽略不计。

        解决方案

        ResNet 通过引入两种类型的“快捷连接”提供了一种巧妙的补救措施:身份快捷方式投影快捷方式

        架构

        ResNet 拥有多种层数不同的架构,例如 ResNet50 和 ResNet101。由于解决了梯度消失问题的快捷连接,ResNet 模型可以具有更大的深度。

        这个概念

        ResNet 的核心是残差块。网络不是学习 x → F(x) 的直接映射,而是学习 x → F(x)+G(x) 的残差映射。恒等连接存在于输入和输出维度相同的地方,而投影连接存在于这些维度不同的地方。

残差块(图片来源:原论文)

        投影和身份:

        当 F(x) 和 x 的尺寸不同时,将实现投影快捷方式。它调整输入 x 的维度以匹配输出 F(x) 的维度。另一方面,当F(x)和x的维度相同时,使用Identity捷径,这使得网络更容易学习。

五、Inception:广泛发展

        动机:

        Inception 与 VGGNet 诞生于同一时代,其动机是在图像分类任务中有效识别可变大小特征的需求。Inception 不是仅仅添加更多层(更深),而是通过在同一层中合并不同大小的内核来扩大范围。

        架构:

        Inception网络由多个Inception模块组成,每个模块包含四个并行操作:

  • 1x1 转换层
  • 3x3 转换层
  • 5x5 转换层
  • 最大池化

        策略:

        Inception扩展了网络空间,让训练相应地决定最有价值的特征和权重。通过允许不同的卷积捕获给定级别的各种特征,所有这些特征在输入到下一层之前都会被提取和连接。

六、CNN:比较快照

从 AlexNet、ResNet-152、VGGNet 和 Inception 的比较中得出了一些见解:

  • 尽管 AlexNet 和 ResNet-152 都有大约 60M 参数,但它们的 top-5 准确率大约有 10% 的差异。然而,训练 ResNet-152 需要比 AlexNet 更多的计算量,从而导致训练时间和能耗增加。
  • 与 ResNet-152 相比,VGGNet 具有更多的参数和浮点运算 (FLOP),但精度也有所下降。因此,它需要更多的时间来训练,但性能却会下降。
  • 训练 AlexNet 所需的时间与训练 Inception 大致相同,但 Inception 所需的内存减少了十倍,并且提供了更高的准确性(大约提高了 9%)。

相关文章:

CNN进展:AlexNet、VGGNet、ResNet 和 Inception

一、说明 对于初学者来说,神经网络进展的历程有无概念?该文综合叙述了深度神经网络的革命性突破,从AlexNet开始,然后深度VGG的改进,然后是残差网络ResNet和 Inception,如果能讲出各种特色改进点的和改进理由…...

数据的存储--MongoDB文档存储

MongoDB文档存储 NoSQL,全称为Not Only SQL,意为不仅仅是SQL,泛指非关系型数据库。NoSQL是基于键值对的,而且不需要经过SQL层的解析,数据之间没有耦合性,性能非常高。 非关系行数据库又可细分如下。 键值存…...

Notepad++ 通过HexEditor插件查看.hprof文件、heap dump文件的堆转储数据

文章目录 需求场景插件安装查看notepad的版本,看看是32位的还是64位的下载对应的版本解压导入插件打开notepad插件文件夹:Notepad安装目录新建一个HexEditor文件夹选中插件文件导入 重启notepad使用 需求场景 想要查看app内存的某个域的数据。 利用Andr…...

微服务学习 | Eureka注册中心

微服务远程调用 在order-service的OrderApplication中注册RestTemplate 在查询订单信息时,需要同时返回订单用户的信息,但是由于微服务的关系,用户信息需要在用户的微服务中去查询,故需要用到上面的RestTemplate来让订单的这个微…...

spring boot集成quartz

目录 1.定时任务实现 2.quartz说明 3.存储方式 4.示例 5.定时任务的重新定制,恢复,暂停及删除 1.定时任务实现 定时任务的实现方式有很多,如下: 1.启动类中添加EnableScheduling,开启定时任务功能,然…...

[Linux] yum仓库相关

一、yum仓库 1.1 yum简介 yum 是一种基于 RPM 软件包(Red-Hat Package Manager 的缩写)的软件更新机制,可自动解决软件包之间的依赖关系。这就解决了日常工作中花费大量时间寻找安装包的问题。 为什么会出现依赖 linux 本身就有简化系统的优…...

2023.11.15-hivesql之炸裂函数explode练习

把一个容器的多个数据炸裂出单独展示: explode(容器) 需求:将NBA总冠军球队数据使用explode进行拆分&#xff0c;并且根据夺冠年份进行倒序排序。 1.建表 --step1:建表 create table the_nba_championship(team_name string,champion_year array<string> ) row format…...

Linux - 内核 - 安全机制 - 内存页表安全

说明 内核页表安全的最终目标是&#xff1a;将内核使用到的内存页&#xff08;内核与module占用&#xff09;的属性&#xff08;读/写/可执行&#xff09;配置成安全的&#xff0c;即&#xff1a;代码段和rodata段只读&#xff0c;非代码段不能执行等&#xff0c;用来防御堆栈…...

Linux---(七)Makefile写进度条(三个版本)

文章目录 一、前提引入&#x1f397;️下面的代码什么现象&#xff1f;&#x1f397;️下面的代码什么现象&#xff1f; 二、缓冲区三、回车换行&#x1f397;️注意&#x1f397;️图解&#x1f397;️老式回车键造型&#xff08;意思是充当两个动作&#xff09;&#x1f397;…...

数据库分页查询

数据库只所以要分页查询&#xff0c;其实是界面显示的需要&#xff0c;不是数据库的需要。 数据库本身查询是很快的。本文章是针对这种情况的。 如果数据库本身查询慢&#xff0c;那是优化查询语句的事情了。不在本文章范围内。 今天遇到了这个问题。 是个老项目。在原有的查询…...

如何选择合适的数据库管理工具?Navicat Or DBeaver

写在前面 在阅读本文之前&#xff0c;糖糖给大家准备了Navicat和DBeaver安装包&#xff0c;在公众号内回复“Navicat”或“DBeaver”或"数据库管理工具"来下载。 引言 对于测试而言&#xff0c;在实际工作中往往会用到数据库&#xff0c;那么选择使用哪种类型的数…...

Opencv!!在树莓派上安装Opencv!

一、更新树莓派系统 sudo apt-get update sudo apt-get upgrade二、安装python-opencv sudo apt-get install libopencv-dev sudo apt-get install python3-opencv三、查看是否安装成功 按以下命令顺序执行&#xff1a; python import cv2 cv2.__version__如果出现版本号&a…...

三菱FX3U小项目—传输带定分级控制

目录 一、项目描述 二、IO口分配 三、项目程序 四、总结 一、项目描述 两条运输带顺序相连&#xff0c;为了避免运送的物料在1号运输线上堆积&#xff0c;所以启动时&#xff0c;1号运输带开始运行&#xff0c;5S后2号运输带自动启动。停机时顺序与启动刚好相反&#xff0c…...

实例解释遇到前端报错时如何排查问题

前端页面报错&#xff1a; 1、页面报错500&#xff0c;首先我们可以知道是服务端的问题&#xff0c;需要去看下服务端的报错信息&#xff1a; 2、首先我们查看下前端是否给后端传了id: 我们可以看到接口是把ID返回了&#xff0c;就需要再看下p_id是什么情况了。 3、我们再次请…...

微电影分销付费短剧小程序开发

微电影系统分销管理付费软件是一款面向微电影制作公司和影视产业的付费软件&#xff0c;它的出现旨在帮助微电影制作公司和影视产业实现分销管理&#xff0c;提高产业的效率和竞争力。本文将介绍微电影系统分销管理付费软件的背景、特点和开发方法。 一、背景 微电影作…...

时间序列预测中的4大类8种异常值检测方法(从根源上提高预测精度)

一、本文介绍 本文给大家带来的是时间序列预测中异常值检测&#xff0c;在我们的数据当中有一些异常值&#xff08;Outliers&#xff09;是指在数据集中与其他数据点显著不同的数据点。它们可能是一些极端值&#xff0c;与数据集中的大多数数据呈现明显的差异。异常值可能由于…...

Android---Gradle 构建问题解析

想必做 Android App 开发的对 Gradle 都不太陌生。因为有 Android Studio 的帮助&#xff0c;Android 工程师使用 Gradle 的门槛不算太高&#xff0c;基本的配置都大同小异。只要在 Android Studio 默认生成的 build.gradle 中稍加修改&#xff0c;就都能满足项目要求。但是&am…...

02-2解析JsonPath

一、jsonpath的安装及使用方式 pip安装 pip install jsonpathjsonpath的使用 obj json.load(open(json文件, r, encodingutf‐8)) ret jsonpath.jsonpath(obj, jsonpath语法)可以参考以下这篇博客进行jsonpath的简单入门JSONPath-简单入门...

Git拉取远程指定分支

git clone 指定分支-CSDN博客 即&#xff1a;git clone -b 分支名称 git地址 这种方法也是可以的。但是其实主分支也是拉取下来了&#xff0c;其他分支也拉取下来了&#xff0c;只不过所需分支也拉取下来并且对应当前工作区的代码。如果真的只拉取指定分支&#xff0c;可以用…...

使用Ant Design Pro开发时的一个快速开发接口请求的技巧

使用Ant Design Pro开发时的一个快速开发接口的技巧 当我们的后端在写好接口以后&#xff0c;我们通过swagger knife4j可以生成一个接口文档&#xff0c;后端启动以后&#xff0c;可以生成一个接口文档&#xff0c;当输入地址 localhost:8101/api/v3/api-docs &#xff08;这…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

基于鸿蒙(HarmonyOS5)的打车小程序

1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...