针对序列任务—transformer

news2024/11/26 11:48:50

文章目录

    • 针对序列任务
      • self-attention(注意力机制)流程
      • multi-head self-attention(多头注意力机制)流程
      • positional encoding(位置编码)
      • Transformer
        • embedding
        • Add & Norm
        • feed forward
        • Masked

李老师官方视频传送门

李老师课程主页传送门

针对序列任务

RNN无法实现并行化操作,因为下一个节点的输入依赖于上一个节点的输出,有人提出采用CNN,每一个节点都看一个序列词,这样可以做到并行化,最后再来一个CNN将每个节点的输出汇总作为输入得到结果。而self-attention自注意力机制在并行化上可以取代RNN,而且效果也不错。

self-attention(注意力机制)流程

①:x指的序列中每个个体,x经过一层W后生成a,a再经过不同的W(Wq、Wk、Wv)会生成三个向量q、k、v

  • q:query,用于匹配其他
  • k:key,被匹配
  • v:value,包含信息

image-20240407152026359

②:拿每一个q去对每个key做注意力机制,这里的注意力机制采用的是Scaled Dot-Product Attention方法,这里的d是q和k的维度,除以根号d的原因多半是为了降低结果大小,使得点积在不同维度上变化辐度一致

image-20240407152744226

③:将得到的α经过softmax转换成α‘,softmax的目的是将每个元素转换为一个介于 0 和 1 之间的数,并且使得它们的总和为 1,下面是softmax公式

image-20240407153437894

④:将各自得到的α‘和对应的v相乘,最后将所有的相乘结果相加记为b,注意这里就是拿q1和所有的k、v最后得到了b1,q2、q3 …也是类似可以得到b2、b3 …

image-20240407153658192

⑤:所以经过上述一系列流程x1、x2、x3、x4就被转换为了b1、b2、b3、b4

multi-head self-attention(多头注意力机制)流程

①:在得到q、k、v后,再经过W进行划分,而且后面相乘的时只允许划分后的相乘,不能跨其他划分相乘,得到b

image-20240407155322025

②:得到对应的b后,再利用W进行降维,将其变成和原来对应的bi。单一的头可能只学到单一的注意力表示,多头可以学习到不同的注意力表示,表示的更加丰富

image-20240407155420918

positional encoding(位置编码)

在序列任务中,序列的顺序是尤为重要的特征,需要考虑,原文是在x转换为a的时候增加了e,e里面就包含了位置信息,这里为什么不拼接而是相加呢?拼接不是更能表示位置信息嘛?

实际解释是这样的,原始假设p向量是表示位置的独热编码,和x拼接后经过w得到a,拆分后其实就是a+e,所以不需要拼接

image-20240407160447970

Transformer

img

embedding

嵌入层,将每个输入符号(单词、字符等)映射为一个高维的词嵌入向量。通常情况下,词嵌入层的参数是在大规模文本语料上预训练得到的,例如使用 Word2Vec、GloVe、FastText 等预训练词嵌入模型

Add & Norm
  • add:将a和a经过注意力机制后得到b相加
  • norm:layer norm,对上面相加的结果做层归一化
    • layer:每个数据样本所有特征特征做μ=0,σ=1。适用于序列数据或者批次大小变化较大的情况,通常应用于循环神经网络等网络的每一层输出。
    • batch:每个批次同一维特征做μ=0,σ=1。适用于深度网络中的卷积层或者全连接层;
feed forward

前馈神经网络,由两个线性层(全连接层)和一个激活函数组成。用于对序列中每个位置的隐藏状态进行非线性变换和映射,从而增强模型对特定位置的特征表示的表达能力

Masked

遮蔽多头注意力机制,会遮盖当前位置之后的数据,确保不会访问到未来的信息,因为这里的是自回归的任务,需要循环预测下一个值。通常采用的掩码方式是将当前位置之后的位置的注意力分数设置为一个非常小的值(如负无穷),或者将对应位置的注意力权重设置为零,以防止模型在计算注意力权重时考虑到未来位置。

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

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

相关文章

网络安全 | 什么是区块链?

