深度学习查漏补缺:2. 三个指标和注意力机制

news2025/2/3 11:55:28

一、bachsize, num_epochs, dataset

        在训练卷积神经网络(CNN)或任何其他深度学习模型时,有几个关键参数和概念需要了解:batch size、num epochs 和 dataset。下面是对它们的详细解释:

  1. Batch Size(批量大小)

    • 定义:批量大小是指在一次迭代中通过网络传播的训练样本的数量
    • 作用:它决定了模型在每次梯度更新时使用的数据量。小的批量可能会导致模型更新更加频繁,但每次更新的方向可能会杂乱无章;而大的批量则使更新方向更加稳定,但更新次数减少。
    • 影响
      • 计算效率:较大的批量可以更好地利用GPU加速,但需要更多的内存。
      • 模型收敛:较小的批量通常可以带来更好的泛化能力,但训练时间可能更长。
      • 稳定性:非常小的批量可能导致训练过程不稳定。
  2. Num Epochs(训练轮数)

    • 定义:epoch指的是整个数据集通过神经网络一次的完整过程。num_epochs则是指这个过程重复的次数。
    • 作用:控制了模型的训练时间。更多的epoch意味着模型会在数据上进行更多次的学习。
    • 影响
      • 过拟合风险:过多的epoch可能会导致模型在训练数据上表现很好,但在测试数据上表现较差,即过拟合。
      • 不足训练:太少的epoch可能导致模型未充分学习数据中的模式,表现不佳。
  3. Dataset(数据集)

    • 定义:数据集是指用来训练和测试模型的所有数据的集合。通常被分为训练集、验证集和测试集。
    • 组成
      • 训练集:用于训练模型的数据。
      • 验证集:用于调整模型超参数和防止过拟合的数据。
      • 测试集:用于评估模型在未见数据上的性能。
    • 影响
      • 数据质量和数量:高质量和多样化的数据能够帮助模型更好地学习并泛化。
      • 数据平衡:数据集中不同类别的样本数量平衡影响模型的公正性和准确性。

二、注意力机制原理

        假设我们有一个输入序列 X ,由 n 个元素组成,每个元素的维度为 d 。即有一组学生(输入序列 X),每个学生都有一组特定的特征(维度为 d)。我们想知道每个学生在不同场景下的表现如何(注意力机制)。

1. 计算 Query, Key, Value 矩阵:

  • Query 矩阵 Q: 通过一个线性变换从输入 X 生成,通常是通过一个线性层(全连接层)实现。
  • 就像给每个学生分配一副眼镜,通过这些眼镜,他们可以看到和理解周围的信息。这个眼镜是通过数学变换(线性变换)从学生的特征生成的。
  • Key 矩阵 K: 同样通过线性变换(全连接层)从输入 X 生成。
  • 类似于每个学生携带的信息卡,用于识别自身特征。这些信息卡也是通过数学变换从学生特征生成的。
  • Value 矩阵 V: 还是通过线性变换(全连接层)从输入 X 生成。
  • 像是学生携带的背包,里面装着有用的信息。背包的内容同样通过数学变换生成。

这些线性变换可以表示为:

Q=XWQ,K=XWK,V=XWV

其中 WQ​,WK​,WV​ 是可学习的权重矩阵。

2. 计算注意力得分:

        注意力得分通过 Query 和 Key 之间的点积来计算:

Attention(Q,K,V)=softmax(dk​​QKT​)V

  • 点积 QK^T: 计算 Query 和 Key 之间的相似度。每个元素在 Query 中与所有元素在 Key 中计算相似度。想象每个学生用他们的眼镜(Query)来观察其他学生的信息卡(Key),点积就是在评估两个学生之间的匹配程度。这样可以得到每个学生关注其他学生的程度。
  • 缩放因子 根号下dk​​: 由于点积会随着维度增大而变得很大,所以引入了一个缩放因子,通常是 Key 的维度的平方根。为了避免在高维度下计算出的匹配分数过大,我们用一个缩放因子来调整这些分数,使它们更稳定。
  • Softmax 归一化: 将相似度转化为概率分布,确保所有注意力得分的总和为 1。将这些分数转换成概率,类似于给学生分配一个关注度范围,确保总关注度是 1。

