深度學習之影像處理與分析(二)

何以問_發表於2020-12-24

深度學習之影像處理與分析(二)


目錄

  • 反向傳播
  • 卷積神經網路
  • 過度擬合
  • 總結與討論

連鎖規則

  • 神經網路中的每一層都接受上一層功能的輸出,並將其用作其功能的輸入
  • 鏈規則用於計算“函式的梯度”
  • 神經網路由許多張量運算連結在一起組成,例如 h(x)= g(f(x))
  • 在這裡插入圖片描述

反向傳播

  • 反向傳播是一種朝著方向(梯度)更新權重的方法,可以在給定標記觀察值的情況下最小化預定義的損失函式
  • 應用鏈規則計算神經網路的梯度值
  • 從最終損失函式開始,然後從頂層(輸出層)向底層(輸入層)反向執行
  • 通過迭代應用鏈式規則來重用先前從後續層計算的梯度,以更新權重,從而計算任意層的梯度

反向傳播步驟

  • 網路權重初始化
  • 正向傳播
  • 計算總損失
  • 向後傳播

正向傳播

  • 目標是將輸入X轉發到網路的每一層,直到計算輸出層h2中的分類
  • [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-DbNBJFR9-1608799542929)(278963464F05480BB7FF551C9046151C)]

反向傳播示例

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-RGhxSfWR-1608799542931)(0B0F65889F3845F58417575674458385)]

卷積神經網路

  • CNN進行卷積運算,從本地輸入中提取特徵,從而實現表示模組性和資料效率
  • CNN將卷積層和池層連結在一起,以幫助對輸入樣本進行降取樣,並且直到最後一層才使用FC層以獲得最終的輸出分類。
  • 在這裡插入圖片描述

什麼是卷積?

  • 卷積是影像處理中的基本構建塊
  • 卷積是濾鏡和濾鏡覆蓋輸入影像區域之間的逐元素矩陣乘法
  • 卷積層中的神經元僅連線到該層之前的一小部分割槽域,而不是以完全連線的方式連線所有神經元

為什麼要卷積?

  • 卷積後,源畫素將替換為其自身與附近像​​素的加權和。
  • 在這裡插入圖片描述

Filters(過濾器)

  • 過濾器/核心用於應用流程功能來檢測特徵或模式
  • 每個常規層都應用一組不同的過濾器。 在訓練期間,CNN會自動學習這些過濾器的權重,這些權重是隨機初始化的
  • 濾鏡是一個微小的矩陣,可從左到右和從上到下滑動到較大的影像上
  • 大多數過濾器都是平方矩陣,請使用奇數核心大小(3,5,7)來確保影像中心處的有效整數座標

過濾深度

  • 對於CNN的影像輸入,深度是通道數
  • 對於在CNN中更深的體積,深度是在上一層應用的過濾數量
  • 每個過濾器將產生一個單獨的2D特徵圖,當輸入中不同位置的特徵存在時啟用

滑動和步

  • 一個小的矩陣在影像上從左到右和從上到下滑動,並在影像的每個座標上應用卷積
  • 兩個連續的視窗之間的距離稱為步幅
  • 較小的步幅(1或2)將導致重疊的接收場和較大的輸出量
  • 相反,更大的步幅將導致較少的重疊接收場和較小的輸出量

卷積演示

  • 對於每個特徵圖,每個神經元僅連線到輸入體積的一小部分,並共享相同的連線權重(過濾器/核心)
  • [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-BMW6ynjr-1608799542935)(29FAD656D0D84DBEB3C502602502BAAD)]

零填充

  • 有時,我們想保留有關原始輸入量的儘可能多的資訊,以便提取那些低階特徵。
  • 可以通過在邊框周圍填充0的輸入影像/功能圖來抵消邊框效果
  • 有時,我們希望輸出體積與輸入體積保持相同的空間尺寸

步與填充

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-5j8gBADE-1608799542936)(E7B3A686D7694384B3C83D325561836F)]

