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

【机器学习】CNN的基本架构模块


鑫宝Code

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


文章目录

  • CNN的基本架构模块
    • 1. 引言
    • 2. 卷积层
      • 2.1 基本原理
      • 2.2 卷积层的特性
      • 2.3 卷积层的超参数
      • 2.4 输出大小计算
    • 3. 池化层
      • 3.1 目的和作用
      • 3.2 常见的池化方法
      • 3.3 池化层的超参数
    • 4. 激活函数
      • 4.1 作用
      • 4.2 常用的激活函数
      • 4.3 激活函数的选择
    • 5. 全连接层
      • 5.1 作用
      • 5.2 数学表示
      • 5.3 特点
    • 6. Dropout层
      • 6.1 原理
      • 6.2 数学表示
    • 7. 批归一化层(Batch Normalization)
      • 7.1 目的
      • 7.2 数学表示
    • 8. 残差连接(Residual Connection)
      • 8.1 动机
      • 8.2 数学表示
    • 9. 注意力机制(Attention Mechanism)
      • 9.1 原理
      • 9.2 自注意力(Self-Attention)
    • 10. 高级CNN架构
      • 10.1 Inception模块
      • 10.2 DenseNet
      • 10.3 SENet(Squeeze-and-Excitation Network)
    • 11. 结论

CNN的基本架构模块

1. 引言

卷积神经网络(Convolutional Neural Network,CNN)是深度学习中一种强大的神经网络架构,特别适用于处理具有网格状拓扑结构的数据,如图像和时间序列。CNN的成功源于其独特的架构设计,包含了多个精心设计的基本模块。本文将详细介绍CNN的基本架构模块,包括卷积层、池化层、激活函数、全连接层等,以及一些高级组件和优化技术。
在这里插入图片描述

2. 卷积层

在这里插入图片描述

2.1 基本原理

卷积层是CNN的核心组件,负责提取输入数据的局部特征。卷积操作可以表示为:

( f ∗ g ) ( t ) = ∫ − ∞ ∞ f ( τ ) g ( t − τ ) d τ (f * g)(t) = \int_{-\infty}^{\infty} f(\tau)g(t-\tau)d\tau (fg)(t)=f(τ)g(tτ)dτ

在离散情况下,二维卷积可以表示为:

( I ∗ K ) ( i , j ) = ∑ m ∑ n I ( m , n ) K ( i − m , j − n ) (I * K)(i,j) = \sum_{m}\sum_{n} I(m,n)K(i-m,j-n) (IK)(i,j)=mnI(m,n)K(im,jn)

其中, I I I是输入, K K K是卷积核(或称为滤波器)。

2.2 卷积层的特性

  1. 局部连接:每个神经元只与输入数据的一个局部区域相连。
  2. 权值共享:同一个特征图内的神经元共享相同的权重。
  3. 平移不变性:卷积操作对输入的平移具有不变性。

2.3 卷积层的超参数

  • 卷积核大小:常见的有3x3,5x5等。
  • 步长(Stride):控制卷积核移动的步长。
  • 填充(Padding):在输入周围添加额外的像素。

2.4 输出大小计算

对于输入大小为 W × H W \times H W×H,卷积核大小为 F × F F \times F F×F,步长为 S S S,填充为 P P P 的卷积层,输出大小为:

O W = W − F + 2 P S + 1 , O H = H − F + 2 P S + 1 O_W = \frac{W - F + 2P}{S} + 1, \quad O_H = \frac{H - F + 2P}{S} + 1 OW=SWF+2P+1,OH=SHF+2P+1

3. 池化层

在这里插入图片描述

3.1 目的和作用

池化层用于降低特征图的空间分辨率,减少参数数量和计算量,同时提高模型对小的位移和失真的鲁棒性。

