批归一化(BN
)能在后和后插入RNN中去除和偏置吗?如果可能的话,这会消除爆炸和消失的梯度问题吗?
笔者认为,tanh
将[-inf, +inf]
值调整为(-1, 1)
值的效果可以被BN
的标准化所取代,使和的偏差不再存在。
tanh的自动差别化也可以用BN来代替。
据说它解决了RNN中的爆炸梯度问题,因此它正在被使用。
考虑到重复的反向传播机制,递归神经网络的一个问题是潜在的爆炸梯度.在加法算子之后,c(t)的绝对值可能大于1。通过一个tanh算子可以保证该值再次在-1到1之间进行缩放,从而增加了在多个时间步长的反向传播过程中的稳定性。
消失梯度问题是RNN中的主要问题。此外,为了保持激活函数的线性区域的梯度,我们需要一个二阶导数在达到零之前能维持很长时间的函数。Tanh对这些特性很在行。
批归一化可以同时解决爆炸和消失梯度问题。
求解消失梯度问题。虽然内部协变量偏移可能不能提高精度,但它在一定程度上涉及到消失梯度问题。当输入的分布发生变化时,由于激活函数(例如,sigmoid,将微小值设为±2.5,或ReLU,它将任何x<0设置为0),它将容易发生本质上较小的梯度更新。批归一化有助于确保在反向传播过程中,通过将分布从网络的末端转移到网络的开始,可以听到信号,而不是减少信号。求解爆炸梯度问题。当批量归一化平滑优化景观时,它消除了累积的极端梯度,从而消除了梯度积累导致的主要权重波动。这极大地稳定了学习。
有几篇文章和文章指出这是可能的,但却找不到一个简单的实现图或代码示例。
对于RNN来说,这意味着计算小批处理和时间/步骤维度上的相关统计数据,因此规范化只适用于向量深度。这也意味着您只批量标准化转换后的输入(因此在垂直方向,例如BN(W_x * x)),因为横向(跨时间)连接是时间依赖的,不应该只是简单地平均化。
我们提出了一种LSTM的重参数化方法,它给递归神经网络带来了批量归一化的好处。鉴于以往的工作仅将批归一化应用于RNN的输入到隐藏的转换,我们证明了批量规范化隐隐转换是可能的,也是有益的,从而减少了时间步长之间的内部协变量转移。虽然批处理标准化在前馈网络中显示了显着的培训速度和泛化效益,但事实证明在递归架构中难以应用(Laurent等人,2016;Amodei等人,2015年)。它发现在堆叠的RNN中使用有限,其中规范化是“垂直”的,即每个RNN的输入,而不是时间步骤之间的“水平”。RNN在时间方向上更深,因此,当水平应用时,批处理规范化将是最有益的。然而,Laurent等人。(2016)假设以这种方式应用批量归一化会影响训练,因为重复重新标度会导致梯度的爆炸。我们的发现与这一假设背道而驰。我们证明,在递归模型隐-隐转换中应用批归一化是可能的,也是非常有益的。
发布于 2022-12-13 11:25:51
垂直BN是可以的,但水平后隐藏的状态向量,我们需要层规范化,而不是tanh,这是我今天将要尝试的。然后我猜隐藏状态是0,2辍学。
https://datascience.stackexchange.com/questions/92556
复制相似问题