不定期更新,建議關注收藏點贊。
目錄
- 零碎小組件
- 經驗總結
- 早期的CNN
零碎小組件
- 全連接神經網絡
目前已經被替代。
每個神經元都有參與,但由于數據中的特征點變化大,全連接神經網絡把所有數據特征都學習了,故效果不好。 - 感受野:影響CNN特征的輸入圖像的區域
- 感受野并非越大越好。CNN就是獲取局部信息,達到提高特征有效性。
- 實際感受野遠小于理論感受野。因為感受野中的每個元素(像素)對輸出單元的貢獻不相同,實際上符合高斯分布,越邊緣的貢獻越小。
比如,可視化以下算法的感受野
-
- 如何增大感受野?CNN中可以堆疊卷積層,這個結論通過VGG得到,2個33的卷積=1個55的卷積;改變初始權重,使得卷積核中心的權值更小,邊緣的權值更大,但不能改變本質是高斯分布;使用可變形卷積+擴張卷積,改變之前CNN每個單元連接到局部矩形卷積窗口,使用相同數量的連接將每個單元稀疏連接到更大的底層區域。
- 全局特征 v.s. 局部特征 ,低級特征v.s. 高級特征 在DL中都指代什么
- vision transormer理論上比cnn好在哪里?在所有的任務上都好嗎?
經驗總結
- 代碼不一定都要重寫,東西不變故事變也是可以的
- 深度學習中 特色的形狀 不同的樣子很重要,而不是糾結幾個卷積幾個池化,從VGG之后開始轉向這一點
- 要知道之前歷史中的工作成果是哪些,弄清楚figure out
早期的CNN
- LeNet5
輸入(HWC):灰度圖 32321
模型組成:conv+pooling+FC(激活函數)
應用場景:手寫字符的識別與分類
特點:用conv替代MLP(Multilayer Perceptron)極大降低參數量;通過池化進一步降低參數量,max和avg兩種;同時提高了識別率
目前pooling用的比較少,因為丟失信息多
擴展:池化的反向傳播是怎么處理的?
- VGG16
特點:
- 結構非常簡潔,整個網絡都使用了相同大小的卷積核33,和最大池化尺寸22
- 幾個小濾波器33卷積層比一個大濾波器55或77卷積層好。因為2個33的卷積是有多個非線形層的多次整合,肯定比一次單次的好
- 驗證適度加深網絡結構可以提升性能。(不是越深越好,見后面Resnet)
- 耗費大量計算資源,使用更多的參數,占用140M內存,絕大多數參數來自FC
- ResNet
特點:
- 驗證了模型深到一定程度效果不升反降,稱為degradation;但這并不能用過擬合(訓練誤差小、測試誤差大)來解釋,因為這個模型訓練誤差和測試誤差都很大;原因也不是梯度消失->0或爆炸,不會消失是因為模型中加上Batch Normalization BN歸一化層控制每層輸入的模值,不會爆炸是因為容易切割減小;由于非線性激活函數Relu使得輸入到輸出過程是不可逆的存在信息損失,每一層都會改變學習分布,對于通道數少的特征層需要擴張到5~30倍再Relu壓縮才能保持信息。
- 在原有的上進行查漏補缺比重新學簡單,進行跳接shortcut connection,通過跳接在激活函數前,將上幾層之前的輸出與本層計算輸出相加,結果輸入到激活函數中作為本層輸出。