標籤:

機器學習中常常提到的正則化到底是什麼意思?

舉個例子 這是個基於多核的支持向量機的目標函數 d是多核函數的參數 它說r(d)是正則項。為什麼要令r(d)為正則項,有什麼目的?


我盡量用通俗一點的話來解答一下樓主的問題,

r(d)可以理解為有d的參數進行約束,或者 D 向量有d個維度。
咱們將樓主的給的凸優化結構細化一點,別搞得那麼抽象,不好解釋;

minleft{  frac{1}{N}sum_{i=1}^{N}{(y_{i} - f(x_{i} ))^{2}  + r(d)}   
ight} , 其中,
咱們可以令: f(x_{i} ) = w_{0}x_{0} + w_{1} x_{1} + w_{2}x_{2} + w_{3}x_{3} + ..... + w_{n}x_{n}.

ok,這個先介紹到這裡,至於f(x)為什麼用多項式的方式去模擬?相信也是很多人的疑問,很簡單,大家看看高等數學當中的泰勒展開式就行了,任何函數都可以用多項式的方式去趨近,e^{x} ,log x,lnx,frac{1}{x} 等等都可以去趨近,而不同的函數曲線其實就是這些基礎函數的組合,理所當然也可以用多項式去趨近,好了,這個就先解釋到這裡了。

接下來咱們看一下擬合的基礎概念。
首先,用一個例子來理解什麼是過擬合,假設我們要根據特徵分類{男人X,女人O}。
請看下面三幅圖,x1、x2、x3;

這三幅圖很容易理解:
1、 圖x1明顯分類的有點欠缺,有很多的「男人」被分類成了「女人」。
2、 圖x2雖然有兩個點分類錯誤,但是能夠理解,畢竟現實世界有噪音干擾,比如有些人男人留長發、化妝、人妖等等。
3、 圖x3分類全部是正確的,但是看著這副圖片,明顯覺得過了,連人妖都區分的出來,可想而知,學習的時候需要更多的參數項,甚至將生殖器官的形狀、喉結的大小、有沒有鬍鬚特徵等都作為特徵取用了,總而言之f(x)多項式的N特別的大,因為需要提供的特徵多,或者提供的測試用例中我們使用到的特徵非常多(一般而言,機器學習的過程中,很多特徵是可以被丟棄掉的)。

好了,總結一下三幅圖:
x1我們稱之為【欠擬合】
x2我們稱之為【分類正擬合】,隨便取的名字,反正就是容錯情況下剛好的意思。
x3我們稱之為【過擬合】,這種情況是我們不希望出現的狀況,為什麼呢?很簡單,它的分類只是適合於自己這個測試用例,對需要分類的真實樣本而言,實用性可想而知的低。

恩,知道了過擬合是怎麼回事之後,我們來看一下如何去規避這種風險。先不管什麼書上說的、老師講的、經驗之說之類的文言文。咱們就站在第一次去接觸這種分類模型的角度去看待這個問題,發散一下思維,我們應該如何去防止過擬合?
顯而易見,我們應該從【過擬合】出現的特徵去判別,才能規避吧?
顯而易見,我們應該、而且只能去看【過擬合】的f(x)形式吧?
顯而易見,我們從【過擬合】的圖形可以看出f(x)的涉及到的特徵項一定很多吧,即x_{0},x_{1},x_{2},x_{3}....x_{N} 等等很多吧?
顯而易見,N很大的時候,w_{0} ,w_{1} ,w_{2} ,w_{3} ,...w_{N} 是等數量增長的吧?
顯而易見,w係數都是學習來的吧?

So,現在知道這些信息之後,如何去防止過擬合,我們首先想到的就是控制N的數量吧,即讓N最小化吧,而讓N最小化,其實就是讓W向量中項的個數最小化吧?
其中,W=(w_{0} ,w_{1} ,w_{2} ,w_{3} ,...w_{N} )

PS: 可能有人會問,為什麼是考慮W,而不是考慮X?很簡單,你不知道下一個樣本想x輸入的是什麼,所以你怎麼知道如何去考慮x呢?相對而言,在下一次輸入x^{(k)} ,即第k個樣本之前,我們已經根據x^{(1)} ,x^{(2)} ,....x^{(k-1)} 次測試樣本的輸入,計算(學習)出了W.就是這麼個道理,很簡單。


ok,any way.回到上面的思維導圖的位置,我們再來思考,如何求解「讓W向量中項的個數最小化」這個問題,學過數學的人是不是看到這個問題有點感覺?對,沒錯,這就是0範數的概念!什麼是範數,我在這裡只是給出個0-2範數定義,不做深究,以後有時間在給大家寫點文章去分析範數的有趣玩法;
0範數,向量中非零元素的個數。
1範數,為絕對值之和。
2範數,就是通常意義上的模。

