0515學習筆記(cnn)

cnn:卷積神經網絡是深度學習技術中極具代表的網絡結構之一。cnn相較於傳統的算法避免了對圖像複雜的前期預處理過程(提取人工特徵等),可以直接輸入原始圖像。
cnn中具有局部連接和權值共享方法,可以降低權值參數數量級。

卷積層:卷積核在上一級輸入層上通過逐一滑動窗口計算而得,卷積核中的每一個參數都相當於傳統神經網絡中的權值參數,與對應的局部像素相連接,將卷積核的各個參數與對應的局部像素值相乘之和(通常還要加上一個偏置參數),得到卷積層上的結果。

池化層:在池化層中,進行壓縮減少特徵數量的時候一般採用
兩種策略:
max pooling:最大池化,一般採用該方式
average pooling:平均池化

正則化和dropout:
Regularization:正則化,通過降低模型的複雜度,通過1cost函數上添加一個正則項的方式來降低overfitting,主要有L1和L2兩種方式。
L1:取絕對值 L2:取平方
Dropout:通過隨機刪除神經網絡中的神經元來解決overfitting問題,在每次迭代的時候,只使用部分神經元訓練模型獲取w和b的值
正則化通過給cost函數添加正則項的方式來解決過擬合,dropout1通過直接修改神經網絡的結構來解決過擬合。

池化層誤差反向傳播:maxpool池化層反向傳播,除最大值處繼承上層梯度外,其他位置置零。

zero padding:
feature_map尺寸=(width+2*padding_size-filter_size) / stride+1

flatten層&fully connected layer
把數據“拍平”,放到flatten層,然後把flatten層的output放到full connected layer裏,採用softmax對其進行分類。

NLP
cnn在nlp領域的論文
《Convolutional Neural Networks for Sentence Classification》
《Character-level Convolutional Networks for Text Classification》
《Very Deep Convolutional Networdk for Text Classification》
《Quasi-Recurrent Neural Networks》

單詞——卷積提取特徵——池化——全連接(dropout和softmax)
輸入層channel可以有static和non-static
nonstatic即使用的詞向量是否隨訓練發生變化。好處是詞向量可以根據數據集做適當調整,但數據集較小時不推薦,容易產生過擬合。
static就是直接使用word2vec訓練好的詞向量。
卷積層:每個卷積核的大小爲filter_size*embedding_size,filter_size代表卷積核縱向上包含的單詞個數,即認爲相鄰幾個詞之間有詞序關係。embedding_size是詞向量的維數。每個卷積覈計算完成後得到一個列向量,代表該卷積核從句子中提取出來的特徵。有多少和卷積核就能提取出多少種特徵,即縱深方向上channel的數量。
窗口大小就是n-gram,因爲參數共享,所以一個filter只能識別同一類特徵。
池化層:pooling操作就是將卷積得到的列向量的最大值提取出來,這樣pooling後會獲得一個num+filters維的行向量,即將每個卷積核的最大值連接起來。如果之前沒有對句子進行padding,句子長度不同,卷積後的列向量維度也不同,可以通過pooling來消除句子之間長度不同的差異。一般對每個filter向量都是取最大值,特徵跟出現位置無關,只取最強的那個。有多少個filter就決定了池化層的維度。放入softmax的維度必須一樣。
全連接層:將poolign層輸出的向量轉化爲想要的預測結果,加上一個softmax層即可,引入dropout或L2正則化以降低過擬合現象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章