CNN进展:AlexNet、VGGNet、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进行拆分,并且根据夺冠年份进行倒序排序。 1.建表 --step1:建表 create table the_nba_championship(team_name string,champion_year array<string> ) row format…...
Linux - 内核 - 安全机制 - 内存页表安全
说明 内核页表安全的最终目标是:将内核使用到的内存页(内核与module占用)的属性(读/写/可执行)配置成安全的,即:代码段和rodata段只读,非代码段不能执行等,用来防御堆栈…...
Linux---(七)Makefile写进度条(三个版本)
文章目录 一、前提引入🎗️下面的代码什么现象?🎗️下面的代码什么现象? 二、缓冲区三、回车换行🎗️注意🎗️图解🎗️老式回车键造型(意思是充当两个动作)🎗…...
数据库分页查询
数据库只所以要分页查询,其实是界面显示的需要,不是数据库的需要。 数据库本身查询是很快的。本文章是针对这种情况的。 如果数据库本身查询慢,那是优化查询语句的事情了。不在本文章范围内。 今天遇到了这个问题。 是个老项目。在原有的查询…...
如何选择合适的数据库管理工具?Navicat Or DBeaver
写在前面 在阅读本文之前,糖糖给大家准备了Navicat和DBeaver安装包,在公众号内回复“Navicat”或“DBeaver”或"数据库管理工具"来下载。 引言 对于测试而言,在实际工作中往往会用到数据库,那么选择使用哪种类型的数…...
Opencv!!在树莓派上安装Opencv!
一、更新树莓派系统 sudo apt-get update sudo apt-get upgrade二、安装python-opencv sudo apt-get install libopencv-dev sudo apt-get install python3-opencv三、查看是否安装成功 按以下命令顺序执行: python import cv2 cv2.__version__如果出现版本号&a…...
三菱FX3U小项目—传输带定分级控制
目录 一、项目描述 二、IO口分配 三、项目程序 四、总结 一、项目描述 两条运输带顺序相连,为了避免运送的物料在1号运输线上堆积,所以启动时,1号运输带开始运行,5S后2号运输带自动启动。停机时顺序与启动刚好相反,…...
实例解释遇到前端报错时如何排查问题
前端页面报错: 1、页面报错500,首先我们可以知道是服务端的问题,需要去看下服务端的报错信息: 2、首先我们查看下前端是否给后端传了id: 我们可以看到接口是把ID返回了,就需要再看下p_id是什么情况了。 3、我们再次请…...
微电影分销付费短剧小程序开发
微电影系统分销管理付费软件是一款面向微电影制作公司和影视产业的付费软件,它的出现旨在帮助微电影制作公司和影视产业实现分销管理,提高产业的效率和竞争力。本文将介绍微电影系统分销管理付费软件的背景、特点和开发方法。 一、背景 微电影作…...
时间序列预测中的4大类8种异常值检测方法(从根源上提高预测精度)
一、本文介绍 本文给大家带来的是时间序列预测中异常值检测,在我们的数据当中有一些异常值(Outliers)是指在数据集中与其他数据点显著不同的数据点。它们可能是一些极端值,与数据集中的大多数数据呈现明显的差异。异常值可能由于…...
Android---Gradle 构建问题解析
想必做 Android App 开发的对 Gradle 都不太陌生。因为有 Android Studio 的帮助,Android 工程师使用 Gradle 的门槛不算太高,基本的配置都大同小异。只要在 Android Studio 默认生成的 build.gradle 中稍加修改,就都能满足项目要求。但是&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博客 即:git clone -b 分支名称 git地址 这种方法也是可以的。但是其实主分支也是拉取下来了,其他分支也拉取下来了,只不过所需分支也拉取下来并且对应当前工作区的代码。如果真的只拉取指定分支,可以用…...
使用Ant Design Pro开发时的一个快速开发接口请求的技巧
使用Ant Design Pro开发时的一个快速开发接口的技巧 当我们的后端在写好接口以后,我们通过swagger knife4j可以生成一个接口文档,后端启动以后,可以生成一个接口文档,当输入地址 localhost:8101/api/v3/api-docs (这…...
从‘它怎么又挂了’到‘服务稳如狗’:我是如何用Prometheus+Grafana搭建业务监控看板的
从被动救火到主动防御:PrometheusGrafana构建业务监控实战手册 凌晨三点,手机突然响起刺耳的警报声——这已经是本周第三次了。揉着惺忪的睡眼查看日志,却发现关键线索早已被淹没在海量的调试信息中。这样的场景对于中小技术团队来说再熟悉不…...
如何3步搭建AI驱动的多智能体股票分析平台?TradingAgents-CN全指南
如何3步搭建AI驱动的多智能体股票分析平台?TradingAgents-CN全指南 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 面对复杂多变的金…...
Dockle在大型项目中的应用:多镜像批量扫描与报告生成完整指南
Dockle在大型项目中的应用:多镜像批量扫描与报告生成完整指南 【免费下载链接】dockle Container Image Linter for Security, Helping build the Best-Practice Docker Image, Easy to start 项目地址: https://gitcode.com/gh_mirrors/do/dockle Dockle是一…...
input-overlay多语言支持:如何为全球观众轻松定制直播输入显示
input-overlay多语言支持:如何为全球观众轻松定制直播输入显示 【免费下载链接】input-overlay Show keyboard, gamepad and mouse input on stream 项目地址: https://gitcode.com/gh_mirrors/in/input-overlay 想要让全球观众都能轻松理解你的游戏操作吗&a…...
LeetCode 111. Minimum Depth of Binary Tree 题解
LeetCode 111. Minimum Depth of Binary Tree 题解 题目描述 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [3,9,20,null,null,15,7] 输…...
ASP.NET MVC 1.0 (五) ViewEngine 深入解析与应用实例
一.摘要 本文讲解ViewEngine的作用, 并且深入解析了实现ViewEngine相关的所有接口和类, 最后演示了如何开发一个自定义的ViewEngine. 本系列文章已经全部更新为ASP.NET MVC 1.0版本.希望大家多多支持! 二.承上启下 首先注意: 我会将大家在MVC之前一直使用的ASP.NET页面编程模…...
GLM-4.1V-9B-Base多场景落地:医疗影像辅助描述、零售货架识别、文旅导览图解
GLM-4.1V-9B-Base多场景落地:医疗影像辅助描述、零售货架识别、文旅导览图解 1. 模型介绍 GLM-4.1V-9B-Base是智谱开源的一款视觉多模态理解模型,专门针对图像内容识别、场景描述和目标问答等任务进行了优化。这个模型特别擅长处理中文视觉理解任务&…...
OSI七层模型的意义:网络世界的工程思维密码
理解七层网络模型(OSI模型)的意义,不在于死记硬背哪一层叫什么名字,而在于它能帮你建立一套拆解复杂系统的思维框架。具体来说,学习它主要有以下几层价值:1. 建立“分而治之”的工程思维网络通信是一个极其…...
乙巳马年·皇城大门春联生成终端W安全部署实践:网络配置与访问控制
乙巳马年皇城大门春联生成终端W安全部署实践:网络配置与访问控制 最近在星图GPU平台上部署了一个挺有意思的AI应用,叫“皇城大门春联生成终端W”。说白了,就是一个能根据你的要求,自动生成各种风格春联的AI模型。部署过程本身不难…...
科研人必备:用浏览器插件给IEEEXplore做个‘小手术’,告别20秒加载
科研效率革命:用浏览器插件精准优化IEEEXplore访问体验 每次打开IEEEXplore文献库,那个转不停的加载图标是否让你焦躁不安?作为每天要与学术数据库打交道的科研工作者,20秒的等待时间足以打断思考流,降低工作效率。这背…...
