Deeping Learning學習與感悟——《深度學習工程師》_4

前言

在如今人工智能大熱的時代,博主在前年暑假自學了網易雲課堂上吳恩達教授講授的《深度學習工程師》微專業課程,如今將具體的學習內容與課堂筆記記錄下來,供小夥伴們一起學習交流,ヽ(✿゚▽゚)ノ~

四、04.卷積神經網絡

在這裏插入圖片描述

1. 卷積運算:

如果把最右邊的矩陣當成圖像,它是這個樣子。在中間有段亮一點的區域,對應檢查到這個 6×6 圖像中間的垂直邊緣。從垂直邊緣檢測中可以得到的啓發是,因爲我們使用 3×3 的矩陣(過濾器),所以垂直邊緣是一個 3×3 的區域,左邊是明亮的像素,中間的並不需要考慮,右邊是深色像素。在這個 6×6圖像的中間部分,明亮的像素在左邊,深色的像素在右邊,就被視爲一個垂直邊緣,卷積運算提供了一個方便的方法來發現圖像中的垂直邊緣。
在這裏插入圖片描述
在這裏插入圖片描述

2. 更多邊緣檢測:

在這裏插入圖片描述

3. Padding:

在這裏插入圖片描述
在這裏插入圖片描述

  • 至於選擇填充多少像素,通常有兩個選擇,分別叫做 Valid 卷積和 Same 卷積Valid卷積意味着不填充,這樣的話,如果你有一個𝑛 × 𝑛的圖像,用一個𝑓 × 𝑓的過濾器卷積,它將會給你一個(𝑛 − 𝑓 + 1)× (𝑛 − 𝑓 + 1)維的輸出。

  • 另一個經常被用到的填充方法叫做 Same 卷積,那意味你填充後,你的輸出大小和輸入大小是一樣的。根據這個公式𝑛 − 𝑓 + 1,當你填充𝑝個像素點,𝑛就變成了𝑛 + 2𝑝,最後公式變爲𝑛 + 2𝑝 − 𝑓 + 1。因此如果你有一個𝑛 × 𝑛的圖像,用𝑝個像素填充邊緣,輸出的大小就是這樣的(𝑛 + 2𝑝 − 𝑓 + 1) × (𝑛 + 2𝑝 − 𝑓 + 1)。如果你想讓𝑛 + 2𝑝 − 𝑓 + 1 = 𝑛的話,使得輸出和輸入大小相等,如果你用這個等式求解𝑝,那麼𝑝 = (𝑓 − 1)/2。

4. Stride:

在這裏插入圖片描述

總結一下維度情況,如果你有一個𝑛 × 𝑛的矩陣或者𝑛 × 𝑛的圖像,與一個𝑓 × 𝑓的矩陣卷積,或者說𝑓 × 𝑓的過濾器。Padding 是𝑝,步幅爲𝑠輸出尺寸就是這樣:
在這裏插入圖片描述

5. 三維卷積:

在這裏插入圖片描述
在這裏插入圖片描述
總結一下維度,如果你有一個𝑛 × 𝑛 × 𝑛𝑐(通道數)的輸入圖像,在這個例子中就是 6×6×3,這裏的𝑛𝑐就是通道數目,然後卷積上一個f×f× 𝑛𝑐,這個例子中是 3×3×3,按照慣例,這個(前一個𝑛𝑐)和這個(後一個𝑛𝑐)必須數值相同。然後你就得到了(𝑛 − 𝑓 + 1)× (𝑛 − 𝑓 + 1)× 𝑛𝑐′,這裏𝑛𝑐′其實就是下一層的通道數,它就是你用的過濾器的個數。

6.池化層:

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
總結一下,池化的超級參數包括過濾器大小𝑓和步幅𝑠
常用的參數值爲𝑓 = 2, 𝑠 = 2,應用頻率非常高,其效果相當於高度和寬度縮減一半。最大池化時,往往很少用到超參數 padding,當然也有例外的情況,我們下週會講。大部分情況下,最大池化很少用 padding。目前𝑝最常用的值是 0,即𝑝 = 0。需要注意的一點是,池化過程中沒有需要學習的參數。

7. 卷積神經網絡示例

在這裏插入圖片描述

需要注意的是,人們在計算神經網絡有多少層時,通常只統計具有權重和參數的層。因爲池化層沒有權重和參數,只有一些超參數。這裏,我們把 CONV1 和 POOL1 共同作爲一個卷積,並標記爲 Layer1。
在這裏插入圖片描述
有幾點要注意:

  1. 第一,池化層和最大池化層沒有參數;
  2. 第二,卷積層的參數相對較少,其實許多參數都存在於神經網絡的全連接層。
  3. 第三,觀察可發現,隨着神經網絡的加深,激活值尺寸會逐漸變小,如果激活值尺寸下降太快,也會影響神經網絡性能。
  4. 除此之外,還有一點需要注意:
    人們在計算神經網絡有多少層時,通常只統計具有權重和參數的層。因爲池化層沒有權重和參數,只有一些超參數。這裏,我們把 CONV1和POOL1共同作爲一個卷積,並標記爲Layer1。

8. 爲什麼使用卷積

在這裏插入圖片描述
在這裏插入圖片描述

  • 最後,我們把這些層整合起來,看看如何訓練這些網絡。

比如我們要構建一個貓咪檢測器,我們有下面這個標記訓練集,𝑥表示一張圖片,𝑦是二進制標記或某個重要標記。我們選定了一個卷積神經網絡,輸入圖片,增加捲積層和池化層,然後添加全連接層,最後輸出一個softmax,即𝑦。卷積層和全連接層有不同的參數𝑤和偏差𝑏,我們可以用任何參數集合來定義代價函數。一個類似於我們之前講過的那種代價函數,並隨機初始化其參數𝑤和𝑏,代價函數 𝐽 等於神經網絡對整個訓練集的預測的損失總和再除以 𝑚 (即 Cost 𝐽 =在這裏插入圖片描述 )。所以訓練神經網絡,你要做的就是使用梯度下降法,或其它算法,例如 Momentum 梯度下降法,含 RMSProp 或其它因子的梯度下降來優化神經網絡中所有參數,以減少代價函數𝐽的值。通過上述操作你可以構建一個高效的貓咪檢測器或其它檢測器。

結語:

第四周的《卷積神經網絡》,主要的收穫是瞭解了卷積的基本概念,以及padding、stride、池化層等等相關概念……
通過這一週的學習開始對卷積神經網絡有了一個比較清晰的認識和了解,同時也初步掌握了卷積神經網絡相關的概念和卷積神經網絡的計算方式!
,期待下一週的學習,衝鴨!!!

注:附上課程鏈接:深度學習工程師:吳恩達給你的人工智能第一課
對人工智能,深度學習等感興趣的小夥伴可以去聽一聽,網易雲課堂完全免費的微專業,學習週期大概爲5周,內容質量超級棒,強烈推薦!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章