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

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

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

长短期记忆神经网络LSTM是一种特殊的RNN,能够学习长期依赖关系。由Hochreiter和Schmidhuber (1997)提出,在后期工作中又由许多人进行了调整和普及(除了原始作者之外,许多人为现代LSTM做出了贡献,不完全统计:Felix Gers(目前在谷歌的DeepMind任职), Fred Cummins, Santiago Fernandez, Felix Gers(发明了LSTM遗忘门),Justin Bayer(自动演化), Daan Wierstra, Julian Togelius, Faustian Gomez, Matteo Gagliolo 和 Alex Graves)。LSTM在大量问题上效果异常出色,现在正在广泛使用。

LTSM概念:

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

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

LTSM本质:

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

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

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

LSTM原理:

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

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

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

LSTM深度剖析:

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

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

LSTM 拥有三个门(输入门,遗忘门,输出门),来保护和控制细胞状态。

标准LSTM:

1)决定丢弃信息:

2)确定更新的信息:

3)更新细胞状态:

4)输出信息:

LSTM的变体:

1)peephole 连接:

2)coupled 忘记门和输入门:

3) GRU(Gated Recurrent Unit):

LSTM应用场景:

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

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

结语:

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

------以往文章推荐------

·        机器学习

·        深度学习

·        人工神经网络

·        决策树

·        随机森林

·        强化学习

·        迁移学习

·        遗传算法

·        朴素贝叶斯

·        支持向量机

·        蒙特卡罗方法

·马尔科夫模型

·Hopfield神经网络

·回归模型

·K邻近算法

·卷积神经网络

·受限玻尔兹曼机

·循环神经网络

长短时记忆神经网络python代码_人工智能之长短时记忆神经网络相关推荐

  1. 长短时记忆神经网络python代码_零基础入门深度学习(6) - 长短时记忆网络(LSTM)

    无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就o ...

  2. bp神经网络matlab代码_基于Matlab的BP神经网络识别26个英文字母

    一.设计思想 字符识别在现代日常生活的应用越来越广泛,比如车辆牌照自动识别系统,手写识别系统,办公自动化等等.本文采用BP网络对26个英文字母进行识别.首先将待识别的26个字母中的每一个字母都通过长和 ...

  3. 三行python代码实现人工智能

    三行python代码实现人工智能 中野独立团团长李云龙 2018-12-25 09:28:05 话不多说直接上代码 while True: a=input() print(a) 有人说人工智能的本质就 ...

  4. 决策树留一法python代码_从实例中归纳决策树_人工智能一

    从实例中归纳决策树_人工智能一 18.3.3 从实例中归纳决策树 布尔决策树的一个实例是由一个输入属性向量X以及一个唯一的布尔输出值y组成的.一个实例集合(X1,y1),-,(X12,y12)如图18 ...

  5. 会写Python代码的人工智能Kite宣布支持Linux,“程序猿”要失业了?

    Kite,那个能为"程序猿"们减少写Python代码时的重复劳动的"自动完成AI",近日宣布,为了回应社区的反馈,它已经添加了对Ubuntu 16.04+.De ...

  6. 商业数据分析模型及其核心Python代码_持续更新

    商业数据分析模型_持续更新 一.AARRR模型 二.PEST模型 理论 医美行业应用案例 三.RFM模型 理论 Python实战_核心指标计算 四.SWOT模型 五.5W1H模型 六.流程拆解法 七. ...

  7. 掷骰子python代码_通过构建一个简单的掷骰子游戏去学习怎么用 Python 编程

    不论是经验丰富的老程序员,还是没有经验的新手,Python 都是一个非常好的编程语言. Image by : opensource.com Python 是一个非常流行的编程语言,它可以用于创建桌面应 ...

  8. 角谷猜想python代码_查看“Python-2020-fall”的源代码

    因为以下原因,您没有权限编辑本页: 您所请求的操作仅限于该用户组的用户使用:用户 您可以查看与复制此页面的源代码.== Python程序设计课程主页(2020年秋季学期) == Teacher: [h ...

  9. plt保存图片_人工智能Keras CNN卷积神经网络的图片识别模型训练

    CNN卷积神经网络是人工智能的开端,CNN卷积神经网络让计算机能够认识图片,文字,甚至音频与视频.CNN卷积神经网络的基础知识,可以参考:CNN卷积神经网络 LetNet体系结构是卷积神经网络的&qu ...

最新文章

  1. kernel pca与传统pca的区别
  2. 同步阻塞、同步非阻塞、异步阻塞、异步非阻塞与 I/O 多路复用、Java NIO 之间的联系
  3. C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面
  4. 【LCT】大融合(luogu 4219)
  5. 滑雪(洛谷-P1434)
  6. Python编程基础18:运算符重载
  7. GridSearchCV 参数
  8. redis内核单元测试框架
  9. 【BZOJ28323874】宅男小C [模拟退火][贪心]
  10. linux系统调整中文字符,Linux字符模式下中文显示
  11. 决策树 ID3 算法
  12. 海康设备添加到萤石云
  13. java 保存微信表情_【java】【mysql】存储微信表情emoji表情
  14. 一个开源的网页画板,真的太方便了
  15. bin、hex、elf、axf文件的区别
  16. 光线追踪渲染技术能听懂的介绍
  17. 科技牛人:“别人家的孩子”牛在哪里!
  18. 世纪三部曲(全9册) 读后感
  19. Elastic:Data tiers 介绍及索引生命周期管理 - 7.10 之后版本
  20. 基于深度学习的玫瑰向日葵分类系统

热门文章

  1. 完美解决在SAE平台安装OneThink的问题
  2. Cesium基础知识-创建图层
  3. 坚果部分机型屏幕亮度调整问题
  4. 手游联运系统海外版丨游戏联运系统海外版丨海外游戏联运系统丨海外版游戏SDK
  5. CSDN与江西软件职业技术大学签署战略合作协议
  6. Training and operation of an integrated neuromorphic network basedon metal-oxidememristors RRAM+神经网
  7. mc服务器修改合成表,原版数据包修改合成配方教程
  8. 连加在matlab中的表述,matlab中y(1)+.y(i)的连加程式怎么写啊?
  9. .NET 7 新增速率限制 (Rate Limiting) 功能,轻松限制请求数量
  10. 大学毕业生应聘参加面试正确穿衣搭配是怎么样的