PS,貌似有人又會問,上面不是說求解「讓W向量中項的個數最小化」嗎?怎麼與0範數的定義有點不一樣,一句話,向量中0元素,對應的x樣本中的項我們是不需要考慮的,可以砍掉。因為0 x_{i} 沒有啥意義,說明x_{i} 項沒有任何權重。so,一個意思啦。


ok,現在來回答樓主的問題,r(d) = 「讓W向量中項的個數最小化」 = left| W 
ight| _{0}

所以為了防止過擬合,咱們除了需要前面的相加項最小,即樓主公式當中的
R_{emp}(f) = frac{1}{2}W^{T}W+sum_{i}^{}{l(y_{i},f(x_{i} ) )}   最小,我們還需要讓r(d)=left| W 
ight| _{0} 最小,所以,為了同時滿足兩項都最小化,咱們可以求解讓R_{emp}(f) 和r(d)之和最小,這樣不就同時滿足兩者了嗎?如果r(d) 過大,R_{emp}(f) 再小也沒用;相反r(d)再小,R_{emp}(f) 太大也失去了問題的意義。
說到這裡我覺得樓主的問題我已經回答了,那就是為什麼需要有個r(d)項,為什麼r(d)能夠防止過擬合原因了。

根據《男人幫》電影大結局的劇情:本來故事已經完成了,為了讓大家不至於厭惡課本的正規理論,我們在加上一集內容,用以表達我對機器學習出書者的尊重;

書本中,或者很多機器學習的資料中,為了讓全球的機器學習人員有個通用的術語,同時讓大家便於死記硬本,給我上一段黑體字的部分的內容加上了一坨定義,例如:
我們管R_{emp}(f) 叫做經驗風險,管上面我們思維導圖的過程叫做正則化,所以順其自然的管r(d)叫做正則化項,然後管R_{emp}(f) +r(d) 叫做結構風險,所以順其自然的正則化就是我們將結構風險最小化的過程,它們是等價的。
By the way,各位計算機界的叔叔、阿姨、伯伯、嬸嬸,經過不懈的努力,發現了這個公式很多有意思的地方,它們發現0範數比較噁心,很難求,求解的難度是個NP完全問題。然後很多腦袋瓜子聰明的叔叔、阿姨、伯伯、嬸嬸就想啊,0範數難求,咱們就求1範數唄,然後就研究出了下面的等式:

一定的條件我就不解釋了,這裡有一堆演算法,例如主成分KPCA等等,例子我就不在舉了,還是原話,以後我會盡量多寫點這些演算法生動點的推到過程,很簡單,注重過程,不要死記硬背書本上的結果就好。
上面概括而言就是一句話總結:1範數和0範數可以實現稀疏,1因具有比L0更好的優化求解特性而被廣泛應用。然後L2範數,是下面這麼理解的,我就直接查別人給的解釋好了,反正簡單,就不自己動腦子解釋了:
L2範數是指向量各元素的平方和然後求平方根。我們讓L2範數的正則項||W||2最小,可以使得W的每個元素都很小,都接近於0,但與L1範數不同,它不會讓它等於0,而是接近於0,這裡是有很大的區別的哦;所以大家比起1範數,更鐘愛2範數。
所以我們就看到書籍中,一來就是,r(d)=frac{lambda }{2} left| left| W 
ight|  
ight| ^{2} 或者r(d)={lambda }left| W 
ight| _{1} 這種結構了,然後在機器學習當中還能看到下面的結構:
min{  sum_{i}^{N}{(y-W^{T}x )} + frac{lambda }{2}  left| left| W 
ight|  
ight| _{2} ^{2}  } ,lambda &>=0
都是這麼來的啦,萬變不離其中。
講一點自己機器學習過程的體驗,大家都覺得機器學習入門難,絕大部分人反應知其然不知其所以然,這個原因很多時候在於中國教育工作者的教學、科研氛圍,尤其是中文書籍出書者自己都不去搞懂原理,一個勁的為了利益而出書、翻譯書,純粹利益驅動。再加之機器學習起源於國外,很多經典的、有趣的歷史沒有被人翻譯、或者歸類整理,直接被捨棄掉了。個人感覺這是中國教育的缺失導致的。希望更多的人真的愛好計算機,愛好機器學習以及演算法這些知識。喜歡就是喜歡。希望國內機器學習的愛好者慢慢的齊心合力去多多引薦這些高級計算機知識的基礎。教育也不是由於利益而跟風,AI熱出版社就翻譯AI,機器學習熱就翻譯機器學習,知識層面不斷架空,必然導致大家學習熱情的不斷衰減!願共勉之。


