1. 注意力模型

1.2 注意力模型概述

注意力模型(attention model)是一种用于做图像描述的模型。在笔记6中讲过RNN去做图像描述,但是精准度可能差强人意。所以在工业界,人们更喜欢用attention model。

结合下图,先简单地讲一下,注意力模型的运作原理。
第一步:进来一张图片
第二步:图片进入卷积神经网络,进行前向运算,将某个卷积层的结果输出。注意,上一个笔记中讲的RNN做图像描述,用的是全链接层的输出。至于说哪个层的输出好,没法下结论,这个需要去不同的场景中做实验比较。比如这个实验中选择了输出卷积层的第5层结果进行输出。
第三步:卷积层中的输出作为输入,进入了RNN,这个RNN的运作与之前讲的有所不同,因为加进了“注意力”的因素,会去注意图片中的某一块趋于,具体的逻辑下文详述。
第四步:输出,生成描述性的文字。
Continue reading

  


RNN是深度学习中用于处理时序数据的关键技术, 目前已在自然语言处理, 语音识别, 视频识别等领域取得重要突破, 然而梯度消失现象制约着RNN的实际应用。LSTM和GRU是两种目前广为使用的RNN变体,它们通过门控机制很大程度上缓解了RNN的梯度消失问题,但是它们的内部结构看上去十分复杂,使得初学者很难理解其中的原理所在。本文介绍”三次简化一张图”的方法,对LSTM和GRU的内部结构进行分析。该方法非常通用,适用于所有门控机制的原理分析。

预备知识: RNN
Continue reading

本周分享的文章是自动摘要相关的,今天将会带来对两篇paper的思考。其中一篇是A Neural Attention Model for Abstractive Sentence Summarization,另一篇是Abstractive Sentence Summarization with Attentive Recurrent Neural Networks,两篇文章都出自于Harvard NLP组,两篇是姊妹篇,第二篇是第一篇的升级版,所以要结合着读,对比着分析。

世上没有什么所谓的银弹,每种方法存在都有其存在的意义。第一篇paper尝试将seq2seq+attention应用在summarization任务上,但并未取得比较令人满意的结果,反而增加了一些人工特征之后,才得到了很大的提升,虽然第二篇模型依旧是一个data-driven的模型,但我想如果给其添加上人工特征也会得到更好的效果。综合多种方法的优点来解决一个问题才是王道,而不是一味地、粗暴地套用某个范式,某个框架。

两篇文章从同一个角度入手,采用了不同难度的模型,非常好地解决了这个问题。联想到上周看的paper,他所采用的是多层lstm作为encoder和decoder,但数据集使用的并不相同,所以并不知道与本周的两篇paper哪个效果更好。但这也给出了一种发paper的思路,多去尝试一些encoder和decoder模型,不断地组合和对比,一定会有不错的发现。但这样的解决方案对于提升层次上没有太多溢出,因为大家都是照着模板去做,并没有真正地更深地理解到这个问题的本质。

一个系统的构建需要处理好方方面面的细节,比如数据的预处理,比如评测的实现,比如模型的参数调优,每个方面想要做好做精都是一门学问。

 
Continue reading

Attention机制是最近深度学习的一个趋势。在一次采访中,OpenAI的研究总监Ilya Sutskever说attention机制是最令人兴奋的进步之一,而且已经广为使用。听起来激动人心吧。但attention机制究竟是什么呢?

神经网络里的attention机制是(非常)松散地基于人类的视觉注意机制。人类的视觉注意机制已经被充分地研究过了,而且提出了多个不同的模型,所有的模型归根结底都是按照“高分辨率”聚焦在图片的某个特定区域并以“低分辨率”感知图像的周边区域的模式,然后不断地调整聚焦点。

Attention在神经网络领域有着很长的历史,尤其是在图像识别领域。相关的论文有Learning to combine foveal glimpses with a third-order Boltzmann machineLearning where to Attend with Deep Architectures for Image Tracking。但直到最近,attention机制才被引入NLP界常用的(视觉领域也逐步使用的)递归神经网络结构中。这正是我们这篇文章的主要关注点。

attention解决了什么问题?

我们以神经机器翻译(Neural Machine Translation,NMT)为例,来理解attention能为我们做什么。传统的机器翻译系统通常依赖于基于文本统计特性的复杂特征工程。简而言之,这些系统非常复杂,需要投入大量工程来搭建它们。神经机器翻译系统则有所区别。在NMT系统里,我们把一句话的意思映射为一个固定长度的表征向量,然后基于此向量生成翻译文本。由于不依赖于类似n-gram计数,而是捕捉文本更高层次的含义,NMT系统生成的翻译语句比大多数其它方法都要好。更重要的是,NMT系统的搭建和训练过程更方便,它们不需要任何手工的特征工程。事实上,TensorFlow只需要几百行代码就能实现一个简单版本

Continue reading

 

本文主要是利用图片的形式,详细地介绍了经典的RNN、RNN几个重要变体,以及Seq2Seq模型、Attention机制。

希望这篇文章能够提供一个全新的视角,帮助初学者更好地入门。

1

从单层网络谈起

在学习RNN之前,首先要了解一下最基本的单层网络,它的结构如图:

输入是x,经过变换Wx+b和激活函数f得到输出y。相信大家对这个已经非常熟悉了。
Continue reading