04.卷积神经网络 W2.深度卷积网络:实例探究
文章目錄
- 1. 為什么要進行實例探究
- 2. 經典網絡
- 3. 殘差網絡 ResNets
- 4. 殘差網絡為什么有用
- 5. 網絡中的網絡 以及 1×1 卷積
- 6. 谷歌 Inception 網絡簡介
- 7. Inception 網絡
- 8. 使用開源的實現方案
- 9. 遷移學習
- 10. 數據增強 Data augmentation
- 11. 計算機視覺現狀
- 作業
參考:
吳恩達視頻課
深度學習筆記
1. 為什么要進行實例探究
學習大佬們的組建網絡的方法,借鑒過來解決自己的問題
經典的網絡模型:
- LeNet-5
- AlexNet
- VGG
ResNet,殘差網絡,它有152層
Inception
2. 經典網絡
3. 殘差網絡 ResNets
非常非常深的神經網絡是很難訓練的,因為存在梯度消失和梯度爆炸問題
- 中間的激活能夠到達網絡的更深層
- 這種方式確實有助于解決梯度消失和梯度爆炸問題,讓我們在訓練更深網絡的同時,又能保證良好的性能
- ResNet 在訓練深度網絡方面非常有效
4. 殘差網絡為什么有用
殘差網絡起作用的主要原因:
- 殘差塊學習恒等函數非常容易,你能確定網絡性能不會受到影響,很多時候甚至可以提高效率,或者說至少不會降低網絡的效率
5. 網絡中的網絡 以及 1×1 卷積
我們知道,可以通過池化層來壓縮輸入的高度和寬度,但是池化層不改變通道數
1×1卷積層 給神經網絡添加了一個非線性函數,從而減少或保持輸入層中的通道數量不變,也可以增加通道數量
6. 谷歌 Inception 網絡簡介
構建卷積層時,你要決定過濾器的大小究竟是1×1,3×3 還是 5×5,要不要添加池化層。
而 Inception網絡 的作用就是代替你來決定,雖然網絡架構變得更加復雜,但網絡表現卻非常好
基本思想是:
- Inception 網絡不需要人為決定使用哪個過濾器或者是否需要池化
- 而是由網絡自行確定這些參數,你可以給網絡添加這些參數的所有可能值,然后把這些輸出連接起來,讓網絡自己學習它需要什么樣的參數,采用哪些過濾器組合
通過使用1×1卷積來構建瓶頸層,從而大大降低計算成本
事實證明,只要合理構建瓶頸層,既可以顯著縮小表示層規模,又不會降低網絡性能,從而節省了計算
7. Inception 網絡
Inception 模塊:
Inception 網絡:Inception 模塊堆疊
8. 使用開源的實現方案
事實證明很多神經網絡復雜細致,因而難以復制,因為一些參數調整的細節問題,例如學習率衰減等等,會影響性能
- 選擇一個你喜歡的神經網絡框架
- 接著尋找一個開源實現,從GitHub下載下來,以此基礎開始構建
這樣做的優點在于,這些網絡通常都需要很長的時間來訓練,而或許有人已經使用多個GPU,通過龐大的數據集預先訓練了這些網絡,你就可以使用這些網絡進行遷移學習
9. 遷移學習
10. 數據增強 Data augmentation
數據擴充是經常使用的一種技巧來提高計算機視覺系統的表現
- 垂直鏡像對稱(常用)
- 隨機裁剪(常用)
- 旋轉,剪切(局部扭曲)(不常用)
- 色彩轉換(給RGB通道按分布加上失真值),使得算法對照片的顏色更改更具魯棒性
常用的實現數據擴充的方法:
- 使用一個線程或者是多線程,用來加載數據,實現變形失真
- 然后傳給其他的線程或者其他進程,來訓練,可以并行實現
數據擴充過程中也有一些超參數,比如,顏色變化,隨機裁剪參數。
可以使用別人的開源實現,了解他們如何實現數據擴充。也可以自己去調整這些參數
11. 計算機視覺現狀
為了提高性能表現:
- 集成:使用多個神經網絡,平均他們的輸出,缺點,更多的時間,占用內存更大
- Multi-crop 數據擴充,也是運行時間多,只有1個神經網絡占用內存
附:
deep-learning-models/resnet50.py 開源實現
Deep Residual Learning for Image Recognition ResNets 論文
作業
Keras教程+ResNets殘差網絡
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的04.卷积神经网络 W2.深度卷积网络:实例探究的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1656. 设计有序流
- 下一篇: LeetCode 1500. Desig