一年後的更新。這個問題下很多答主從機器學習角度對正則化進行了非常棒的說明,我依然嘗試從數理角度對這個問題進行討論。

其他答主的 回答(包括我的原始回答)本質上是在說明一件事情,即加入正則項是為了避免過擬合。但是我們都沒有提到,為什麼加入了正則項就能夠避免過擬合?這種處理手段到底是經驗上的(比如說,我用這種方法處理了具體數據後,得到的結果確實避免了過擬合,但邏輯上我不能確定對下一個模型下一個數據集是否依然適用,以及不確定為什麼會產生這樣的結果)還是理論上的(比如說,不用跑具體數據,直接就能證明這種方法可以避免過擬合)。換句話說,我們還是回到了對正則項本質的討論。

假設我們考慮一個最簡單的線性模型f{y} = f{X} f{eta} + f{epsilon},我們比較兩個估計結果:
(1) 最小二乘估計hat{f{eta}} = argmin_{eta} Vert f{y} - f{X}f{eta} Vert^2
(2) 嶺估計widetilde{f{eta}} = argmin_{eta} Vert f{y} - f{X} f{eta}Vert ^2 + lambda Vert f{eta} Vert^2
其中(2)中的第二項即可看成一個正則項。

那麼我們如何說明加入了這個正則項後,相較於hat{f{eta}}來說,widetilde{f{eta}}確實避免了過擬合呢?

因為從數學上可以證明,Vert widetilde{f{eta}} Vert < Vert hat{f{eta}} Vert ,注意這裡的小於是嚴格的小於。這裡的證明是要用到矩陣範數和向量範數的相容性。這個性質本身告訴了我們這樣一個及其重要的本質:

加入正則項後,估計出的(向量)參數的長度變短了(數學上稱為shrinkage)。

換句話說,長度變短了就意味著,向量widetilde{f{eta}}中的某些分量在總體程度上比hat{f{eta}}的分量變小了。極端來說,向量widetilde{f{eta}}中的某些分量可能(因為也可能是因為每個分量都變小一點點最後造成整體長度變小)被壓縮到了0。

雖然這裡其實還沒有完整說明我們實現了避免過擬合,但至少從某種程度上說,加入正則項和的參數估計是符合我們之前的預定目標的,即用盡量少的變數去擬合數據。

================================================================

正則化以及類似處理方法的本質(個人認為)是:這是一種對對象進行限制以滿足某一特定目的的處理方法。

正則化等處理在數學上是有淵源的:

Ex1. 線性代數中的首一多項式(monic polynomial)。容易理解,若多項式f(x)滿足某一性質時,它的任意數量倍數k*f(x),kin R多項式也可能將滿足這個性質。因此,為了使求得的多項式唯一,人為對得到的解加上約束「首係數為1」,這樣就保證了所求得的多項式不僅滿足條件,而且唯一。

Ex2. 線性代數中的Gram-Schmidt正交化。對線性空間而言,任意一組個數等於空間維數且線性無關的向量可以構成這個線性空間的一組基。因此如果我們已經找到了這樣的一組向量,實際上是找到了無數組這樣的向量。所以為了使得所求得的這組基向量更「規範」,通過Gram-Schmidt正交化的方法將其化為彼此正交且單位化的標準正交基。

Ex3. Lasso方法得到稀疏解。在標準線性回歸估計的基礎上,對其估計值加上L_{1} 範數懲罰,迫使某些係數的估計被壓縮為0。

Ex4. 統計中常用的模型判定準則AIC(Akaike information criterion)和BIC(Bayesian information criterion)。對模型中參數個數進行判定,在估計表現和參數個數中到達平衡。

類似的例子還有很多,它們都能視為某種「正則化」的方法。Ex1需要滿足的特定目的是要讓解唯一,Ex2需要滿足的特定目的是要讓解單位化且正交,Ex3需要滿足的特定目的是要讓估計稀疏,Ex4需要滿足的特定目的是要選出擁有最合適參數個數的模型。所以題目中提到的r(d)有什麼作用,泛泛而言它的作用是對所求到的d進行約束從而使其滿足特定目的r(.),也就是上面其他小夥伴提到的避免過擬合。但是在機器學習中,正則化的使用在邏輯上是否是「很自然地」,請參考Linear least squares, Lasso,ridge regression有何本質區別? - Yeung Evan 的回答


