關於卷積神經網路CNN問題匯總(3月10更新)
麻煩大家給我點個贊,就是那種讓我看起來,寫的還不錯的樣子!
拜託了!!o(′^`)o
-------------------------------------------------------------------------
問題目錄:
(1)全連接層對模型的影響?
(2)如何使卷積層的輸入和輸出相同?
(3)標準化(Standarlization)會改變特徵分布嗎?
問題匯總簡答(持續更新):
(1)全連接層對模型的影響?
該問題來自;
蔣竺波:CNN 入門講解:什麼是全連接層首先我們明白全連接層的組成如下:
那麼全連接層對模型影響參數就是三個:
- 全接解層的總層數(長度)
- 單個全連接層的神經元數(寬度)
- 激活函數
首先我們要明白激活函數的作用是:
增加模型的非線性表達能力
更詳細了解請去:
蔣竺波:CNN入門講解:什麼是激活函數(Activation Function)如果全連接層寬度不變,增加長度:
優點:神經元個數增加,模型複雜度提升;全連接層數加深,模型非線性表達能力提高。理論上都可以提高模型的學習能力。
如果全連接層長度不變,增加寬度:
優點:神經元個數增加,模型複雜度提升。理論上可以提高模型的學習能力。
難度長度和寬度都是越多越好?
肯定不是
(1)缺點:學習能力太好容易造成過擬合。
(2)缺點:運算時間增加,效率變低。
那麼怎麼判斷模型學習能力如何?
看Training Curve 以及 Validation Curve,在其他條件理想的情況下,如果Training Accuracy 高, Validation Accuracy 低,也就是過擬合 了,可以嘗試去減少層數或者參數。如果Training Accuracy 低,說明模型學的不好,可以嘗試增加參數或者層數。至於是增加長度和寬度,這個又要根據實際情況來考慮了。
PS:很多時候我們設計一個網路模型,不光考慮準確率,也常常得在Accuracy/Efficiency 里尋找一個好的平衡點
(2)如何使卷積層的輸入和輸出相同?
此問題來自:
蔣竺波:深度學習入門講解:什麼是殘差網路Resnet(上)恆等層是如何實現的?
恆等層的意思,就是輸入和輸出一致,整個層對網路結構沒有影響。
有人提出想法:
(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 |