3. 输出计算:

  • 加权求和: 使用计算得到的注意力得分对 Value 矩阵进行加权求和。这个步骤会聚合输入元素间的信息。通过这些概率(注意力得分),每个学生决定从其他学生的背包(Value)中取多少信息。这是一个汇总信息的过程,让每个学生可以结合他人信息得到新的视角或结论。

Output=Attention×V

自注意力输出

        自注意力机制的输出是每个输入元素的一个新表示,结合了该元素与所有其他元素的关系。这个新的表示捕捉了输入序列中各元素之间的重要依赖关系。

三、注意力机制分类

        单头注意力和多头注意力的主要区别如下:

  1. 注意力头的数量

    • 单头注意力:只有一个注意力头,即只计算一次查询(Query)、键(Key)和值(Value)之间的相似度。
    • 多头注意力:拥有多个独立的注意力头,每个头都会独立地计算查询、键和值之间的相似度。这允许模型同时关注输入序列的不同部分。
  2. 信息捕捉与表达能力

    • 单头注意力:只能关注一个方面,信息捕捉能力有限。
    • 多头注意力:通过多个头的并行处理,能够捕捉到更多样化的特征,提高了模型的表达能力和泛化性能。这种机制使得多头注意力能够关注到句子更多层面的信息,例如罕见词、多义词、反义词等。
  3. 计算复杂度与训练难度

    • 单头注意力:计算复杂度相对较低,训练也较为简单。
    • 多头注意力:虽然增加了计算复杂度,但通常可以通过并行计算来优化。同时,它也需要更多的训练数据和计算资源来优化模型。然而,这些额外的投入通常能够带来模型性能的显著提升。
  4. 输出结果

    • 单头注意力:直接输出一个加权表示。
    • 多头注意力:每个头都会输出一个加权表示,然后将这些表示拼接在一起,并经过一个额外的线性变换,得到最终的输出。

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

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

相关文章

CodeGPT使用本地部署DeepSeek Coder

