梯度集中(GC):一種新的深度神經網絡優化技術

梯度集中:一種新的深度神經網絡優化技術

題目:

Gradient Centralization: A New Optimization Technique for Deep Neural Networks

Hongwei Yong, Jianqiang Huang, Xiansheng Hua, Lei Zhang

Computer Vision and Pattern Recognition

筆誤:文檔鏈接、代碼鏈接https://arxiv.org/pdf/2004.01461v2.pdf https://github.com/Yonghongwei/Gradient-CentralizationSubmitted on 3 Apr 2020 (v1), last revised 8 Apr 2020 (this version, v2)

文檔鏈接:

https://arxiv.org/pdf/1707.06642v2.pdf

代碼鏈接:

https://github.com/tensorflow/models/tree/master/research/object_detection

摘要

優化技術對於有效、高效地訓練深度神經網絡具有重要意義。研究表明,使用一階和二階統計量(如均值和方差)對網絡激活或權向量進行z分數標準化(如批量標準化(BN)和權向量標準化(WS)),可以提高訓練性能。與現有的基於激活或權值的方法不同,我們提出了一種新的優化技術,即梯度集中(GC),它通過將梯度向量集中到零均值直接作用於梯度上。GC可以看作是一種具有約束損失函數的投影梯度下降法。結果表明,該算法可以同時對權空間和輸出特徵空間進行正則化,從而提高神經網絡的泛化性能。此外,GC改進了損失函數及其梯度的Lipschitzness,使訓練過程變得更加高效和穩定。GC的實現非常簡單,只需一行代碼就可以很容易地嵌入到現有的基於梯度的DNN優化器中。它也可以直接用於調整預先訓練好的DNNs。我們在通用圖像分類、細粒度圖像分類、檢測和分割等各種應用上的實驗表明,GC可以不斷地提高DNN學習的性能。GC的代碼可以在下面的 URL中找到。


英文原文

Optimization techniques are of great importance to effectively and efficiently train a deep neural network (DNN). It has been shown that using the first and second order statistics (e.g., mean and variance) to perform Z-score standardization on network activations or weight vectors, such as batch normalization (BN) and weight standardization (WS), can improve the training performance. Different from these existing methods that mostly operate on activations or weights, we present a new optimization technique, namely gradient centralization (GC), which operates directly on gradients by centralizing the gradient vectors to have zero mean. GC can be viewed as a projected gradient descent method with a constrained loss function. We show that GC can regularize both the weight space and output feature space so that it can boost the generalization performance of DNNs. Moreover, GC improves the Lipschitzness of the loss function and its gradient so that the training process becomes more efficient and stable. GC is very simple to implement and can be easily embedded into existing gradient based DNN optimizers with only one line of code. It can also be directly used to fine-tune the pre-trained DNNs. Our experiments on various applications, including general image classification, fine-grained image classification, detection and segmentation, demonstrate that GC can consistently improve the performance of DNN learning. The code of GC can be found at this https URL.


引言


優化算法簡介


深度學習的廣泛成功在很大程度上歸功於大型數據集[43]、強大的計算資源(如gpu和TPUs)、複雜的網絡架構[15,16]和優化算法[4,24]等方面取得的進展。


帶動量[38]的隨機梯度下降法(SGD)Adagrad[10]和Adam

[24]等有效的優化技術使得用大數據集訓練非常深的神經網絡(DNNs)成為可能。


一個好的DNN優化器有兩個主要目標:加速訓練過程和提高模型泛化能力。第一個目標是花費更少的時間和成本來達到一個良好的局部最小值,而第二個目標是確保所學習的DNN模型能夠對測試數據做出準確的預測。


SGD技術及其改進方法

各種優化算法[38,10,24,10,24]已經被提出來實現這些目標。SGD[4,5]及其擴展動力SGD (SGDM)[38]是最常用的SGD。它們在一個訓練步驟中沿著梯度的相反方向更新參數。現有的DNN優化方法大多基於SGD,並對SGD進行改進,以更好地克服梯度消失或爆炸問題。已有一些成功的技術被提出,如權值初始化策略[11,14]、有效的激活函數(如ReLU[35])、梯度裁剪[36,37]、

自適應學習速率優化算法[10,24]等。


基於樣本/特徵統計量的歸一化處理方法

