苟利国家生死以,岂因祸福避趋之。
简单写写 RNN 和 LSTM 的基本原理。如果后续有时间就细化一下。
RNN 和 LSTM 都是用来进行序列预测的。
# RNN
# 原理
RNN 可以概括为下面两个式子:
ht=σ(Whhht−1+Whxxt−1+bh)ot=σ(Wohht+bo)(update hidden state)(output)
其中 o 是输出特征,h 是隐变量。
关于权重矩阵的下标定义:Whx 代表输入是 x, 输出是 h, 类似地,Woh 代表输入是 h, 输出是 o.
# LSTM
长短期记忆网络 (Long Short-Term Memory, LSTM) 包括下面几个结构:
It=σ(XtWxi+Ht−1Whi+bi)Ft=σ(XtWxf+Ht−1Whf+bf)It=σ(XtWxo+Ht−1Who+bo)C~t=tanh(XtWxc+Ht−1Whc)Ct=Ft⊙Ct−1+It⊙C~tHt=Ot⊙tanh(Ct)输入门(input gate)忘记门(forget gate)输出门(output gate)候选记忆单元(candidate memory)记忆单元(memory)隐状态(hidden state)
# GRU
Rt=σ(XtWxr+Ht−1Whr+br)Zt=σ(XtWxz+Ht−1Whz+bz)H~t=tanh(XtWxh+(Rt⊙Ht−1)Whh+bh)H=Zt⊙Ht−1+(1−Zt)⊙H~t隐状态(hidden state)