循环神经网络 1(Recurre Neural Network 基本概念 )
循环神经网络的特点:
• RNNs 在每个时间点连接参数值,参数只有一份
• 神经网络出了输入以外,还会建立在以前的“记忆”的基础上
• 内存的要求与输入的规模有关
当然,他的深度不只有一层:
1. 公式表达
对于输入x1…xT , 我们有记忆h和分类结果yhat
2 .RNN 语言处理模型
在自然语言处理中,RNN和它的模型变种,是主力军。
(1) 输入层、隐藏层、参数设置
是初始化的在时间点0的隐藏层向量
是在时间点t的输入向量
是其中各参数集的维度设置:
(2) Loss
是在整个词汇表中的概率分布
整个Loss函数:
整体的Loss:
3 .RNN 训练
RNN的训练比较难,原因如下:
- 每次前向传播的时候,乘以的都是同一个参数矩阵W
- 好多步以前的输入,可能会影响现在的结果
- 求导的过程非常长
相应的就会出现梯度消失或者爆炸的问题(vanishing/exploding)
原因推导:
- 总的误差是每一个时间点的误差的和
- 根据chain-rule:
很多数值的相乘,如果乘数大于1,结果容易爆炸,如果小于1,结果趋近于0
本专栏图片、公式很多来自台湾大学李弘毅老师、斯坦福大学cs229,斯坦福大学cs231n 、斯坦福大学cs224n课程。在这里,感谢这些经典课程,向他们致敬!