乘风破浪的Paddle之LSTM

Posted 百度校园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了乘风破浪的Paddle之LSTM相关的知识,希望对你有一定的参考价值。

点击菜单栏“粉丝福利”

拿小度,兑手机!

作者:刘凯旋 来源:人工智能学习圈
自然语言处理(NLP)主要是研究实现人与计算机之间用自然语言进行有效通信的各种理论和方法。基于神经网络的深度学习技术具有强大的表达能力、端到端解决问题的能力,因而在NLP任务的应用上越来越广泛和有效。
乘风破浪的Paddle之LSTM
长短期记忆网络是一种时间循环神经网络,是为了解决一般的RNN存在的长期依赖问题而专门设计出来的,所有的RNN都具有一种重复神经网络模块的链式形式。在标准RNN中,这个重复的结构模块只有一个非常简单的结构,例如一个tanh层。
情感是人类的一种高级智能行为 ,为了识别文本的情感倾向,需要深入的语义建模。另外,不同领域(如餐饮、体育)在情感的表达各不相同,因而需要有大规模覆盖各个领域的数据进行模型训练。
为此,我们通过基于深度学习的语义模型和大规模数据挖掘解决上述两个问题。效果上,我们基于开源情感倾向分类数据集ChnSentiCorp进行评测;此外,我们还开源了百度基于海量数据训练好的模型,该模型在ChnSentiCorp数据集上fine-tune之后,可以得到更好的效果。具体数据如下所示:
乘风破浪的Paddle之LSTM
百度PaddlePaddle开源了语义表示模型ERNIE,在多个中文NLP任务上表现超越了谷歌的BERT,展示了百度在NLP技术的领先能力,同时也表明PaddlePaddle作为国内目前唯一功能完备的深度学习平台,在不断得夯实框架能力, 并引领技术进步。
实际上除了ERNIE,PaddlePaddle官方还有很多其他的NLP模型,覆盖了包括语义表示、语义匹配、阅读理解、机器翻译、语言模型、情感倾向分析、词法分析等各项NLP任务。
在此附上百度Paddle中的github源码
乘风破浪的Paddle之LSTM

https://github.com/PaddlePaddle/Paddle/blob/release/1.8/python/paddle/fluid/layers/rnn.py#L2109
paddle官方讨论区,大家一起来交流呀
https://ai.baidu.com/forum/topic/list/168/5
RNN、LSTM和GRU是深度学习在NLP中应用的基础语言模型。
RNN模型在同一个单元中,每个时刻利用当前和之前输入,产生当前时刻的输出,能够解决一定时序的问题,但是受到短时记忆影响,很难将信息从较早的时间传到较晚的时间。LSTM通过引入门结构(forget,input,output三种门结构),能够将序列的信息一直传递下去,能够将较早的信息也引入到较晚的时间中来,从而客服短时记忆。
GRU与LSTM非常相似,但是只有两个门(update,reset),因而参数更少,结构简单,训练更简单。
Paddle提供了基于Penn Tree Bank (PTB)数据集的经典循环神经网络LSTM语言模型实现,通过学习训练数据中的序列关系,可以预测一个句子出现的的概率。
Paddle也提供了基于Penn Tree Bank (PTB)数据集的经典循环神经网络GRU语言模型实现,在LSTM模型基础上做了一些简化,保持效果基本持平的前提下,模型参数更少、速度更快。
乘风破浪的Paddle之LSTM
人类并不是每时每刻都从一片空白的大脑开始他们的思考。在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义。
我们不会将所有的东西都全部丢弃,然后用空白的大脑进行思考。我们的思想拥有持久性。传统的神经网络并不能做到这点,看起来也像是一种巨大的弊端。
例如,假设你希望对电影中的每个时间点的时间类型进行分类。传统的神经网络应该很难来处理这个问题——使用电影中先前的事件推断后续的事件。RNN 解决了这个问题。
乘风破浪的Paddle之LSTM
链式的特征揭示了 RNN 本质上是与序列和列表相关的。他们是对于这类数据的最自然的神经网络架构。
http://karpathy.github.io/2015/05/21/rnn-effectiveness/
长短期记忆网络论文首次发表于1997年。由于独特的设计结构,LSTM适合于处理和预测时间序列中间隔和延迟非常长的重要事件。
LSTM的表现通常比时间递归神经网络及隐马尔科夫模型(HMM)更好,比如用在不分段连续手写识别上。
2009年,用LSTM构建的人工神经网络模型赢得过ICDAR手写识别比赛冠军。LSTM还普遍用于自主语音识别,2013年运用TIMIT自然演讲数据库达成17.7%错误率的纪录。作为非线性模型,LSTM可作为复杂的非线性单元用于构造更大型深度神经网络
乘风破浪的Paddle之LSTM

为了最小化训练误差,梯度下降法(Gradient descent)如:应用时序性倒传递算法,可用来依据错误修改每次的权重。梯度下降法在递回神经网络(RNN)中主要的问题初次在1991年发现,就是误差梯度随着事件间的时间长度成指数般的消失。
当设置了LSTM 区块时,误差也随着倒回计算,从output影响回input阶段的每一个gate,直到这个数值被过滤掉。因此正常的倒传递类神经是一个有效训练LSTM区块记住长时间数值的方法。
LSTM 的关键就是细胞状态,水平线在图上方贯穿运行。
细胞状态类似于传送带。直接在整个链上运行,只有一些少量的线性交互。信息在上面流传保持不变会很容易。
乘风破浪的Paddle之LSTM
Paddle中对于公式的解释
乘风破浪的Paddle之LSTM
乘风破浪的Paddle之LSTM
RNN 得到重要的结果。本质上所有这些都可以使用 LSTM 完成。对于大多数任务确实展示了更好的性能!
附上Paddle的代码
乘风破浪的Paddle之LSTM
最后为大家推荐一个有趣的股票预测实验文章
股票价格不仅仅与前面一天的数据有关系,还跟以前的股票价格有关系,这样,股票的数据就构成了一种时间序列,而每次决定股票预测结果的也不是仅仅是本次的输入,而是过去一段时间的数据序列,所以我们不能像预测房价那样使用全连接层神经网络,而是使用LSTM模型。
实验实现的是利用LSTM (长短期记忆神经网络) 进行股票预测,通过本次实验,你将了解股票预测的方法、股票预测的数据集处理技巧、LSTM模型搭建以及训练过程等等,除此之外,你还将看到Paddlepaddle框架实现深度学习的一个十分清晰的结构流程,加深你对Paddlepaddle的了解。
安装环境愉快工作:
乘风破浪的Paddle之LSTM
https://blog.csdn.net/paddlepaddleno1/article/details/103405226
最后一个是用paddle实现LSTM的动漫情感分类
https://aistudio.baidu.com/aistudio/projectdetail/127565

本文未经授权,严禁转载,转载请联系作者本人。
原文链接:https://zhuanlan.zhihu.com/p/151892610

乘风破浪的Paddle之LSTM

以上是关于乘风破浪的Paddle之LSTM的主要内容,如果未能解决你的问题,请参考以下文章

Paddle 点灯人 之 Paddle介绍

Paddle 点灯人 之 10分钟快速上手Paddle

Paddle 点灯人 之 10分钟快速上手Paddle

Paddle 点灯人 之 Tensor

Paddle 点灯人 之 Tensor

乘风破浪,遇见最美Windows 11之现代Windows开发运维