今天,我们将要讲解关于循环神经网络(RNN)和长短期记忆网络(LSTM)的问题的讲解。
25. 一个简单的单层RNN里有训练参数多少?注:考虑到句子的自然流畅性,此处调整为“有训练参数多少”,更符合中文的问句表达方式。同时保留"RNN"作为技术术语,以确保对目标受众的适用性。
我们用一个单层的RNN网络作为例子。每一层中的每个门都有权重矩阵W_f、W_i、W_o、W_c:f代表遗忘门,i代表输入门,o代表输出门,c代表细胞门。
这些矩阵都是随时间变化的,每个矩阵会在每个时间步上被用到。
所以说,权重的数量就是:
权值 = 4 乘以 输出维度 乘以 输入维度 + 4 乘以 输出维度 乘以 每个 输出维度 + 4 乘以 输出维度
一个很好的例子:一篇很好的文章
26. 循环神经网络是如何训练的?每次RNN的时间步上,我们更新隐藏状态。如果有真实的输出 ( y_t ) (比如在文本生成中),我们计算这个时间步的损失。最后,在最终的损失计算后,我们通过时间展开反向传播。
在每个时间点t。
- 输入 ( x_t ) 给到了 RNN。
- 新的隐藏状态 ( ht ) 依据 ( h{t-1} ) 和当前的输入 ( x_t ) 计算出来。
- 计算出新的输出 ( y_t )。
随时间的梯度消失指的是使用RNN时遇到的主要问题之一——解决长期依赖问题。然而,在进行时间反向传播时,梯度无法传到长序列中的初始时间步。
更长的训练周期——这种方法不太容易实现并行化。
递归模型通常将计算沿输入和输出序列中的符号位置展开。它们会生成一个隐藏状态序列ht,作为前一个隐藏状态h(t-1)的函数。这种固有的序列特性阻碍了在训练示例中进行并行化处理,在更长的序列长度下这一点变得至关重要,因为内存限制了在不同示例间进行批处理的能力。
28. 你知道哪些类型的循环神经网络吗?解释一下GRU和LSTM之间的区别?LSTM 和 GRU 是 RNN 的主要变体。因为它们有更多的门,所以它们更加复杂。
- vanilla RNN — 不使用任何门进行更新
- LSTM
它有三个主要的门:遗忘门、输入门和输出门。
1. 遗忘门 — 将来自前一个隐藏状态和当前输入的信息通过Sigmoid函数传递,输出值在0到1之间。接近0的值意味着遗忘,接近1的值意味着保留。
2. 输入门 — 决定在通过遗忘门丢弃不必要的信息后,哪些信息应该添加到细胞状态中。它根据前一个隐藏状态和当前输入来更新细胞状态。
3. 输出门 — 根据当前状态决定下一个隐藏状态。
记住,隐藏状态不仅包含之前输入的信息,还用于预测。
- GRU — LSTM的一种变体,其中我们将遗忘门和输入门合并成一个更新门。
- 在每个时间步骤,GRU 计算一个“候选激活向量”,该向量结合了输入和上一个隐藏状态的信息。然后用此候选向量来更新下一个时间步骤的隐藏状态。
-
- 更新门 — 它告诉我们要丢弃哪些旧信息并添加哪些新信息
-
- 重置门 — 它根据当前输入决定忘记多少上一个隐藏状态的信息。
- 层数(层)
- 是否双向的
- 隐藏单元的数量
梯度消失问题意味着梯度变得很小,使得参数难以得到有效更新来学习任何内容。相反,梯度爆炸问题指的是梯度变得过大,导致优化过程“过冲”损失函数的最小值。
要解决这个问题的话,我们可以用更高级的网络,比如LSTM和GRU,以及其他适用于各种网络的方法:
• 梯度截断(Gradient Clipping)
• 激活函数:用泄露ReLU(LeakyReLU)或其他类似函数替换ReLU。
ReLU 存在一个称为 消失的 ReLU 的问题,即在训练过程中,一些神经元不再激活并一直输出 0。来源:https://www.analyticsvidhya.com/blog/2021/06/the-challenge-of-vanishing-exploding-gradients-in-deep-neural-networks/
- 批量标准化
CNNs可以通过滑动窗口来处理文本,这使它们能够捕捉到局部模式。这使得CNNs在提取如n-grams这样的局部特征方面非常有用。
觉得这些问题有意思吗?想在未来合作吗?订阅吧,让我们在LinkedIn上联系。
我也特别感激您对我的支持哦!
共同学习,写下你的评论
评论加载中...
作者其他优质文章