全文共字,预计学习时长33分钟图源:Unsplash“每隔一段时间,就会出现一种能改变一切的革命性产品。”——史蒂夫·乔布斯(SteveJobs)这句21世纪最知名的言论之一与深度学习有什么关系呢?想想看。计算能力的提升带来了一系列前所未有的突破。若要追根溯源,答案将指向注意力机制。简而言之,这一全新概念正在改变我们应用深度学习的方式。图源:Unsplash注意力机制是过去十年中,深度学习研究领域最具价值的突破之一。它催生了包括Transformer架构和Google的BERT在内的自然语言处理(NLP)领域的许多近期突破。如果你目前(或打算)从事NLP相关工作,一定要了解什么是注意力机制及其工作原理。本文会讨论几种注意力机制的基础、流程及其背后的基本假设和直觉,并会给出一些数学公式来完整表达注意力机制,以及能让你在Python中轻松实现注意力相关架构的代码。大纲l注意力机制改变了我们应用深度学习算法的方式l注意力机制彻底改变了自然语言处理(NLP)甚至计算机视觉等领域l本文将介绍注意力机制在深度学习中的工作原理,以及如何用Python将其实现目录1.什么是注意力?1.深度学习是如何引入注意力机制的2.了解注意力机制2.使用Keras在Python中实现简单的注意力模型3.全局与局部注意力4.Transformers–只需注意力就足够5.计算机视觉中的注意力什么是注意力?在心理学中,注意力是选择性地专注于一件或几件事物而忽略其他事物的认知过程。神经网络被认为是为对人脑运作进行简单模仿所做出的努力。注意力机制也是为在深度神经网络中实现选择性地专注于一些事物而忽略其他事物这一相同动作所做出的一种尝试。对此,我来解释一下。假设你在看小学时期的一张合照。照片上一般会有一群孩子分几排而坐,老师则坐在孩子中间。现在,如果有人问“照片上有多少人?”,你会怎么做呢?只需数一下人头,对吗?不用考虑照片上其他任何内容。现在,如果有人问“里面哪个是老师?”,你的大脑十分清楚要怎样做,即开始找里面哪个看起来像大人。照片的其他特征将会被忽略。这就是大脑擅用的“注意力”。深度学习是如何引入注意力机制的注意力机制是对NLP中基于编码/解码器的神经机器翻译系统的一种改进。后来,该机制或其变体被用于计算机视觉、语音处理等其他方面。在Bahdanau等人年提出首个注意力模型前,神经机器翻译是基于编码—解码器RNN/LSTM的。编码器和解码器都是LSTM/RNN单元的堆栈。按以下两个步骤工作:1.编码器LSTM用于处理整个输入句并将其编码为一个上下文向量,这是LSTM/RNN最后的隐藏状态。预期生成输入句的准确摘要。编码器的所有中间状态都将被忽略,最终状态应为解码器的初始隐藏状态2.解码器LSTM或RNN单元生成句中的各个单词。简单来说,有两个RNN/LSTM。其中一个称为编码器—在生成摘要之前,会先读取输入句并尝试进行理解。它将摘要(上下文向量)传递给解码器,解码器仅通过查看即可翻译输入的句子。这一方法的主要缺点显而易见。如果编码器的摘要不准确,翻译就会出错。实际上,已出现过这种情况,编码器在理解较长的句子时会生成错误的摘要。这就是RNN/LSTM的远程依赖问题。由于梯度消失/爆炸问题,RNNs无法记住较长的句子和序列,它只能记住刚刚看到的部分。甚至提出编码器—解码器网络的Cho等人()也证明,编码器—解码器网络的性能会随着输入句长度的增加迅速下降。尽管LSTM应比RNN能更好捕获远程依赖关系,在特定情况下它往往会变得健忘。在翻译句子时,无法重点
转载请注明:
http://www.aideyishus.com/lkyy/7430.html