第二十周周报:回顾篇

目录

摘要

Abstract

1 深度学习基础知识

1.1 学习率

1.1.1 自适应学习率

1.1.2 学习率调度

1.2 归一化

1.2.1 批量归一化

1.2.2 特征归一化

1.3 激活函数

1.3.1 Sigmoid函数

1.3.2 Tanh函数

1.3.3 ReLU函数

1.3.4 Leak ReLU函数

1.3.5 PReLU函数

1.3.6 ELU函数

1.3.7 Softmax函数

1.4 反向传播

2 图像分类模型

2.1 CNN

2.2 ResNet

2.3 Vision Transformer

3 目标检测模型

3.1 SSD

3.2 YOLO

3.3 CenterNet

3.4 Detection Transformer

总结


摘要

本周主要对前几周学过的知识进行了复习,主要包括深度学习的基础知识,图像分类的核心网络模型,以及目标检测的重要网络模型。本篇博客主要写了各个板块的主体内容,也是对各个板块的整合,从图像分类到目标检测,由易到难。

Abstract

This week, I mainly reviewed the knowledge I learned in the previous weeks, including the basics of deep learning, the core network models for image classification, and important network models for object detection. This blog mainly writes about the main content of each section, as well as the integration of various sections, from image classification to object detection, from easy to difficult.

1 深度学习基础知识

深度学习是使用深度神经网络来学习数据的表示和提取特征。这些网络由多个层次组成,每一层都执行特定的数据变换,从而将数据从原始形式转换为更高层次、更抽象的表达。

神经网络结构:每一层神经元接收前一层神经元的输出作为输入,并经过线性转变和非线性变换后产生输出。这些输出再作为下一层神经元的输入,直到最后一层产生模型的最终输出。

1.1 学习率

学习率通常用符号η表示,决定了在每次参数更新时,模型参数沿着负梯度方向前进的距离,即在优化算法中,学习率控制着每次更新模型参数时,参数沿着梯度方向移动的步长大小。

1.1.1 自适应学习率
  • AdaGrad:根据梯度大小自动调节学习率;
  • RMSProp:与AdaGrad不同的是,RMSProp可以动态调整梯度的重要程度;
  • Adam:在RMSProp的基础上加上动量,是最常用的优化器。
1.1.2 学习率调度
  • 学习率退火(衰减):η随时间逐渐减少;
  • 预热:\eta先变大后逐渐减小。因为统计的结果需要足够多的数据才精准,一开始统计结果 σ 是不精准的。所以开始学习率比较小是用来探索收集一些有关误差表面的情报,此时\eta较大,更利于收集有关 σ 的统计数据,等 σ 统计得比较精准以后,再让学习率慢慢爬升,同时\eta开始减小。 

1.2 归一化

1.2.1 批量归一化

批量归一化(BN)是一种正则化技术,它通过对每一层的输入进行归一化处理,使得每一层的输入分布相对稳定,从而加速网络的收敛速度,提高模型的泛化性能。批量归一化能够减少内部协变量偏移,即训练过程中由于数据分布变化而导致的网络参数更新不稳定的问题。此外,批量归一化还可以减少模型的过拟合风险,因为它降低了网络对训练数据中微小变化的敏感性。

1.2.2 特征归一化

在数据预处理阶段,对整个数据集的所有特征进行预处理。将不同特征的数据范围缩放到相同的尺度上,以便模型公平的评估每一个特征的重要性。

1.3 激活函数

激活函数通常在每个神经元(除了输入层)的输出上方,作为输入加权和的非线性转变。如果没有激活函数的神经网络仅是一个线性回归模型,激活函数使得神经网络能够学习和理解复杂的数据模式。

1.3.1 Sigmoid函数

特点:将任意实值压缩到0和1之间,常用于二分类问题的输出层。但因其梯度消失问题(当输入值非常大或非常小时,梯度接近0),在深度网络中较少使用。

1.3.2 Tanh函数

特点:将任意实值压缩到-1和1之间,输出以0为中心,有助于加快收敛速度。但它同样存在梯度消失问题。

1.3.3 ReLU函数

