日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

吴恩达深度学习笔记11-Course4-Week2【深度卷积网络:实例探究】

發布時間:2025/3/12 pytorch 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 吴恩达深度学习笔记11-Course4-Week2【深度卷积网络:实例探究】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

深度卷積網絡:實例探究


實例探究(Case studies)

為什么要進行實例探究(Why look at case studies?)
從中獲得靈感,借鑒一些效果很好的網絡來完成自己的任務。


一、經典網絡(Classic Networks)

1、LeNet-5

Input >> Conv >> Pool >> Conv >> Pool >> FC >> FC >> FC(softmax)
輸入是單通道圖片。隨著網絡加深,圖像的大小在縮小,但通道的數量在增加。大約有60K的參數。

node: 該網絡使用的是 average pool 和sigmoid,是因為提出的時間較早。現在基本上是用 max pool 和 ReLU。

2、AlexNet
論文作者提出的原網絡有另一種類型的層(LRN),類似歸一化的操作,后來被證明并沒有太大的作用,所以就不用了。

比LeNet-5的參數更多,效果也更好。

3、VGG-16
該網絡所用的卷積和最大池化層操作都是一樣的。網絡更深,參數也更多,且圖像尺寸縮小和信道數增加是有規律的。


二、殘差網絡(ResNets)

殘差塊:
增加了一個從a[l]直接到z[l+2]的連接,稱為“short cut”或“skip connection”。

殘差網絡和普通網絡對比:
隨著網絡的加深,可能出現梯度消失和梯度爆炸的問題。所以在沒有殘差塊的普通神經網絡中,訓練的誤差實際上是隨著網絡層數的加深,先減小再增加。但在有殘差的ResNet中,即使網絡再深,訓練誤差也是隨著網絡層數的加深逐漸減小。

殘差網絡的理解:

在普通CNN后加一個殘差塊。如果這兩層沒有學到東西,增加了殘差塊后性能也并不遜色于沒有增加殘差塊簡單的網絡,因為對于殘差塊來學習a[l+2]= g(a[l]) = relu(a[l]) = a[l] 這個恒等函數是很容易的。如果增加的網絡結構能夠學習到一些有用的信息,那么就會提升網絡的性能。

因為a[l+2]=g(z[l+2]+a[l]),所以z[l+2]和a[l]的維度要一樣。因此ResNet在設計中使用了很多相同的卷積。如果在池化層上或者維度不匹配可以添加系數矩陣來修正。


三、1x1卷積核(1x1 Convolutions)

1x1卷積核:

  • 在二維上,進行1x1的卷積就是把圖片的每個元素和一個這個1x1卷積核數字相乘。
  • 在三維上,與1×1×nC卷積核進行卷積,相當于三維圖像上的1×1×nC的切片,也就是nC個點乘以卷積數值權重,通過Relu函數后,輸出對應的結果。其實可以看作是對一個nC切片和一個神經元的全連接神經網絡。而不同的卷積核則相當于不同的隱層神經元。

    作用:
    在不改變圖像尺寸的同時改變通道數。

四、Inception 網絡(Inception Network)

Inception 網絡的作用(Motivation for inception network):

  • 使用Inception Network 我們無需去考慮在構建深度卷積神經網絡時,到底該用多大的卷積核及是否添加池化層。在每一個Inception block中包含了1x1、3x3、5x5的卷積核和 same padding的MAX-POOL,讓模型自己學習需要用哪個。

計算成本:

  • 下面是不加和加1x1卷積層的計算成本(只所需乘法運算的次數,因為加法計算成本比較低)。可以看出加了1x1卷積層可以很大程度的減小計算成本,而且如果選擇得當的話,對模型的效果不會產生很大的影響。

完整的Inception 模塊:

Inception Network:

  • 重復Inception 模塊,中間適當添加的pool層,構成了Inception Network,也稱為GoogLeNet。其中有多個softmax層,用來檢查是不是過擬合了。
  • Inception 名稱即盜夢空間的電影名,意為 we need to go deeper 即我們希望搭建更深的網絡。

使用CNN的實用建議(Practical advices for using ConvNets)


五、使用開源的實現方案(Using Open-Source Implementation)

當在論文中發現感興趣的模型,與其從零開始搭建,不如看看其有沒有開源的實現。如果有可以從網上下載,然后進行修改和應用。

最出名的開源社區:GitHub


六、遷移學習(Transfer Learning)

開發應用的時候,我們通常只有少量的數據集,對于從頭開始訓練一個深層網絡結構是遠遠不夠的。但是我們可以應用遷移學習,應用其他研究者建立的模型和預訓練的權重,來初始化我們的模型。可以根據我們擁有的數據量大小來決定要凍結(freeze)多少層,即在我們的模型中不再訓練這幾層的權重。然后用我們的數據只訓練最后的某幾層,也可以修改最后這幾層的網絡結構。

  • 小數據集:除了softmax層其它層全部凍結。把softmax層修改成自己想要的。
  • 中數據集:根據情況不凍結后面的幾層,可以根據需要修改這幾層的網絡結構。
  • 大數據集:把預訓練的權重當做初始化權重,訓練所有權重。

    加速訓練的方法:把凍結的那幾層看成一個固定函數,讓我們的數據集先計算這個固定函數的結果,然后存起來。訓練時直接用這個結果作為我們需要訓練的哪幾層網絡的輸入,然后進行訓練,避免重復計算固定函數的結果。

七、數據擴充(Data Augmentation)

目前而言對于計算機視覺,數據量總是不夠的,所以可以用數據擴充的方法來增加我們的數據量。

常用的幾種圖像的變換:

可以通過修改圖像的顏色來增加數據。常用的方法:PCA(主成分分析)。

可以利用CPU/GPU的多線程或多核,使圖像加載、變換和訓練同時進行。


八、計算機視覺的現狀(State of Computer Vision)

現狀:
數據量不夠,需要手工工程。

  • 大量數據的時候,簡單的算法和更少的手工工程。
  • 少量數據的時候,更多的是手工工程。因為數據量太少,較大的網絡結構或者模型很難從這些少量的數據中獲取足夠的特征。

在比賽中或在一個開源的數據集上取得更好效果的減小技巧
很難在實際的應用中使用,因為需要更多的計算成本。
Ensembling:獨立訓練多個網絡模型,平均結果作為輸出。
Multi-crop at test time:對測試圖片的進行多種變換,然后在分類器中運行,輸出平均結果。

建議:


總結

以上是生活随笔為你收集整理的吴恩达深度学习笔记11-Course4-Week2【深度卷积网络:实例探究】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。