本文轉(zhuǎn)自徐飛翔的“損失函數(shù)的可視化——淺論模型的參數(shù)空間與正則”
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。
模型的參數(shù)空間
我們知道,在機(jī)器學(xué)習(xí),特別是深度學(xué)習(xí)中,整個(gè)模型有著數(shù)以萬(wàn)計(jì),百萬(wàn)計(jì)的參數(shù),包括有權(quán)值,偏置等,這些參數(shù)通常來(lái)說(shuō)都是實(shí)數(shù),如果用表示模型的所有參數(shù),既是
,其中
就可以表示模型的參數(shù)量。我們可以知道,
的每個(gè)分量都是可以自由取值的,當(dāng)每個(gè)分量遍歷了所有可能的取值時(shí),我們不妨把模型的所有可能參數(shù)取值看成一個(gè)空間,名為參數(shù)空間(parameter space),用符號(hào)
表示。 也就是說(shuō),我們模型中的每一個(gè)可能的參數(shù)組合
,都有
。為了方便起見(jiàn),我們接下來(lái)的討論將
設(shè)為3,也就是說(shuō)我們下面討論的模型只有三個(gè)參數(shù)。其參數(shù)空間繪制出來(lái)如下所示:
因?yàn)檫@個(gè)空間中的每個(gè)點(diǎn)(元素)都代表著一個(gè)可能的參數(shù)組合,因此都可以看成一個(gè)假設(shè)相同的模型。我們?nèi)缦聢D可以發(fā)現(xiàn),不同參數(shù)組合之間可以自由移動(dòng),比如從當(dāng)前的移動(dòng)到
,這個(gè)就是模型參數(shù)的更新過(guò)程。
其實(shí)我們也可以簡(jiǎn)單地發(fā)現(xiàn),空間其實(shí)是一個(gè)線性空間,因?yàn)闊o(wú)論是數(shù)乘還是加法在這個(gè)空間都是封閉的,同時(shí),我認(rèn)為這個(gè)空間不是內(nèi)積空間,因?yàn)樵趨?shù)空間定義內(nèi)積似乎沒(méi)有意義,不確定是否是賦范空間,希望有了解的朋友指出。不管怎么說(shuō),因?yàn)檫@個(gè)參數(shù)空間是一個(gè)線性空間,我們可以用空間的非線性相關(guān)基底表示空間中的任意一個(gè)點(diǎn)了。特別的,我們考慮這個(gè)空間中的一個(gè)平面
,這個(gè)平面可以由初始點(diǎn)
?和兩個(gè)非線性相關(guān)的空間向量
?,
組成,既是
,畫(huà)出圖如下所示:
其實(shí)我們可以發(fā)現(xiàn),這個(gè)時(shí)候,本來(lái)是可以在整個(gè)3維空間中進(jìn)行參數(shù)搜索的,通過(guò)限制,或者說(shuō)正則化手段,將其限制在了只能在一個(gè)平面
上進(jìn)行參數(shù)搜索。
這個(gè)行為正是正則的作用,通過(guò)引入一些假設(shè)或者說(shuō)偏好,將模型過(guò)大的參數(shù)空間限制在一個(gè)偏好空間中,從而實(shí)現(xiàn)更好的泛化和搜索。當(dāng)然我這里為了可視化方便舉的是3維的例子,其實(shí)擴(kuò)展到維也是一樣的。我們接下來(lái)考察在
維參數(shù)空間中,利用剛才討論的參數(shù)空間的線性特質(zhì)進(jìn)行損失函數(shù)的可視化。損失函數(shù)的二維可視化
在模型中因?yàn)閰?shù)數(shù)以萬(wàn)計(jì)甚至數(shù)以百萬(wàn)計(jì),而且我們的損失函數(shù)是關(guān)于參數(shù)的一個(gè)函數(shù),因此損失函數(shù)也是個(gè)極其高高維的函數(shù),難以可視化,但是,通過(guò)切片的手段,我們可以可視化出損失函數(shù)的一個(gè)切片出來(lái),定性觀察其局部特性。我們看下如何進(jìn)行切片。
考慮一個(gè)損失函數(shù),假設(shè)其映射為
,也就是將每一個(gè)權(quán)值函數(shù)都映射到了一個(gè)相應(yīng)的損失值(當(dāng)然中間需要通過(guò)模型函數(shù)
的作用,這里省略了),假設(shè)我們的初始參數(shù)為
,那么假設(shè)兩個(gè)方向的基底,分別為
?和
?,那么在這個(gè)由
?和
?為基底的平面中,每一個(gè)新的參數(shù)都可以表示為
,也就說(shuō)我們的損失函數(shù)可以從初始的
更新到
,這個(gè)過(guò)程,只要當(dāng)初始值
?和基底
?和
?決定了(其實(shí)初始值可以隨機(jī)選),就完全由
兩個(gè)值決定了,因此可以將其畫(huà)成一個(gè)平面圖,如下所示[2]:
進(jìn)一步分析我們可以知道,這個(gè)過(guò)程其實(shí)相當(dāng)于對(duì)損失函數(shù)進(jìn)行了一個(gè)切片的操作,如下圖所示:
因此,這個(gè)由 組成的等高線圖可以表示整個(gè)高維度損失函數(shù)的一個(gè)切面,提供損失函數(shù)的局部信息,當(dāng)然不能描述整個(gè)損失函數(shù),但是不失為一個(gè)提供參考的好方法。下圖是SVM損失函數(shù)依據(jù)此方法的可視化結(jié)果[1],左圖具有正則約束,而右圖沒(méi)有:
總結(jié)來(lái)說(shuō),這種方法通過(guò)用兩個(gè)維度代表了整個(gè)高維度的損失函數(shù),達(dá)到了可視化的目的。再看正則化
正則,常常在統(tǒng)計(jì)學(xué)和機(jī)器學(xué)習(xí)中提及,其本質(zhì)是引入一些先驗(yàn)的知識(shí),數(shù)據(jù)額外的知識(shí)解決一些病態(tài)(ill-posed)的問(wèn)題,以緩解過(guò)擬合的現(xiàn)象[4]。這個(gè)過(guò)程中,給參數(shù)空間提供了偏好,減小了參數(shù)空間的大小,我們以后有機(jī)會(huì)再繼續(xù)細(xì)談不同正則的假設(shè)的解決的問(wèn)題,我們這里主要考慮的是,怎么提供正則?我們觀察下面圖:
我們?nèi)菀装l(fā)現(xiàn),其實(shí)參數(shù)空間中的每一個(gè)點(diǎn)都映射到了損失函數(shù)上,其參數(shù)空間上的平移相當(dāng)于損失函數(shù)上的“上坡”或者“下坡”,因此損失函數(shù)的最小化體現(xiàn)在參數(shù)空間上就是參數(shù)在尋找一個(gè)最優(yōu)值。那么我們不難推理出,其實(shí)參數(shù)空間和損失函數(shù)是相關(guān)的,我們對(duì)參數(shù)空間進(jìn)行正則也就是進(jìn)行偏好假設(shè),在損失函數(shù)上,其實(shí)就相當(dāng)于加上一個(gè)正則項(xiàng),控制損失函數(shù)的形狀罷了。對(duì)于在考慮損失函數(shù)的情況下加上正則,可以考慮在損失函數(shù)中添加正則項(xiàng),對(duì)于考慮參數(shù)空間的正則,可以考慮不同的特殊網(wǎng)絡(luò)結(jié)構(gòu),這兩種方法都是常見(jiàn)的添加正則的方法。
我們以后文章中將會(huì)看到,諸如dropout, L2 weight decay, L1 sparse, stochastic depth, weight sharing, sparse connection等等無(wú)一不是在我提到的這兩種方法中考慮的。
Reference
[1]: 最優(yōu)化基礎(chǔ):損失函數(shù)可視化、折頁(yè)損失函數(shù) & 梯度計(jì)算
[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)