CNN 与 LSTM 模型复杂度分析
文章目錄
- 0.關(guān)于Neural Network 的復(fù)雜度
- 1.CNN 模型復(fù)雜度
- 2.LSTM 模型復(fù)雜度
- 3.References
Author: Cao Shengming
Email: caoshengming@trio.ai
Company: Trio 北京(三角獸)科技有限公司
0.關(guān)于Neural Network 的復(fù)雜度
NN 模型的復(fù)雜度一般可以從兩個方面來刻畫:
時間復(fù)雜度:
時間復(fù)雜度與硬件執(zhí)行息息相關(guān),但是一般表示模型時間復(fù)雜度的方法,可以是某一層、或者產(chǎn)生某個結(jié)果所需要的操作(operation)數(shù)、所需要處理的元素(elements)個數(shù)或者完成某個操作所需要經(jīng)歷的路徑長度(path length)。
空間復(fù)雜度:
空間復(fù)雜度與模型容量是息息相關(guān)的,這里我們可以將空間復(fù)雜度簡單理解為模型的參數(shù)數(shù)量,也就是說 parameters per layer 就可以認(rèn)為是該層的模型復(fù)雜度。
(Note: 下邊如果不做特殊說明,我們將先講述空間復(fù)雜度的狀況。)
1.CNN 模型復(fù)雜度
常見的 CNN 模型一般包含以下集中類型的層,卷積層、池化層和全連接層。假設(shè)卷積核大小為 H*W,input channel 為 I,out channel 為 O。
輸入層和輸出層暫時先不考慮,輸入層沒有參數(shù),而輸出層一般是全連接層,就不做單獨分析。
該層 filter 數(shù)量總數(shù)為 H*W*I,而每個將被映射到64個新的通道,加上每個filter 的計算要有一個 bias,所以總的參數(shù)數(shù)量為(H*W*I+1)*O。
一般的池化層屬于固定操作,沒有權(quán)重系數(shù)。
全連接層也好理解,前后要是 n,m 維的輸入輸出,所以其參數(shù)數(shù)量為(n+1)*m。
2.LSTM 模型復(fù)雜度
如圖所示LSTM將一共維護(hù)4套參數(shù),分別對應(yīng)輸入門、輸出門、遺忘門和候選態(tài)。所以總的參數(shù)數(shù)量如下所示:
Number_of_weight = 4 * Hidden_size * (Input_size + Bias + Output_size)其中當(dāng)不做 project 的時候,Output_size 和 Hidden_size 實際上是一致的。
其中 Input_size + Output_size 實際上就是 concat[ht?1h_{t-1}ht?1?, x] 。假設(shè)只有一個 hidden unit 那么參數(shù)數(shù)量為num(ht?1h_{t-1}ht?1?) + num(x) + num(bias),所以所有的 hidden unit 加起來只需要在前邊乘以 hidden_size 就可以。
但我們還可以整體來理解,LSTM 中的參數(shù)我們可以簡化為 U ,V 兩個矩陣,其分別對輸入和輸出做映射,U 的維度為 hidden*Input,V 的維度是 hidden*hidden。所以這樣分開理解也可以,網(wǎng)絡(luò)在學(xué)習(xí)的就是這兩個矩陣,所以總的數(shù)量為 4(hidden*Input + hidden*hidden + hidden) 這也就是我們常看到的 4(nm+ n2n^2n2 +n),其中 n 為 hidden_size,m 為 input_size。
3.References
總結(jié)
以上是生活随笔為你收集整理的CNN 与 LSTM 模型复杂度分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习中的评价指标--1[F,P,R]
- 下一篇: Paper Reading: Paper