RNN的关键点:具有记忆性,按照时间节点
不同的输入训练按照时间进行,并参照上一次的训练结果
有不同的RNN结构
- Elman 结构
将hidden的结果存储并用于下一次计算
- Jordan 结构
将最终的输出存储并用于下一次计算
- 双向网络
- LSTM(long short-term memory)
具体运算如下:假设输入时z,其他的操控的输入分布式zi,zo,zf
当采用sigmoid 函数时,根据其输出的0或1,得到是否改变存储空间数值。 - LSTM举例
假设规则如下:输入x是三维向量,输出y是一维向量。其关系如下:
如上图所示,假设初始memory中的数值为0,蓝色表征数字,第二列,x2=1,则将x1的数值和memory中的数值相加,得到“3”存入memory中,第四列x2=1,得到“3+4=7”,以此类推,得到相应输出。
放入刚才的memory cell中,如图
假设权值已经知道,将每一次的输入代入,按照之前的运算规则,可以计算出输出。
将这里的memory block直接替换之前的神经元
此时,由于输入还要取操控其他的gate,所以需要的参数比原始的网络更多一些。
为了简化这个描述,将控制四个gate的输入表征为4个向量,每个向量中的维数就是有多少个block
- Learning target
如何定义cost function?这里给了一个语音识别的例子。
对每一个字母进行training后的结果与reference中做对应
BPPT: backpropagation through time
加入时间的因素,用之前同样的BP算法学习对应参数