特点:当输入为正时,输出等于输入;当输入为负时,输出为0。ReLU解决了梯度消失问题(在输入为正时),计算简单且高效,是目前最常用的激活函数之一。然而,它可能导致“神经元死亡”问题,即某些神经元可能永远不会被激活。

1.3.4 Leak ReLU函数

特点:旨在解决ReLU的“神经元死亡”问题,通过允许小的负梯度通过,保持神经元在训练过程中的活性。

1.3.5 PReLU函数

特点:增加了模型的灵活性,允许网络自动调整负输入部分的斜率。

1.3.6 ELU函数

特点:结合了ReLU和Sigmoid的优点,对于负输入值,输出逐渐趋近于0但不等于0,有助于缓解梯度消失问题,并有助于捕获负值的输入信息。

1.3.7 Softmax函数

特点:常用于多分类问题的输出层,将输出转换为概率分布,每个类别的输出值在0和1之间,且所有类别的输出值之和为1。

1.4 反向传播

反向传播阶段,首先计算损失函数对输出层激活值的导数,即损失函数相对于输出层参数的梯度。然后,将这个梯度通过链式法则传播到隐藏层,逐层计算每个权重的梯度。最后,利用这些梯度,通过梯度下降或其他优化算法更新每个权重,使得损失函数在下一次迭代中更小。

 

2 图像分类模型

2.1 CNN

CNN的核心思想是利用卷积操作来提取输入数据的特征。卷积操作通过滑动一个或多个卷积核(也称为滤波器)在输入数据上,计算卷积核与输入数据各个局部区域的点积,从而得到特征映射。这些特征映射可以被视为输入数据的某种抽象表示,包含了输入数据的重要信息。

CNN通常由以下几个部分组成:

  • 输入层:接收原始图像或时间序列数据;
  • 卷积层:利用卷积核提取输入数据的特征。卷积层通常包含多个卷积核,每个卷积核可以提取不同类型的特征;
  • 激活函数层:对卷积层的输出进行非线性变换,增加模型的表达能力。常用的激活函数包括ReLU等;
  • 池化层:对特征映射进行下采样,减少数据的维度和计算量,同时保留重要信息。常见的池化操作包括最大池化和平均池化;
  • 全连接层:将池化层的输出映射到类别标签或其他任务目标上。全连接层通常位于网络的最后几层,用于实现分类、回归等任务。

2.2 ResNet

残差网络(ResNet)是一种深度神经网络结构,使用残差块来解决深层网络训练中的梯度消失梯度爆炸问题,使得网络能够随着层数的增加而持续深化,同时保持稳定的性能。

  • 残差学习:

ResNet引入了残差学习的概念,即允许网络学习到输入和输出之间的残差,而不是直接学习输入到输出的映射。这有助于缓解深层网络训练中的梯度消失问题。

  • 残差块:

残差块是ResNet的基本组成单元,每个残差块包含输入和输出之间的一条捷径或恒等连接。这种结构允许信息直接跳过一个或多个层,将输入直接添加到输出上,形成“shortcut connection”或“skip connection”。

残差块内部通常包含几个卷积层和非线性激活层(如ReLU),以及一个恒等映射。

  • 易于优化:

由于残差块的设计,ResNet的网络结构变得更加易于优化。即使网络非常深,也能保持稳定的性能,不会出现性能饱和甚至下降的现象。

  • 强大的特征提取能力:

ResNet通过深层网络学习到更复杂的特征表示,提升了图像分类、目标检测等任务的性能。

2.3 Vision Transformer

Vision Transformer(ViT)是一种基于Transformer架构的深度学习模型,专门用于图像识别任务,也是首次将Transformer架构成功引入计算机视觉领域。

ViT核心结构如下:

  • 图像分块:

ViT首先将输入图像分割成一系列固定大小的图像块patches。每个图像块被展平并线性变换为一个向量,这些向量作为后续Transformer模型的输入。

  • 位置编码(Positional Encoding):

由于Transformer模型本身不具有处理序列中元素位置信息的能力,ViT 引入了位置编码来保持图像块之间的相对位置信息。位置编码可以是固定的(如正弦位置编码)或可学习的。

  • Transformer Encoder:

