RCNN - 循环卷积神经网络 - 什么是时间步长?

数据挖掘 Python 喀拉斯 rnn 卷积神经网络
2022-02-28 05:32:10

我目前正在研究这篇论文以将其实现到语音识别应用程序中,但似乎在理解时间步的概念时遇到了一些问题。什么是时间步长?

我以前没有使用过 RNN,但我猜想在连续的数据流中,时间步长将是时间 t 出现的数据。

但是如何在基于迭代的系统中实现/训练类似的东西呢?...

我的意思是像 keras 这样的东西,不能涉及从 t-1 到 t 收到的输出......或者如果是这样,如何?,我似乎不熟悉这个......

在另一篇论文中我发现了这个

要理解 RCL 的本质,有必要澄清 RCL 中时间步长的概念。它与与顺序数据关联的时间不同,而是指处理数据期间的迭代。

来自语音处理的递归卷积神经网络

然后进一步符合我的理论,即它是关于作为迭代 t-1 涉及/处理的数据。

1个回答

几个词汇:

层:一整套具有共享权重的接收单元,用于创建卷积特征图

单位:CNN 给定层中的单个 nxn 邻域滤波器算子(比如 3x3 或 5x5,无论您使用的是什么给定的滤波器大小)

步幅:层的每个单元的中心之间的距离或填充

在卷积层中,卷积操作可以被认为是一个滑动窗口,其中来自给定层的过滤器应用于像素的左上角块,然后向左滑动 1 个水平步长并重复直到结束行,然后它向下跳 1 个垂直步长并重新开始,依此类推。这在 CNN 中实现为 2D 单元网格,所有单元共享相同的卷积权重(这产生与滑动窗口相同的结果)。

RCL采用了卷积的滑动窗口概念,并为其增加了内存,因此每个单元内的滤波器都会根据前一个单元的响应进行修改。时间步长表示您希望在当前过滤器的计算中直接包含多少步。因此,如果我有一个过滤器大小为 5x5 的 RCL,并且对于 100x100 的图像大小的步幅为 1,则单个卷积层(假设它为过滤器半径填充)将具有 100x100 单位的网格。利用 N 的时间步长意味着您将包括网格上先前 N 个单元的响应结果来计算新的单元响应(或者更准确地说,是反向传播中的单元权重)。