接上一篇 :AI算法综述 (一)

RNN:循环神经网络 and LSTM 长短期记忆网络

LSTM就是一个RNN网络,外部的结构是一样的,主要是单元的内在结构不同。或者说LSTM是为了让RNN能够更好的处理NLP(自然语言问题)做的一些内部改造。

我推荐这篇文章理解LSTM :https://www.jianshu.com/p/9dc9f41f0b29

可能会比我自己说的更好,我这里就简单说一下,不涉及太多技术细节。

我们先回顾一下基本的神经网络结构图

整体结构就是 输入层+N层隐层+输出层。

数据的流向就是由左往右,输入X1,X2,X3 会分发给隐层通过这些连线传递过去,然后在节点计算之后有一个输出,继续分发给下一层。

那么单独拎一个节点放大来看的话就是这样的。

Z就是某中间节点。  这就是标准的前馈神经网络的结构。

这种结构在处理某一类问题的时候非常无力,就是比方说当前的识别结果,需要依赖上一次的识别结果。

具体的场景就是自然语言的翻译,翻译需要结合上下文语境才能更精确的翻译出来。而不能像某些机译一样,一句一句单独翻译。

那么RNN 所谓的循环神经网络就是在这中间节点做了一个改造。

这个改造就是,把中间节点的输出拷贝一份出来,然后混合着下一次的输入再做一次计算(激活函数)得出结果,反复如是,直到没有输入。

 那LSTM跟这个RNN有什么区别呢?

RNN当然也不是万能的,其中也存在各种利弊。

然后有个缺陷,就是假如当前 T 结果依赖上一次 (就是  T -1) 的结果,这问题不大,那如果 依赖 T-2 或者更远一点 T-10 的结果呢?

然后大家看回那个结构图,h20 的结果如果依赖 X1  那么中间的路途遥远,原输入经过了很多次计算才到H20 损耗非常大,变数更大。

而且需要依赖上下文语境的情况在自然语言处理中还普遍存在。所以……

当当当……

LSTM应运而生,为了世界和平而生。

我们先看一下LSTM跟常规的RNN区别。

主要是绿色块里面的变化,外部结构是一样的。

这个内在结构长的很像电路板,可以把这个电路板分为3个部件。

分别是“遗忘门” “输入门” “输出门”

具体这个结构怎么实现的这3个门这里不细说,上面那个地址有详细说明,爱看公式的童鞋可以移步。

这里我概括性的讲为啥要有遗忘门跟输入门、输出门

接我们刚才在RNN那里讲的,如果依赖的结果离的很远,比如说T 依赖 T-10 的输出结果。中间隔了一条银河。

你想要T么?先忘掉T-11 T-12…… 之前的所有信息,然后输入T-10,然后 忘掉 T-9 T-8 T-7 …… 然后把 T-10 的输入 通过输出门得出结果。

那么遗忘门的摊开之后的参数就是 从T-12 到 T 就是:

T-11 T-10 T-9 T-8 T-7 T-6 T-5 T-4 T-3 T-2 T-1 T-0
0 1 0 0 0 0 0 0 0 0 0 0

输入门就是:

T-11 T-10 T-9 T-8 T-7 T-6 T-5 T-4 T-3 T-2 T-1 T-0
0 0 0 0 0 0 0 0 0 0 0 1

所以由

RNN的训练过程就是根据标识好的数据,训练调整这些参数到符合这些数据的规律。

好了,RNN就讲到这里,感谢各位阅读!

后续我会补充 ,GANs,跟迁移学习方面的综述。

