一. RNN会造成的问题
前一天看过了RNN的训练流程,他是非常长一串,若今天我们需训练一个非常长的文本训练 RNN 时,会进行非常多次的反向传播,这在让我们计算梯度时会造成梯度消失(Gradient Vanishing)与梯度爆炸(Gradient Exploding)的问题。
那LSTM解决了上述的这个问题,它不会将前面的资讯都记录下来,而是会选择性纪录前面的资讯,那至於LSTM是如何做到的,就是因为他有一个遗忘门的机制,让他决定哪些资讯要保留,哪些要遗忘!
二. LSTM
LSTM全名为Long short-term memory(长短期记忆),其实整体上,LSTM与RNN的流程是一样的,都是在向前传播的时候处理资讯,但LSTM的架构与运算方式不同,如下图,图片一样来自Coupy的'NLP 深度学习马拉松':
在计算时会决定哪些资讯该保留哪些该舍去,接下来来说明LSTM的三大门: 遗忘门、输入门、输出门
遗忘门,前面一个状态h(t-1)会与现在的input X(t) 一起决定这边要不要保留(这边是用sigmoid来决定保留的%数,因为sigmoid是输出0-1之间的数字),操作流程如下:
输入门,用於更新单元现在的状态。一样先通过sigmoid输出0-1之间的数字调整输出值,0表示不重要,1表示重要。也将这动作传输给Tanh函数,最後将这两个结果相乘,这个动作就是在说 Sigmoid的值来权衡Tanh输出中哪些信息哪些是重要的,操作流程如下:
输入门输出後,C的值也可以开始跟着变动,往前进,会先乘上遗忘门输出的值,如果是0表示前面的资讯不重要了可以舍弃,更新完C後C就可以送给下一个LSTM单元继续做一样的事罗~如下图:
以上就是LSTM的操作流程~明天会再说明GRU的部分~~
>>: DAY17 MongoDB Replication 观念
您是 Citrix CCE-V 考试的有抱负的候选人之一吗?然後你就中了头奖!多年来,学生在尝试通过...
今天来讲一些使用套件来方便我们做自动化的一些流程,今天要提的是lint-staged与husky. ...
94. Binary Tree Inorder Traversal(Easy) Given the ...
这次我用上篇练习的基本定时器进行爬虫,但是过程中遇到了困难,总感觉连资料都没办法好好抓取,所以只好先...
1. range 表达式的值 当for语句被执行的时候,在range关键自右边的number1会先被...