RNN速成(二)

LSTM 长短期记忆(Long short-term memory, LSTM)是一种特殊的 RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的 RNN,LSTM 能够在更长的序列中有更好的表现。 门结构中的激活函数 门结构中包含着 sigmoid 激活函数。sigmoid 激活函数与 tanh 函数类似,不同之处在于 sigmoid 是把值压缩到 0~1 之间而不是 -1~1 之间。这样的设置有助于更新或忘记信息,因为任何数乘以 0 都得 0,这部分信息就会剔除掉。同样的,任何数乘以 1 都得到它本身,这部分信息就会完美地保存下来。这样网络就能了解哪些数据是需要遗忘,哪些数据是需要保存。这也代表着门结构最后计算得到的是一个概率。 遗忘门 遗忘门的功能是决定应丢弃或保留哪些信息。来自前一个隐藏状态的信息和当前输入的信息同时传递到 sigmoid 函数中去,输出值介于 0 和 1 之间,越接近 0 意味着越应该丢弃,越接近 1 意味着越应该保留。 输入门 输入门用于更新细胞状态。首先将前一层隐藏状态的信息和当前输入的信息传递到 sigmoid 函数中去。将值调整到 0~1 之间来决定要更新哪些信息。0 表示不重要,1 表示重要。 细胞状态 下一步,就是计算细胞状态。首先前一层的细胞状态与遗忘向量逐点相乘。如果它乘以接近 0 的值,意味着在新的细胞状态中,这些信息是需要丢弃掉的。然后再将该值与输入门的输出值逐点相加,将神经网络发现的新信息更新到细胞状态中去。至此,就得到了更新后的细胞状态。 输出门 输出门用来确定下一个隐藏状态的值,隐藏状态包含了先前输入的信息。首先,我们将前一个隐藏状态和当前输入传递到 sigmoid 函数中,然后将新得到的细胞状态传递给 tanh 函数。 最后将 tanh 的输出与 sigmoid 的输出相乘,以确定隐藏状态应携带的信息。再将隐藏状态作为当前细胞的输出,把新的细胞状态和新的隐藏状态传递到下一个时间步长中去。 数学计算方式 其中,$W$ 为当前层权重矩阵,$t$ 表示 timestep,$i,f,o$ 分别为输入门、遗忘门、输出门,第一个 $Z$ 为输出向量,$\sigma$ 为 sigmoid 。...

July 12, 2024 · 139 words · Kurong

RNN速成(一)

基本概念 循环神经网络 (RNN) 是一种使用序列数据或时序数据的人工神经网络。其最大特点是网络中存在着环,使得信息能在网络中进行循环,实现对序列信息的存储和处理。 循环神经网络 (RNN) 的另一个显著特征是它们在每个网络层中共享参数。 虽然前馈网络的每个节点都有不同的权重,但循环神经网络在每个网络层都共享相同的权重参数。 网络结构 RNN 不是刚性地记忆所有固定长度的序列,而是通过隐藏状态来存储之前时间步的信息。 同时,RNN 还能按时间序列展开循环为如下形式: 以上架构不仅揭示了 RNN 的实质:上一个时刻的网络状态将会作用于(影响)到下一个时刻的网络状态,还表明 RNN 和序列数据密切相关。同时,RNN 要求每一个时刻都有一个输入,但是不一定每个时刻都需要有输出。 如上图所示,隐含层的计算公式如下: $$ s_t=f \ (U_{x_t}+W_{s_{t-1}}) $$ 其中, $f$ 为激活函数。 训练方法 RNN 利用随时间推移的反向传播 (BPTT) 算法来确定梯度,这与传统的反向传播略有不同,因为它特定于序列数据。 BPTT 的原理与传统的反向传播相同,模型通过计算输出层与输入层之间的误差来训练自身。 这些计算帮助我们适当地调整和拟合模型的参数。 BPTT 与传统方法的不同之处在于,BPTT 会在每个时间步长对误差求和。 通过这个过程,RNN 往往会产生两个问题,即梯度爆炸和梯度消失。 这些问题由梯度的大小定义,也就是损失函数沿着错误曲线的斜率。 如果梯度过小,它会更新权重参数,让梯度继续变小,直到变得可以忽略,即为 0。 发生这种情况时,算法就不再学习。 如果梯度过大,就会发生梯度爆炸,这会导致模型不稳定。 在这种情况下,模型权重会变得太大,并最终被表示为 NaN。 RNN的变体 这里只是一个简介,详情见 《RNN速成(二)》 LSTM 这是一种比较流行的 RNN 架构,由 Sepp Hochreiter 和 Juergen Schmidhuber 提出,用于解决梯度消失问题。LSTM 在神经网络的隐藏层中包含一些“元胞”(cell),共有三个门:一个输入门、一个输出门和一个遗忘门。 这些门控制着预测网络中的输出所需信息的流动。 GRU 这种 RNN 变体类似于 LSTM,因为它也旨在解决 RNN 模型的短期记忆问题。 但它不使用“元胞状态”来调节信息,而是使用隐藏状态;它不使用三个门,而是两个:一个重置门和一个更新门。 类似于 LSTM 中的门,重置门和更新门控制要保留哪些信息以及保留多少信息。

July 6, 2024 · 74 words · Kurong