regularizer 看字面意思都能意會到本意了吧。
我被坑的才叫久,因為我是很晚才看到這個詞的英文的,中文譯成正則項簡直是坑人,所以之前都是從它的作用上倒過來理解的,直到某次無意間看到了英文才頓悟了這個東西的存在的意圖。
譯成「規則項」難道不比「正則項」好么,譯成「正則項」簡直就是在術語化在門檻化,讓領域外的人難以get到它的本意。

啰嗦完了,答你。規則化就是...向你的模型加入某些規則,加入先驗,縮小解空間,減小求出錯誤解的可能性。你要把你的知識數學化告訴這個模型,對代價函數來說,就是加入對模型「長相」的懲罰


正則化項即罰函數,該項對模型向量進行「懲罰」,從而避免單純最小二乘問題的過擬合問題。正則化項本質上是一種先驗信息,整個最優化問題從貝葉斯觀點來看是一種貝葉斯最大後驗估計,其中正則化項對應後驗估計中的先驗信息損失函數對應後驗估計中的似然函數,兩者的乘積即對應貝葉斯最大後驗估計的形式,如果你將這個貝葉斯最大後驗估計的形式取對數,即進行極大似然估計,你就會發現問題立馬變成了損失函數+正則化項的最優化問題形式。
好,接下來我來舉個例子,就拿Lasso來說吧:Lasso中中的目標函數即相當於如下的後驗概率:

其中

(47)是似然函數,對應於Lasso中的損失函數,(48)是先驗概率,相當於Lasso中的正則化項。可以看出,Lasso的正則化項從貝葉斯觀點來看就是以Laplace先驗信息。
採用不同的先驗信息,可得到不同的結果。因此,你可以設計其它的先驗信息構成新的正則化項。例如,Group Lasso以變數的組結構為先驗信息構成的正則化項可實現變數組選擇,等等......


最高票寫的相當清楚了!我還是希望加一些圖形,【直觀詳解】什麼是正則化

對字體排版要求完美版本見我的博客


1、Why What 正則化

我們總會在各種地方遇到正則化這個看起來很難理解的名詞,其實它並沒有那麼高冷,很好理解。

首先,從使用正則化的目的角度:正則化是為了防止過擬合

如上圖,紅色這條「想像力」過於豐富上下橫跳的曲線就是過擬合情形。結合上圖和正則化的英文 Regularizaiton-Regular-Regularize,直譯應該是:規則化(加個「化」字變動詞,自豪一下中文還是強)。什麼是規則?你媽喊你6點前回家吃飯,這就是規則,一個限制。同理,在這裡,規則化就是說給需要訓練的目標函數加上一些規則(限制),讓他們不要自我膨脹。正則化,看起來,挺不好理解的,追其根源,還是「正則」這兩字在中文中實在沒有一個直觀的對應,如果能翻譯成規則化,更好理解。但我們一定要明白,搞學術,概念名詞的準確是十分重要,對於一個重要唯一確定的概念,為它安上一個不會產生歧義的名詞是必須的,正則化的名稱沒毛病,只是從如何理解的角度,要靈活和類比。

我思考模式的中心有一個理念:每一個概念被定義就是為了去解決一個實際問題(問WhyWhat),接著尋找解決問題的方法(問How),這個「方法」在計算機領域被稱為「演算法」(非常多的人在研究)。我們無法真正衡量到底是提出問題重要,還是解決問題重要,但我們可以從不同的解決問題的角度來思考問題。一方面,重複以加深印象。另一方面,具有多角度的視野,能讓我們獲得更多的靈感,真正做到鏈接並健壯自己的知識圖譜


2、How 線性模型角度

對於線性模型來說,無論是Logistic Regression、SVM或是簡單的線性模型,都有一個基函數 phi(),其中有很多 mathbf w(參數 )需要通過對損失函數 E()求極小值(或最大似然估計)來確定,求的過程,也就是使用訓練集的訓練過程:梯度下降到最小值點。最終,找到最合適的 mathbf w確定模型。從這個角度來看,正則化是怎麼做的呢?

2.1、二次正則項

我們看一個線性的損失函數(真實值和預測值的誤差)

E(mathbf w) =frac{1}{2} sum_{n=1}^{N}{t_n-mathbf w^T phi (mathbf x_n)}^2 	ag{1}

E(mathbf w)損失函數(又稱誤差函數 or 評價函數),E即Evaluate,有時候寫成L即Loss
t_n 是測試集的真實輸出,又稱目標變數【對應第一幅圖中的藍色點】
mathbf w 是權重(需要訓練的部分,未知數)
phi()基函數,例如多項式函數,核函數
測試樣本有n個數據
整個函數直觀解釋就是誤差平方和frac{1}{2} 只是為了求導後消去方便計算