目前NV和github都托管了DeepSeek,生成Key后可以很方便的用CodeGPT接入。CodeGPT有三种方式使用AI,分别时Agents,Local LLMs(本地部署AI大模型),LLMs Cloud Model(云端大模型,从你自己…

JAVA安全—反射机制攻击链类对象成员变量方法构造方法

前言 还是JAVA安全,哎,真的讲不完,太多啦。 今天主要是讲一下JAVA中的反射机制,因为反序列化的利用基本都是要用到这个反射机制,还有一些攻击链条的构造,也会用到,所以就讲一下。 什么是反射…

【深度学习】softmax回归的简洁实现

softmax回归的简洁实现 我们发现(通过深度学习框架的高级API能够使实现)(softmax)线性(回归变得更加容易)。 同样,通过深度学习框架的高级API也能更方便地实现softmax回归模型。 本节继续使用Fashion-MNIST数据集,并保持批量大小为256。 import torch …

基础篇03-图像的基本运算

本节将简要介绍Halcon中有关图像的两类基本运算,分别是代数运算和逻辑运算。除此之外,还介绍几种特殊的代数运算。 目录 1.引言 2. 基本运算 2.1 加法运算 2.2 减法运算 2.3 乘法运算 2.4 除法运算 2.5 综合实例 3. 逻辑运算 3.1 逻辑与运算 …

工具的应用——安装copilot

一、介绍Copilot copilot是一个AI辅助编程的助手,作为需要拥抱AI的程序员可以从此尝试进入,至于好与不好,应当是小马过河,各有各的心得。这里不做评述。重点在安装copilot的过程中遇到了一些问题,然后把它总结下&…

Alibaba开发规范_编程规约之命名风格

文章目录 命名风格的基本原则1. 命名不能以下划线或美元符号开始或结束2. 严禁使用拼音与英文混合或直接使用中文3. 类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO / PO / UID 等4. 方法名、参数名、成员变量、局部变量使用 low…

MATLAB中的IIR滤波器设计

在数字信号处理中,滤波器是消除噪声、提取特征或调整信号频率的核心工具。其中,无限脉冲响应(IIR)滤波器因其低阶数实现陡峭滚降的特性,被广泛应用于音频处理、通信系统和生物医学工程等领域。借助MATLAB强大的工具箱&…

vector容器(详解)

本文最后是模拟实现全部讲解,文章穿插有彩色字体,是我总结的技巧和关键 1.vector的介绍及使用 1.1 vector的介绍 https://cplusplus.com/reference/vector/vector/(vector的介绍) 了解 1. vector是表示可变大小数组的序列容器。…

python学opencv|读取图像(五十二)使用cv.matchTemplate()函数实现最佳图像匹配

【1】引言 前序学习了图像的常规读取和基本按位操作技巧,相关文章包括且不限于: python学opencv|读取图像-CSDN博客 python学opencv|读取图像(四十九)原理探究:使用cv2.bitwise()系列函数实现图像按位运算-CSDN博客…

【VUE案例练习】前端vue2+element-ui,后端nodo+express实现‘‘文件上传/删除‘‘功能

近期在做跟毕业设计相关的数据后台管理系统,其中的列表项展示有图片展示,添加/编辑功能有文件上传。 “文件上传/删除”也是我们平时开发会遇到的一个功能,这里分享个人的实现过程,与大家交流谈论~ 一、准备工作 本次案例使用的…

使用真实 Elasticsearch 进行高级集成测试

作者:来自 Elastic Piotr Przybyl 掌握高级 Elasticsearch 集成测试:更快、更智能、更优化。 在上一篇关于集成测试的文章中,我们介绍了如何通过改变数据初始化策略来缩短依赖于真实 Elasticsearch 的集成测试的执行时间。在本期中&#xff0…

【R语言】函数

一、函数格式 如下所示: hello:函数名;function:定义的R对象是函数而不是其它变量;():函数的输入参数,可以为空,也可以包含参数;{}:函数体,如果…

VSCode插件Live Server

简介:插件Live Server能够实现当我们在VSCode编辑器里修改 HTML、CSS 或者 JavaScript 文件时,它都能自动实时地刷新浏览器页面,让我们实时看到代码变化的效果。再也不用手动刷新浏览器了,节省了大量的开发过程耗时! 1…

50. 正点原子官方系统镜像烧写实验

一、Windows下使用OTG烧写系统 1、在Windos使用NXP提供的mfgtool来向开发烧写系统。需要用先将开发板的USB_OTG接口连接到电脑上。 Mfgtool工具是向板子先下载一个Linux系统,然后通过这个系统来完成烧写工作。 切记!使用OTG烧写的时候要先把SD卡拔出来&…

扩散模型(三)

相关阅读: 扩散模型(一) 扩散模型(二) Latent Variable Space 潜在扩散模型(LDM;龙巴赫、布拉特曼等人,2022 年)在潜在空间而非像素空间中运行扩散过程,这…

it基础使用--5---git远程仓库

it基础使用–5—git远程仓库 1. 按顺序看 -git基础使用–1–版本控制的基本概念 -git基础使用–2–gti的基本概念 -git基础使用–3—安装和基本使用 -git基础使用–4—git分支和使用 2. 什么是远程仓库 在第一篇文章中,我们已经讲过了远程仓库,每个本…

Baklib如何改变内容管理平台的未来推动创新与效率提升

内容概要 在信息爆炸的时代,内容管理平台成为了企业和个人不可或缺的工具。它通过高效组织、存储和发布内容,帮助用户有效地管理信息流。随着技术的发展,传统的内容管理平台逐渐暴露出灵活性不足、易用性差等局限性,这促使市场需…

16.[前端开发]Day16-HTML+CSS阶段练习(网易云音乐五)

完整代码 网易云-main-left-rank&#xff08;排行榜&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name&q…

ARM嵌入式学习--第十天(UART)

--UART介绍 UART(Universal Asynchonous Receiver and Transmitter)通用异步接收器&#xff0c;是一种通用串行数据总线&#xff0c;用于异步通信。该总线双向通信&#xff0c;可以实现全双工传输和接收。在嵌入式设计中&#xff0c;UART用来与PC进行通信&#xff0c;包括与监控…

Unity游戏(Assault空对地打击)开发(3) 摄像机的控制

详细步骤 打开My Assets或者Package Manager。 选择Unity Registry。 搜索Cinemachine&#xff0c;找到 Cinemachine包&#xff0c;点击 Install按钮进行安装。 关闭窗口&#xff0c;新建一个FreeLook Camera&#xff0c;如下。 接着新建一个对象Pos&#xff0c;拖到Player下面…