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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Self-Attention -> 正文阅读

[人工智能]Self-Attention

Sophisticated Input

  • Input is a set of vectors (e.g. 一系列的词向量 (word embedding), 语音…)
    在这里插入图片描述

What is the output?

  • Every vector has a label. (Sequnce Lebeling) (e.g. 预测每个输入词汇对应的词性…)
    在这里插入图片描述
  • The whole sequence has a label. (e.g. Sentiment analysis: 给定一个评论,判定它的情感为 positive 还是 negative)
    在这里插入图片描述
  • Model decides the number of labels itself. (seq2seq) (e.g. 翻译)
    在这里插入图片描述

Sequnce Lebeling

  • 下面以词性判别为例。我们可以用一个 FC (Fully-connected network) 来进行词性判定,但显然存在问题:对于例子中的 I saw a saw,同一个 FC 肯定无法对两个 saw 输出不同的词性
    在这里插入图片描述

Is it possible to consider the context?

  • FC can consider the neighbor. (Use a window to consider the context)
    在这里插入图片描述

How to consider the whole sequence?

  • a window covers the whole sequence?
    • Input Seq 是变长的,如果取最长的可能长度,会导致 FC 需要更多的参数,使得运算量变大,同时也更容易 overfitting
  • Solution: Self-attention !

Self-attention

  • 如下图所示,先通过 Self-attention 输出多个向量,输出的每个向量 (下图中带黑框的向量) 都考虑了整个 seq 的信息;再将考虑了整个句子的向量输入 FC 得到最后的输出
    在这里插入图片描述
  • 也可以交替使用 self-attention 和 FC
    在这里插入图片描述

Self-attention

Transformer: Attention is all you need.

Self-attention

  • Self-attention 的输入 a i a^i ai,它可以是 input,也可以是某个 hidden layer 的输出;输出 b i b_i bi?每个 b i b_i bi? 都考虑了所有输入的 a j ( 1 ≤ j ≤ 4 ) a_j(1\leq j\leq4) aj?(1j4)
    在这里插入图片描述

怎么输出 b 1 b^1 b1 ?

  • Find the relevant vectors in a sequence: 首先我们想要找到所有和 a 1 a^1 a1 相关的输入向量以便生成第一个输出 b 1 b^1 b1; 每两个向量之间的相关性 α \alpha α (attention score) 表示
    在这里插入图片描述

怎么计算 attention score α \alpha α ?

  • 方法 1 (之后的讲解中都默认使用这种方法,这种方法也是最常见的): Dot-product
    在这里插入图片描述
  • 方法 2: Additive
    在这里插入图片描述

Dot-product 计算 Attention Score

在这里插入图片描述

一般也会跟自己计算关联性,即计算出 k 1 k^1 k1 后再与 q 1 q^1 q1 作点积运算得到 α 1 , 1 \alpha_{1,1} α1,1?

  • 计算出 a 1 a^1 a1 与每一个 vector 的关联性之后,会作一个 Softmax 操作
    α 1 , i ′ = exp ? ( α 1 , i ) / ∑ j exp ? ( α 1 , j ) \alpha_{1, i}^{\prime}=\exp \left(\alpha_{1, i}\right) / \sum_{j} \exp \left(\alpha_{1, j}\right) α1,i?=exp(α1,i?)/j?exp(α1,j?)在这里插入图片描述

当然也不一定要用 Softmax,用其他的激活函数也可以,例如 ReLU


Extract information based on attention scores

  • 根据 attention score (向量之间的关联性) 作加权平均以抽取全局信息
    b 1 = ∑ i α 1 , i ′ v i b^1=\sum_i\alpha_{1,i}'v^i b1=i?α1,i?vi
  • 注意到, b 1 ~ b 4 b^1\sim b^4 b1b4 可以并行产生在这里插入图片描述

使用矩阵运算实现 Self-attention

计算 q , k , v q,k,v q,k,v (矩阵操作)

  • 可以把输入向量拼起来得到一个输入矩阵,直接乘上 W q W^q Wq / W k W^k Wk / W v W^v Wv 就可以计算出相应的 q , k , v q,k,v q,k,v
    在这里插入图片描述

计算 attention score

在这里插入图片描述在这里插入图片描述


计算输出 b b b

在这里插入图片描述


总结

在这里插入图片描述在这里插入图片描述

Multi-head Self-attention (Different types of relevance)

2 heads as example

  • 不同的 q , k , v q,k,v q,k,v 负责捕捉不同种类的相关性
    q i = W q a i q i , 1 = W q , 1 q i q i , 2 = W q , 2 q i q^i=W^qa^i\\ q^{i,1}=W^{q,1}q^i\\ q^{i,2}=W^{q,2}q^i qi=Wqaiqi,1=Wq,1qiqi,2=Wq,2qi

k , v k,v k,v 的计算与 q q q 类似

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Positional Encoding

  • No position information in self-attention (之前的 self-attention 没有考虑位置信息 (天涯若比邻))
    • ? \Rightarrow ? Each position has a unique positional vector e i e^i ei (hand-crafted or leared from data)
      在这里插入图片描述

e i e^i ei 可视化 (hand-crafted)

  • Each column represents a positional vector e i e_i ei?. (positional vector in the paper “attention is all you need”)
    在这里插入图片描述

有各式各样的方法可以产生 positional encoding

Applications

Widely used in Natural Langue Processing (NLP)!

Bert is a yellow Muppet character on the long running PBS and HBO children’s television show Sesame Street.


Self-attention for Speech


Self-attention for Image

Performance

Self-attention v.s. CNN

  • CNN: self-attention that can only attends in a receptive field
  • Self-attention: CNN with learnable receptive field (Self-attention 会考虑整张图片的信息而非局限在感受野中,相当于自己学出了一个十分复杂的感受野)
    • CNN is simplified self-attention. Self-attention is the complex version of CNN.
      在这里插入图片描述


Self-attention v.s. RNN

RNN 基本可以被 Self-attention 取代了

Recurrent Neural Network (RNN)

在这里插入图片描述

Self-attention

在这里插入图片描述


Self-attention for Graph

  • Consider edge: only attention to connected nodes (在计算 Attention Score 时,只考虑有边相连的结点,也就是只计算下图中蓝色方块对应的 Attention Score)
  • This is one type of Graph Neural Network (GNN)
    在这里插入图片描述

每个 node 都是 1 个 vector,例如可以看作社交网络图

To learn more

Self-attention 最早用在 Transformer 上,所以很多时候 Transformer 就是指的 self-attention;而后来 Self-attention 的各种变形也都叫作 xx f o r m e r former former


  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-29 11:38:10  更:2021-07-29 11:41:02 
 
开发: 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年5日历 -2024/5/5 7:23:15-

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