正則化項,得到最終的誤差函數(Error function)

frac{1}{2} sum_{n=1}^{N}{t_n-mathbf w^T phi (mathbf x_n)}^2 + frac{lambda}{2} mathbf w^T mathbf w 	ag{2}

(2)式被稱為目標函數 = 誤差函數(損失函數 or 評價函數) + 正則化項
lambda 被稱為正則化係數,越大,這個限制越強

2式對 mathbf w 求導,並令為0(使誤差最小),可以解得

mathbf w = (lambda mathbf I + Phi^T Phi)^{-1}Phi^Tmathbf t

這是最小二乘法的解形式,所以在題目中寫的是從「最小二乘角度」。至於為何正則化項是 frac{lambda}{2} mathbf w^T mathbf w 在之後馬上解釋

2.2、一般正則項

直觀的詳解為什麼要選擇二次正則項。首先,需要從一般推特例,然後分析特例情況的互相優劣條件,可洞若觀火。一般正則項是以下公式的形式

frac{1}{2} sum_{n=1}^{N}{t_n-mathbf w^T phi (mathbf x_n)}^2 + frac{lambda}{2} sum_{j=1}^{M} {vert w_j vert}^q 	ag{3}

M是模型的階次(表現形式是數據的維度),比如M=2,就是一個平面(二維)內的點

若q=2就是二次正則項。高維度沒有圖像表徵非常難以理解,那就使用二維作為特例來理解。這裡令M=2,即 mathbf x ={x_1,x_2} ;mathbf w={w_1,w_2} ,令q=0.5;q=1;q=2;q=4 有

橫坐標是 w_1
縱坐標是 w_2
綠線是等高線的其中一條,換言之是一個俯視圖,而z軸代表的是 frac{lambda}{2} sum_{j=1}^{M} {vert w_j vert}^q 的值

空間想像力不足無法理解的讀者希望下方的三維圖像能給你一個直觀的領悟(與綠線圖一一對應)

q=2是一個圓非常好理解,考慮 z = w_1^2 + w_2^2 就是拋物面,俯視圖是一個圓。其他幾項同理(必須強調俯視圖和等高線的概念,z軸表示的是正則項的值)

藍色的圓圈表示沒有經過限制的損失函數在尋找最小值過程中, mathbf w 的不斷迭代(隨最小二乘法,最終目的還是使損失函數最小)變化情況,表示的方法是等高線,z軸的值就是 E()
藍線和紅線交點 w^*是最小值取到的點

可以直觀的理解為(幫助理解正則化),我們的目標函數(誤差函數)就是求藍圈+紅圈的和的最小值(回想等高線的概念並參照3式),而這個值通在很多情況下是兩個曲面相交的地方

可以看到二次正則項的優勢,處處可導,方便計算,限制模型的複雜度,即 mathbf w中M的大小,M是模型的階次,M越大意味著需要決定的權重越多,所以模型越複雜。在多項式模型多,直觀理解是每一個不同冪次的 mathbf x 前的係數,0(或很小的值)越多,模型越簡單。這就數學角度解釋了,為什麼正則化(規則化)可以限制模型的複雜度,進而避免過擬合

不知道有沒有人發現一次正則項的優勢, w^* 的位置恰好是 w_1=0 的位置,意味著從另一種角度來說,使用一次正則項可以降低維度(降低模型複雜度,防止過擬合)二次正則項也做到了這一點,但是一次正則項做的更加徹底,更稀疏。不幸的是,一次正則項有拐點,不是處處可微,給計算帶來了難度,很多厲害的論文都是巧妙的使用了一次正則項寫出來的,效果十分強大

3、How 神經網路模型角度

我們已經知道,最簡單的單層神經網,可以實現簡單的線性模型。而多隱含層的神經網路模型如何來實現正則化?(畢竟神經網路模型沒有目標函數)

M表示單層神經網中隱含層中的神經元的數量

上圖展示了神經網路模型過擬合的直觀表示

我們可以通過一系列的推導得知,未來保持神經網路的一致性(即輸出的值不能被尺縮變換,或平移變換),在線性模型中的加入正則項無法奏效

所以我們只能通過建立驗證集(Validation Set),拉網搜索來確定M的取值(迭代停止的時間),又稱為【提前停止】

這裡有一個尾巴,即神經網路的不變數(invariance),我們並不希望加入正則項後出現不在掌控範圍內的變化(即所謂圖像還是那個圖像,不能亂變)。而機器學習的其中一個核心目的也是去尋找不同事物(對象)的中包含信息的這個不變數(特徵)。卷積神經網路從結構上恰恰實現了這種不變性,這也是它強大的一個原因

