1.1 RNN
RNN是考虑历史输出,并将其反作用于输入上的Neural Network。如下图,输出值被存放在a中,反作用于后面的输入值。
用RNN能到达什么效果?如下图,第一个leave/arrive输入会影响到下一次的输入Taipei时的输出值,所以下面两次输入Taipei,输出值是不一样的。
1.2. Deep RNN
以上是简单的RNN。
1.3. LSTM
LSTM的功能更加全面,4个输出,一个输入。
实际数据输入时,如下图:
1.4. 手推笔记:
多个LSTM连接。
一层的输入不仅会考虑上一层的Cell值,还会考虑上一层的输出,也可选择forget,相比简单的RNN,这个考虑的更全面,功能更完善。
1.5. Learning Target
1.6. RNN存在的问题
在求解最好的Loss Function时,存在一些导数突变的点,在这些点附近,导数在短距离突然变的很大或者很小。有一个解决这个问题的办法,就是设置最大值/最小值,当导数大于设置的最大值/小于设置的最小值时,就令导数等于这个值,这样可以防止导数突然剧烈变化,赋予了w,b错误的值。
1.7. 为什么会存在这个问题?
如下图所示,w从1.01变成0.99,虽然w值变化了0.02,但是由于蝴蝶效应,w的变化被放大,导致输出y的变化剧烈。