本文参考李宏毅老师的网课给出自己的理解。
一、RNN
RNN的优势是具有记忆功能,可以根据上一时刻的输入来影响这一时刻的输出。这句话中的时刻可以广义来看,一句话中不同的单词相当于不同的时刻,一张图片的不同帧也可以看作不同时刻。
此图我认为是最好理解RNN的图。
需要明确的是:(我认为知道这几点就可以了解RNN)
1.
x
1
、
x
2
、
x
3
x_{1}、x_{2}、x_{3}
x1、x2、x3是一个句子中的三个单词,
y
1
、
y
2
、
y
3
y_{1}、y_{2}、y_{3}
y1、y2、y3是这三个单词输入网络中得到的输出。
2.每一个绿色的块都是同一个网络,并不是不同的三个网络,三个绿色块代表三个时刻的同一个网络。
3.记忆块会储存
x
1
x_{1}
x1在绿色块输出的记忆信息
a
1
a_{1}
a1,这个记忆信息与下一个单词共同作用输出记忆
a
2
a_{2}
a2和
y
2
y_{2}
y2。
4.绿色的块中包含很多神经元只不过被忽略成了一个块。
5.绿色的块称为隐藏层,
a
i
a_{i}
ai与
y
i
y_{i}
yi最大的区别是前者没有通过激活函数。
6.记忆块的权重W在每一个单词中是不变的,每一句话才进行一次更新。
那么通过这6个点可以知道,RNN是一个有记忆的网络,不同的单词在这一个网络中循环后依次得到输出。
相信通过上述五点就可以看懂这个极简图,在同一个网络内,Input中的向量依次输入,每一次输入都伴随着一个输出和一个记忆,这个记忆会影响下一个向量的输出值。