卷积神经网络(CNN)、循环神经网络(RNN)和自注意力(self-attention)对比

       考虑同一个的问题:将由n个词元组成的序列映射到另一个长度相同的序列,其中的每个输入词元或输出词元由d维向量表示。

        我们将比较能够解决上述问题的三种常用方法:卷积神经网络(CNN)、循环神经网络(RNN)和自注意力(self-attention),从三个维度比较这三种架构:计算复杂度、顺序操作和最大路径长度。

       其中,讨论顺序操作是因为顺序操作会妨碍并行计算。任意的序列位置组合之间的路径越短,越能更轻松地学习序列中的远距离依赖关系。

1、卷积神经网络(CNN)

考虑⼀个卷积核⼤⼩为k的卷积层。(后续文章中将介绍关于使⽤卷积神经⽹络处理序列的详细信息)⽬前只需要知道的是,由于序列⻓度是n,输⼊和输出的通道数量都是d,所以卷积层的计算复杂度为O\left ( knd^{2} \right )。 如图所⽰,卷积神经⽹络是分层的,因此为有O\left ( 1 \right )个顺序操作,最⼤路径⻓度为O\left ( n/k \right )。例如,\textup{\textbf{}x}_{1}\textup{\textbf{}x}_{5}处于图中卷积核⼤⼩为3的双层卷积神经⽹络的感受野内。

2、循环神经网络(RNN)

       当更新循环神经⽹络的隐状态时,d\times d权重矩阵和d维隐状态的乘法计算复杂度为O\left (d ^{2} \right )。由于序列⻓度为n, 因此循环神经⽹络层的计算复杂度为O\left (nd ^{2} \right )。根据图,有O\left (n \right )个顺序操作⽆法并⾏化,最⼤路径⻓度 也是O\left (n \right )

3、自注意力(self-attention)

        在⾃注意⼒中,查询、键和值都是n\times d矩阵。考虑缩放的”点-积“注意⼒,其中n\times d矩阵乘 以d\times n矩阵。之后输出的n\times n矩阵乘以n\times d矩阵。因此,⾃注意⼒具有O\left (n ^{2} d\right )计算复杂性。正如在图中所讲,每个词元都通过⾃注意⼒直接连接到任何其他词元。因此,有O\left ( 1 \right )个顺序操作可以并⾏计算,最⼤路径⻓度也是O\left ( 1 \right )

4、小结

总⽽⾔之,卷积神经⽹络和⾃注意⼒都拥有并⾏计算的优势,⽽且⾃注意⼒的最⼤路径⻓度最短,但是因为其计算复杂度是关于序列⻓度的⼆次⽅(⾃注意⼒具有O\left (n ^{2} d\right )计算复杂性),所以在很⻓的序列中计算会⾮常慢。

相关推荐

  1. 神经网络 (CNN)

    2024-01-06 07:46:02       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-06 07:46:02       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-06 07:46:02       97 阅读
  3. 在Django里面运行非项目文件

    2024-01-06 07:46:02       78 阅读
  4. Python语言-面向对象

    2024-01-06 07:46:02       88 阅读

热门阅读

  1. 金蝶接口调用步骤

    2024-01-06 07:46:02       51 阅读
  2. 网页多文件合并下载成zip

    2024-01-06 07:46:02       66 阅读
  3. Micropython的包管理

    2024-01-06 07:46:02       69 阅读
  4. this的使用(js的问题)

    2024-01-06 07:46:02       61 阅读
  5. LeetCode每日一题 | 1944. 队列中可以看到的人数

    2024-01-06 07:46:02       60 阅读
  6. 1.2 C#基础

    2024-01-06 07:46:02       60 阅读
  7. PHP篇——html+php实现表单提交的一个简单例子

    2024-01-06 07:46:02       61 阅读
  8. Spring Boot 和 Spring Framework 的区别

    2024-01-06 07:46:02       70 阅读
  9. Spring Boot 生产就绪中文文档-下

    2024-01-06 07:46:02       46 阅读
  10. TensorFlow的详细介绍

    2024-01-06 07:46:02       50 阅读
  11. Android设备sdcard/tf卡不识别在电脑上可以

    2024-01-06 07:46:02       67 阅读