聲明:
本文是對Neural Tangent Kernel (NTK)基礎推導 - Gearlesskai - 博客園文章內容的理解與推導,里面很多東西對我這種新手來說不太好理解,所以我力求通過這種方式理解文章的大部分內容。希望我的理解可以幫助你更好的進行學習。 其他顏色的字是我寫的,黑色的是原文。
神經網絡的疑云
神經網絡在提出初期存在許多質疑,包括但不限于如下內容
-
Non-convexity(非凹凸性)
神經網絡不是凸函數,會存在許多局部極小值,梯度下降最終得到的結果與真正的極小值點是否有較大差別?
-
Initialization
從不同初始化下進行梯度下降,最終結果是否會有較大偏差呢?
-
Interpretability
神經網絡如何被描述?眾多神經元和參數有哪些內在聯系?
-
Generalization
神經網絡參數很多,理論上很容易過擬合,但是在測試集上的表現還不錯,表現出較好的泛化性能,如何解釋呢?
譬如,對第四點,機器學習的傳統觀點認為,在訓練誤差和泛化差距之間要進行謹慎的權衡。模型的復雜性存在一個“最佳點”。因此如果模型足夠大,就可以實現合理良好的訓練誤差;而模型足夠小,才可以降低泛化差距(測試誤差和訓練誤差之間的差)。較小的模型會產生較大的訓練誤差,而使模型變大則會導致較大的泛化差距,兩者都會導致較大的測試誤差。測試誤差隨模型復雜度的變化可以經典U形曲線來描述(如下圖a,圖片來自文獻Reconciling modern machine learning practice and the bias-variance trade-off
)
從這兩張圖可以很好的看出 傳統的機器學習認為 對小模型 有大的訓練誤差 但是有小的泛化差距
對大的模型 有小的訓練誤差 大的泛化差距 以上情況 都導致大的測試誤差 如圖a 模型復雜度存在一個最優點
在此點之后 訓練集誤差降低 但測試集效果下降
但是,如今很常見的是使用高度復雜的過參數化模型,例如深度神經網絡。通常對這些模型進行訓練,以在訓練數據上實現接近零的誤差,但是它們仍然在測試數據上具有出色的性能。上圖的作者Belkin等人通過“雙重下降”曲線對這一現象進行了描述,該曲線擴展了經典的U形曲線(如上圖b),并對此進行了理論解釋。可以觀察到,隨著模型復雜度增加到可以完全擬合訓練數據的程度(即達到插值制度),測試誤差繼續下降!有趣的是,最好的測試效果通常是通過最大的模型實現的,這與關于“最佳點”的經典直覺背道而馳。
隨著模型的復雜度進一步增加 上述情況將消失 即大力出奇跡 最終 訓練集和測試集效果都會變好
因此,有人懷疑深度學習中使用的訓練算法((隨機)梯度下降及其變體)以某種方式隱含地限制了訓練網絡的復雜性(即參數的“真實數量”),從而導致了較小的概括差距。
更直接點,舉個例子,比如單目標分類,有時候數據還沒有網絡參數多,相當于一個有很多未知量的式子,但是限制它的方程數量卻很少,那么這樣一個自由度很高但約束很少的式子,怎么能符合我們對其專一且嚴格的要求呢?
?為什么有時候數據那么少 參數那么多 那這些參數怎么確定呢 這就相當于解方程 解一個二元一次方程 至少需要兩個方程才能確定唯一的解
這里的合理假設是 是不是在訓練的時候 什么方法限制了網絡的真實參數量 概括誤差也叫泛化誤差
NTK的提出
NTK是一種較成功的解釋以上質疑的技術性理論,它有兩個假設:
- 需要一種特殊的初始化技巧(Kaiming Initialization)
- 網絡足夠寬(或者說,無限寬)
第二條假設某種意義上對應人們之前對深度神經網絡泛化性能和參數量的懷疑(與上文的對應),而第一條假設是一個先決條件,即,在我們訓練過程中,網絡中不應該出現梯度的爆炸或者消失,而是保持均勻(為什么不應該爆炸或者消失,這里我們保持思考)
并且,顧名思義,神經正切核Neural Tangent Kernel是一種核方法,1994年Priors for Infinite Networks
就已經提出了無限寬的神經網絡和核方法之間的聯系。近幾年內,NTK相關的基礎理論文章得到了幾個驚人的結論,比如整個訓練過程中網絡存在一個不變量,不依賴于網絡參數,這個不變量就是NTK,神經正切核(NTK開山之作,Neural Tangent Kernel: Convergence and Generalization in Neural Networks
)(不依賴網絡參數的不變量---NTK,暫時有個概念)
- 在無窮寬度條件下,寬神經網絡由在初始參數處的一階泰勒展開式線性模型主導。并且盡管上述結論是在無限寬模型下得到的,論文作者發現實驗證明對于可操作的有限尺寸的神經網絡,由神經網絡得到的估計與線性模型得到的估計也是基本一致的。且這個一致性對于不同結構、不同優化方法、不同損失函數,都是成立的。特別地,在平方損失MSE下,該動態是一個關于時間的封閉解函數(
Wide Neural Networks of Any Depth Evolve as Linear Models Under Gradien Descent
)
為什么要無限寬模型?
無限寬模型(這一層網絡參數無窮) 可以讓某些性質趨于穩定或者呈現出規律性 進行更深層次理論分析 對于非線性干擾也可以忽略
一階泰勒展開?
在此點的值 以及一階導數 可以近似為一個線性模型 代表該點附近的值
在平方損失MSE下,該動態是一個關于時間的封閉解函數?
可以找到一個明確的 不依賴迭代過程的 數學表達式來描述模型訓練的動態變化過程
3.梯度下降可以繞過局部最小值,從初始化快速找到全局最小值(Gradient Descent Finds Global Minima of Deep Neural Networks
)
局部最小值可能很接近全局最小 實際使用中影響不大
論文里說 只要網絡足夠寬 就可以通過梯度下降隨機初始化 快速收斂到一個全局最小 即使是這種非凸性
為什么可以避開局部最優點?
參數多 但是訓練數據小 參數空間的高維性使得存在大量相互連通的低損失區域,梯度下降可以在這些區域中平滑地移動,避開局部最小值。
對稱性使得共享參數 等價解構了低損失區域
初始 類似線性模型 梯度下降 精確的描述為核梯度下降過程 可以達到全局最優
之后雖然非線性 但已經接近最優點
高維空間 鞍點更多?
如何理解平坦的低損失區域?
平坦 代表變化不大 低損失代表擬合效果好
在高維空間中,存在大量的參數組合可以使得損失函數達到較低的值 這些參數 往往相互靠近
對稱性也導致了這個區域形成
這些結論很好地解釋了很多對于神經網絡優化的質疑。接下來我們會依次介紹對應的條件(或者假設)下的推導和近似
?推導 將在明天或后天更新