本文轉自徐飛翔的“”
版權聲明:本文為博主原創文章,遵循 版權協議,轉載請附上原文出處鏈接和本聲明。
模型的參數空間
我們知道,在機器學習,特別是深度學習中,整個模型有著數以萬計,百萬計的參數,包括有權值,偏置等,這些參數通常來說都是實數,如果用表示模型的所有參數,既是
,其中
就可以表示模型的參數量。我們可以知道,
的每個分量都是可以自由取值的,當每個分量遍歷了所有可能的取值時,我們不妨把模型的所有可能參數取值看成一個空間,名為參數空間(parameter space),用符號
表示。 也就是說,我們模型中的每一個可能的參數組合
,都有
。為了方便起見,我們接下來的討論將
設為3,也就是說我們下面討論的模型只有三個參數。其參數空間繪制出來如下所示:
因為這個空間中的每個點(元素)都代表著一個可能的參數組合,因此都可以看成一個假設相同的模型。我們如下圖可以發現,不同參數組合之間可以自由移動,比如從當前的移動到
,這個就是模型參數的更新過程。
其實我們也可以簡單地發現,空間其實是一個線性空間,因為無論是數乘還是加法在這個空間都是封閉的,同時,我認為這個空間不是內積空間,因為在參數空間定義內積似乎沒有意義,不確定是否是賦范空間,希望有了解的朋友指出。不管怎么說,因為這個參數空間是一個線性空間,我們可以用空間的非線性相關基底表示空間中的任意一個點了。特別的,我們考慮這個空間中的一個平面
,這個平面可以由初始點
?和兩個非線性相關的空間向量
?,
組成,既是
,畫出圖如下所示:
其實我們可以發現,這個時候,本來是可以在整個3維空間中進行參數搜索的,通過限制,或者說正則化手段,將其限制在了只能在一個平面
上進行參數搜索。
這個行為正是正則的作用,通過引入一些假設或者說偏好,將模型過大的參數空間限制在一個偏好空間中,從而實現更好的泛化和搜索。當然我這里為了可視化方便舉的是3維的例子,其實擴展到維也是一樣的。我們接下來考察在
維參數空間中,利用剛才討論的參數空間的線性特質進行損失函數的可視化。損失函數的二維可視化
在模型中因為參數數以萬計甚至數以百萬計,而且我們的損失函數是關于參數的一個函數,因此損失函數也是個極其高高維的函數,難以可視化,但是,通過切片的手段,我們可以可視化出損失函數的一個切片出來,定性觀察其局部特性。我們看下如何進行切片。
考慮一個損失函數,假設其映射為
,也就是將每一個權值函數都映射到了一個相應的損失值(當然中間需要通過模型函數
的作用,這里省略了),假設我們的初始參數為
,那么假設兩個方向的基底,分別為
?和
?,那么在這個由
?和
?為基底的平面中,每一個新的參數都可以表示為
,也就說我們的損失函數可以從初始的
更新到
,這個過程,只要當初始值
?和基底
?和
?決定了(其實初始值可以隨機選),就完全由
兩個值決定了,因此可以將其畫成一個平面圖,如下所示[2]:
進一步分析我們可以知道,這個過程其實相當于對損失函數進行了一個切片的操作,如下圖所示:
因此,這個由 組成的等高線圖可以表示整個高維度損失函數的一個切面,提供損失函數的局部信息,當然不能描述整個損失函數,但是不失為一個提供參考的好方法。下圖是SVM損失函數依據此方法的可視化結果[1],左圖具有正則約束,而右圖沒有:
總結來說,這種方法通過用兩個維度代表了整個高維度的損失函數,達到了可視化的目的。再看正則化
正則,常常在統計學和機器學習中提及,其本質是引入一些先驗的知識,數據額外的知識解決一些病態(ill-posed)的問題,以緩解過擬合的現象[4]。這個過程中,給參數空間提供了偏好,減小了參數空間的大小,我們以后有機會再繼續細談不同正則的假設的解決的問題,我們這里主要考慮的是,怎么提供正則?我們觀察下面圖:
我們容易發現,其實參數空間中的每一個點都映射到了損失函數上,其參數空間上的平移相當于損失函數上的“上坡”或者“下坡”,因此損失函數的最小化體現在參數空間上就是參數在尋找一個最優值。那么我們不難推理出,其實參數空間和損失函數是相關的,我們對參數空間進行正則也就是進行偏好假設,在損失函數上,其實就相當于加上一個正則項,控制損失函數的形狀罷了。對于在考慮損失函數的情況下加上正則,可以考慮在損失函數中添加正則項,對于考慮參數空間的正則,可以考慮不同的特殊網絡結構,這兩種方法都是常見的添加正則的方法。
我們以后文章中將會看到,諸如dropout, L2 weight decay, L1 sparse, stochastic depth, weight sharing, sparse connection等等無一不是在我提到的這兩種方法中考慮的。
Reference
[1]: 最優化基礎:損失函數可視化、折頁損失函數 & 梯度計算
[2]: Li H, Xu Z, Taylor G, et al. Visualizing the loss landscape of neural nets[J]. arXiv preprint arXiv:1712.09913, 2017.
[3]: Dinh L, Pascanu R, Bengio S, et al. Sharp minima can generalize for deep nets[J]. arXiv preprint arXiv:1703.04933, 2017.
[4]: Regularization (mathematics)