首頁>Club>
卷積神經網路(Convolutional Neural Network, CNN)是一種前饋神經網路,它的人工神經元可以響應一部分覆蓋範圍內的周圍單元,對於大型影象處理有出色表現。
12
回覆列表
  • 1 # AI深度學習求索

    卷積神經網路主要特點:

    區域性感知

    網路部分連通的思想,也是受啟發於生物學裡面的視覺系統結構。視覺皮層的神經元就是區域性接受資訊的。

    引數共享

    區域性感知引數仍然過多,那麼就啟動權值共享,卷積核引數共享。這其中隱含的原理則是:影象的一部分的統計特性與其他部分是一樣的。這也意味著我們在這一部分學習的特徵也能用在另一部分上,所以對於這個影象上的所有位置,我們都能使用同樣的學習特徵。

    多卷積核

    一個卷積核學習一種特徵,顯然,一個卷積核特徵提取是不充分的,我們可以新增多個卷積核,比如32個卷積核,可以學習32種特徵。

    池化操作

    下采樣的方式,有平均值池化和最大值池化,減小特徵尺寸,減小複雜度。

    詳細的還是去檢視文章吧。

  • 2 # 機器之心Pro

    除了帶你動手學深度學習,李沐大神還帶你深挖卷積神經網路的各種實踐「技藝」。近日AWS的研究者研究了一系列訓練過程和模型架構的改進方法,他們在多個神經網路架構和資料集上評估它們,並研究它們對最終模型準確率的影響。

    自 2012 年 AlexNet 大展神威以來,研究者已經提出了各種卷積架構,包括 VGG、NiN、Inception、ResNet、DenseNet 和 NASNet 等,我們會發現模型的準確率正穩定提升。

    但是現在這些提升並不僅僅來源於架構的修正,還來源於訓練過程的改進:包括損失函式的最佳化、資料預處理方法的提煉和最最佳化方法的提升等。在過去幾年中,卷積網路與影象分割出現大量的改進,但大多數在文獻中只作為實現細節而簡要提及,而其它還有一些技巧甚至只能在原始碼中找到。

    在這篇論文中,李沐等研究者研究了一系列訓練過程和模型架構的改進方法。這些方法都能提升模型的準確率,且幾乎不增加任何計算複雜度。它們大多數都是次要的「技巧」,例如修正卷積步幅大小或調整學習率策略等。總的來說,採用這些技巧會產生很大的不同。因此研究者希望在多個神經網路架構和資料集上評估它們,並研究它們對最終模型準確率的影響。

    研究者的實驗表明,一些技巧可以顯著提升準確率,且將它們組合在一起能進一步提升模型的準確率。研究者還對比了基線 ResNet 、加了各種技巧的 ResNet、以及其它相關的神經網路,下表 1 展示了所有的準確率對比。這些技巧將 ResNet50 的 Top-1 驗證準確率從 75.3%提高到 79.29%,還優於其他更新和改進的網路架構。此外,研究者還表示這些技巧很多都可以遷移到其它領域和資料集,例如目標檢測和語義分割等。

    論文:Bag of Tricks for Image Classification with Convolutional Neural Networks

    論文地址:https://arxiv.org/pdf/1812.01187.pdf

    摘要:影象分類研究近期的多數進展都可以歸功於訓練過程的調整,例如資料增強和最佳化方法的變化。然而,在這些文獻中,大多數微調方法要麼被簡單地作為實現細節,或僅能在原始碼中看到。在本文中,我們將測試一系列的微調方法,並透過控制變數實驗評估它們對最終準確率的影響。我們將展示透過組合不同的微調方法,我們可以顯著地改善多種 CNN 模型。例如,我們將 ImageNet 上訓練的 ResNet-50 的 top-1 驗證準確率從 75.3% 提升到 79.29。本研究還表明,影象分類準確率的提高可以在其他應用領域(如目標檢測和語義分割)中實現更好的遷移學習效能。

    2 訓練過程

    目前我們基本上都用小批次 SGD 或其變體訓練神經網路,Algorithm 1 展示了 SGD 的模版過程(感興趣的讀者可以查閱原論文)。利用廣泛使用的 ResNet 實現作為我們的基線,訓練過程主要分為以下六個步驟:

    隨機取樣一張圖片,並解碼為 32 位的原始畫素浮點值,每一個畫素值的取值範圍為 [0, 255]。

    隨機以 [3/4, 4/3] 為長寬比、[8%, 100%] 為比例裁減矩形區域,然後再縮放為 224*224 的方圖。

    以 0.5 的機率隨機水平翻轉影象。

    從均勻分佈 [0.6, 1.4] 中抽取係數,並用於縮放色調和明亮度等。

    從正態分佈 N (0, 0.1) 中取樣一個係數,以新增 PCA 噪聲。

    影象分別透過減去(123.68, 116.779, 103.939),併除以(58.393, 57.12, 57.375)而獲得經歸一化的 RGB 三通道。

    經過六步後就可以訓練並驗證了,以下展示了基線模型的準確率:

    表 2:文獻中實現的驗證準確率與我們基線模型的驗證準確率,注意 Inception V3 的輸入影象大小是 299*299。

    3 高效訓練

    隨著 GPU 等硬體的流行,很多與效能相關的權衡取捨或最優選擇都已經發生了改變。在這一章節中,我們研究了能利用低精度和大批次訓練優勢的多種技術,它們都不會損害模型的準確率,甚至有一些技術還能同時提升準確率與訓練速度。

    3.1 大批次訓練

    對於凸最佳化問題,隨著批次的增加,收斂速度會降低。人們已經知道神經網路會有類似的實證結果 [25]。換句話說,對於相同數量的 epoch,大批次訓練的模型與使用較小批次訓練的模型相比,驗證準確率會降低。因此有很多方法與技巧都旨在解決這個問題:

    線性擴充套件學習率:較大的批次會減少梯度的噪聲,從而可以增加學習率來加快收斂。

    學習率預熱:在預熱這一啟發式方法中,我們在最初使用較小的學習率,然後在訓練過程變得穩定時換回初始學習率。

    Zero γ:注意 ResNet 塊的最後一層可以是批歸一化層(BN)。在 zero γ啟發式方法中,我們對所有殘差塊末端的 BN 層初始化γ=0。因此,所有的殘差塊僅返回輸入值,這相當於網路擁有更少的層,在初始階段更容易訓練。

    無偏衰減:無偏衰減啟發式方法僅應用權重衰減到卷積層和全連線層的權重,其它如 BN 中的γ和β都不進行衰減。

    表 4:ResNet-50 上每種有效訓練啟發式的準確率效果。

    3.2 低精度訓練

    然而,新硬體可能具有增強的算術邏輯單元以用於較低精度的資料型別。儘管具備效能優勢,但是精度降低具有較窄的取值範圍,因此有可能出現超出範圍而擾亂訓練進度的情況。

    表 3:ResNet-50 在基線(BS = 256 與 FP32)和更高效硬體設定(BS = 1024 與 FP16)之間的訓練時間和驗證準確率的比較。

    4 模型變體

    我們將簡要介紹 ResNet 架構,特別是與模型變體調整相關的模組。ResNet 網路由一個輸入主幹、四個後續階段和一個最終輸出層組成,如圖 1 所示。輸入主幹有一個 7×7 卷積,輸出通道有 64 個,步幅為 2,接著是 3 ×3 最大池化層,步幅為 2。輸入主幹(input stem)將輸入寬度和高度減小 4 倍,並將其通道尺寸增加到 64。

    從階段 2 開始,每個階段從下采樣塊開始,然後是幾個殘差塊。在下采樣塊中,存在路徑 A 和路徑 B。路徑 A 具有三個卷積,其卷積核大小分別為 1×1、3×3 和 1×1。第一個卷積的步幅為 2,以將輸入長度和寬度減半,最後一個卷積的輸出通道比前兩個大 4 倍,稱為瓶頸結構。路徑 B 使用步長為 2 的 1×1 卷積將輸入形狀變換為路徑 A 的輸出形狀,因此我們可以對兩個路徑的輸出求和以獲得下采樣塊的輸出。殘差塊類似於下采樣塊,除了僅使用步幅為 1 的卷積。

    我們可以改變每個階段中殘差塊的數量以獲得不同的 ResNet 模型,例如 ResNet-50 和 ResNet-152,其中的數字表示網路中卷積層的數量。

    圖 1:ResNet-50 的架構。圖中說明了卷積層的卷積核大小、輸出通道大小和步幅大小(預設值為 1),池化層也類似。

    圖 2:三個 ResNet 變體。ResNet-B 修改 ResNet 的下采樣模組。ResNet-C 進一步修改輸入主幹。在此基礎上,ResNet-D 再次修改了下采樣塊。

    表 5:將 ResNet-50 與三種模型變體進行模型大小(引數數量)、FLOPs 和 ImageNet 驗證準確率(top-1、top-5)的比較。

    5 訓練方法改進

    5.1 餘弦學習率衰減

    Loshchilov 等人 [18] 提出餘弦退火策略,其簡化版本是按照餘弦函式將學習速率從初始值降低到 0。假設批次總數為 T(忽略預熱階段),然後在批次 t,學習率η_t 計算如下:

    其中η是初始學習率,我們將此方案稱為「餘弦」衰減。

    圖 3:視覺化帶有預熱方案的學習率變化。頂部:批次大小為 1024 的餘弦衰減和按迭代步衰減方案。底部:關於兩個方案的 top-1 驗證準確率曲線。

    5.2 標籤平滑

    標籤平滑的想法首先被提出用於訓練 Inception-v2 [26]。它將真實機率的構造改成:

    其中ε是一個小常數,K 是標籤總數量。

    圖 4:ImageNet 上標籤平滑效果的視覺化。頂部:當增加ε時,目標類別與其它類別之間的理論差距減小。下圖:最大預測與其它類別平均值之間差距的經驗分佈。很明顯,透過標籤平滑,分佈中心處於理論值並具有較少的極端值。

    5.3 知識蒸餾

    在知識蒸餾 [10] 中,我們使用教師模型來幫助訓練當前模型(被稱為學生模型)。教師模型通常是具有更高準確率的預訓練模型,因此透過模仿,學生模型能夠在保持模型複雜性相同的同時提高其自身的準確率。一個例子是使用 ResNet-152 作為教師模型來幫助訓練 ResNet-50。

    5.4 混合訓練

    在混合訓練(mixup)中,每次我們隨機抽樣兩個樣本 (x_i,y_i) 和 (x_j,y_j)。然後我們透過這兩個樣本的加權線性插值構建一個新的樣本:

    其中 λ∈[0,1] 是從 Beta(α, α) 分佈提取的隨機數。在混合訓練中,我們只使用新的樣本 (x hat, y hat)。

    5.5 實驗結果

    表 6:透過堆疊訓練改進方法,得到的 ImageNet 驗證準確率。基線模型為第 3 節所描述的。

    6 遷移學習

    6.1 目標檢測

    表 8:在 Pascal VOC 上評估各種預訓練基礎網路的 Faster-RCNN 效能。

    6.2 語義分割

    表 9:在 ADE20K 上評估各種基礎網路的 FCN 效能。

  • 中秋節和大豐收的關聯?
  • 月季花不長花苞是怎麼回事?