關於卷積神經網路CNN問題匯總(3月10更新)

麻煩大家給我點個贊,就是那種讓我看起來,寫的還不錯的樣子!

拜託了!!o(′^`)o

-------------------------------------------------------------------------

問題目錄:

(1)全連接層對模型的影響?

(2)如何使卷積層的輸入和輸出相同?

(3)標準化(Standarlization)會改變特徵分布嗎?

問題匯總簡答(持續更新):

(1)全連接層對模型的影響?

該問題來自;

蔣竺波:CNN 入門講解:什麼是全連接層?

zhuanlan.zhihu.com圖標

首先我們明白全連接層的組成如下:

二層全連接層結構

那麼全連接層對模型影響參數就是三個:

  1. 全接解層的總層數(長度)
  2. 單個全連接層的神經元數(寬度)
  3. 激活函數

首先我們要明白激活函數的作用是:

增加模型的非線性表達能力

更詳細了解請去:

蔣竺波:CNN入門講解:什麼是激活函數(Activation Function)?

zhuanlan.zhihu.com圖標

如果全連接層寬度不變,增加長度:

優點:神經元個數增加,模型複雜度提升;全連接層數加深,模型非線性表達能力提高。理論上都可以提高模型的學習能力。

如果全連接層長度不變,增加寬度:

優點:神經元個數增加,模型複雜度提升。理論上可以提高模型的學習能力。

難度長度和寬度都是越多越好?

肯定不是

(1)缺點:學習能力太好容易造成過擬合。

(2)缺點:運算時間增加,效率變低。

那麼怎麼判斷模型學習能力如何?

看Training Curve 以及 Validation Curve,在其他條件理想的情況下,如果Training Accuracy 高, Validation Accuracy 低,也就是過擬合 了,可以嘗試去減少層數或者參數。如果Training Accuracy 低,說明模型學的不好,可以嘗試增加參數或者層數。至於是增加長度和寬度,這個又要根據實際情況來考慮了。

PS:很多時候我們設計一個網路模型,不光考慮準確率,也常常得在Accuracy/Efficiency 里尋找一個好的平衡點

(2)如何使卷積層的輸入和輸出相同?

此問題來自:

蔣竺波:深度學習入門講解:什麼是殘差網路Resnet(上)?

zhuanlan.zhihu.com圖標

恆等層是如何實現的?

恆等層的意思,就是輸入和輸出一致,整個層對網路結構沒有影響。

有人提出想法:

(1)恆等層中每個filter 的權值都是1.

(2)恆等層中每個filter 都是單位矩陣,即斜對角都是1.

首先上面的想法都是錯誤的。

應該怎麼理解:

假設卷積層的輸入是個3x3x5的Feature Maps, 首先你要知道卷積是怎麼運算的,

要實現卷積層輸入輸出恆等, 卷積層的filter的要求是5 個, 每個filter 的kernel size 是1x1,,depth是5(這個數必須和feature map 的個數相同) ,也就是這個Filter 的Size 是1x1x5。每個只有自己獨特的1維的weight 是1 ,其他4維都是0.,計算如下圖。這種形式相當每個filter只拿一個fetures map 出來做卷積,(每個fIlter 拿的feature map 各不相同), 然後又完整的把這個feature map 輸出去,當然還有No padding,stride =1 。

恆等層卷積運算過程


推薦閱讀:

TAG:人工智慧 | 卷積神經網路CNN | 深度學習DeepLearning |