深度学习课程笔记(十五)Recurrent Neural Network
深度学习课程笔记(十五)Recurrent Neural Network
2018-08-07 18:55:12
This video tutorial can be found from: Youtube
Issue: 传统方法中,当你的训练数据中,没有那么丰富的 training data,那么可能会导致部分数据的预测为 0,如上图所示。为了不让它变成 0,所以,我们给它一个非常小的 value,如:0.0001。但是这种给定的低概率的 value,是相当不准确的。
所以,我们想能否有一种方法,可以较好的预测这些 value,Neural Network 可以吗?
我们把句子拆分成很多概率相乘的形式,那么,我们得到这样的表达形式:。然后,我们给 Neural Network 每一个时刻,输入一个单词,就想让它输出下一个我们想要的那么单词对应的 probability 最大。
=====================================================
=====================================================
==>> 接下里 RNN 要开始出场了。
=====================================================
=====================================================
==========================================================================================
我们采用 Backpropagation through time 来进行参数的更新。普通的 BP 算法是按照如下的方式进行更新的:
而 RNN 中用到的是:
实际执行过程中,通常会直接 sum 起来这些 gradient,然后进行一次更新。
由于梯度一直进行相乘,导致最终变得非常小,或者非常大;从而导致梯度消失或者梯度爆炸;
1. Exploding Gradient: Clipping
2. Vanishing Gradient: Initialization + ReLU