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

【机器学习】经典CNN架构


鑫宝Code

🌈个人主页: 鑫宝Code
🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础
💫个人格言: "如无必要,勿增实体"


文章目录

  • 经典CNN架构
    • 1. 引言
    • 2. LeNet
    • 3. AlexNet
    • 4. VGGNet
    • 5. GoogLeNet(Inception)
    • 6. ResNet
    • 7. 总结

经典CNN架构

1. 引言

卷积神经网络(Convolutional Neural Networks, CNN)是深度学习中最成功的模型之一,在计算机视觉、自然语言处理等领域取得了巨大成功。本文将介绍几种经典的CNN架构,包括LeNet、AlexNet、VGGNet、GoogLeNet(Inception)和ResNet等,探讨它们的创新点和发展历程。
在这里插入图片描述

2. LeNet

LeNet是最早的CNN架构之一,由Yann LeCun等人于1998年提出,用于手写数字识别。它的结构如下:

INPUT => CONV => POOL => CONV => POOL => FC => FC => OUTPUT

其中:

  • CONV: 卷积层,提取局部特征
  • POOL: 池化层,降低特征维度
  • FC: 全连接层,进行分类

LeNet的创新之处在于引入了卷积层和池化层,极大地减少了网络参数,提高了模型的泛化能力。
在这里插入图片描述

3. AlexNet

AlexNet是2012年ImageNet大赛的冠军模型,由Alex Krizhevsky等人提出,被认为是深度学习在计算机视觉领域的开端。它的结构如下:

INPUT => CONV => POOL => CONV => POOL => CONV => CONV => CONV => POOL => FC => FC => FC => OUTPUT

AlexNet的主要创新点包括:

  1. 使用了ReLU激活函数,提高了训练效率。
  2. 引入了Dropout技术,有效缓解了过拟合问题。
  3. 利用GPU并行计算,大大加快了训练速度。
  4. 数据增强技术,如翻转、裁剪等,增加了训练数据的多样性。
    在这里插入图片描述

4. VGGNet

VGGNet是2014年ImageNet大赛的亚军模型,由Karen Simonyan和Andrew Zisserman提出。它的结构如下:

INPUT => CONV => CONV => POOL => CONV => CONV => POOL => CONV => CONV => CONV => POOL => CONV => CONV => CONV => POOL => FC => FC => FC => OUTPUT

VGGNet的特点是使用了连续的3x3小卷积核,代替了AlexNet中的大卷积核,提高了非线性表达能力。同时,VGGNet也探索了不同深度的网络结构,发现深度对提高性能至关重要。
在这里插入图片描述

5. GoogLeNet(Inception)

GoogLeNet是2014年ImageNet大赛的冠军模型,由Christian Szegedy等人提出。它的核心是Inception模块,如下所示:

                 /-------\|       ||  1x1  ||       |\-------/||/-------\  /-------\  /-------\|       |  |       |  |       ||  3x3  |  |  5x5  |  |  3x3  ||       |  |       |  |       |\-------/  \-------/  \-------/||/-------\|  1x1  ||       |\-------/|

Inception模块通过并行的卷积核组合,提高了网络的表达能力,同时控制了参数数量。GoogLeNet还引入了辅助分类器,缓解了梯度消失问题。
在这里插入图片描述

6. ResNet

ResNet是2015年ImageNet大赛的冠军模型,由Kaiming He等人提出。它的核心是残差模块(Residual Block),如下所示:

                   /-----------\|           ||    X      ||           |\-----------/|/-----------\|           ||  Weight   ||           |\-----------/|/-----------\|           || ReLU      ||           |\-----------/|/-----------\|           ||  Weight   ||           |\-----------/|/-----------\|           || ReLU      ||           |\-----------/||/-----------\|           ||    +      ||           |\-----------/|

残差模块通过引入shortcut connection,使得梯度可以直接传递到较浅层,有效缓解了梯度消失/爆炸问题,从而可以训练出更深的网络。ResNet在ImageNet数据集上取得了极高的分类精度。
在这里插入图片描述

7. 总结

本文介绍了几种经典的CNN架构,包括LeNet、AlexNet、VGGNet、GoogLeNet和ResNet等。这些架构不断推进了CNN的发展,提出了诸如卷积、池化、残差连接等创新技术,极大地提高了CNN在计算机视觉等领域的性能。未来,CNN仍将在各个领域发挥重要作用。

End

相关文章:

【机器学习】经典CNN架构

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 经典CNN架构1. 引言2. LeNet3. AlexNet4. VGGNet5. GoogLeNet(Inception)6. Res…...

图像数据处理21

五、边缘检测 5.2基于二阶导数的边缘检测 一阶导数(如Sobel、Prewitt算子)能够捕捉到灰度值的快速变化,但有时会因检测到过多的边缘点而导致边缘线过粗。为了更加精确地定位边缘位置,可以利用二阶导数的零交叉点。零交叉点是是函…...