除上述技術外,樣本/特徵統計量(如均值和方差)也可用於對網絡活動或權值進行歸一化處理,使訓練過程更加穩定。激活操作的代表性方法有批處理規範化(batch normalization,BN)[19]、實例規範化(instance normalization,IN)[47,18]、層規範化(layer normalization,LN)[29]和組規範化(group normalization,GN)[51]。其中BN是應用最廣泛的一種優化技術,它將樣本維數方向上的特徵進行小批量歸一化處理進行訓練。BN平滑了優化景觀[45],當使用合適的批量大小時,可以加快訓練過程,提高模型泛化性能[53,15]。然而,當訓練批量較小時,BN的效果不是很好,這限制了它在對象檢測[13,42]、視頻分類[21,2]等內存消耗任務中的應用


另一類基於統計的方法對權重進行操作。代表性的有

權重歸一化(weight normalization, WN)[44,17]和權重標準化(weight standardization, WS)[39]。這些方法在訓練過程中重新參數化權值以限制權向量。例如,WN將權向量的長度與其方向解耦,以加速DNNs的訓練。WS使用權重向量的均值和方差來標準化它們,使它們具有零均值和單位方差。與BN類似,WS也可以平滑損失場景,加速訓練。然而,這些對權重向量進行操作的方法不能直接採用預先訓練好的模型(例如在ImageNet上),因為它們的權重可能不滿足零均值和單位方差的條件


梯度集中(gradient centralization ,GC) 簡介

與上述對激活或權向量進行操作的技術不同,我們提出了一種非常簡單但有效的DNN優化技術,即梯度集中(GC),它對權向量的梯度進行操作。如圖1(a)所示,GC只是將梯度向量集中到零平均值。它可以很容易地嵌入到當前基於梯度的優化算法(如SGDM [38], Adam[24]),只需一行代碼。儘管簡單,GC演示了各種期望的屬性,比如加速訓練過程提高泛化性能

以及對預先訓練好的模型進行微調的兼容性。

梯度集中(GC):一種新的深度神經網絡優化技術

圖2所示。GC的幾何解釋。

具體的公式推導,有需要的請閱讀作者的原文研究。

梯度集中(GC):一種新的深度神經網絡優化技術


本文的主要貢獻如下:

1.我們提出了一種新的通用網絡優化技術,即梯度集中化(GC),它不僅可以平滑和加速神經網絡的訓練過程,而且可以提高模型的泛化性能。

2.分析了遺傳算法的理論性質,提出了遺傳算法通過引入新的權向量約束來約束損失函數,使權空間和輸出特徵空間正則化,從而提高模型的泛化性能。此外,約束損失函數比原函數具有更好的Lipschitzness,使得訓練過程更加穩定和高效。


數據集


數據集實驗概述


  1. 我們從Mini-ImageNet數據集[48]上的實驗開始,證明GC可以加速DNN訓練過程,提高模型泛化性能。我們也評估了GC與BN和WS的組合,表明
    GC可以改善它們的DNN優化
  2. 然後,我們使用CIFAR100數據集[26]來使用各種DNN優化器(如SGDM、Adam、Adagrad)、各種DNN架構(如ResNet、DenseNet、VGG)和不同的超參數來評估GC
  3. 然後,我們在ImageNet數據集[43]上進行了實驗,以證明GC在大規模圖像分類中也可以很好地工作,並說明GC也可以在BN以外的歸一化方法中很好地工作,比如GN。
  4. 因此,我們對4個細粒度圖像分類數據集(FGVC Aircraft[34]、Stanford Cars[25]、Stanford Dogs[22]和cub200 -2011[50])進行了實驗,表明GC可以直接用於對預先訓練好的DNN模型進行細化和改進
  5. 最後,我們在COCO數據集[31]上進行了實驗,結果表明GC也可以很好地完成其他任務,比如目標檢測和分割


實驗


Mini-ImageNet數據集實驗結果


圖5所示。訓練損失(左)和測試精度(右)曲線與訓練時間的對比。使用ResNet50作為DNN模型。比較的優化技術包括BN、BN+GC、BN+WS和BN+WS+GC。

梯度集中(GC):一種新的深度神經網絡優化技術

