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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 一般注意力模型 -> 正文阅读

[人工智能]一般注意力模型


在这里插入图片描述

一般注意力模型

描述一般注意力模型,首先要描述可以使用注意力的模型的一般特征。我们将这种模型称为任务模型,如图:

这个模型接受一个输入,执行指定的任务,然后产生所需的输出。例如,任务模型可以是一种语言模型,它以一段文本作为输入,并生成内容的摘要、情感的分类或逐字翻译成另一种语言的文本作为输出。或者,任务模型可以获取一张图像,并为该图像生成描述或分割。

任务模型由四个子模型组成:特征模型( feature model)、查询模型(query model)、注意力模型( attention model)和输出模型(output model)。

特征模型和查询模型,用于为注意力模型提供输入。注意力模型和输出模型用于产生输出。

注意力输入

假设任务模型以矩阵 X ∈ R d x × n x \boldsymbol{X}∈\mathbb{R}^{d_x×n_x} XRdx?×nx?为输入,其中 d x d_x dx?表示输入向量的大小, n x n_x nx?表示输入向量的数量。这个矩阵中的列可以表示句子中的词、图像中的像素、声音序列的特征或任何其他输入集合。

特征模型输入 X \boldsymbol{X} X,输出 n f n_f nf?个特征向量 f 1 , … , f n f ∈ R d f \boldsymbol{f}_{1}, \ldots, \boldsymbol{f}_{n_{f}} \in \mathbb{R}^{d_{f}} f1?,,fnf??Rdf?。其中 d f d_f df?表示特征向量的大小。特征模型可以是循环神经网络(RNN)、卷积神经网络(CNN)、一个简单的嵌入层、对原始数据进行线性变换,或者根本不进行变换等等。本质上,特征模型包含了所有将原始输入 X \boldsymbol{X} X转换为特征向量 f 1 , … , f n f ∈ R d f \boldsymbol{f}_{1}, \ldots, \boldsymbol{f}_{n_{f}} \in \mathbb{R}^{d_{f}} f1?,,fnf??Rdf?(用于输入注意力模型)的操作。

为了确定要重点注意哪些向量,注意力模型还需要查询向量 q ∈ R d q \boldsymbol{q}\in \mathbb{R}^{d_q} qRdq?,其中 d q d_q dq?表示查询向量的大小。查询向量由查询模型得到,通常是根据模型所需的输出类型设计。查询向量告诉注意力模型要注意哪些特征向量。

注意力输出

注意力模型由单个或多个的一般注意力模块(general attention modules)组成。下图给出了一般注意力模块的内部机制:

一般注意力模块的输入有查询向量 q ∈ R d q \boldsymbol{q}\in \mathbb{R}^{d_q} qRdq?和由特征向量组成的矩阵 F = [ f 1 , … , f n f ] ∈ R d f × n f \boldsymbol{F}=[\boldsymbol{f}_{1}, \ldots, \boldsymbol{f}_{n_{f}}] \in \mathbb{R}^{d_{f}\times n_f} F=[f1?,,fnf??]Rdf?×nf?

首先,可以使用权重矩阵 W K ∈ R d k × d f \boldsymbol{W}_K∈\mathbb{R}^{d_k×d_f} WK?Rdk?×df? W V ∈ R d v × d f \boldsymbol{W}_V∈\mathbb{R}^{d_v×d_f} WV?Rdv?×df? F \boldsymbol{F} F进行线性变换:

得到键(Keys)矩阵 K = [ k 1 , … , k n f ] ∈ R d k × n f \boldsymbol{K}=\left[\boldsymbol{k}_{1}, \ldots, \boldsymbol{k}_{n_{f}}\right] \in \mathbb{R}^{d_{k} \times n_{f}} K=[k1?,,knf??]Rdk?×nf?和值(Values)矩阵 V = [ v 1 , … , v n f ] ∈ R d v × n f \boldsymbol{V}=\left[\boldsymbol{v}_{1}, \ldots, \boldsymbol{v}_{n_{f}}\right] \in \mathbb{R}^{d_{v} \times n_{f}} V=[v1?,,vnf??]Rdv?×nf?,其中 d k d_k dk? d v d_v dv?分别表示键向量( K \boldsymbol{K} K的列)和值向量( V \boldsymbol{V} V的列)的大小。

这两个权重矩阵可以是可训练的或者预先指定的。例如,可以选择将 W K \boldsymbol{W}_K WK? W V \boldsymbol{W}_V WV?都定义为单位矩阵,这将保留原始的特征向量。还有其他定义键和值的方法,例如用不同的 F \boldsymbol{F} F产生键和值,不过要保证 K \boldsymbol{K} K V \boldsymbol{V} V的列数相同。

注意力模块的目标是得到 V \boldsymbol{V} V中值向量的加权平均值。用于产生此输出的权重是通过注意力打分(attention scoring)和对齐(alignment )步骤获得的。

查询向量 q \boldsymbol{q} q和键矩阵 K \boldsymbol{K} K用于计算注意力得分向量 e = [ e 1 , … , e n f ] ∈ R n f \boldsymbol{e}=\left[e_{1}, \ldots, e_{n_{f}}\right] \in \mathbb{R}^{n_{f}} e=[e1?,,enf??]Rnf?。这是通过打分函数score()完成的:

查询 q \boldsymbol{q} q表示对信息的请求。注意得分 e l e_l el?表示根据查询 q \boldsymbol{q} q,键向量 k l \boldsymbol{k}_l kl?中包含的信息有多重要。表2给出了各种注意力打分函数。


注意力得分的范围通常在 [ 0 , 1 ] [0,1] [0,1]之外。因此,还需要通过对齐层归一化注意力分数,常用Softmax函数:

其中 a l ∈ R 1 a_l∈\mathbb{R}^1 al?R1为第 l l l个值向量对应的注意力权值。

注意力权重为注意力模块提供了一个相当直观的解释。每个权重都直接表明每个特征向量相对于其他特征向量的重要性。

通过注意力权重向量 a = [ a 1 , … , a n f ] ∈ R n f \boldsymbol{a}=\left[a_{1}, \ldots, a_{n_{f}}\right] \in \mathbb{R}^{n_{f}} a=[a1?,,anf??]Rnf?对值矩阵 V \boldsymbol{V} V各列进行加权平均,得到上下文向量(context vector) c ∈ R d v \boldsymbol{c}∈ \mathbb{R}^{d_v} cRdv?

最后,上下文向量输入输出模型得到输出 y ^ \boldsymbol{\hat{y}} y^?

这个输出模型将上下文向量转换为输出预测。例如,它可以是一个简单的softmax层,将上下文向量 c \boldsymbol{c} c作为输入:

其中 d y d_y dy?是输出向量的大小, W c ∈ R d y × d v \boldsymbol{W}_c\in \mathbb{R}^{d_y\times d_v} Wc?Rdy?×dv? b c ∈ R d y \boldsymbol{b}_c\in \mathbb{R}^{d_y} bc?Rdy?是可训练参数。

参考:

[1] A General Survey on Attention Mechanisms in Deep Learning https://arxiv.org/pdf/2203.14263v1.pdf

文章预告

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

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