欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

CNN 与 LSTM 模型复杂度分析

发布时间:2025/4/5 编程问答 15 豆豆
生活随笔 收集整理的这篇文章主要介绍了 CNN 与 LSTM 模型复杂度分析 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

    • 0.关于Neural Network 的复杂度
    • 1.CNN 模型复杂度
    • 2.LSTM 模型复杂度
    • 3.References


Author: Cao Shengming
Email: caoshengming@trio.ai
Company: Trio 北京(三角兽)科技有限公司


0.关于Neural Network 的复杂度

NN 模型的复杂度一般可以从两个方面来刻画:
时间复杂度:

时间复杂度与硬件执行息息相关,但是一般表示模型时间复杂度的方法,可以是某一层、或者产生某个结果所需要的操作(operation)数、所需要处理的元素(elements)个数或者完成某个操作所需要经历的路径长度(path length)。

空间复杂度:

空间复杂度与模型容量是息息相关的,这里我们可以将空间复杂度简单理解为模型的参数数量,也就是说 parameters per layer 就可以认为是该层的模型复杂度。

(Note: 下边如果不做特殊说明,我们将先讲述空间复杂度的状况。)

1.CNN 模型复杂度

常见的 CNN 模型一般包含以下集中类型的层,卷积层、池化层和全连接层。假设卷积核大小为 H*W,input channel 为 I,out channel 为 O。

输入层和输出层暂时先不考虑,输入层没有参数,而输出层一般是全连接层,就不做单独分析。

  • Convolutional Layer:
    该层 filter 数量总数为 H*W*I,而每个将被映射到64个新的通道,加上每个filter 的计算要有一个 bias,所以总的参数数量为(H*W*I+1)*O。
  • Pooling Layer:
    一般的池化层属于固定操作,没有权重系数。
  • Fully Connected Layer:
    全连接层也好理解,前后要是 n,m 维的输入输出,所以其参数数量为(n+1)*m。
  • 2.LSTM 模型复杂度

    如图所示LSTM将一共维护4套参数,分别对应输入门、输出门、遗忘门和候选态。所以总的参数数量如下所示:

    Number_of_weight = 4 * Hidden_size * (Input_size + Bias + Output_size)

    其中当不做 project 的时候,Output_size 和 Hidden_size 实际上是一致的。
    其中 Input_size + Output_size 实际上就是 concat[ht−1h_{t-1}ht1, x] 。假设只有一个 hidden unit 那么参数数量为num(ht−1h_{t-1}ht1) + num(x) + num(bias),所以所有的 hidden unit 加起来只需要在前边乘以 hidden_size 就可以。

    但我们还可以整体来理解,LSTM 中的参数我们可以简化为 U ,V 两个矩阵,其分别对输入和输出做映射,U 的维度为 hidden*Input,V 的维度是 hidden*hidden。所以这样分开理解也可以,网络在学习的就是这两个矩阵,所以总的数量为 4(hidden*Input + hidden*hidden + hidden) 这也就是我们常看到的 4(nm+ n2n^2n2 +n),其中 n 为 hidden_size,m 为 input_size。

    3.References

  • https://datascience.stackexchange.com/questions/10615/number-of-parameters-in-an-lstm-model
  • https://stackoverflow.com/questions/38080035/how-to-calculate-the-number-of-parameters-of-an-lstm-network
  • http://wap.sciencenet.cn/blog-578676-1019567.html
  • http://colah.github.io/posts/2015-08-Understanding-LSTMs/
  • 总结

    以上是生活随笔为你收集整理的CNN 与 LSTM 模型复杂度分析的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。