关注WX:CodingTechWork 概述 定义 区块链是一个共享的、不可篡改的账本,旨在促进业务网络中的交易记录和资产跟踪流程。资产可以是有形的(如房屋、汽车、现金、土地),也可以是无形的(如知识产权、专利、…

吴恩达机器学习理论基础解读

吴恩达机器学习理论基础 机器学习最常见的形式监督学习,无监督学习 线性回归模型概述 应用场景一:根据房屋大小预测房价 应用场景二:分类算法(猫狗分类) 核心概念:将训练模型的数据称为数据集(学习数据…

创建一个C# WinForm应用程序的步骤

创建项目界面设计设置属性编写代码保存项目运行程序 1. 新建项目 默认情况下,项目名称和解决方案名称是保持一致的,用户也可以修改成不一样的。一个解决方案下面是可以包含多个项目的,比如和应用程序相关的数据结构项目、一些资源等。 点击…

2024/4/1—力扣—删除字符使频率相同

代码实现: 思路: 步骤一:统计各字母出现频率 步骤二:频率从高到低排序,形成频率数组 步骤三:频率数组只有如下组合符合要求: 1, 0...0n 1, n...n (, 0)n...n, 1(, 0) bool equalFrequency(char…

ubuntu安装

一、安装虚拟机 https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html 下载后运行安装向导,一直Next即可 许可证: https://zhuanlan.zhihu.com/p/685829787#:~:textpro,17%E5%AF%86%E9%92%A5%EF%BC%9AMC60H-DWHD5-H80U9-6…

day5 nest商业项目初探·一(java转ts全栈/3R教室)

背景:从头一点点学起太慢了,直接看几个商业项目吧,看看根据Java的经验,自己能看懂多少,然后再系统学的话也会更有针对性。先看3R教室公开的 kuromi 移民机构官方网站吧 【加拿大 | 1.5w】Nextjs:kuromi 移民…

AI应用实战1:AI项目实战五大环节

文章目录 环节一:定义问题环节二:收集和处理数据环节三:选择机器学习模型环节四:训练模型环节五:超参数调试和性能优化1.评价模型效果的指标分类任务评估标准:回归任务评估标准:其他通用评估指标…

分公司=-部门--组合模式

1.1 分公司不就是一部门吗? "我们公司最近接了一个项目,是为一家在全国许多城市都有分销机构的大公司做办公管理系统,总部有人力资源、财务、运营等部门。" "这是很常见的OA系统,需求分析好的话&#xff0…

76、WAF攻防——信息收集识别被动探针代理池伪指纹白名单

文章目录 什么是WAF? WAF(Web Application Firewall)web应用防火墙 WAF分类: 软件型WAF 以软件的形式安装再服务器上面,可以接触到服务器上的文件,因此就可以检测服务器上是否有webshell,是否…

Javascript - 你在项目中是如何使用闭包的

难度级别:中高级及以上 提问概率:80% 很多初级开发者其实在日常工作中,很少有使用闭包的机会,但这却是一个非常高频的考点,因为对闭包不是特别了解,使用又少,久而久之,就觉得闭包是一个难点。在Javascript中,一个普通方法在执行完毕后…

【Error】Uncaught TypeError: Cannot read properties of undefined (reading ‘get’)

报错原因: 返回值为undefined 解决: vue3可用?

机场数据治理系列介绍(5)民用机场智慧能源系统评价体系设计

目录 一、背景 二、体系设计 1、评价体系设计维度 2、评价体系相关约定 3、评价指标体系框架设计 4、能源利用评价指标 5、环境友好评价指标 6、智慧管控评价指标 7、安全保障评价指标 三、具体落地措施 一、背景 在“双碳”国策之下,各类机场将能源系统建…

20240408在全志H3平台的Nano Pi NEO CORE开发板的eMMC刷Ubuntu Core 16.04

20240408在全志H3平台的Nano Pi NEO CORE开发板的eMMC刷Ubuntu Core 16.04 2024/4/8 20:46 参考资料: https://wiki.friendlyelec.com/wiki/index.php/NanoPi_NEO_Core/zh#.E5.AE.89.E8.A3.85.E7.B3.BB.E7.BB.9F [ OK ] Created slice Slice /system/getty. [ …

JavaScript - 你做过字符串反转吗

难度级别:初级及以上 提问概率:65% 例如有一个字符串本来是“abcde”,那么现在希望可以将其反转,最终的值是“edcba”,该如何做呢? 第一种是将字符串转为数组,利用数组的reverse方法实现元素反转,然后再将数组转为字符串,代码如下 …

K8s学习七(服务发现_2)

Ingress Service 主要用于集群内部的通信和负载均衡,而 Ingress 则是用于将服务暴露到集群外部,并提供灵活的 HTTP 路由规则。在实际应用中,它们通常结合使用,Service 提供内部通信和负载均衡,Ingress 提供外部访问和…

“AI+信创”两翼齐飞,实在智能全面加速自主可控实在智能RPA

近日,实在智能牵手华为昇腾、摩尔线程在信创领域展开紧密合作,共同加速推进AI和信创产业创新发展。 华为昇腾与实在智能达成昇腾原生大模型联合创新合作,基于华为昇腾AI自主创新软硬件平台全栈技术、实在智能自研RPA基础大模型解决方案能力&a…

2024年2月蓝牙耳机线上电商(京东天猫淘宝)综合热销排行榜

鲸参谋监测的综合电商平台(淘宝天猫京东)蓝牙耳机市场的销售数据已揭晓! 根据鲸参谋数据显示,今年2月份,综合电商平台上蓝牙耳机销量累计约657万副,同比去年下滑34%;销售额累计约17亿元&#x…

一条SQL查询语句的执行顺序

SQL常用字段书写顺序 SELECT:选择要查询的列。 FROM:指定数据来源,即表名。 JOIN:根据指定的连接条件将多个表连接在一起。 ON:指定连接条件,即哪些列的值匹配时,应该将两个表中的行组合在一起。…

Rsync——远程同步命令

目录 一、关于Rsync 1.定义 2.Rsync同步方式 3.备份的方式 4.Rsync命令 5.配置源的两种表达方法 二、配置服务端与客户端的实验——下载 1.准备工作 2.服务端配置 3.客户端配置同步 4.免交互数据同步 5.源服务器删除数据是否会同步 6.可以定期执行数据同步 三、关…

【HTML】简单制作一个动态变色光束花

目录 前言 开始 HTML部分 效果图 ​编辑​编辑​编辑​编辑总结 前言 无需多言,本文将详细介绍一段代码,具体内容如下: 开始 首先新建文件夹,创建一个文本文档,其中HTML的文件名改为[index.html]&a…