深度学习:Self-Attention与Multi-heads Attention详解

简介: 深度学习:Self-Attention与Multi-heads Attention详解

深度学习:Self-Attention与Multi-heads Attention详解

Introduction

Transformer 最初是由 Ashish Vaswani等人提出的一种用以完成机器翻译的 Seq2Seq 学习任务的全新网络结构,它完全基于注意力机制来实现从序列到序列的建模。相比于以往 NLP 模型中使用 RNN 或者编码-解码结构,其具有计算复杂度小、并行度高、容易学习长程依赖等优势。Transformer 网络结构如图 :
在这里插入图片描述

Self - Attention

我们在刚接触的Transformer的时候,首先遇到的难题是Self-attention这个模块:

在这里插入图片描述

从左下角看起,假设一个序列数据有x1、x2, 每个x是一个高维向量。然后通过fx,把 x Embedding成低维向量a1,a2,让后对a1,a2分别通过全连接层(对应的权重矩阵w)得到对应的q(query),k(key),v(value)。

首先简单的解释一下q k v的含义
这就要看一下self attention的整体架构如下图:

在这里插入图片描述

其中A为1个序列数据,a为序列数据的4个元素,每个a都是一个向量。a为input,b为output
,其中b1为a1考虑了整个序列数据的结果,也就是说a1会与a1,a2,a3,a4 计算一个attention score(也可以叫做相关性)。

那么如何计算这个attention score呢?
假设a1要与其它的元素(包括a1本身)计算相关性,那么q就是a1,k就是被计算相关性的元素。
计算方法有很多种,我们主要列举两种:
在这里插入图片描述

分为dot product 和 与 additive ,前者就是计算出q k后,做点乘(对应元素相乘在相加),然后得到q对所有k的相关性,然后经过softmax处理得到attention score,在大部分情况下我们都采用这种方法,后者则是做加法然后经过tanh激活得到。

我们得到一组attention score就表示q 与 各个k的相似性,分数越高,相关性越大,就会dominate 对应的输出结果b。之后把attention score与value相乘,然后把所有结果相加得到结果b。

举例来说 把序列A:={a1,a2}输入self attention模块, 得到 b1,b2,其中b1表示a1考虑了 整体输入的结果,也就是说在计算资源足够的情况下,这个架构不会因为序列过长而遗忘起始元素。

我们在看一下论文中的公式
在这里插入图片描述
这里只差根号dk没有解释过了,dk表示序列的长度,它的作用是为了防止数值过大,维持数值稳定性。

Multi-Head Attention

多头注意力与单头其实很相似,假设head为2,结构如下图:
在这里插入图片描述

假设q1 为(1,1,0,1),那么把均分为head个,把它们分配给每个head,

