ICLR 2020 | 模型引數這麼多,泛化能力為什麼還能這麼強?

AIBigbull2050發表於2020-01-13
2020-01-10 10:44:34
ICLR 2020 | 模型引數這麼多,泛化能力為什麼還能這麼強?

作者 | 劉錦龍

編輯 | Camel

劉錦龍,2015年博士畢業於北京大學理論物理專業,現任快手科技 Y-Tech AI實驗室深度學習研究員。負責人臉landmark、人臉生成等技術開發。

本文介紹我最近的一個工作,《Understanding Why Neural Networks Generalize Well Through GSNR ofParameters》,該文已入選 ICLR2020 spotlight representation.

1

深度學習的泛化能力問題

深度學習在諸多領域取得了巨大的成功,但是深度學習背後的基礎理論確相對有些滯後。其中一個重要的問題就是深度學習模型的泛化問題。在這個工作中,我們提出了一個全新的角度來理解這個問題。

按照經典的機器學習泛化理論,模型引數量越大,模型的擬合能力越強,但是泛化也會更差。但是深度學習中並沒有觀察到這種trade-off的現象,通常深度學習的模型有著巨大的引數量, 通常比訓練資料要多得多,按照經典泛化理論,這樣的模型應該泛化會很差。實踐中,在真實資料上訓練的深度學習模型通常具有很好泛化效能,增大模型的引數量,並不會使得泛化變差。這個現象無法被經典的機器學習泛化理論解釋。

2

GSNR越大,泛化效能越好

在本文中,我們認為深度學習的泛化能力和我們用來訓練它的梯度下降這種最佳化方法是密切相關的。

首先,我們提出了一個刻畫梯度下降法訓練過程中泛化效能的一個量,稱之為one-step generalization ratio(OSGR)

ICLR 2020 | 模型引數這麼多,泛化能力為什麼還能這麼強?

這個量反應了在一步迭代裡面,測試集的loss下降\Delta L[D’]和訓練集的loss下降\Delta L[D]的期望值的比值。我們假設訓練集D和測試集D’大小都為n,服從同一個分佈Z^n。通常統計上來說,測試集的loss下降速度小於訓練集的loss下降速度,OSGR對應的應該小於1,最終整個訓練結束時,測試集的loss的整體下降會小於訓練集loss的整體下降,產生了generalization gap。如果整個訓練過程中,OSGR始終很大(接近於1),那麼最終的generalizationgap就會很小,相應的,模型的最終泛化效能也會很好。所以OSGR是一個很好的可以刻畫梯度下降法過程中模型泛化效能的量。

其次,我們定義了一個我們稱之為引數的梯度訊雜比(Gradient signal to noise ratio(GSNR))的量。它反映的是在梯度下降的過程中梯度的均值與梯度的方差之間的比值,注意這個均值和方差指的是梯度在所有樣本逐個分別計算每個引數的梯度,最後對每個引數分別計算sample-wize的均值和方差。例如對引數\theta_j,它的梯度訊雜比定義為

ICLR 2020 | 模型引數這麼多,泛化能力為什麼還能這麼強?

上面的的\tilde g 和\rho分別代表在所有sample上計算的梯度均值和梯度方差。定性的來說,GSNR反應了loss函式對於不同樣本的梯度的一致性。如果所有樣本的梯度完全一致且不為0,這樣的話梯度均值不為0而方差為0,相應的GSNR為無窮大。

對於一般的梯度下降法,我們都是直接對所有的sample求均值,並用這個均值作為引數迭代方向。本文首次提出,除了梯度的均值,所有樣本的梯度的分佈與網路最終的泛化效能有密切的聯絡。

我們做了兩個假設:1.學習率足夠小。 2.訓練集的平均梯度和測試集的平均梯度服從同一個分佈(這個地方的分佈指的是我們的訓練集和測試集都服從同一個分佈Z^n)。透過這兩個假設,我們可以推導得到OSGR和GSNR之間存在一個關係

ICLR 2020 | 模型引數這麼多,泛化能力為什麼還能這麼強?

