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原理 以及 与CNNRNN对比 -> 正文阅读

[人工智能]Self-attention原理 以及 与CNNRNN对比

Self-attention

整体架构

每次输入的Sequence长度不一样,但输出数量要与输入数量相同 (例如:词性标注)

  • 目的:考虑整个input sequence的上下文资讯
  • Self-attention输出也要接入FC得到结果
image-20211026213317111

图中用红颜色括号标起来的vector考虑了整个sequence的内容,此时Fully-connect考虑了整个Sequence的内容

image-20211026213557403

可以将网络进行叠加:Fully-Connect与Self-attention交替使用

? Self-attention处理整个Sequence的内容

? Fully-Connect专注处理某个位置的内容

相关论文链接:Attention Is All You Need

运行原理

image-20211026214118669

  • 输入:可以是整个网络的input,也可以是做过某些处理
  • 输出:考虑了整个Sequence产生的
  • 先计算Q,K,V,后计算attention score,再根据其score对v做weight sum来抽取重要信息

计算attention score

以求出 a1 的输出 b1 为例子

image-20211026214643786

Self-attention目的是为了考虑整个Sequence,但是又不是所有的Sequence的内容都是重要的,所以需要进行判断相关性

计算两个向量的关联程度 α \alpha α的方法

image-20211026214834709

左边的Dot-product常用在了Tranformer中

在Self-attention中计算attention score: α \alpha α

image-20211026215501217

可以不用Soft-max,有时会用ReLU

  • 此时得到attention score α ‘ \alpha^‘ α (计算过程是上面的:Dot-product)

根据attention score来抽取重要的信息

image-20211026215959247

  • 由公式:当关联性越高,对应的 α \alpha α很大,最后得到的b就越接近关联程度越高的对应的 v 向量

从矩阵乘法的角度思考

  1. q,k,v的计算

image-20211026220735086

由之前的每个图中计算q,k,v向量的公式,从矩阵乘法角度看,整体可以简化

  1. 计算attention score

image-20211026221156382

由之前图中的公式可以得到: α = k T ? q \alpha=k^T * q α=kT?q,对全部的 α \alpha α使用矩阵乘法进行简化即可得图中计算

  1. 抽取信息

image-20211026223221263

  1. 总结

先产生q,k,v;再根据q找出相关的位置;再对v做weight sum

image-20211026222220305

进阶版本 - Multi-head Self-attention

定义相关性时,是使用q去找相关的k

但相关这件事有不同的定义,所以需要不同的q负责不同的相关性

2个heads 为例子

image-20211026222838760

image-20211026222905120

不同的 head 分别计算,计算过程如之前内容一样

此时会得到两个结果矩阵,再将两个拼接起来,再乘以一个矩阵的转置得到最后的结果

image-20211026223342557

Positional Encoding - 加入位置信息

  • Self-attention的过程可以看到,并没有位置相关的信息

为每一个位置设置不同的positional vector,将其加到输入a上

但产生positional vector是一个在研究的问题

参考论文:Learning to Encode Position for Transformer with Continuous Dynamical Model

应用

  1. NLP

image-20211026224220505

  1. Self-attention for Speech - Truncated Self-attention

image-20211026224547208

  1. for Image

image-20211026224714074

对于Self-attention处理:图中矩阵可以看成5*10个vector,每个vector是3维向量

image-20211026224845523

Self-attention VS. CNN

CNN是简化版的Self-attention

CNN考虑的是一个receptive field的信息

Self-attention考虑的是整个图片的信息

Self-attention会考虑每个向量的相关性,所以其receptive field可以看出自己学习出来的

而CNN的receptive field是自己指定的

相关论文:

image-20211027200305208

Self-attention相比CNN更加的flexible,需要更多的data,否则更可能over fitting

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OsoiaNK8-1635337818356)(C:/Users/pc/AppData/Roaming/Typora/typora-user-images/image-20211027200700993.png)]

Self-attention VS. RNN

image-20211027201504974

  1. RNN没有办法并行化产生输出,只能一个接一个输出;

    Self-attention可以并行化输出

  2. RNN当结果要考虑比相对较远输入的位置时,比较难以考虑到;

    Self-attention可以很好的对输入位置比较远的向量进行考虑

  3. RNN每个输出只考虑了其左边的输入,没有考虑右边的输入

    Self-attention则考虑了整个Sequence

learn more

image-20211027202436125

Reference

(强推)李宏毅2021春机器学习课程

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

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