【问题标题】:Why can't you use a 3D volume input for LSTM?为什么不能为 LSTM 使用 3D 体积输入?
【发布时间】:2021-02-02 00:08:07
【问题描述】:

在我最近看的论文CountNet: Estimating the Number of Concurrent Speakers Using Supervised Learning中,它规定从一个CNN层输出的3D体积在进入LSTM层之前必须被缩减为一个二维序列,这是为什么呢?使用 3 维格式有什么问题?

【问题讨论】:

    标签: machine-learning neural-network lstm recurrent-neural-network


    【解决方案1】:

    标准 LSTM 神经网络假设输入的大小如下:

    [batch size] × [sequence length] × [feature dim]
    

    LSTM 首先将每个大小为[feature dim] 的向量乘以一个矩阵,然后以一种奇特的方式组合它们。这里重要的是每个示例(批次维度)和每个时间步(seq.length 维度)都有一个向量。从某种意义上说,这个向量首先通过矩阵乘法(可能涉及一些逐点非线性,不会改变形状,所以我不提)转换为隐藏状态更新,这也是一个向量,然后使用更新后的隐藏状态向量来产生输出(也是一个向量)。

    如您所见,LSTM 旨在对向量进行操作。你可以设计一个 Matrix-LSTM——一个 LSTM 对应物,它假设以下任何或所有都是矩阵:输入、隐藏状态、输出。这将要求您通过生成的线性运算替换处理输入(或状态)的矩阵向量乘法,该运算能够将任何矩阵转换为任何其他矩阵,我相信这将由 rank-4 张量给出。但是,它相当于只是将输入矩阵重新整形为向量,将 rank-4 张量重新整形为矩阵,进行矩阵向量乘积,然后将输出重新整形为矩阵,因此设计这样的矩阵没有什么意义Matrix-LSTM,而不仅仅是重塑您的输入。

    也就是说,如果您对输入结构有所了解,它可以指示比通用 rank-4 张量更具体的线性算子,那么设计一个将向量以外的其他内容作为输入的通用 LSTM 可能仍然有意义。例如,已知图像具有局部结构(附近的像素比相距较远的像素更相关),因此使用卷积比将图像重新整形为向量然后执行一般矩阵乘法更“合理”。以类似的方式,您可以将 LSTM 中的所有矩阵向量乘法替换为卷积,这将允许类似图像的输入、状态和输出。

    【讨论】:

      猜你喜欢
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多