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

news/2025/2/3 11:01:18/

一、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.ppmy.cn/news/1568934.html

相关文章

设计模式Python版 抽象工厂模式

文章目录 前言一、抽象工厂模式二、抽象工厂模式示例三、抽象工厂模式在Django框架中的应用 前言 GOF设计模式分三大类: 创建型模式:关注对象的创建过程,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结…

NLP自然语言处理通识

目录 ELMO 一、ELMo的核心设计理念 1. 静态词向量的局限性 2. 动态上下文嵌入的核心思想 3. 层次化特征提取 二、ELMo的模型结构与技术逻辑 1. 双向语言模型(BiLM) 2. 多层LSTM的层次化表示 三、ELMo的运行过程 1. 预训练阶段 2. 下游任务微调 四、ELMo的…

Microsoft Power BI:融合 AI 的文本分析

Microsoft Power BI 是微软推出的一款功能强大的商业智能工具,旨在帮助用户从各种数据源中提取、分析和可视化数据,以支持业务决策和洞察。以下是关于 Power BI 的深度介绍: 1. 核心功能与特点 Power BI 提供了全面的数据分析和可视化功能&…

使用 Docker(Podman) 部署 MongoDB 数据库及使用详解

在现代开发环境中,容器化技术(如 Docker 和 Podman)已成为部署和管理应用程序的标准方式。本文将详细介绍如何使用 Podman/Docker 部署 MongoDB 数据库,并确保其他应用程序容器能够通过 Docker 网络成功连接到 MongoDB。我们将逐步…

Python GUI 开发 | PySide6 辅助工具简介

关注这个框架的其他相关笔记:Python GUI 开发 | PySide6 & PyQt6 学习手册-CSDN博客 在上一章中,我们介绍了如何搭建 PySide6 & PyQt6 的开发环境。在搭建环境的时候我们配置了几个几个快捷工具,很多小伙伴可能都不知道是干啥用的。那…

【数据结构-字典树】力扣14. 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入:strs [“flower”,“flow”,“flight”] 输出:“fl” 示例 2: 输入:strs [“dog”,“racecar…

一文大白话讲清楚webpack基本使用——18——HappyPack

文章目录 一文大白话讲清楚webpack基本使用——18——HappyPack1. 建议按文章顺序从头看,一看到底,豁然开朗2. 啥是HappyPack3. 怎么使用HappyPack 一文大白话讲清楚webpack基本使用——18——HappyPack 1. 建议按文章顺序从头看,一看到底&a…

Linux网络 HTTPS 协议原理

概念 HTTPS 也是一个应用层协议,不过 是在 HTTP 协议的基础上引入了一个加密层。因为 HTTP的内容是明文传输的,明文数据会经过路由器、wifi 热点、通信服务运营商、代理服务器等多个物理节点,如果信息在传输过程中被劫持,传输的…