轉換層輸出

  • 啟用圖(功能圖),可以檢視輸入如何分解為不同的過濾器。 每個通道編碼相對獨立的特徵
  • 沿深度尺寸堆疊特徵圖併產生輸出量
  • CONV層可用於通過更改過濾器的步幅來減小輸入體積的空間尺寸
  • 在這裡插入圖片描述

例項探究

  • 為MNIST設計的LeNet-5體系結構(1998)
  • 在這裡插入圖片描述

圖層型別

  • 全連線層-FC
  • 卷積層-CONV
  • 池層-POOL
  • 降落層-DO

卷積層

  • CONV圖層引數由一組K個可學習的濾鏡組成,其中每個濾鏡具有一個寬度和一個高度,並且始終為正方形
  • 這些過濾器很小,但會擴充套件到整個體積的整個深度
  • 當網路在輸入體積的給定空間位置看到特定型別的特徵時,網路會學習啟用的過濾器

為什麼不在CNN中使用FC?

  • FC層將當前層中的神經元與上一層中的所有神經元相連,從而產生過多的權重,因此無法在較大的空間維度上訓練深層網路
  • 相反,CNN選擇將每個神經元僅連線到上一層的區域性區域, 這稱為神經元的接受域。 這種本地連線可在CNN中儲存大量引數

池層

  • 定期在CNN的連續Conv層之間插入池化層

  • 通過用一個數字表示每個2x2塊,它允許平移不變,可以檢測到該特徵並導致相同的輸出

  • O =(W-k)/ s + 1

  • 在這裡插入圖片描述

  • 引數或權重的數量減少了75%,從而減少了計算成本,並控制了過度擬合

  • 在網路中間進行了最大池化以減小空間大小,並緩慢剝離空間關係以建立平移不變性

  • 平均池通常用作網路的最後一層,以避免完全使用FC層

ReLU函式

  • 整流線性單位(2010):
    • 將負值清零。 廣泛用於CNN
      在這裡插入圖片描述

Sigmoid vs. ReLU

  • Sigmoid 壓扁介於0和1之間的所有值,神經元輸出和梯度會完全消失
  • 由於計算效率高,ReLU訓練速度更快,並緩解了梯度消失的問題
    在這裡插入圖片描述

擬合不足與擬合過度

在這裡插入圖片描述

過度擬合

  • 當訓練與驗證損失之間的差距過大時,就會發生過度擬合
  • 表示網路對訓練資料中的基礎模式進行了過於強大的建模,而對於從未見過的驗證資料而言,效果並不理想。
  • 只要損失之間存在差距 培訓和驗證之間的差距不會顯著增加,過擬合水平是可以接受的

過度擬合的解決方案

  • 新增更多訓練資料
  • 減少模型的容量
  • 下降層

損耗與模型容量

  • 隨著模型容量的增加,訓練和驗證損失/準確性開始彼此不同
    在這裡插入圖片描述

Dropout Layers(輟學層)

  • 丟失層隨機斷開網路中前一層到下一層的輸入

  • 在為當前微型批次計算前進/後退通過之後,為下一個微型批次重新連線斷開的連線
    在這裡插入圖片描述

  • Dropout(2014)通過僅在訓練時顯式更改網路架構來減少過度擬合

  • 隨機丟棄可確保在以給定模式呈現時,網路中沒有任何一個單元負責“啟用”

  • 相反,多個單元 當輸入相似的輸入時將啟用,以訓練模型進行概括

  • 最常見的是在FC層之間放置p = 0.5的輟學層

合成函式

  • CNN可以學習模式的空間層次結構。 這使ConvNets可以有效地學習日益複雜和抽象的視覺概念
  • 每個過濾器將低階特徵的本地補丁組合成高階表示-f(g(h(x))),以瞭解網路中更深層的更多豐富特徵

翻譯不變性

  • 學習完圖片右下角的特定模式後,aConvNet可以在任何地方識別它
  • 它無法識別一個物體相對於另一個物體的位置,只能識別它們是否存在於特定物體中
    在這裡插入圖片描述

相關文章