1. 程式人生 > 實用技巧 >【483】1D CNN原理詳細說明

【483】1D CNN原理詳細說明

  關於一維卷積神經網路的具體實現過程全網說的比較隱晦,貌似預設大家都懂,但是之前一直沒看懂,按照自己的理解畫出下圖。

  • filter做點積再求和,每次只生成 1個數字
  • 整個資料走一遍,生成一個向量
  • 每一個filter生成一個向量
  • 組合在一起就是一個新的二維向量

  對於 keras實現 1DCNN 的說明

  語法:

keras.layers.convolutional.Conv1D(filters, kernel_size, strides=1, padding='valid', dilation_rate=1, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)

  說明:

  • filters:卷積核的數目(即輸出的維度),有幾個filter,最終就是幾個維度(影響單詞向量維度

  • kernel_size:整數或由單個整數構成的list/tuple,卷積核的空域或時域窗長度(影響文字長度的維度

  • strides:整數或由單個整數構成的list/tuple,為卷積的步長。任何不為1的strides均與任何不為1的dilation_rate均不相容

  • padding:補0策略,為“valid”, “same” 或“causal”,“causal”將產生因果(膨脹的)卷積,即output[t]不依賴於input[t+1:]。當對不能違反時間順序的時序訊號建模時有用。參考

    WaveNet: A Generative Model for Raw Audio, section 2.1.。“valid”代表只進行有效的卷積,即對邊界資料不處理。“same”代表保留邊界處的卷積結果,通常會導致輸出shape與輸入shape相同。

  • activation:啟用函式,為預定義的啟用函式名(參考啟用函式),或逐元素(element-wise)的Theano函式。如果不指定該引數,將不會使用任何啟用函式(即使用線性啟用函式:a(x)=x)