人工智能算法综述(二) RNN and LSTM
接上一篇 :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的更多相关文章
- 【机器学习PAI实战】—— 玩转人工智能之综述
摘要: 基于人工智能火热的大背景下,通过阿里云的机器学习平台PAI在真实场景中的应用,详细阐述相关算法及使用方法,力求能够让读者读后能够马上动手利用PAI搭建属于自己的机器学习实用方案,真正利用PAI ...
- 深度学习:浅谈RNN、LSTM+Kreas实现与应用
主要针对RNN与LSTM的结构及其原理进行详细的介绍,了解什么是RNN,RNN的1对N.N对1的结构,什么是LSTM,以及LSTM中的三门(input.ouput.forget),后续将利用深度学习框 ...
- RNN、LSTM、Char-RNN 学习系列(一)
RNN.LSTM.Char-RNN 学习系列(一) zoerywzhou@gmail.com http://www.cnblogs.com/swje/ 作者:Zhouw 2016-3-15 版权声明 ...
- RNN 与 LSTM 的应用
之前已经介绍过关于 Recurrent Neural Nnetwork 与 Long Short-Trem Memory 的网络结构与参数求解算法( 递归神经网络(Recurrent Neural N ...
- TensorFlow之RNN:堆叠RNN、LSTM、GRU及双向LSTM
RNN(Recurrent Neural Networks,循环神经网络)是一种具有短期记忆能力的神经网络模型,可以处理任意长度的序列,在自然语言处理中的应用非常广泛,比如机器翻译.文本生成.问答系统 ...
- RNN和LSTM
一.RNN 全称为Recurrent Neural Network,意为循环神经网络,用于处理序列数据. 序列数据是指在不同时间点上收集到的数据,反映了某一事物.现象等随时间的变化状态或程度.即数据之 ...
- 浅谈RNN、LSTM + Kreas实现及应用
本文主要针对RNN与LSTM的结构及其原理进行详细的介绍,了解什么是RNN,RNN的1对N.N对1的结构,什么是LSTM,以及LSTM中的三门(input.ouput.forget),后续将利用深度学 ...
- 深度学习之从RNN到LSTM
1.循环神经网络概述 循环神经网络(RNN)和DNN,CNN不同,它能处理序列问题.常见的序列有:一段段连续的语音,一段段连续的手写文字,一条句子等等.这些序列长短不一,又比较难拆分成一个个独立的样本 ...
- RNN以及LSTM的介绍和公式梳理
前言 好久没用正儿八经地写博客了,csdn居然也有了markdown的编辑器了,最近花了不少时间看RNN以及LSTM的论文,在组内『夜校』分享过了,再在这里总结一下发出来吧,按照我讲解的思路,理解RN ...
随机推荐
- React 系列文章(1): npm 手动搭建React 运行实例 (新手必看)
摘 要 刚接触React 开发, 在摸索中构建react 运行环境,总会遇到各种坑:本文,将用最短时间解决webpack+react 环境搭建问题. 1.如果你还没有React基础 看这里. 2.如果 ...
- 机器学习(1) - TensorflowSharp 简单使用与KNN识别MNIST流程
机器学习是时下非常流行的话题,而Tensorflow是机器学习中最有名的工具包.TensorflowSharp是Tensorflow的C#语言表述.本文会对TensorflowSharp的使用进行一个 ...
- Oracle查询优化改写--------------------给查询结果排序
一.查看员工所雇员工信息(查询部门号==10并且按照入职时间升序排序.第二种用数字来代替) 二.按多个字段排序(dmpno,deptno,sal,ename,job) 三.按照子串排序(有一种速查方法 ...
- [日常] NOIWC 2018爆零记
开个坑慢慢更(逃 (然而没准会坑掉?) day 0 大概 $8:30$ 就滚去雅礼了qwq 过去的时候发现并没有人...进报到处楼门的时候还被强行拍照围观了一波OwO 然后就领了HZ所有人的提包和狗牌 ...
- Java基础学习笔记二十一 多线程
多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念.进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线 ...
- web服务器学习3---httpd 2.4.29日志处理
.rotarelogs分割工具 如果有虚拟主机在虚拟主机配置文件中配置,否则在主配置文件中修改. 1.1修改配置文件 vi /usr/local/httpd/conf/conf.d/vhosts.co ...
- C语言博客作业--数组
一.PTA实验作业 题目1.求整数序列中出现次数最多的数 1.本题PTA提交列表 2.设计思路 定义整形变量n,max,count分别表示整数个数,出现次数最大值,出现次数.定义循环变量i,j. 输入 ...
- 敏捷冲刺每日报告——Day4
1.情况简述 Alpha阶段第一次Scrum Meeting 敏捷开发起止时间 2017.10.28 00:00 -- 2017.10.29 00:00 讨论时间地点 2017.10.28晚9:30, ...
- 从0开始的LeetCode生活—001-Two Sum
题目: Given an array of integers, return indices of the two numbers such that they add up to a specifi ...
- 1013团队Beta冲刺day1
项目进展 李明皇 今天解决的进度 点击首页list相应条目将信息传到详情页 明天安排 优化信息详情页布局 林翔 今天解决的进度 前后端连接成功 明天安排 开始微信前端+数据库写入 孙敏铭 今天解决的进 ...