为什么在添加单元状态之前需要将过滤器应用于输入门的输出?

数据挖掘 机器学习 神经网络 深度学习 lstm rnn
2022-02-18 05:01:03

在神经网络中,有 4 个门:输入、输出、遗忘和一个门,其输出与输入门的输出执行元素相乘,然后添加到单元状态(我不知道这个门的名称,但它是下图中带有输出的那个C_tilde)。

在此处输入图像描述

为什么C_tilde需要在模型中添加门?为了允许输入门从单元状态中减去,我们可以更改导致i_tfrom sigmoidto的激活函数tanh并移除C_tilde门。

我的推理是输入门已经有一个权重矩阵W_i,可以乘以输入门的输入,因此它已经进行了过滤。然而,当C_tilde乘以i_t那似乎是另一个不必要的过滤器。

i_t = tanh(W_i * [h_t-1, x_t] + b_i)然后,我提出的输入门将i_t直接添加到C_t(C_t = f_t * C_t + i_t而不是C_t = f_t * C_t + i_t * C_tilde_t)。

2个回答

这是我的假设:it可以为模型增加可解释性,因为 sigmoid 函数的值可以说明特定单词对改变细胞状态的重要性C. 这是因为it介于 0 和 1 之间。W同时进行过滤和特征变换[ht1,xt]不仅对矩阵施加了更多压力(必须同时做两件事),而且不再具有这种可解释性因素。

示例:2 个向量可能需要相同的变换Wv,但除非您允许单独的 sigmoid 函数赋予每个函数一个重要性,否则它们对单元状态的贡献将保持不变。

sigmoid 输出乘以 tanh 输出,门次滤波器。只有 tanh,信号只能对 tanh(0) 归零,使用 sigmoid 门,信号可以对传入 sigmoid 的各种大负值归零。sigmoid 中的权重矩阵需要根据 h 和 x 的值正确校准门。