CNN 与 LSTM 模型复杂度分析

本文深入探讨了神经网络的时间与空间复杂度,详细分析了CNN和LSTM模型的参数数量,为理解深度学习模型的计算需求提供了清晰视角。
摘要由优快云通过智能技术生成


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。

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

  1. Convolutional Layer:
    该层 filter 数量总数为 H*W*I,而每个将被映射到64个新的通道,加上每个filter 的计算要有一个 bias,所以总的参数数量为(H*W*I+1)*O。
  2. Pooling Layer:
    一般的池化层属于固定操作,没有权重系数。
  3. 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[ h t − 1 h_{t-1} ht1, x] 。假设只有一个 hidden unit 那么参数数量为num( h t − 1 h_{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+ n 2 n^2 n2 +n),其中 n 为 hidden_size,m 为 input_size。

3.References

  1. https://datascience.stackexchange.com/questions/10615/number-of-parameters-in-an-lstm-model
  2. https://stackoverflow.com/questions/38080035/how-to-calculate-the-number-of-parameters-of-an-lstm-network
  3. http://wap.sciencenet.cn/blog-578676-1019567.html
  4. http://colah.github.io/posts/2015-08-Understanding-LSTMs/
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值