|
6 | 6 |
|
7 | 7 | ## 长短期记忆
|
8 | 8 |
|
9 |
| -我们先介绍长短期记忆的设计。它修改了循环神经网络隐藏状态的计算方式,并引入了与隐藏状态形状相同的记忆细胞(某些文献把记忆细胞当成一种特殊的隐藏状态),其可以用来记录额外的历史信息。 |
| 9 | +我们先介绍长短期记忆的设计。它修改了循环神经网络隐藏状态的计算方式,并引入了与隐藏状态形状相同的记忆细胞(某些文献把记忆细胞当成一种特殊的隐藏状态),从而记录额外的历史信息。 |
10 | 10 |
|
11 | 11 |
|
12 | 12 | ### 输入门、遗忘门和输出门
|
13 | 13 |
|
14 |
| -同门控循环单元一样,输入门(input gate)、遗忘门(forget gate)和输出门(output gate)的计算,入下图所示,均是通过合并输入和上一时间步的隐藏状态后进入激活函数为sigmoid的全连接层而来,这样它们元素的值域均为$[0,1]$。 |
| 14 | +同门控循环单元中的重置门和更新门一样,如图6.7所示,长短期记忆的输入门(input gate)、遗忘门(forget gate)和输出门(output gate)均由输入为当前时间步输入$\boldsymbol{X}_t$与上一时间步隐藏状态$\boldsymbol{H}_{t-1}$,且激活函数为sigmoid函数的全连接层计算得出。如此一来,这三个门元素的值域均为$[0,1]$。 |
15 | 15 |
|
16 |
| - |
17 | 16 |
|
18 |
| -假设隐藏单元个数为$h$,给定时间步$t$的小批量输入$\boldsymbol{X}_t \in \mathbb{R}^{n \times d}$(样本数为$n$,输入个数为$d$)和上一时间步隐藏状态$\boldsymbol{H}_{t-1} \in \mathbb{R}^{n \times h}$。 |
| 17 | + |
| 18 | + |
| 19 | +具体来说,假设隐藏单元个数为$h$,给定时间步$t$的小批量输入$\boldsymbol{X}_t \in \mathbb{R}^{n \times d}$(样本数为$n$,输入个数为$d$)和上一时间步隐藏状态$\boldsymbol{H}_{t-1} \in \mathbb{R}^{n \times h}$。 |
19 | 20 | 时间步$t$的输入门$\boldsymbol{I}_t \in \mathbb{R}^{n \times h}$、遗忘门$\boldsymbol{F}_t \in \mathbb{R}^{n \times h}$和输出门$\boldsymbol{O}_t \in \mathbb{R}^{n \times h}$分别计算如下:
|
20 | 21 |
|
21 | 22 | $$
|
22 | 23 | \begin{aligned}
|
23 | 24 | \boldsymbol{I}_t &= \sigma(\boldsymbol{X}_t \boldsymbol{W}_{xi} + \boldsymbol{H}_{t-1} \boldsymbol{W}_{hi} + \boldsymbol{b}_i),\\
|
24 | 25 | \boldsymbol{F}_t &= \sigma(\boldsymbol{X}_t \boldsymbol{W}_{xf} + \boldsymbol{H}_{t-1} \boldsymbol{W}_{hf} + \boldsymbol{b}_f),\\
|
25 |
| -\boldsymbol{O}_t &= \sigma(\boldsymbol{X}_t \boldsymbol{W}_{xo} + \boldsymbol{H}_{t-1} \boldsymbol{W}_{ho} + \boldsymbol{b}_o). |
| 26 | +\boldsymbol{O}_t &= \sigma(\boldsymbol{X}_t \boldsymbol{W}_{xo} + \boldsymbol{H}_{t-1} \boldsymbol{W}_{ho} + \boldsymbol{b}_o), |
26 | 27 | \end{aligned}
|
27 | 28 | $$
|
28 | 29 |
|
|
31 | 32 |
|
32 | 33 | ### 候选记忆细胞
|
33 | 34 |
|
34 |
| -和门控循环单元中的隐藏状态前需要计算候选隐藏状态一样,LSTM首先计算候选记忆细胞$\tilde{\boldsymbol{C}}_t$。它的计算同其他门一样,但使用了值域在$[-1, 1]$的tanh函数做激活函数,其入下图所示。 |
| 35 | +接下来,长短期记忆需要计算候选记忆细胞$\tilde{\boldsymbol{C}}_t$。它的计算同上面介绍的三个门类似,但使用了值域在$[-1, 1]$的tanh函数做激活函数,如图6.8所示。 |
35 | 36 |
|
36 |
| - |
| 37 | + |
37 | 38 |
|
38 | 39 |
|
39 |
| -具体来说,候选记忆细胞$\tilde{\boldsymbol{C}}_t \in \mathbb{R}^{n \times h}$的计算为: |
| 40 | +具体来说,时间步$t$的候选记忆细胞$\tilde{\boldsymbol{C}}_t \in \mathbb{R}^{n \times h}$的计算为 |
40 | 41 |
|
41 |
| -$$\tilde{\boldsymbol{C}}_t = \text{tanh}(\boldsymbol{X}_t \boldsymbol{W}_{xc} + \boldsymbol{H}_{t-1} \boldsymbol{W}_{hc} + \boldsymbol{b}_c).$$ |
| 42 | +$$\tilde{\boldsymbol{C}}_t = \text{tanh}(\boldsymbol{X}_t \boldsymbol{W}_{xc} + \boldsymbol{H}_{t-1} \boldsymbol{W}_{hc} + \boldsymbol{b}_c),$$ |
42 | 43 |
|
43 | 44 | 其中的$\boldsymbol{W}_{xc} \in \mathbb{R}^{d \times h}$和$\boldsymbol{W}_{hc} \in \mathbb{R}^{h \times h}$是权重参数,$\boldsymbol{b}_c \in \mathbb{R}^{1 \times h}$是偏移参数。
|
44 | 45 |
|
45 | 46 |
|
46 | 47 | ### 记忆细胞
|
47 | 48 |
|
48 |
| -当前时间步记忆细胞$\boldsymbol{C}_t \in \mathbb{R}^{n \times h}$的计算组合了上一时间步记忆细胞和当前时间步候选记忆细胞的信息,并通过遗忘门和输入门来控制信息的流动: |
| 49 | +我们可以通过元素值域在$[0, 1]$的输入门、遗忘门和输出门来控制隐藏状态中信息的流动:这通常可以应用按元素乘法符$\odot$。当前时间步记忆细胞$\boldsymbol{C}_t \in \mathbb{R}^{n \times h}$的计算组合了上一时间步记忆细胞和当前时间步候选记忆细胞的信息,并通过遗忘门和输入门来控制信息的流动: |
49 | 50 |
|
50 | 51 | $$\boldsymbol{C}_t = \boldsymbol{F}_t \odot \boldsymbol{C}_{t-1} + \boldsymbol{I}_t \odot \tilde{\boldsymbol{C}}_t.$$
|
51 | 52 |
|
52 |
| - |
53 | 53 |
|
54 |
| -这里遗忘门控制上一步的记忆信息是否传递到这一步,输入门则控制记录多少当前信息。如果遗忘门一直近似1且输入门一直近似0,过去的记忆细胞将一直通过时间保存并传递至当前时间步。这个设计可以应对循环神经网络中的梯度衰减问题,并更好地捕捉时序数据中间隔较大的依赖关系。 |
| 54 | +如图6.9所示,遗忘门控制上一时间步的记忆细胞信息是否传递到当前时间步,而输入门则可以控制当前时间步的输入通过候选记忆细胞流入当前时间步。如果遗忘门一直近似1且输入门一直近似0,过去的记忆细胞将一直通过时间保存并传递至当前时间步。这个设计可以应对循环神经网络中的梯度衰减问题,并更好地捕捉时序数据中间隔较大的依赖关系。 |
| 55 | + |
| 56 | + |
| 57 | + |
55 | 58 |
|
56 | 59 | ### 隐藏状态
|
57 | 60 |
|
58 | 61 | 有了记忆细胞以后,接下来我们还可以通过输出门来控制从记忆细胞到隐藏状态$\boldsymbol{H}_t \in \mathbb{R}^{n \times h}$的信息的流动:
|
59 | 62 |
|
60 | 63 | $$\boldsymbol{H}_t = \boldsymbol{O}_t \odot \text{tanh}(\boldsymbol{C}_t).$$
|
61 | 64 |
|
62 |
| - |
| 65 | +这里的tanh函数确保隐藏状态元素值在-1到1之间。需要注意的是,当输出门近似1,记忆细胞信息将传递到隐藏状态供输出层使用;当输出门近似0,记忆细胞信息只自己保留。图6.10展示了长短期记忆中隐藏状态的计算。 |
63 | 66 |
|
64 |
| -这里的tanh函数确保隐藏状态元素值在-1到1之间。需要注意的是,当输出门近似1,记忆细胞信息将传递到隐藏状态供输出层使用;当输出门近似0,记忆细胞信息只自己保留。 |
| 67 | + |
65 | 68 |
|
66 | 69 |
|
67 | 70 | ### 输出层
|
|
0 commit comments