3.2 常见的池化方法

  1. 最大池化(Max Pooling)
    y i j = max ⁡ ( a , b ) ∈ R i j x a b y_{ij} = \max_{(a,b)\in R_{ij}} x_{ab} yij=(a,b)Rijmaxxab

  2. 平均池化(Average Pooling)
    y i j = 1 ∣ R i j ∣ ∑ ( a , b ) ∈ R i j x a b y_{ij} = \frac{1}{|R_{ij}|} \sum_{(a,b)\in R_{ij}} x_{ab} yij=Rij1(a,b)Rijxab

其中, R i j R_{ij} Rij表示池化窗口, ∣ R i j ∣ |R_{ij}| Rij是窗口中元素的数量。

3.3 池化层的超参数

  • 池化窗口大小:常见的有2x2,3x3等。
  • 步长:通常与窗口大小相同,以避免重叠。

4. 激活函数

4.1 作用

激活函数引入非线性,增强网络的表达能力。

4.2 常用的激活函数

  1. ReLU (Rectified Linear Unit)
    f ( x ) = max ⁡ ( 0 , x ) f(x) = \max(0, x) f(x)=max(0,x)

  2. Sigmoid
    f ( x ) = 1 1 + e − x f(x) = \frac{1}{1 + e^{-x}} f(x)=1+ex1

  3. Tanh
    f ( x ) = e x − e − x e x + e − x f(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} f(x)=ex+exexex

  4. Leaky ReLU
    f ( x ) = { x , if  x > 0 α x , otherwise f(x) = \begin{cases} x, & \text{if } x > 0 \\ \alpha x, & \text{otherwise} \end{cases} f(x)={x,αx,if x>0otherwise
    其中 α \alpha α 是一个小的正常数。

4.3 激活函数的选择

  • ReLU 是目前最常用的激活函数,因为它计算简单,能缓解梯度消失问题。
  • Sigmoid 和 Tanh 在某些特定任务中仍有应用,如二分类问题。
  • Leaky ReLU 等变体旨在解决 ReLU 的"死亡 ReLU"问题。

5. 全连接层

5.1 作用

全连接层通常位于CNN的末端,用于将学到的特征映射到样本标记空间。

5.2 数学表示

全连接层的操作可以表示为:

y = f ( W x + b ) y = f(Wx + b) y=f(Wx+b)

其中, W W W 是权重矩阵, b b b 是偏置向量, f f f 是激活函数。

5.3 特点

  • 参数数量大,易导致过拟合。
  • 可以学习特征的全局组合。

6. Dropout层

在这里插入图片描述

6.1 原理

Dropout是一种正则化技术,在训练过程中随机"丢弃"一部分神经元,防止过拟合。

6.2 数学表示

对于dropout率为 p p p 的层,其输出可表示为:

y = f ( r ∗ ( W x + b ) ) / ( 1 − p ) y = f(r * (Wx + b)) / (1-p) y=f(r(Wx+b))/(1p)

其中, r r r 是一个由0和1组成的随机二元掩码,1的概率为 1 − p 1-p 1p

7. 批归一化层(Batch Normalization)

7.1 目的

批归一化通过标准化每一层的输入来加速训练过程,提高模型的稳定性。

7.2 数学表示

对于输入 x x x,批归一化的操作为:

y = γ x − μ B σ B 2 + ϵ + β y = \gamma \frac{x - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}} + \beta y=γσB2+ϵ xμB+β

其中, μ B \mu_B μB σ B 2 \sigma_B^2 σB2 分别是批次的均值和方差, γ \gamma γ β \beta β 是可学习的参数, ϵ \epsilon ϵ 是一个小常数。

8. 残差连接(Residual Connection)

8.1 动机

残差连接解决了深层网络的梯度消失问题,使得训练更深的网络成为可能。

8.2 数学表示

对于输入 x x x,残差块的输出为:

y = F ( x ) + x y = F(x) + x y=F(x)+x

其中, F ( x ) F(x) F(x) 是残差函数,通常由几个卷积层组成。

9. 注意力机制(Attention Mechanism)

9.1 原理

注意力机制允许模型在处理输入时关注最相关的部分,提高模型的性能。

9.2 自注意力(Self-Attention)

自注意力机制的计算过程可以表示为:

Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V

其中, Q Q Q K K K V V V 分别是查询、键和值矩阵, d k d_k dk 是键的维度。

10. 高级CNN架构

10.1 Inception模块

Inception模块并行使用不同大小的卷积核,以捕获不同尺度的特征。

10.2 DenseNet

DenseNet通过密集连接提高了特征的重用,减少了参数数量。

10.3 SENet(Squeeze-and-Excitation Network)

SENet引入了通道注意力机制,自适应地调整特征通道的重要性。

11. 结论

CNN的基本架构模块是深度学习在计算机视觉领域取得巨大成功的关键。从最基本的卷积层和池化层,到高级的残差连接和注意力机制,每个组件都在不断演进,以提高模型的性能和效率。理解这些基本模块及其工作原理,对于设计和优化CNN模型至关重要。

随着研究的深入,我们可以期待看到更多创新的架构组件出现,进一步推动CNN在各个领域的应用和发展。同时,如何有效地组合这些模块以构建高效、鲁棒的网络架构,仍然是一个值得深入研究的方向。未来,自动化神经架构搜索(NAS)等技术可能会在这方面发挥重要作用,帮助我们发现更优的网络结构。

End

相关文章:

【机器学习】CNN的基本架构模块

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 CNN的基本架构模块1. 引言2. 卷积层2.1 基本原理2.2 卷积层的特性2.3 卷积层的超…...

第八节AWK报告生成器(2)

3,1,2 printf 语法: printf("format\n", [arguments])格式说明 format是一个用来描述输出格式的字符串,format格式的指示符都以%开头,后跟一个字符,如下: format含义%c显示字符的asicll%d,%i十进制整数%e,%E科学计数法显示数值…...

Linux 进程间通信之管道

个人主页:仍有未知等待探索-CSDN博客 专题分栏: Linux 目录 一、通信 1、进程为什么要通信? 1.数据的类型 2.父进程和子进程算通信吗? 2、进程如何通信? 3、进程通信的常见方式? 二、管道 1、概念…...

IDEA 无法启动,点击之后没有任何提示或者界面

当你尝试通过双击或以管理员身份启动程序时,均未能成功,且未收到任何提示信息或界面反馈,这确实令人困扰。为了诊断问题并获取有用的错误信息,你可以按照以下步骤操作: 1. 启用并查看错误信息 首先,你需要…...

ctf 堆栈结构

CTF(Capture The Flag)竞赛中,理解堆栈结构对于解决涉及二进制分析、逆向工程和利用开发的挑战至关重要。堆栈是在程序执行过程中用于临时存储数据和管理函数调用的关键数据结构。以下是堆栈结构的基本概念及其在CTF竞赛中的应用:…...

sqlserver的openquery配置

1.命令Demo ---openquery--开启Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句exec sp_configure show advanced options,1reconfigureexec sp_configure Ad Hoc Distributed Queries,1reconfigure--关闭Ad Hoc Distributed Queries组件&#xff0…...

Spring boot logback日志框架加载初始化源码

##LoggingApplicationListener监听 Overridepublic void onApplicationEvent(ApplicationEvent event) {if (event instanceof ApplicationStartingEvent) {onApplicationStartingEvent((ApplicationStartingEvent) event);}else if (event instanceof ApplicationEnvironment…...

qt-11基本对话框(消息框)

基本对话框--消息框 msgboxdlg.hmsgboxdlg.cppmain.cpp运行图QustionMsgInFormationMsgWarningMsgCriticalMsgAboutMsgAboutAtMsg自定义 msgboxdlg.h #ifndef MSGBOXDLG_H #define MSGBOXDLG_H#include <QDialog> #include <QLabel> #include <QPushButton>…...

Windows11下wsl闪退的解决

wsl闪退 1. 原因分析 解释&#xff1a;WSL&#xff08;Windows Subsystem for Linux&#xff09;闪退通常指的是在Windows操作系统中运行的Linux环境突然关闭。这可能是由于多种原因造成的&#xff0c;包括系统资源不足、WSL配置问题、兼容性问题或者是Linux内核的问题。&…...

通过调整JVM的默认内存配置来解决内存溢出(‌OutOfMemoryError)‌或栈溢出(‌StackOverflowError)‌等错误

文章目录 引言I 调整JVM的默认堆内存配置java命令启动jar包Tomcat服务器部署java应用引言 问题: org.springframework.web.util.estedServletException: Handlerdispatch failed: nested exception isjava.lang.0utOfMemoryError: Java heap space原因分析: 查询查询平台所…...

RCE---eval长度限制绕过技巧

目录 题目源码 方法一&#xff1a;命令执行的利用 方法二&#xff1a;file_put_contents&#xff08;本地文件包含的利用&#xff09; 方法三&#xff1a;usort(…$_GET); 题目源码 <?php $param $_REQUEST[param]; if(strlen($param)<17 && stripos($par…...

C++11标准模板(STL)- 算法库 - 类似 std::accumulate,但不依序执行 -(std::reduce)

算法库 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;&#xff0c;它们在元素范围上操作。注意范围定义为 [first, last) &#xff0c;其中 last 指代要查询或修改的最后元素的后一个元素。 类似 std::accumulate&#xff0c;但不依序执行 std…...

反射机制的介绍

什么是反射 Java反射机制是Java语言一个很重要的特性&#xff0c;它使得Java具有了“动态性”。在Java程序运行时&#xff0c;对于任意的一个类&#xff0c;我们能不能知道这个类有哪些属性和方法呢&#xff1f;对于任意的一个对象&#xff0c;我们又能不能调用它任意的方法&a…...

AI图文带货,手把手教学,傻瓜操作,轻松日入500+,小白教程

通过自媒体的力量&#xff0c;帮助普通人成为企业家。 建立自己的财富事业&#xff0c;用你的影响力帮助更多的人。 从而实现你更加自由的生活方式。 记住关注我&#xff0c;不要错过每一次分享。 对标账号 作为公司的一个项目实际拆解者&#xff0c;最热门的项目怎么能不拆…...

java:实现简单的验证码功能

效果 实现思路 验证码图片的url由后端的一个Controller生成&#xff0c;前端请求这个Controller接口的时候根据当前时间生成一个uuid&#xff0c;并把这个uuid在前端使用localStorage缓存起来&#xff0c;下一次还是从缓存中获取。 Controller生成验证码之后&#xff0c;把前…...

MybatisPlus使用指南

MybatisPlus 1. 快速入门1.1 入门案例1.2 常见注解1.3 常见配置 2. 核心功能2.1 条件构造器2.2 自定义SQL2.3 Service接口 3. 扩展功能3.1 代码生成3.2 静态工具3.3 逻辑删除 4. 插件功能4.1 分页插件4.2 通用分页实体 1. 快速入门 1.1 入门案例 步骤一&#xff1a;引入Mybat…...

5. MongoDB 集合创建、更新、删除

1. 创建集合 1.1 语法 db.createCollection(name, options) 参数说明&#xff1a; name: 要创建的集合名称。options: 可选参数, 指定有关内存大小及索引的选项。 options 可以是如下参数&#xff1a; 参数名类型描述示例值capped布尔值是否创建一个固定大小的集合。truesize…...

PHP中如何将变量从函数传递给acf_add_filter

在PHP开发中&#xff0c;我们有时需要将变量从函数传递给acf的add_filter钩子。这样做可以让我们在acf字段加载时&#xff0c;对字段值进行动态修改。下面&#xff0c;我将详细介绍如何实现这一功能。 在acf中&#xff0c;我们使用add_filter来添加钩子&#xff0c;对字段的加…...

KNN算法的使用

目录 一、KNN 算法简介 二、KNN算法的使用 1.读取数据 2.处理数据 三、训练模型 1.导入KNN模块 2.训练模型 3.出厂前测试 四、进行测试 1.处理数据 2.进行测试 总结 一、KNN 算法简介 KNN 是一种基于实例的学习算法。它通过比较样本之间的距离来进行预测。算法的核心…...

java文件上传

导入jar包&#xff0c;或者maven <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> <dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...