在进行对于联邦遗忘学习的问题研究上,考虑到是不是可能遗忘的程度或者数据是和时间有关的,所以不知道是不是可以使用长短期记忆网络,因此对于RNN和LSTM进行一定的学习
主要矛盾
使用什么样子的数据,输出什么样子的数据,解决什么样的问题
RNN
输入:与时间有关的序列
单层网络-经典RNN结构
RNN中提出了隐状态h(hidden state)的概念,隐状态h可以对序列形的数据提取特征,接着再转换为输出
RNN的计算是一种递推式的计算,其中使用的
W
,
U
,
b
W,U,b
W,U,b都是相同的参数,也就是说在RNN中的每个步骤参数是共享的(但是LSTM中不共享,因为RNN的权值是在同一个向量中,只是不同时刻而已),递推公式为
h
i
=
f
(
U
x
i
+
W
h
i
−
1
+
b
)
h_i = f(Ux_i + Wh_{i-1} + b)
hi=f(Uxi+Whi−1+b)
RNN的输出值直接通过h进行计算,输出同样是共享参数,计算公式为
y
i
=
s
o
f
t
m
a
x
(
V
h
i
+
c
)
y_i = softmax(Vh_i + c)
yi=softmax(Vhi+c)
通过观察可以看到RNN的输入和输出的序列长度必须是等长的。
RNN的应用
RNN可以被用来使用先前的事件推断后续的事件,而不是在推断后面事件的时候从零推断。
如果将上面的结构无限延长,那么这个屏幕的横向估计也放不下,之前提到这个结构的公式可以写成一个递推公式,那何不将结构也画成一个递推的结构?
将上面的递推结构用公式表达一下,
h
t
=
s
o
f
t
m
a
x
[
V
(
U
x
t
+
W
h
t
−
1
+
b
)
+
c
]
h_t = softmax[V(Ux_t + Wh_{t - 1} + b) + c]
ht=softmax[V(Uxt+Wht−1+b)+c]
链式的特征揭示了RNN本质上是与序列和列表有关的,但是RNN的弊端就是他会丧失学习非常远的信息的能力,RNN会受到短时记忆的影响,如果序列足够长,那他们很难将信息从较早的时间步传送到后面的时间步。
LSTM
Long Short Term网络,是一种特殊类型的RNN,可以学习长期依赖的信息,它和RNN没有什么特别大的结构的不同,只是使用了不同的函数计算隐状态。
粗略总结
RNN倾向近期记忆的影响,LSTM倾向于长期记忆的影响