ViT使用标准的Transformer编码器来处理图像块向量序列。编码器由多层组成,每层包含两个关键组件:多头自注意力机制和多层感知器。

在每个块之前,应用层归一化以确保训练期间的稳定性和效率。

  • 分类标记(Class Token):

为了进行图像分类,ViT在patch嵌入序列之前会附加一个特殊的“分类标记”:Class Token。

这个标记在编码器输出端的状态用作整个图像的表示形式,并通过MLP Head进行分类。

 

3 目标检测模型

3.1 SSD

SSD的核心思想是将目标检测任务转化为一个端到端的回归问题,即直接预测目标物体的类别和位置。它结合了Faster R-CNN中的Anchor机制和YOLO中的单次检测思想,实现了高效的目标检测。

SSD的网络结构通常基于一个预训练的卷积神经网络(如VGG、ResNet等),并在此基础上添加额外的卷积层来预测目标物体的类别和位置。

SSD使用多个不同尺度的特征图来检测不同大小的目标物体。每个特征图上的每个位置都会预测一系列默认框(default boxes)的类别和偏移量。默认框是在特征图上以特定方式排列的矩形框,它们被用作目标物体的候选框。

3.2 YOLO

YOLO的核心思想是将整个目标检测任务看作一个单一的回归问题。它首先将输入图像划分为一个S×S的网格,每个网格负责预测中心落在该网格内的目标。每个网格会预测B个边界框(bounding box)以及这些边界框的置信度分数(confidence scores)。置信度分数反映了边界框内是否存在目标以及边界框的准确程度。此外,每个网格还会预测C个类别概率,表示该网格内目标属于各个类别的概率。

YOLO的网络结构通常基于一个卷积神经网络(CNN),该网络被设计为能够同时处理分类和定位任务。在YOLOv1中,作者使用了类似于GoogLeNet的自定义网络结构,包含了24个卷积层和2个全连接层。在YOLOv2和YOLOv3中,作者引入了更深的网络结构,如Darknet-19和Darknet-53,以及残差连接等技巧,以提高模型的性能和稳定性。

3.3 CenterNet

CenterNet将目标检测视为一个标准的关键点估计问题。它将目标表示为一个在其bounding box中心位置的单独点,而其他的一些属性,如目标尺寸、维度、朝向和姿态等,则直接从这个中心点位置的图像特征中进行回归。

  • 网络结构

主要包括主干特征提取网络、上采样和CenterHead三部分。主干特征网络可以采用Hourglass Network(主要用于人体姿态估计)、DLANet或者Resnet等。输入图像经过主干网络提取特征后,通过上采样得到高分辨率特征图,最后通过CenterHead进行关键点的预测。

CenterHead部分包括三个卷积操作,分别用于热力图预测、偏移预测和宽高预测。热力图预测用于判断每个区域是否存在目标中心点,偏移预测用于补偿因下采样带来的中心点坐标精度误差,宽高预测则用于回归目标的宽度和高度。

  • 热力图生成与理解

在CenterNet中,热力图是一个关键组件。热力图的峰值位置即为目标的中心。每个峰值位置的图像特征用来预测目标bounding box的宽度和高度。为了生成热力图,首先需要将目标的bounding box缩放到与特征图相同的尺度上,然后计算每个目标的中心点坐标并取整。接着,以这些中心点为圆心,根据目标尺寸计算高斯半径,并在热力图上以高斯函数填充值。这样,热力图上的每个像素值就表示了该位置是目标中心的概率。

  • 预测阶段

CenterNet首先根据输入图像生成热力图。然后,采用3x3的MaxPooling操作检测当前热点的值是否比周围的八个近邻点都大的点,这些点被视为候选的中心点。接着,从这些候选点中选取前100个点作为检测到的中心点。对于每个检测到的中心点,根据其位置、预测的偏移值和宽高值,可以计算出目标的bounding box。

3.4 Detection Transformer

DETR首次将Transformer架构应用于目标检测任务,实现了端到端的目标检测。