4、範數

我並不是數學專業的學生,但是我發現在講完線性模型角度後,有幾個概念可以很輕鬆的解答,就在這裡獻醜把它們串聯起來,並做一些總結以供查閱和對照。

我們知道,範數(norm)的概念來源於泛函分析,wiki中的定義相當簡單明了:範數是具有「長度」概念的函數,用于衡量一個矢量的大小(測量矢量的測度)

我們常說測度測度,測量長度,也就是為了表徵這個長度。而如何表達「長度」這個概念也是不同的,也就對應了不同的範數,本質上說,還是觀察問題的方式和角度不同,比如那個經典問題,為什麼矩形的面積是長乘以寬?這背後的關鍵是歐式空間的平移不變性,換句話說,就是面積和長成正比

沒有測度論就沒有(現代)概率論。而概率論也是整個機器學習學科的基石之一。測度就像尺子,由於測量對象不同,我們需要直尺量布匹、皮尺量身披、捲尺量房間、遊標卡尺量工件等等。注意,「尺子」與刻度(寸、米等)是兩回事,不能混淆。

範數分為向量範數(二維坐標系)和矩陣範數(多維空間,一般化表達),之前看到過一個關於0,1,2範數的回答也很直觀,摘錄在這:

0範數,向量中非零元素的個數。
1範數,為絕對值之和。
2範數,就是通常意義上的模。

4.1、向量範數

關於向量範數,先再把這個圖放著,讓大家體會到構建知識圖譜並串聯知識間的父層級(根)聯繫的好處

4.1.1、p-範數

Vertmathbf x Vert_p =(sumlimits_{i=1}^{N}vert x_i vert^p)^{frac{1}{p}}

向量元素絕對值的p次方和的 frac{1}{p} 次冪。可以敏捷的發現,這個p和之前的q從是一個東西,隨著p越大,等高線圖越接近正方形(正無窮範數);越小,曲線彎曲越接近原點(負無窮範數)

而之前已經說明,q的含義是一般化正則項的冪指數,也就是我們常說的2-範數,兩者在形式上是完全等同的。結合範數的定義,我們可以解釋一般化正則項為一種對待求參數 mathbf w的測度,可以用來限制模型不至於過於複雜

4.1.2、?∞-範數

Vert mathbf x Vert_{-infty} = arg operatorname*{min}_{i}{vert x_i vert}

所有向量元素中絕對值的最小值

4.1.3、1-範數

Vert mathbf x Vert_1 = sumlimits_{i=1}^{N}vert x_i vert

向量元素絕對值之和,也稱街區距離(city-block)

egin{matrix} 4  3  2  3  4 \ 3  2  1  2  3\ 2  1  0  1  2 \ 3  2  1  2 3 \ 43  2 3 4 \ end{matrix}

4.1.4、2-範數

Vertmathbf x Vert_2 = sqrt{sumlimits_{i=1}^{N} x_i^2} :向量元素的平方和再開方Euclid範數,也稱歐幾里得範數,歐氏距離

egin{matrix} 2.82.222.22.8 \ 2.21.411.42.2 \ 21012 \ 2.21.411.42.2 \ 2.82.222.22.8 \ end{matrix}

4.1.5、∞-範數

Vert mathbf x Vert_{infty} = arg operatorname*{max}_{i}{vert x_i vert} :所有向量元素中絕對值的最大值,也稱棋盤距離(chessboard),切比雪夫距離

egin{matrix} 2  3  2  2  2 \ 2  1  1  1  2\ 2  1  0  1  2 \ 2  1  1  1 2 \ 22  2 2 2 \ end{matrix}

4.2、矩陣範數

4.2.1、1-範數

Vert mathbf A Vert_{1} = arg operatorname*{max}_{1 leqslant j leqslant n}sumlimits_{i=1}^m{vert a_{i,j} vert}

列和範數,即所有矩陣列向量絕對值之和的最大值

4.2.2、∞-範數

Vert mathbf A Vert_{infty} = arg operatorname*{max}_{1 leqslant i leqslant n}sumlimits_{j=1}^m{vert a_{i,j} vert}

行和範數,即所有矩陣行向量絕對值之和的最大值

4.2.3、2-範數

Vert mathbf A Vert_{2} = sqrt{lambda_{max}(mathbf A^* mathbf A) }

p=2且m=n方陣時,稱為譜範數。矩陣 mathbf A譜範數mathbf A 最大的奇異值或半正定矩陣 mathbf A^T mathbf A最大特徵值的平方根

mathbf A^*mathbf A 的共軛轉置,實數域等同於 mathbf A^T