day37动态规划+三.Github链接本地仓库

一.动态规划 474.一和零 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。 思路:这道题更像是另一种的0-…...

设备运维故障排查与修复技巧

运维中最常见的40个故障问题及其解决方法: 1. 网络不通问题:无法访问网络资源。 解决方法:检查物理线路、交换机端口、网卡驱动和配置,使用ping、traceroute等工具定位问题。 2. 网络速度慢问题:访问网络资源速度慢。 解决方法:分析带宽使用情况,检查是否存在广播风…...

探索Python的自动化魔法:AutoIt库揭秘

文章目录 探索Python的自动化魔法:AutoIt库揭秘第一部分:背景介绍第二部分:AutoIt是什么?第三部分:如何安装AutoIt库?第四部分:AutoIt的五个简单函数第五部分:场景应用第六部分&…...

【I/O多路复用】

基于I/O多路复用的并发编程 I/O实现I/O多路复用select优缺点 pollepoll优点 I/O I/O复用是基于一个单进程或单线程的一个执行流当中监控多个输入输出流的技术(网络套接字或者文件描述符进行监控)。单进程或单线程,允许多个用户对单进程发起连…...

【python报错已解决】“IndexError: list index out of range”

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言 你是否在处理Python列表时遇到了“IndexError: list index out of range”的错误?这个错误可能会让你的程序中…...

oracle和mysql查询某字段在哪个表中

oracle和mysql查询某字段在哪个表中 oracle的 select TABLE_NAME from user_tab_columns where COLUMN_NAME字段名mysql的: select table_schema ,table_name from information_schema.columns where column_name ‘字段名’ 查询结果table_schema为数据库名&a…...

TCP vs UDP:揭秘可靠性与效率之争

概述 今天我们开始主要讲解TCP的相关知识点。在之前讲解分层章节的时候,我们提到过一个重要观点。在网络层及以下几层,更多的是让主机与主机建立连接,也就是说你的电脑需要知道另一台电脑在哪里才能连接上它。然而,在网络中的通信…...

“树”的高度的计算——CSP-J1真题详解

如同树有高度一样,数据结构中的“树”也有高度,只不过这个高度指的是第几“层”。就像武功可以修炼到第几层一样,树也可以长到第几层。 需要指明的是,树的根节点属于第几层是没有严格的定义的,一般被认为是处于第0层或…...

Docker介绍、docker安装以及实现docker的远程管理

1.Docker介绍 1.Docker介绍 Docker 是⼀个开源的应用容器引擎,可以实现虚拟化,完全采用“沙盒”机制,容器之间不会存在任何接口。 Docker 通过 Linux Container(容器)技术将任意类型的应用进行包装,变成一…...

【UE5】基于摄像机距离逐渐剔除角色

效果 步骤 1. 新建一个工程,在内容浏览器中添加第三人称游戏内容包 2. 找到第三人称角色的材质实例“MI_Quinn_01”并打开 找到材质实例的父项材质“M_Mannequin” 打开材质“M_Mannequin” 在材质图表中添加如下节点 此时运行效果如文章开头所示。 参考视频&#…...

LabVIEW优化内存使用

在LabVIEW中,优化内存使用的关键在于理解LabVIEW的内存管理机制并采用一些最佳实践。以下是一些可能帮助减少内存占用的方法: 1. 减少数据副本的生成 避免不必要的数据复制:每当你在程序中传递数组或子数组时,LabVIEW可能会创建副…...

多进程和多线程基础概念LINUX

进程和程序的区别 程序是静态的,它是保存在磁盘上的指令的有序集合,没有任何执行的概念进程是一个动态的概念,它是程序执行的过程,包括了动态创建、调度和销毁的整个过程 并行:在 cpu 多核的支持下,实现物…...

React Native的Android端fetch的网络请求FormData请求错误:TypeError:Network request failed

// formdataconst formData new FormData();formData.append("code", appUserCode);formData.append("wallet", appName);// const formDataStr code appUserCode &wallet appName;// 参数形式//const _body code${appUserCode}&wallet${app…...

python之matplotlib (1 介绍及基本用法)

介绍 matplotlib是Python中的一个绘图库,它提供了一个类似于 MATLAB 的绘图系统。使用matplotlib你可以生成图表、直方图、功率谱、条形图、错误图、散点图等。matplotlib广泛用于数据可视化领域,是 Python 中最著名的绘图库之一。 同样matplotlib的安…...

ROS2常用指令

ROS2(Robot Operating System 2)是一个用于机器人软件开发的灵活框架,它提供了一套丰富的工具和库来支持机器人的开发、模拟、部署和测试。ROS2的常用指令可以大致分为几个类别,包括功能包管理、节点管理、话题管理、服务管理、动…...

SQL注入(原理、分类、union、POST注入)