(实际是不同的head的所对应的q权重矩阵不同在这里插入图片描述

得到 q11,q 12,其中第一个下标代表序列元素的索引,第二个下标代表head。 k v重复刚才的操作,
然后把head数相同的放在一起计算:

在这里插入图片描述

然后对结果执行concat操作。

在这里插入图片描述

最后在乘上矩阵W_o融合不同维度特征,它的作用类似于1 * 1卷积。

Position- Encoding

方法为直接在input上 add 位置编码。

分为两种方法:

  1. 公式编码

    在这里插入图片描述

    1. 可训练的位置编码
目录
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
2017年ACL的四个NLP深度学习趋势 (二):可解释性和注意力(Interpretability and Attention)
作者通过分析2017年ACL的论文,以及演讲内容,得出了四个NLP深度学习趋势:Linguistic Structure 、 Word Embeddings、Interpretability 、Attention。今天我们就逐一分析一下这四个深度学习趋势。
1987 0
|
机器学习/深度学习 存储 自然语言处理
最前沿:图文结合详解深度学习Memory & Attention
该文献主要介绍深度学习网络中语音、文字以及图片这块中的典型神经网络,重点介绍Memory与Attention的发展前沿,分析了几个详细的典型模型,说明Memory与Attention在文字、语音以及图片相关应用中的重要性。
3059 0
|
机器学习/深度学习 存储 自然语言处理
最前沿:图文结合详解深度学习Memory & Attention
该文献主要介绍深度学习网络中语音、文字以及图片这块中的典型神经网络,重点介绍Memory与Attention的发展前沿,分析了几个详细的典型模型,说明Memory与Attention在文字、语音以及图片相关应用中的重要性。
12704 0
|
23小时前
|
机器学习/深度学习 算法 计算机视觉
深度学习在图像识别中的应用与挑战
【5月更文挑战第16天】 随着科技的不断发展,深度学习技术在图像识别领域取得了显著的成果。本文将探讨深度学习在图像识别中的应用,以及在实际应用中所面临的挑战。我们将介绍卷积神经网络(CNN)在图像识别中的关键作用,以及如何通过优化网络结构和训练策略来提高识别准确率。此外,我们还将讨论在大规模数据集上进行训练时可能遇到的问题,以及如何利用迁移学习和数据增强等技术来解决这些问题。
|
1天前
|
机器学习/深度学习 算法 计算机视觉
深度学习在图像识别中的应用与挑战
【5月更文挑战第16天】 随着人工智能技术的飞速发展,深度学习在图像识别领域取得了显著的成果。本文将探讨深度学习在图像识别中的应用,分析其优势和面临的挑战。我们将重点关注卷积神经网络(CNN)在图像分类、目标检测和语义分割等方面的应用,并讨论数据不平衡、过拟合和计算资源等挑战。最后,我们将展望深度学习在图像识别领域的未来发展趋势。
|
1天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第16天】 随着人工智能技术的突飞猛进,特别是深度学习在图像识别领域的应用,已成为推动自动驾驶技术发展的关键因素。本文旨在探讨基于深度学习的图像识别技术如何被集成到自动驾驶系统中,提高车辆的环境感知能力,确保行车安全。我们将分析卷积神经网络(CNN)和循环神经网络(RNN)等深度学习模型在处理实时交通数据中的优势,同时探讨这些技术面临的挑战和潜在的改进方向。通过实验结果验证,基于深度学习的图像识别系统能够有效提升自动驾驶汽车的导航精度与决策效率,为未来智能交通系统的实现奠定基础。
14 4
|
1天前
|
机器学习/深度学习 计算机视觉
深度学习在图像识别中的应用及挑战
【5月更文挑战第16天】 随着计算机视觉技术的飞速发展,深度学习已经成为图像识别领域的核心技术。本文将探讨深度学习在图像识别中的应用,分析其优势和面临的挑战。首先,我们将介绍深度学习的基本原理和关键技术,然后通过实例分析其在图像识别领域的应用,最后探讨当前面临的主要挑战和未来发展趋势。
|
1天前
|
机器学习/深度学习 监控 自动驾驶
探索深度学习在图像识别中的创新应用
【5月更文挑战第16天】 随着人工智能技术的飞速发展,深度学习已成为推进图像识别领域前沿的核心技术。本文旨在深入剖析深度学习模型如何革新传统的图像处理流程,并探讨其在各个应用场景中展现出的独特优势与潜在挑战。我们将重点讨论卷积神经网络(CNN)的架构优化、数据增强技术、迁移学习策略以及对抗性网络的兴起等方面,以期为未来图像识别技术的发展提供参考和启示。
|
1天前
|
机器学习/深度学习 边缘计算 算法
深度学习在图像识别中的应用与挑战
【5月更文挑战第15天】 随着人工智能技术的飞速发展,深度学习已经成为了计算机视觉领域的核心动力。本文将探讨深度学习在图像识别任务中的应用,分析其面临的主要挑战,并提出可能的解决方案。我们将回顾卷积神经网络(CNN)的基础结构,并讨论数据增强、迁移学习、模型压缩等先进技术如何提升图像识别系统的性能。此外,我们还将关注对抗性攻击、数据集偏差和计算资源限制等问题对深度学习模型的影响。