4.3.4、F-範數

Vert mathbf A Vert_{F} = sqrt{ sumlimits_{i=1}^m sumlimits_{j=1}^n vert a_{i,j}vert^2 }

Frobenius範數(希爾伯特-施密特範數,這個稱呼只在希爾伯特空間),即矩陣元素絕對值的平方和再開平方

4.3.5、核範數

Vert mathbf A Vert_{*} = sumlimits_{i=1}^n lambda_ilambda_imathbf A矩陣是方陣,稱為本徵值。若不是方陣,稱為奇異值,即奇異值/本徵值之和

5、總結

相信每個人在學習過程中都有過看書時,遇到0-範數正則化,或者1-範數正則化,2-範數正則化的表達時很迷惑。寫到這裡,希望大家能對這些看起來無法理解的晦澀名詞有一個融會貫通的理解和感知

Learning with intuition and Thinking leads to Insight

[Reference]
主要內容來自PRML by Bishop,還有知乎有關範數的回答

以上!鞠躬!


正則化就是對最小化經驗誤差函數上加約束,這樣的約束可以解釋為先驗知識(正則化參數等價於對參數引入先驗分布)。
約束有引導作用,在優化誤差函數的時候傾向於選擇滿足約束的梯度減少的方向,使最終的解傾向於符合先驗知識(如一般的l-norm先驗,表示原問題更可能是比較簡單的,這樣的優化傾向於產生參數值量級小的解,一般對應於稀疏參數的平滑解)。
同時正則化,解決了逆問題的不適定性,產生的解是存在,唯一同時也依賴於數據的,雜訊對不適定的影響就弱,解就不會過擬合,而且如果先驗(正則化)合適,則解就傾向於是符合真解(更不會過擬合了),即使訓練集中彼此間不相關的樣本數很少。


正則化大概有兩個功能:
1,從模型修正上看,起了一個trade-off作用,用於平衡學習過程中兩個基本量,名字諸如bias-variance、擬合能力-泛化能力、損失函數-推廣能力、經驗風險-結構風險等等;
2,從模型求解上看,正則化提供了一種唯一解的可能,眾所周知,光用最小二乘擬合可能出現無數組解,加個L1或L2正則化項能有唯一解,即樓上所言不適定性


減少參數的候選空間,使得模型更加「簡潔」。


首先你得理解Overfitting. 簡單來說,Overfitting就是 你有許多 Feature【幾萬個】,但是你有很少的training data【就一百行數據】. 這樣你就會產生過擬合【很好理解】。那麼如何解決這個問題呢?通常有2種辦法,第一種,人工的去選擇哪些Feature或者一些選擇演算法來完成。第二種辦法是採用 正則化[一種規範化的做法],也就是 Regularization。為什麼要這樣做呢?畢竟這些Feature最後都會對你的預測或多或少的產生影響,所以正則化的意思就是Keep all the feature and reduce Magnitude/values of parameters. 通常預測會很準確當我們有很多Feature的時候。尤其是在圖形圖像,Feature那是相當的多啊,但是我們又不需要丟失Feature.所以需要做 Regularization,通常我們需要選擇一個不錯的正則化參數,不然也會發生underfit【正則化參數非常大的時候,你的所有的因子都會非常非常小,那麼就是一條直線了】。


最最最通俗的理解,loss的一部分,讓模型無法完美匹配的項。


目前覺得,主要兩點:
1:針對學習理論(learning theory),防止過擬合,提高模型的generalization
2:針對Ridge Regression,防止矩陣不可逆
#####################下面是15年5月份的回答############################
參考下這個例子,Coursera公開課筆記: 斯坦福大學機器學習第七課「正則化(Regularization)」
從下面的鏈接中,摘錄如下:
正則化(regularization),常見的介紹方式是:解決 overfitting 最常用的辦法就是 regularization 。
兩個基本例子:ridge regression 與 LASSO (least absolute shrinkage and selection operator) 。
ridge regression
採用L2 regularizer,使得模型的解偏向於 norm 較小的 W,通過限制 W 的 norm 的大小實現了對模型空間的限制,從而在一定程度上避免了 overfitting 。
不過 ridge regression 並不具有產生稀疏解的能力,得到的係數 仍然需要數據中的所有特徵才能計算預測結果,從計算量上來說並沒有得到改觀。
LASSO
採用L1 regularizer,它的優良性質是能產生稀疏性,導致 W 中許多項變成零。
稀疏的解除了計算量上的好處之外,更重要的是更具有「可解釋性」。比如說,一個病如果依賴於 5 個變數的話,將會更易於醫生理解、描述和總結規律,但是如果依賴於 5000 個變數的話,基本上就超出人肉可處理的範圍了。
詳細信息,見鏈接:Sparsity and Some Basics of L1 Regularization


