快捷搜索:

人工智能之长短时记忆神经网络

  前言:人工智能机器学习有关算法内容,请参见公众号“科技优化生活”之前相关文章。人工智能之机器学习主要有三大类:1)分类;2)回归;3)聚类。今天我们重点探讨一下长短时记忆神经网络(LSTM)算法。

  通过上一篇文章[人工智能之循环神经网络(RNN)] 介绍,我们知道,RNN是一类功能强大的人工神经网络算法,RNN一个重要的优点在于,其能够在输入和输出序列之间的映射过程中利用上下文相关信息。但是RNN存在着梯度消失或梯度爆炸等问题。因此,为了解决上述问题,长短时记忆神经网络(LSTM)诞生了。

  长短时记忆神经网络LSTM(Long Short–Term Memory)是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。

  与其说长短时记忆神经网络LSTM是一种循环神经网络,倒不如说是一个加强版的组件被放在了循环神经网络中。具体地说,就是把循环神经网络中隐含层的小圆圈换成长短时记忆的模块,如下图所示。

  LSTM引入自循环的巧妙构思,以产生梯度长时间持续流动的路径是初始LSTM模型的核心贡献。其中一个关键扩展是使自循环的权重视上下文而定,而不是固定的。门控此自循环(由另一个隐藏单元控制)的权重,累积的时间尺度可以动态地改变。

  LSTM循环网络除了外部的RNN循环外,还具有内部的LSTM细胞循环(自环)。

  LSTM 通过刻意的设计来避免长期依赖问题。记住长期的信息在实践中是 LSTM 的默认行为,而非需要付出很大代价才能获得的能力。

  LSTM区别于RNN的地方,主要就在于它在算法中加入了一个判断信息有用与否的“处理器”,这个处理器作用的结构被称为cell。

  一个cell当中被放置了三扇门,分别叫做输入门、遗忘门和输出门。一个信息进入LSTM的网络当中,可以根据规则来判断是否有用。只有符合算法认证的信息才会留下,不符的信息则通过遗忘门被遗忘。

  说起来无非就是一进二出的工作原理,却可以在反复运算下解决神经网络中长期存在的大问题。目前已经证明,LSTM是解决长序依赖问题的有效技术,并且这种技术的普适性非常高,导致带来的可能性变化非常多。各研究者根据LSTM纷纷提出了自己的变量版本,这就让LSTM可以处理千变万化的垂直问题。

  LSTM 有通过精心设计的称作为“门”的结构来去除或者增加信息到细胞状态的能力。门是一种让信息选择式通过的方法。其包含一个 sigmoid 神经网络层和一个 pointwise 乘法操作。

  Sigmoid 层输出 0 到 1 之间的数值,描述每个部分有多少量可以通过。0 代表“不许任何量通过”,1 就指“允许任意量通过”!

  LSTM已经在科技领域有了多种应用。基于LSTM的系统可以学习翻译语言、控制机器人、图像分析、文档摘要、语音识别、图像识别、手写识别、控制聊天机器人、预测疾病、点击率和股票、合成音乐等任务。

  2015 年谷歌通过基于CTC 训练的 LSTM 程序大幅提升了安卓手机和其他设备中语音识别的能力。百度也使用了 CTC;苹果的 iPhone 在 QucikType 和 Siri 中使用了LSTM;微软不仅将LSTM 用于语音识别,还将这一技术用于虚拟对话形象生成和编写程序代码等。亚马逊 Alexa 通过双向LSTM在家中与用户交流,而谷歌使用 LSTM 的范围更加广泛,它可以生成图像字幕,自动回复电子邮件,它包含在新的智能助手Allo中,也显著地提高了谷歌翻译的质量。目前,谷歌数据中心的很大一部分计算资源现在都在执行 LSTM 任务。

  长短期记忆网络LSTM是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。LSTM是使用RNN的一个飞跃。LSTM算法在人工智能之机器学习、翻译语言、控制机器人、图像分析、文档摘要、语音识别、图像识别、手写识别、控制聊天机器人、预测疾病、点击率和股票、合成音乐等领域有着广泛应用。

相关阅读