RNN(一)——RNN和LSTM原理

背景

神经网络,卷积神经网络等其他深度学习算法,都有个局限性,各个输入在算法内部是相对独立的。比如:‘星际争霸有意思,我爱玩’这句话,是有上下文关系的。
如果放在其他网络里面,各个分词将会独立处理。但是在rnn里面,可以将上文记忆下来,做为下文的运算基础。

总之:rnn适合用来解决具有上下文关系的算法问题。

RNN基本概念

t表示序列(时间,空间都行,反正是有序的)。
在t时刻,接受到输入Xt之后,隐藏层的值为St,输出层的值是Ot。(这里的St不仅仅取决于Xi,还取决于上一个隐藏层St-1的值)
即:

\[s_t=f_1(Ux_t+Ws_{t-1}) (S_0为0矩阵) o_t=f_2(vs_t) \]

其中f代表各个层上面的激活函数
从这个式子中,清晰的看到,后面的输出依赖于前文。

LSTM基本概念

Long Short Term 网络,一般就叫做 LSTM ,是一种 RNN 特殊的类型
RNN的记忆是长记忆,一开始的记忆会一直保持到最后.利用BP算法训练网络时容易出现梯度消失的问题,当序列很长的时候问题尤其严重,因此RNN模型一般不能直接应用。而较为广泛使用的是RNN的一个特例LSTM

posted @ 2018-12-11 15:06  潘峰YiRan  阅读(2203)  评论(0编辑  收藏  举报