LSTM算法原理理解
神经网络
模拟人类大脑神经网络结构,每个神经元和其他的神经元相互连接,当它兴奋的时候会向相连的神经元发送化学物质,从而改变神经元的电位,当神经元的电位超过阈值,它会被激活,向其他神经元发送化学物质。其实神经网络的本质就是学习从输入到输出的函数映射,因为遇到一个未知的问题,无法对问题进行函数建模,利用神经网络学习出函数模型,这个学习的结果最终其实是每一层神经元的权重。

每一个神经元都会在线性运算后的结果上(W*x+b),套上一个激活函数。激活函数的作用其实就是增强网络模型的非线性性,因为激活函数就是一个非线性函数,当如果每一层神经元后不添加激活函数,那么输出其实就是输入的线性组合,不管网络有多少层,输出就是输入的线性组合。常见的激活函数有tanh(-1,1),sigmod(0,1),relu[0,1)。
RNN
普通的神经网络假设输入和输入之间是相互独立的,但是很多时候人类理解事物都是基于上下文的。RNN和普通的神经网络的区别在于,不仅仅每层之间的神经元存在连接,同一层之间的神经元也存在连接,上一个时刻的状态能作用与下一个时刻的状态。但是当网络层数过深的时候,RNN不好训练,可能会造成梯度消失或是梯度爆炸的问题。RNN采用基于时间的反向传播法(BPTT)进行训练,这种训练方法也是一种梯度下降法。当网络结构太深,造成网络结构太深,网络权重不稳定,本质来说是因为梯度反向传播中的连乘效应。
当梯度消失时,会造成神经网络参数无法更新,停止了学习。梯度爆炸则是更新速率太快,大幅度更新网络权重,可能无法学习到权重最佳值,也可能造成权重值为NaN而无法更新权重。
RNN图示结构:

LSTM
RNN无法解决长期依赖问题,输出和前面很长一段序列有关。LSTM则设计用来解决这种问题,LSTM相比RNN来说,就是添加了三个门:遗忘门,输入门,输出门。

遗忘门:决定从细胞状态中丢弃什么信息
输入门:决定让多少新的信息加入细胞状态,这一步将输出细胞状态
输出门:确定输出值,该输出值基于细胞状态
LSTM算法原理理解的更多相关文章
- POJ1523(割点所确定的连用分量数目,tarjan算法原理理解)
SPF Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 7406 Accepted: 3363 Description C ...
- Hash算法原理理解
我们有很多的小猪,每个的体重都不一样,假设体重分布比较平均(我们考虑到公斤级别),我们按照体重来分,划分成100个小猪圈. 然后把每个小猪,按照体重赶进各自的猪圈里,记录档案. 好了,如果我们要找某个 ...
- 理解Liang-Barsky裁剪算法的算法原理
0.补充知识向量点积:结果等于0, 两向量垂直; 结果大于0, 两向量夹角小于90度; 结果小于0, 两向量夹角大于90度.直线的参数方程:(x1, y1)和(x2, y2)两点确定的直线, 其参数方 ...
- [转] 带你彻底理解RSA算法原理
http://blog.csdn.net/dbs1215/article/details/48953589 1. 什么是RSA RSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法 ...
- 彻底理解RSA算法原理
1. 什么是RSA RSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法.在了解RSA算法之前,先熟悉下几个术语 根据密钥的使用方法,可以将密码分为对称密码和公钥密码 对称密码:加 ...
- 带你彻底理解RSA算法原理,很简单的
1. 什么是RSA RSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法. 在了解RSA算法之前,先熟悉下几个术语 根据密钥的使用方法,可以将密码分为 对称密码 和 公钥密码 对称 ...
- 3. ELMo算法原理解析
1. 语言模型 2. Attention Is All You Need(Transformer)算法原理解析 3. ELMo算法原理解析 4. OpenAI GPT算法原理解析 5. BERT算法原 ...
- 5. BERT算法原理解析
1. 语言模型 2. Attention Is All You Need(Transformer)算法原理解析 3. ELMo算法原理解析 4. OpenAI GPT算法原理解析 5. BERT算法原 ...
- 从时序异常检测(Time series anomaly detection algorithm)算法原理讨论到时序异常检测应用的思考
1. 主要观点总结 0x1:什么场景下应用时序算法有效 历史数据可以被用来预测未来数据,对于一些周期性或者趋势性较强的时间序列领域问题,时序分解和时序预测算法可以发挥较好的作用,例如: 四季与天气的关 ...
随机推荐
- jsonServer 造个假的服务器传递数据接口 再用axois来请求数据
- 15个Node.js项目列表
前言: Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台,是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascri ...
- git 不区分文件大小写的处理
- php二维数组搜索
$ar = array( 2 => array( 'catid' => 2, 'catdir' => 'notice', ), ...
- EasyUI扩展——自定义列排序匹配字段
一些特殊情况下希望实现:单击某些列,但是排序要按照自定义指定另外的列排序 easyui扩展: 如果不写sort属性则按照默认该列的field排序 $.fn.datagrid.defaults.onBe ...
- mybatis之注解式开发
注解: 注解是用于描述代码的代码.例如:@Test(用于描述方法进行junit测试),@Override(用于描述方法的重写),@Param(用于描述属性的名称) 注解的使用风格:@xxx(属性),使 ...
- 关于第一次java课的感想
首先必须承认,这次的题目还是很简单的,因为这道题完全就是换了个包装的小学期题目,也就是说,如果让我用C++来编写,我可以保证3个小时内编写完毕,也许在一些小的方面,比如输入数字的合法性上存在问题,但毕 ...
- js异步请求方式
一.使用defer 例: <script src="XXXXXX.js" defer></script> 二.使用promise 例: get('./moc ...
- Linux的文件最大连接数
[最大连接数]Linux的文件最大连接数 查看当前操作系统连接数设置 ulimit -a ==================================== 修改服务器最大连接数 vim / ...
- 如何遍历tabcontrol控件的所有的tabpage中的所有控件
foreach(Control c in tabControl1.TabPages)这个循环的意思是说,遍历tabControl1中所有的TabPages,TabPages是包含在tabControl ...