人工智能算法综述(二) RNN and LSTM的更多相关文章

  1. 【机器学习PAI实战】—— 玩转人工智能之综述

    摘要: 基于人工智能火热的大背景下,通过阿里云的机器学习平台PAI在真实场景中的应用,详细阐述相关算法及使用方法,力求能够让读者读后能够马上动手利用PAI搭建属于自己的机器学习实用方案,真正利用PAI ...

  2. 深度学习:浅谈RNN、LSTM+Kreas实现与应用

    主要针对RNN与LSTM的结构及其原理进行详细的介绍,了解什么是RNN,RNN的1对N.N对1的结构,什么是LSTM,以及LSTM中的三门(input.ouput.forget),后续将利用深度学习框 ...

  3. RNN、LSTM、Char-RNN 学习系列(一)

    RNN.LSTM.Char-RNN 学习系列(一) zoerywzhou@gmail.com http://www.cnblogs.com/swje/ 作者:Zhouw  2016-3-15 版权声明 ...

  4. RNN 与 LSTM 的应用

    之前已经介绍过关于 Recurrent Neural Nnetwork 与 Long Short-Trem Memory 的网络结构与参数求解算法( 递归神经网络(Recurrent Neural N ...

  5. TensorFlow之RNN:堆叠RNN、LSTM、GRU及双向LSTM

    RNN(Recurrent Neural Networks,循环神经网络)是一种具有短期记忆能力的神经网络模型,可以处理任意长度的序列,在自然语言处理中的应用非常广泛,比如机器翻译.文本生成.问答系统 ...

  6. RNN和LSTM

    一.RNN 全称为Recurrent Neural Network,意为循环神经网络,用于处理序列数据. 序列数据是指在不同时间点上收集到的数据,反映了某一事物.现象等随时间的变化状态或程度.即数据之 ...

  7. 浅谈RNN、LSTM + Kreas实现及应用

    本文主要针对RNN与LSTM的结构及其原理进行详细的介绍,了解什么是RNN,RNN的1对N.N对1的结构,什么是LSTM,以及LSTM中的三门(input.ouput.forget),后续将利用深度学 ...

  8. 深度学习之从RNN到LSTM

    1.循环神经网络概述 循环神经网络(RNN)和DNN,CNN不同,它能处理序列问题.常见的序列有:一段段连续的语音,一段段连续的手写文字,一条句子等等.这些序列长短不一,又比较难拆分成一个个独立的样本 ...

  9. RNN以及LSTM的介绍和公式梳理

    前言 好久没用正儿八经地写博客了,csdn居然也有了markdown的编辑器了,最近花了不少时间看RNN以及LSTM的论文,在组内『夜校』分享过了,再在这里总结一下发出来吧,按照我讲解的思路,理解RN ...

随机推荐

  1. 阿里云手动搭建k8s搭建中遇到的问题解决(持续更新)

    ETCD搭建 systemd启动etcd服务的时候出现错误:Failed at step CHDIR spawning /usr/bin/etcd: No such file or directory ...

  2. PHP面试和PHP开发者都应掌握的10个问题

    PHP面试和PHP开发者都应掌握的10个问题 问题 :1 MySQL里的存储引擎有什么不同,哪一个是默认的? 答案: 1 我们可以一下存储引擎: 1. MyISAM(MySQL的默认引擎. 每个MyI ...

  3. 项目中用到的node-express模块

    反向代理中间件: var proxyMiddleWare = require("http-proxy-middleware"); var proxyPath = "htt ...

  4. 【重要】使用Git命令行上传到GitHub上

    [本人GitHub账号:] 用户名:chenhongshuang 密码:shuangshuang6300 邮箱:2452420371@qq.com 进入GitHub账号后 1·新建项目文件名称例dem ...

  5. 2017/11/25 2D变换

    2D变换 一.盒模型解析模式 1.box-sizing:盒模型解析模式 1)content-box:标准盒模型(和css2一样的计算) 宽度和高度之外绘制元素的内边距和边框 width,height外 ...

  6. [Luogu 1395] 会议

    题目 Description 有一个村庄居住着n个村民,有n-1条路径使得这n个村民的家联通,每条路径的长度都为1.现在村长希望在某个村民家中召开一场会议,村长希望所有村民到会议地点的距离之和最小,那 ...

  7. 开源一个定时任务调度器 webscheduler

    在企业应用中定时任务调度的需求是必不可少的,比如定时同步数据,定时结转数据,定时检测异常等等.公司之前是在使用一款采用.net 开发的windows服务形式的定时程序,基本能满足需求,在一段时间的时候 ...

  8. EF Core利用Transaction对数据进行回滚保护

    What? 首先,说一下什么是EF Core中的Transaction Transaction允许以原子方式处理多个数据库操作,如果事务已提交,则所有操作都应用于数据库,如果事务回滚,则没有任何操作应 ...

  9. kvm之四:从网上镜像安装虚拟机Centos6.8

    1.再加块硬盘,格式化挂载至新建目录/kvm2下 2.CentOS 6.8镜像地址 http://mirrors.163.com/centos/6.8/os/x86_64/ 3.配置安装参数,执行安装 ...

  10. mui手机图片压缩上传+C#

    前台参考网址:http://www.bcty365.com/content-146-3263-1.html <html> <head> <meta charset=&qu ...