我們在這裡評估四種組合:BN、BN+GC、BN+WS和BN+WS+GC。優化器是帶有momentum 0.9的SGDM。圖5為四種組合的訓練損耗和測試精度曲線。與BN相比,BN+GC的訓練損失下降更快,測試精度提高更快。對於BN和BN+WS, GC可以進一步提高它們的訓練速度。此外,我們可以看到BN+GC達到了最高的測試精度,驗證了GC可以在加速訓練的同時提高泛化性能




CIFAR100數據集實驗結果

不同的網絡:我們在不同的DNN架構上驗證GC,包括ResNet18 (R18)、ResNet101 (R101)[15]、ResNeXt29 4x64d (X29)[52]、VGG11 (V11)[46]和DenseNet121 (D121)[16]。

不同的優化器:我們將GC嵌入到不同的DNN優化器中,包括SGDM[38]、Adagrad[10]、Adam[24]、SGDW和AdamW[32],以測試它們的性能。SGDW和AdamW優化器直接將權值衰減應用於權值,而不是使用L2權值衰減正則化。

梯度集中(GC):一種新的深度神經網絡優化技術

不同的超參數設置:為了說明GC可以通過不同的超參數實現一致的改進,我們在CIFAR100數據集上展示了不同的權值衰減設置和學習速率的GC結果。使用ResNet50作為主幹。

梯度集中(GC):一種新的深度神經網絡優化技術




ImageNet數據集實驗結果

我們在此評估四種模型:使用BN的ResNet50 (r500億)、使用GN的ResNet50 (R50GN)、使用BN的ResNet101 (r1010億)和使用GN的ResNet101 (R101GN)。

表5顯示了使用和不使用GC訓練的這四種DNN模型的前1大錯誤。我們可以看到,GC可以將ImageNet上的性能提高0.5% 1.2%。

梯度集中(GC):一種新的深度神經網絡優化技術

圖6為ResNet50的訓練和驗證誤差曲線(以GN為特徵歸一化)。我們可以看到,GC可以很大程度上加快GN的訓練速度。




細粒度圖像分類數據集實驗結果

這四個數據集的詳細統計信息彙總在表6中。原始圖像大小調整為512X512,我們裁剪中心區域,輸入448X448作為訓練和測試的輸入。這些模型是在ImageNet上預先訓練的。我們使用0.9動量的SGDM在4個gpu上對ResNet50進行100個epoch的微調,批量大小為256。最後一層的初始學習速率為0.1,所有預訓練的Conv層的初始學習速率為0.01。在第50和80年代,學習率乘以0.1。

請注意,我們的目標是驗證GC的有效性,但不是推動最新的結果,所以我們只使用簡單的訓練技巧。我們重複實驗10次,並以平均std格式報告結果。

梯度集中(GC):一種新的深度神經網絡優化技術

圖7顯示了4個細粒度圖像分類數據集上SGDM和SGDM+GC前40個epoch的訓練和測試準確性。

表7顯示了最終測試的準確性。

梯度集中(GC):一種新的深度神經網絡優化技術




COCO數據集實驗結果

我們使用MMDetection [6] toolbox作為檢測框架,它包含了對象檢測和分割任務的綜合模型。所有實驗都使用官方的實現和設置。所有訓練前的模型都是由他們的官方網站提供的,我們在COCO train2017上對他們進行了微調,每個GPU有8個GPU和2張圖片。優化器有SGDM和SGDM+GC。骨幹網絡包括ResNet50 (R50)、ResNet101 (R101)、ResNeXt101-32x4d (X101-32x4d)、ResNeXt101-64x4d (X101-32x4d)。特徵金字塔網絡(FPN)[30]也被使用。更快的R-CNN[42]和掩模R-CNN[13]的學習速率調度都是1X,除了GN的R50和GN的R101使用2X的學習速率調度。


表8顯示了更快的R-CNN的平均精度(AP)結果。可以看出,所有經過GC訓練的骨幹網在目標檢測方面的性能提升約0.3% ~ 0.6%。

梯度集中(GC):一種新的深度神經網絡優化技術

表9給出了邊界框(AP ^b)和實例分割(AP^m)的平均精度。


結論

我們對各種應用程序進行了綜合實驗,包括一般圖像分類、細粒度圖像分類、對象檢測和實例分割。結果表明,在不同的應用中,GC可以不斷地提高學習的DNN模型的性能。它是一種簡單、通用、有效的網絡優化方法。


分享到:


相關文章: