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