DETR的模型架构主要由四个主要部分组成:主干网络、Transformer编码器、Transformer解码器和预测头。

  • 主干:DETR通常使用预训练的卷积神经网络(CNN),如ResNet-50或ResNet-101,作为主干进行特征提取。这些特征随后被传递到Transformer编码器和解码器层。
  • Transformer编码器:编码器的输入是主干提取的特征以及位置编码。位置编码注入了关于像素空间位置的信息,以帮助模型保持对2D图像中位置的感知。编码器通过多头自注意力和前馈网络等机制,学习图像的不同区域中的对象之间的上下文关系。
  • Transformer解码器:解码器是DETR中的一项关键创新。它接受来自编码器的编码特征和一组学习对象查询queries作为输入。解码器包含多头自注意力和前馈网络,以及具有多头交叉注意力,允许对象查询与来自编码器的编码特征进行交互。解码器的输出是一组学习对象查询,其以嵌入的形式表示图像中的潜在对象。
  • 预测头:预测头是DETR架构的最后一个组件。它接受解码器层的输出作为输入,并对于每个对象查询,预测是否存在对象以及对象的边界框。预测头还计算用于训练整个网络的损失,该损失是分类损失和边界框损失的组合。

 

总结

本周的复习到此结束,下周将开始新板块的学习----扩散生成模型。

如有错误,请各位大佬指出,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/10887.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

智能化SCRM方案助力企业高效管理与营销转型

内容概要 现代企业面临着复杂多变的市场环境,传统的管理与营销方式常常无法满足日益增长的需求。这时,智能化SCRM方案便应运而生,为企业带来了新的机遇与挑战。智能化SCRM方案不仅仅是一个单一的工具,它更像是一个全面的解决方案…

PRD2012学习笔记

图例位置: 使用 loc‘upper left’ 指定图例的基本位置为左上角。 使用 bbox_to_anchor(0.1, 0.9) 来进行自定义位置调整,其中 (0.1, 0.9) 指定图例相对于图形区域的坐标 (x, y)。 0.1 表示距离左边界的比例位置,0.9 表示距离上边界的比例位置…

【01课_初识算法与数据结构】

一、理解算法 1、算法的概念 算法,个人理解就是计算一段逻辑,最简化,最快速的方式、方法 每个函数,就包含了一定的算法,执行一定的计算逻辑 算法是一系列程序指令,用于解决特定的运算和逻辑问题 2、衡…

《⼆叉搜索树》

《⼆叉搜索树》 1. ⼆叉搜索树的概念2. ⼆叉搜索树的性能分析3 二叉树的功能说明及实现3.1 ⼆叉搜索树的插⼊3.2 ⼆叉搜索树的查找3.3 ⼆叉搜索树的删除 4二叉搜索树的实现代码5 ⼆叉搜索树key和key/value使⽤场景5.1 key搜索场景:5.2 key/value搜索场景&#xff1a…

stm32 踩坑笔记

串口问题: 问题:会改变接收缓冲的下一个字节 串口的初始化如下,位长度选择了9位。因为要奇偶校验,要选择9位。但是接收有用数据只用到1个字节。 问题原因: 所以串口接收时会把下一个数据更改

卫星授时服务器,单北斗授时服务器,北斗卫星时钟服务器

当前NTP授时服务器已经实现内部的元器件及芯片实现采用国产化,已经证明了国产产品已经摆脱需要依靠进口元器件及芯片才能实现的产品研发、也证明了大国崛起。下来我们来分析下国产化服务器具备的优势。 1、采用国产操作系统:使用国产化系统Linux更加可靠…

Windows11免密码自动登录

按winR,打开运行,输入Control Userpasswords2,打开用户账户。 打开该设置,取消选中该选项,点击应用,输入想要自动登录的账户和密码,即可开机后自动登录Windows。 若此界面无该选项,…

C++使用开源ConcurrentQueue库处理自定义业务数据类

ConcurrentQueue开源库介绍 ConcurrentQueue是一个高性能的、线程安全的并发队列库。它旨在提供高效、无锁的数据结构,适用于多线程环境中的数据交换。concurrentqueue 支持多个生产者和多个消费者,并且提供了多种配置选项来优化性能和内存使用。 Conc…

