老饼讲解:一步一步上手深度学习
经过上节,相信大家都认为很理解RNN了。
不不不,那是从起源的角度理解RNN,下面我们再说说对RNN更流行、更深刻一点的理解,经过这一节,RNN在我们面前会显得更简单,更好玩。让我们开始吧!
好了,RNN的时序图如下:

我们可以看到,RNN每个时刻都接受当前时刻的输入,并把上一时刻的隐层也作为输入。
下面我们换一个角度来看RNN,如下:

如图所示,我们固定单看隐层,其实隐层就是一路按权重D将隐信息继承过去,并在每个时刻将当前时刻的输入信息写到隐层中去。
因此,我们可以理解为,RNN其实就是用隐神经元来作为信息载体,每个时刻呢,用当前时刻的输入来更新这个信息载体,而当前时刻的输出就用当前最新的隐信息来进行预测。

即,RNN在第t时刻干的事,可以如下拆解理解:
1. 更新隐层信息:
2. 将输入写入隐层:
3. 激活:
4. 用隐层来预测输出:
突然之间,我们就发现RNN就是如此头脑简单的模型呀!我们不由得就会开始嫌弃它了。
首先,它继承信息的方式就是,这样合理吗?想改动吗?
其次,它写入新信息的方式太简单了,只是,这样写入真的靠谱吗?
我们无非就是想用隐神经来承载历史时刻的信息,仔细一看,就发现它这样实在是太简单粗暴了。好了,你觉得简单粗暴就行,这样说明你真的把RNN玩简单了。我们的目的达到了!下课!哦,这位同学想改一改它?别急,后面有人会把它改复杂的,把隐层神经元改为细胞呢!好玩得很!脑浆留到那时再来燃烧吧,下课!
这节里我们重新理解了RNN,加深对RNN的理解。相比从Jordan神经网络来理解RNN,从这种信息更新的角度,才更容易理解后面一些RNN对基础RNN进行修改的动机和原理。
评论