除了r(d)那一項,前面的那一串min什麼的是一個求風險最小化的問題。然而當風險達到最小化時,往往模型就過擬合了, 正則化就是為了平衡這一點,它是一個約束項,使得問題可以即達到最優又不過擬合。

推薦你看一篇博客,機器學習中的範數規則化之(一)L0、L1與L2範數

十分通俗易懂


看這個:http://52opencourse.com/133/coursera%E5%85%AC%E5%B


《統計機器學習》 1.5正則化與交叉驗證
模型選擇的典型方法是正則化。正則化是結構風險最小化策略的實現,是在經驗風險上加一個正則化項或罰項。正則化項一般是模型複雜度的單調遞增函數,模型越複雜,正則化值就越大。比如,正則化項可以是模型參數向量的範數。


核心是避免過擬合(overfitting),兩個插圖的第三種情況。


萌新試答這個國內面試機器學習崗位極其喜歡考的一個問題。

正則化(Regularization)這個詞詞源應該是從PDE里的正則性來的(Regularity)。我們知道對於一個方程,解的存在唯一性和我們選擇的空間的性質是有關的。解空間的正則性不一樣,解的存在唯一性也是不一樣的。

『例如我們考慮熱傳導方程,u_t=u_{xx}, u(x,0)=u_0, uin C_c^infty 的時候解是不唯一的。但是如果我們把解限制在速降函數集當中,就可以唯一了。這個時候,函數衰減的比較快就是我們為了對這個方程解進行約束所加的一些限制。

有些時候方程 mathcal{L}u=f 可能不足以直接給出很好的估計,我們可能會考慮先作弱解在某個弱的空間裡面,再考慮這個弱解有沒有可能通過正則性條件提升到一個強的空間裡面去,從而獲得更好的性質。這個時候,強的空間的條件(限制)就是正則性條件。有些時候我們f上有不錯的條件,這個時候解出來的u也相應地會不錯。

再考慮一個優化裡面的問題。例如在Gradient descent 在凸和強凸兩種(這兩種其實某種意義上也是正則性條件,因為如果沒有假設的情況下GD只能保證收斂到stationary points)情況收斂速度分別是O(1/k)和線性收斂,導致收斂速度的不一樣就是因為目標函數的正則性的不一致。(f是Lipschitz? 凸?強凸?各個特徵值的分布?這些都是可能的正則性)。

再考慮正則在統計學裡面的意義。我們都知道線性回歸可以理解為數據點誤差假設為同方差的高斯分布下做最大似然估計得到的結果。而如果我們給回歸的係數加上高斯或者拉普拉斯先驗就會變成Ridge或者Lasso。這是一個貝葉斯統計上很正確的理解,但是我們也可以拋棄先驗後驗這一套nonsense,純粹地從數值的角度來解釋這個問題: (A^TA)^{-1} 的性質不一定很好(解多重共線性?樣本數比參數少?這樣會導致條件數非常難看),解不一定唯一,這個時候,一個正的alpha可以把問題變成強凸,從而使問題求解變簡單。

最後再看到深度學習當中的意義:卷積神經網路work很大一個原因是因為圖像的低秩性和稀疏性以及邊界的正則性(圖形是正方形?同一個東西出現很多次?)很多流行的trick例如dropout,pruning利用的是學出來的kernel之間可以互相替代這麼的一種低秩的性質。這個時候正則能夠使每層網路的凸性變好一丟丟,同時也可以使得參數的個數減少。


避免overfitting!


對參數假設一個先驗分布,L1正則就是拉普拉斯分布,L2正則是高斯分布


在《Introduction to machine learning》中有一句話,regularization corresponds to approaches where one starts with high variance and constraints toward lower variance, at the risk of increasing bias.
因此,正則化就是犧牲一定的準確性,而增加一定的泛化性能。正則項的選擇則需要根據具體的數據情況而定,而對因子的調參也是非常重要的。


英文原單詞叫regulation,意思如下:

字面意思很簡單,就是調整修正;國內很多英文單詞翻譯的不倫不類!給人造成困擾。


推薦閱讀:

有哪些現代分析方法可以用於解決「紅樓夢續寫爭議」?有哪些例子?
神經網路,人工智慧這塊怎麼入門?
如何看待國人的論文SARM作者將論文從nips撤稿?
對於 Quant 來說, Financial Modeling 和傳統的機器學習方法有什麼聯繫和區別?
Softmax 函數的特點和作用是什麼?

TAG:機器學習 |