做网站引用别人的图片/网络推广方法怎么做


🌈个人主页: 鑫宝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 (f∗g)(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) (I∗K)(i,j)=m∑n∑I(m,n)K(i−m,j−n)
其中, I I I是输入, K K K是卷积核(或称为滤波器)。
2.2 卷积层的特性
- 局部连接:每个神经元只与输入数据的一个局部区域相连。
- 权值共享:同一个特征图内的神经元共享相同的权重。
- 平移不变性:卷积操作对输入的平移具有不变性。
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=SW−F+2P+1,OH=SH−F+2P+1
3. 池化层
3.1 目的和作用
池化层用于降低特征图的空间分辨率,减少参数数量和计算量,同时提高模型对小的位移和失真的鲁棒性。
3.2 常见的池化方法
-
最大池化(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 -
平均池化(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=∣Rij∣1(a,b)∈Rij∑xab
其中, R i j R_{ij} Rij表示池化窗口, ∣ R i j ∣ |R_{ij}| ∣Rij∣是窗口中元素的数量。
3.3 池化层的超参数
- 池化窗口大小:常见的有2x2,3x3等。
- 步长:通常与窗口大小相同,以避免重叠。
4. 激活函数
4.1 作用
激活函数引入非线性,增强网络的表达能力。
4.2 常用的激活函数
-
ReLU (Rectified Linear Unit):
f ( x ) = max ( 0 , x ) f(x) = \max(0, x) f(x)=max(0,x) -
Sigmoid:
f ( x ) = 1 1 + e − x f(x) = \frac{1}{1 + e^{-x}} f(x)=1+e−x1 -
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+e−xex−e−x -
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))/(1−p)
其中, r r r 是一个由0和1组成的随机二元掩码,1的概率为 1 − p 1-p 1−p。
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(dkQKT)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)等技术可能会在这方面发挥重要作用,帮助我们发现更优的网络结构。

相关文章:

【机器学习】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组件࿰…...

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. 原因分析 解释:WSL(Windows Subsystem for Linux)闪退通常指的是在Windows操作系统中运行的Linux环境突然关闭。这可能是由于多种原因造成的,包括系统资源不足、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长度限制绕过技巧
目录 题目源码 方法一:命令执行的利用 方法二:file_put_contents(本地文件包含的利用) 方法三:usort(…$_GET); 题目源码 <?php $param $_REQUEST[param]; if(strlen($param)<17 && stripos($par…...

C++11标准模板(STL)- 算法库 - 类似 std::accumulate,但不依序执行 -(std::reduce)
算法库 算法库提供大量用途的函数(例如查找、排序、计数、操作),它们在元素范围上操作。注意范围定义为 [first, last) ,其中 last 指代要查询或修改的最后元素的后一个元素。 类似 std::accumulate,但不依序执行 std…...

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

AI图文带货,手把手教学,傻瓜操作,轻松日入500+,小白教程
通过自媒体的力量,帮助普通人成为企业家。 建立自己的财富事业,用你的影响力帮助更多的人。 从而实现你更加自由的生活方式。 记住关注我,不要错过每一次分享。 对标账号 作为公司的一个项目实际拆解者,最热门的项目怎么能不拆…...

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

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 入门案例 步骤一:引入Mybat…...

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

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

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

java文件上传
导入jar包,或者maven <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> <dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>…...

MySQL 数据库经验总结
一、数据库操作 1. 创建数据库 CREATE DATABASE database_name;例如,创建一个名为 my_database 的数据库: CREATE DATABASE my_database;2. 选择数据库 USE database_name;要使用刚才创建的 my_database 数据库: USE my_database;3. 删除…...

Python环境安装及PIP安装(Mac OS版)
官网 https://www.python.org/downloads/ 安装python python-3.12.1-macos11.pkg下载后,安装一直下一步即可 验证是否安装成功,执行python3命令和pip3命令 配置环境变量 获取python3安装位置并配置在.bash_profile #查看python路径 which python3#…...

2024自动驾驶(多模态)大模型综述:从DriveGPT4、DriveMLM到DriveLM、DriveVLM
前言 由于今年以来,一直在不断深挖具身智能机器人相关,而自动驾驶其实和机器人有着无比密切的联系,甚至可以认为,汽车就是一个带着4个轮子的机器人 加之个人认为,目前大模型落地潜力最大的两个方向,一个是…...

晨控CK-GW08-EC与汇川AC801系列PLC的EtherCAT通讯连接说明手册
晨控CK-GW08-EC与汇川AC801系列PLC的EtherCAT通讯连接说明手册 晨控CK-GW08-EC是一款支持标准工业通讯协议EtherCAT的网关控制器,方便用户集成到PLC等控制系统中。系统还集成了8路读写接口,用户可通过通信接口使用EtherCAT协议对8路读写接口所连接的读卡器进行相对…...

向上or向下调整建堆 的时间复杂度的本质区别的讲解
知识点:(N代表节点数,h代表高度) 1:高度为h的满二叉树节点个数N为 2^(h)-1 即N 2^(h)-1 2:所以h log(N1) 一:向上…...

阿一网络安全实战演练之利用 REST URL 中的服务器端参数污染
所需知识 要解决这个实验室问题,您需要了解以下内容: 如何确定用户输入是否包含在服务器端的 URL 路径或查询字符串中。如何使用路径遍历序列尝试更改服务器端请求。如何查找 API 文档。 这些内容在我们的 API 测试学院主题中有涵盖。 进入实验室 研…...

[游戏开发] LuaTable转string存读二进制文件
UE5和Unity通用此方案,只不过读写文件的接口略有不同,lua代码的处理是相同的。 下面两个方法是 LuaTable和字符串互相转换的代码 function XUtils.luaTableToString(tab, sp)sp sp or ""local s ""for k,v in pairs(tab) doif t…...

光伏业务管理系统的一些妙用功能
现在信息化流程化基本上每个行业都必须要有的了,光伏业务管理系统软件是一种专门用于光伏产业运营和管理的综合性系统,它结合了信息技术、数据分析、项目管理、客户管理等多个领域的知识,为光伏企业提供了一个全面、高效、智能的管理平台&…...

Java面试八股之请简述消息队列的发布订阅模式
请简述消息队列的发布订阅模式 发布订阅(Publish-Subscribe,简称 Pub/Sub)模型是一种消息传递模式,它在组件之间提供了高度的解耦和灵活性。这种模式广泛应用于分布式系统、事件驱动架构以及消息队列系统中。下面是发布订阅模型的…...

七、2 ADC数模转换器有关函数介绍(Keil5)
函数介绍 (1)ADCCLK的配置函数(在rcc.h中) (2)ADC的库函数(在adc.h中)...