目录 【学习目标、重难点知识】 【学习目标】 【重难点知识】 SQL注入简介 SQL注入原理 SQL注入类型 MySQL与SQL注入的相关知识 information_schema 数据库的结构 数据库查询语句 limit的用法 需要记住的几个函数 注释符号 SQL注入探测方法 SQL注入漏洞攻击流程…...

【勒索病毒应急响应流程】

概述 不同应急事件响应方式不同,建议大家阅读以下案例,解决自己当前的困扰,当然也可以根据自己的经验对文章进行补充和修正,欢迎在评论区留言。 案例1 事件概述 某安服团队接到某政府部门的远程应急响应求助,要求对被勒索服务器进行排查分析并溯源。 排查溯源 1、应…...

C ++初阶:C++入门级知识点

目录 🌞0.前言 🚈1.C输入输出 🚈2.缺省参数 🚝2.1全缺省参数 🚝2.2半缺省参数 🚈3.函数重载 🚝3.1参数类型不同 🚝 3.2参数个数不同 🚝3.3参数类型顺序不同 ​…...

php中如何高效地实现一个函数以判断给定日期是否位于多个预定义的时间范围内,同时确保代码的可读性、可维护性和性能优化

背景信息: 我有一个包含多个时间范围的数组,每个时间范围由起始日期和结束日期组成(目前以字符串形式给出),例如: $ranges [[start > 2023-01-01, end > 2023-03-31],[start > 2023-06-01, end …...

存在重复元素 II(LeetCode)

题目 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 解题 """ 时间复杂度…...

认知杂谈21

今天分享 有人说的一段争议性的话 I I 自在之“坏”&#xff1a;真实自我的绽放 在社交场合中&#xff0c;听到“他不是个好人”这句话可能会让人惊讶&#xff0c;但其实被贴上“坏人”标签的人往往敢于跳出规则框架&#xff0c;展现真实自我。他们不做表面和谐的牺牲品&am…...

2024前端面试题-工程化篇

1.webpack&#xff08;模块打包工具&#xff09;五大核心 Entry入口&#xff0c;Output定义输出路径和命名规则&#xff0c;Loader模块转换器&#xff0c;Plugin扩展插件&#xff0c;Mode模式&#xff08;Webpack使用相应模式的配置&#xff09; 2.谈一谈你对Loader和Plugin的…...

【附源码】Python :PYQT界面点击按钮随机变色

系列文章目录 Python 界面学习&#xff1a;PYQT界面点击按钮随机变色 文章目录 系列文章目录一、项目需求二、源代码三、代码分析3.1 导入模块&#xff1a;3.2 定义App类&#xff1a;3.3 构造函数&#xff1a;3.4 初始化用户界面&#xff1a;3.5 设置窗口属性&#xff1a;3.6 …...

[Qt][QSS][下]详细讲解

目录 1.样式属性0.前言1.盒模型(Box Model) 2.常用控件样式属性1.按钮2.复选框3.单选框4.输入框5.列表6.菜单栏7.注意 1.样式属性 0.前言 QSS中的样式属性⾮常多&#xff0c;不需要都记住&#xff0c;核⼼原则是⽤到了就去查 ⼤部分的属性和CSS是⾮常相似的 QSS中有些属性&am…...

RAII在实现webserver这个项目中是怎么体现的?起到了什么作用

在WebServer项目中&#xff0c;RAII&#xff08;Resource Acquisition Is Initialization&#xff0c;即资源获取即初始化&#xff09;是一种重要的资源管理策略&#xff0c;它主要通过智能指针、锁、文件句柄等对象的生命周期来管理资源的分配和释放。RAII在WebServer项目中的…...

QT下显示自己派生的QWidget界面(提升为)

在实际开发过程中&#xff0c;我们可能有这样的需求&#xff0c;自己绘制一个仪表盘界面&#xff0c;然后将其贴到主界面上方。 这个时候就会用到“提升为”这个功能&#xff0c;该功能目的是将QWidget提升为自己派生的QWdiget子类&#xff0c;具体操作为&#xff0c;在主界面…...

jvm监控工具一览

下面是对 BTrace、JAD、JMAP、JSTAT、JSTACK、JINFO 以及 MARK 工具的比较表&#xff1a; 工具/属性功能适用场景使用难度是否侵入式是否需要重启 JVMBTrace动态跟踪和监控 Java 应用程序性能分析、故障排查、日志收集、安全监控中等无侵入式否JAD反编译 Java 字节码文件&…...

使用 Visual Studio 编辑器作为 DailyNotes 的 markdown 编辑器

DailyNotes 是我使用过的最优秀的日常笔记管理工具&#xff0c;为它配置一个好的 markdown 编辑器&#xff0c;可以大幅提升效率。 除了使用 Typora 作为 markdown 编辑器&#xff0c;Visual Studio Code 也是一个非常不错的选择&#xff0c;令人惊喜的是&#xff0c;它也支持…...