李宏毅深度学习教程 第6-7章 自注意力机制 + Transformer

强烈推荐!台大李宏毅自注意力机制和Transformer详解!_哔哩哔哩_bilibili

目录

1. 词嵌入&问题情形

2. self-attention 自注意力机制

3. 自注意力的变形

3.1 多头注意力(multi-head)

3.2 位置编码

3.3 截断自注意力(truncated)

3.4 与CNN对比

3.5 与RNN对比

4. Transformer架构

4.1 编码器 Encoder

4.2 自回归解码器

4.3 非自回归解码器

5. Transformer训练过程与技巧


1. 词嵌入&问题情形

词嵌入(word embedding) 用一个有语义信息的向量表示每个词,意思相关的会靠的近

词嵌入的训练基于分布式假说:"单词的语义由其上下文决定"。通过分析单词在文本中的共现模式,模型学习用向量表示单词的语义和语法特征。

比如用“开心”的场景 都可以替换为“高兴”  这两个词的上下文很像 说明他们语义很像;

“苹果”的上下文 和“梨”的上下文也很像,可能他们是同类型的

情形1:输入等于输出 如给一个句子输出每个单词的词性(动词名词这些)都一一对应

情形2:多对一 给一段文字打标签 输出这段话是正面还是负面的

情形3:Seq2Seq序列到序列 如语言翻译 语音识别,输入的字符长度无法知道输出的字符长度

聊天机器人:我和他说话 输入一个序列  机器人返回一个序列

QA问答问题:所有任务都可以转化为 给材料给任务序列,返回答案序列

给文章打一个标签是 多对一问题;给文章打多个标签 就是多对多问题

2. self-attention 自注意力机制

  三个向量&三个步骤

         

Q K V 三个向量需要 X分别乘以矩阵W;这三个矩阵W 需要训练得到

我要问位置1的注意力值是多少,就拿Q1 和所有位置的K相乘后softmax 得到A'

再用A'V 得到自注意力 b1。      用矩阵乘法可以写成

3. 自注意力的变形

3.1 多头注意力(multi-head)

每个位置 多个q k v,类似CNN中的通道提取不同视觉特征,提取多种语义/语法特征

捕捉更多样、复杂的依赖关系。而且因为可以GPU并行计算 效率相近但建模能力显著提升

3.2 位置编码

对于自注意力而言 注意力值与位置无关。但是像一段话中 词的位置也是很重要的信息。

比如说句首的词是动词的概率特别小。      实现方法为 在每个位置加一个专属的e。

3.3 截断自注意力(truncated)

原来的自注意力 是和整句话的所有发生关系。

如果一段话太长太长 可以设置一个范围,只看这个范围前后的。

 

3.4 与CNN对比

CNN 需要人为设定 滤波器、感受野;每个神经元仅考虑感受野内的信息。

自注意力 是自己去学习像素之间的关系,考虑身边哪些像素是相关的。

所以CNN可看做特殊的自注意力机制,作为有限制的模型,适合数据较小的时候使用。

而自注意力更灵活,需要更多的数据否则容易过拟合。

3.5 与RNN对比

1) 自注意力看全局,RNN只看左边的。Bi-RNN双向版本也看全局但仍有差异,因为自注意力在最右边 看最左边的词可以一步到位,而RNN需要从最左边一步一步将记忆(隐状态)传递过来。

2) 自注意力可以并行 而RNN需要传递串行 所以自注意力更高效

自注意力也可运用在的问题上 每个节点 连边就是需要有关系  连着边才计算注意力分数

4. Transformer架构

4.1 编码器 Encoder

add&norm加入残差连接的设计,对a自注意力算出b之后 b+a再层归一化

   

4.2 自回归解码器

先输入 <BOS>,输出 w1,再把 w1 当做输入,再输出 w2,直到输出 <EOS> 为止。

除了常规字符外还要 开始字符<BOS>  结束字符<EOS> 代表句子的开始和结束。

解码器就是在编码器的基础上 层的开始加上掩码自注意力(masked 因为输出是一个一个输出的 阻止每个位置选择其后面的输入信息)

最终目的是要输出下一个词 就对结果向量进行线性映射+softmax 找最大概率的那个

解码器多头注意力那里 是编码器和解码器的桥梁;K和V来自编码器,Q来自解码器的上一层

4.3 非自回归解码器

非自回归不是一次产生一个字,而是一次把整个句子都产生出来;给多少<BOS> 就输出多少字

优势1是可以做到并行输出 效率更高,但性能会差一些。

优势2是可以控制输出的长度

5. Transformer训练过程与技巧

实际与期望结果向量的交叉熵(比如输入一段语音 期望输出“机器学习<EOS>”)

训练时用交叉熵评估翻译结果时的标准是 解码器先产生一个完整的句子,再去跟正确的答案一整句做比较,两个句子算出 BLEU 分数(训练时不用BLEU因为计算复杂 且无法做微分)