中仕公考:2025年省考可以开始准备了!

“各省公务员考试”,是选拔和招录公务员的一种重要方式。该考试由各省级主管部门统一安排,编制归属于各个省份。 考试时间 各省的考试时间有所不同,但通常省联考的时间一般安排在3-5月之间。 户籍限制 部分岗位对考生的户籍有限制&#x…

保姆级教程,免费短链平台

神行短链 开源代码: https://github.com/EASTCATV/openShortLink.git 保姆级教程,5分钟打造属于自己的短链 免费短链平台 免费使用 短链生成 免费使用 地址: short.godsdo.com short.godsdo.com 打包命令 sbt clean && sbt packagedocker run -d \ --name shot…

三十六、Python基础语法(JSON操作)

JSON(JavaScript Object Notation)是一种基于文本,轻量级的数据交换格式。它易于人阅读和编写,同时也易于机器解析和生成,在自动化测试中经常用来存放测试数据。 JSON的特点: 基于文本,不包含图…

linux基础-完结(详讲补充)

linux基础-完结 一、Linux目录介绍 二、基础命令详细讲解 1. ls(列出目录内容) 2. cd(更改目录) 3. clear(清除终端屏幕) 4. pwd(显示你当前所在的目录) 5. vim(文本编辑器) 6. touch(创…

【SAP】关于权限的继承

关于权限的父role和子role的权限继承,既可以 从子role主动去父role那里“取”。从父role“推”到子role 我自己之前一直用的是方法1,但由于子role很多,一个一个手工维护花了不少时间。 后来得知有方法2,特此测试。 我准备了父R…

信息安全数学基础(46)域和Galois理论

域详述 定义: 域是一个包含加法、减法、乘法和除法(除数不为零)的代数结构,其中加法和乘法满足交换律、结合律,并且乘法对加法满足分配律。同时,域中的元素(通常称为数)在加法和乘法…

时序约束进阶五:Set_Max_Delay与Set_Min_Delay详解

目录 一、背景 二、Max/Min_delay约束 2.1 约束设置参数 2.2 约束说明 三、场景说明 3.1 路径分段 3.1.1 无效的约束对象 3.1.2 设计代码 3.2 有效的约束对象 3.3 datapath only 3.3.1 工程设计 3.3.2 datapath only报告 3.4 clock group约束优先级 3.4.1 MAX/MIN…

搭建实验仪器知识库:从产品手册到智慧资源的飞跃

在科研、教学及工业生产领域,实验仪器作为探索未知、验证理论、提升效率的重要工具,其重要性不言而喻。然而,随着技术的不断进步和仪器的日益复杂化,如何高效、准确地使用这些仪器成为了科研人员、技术人员及学生面临的共同挑战。…

OA项目 python + vue3

准备工作 创建django项目 在setting.py进行数据库的配置: DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: , #数据库名字USER: , #连接的数据库的用户名PASSWORD: ,HOST: 127.0.0.1,PORT: 3306,} }安装app: rest_framwork: 关闭csrf…

婚礼纪 9.5.57 | 解锁plus权益的全能结婚助手,一键生成结婚请柬

婚礼纪是一款结婚服务全能助手,深受9000万新人信赖的一站式结婚服务平台。解锁plus权益后,用户可以享受部分VIP会员功能。应用提供了丰富的结婚筹备工具和服务,包括一键生成结婚请柬、婚礼策划、婚纱摄影、婚宴预订等。婚礼纪旨在为新人提供全…

树形结构数据

树形结构数据 树形结构数据是一种基础且强大的数据结构,广泛应用于计算机科学和软件开发的各个领域。它模拟了自然界中树的层级关系,通过节点和它们之间的连接来组织数据。在本文中,我们将深入探讨树形结构数据的概念、特点、类型以及它们在…

洛古---越狱问题【快速幂】

今天和大家讲一个洛古的算法题,我觉得还是比较有含金量的,今天给大家分享一下 题目描述 监狱有 𝑛n个房间,每个房间关押一个犯人,有 𝑚 种宗教,每个犯人会信仰其中一种。如果相邻房间的犯人的宗…