這個關係表明,訓練過程中GSNR越大,則OSGR越接近於1,最終模型的泛化效能越好。或者說,梯度下降法訓練過程中不同的訓練樣本的梯度越趨於一致,最終模型的泛化效能越好。具體的推導過程大家可以參考文章。

值得注意的是我們用到的假設2通常只在訓練初期成立,在訓練後期,因為過擬合的發生,訓練集和測試集的平均梯度不再符合同一個分佈。但是由此推導得到的19式或22式(見paper),我們可以在實際的訓練過程中來驗證他們。

ICLR 2020 | 模型引數這麼多,泛化能力為什麼還能這麼強?

上圖是在mnist上的試驗。可以看出,在訓練初期,試驗資料可以很好的和19式相吻合。但是,隨著訓練的進行,19式的左邊和右邊不再相等,這正是因為我們推導用到的假設2不再成立。儘管如此,19式的左邊和右邊依然有著很強的正相關,只要這個正相關成立,那麼我們的結論(GSNR越大,OSGR越大,最終泛化越好)依然成立。在Cifar和一個toy model上的試驗也有同樣的結論。

3

深度學習模型訓練過程中GSNR會在初期有一個上升過程以及背後的原因

到目前為止,我們透過分析和實驗得到了一個結論:在梯度下降法訓練過程中,GSNR越大,OSGR越大,最終泛化越好。但是這個和深度學習還沒有關係,這個結論適用於任何梯度下降法訓練的模型。

在paper的後面的章節中,我們發現了一個現象:對於淺層的模型,例如線性迴歸,GSNR在訓練的過程中會一直下降。其原因是因為模型收斂的過程中,GSNR的分子,梯度的均值越來越小。但是對於深度學習,我們總能在訓練初期觀察到一個GSNR迅速上升的過程,在上升之後,深度學習模型的GSNR才會隨著收斂緩慢下降。這個現象使得深度學習模型在梯度下降法的訓練過程中,GSNR始終維持在一個較大的水平。根據我們前面的結論,GSNR越大,最終模型的泛化效能越好。這就解釋了,為什麼深度學習,儘管它的模型引數量很大,但是依然具有很好的泛化效能。

ICLR 2020 | 模型引數這麼多,泛化能力為什麼還能這麼強?

後面,我們進一步分析了,深度學習模型的GSNR會在訓練初期快速上升的行為和它的特徵學習能力是密切相關的。我們分別用實驗和解析的方法來論證了這一點。

實驗上,我們透過一個兩層MLP模型,分別凍結和開啟它的第一層引數,訓練這個模型。顯然,在凍結第一層引數的情況下,模型等價於線性迴歸。在這兩種情況下,我們分別統計模型第二層的平均GSNR,發現在凍結的情況下,GSNR始終在下降,而在開啟的情況下,GSNR會有一個明顯的上升過程。

ICLR 2020 | 模型引數這麼多,泛化能力為什麼還能這麼強?

我們分析認為,在開啟的情況下,模型第一層的引數能夠學習到較好的特徵,而模型第二層的和這些特徵相乘的權重的梯度在不同的sample上會具有更好的一致性。即大部分sample都同時傾向於使這個權重增大或者減小,對應的此權重的GSNR也會較大。

解析的分析上,我們在全連線網路的情況下,透過推導闡述了一個有趣的機制,這個機制使得在模型訓練的初期,模型大部分引數的平均梯度(GSNR的分子)會傾向於增大。具體大家可以參見文章。

4 總結

1. 我們在若干假設下證明了,對於梯度下降法,訓練過程中GSNR越大,最終模型的泛化效能越好。

2. 對於深度學習模型,訓練初期會存在一個GSNR快速上升的現象,這個現象使得深度學習具有很好的泛化效能。它和深度學習模型的特徵學習能力密切相關,我們透過實驗和解析分析論證了這一點。

文章的地址:






來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2672993/,如需轉載,請註明出處,否則將追究法律責任。

相關文章