1. 复制机制:解码器直接从输入中复制一些有用的东西

比如对话问题中,用户给的比较生僻的输入可以在回答中直接复制原问题里的词

比如段落摘要问题中,很多原文的词都可以直接复制信息

2. 引导注意力:当我们对一个问题有一定理解的时候 可以要求机器做注意力时以一定方向

如语音提取时让它从左到右效果更好 如果顺序胡乱结果就会有问题

3. 束搜索: 根据softmax的概率一个一个输出 这是贪心的思想,再往后延伸效果不一定好

如果要后面的效果好 穷举搜索 再分支往后看 分叉太多情况太多会导致也往后看不了多少

beam search束搜索 用于自回归生成任务(即每一步依赖前一步的输出)

维护一个有限的候选序列集合 平衡计算复杂度和结果质量,

在生成序列的每一步,不保留所有可能的候选,而是仅保留概率最高的 K 个

4. 加入噪声/随机性

训练时加噪声,让机器看过更多不同的可能性,让模型比较鲁棒,比较能够对抗它在测试的时候没有看过的状况。   

测试的时候加一些噪声,用正常的解码的方法产生出来的声音听不太出来是人声,也不一定是最好的结果,产生比较好的声音需要一些随机性。

5. 计划采样(训练集加入错误 提高容错)

曝光偏差:训练时看到的是完全正确的 测试时解码器看到自己的输出 所以会看到一些错误信息。

如果看到错误信息 后面会出现不堪设想的一步错步步错,

比如“机器学习”的qi 输出成了 “气”  因为是串行一个一个生成的 所以后续跟着错很多。

所以我们考虑在训练集中 加一些错误的信息 期望使得它看到错误的信息 也能有一定容错。

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

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

相关文章

大模型幻觉的本质:深度=逻辑层次,宽度=组合限制,深度为n的神经网络最多只能处理n层逻辑推理,宽度为w的网络无法区分超过w+1个复杂对象的组合

大模型幻觉的本质&#xff1a;深度逻辑层次&#xff0c;宽度组合限制&#xff0c;深度为n的神经网络最多只能处理n层逻辑推理&#xff0c;宽度为w的网络无法区分超过w1个复杂对象的组合&#x1f9e9; "深度逻辑层次"具体含义&#x1f522; "宽度组合限制"具…

2419.按位与最大的最长子数组

Problem: 2419. 按位与最大的最长子数组 思路 子数组按位与的结果&#xff0c;不会超过子数组里的最大值&#xff08;因为 a & b ≤ max(a, b)&#xff09;。 进一步推导&#xff0c;整个数组最大按位与的结果就是数组本身的最大值。 因为最大的那个元素自己作为子数组时&a…

智能时代:先管端点,再谈效率

为什么需要统一端点管理&#xff1f;在混合办公常态化、设备类型爆炸式增长的2025年&#xff0c;分散的端点如同散落各地的哨所。传统管理方式让IT团队疲于应对系统更新、漏洞修复、权限分配等重复劳动&#xff0c;不仅消耗60%以上的运维时间&#xff0c;更可能因响应延迟导致安…

Windows字体simsum.ttf的安装与Python路径设置指南

下载工具&#xff1a; https://fontforge.org/en-US/downloads/windows-dl/ 使用工具&#xff1a; 复制到c:\windows\fonts路径下面。 并复制到运行的python程序同一路径下。比如&#xff1a;c:\pythoncode\new\

GitHub下载项目完整配置SSH步骤详解

GitHub下载项目完整配置步骤&#xff08;从零开始&#xff09; 默认下好了git &#xff0c;在文件夹中右键打开git bash &#xff0c; 如果没有请在csdn搜索教程 第一步&#xff1a;检查并清理现有SSH配置 # 进入.ssh目录 cd ~/.ssh# 备份并删除所有现有密钥&#xff08;避免冲…

数据结构(9)栈和队列

1、栈 1.1 概念与结构 栈是一种特殊的线性表&#xff0c;只允许在固定的一端进行插入和删除元素的操作。进行数据插入和删除的一端称为栈顶&#xff0c;另一端称为栈底。栈里面的数据元素遵循后进先出的原则。栈的底层实现一般可以使用数组或者链表来实现&#xff0c;但数组的…

湖北大学暑期实训优秀作品:面向美丽中国的数据化可视平台

开发背景2024年1月11日&#xff0c;《中共中央国务院关于全面推进美丽中国建设的意见》发布&#xff0c;明确了建设美丽中国的总体要求、主要目标和重点任务&#xff0c;为我国生态文明建设提供了顶层设计和行动指南。系统简介当前&#xff0c;中国正以空前的力度推进生态文明建…

Ubuntu系统VScode实现opencv(c++)随机数与随机颜色

在图像处理与计算机图形学中&#xff0c;随机数与随机颜色的生成常用于增强图像的多样性、可视化多个目标区域、模拟自然现象以及生成测试数据等任务。通过随机化元素的颜色、位置或形状&#xff0c;可以使程序在动态展示、调试输出、以及数据增强等方面更加灵活和丰富。例如&a…

机器学习、深度学习与数据挖掘:三大技术领域的深度解析

基本概念与历史沿革数据挖掘起源于20世纪90年代&#xff0c;是数据库技术、统计学和机器学习交叉融合的产物。它经历了从简单查询到复杂知识发现的演变过程&#xff0c;早期阶段主要关注数据存储和检索&#xff0c;随着IBM、微软等公司的推动&#xff0c;逐渐形成了完整的知识发…

MoR vs MoE架构对比:更少参数、更快推理的大模型新选择

Google DeepMind 近期发布了关于递归混合&#xff08;Mixture of Recursion&#xff09;架构的研究论文&#xff0c;这一新型 Transformers 架构变体在学术界和工业界引起了广泛关注。该架构通过创新的设计理念&#xff0c;能够在保持模型性能的前提下显著降低推理延迟和模型规…

uniapp开发实现【中间放大两边缩小的轮播图】

一、效果展示 二、代码实现 <template><view><!-- 轮播图 --><view class=<

机器学习没有最好的模型,只有最合适的选择(模型选择)

机器学习领域存在"没有免费午餐"定理&#xff0c;没有任何一种模型在所有问题上都表现最优。不同模型有各自的优势和适用场景。同一数据集上&#xff0c;不同模型的预测性能可能有巨大差异。例如&#xff0c;线性关系明显的数据上线性模型可能表现优异&#xff0c;而…

关于人工智能AI>ML>DL>transformer及NLP的关系

一、AI、ML、DL、NLP的极简概念1、人工智能&#xff08;AI&#xff09;有不同的定义&#xff0c;但其中一个定义或多或少已成为共识&#xff0c;即AI是一个计算机系统&#xff0c;它能够执行通常需要人类智能才能完成的任务。根据这个定义&#xff0c;许多算法可以归纳为AI算法…

小迪23-28~31-js简单回顾

前端-js开发 课堂完结后欲复习巩固也方便后续-重游-故写此篇 从实现功能过渡到涉及的相关知识点 知识点 1、 JS 是前端语言&#xff0c;是可以被浏览器“看到”的&#xff0c;当然也可以被修改啊&#xff0c;被浏览器禁用网页的 JS 功能啊之类的。所以一般都是前后端分离开发&…

vue项目预览pdf隐藏工具栏和侧边栏

1.在预览PDF时&#xff0c;PDF查看器通常会显示工具栏、侧边栏等控件。如果想隐藏这些控件&#xff0c;可以通过在PDF文件的URL中添加参数来实现。可以使用#toolbar0和#navpanes0等参数来隐藏工具栏和侧边栏。解释&#xff1a; #toolbar0&#xff1a;隐藏工具栏。#navpanes0&am…

ERP、CRM、OA整合工具哪家好?2025年最新推荐

当前&#xff0c;大多数中大型企业已部署了ERP&#xff08;企业资源计划&#xff09;、CRM&#xff08;客户关系管理&#xff09;、OA&#xff08;办公自动化&#xff09;等核心业务系统。这些系统在各自职能领域内发挥着关键作用&#xff1a;ERP管理财务、供应链与生产&#x…

设计模式:命令模式 Command

目录前言问题解决方案结构代码前言 命令是一种行为设计模式&#xff0c;它可将请求转换为一个包含与请求相关的所有信息的独立对象。该转换让你能根据不同的请求将方法参数化、延迟请求执行或将其放入队列中&#xff0c;且能实现可撤销操作。 问题 假如你正在开发一款新的文字…

4-verilog简单状态机

verilog简单状态机 1. always (posedge clk or negedge rst_n) beginif (!rst_n)cnt_1ms < 20b0;else if (cnt_1ms_en)cnt_1ms < cnt_1ms 1b1;elsecnt_1ms < 20d0; endalways (posedge clk or negedge rst_n) beginif(!rst_n)cur_state < s1_power_init;else i…

ICCV2025 | 对抗样本智能安全方向论文汇总 | 持续更新中~

汇总结果来源&#xff1a;ICCV 2025 Accepted Papers 若文中出现的 论文链接 和 GitHub链接 点不开&#xff0c;则说明还未公布&#xff0c;在公布后笔者会及时添加. 若笔者未及时添加&#xff0c;欢迎读者告知. 文章根据题目关键词搜索&#xff0c;可能会有遗漏. 若笔者出现…

SPI通信中CS片选的两种实现方案:硬件片选与软件片选

一. 简介本文简单熟悉一下SPI通信中的片选信号&#xff08;CS&#xff09;的两种实现方案&#xff1a;硬件片选和软件片选&#xff0c;以及两种方案的区别&#xff0c;如何选择。在SPI&#xff08;Serial Peripheral Interface&#xff09;通信中&#xff0c;片选信号&#xff…