IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 李沐动手学深度学习V2-自注意力机制 -> 正文阅读

[人工智能]李沐动手学深度学习V2-自注意力机制

一. 自注意力机制

1. 自注意力机制

在深度学习中,经常使用卷积神经网络(CNN)或循环神经网络(RNN),自注意力机制对序列进行编码。使用自注意力机制将词元序列输入注意力池化中,以便同一组词元同时充当查询、键和值。具体来说每个查询都会关注所有的键-值对并生成一个注意力输出。由于查询、键和值来自同一组输入,因此被称为自注意力(self-attention)也被称为内部注意力(intra-attention) 。

2. 公式描述

给定一个由词元组成的输入序列 x 1 , … , x n \mathbf{x}_1, \ldots, \mathbf{x}_n x1?,,xn?,其中任意 x i ∈ R d \mathbf{x}_i \in \mathbb{R}^d xi?Rd 1 ≤ i ≤ n 1 \leq i \leq n 1in)。该序列的自注意力输出为一个长度相同的序列 y 1 , … , y n \mathbf{y}_1, \ldots, \mathbf{y}_n y1?,,yn?,其中

y i = f ( x i , ( x 1 , x 1 ) , … , ( x n , x n ) ) ∈ R d \mathbf{y}_i = f(\mathbf{x}_i, (\mathbf{x}_1, \mathbf{x}_1), \ldots, (\mathbf{x}_n, \mathbf{x}_n)) \in \mathbb{R}^d yi?=f(xi?,(x1?,x1?),,(xn?,xn?))Rd

根据定义的注意力池化函数 𝑓表明自注意力机制输出张量的形状为(批量大小,时间步的数目或词元序列的长度, d d d),输出与输入的张量形状相同。

3. 比较卷积神经网络、循环神经网络和自注意力

比较下面几个架构,目标都是将由 n n n个词元组成的序列映射到另一个长度相等的序列,其中的每个输入词元或输出词元都由 d d d维向量表示。具体来说将比较的是卷积神经网络、循环神经网络和自注意力这几个架构的计算复杂性、顺序操作和最大路径长度。注意顺序操作会妨碍并行计算,而任意的序列位置组合之间的路径越短,则能更轻松地学习序列中的远距离依赖关系,如下图所示。

比较卷积神经网络、循环神经网络和自注意力

考虑一个卷积核大小为 k k k的卷积层,由于序列长度是 n n n,输入和输出的通道数量都是 d d d,所以卷积层的计算复杂度为 O ( k n d 2 ) \mathcal{O}(knd^2) O(knd2)。卷积神经网络是分层的,因此为有 O ( 1 ) \mathcal{O}(1) O(1)个顺序操作,最大路径长度为 O ( n / k ) \mathcal{O}(n/k) O(n/k)。例如 x 1 \mathbf{x}_1 x1? x 5 \mathbf{x}_5 x5?处于卷积核大小为3的双层卷积神经网络的感受野内。

当更新循环神经网络的隐状态时, d × d d \times d d×d权重矩阵和 d d d维隐状态的乘法计算复杂度为 O ( d 2 ) \mathcal{O}(d^2) O(d2)。由于序列长度为 n n n,因此循环神经网络层的计算复杂度为 O ( n d 2 ) \mathcal{O}(nd^2) O(nd2)。有 O ( n ) \mathcal{O}(n) O(n)个顺序操作无法并行化,最大路径长度也是 O ( n ) \mathcal{O}(n) O(n)

在自注意力中,查询、键和值都是 n × d n \times d n×d矩阵。考虑缩放”点-积“注意力,其中 n × d n \times d n×d矩阵乘以 d × n d \times n d×n矩阵。之后输出的 n × n n \times n n×n矩阵乘以 n × d n \times d n×d矩阵。因此,自注意力具有 O ( n 2 d ) \mathcal{O}(n^2d) O(n2d)计算复杂性。每个词元都通过自注意力直接连接到任何其他词元。因此,有 O ( 1 ) \mathcal{O}(1) O(1)个顺序操作可以并行计算,最大路径长度也是 O ( 1 ) \mathcal{O}(1) O(1)

因此卷积神经网络和自注意力都拥有并行计算的优势,而且自注意力的最大路径长度最短。但是因为其计算复杂度是关于序列长度的二次方,所以在很长的序列中计算会非常慢。

4. 小结

  • 在自注意力中,查询、键和值都来自同一组输入。
  • 卷积神经网络和自注意力都拥有并行计算的优势,而且自注意力的最大路径长度最短。但是因为其计算复杂度是关于序列长度的二次方,所以在很长的序列中计算会非常慢。

5. 相关链接

注意力机制第一篇:李沐动手学深度学习V2-注意力机制
注意力机制第二篇:李沐动手学深度学习V2-注意力评分函数
注意力机制第三篇:李沐动手学深度学习V2-基于注意力机制的seq2seq
注意力机制第四篇:李沐动手学深度学习V2-自注意力机制之位置编码
注意力机制第五篇:李沐动手学深度学习V2-自注意力机制
注意力机制第六篇:李沐动手学深度学习V2-多头注意力机制和代码实现

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:23:46  更:2022-07-17 16:25:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:45:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码