從傅立葉分析角度解讀深度學習的泛化能力
深度學習成功地應用在很多領域,但對它的理論理解卻非常缺乏。這兩年,很多理論學家把關注點放在一個關於深度學習與傳統學習理論的悖論上。在傳統學習理論中,模型的引數越多,模型一般會更好地擬合訓練資料,但模型的泛化能力(擬合測試資料集的能力)會變差。在深度學習中,引數的數目比訓練資料集要大得多,但深度網路(DNN)卻通常既能擬合好訓練資料,又保持良好的泛化能力。這個違反直覺的現象被大家稱為“明顯悖論” (apparent paradox)。
頻率原則(F-Principle)
最近有幾篇文章 [1,2,3] 從傅立葉分析的角度,在實驗和理論上揭示了該悖論背後的一種機制。
▲ 文獻1
▲ 文獻2
▲ 文獻3
一般來說,在深度學習中,大家用來測試結論的例子或者是手寫數字集(MNIST),或者是影象分類集(CIFAR)。這兩類資料集相對實際應用的資料集確實已經足夠簡單,但在分析上,它們仍是非常複雜的,因為它們的輸入維度仍然非常高(畫素點的個數)。
我們可以從擬合一維函數出發考慮這個問題。訓練資料集是少數幾個均勻取樣資料點,如果用多項式去擬合,階數很高的時候(大於資料點個數),擬合的結果通常是一個能夠精確刻畫訓練資料但振盪厲害的函式。但如果用 DNN,無論多大規模,通常學習到的曲線都是相對平坦的。因為是一維函式,所以很容易想到,振盪和平坦可用傅立葉分析定量地刻畫。於是就自然能猜想到,DNN 在學習的時候可能更加偏愛低頻成分。
下面是一個一維函式的例子 [1](圖 1a 中的黑點),對資料作離散傅立葉變換後如圖 1b 所示,考慮圖 1b 中的頻率峰值(黑點)在訓練中的相對誤差,如圖 1c,頻率越高,收斂越慢(藍色表示相對誤差大,紅色表示相對誤差小)。頻率原則可以粗糙地表述成:DNN 在擬合目標函式的過程中,有從低頻到高頻的先後順序。(Frequency Principle or F-Principle in [1], or spectral bias in [2])
▲ 圖1
F-Principle 並不是一個陌生的概念,而是我們日常生活中經常都在用的一個原則。想象一下,如果讓一個人去記住一個沒見過的東西,一般比較粗糙的輪廓資訊會先被記住,然後再是很多細節。沒錯,DNN 也正是使用了這樣的一個學習過程。舉一個例子,我們來訓練一個 DNN 來記住一張圖片。DNN 的輸入是一個位置座標 (x,y),我們希望它輸出這個位置對應的灰度值。圖 2 的一系列圖展示了不同訓練步數,DNN 學習到的影象,正如我們前面所猜測的從粗糙的輪廓到細節的學習過程。
▲ 圖2
經驗上理解深度學習的泛化能力
一般來說,“平坦”簡單的函式會比振盪複雜的函式有更好的泛化能力。DNN 從目標函式的低頻成分開始學習。當它學到訓練資料的最高頻率的時候,此時頻率空間誤差趨近於零。因為頻率空間的誤差等於實域空間的誤差,所以它的學習也基本停止了。這樣深度學習學到的函式的最高頻率能夠被訓練資料給限制住。對於小的初始化,啟用函式的光滑性很高,高頻成分衰減很快,從而使學習到的函式有更好的泛化能力。
對於低頻佔優的目標函式,小幅度的高頻成分很容易受到噪音的影響。基於頻率原則,提前停止訓練(early-stopping)就能在實踐中提高 DNN 的泛化能力。
理論上理解深度學習的泛化能力
從低頻到高頻的學習原則並不總是對的,比如在文獻 [1] 中討論到的,如果目標函式是隨機資料點(頻率空間沒有低頻佔優的特性),或者 DNN 的引數的初始化的值比較大,這個原則就會失效。特別是在大初始化的情況下,DNN 的泛化能力也會變差。
文獻 [2] 對 DNN 學習到的函式的頻率幅度的估計並不能解釋這些現象。特別地,對於層數和神經元數目足夠多的 DNN,文獻 [2] 給出的理論不能解釋為什麼 DNN 從低頻開始學習。在文獻[2] 中,DNN 的擬合函式的高頻成分受權重(weights)的譜範數(spectral norm)控制。對於小規模的DNN,可以經常觀察到,權重的範數隨訓練而增長,從而允許小規模的 DNN 去擬合目標函式中的高頻成分。因此,文獻 [2] 在理論上給出頻率原則的一種可能解釋。
但如文獻 [3] 的一個例子所示(下圖,圖 3a 為目標函式,圖 3b 為其離散傅立葉變換),對於層數和神經元數目足夠多的 DNN,權重的譜範數(圖 3c)基本不變。但如圖 3d 所示的頻率成分的相對誤差,四個重要的頻率峰值(圖 3b 的黑點)仍然是從低頻開始收斂。對於這種情況,文獻 [2] 對 DNN 的擬合函式的高頻成分的上限估計在訓練過程中基本不變,從而不能看出低頻到高頻學習的頻率原則。
▲ 圖3. 說明:(d) 展示 (b) 中四個頻率峰值在訓練中的相對誤差
文獻 [3] 給出了能夠解釋這些問題的理論框架。從只有一層隱藏層的 DNN(sigmoid 作為啟用函式)開始,在傅立葉空間分析梯度下降演算法,文獻 [3] 得到損失函式 ω 在任一頻率分量上對任一引數的導數。
其中,是對應神經元的權重(weight),是關於對應神經元所有引數和頻率 ω 的一個多項式,A(ω) 是學習到的函式與目標函式的差的幅度。文獻 [3] 論述了這個表示式如何定性的推廣到一般 DNN。
上面這個式子顯示地定量地說明了在梯度下降過程中低頻成分會有更高的優先順序。但同時需要注意的是,這個優先順序不只是由頻率決定,它也依賴於擬合函式與目標函式的差的幅度。
這個理論分析揭示了對於低頻佔優的目標函式,當 DNN 的引數是很小的數時,低頻成分會先收斂,並且在低頻成分收斂的時候,DNN 的高頻成分仍然很小。而當 DNN 擬合高頻成分的時候,已經收斂的低頻成分只會受到很小的干擾。對高頻佔優的函式,整個訓練過程就會變得複雜。低頻容易受到高頻的影響,所以低頻是振盪式的收斂,每振盪一次,偏離的最大幅度就會下降。並且頻率越低,振盪越頻繁(如下圖 4 所示)。
▲ 圖4
對於初始化的問題,這個理論框架也給出瞭解釋。如果初始化權重很大,由於上式中的很大,低頻不再佔優,所以頻率原則就很容易失效。並且,啟用函式的高頻成分也會變大。對於那些頻率高到訓練資料也看不到的成分,因為訓練過程不能限制它們,所以在訓練完成後,它們仍然有比較大的幅度而導致 DNN 的泛化能力變差。
總結
傅立葉分析的理論框架非常好地解釋了 DNN 為什麼在擁有大量引數的情況下既能學好訓練資料,又能保持好的泛化能力,簡單地說,由於頻率原則,DNN 學習到的函式的頻率範圍是根據訓練資料的需要而達到。對於那些比訓練資料的最高頻率還高的頻率成分,DNN 能保持它們幅度很小。
用傅立葉分析的角度來研究 DNN 的學習問題仍處於開始的階段,有很多有趣的問題值得繼續深入,比如更加定量地分析 DNN 的學習過程,理解層數和每層寬度對訓練的不同貢獻等等。