1. 程式人生 > >【直觀詳解】什麼是正則化

【直觀詳解】什麼是正則化

【內容簡介】主要解決什麼是正則化,為什麼使用正則化,如何實現正則化,外加一些對範數的直觀理解並進行知識整理以供查閱

Why & What 正則化

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

首先,從使用正則化解決了一個什麼問題的角度來看:正則化是為了防止過擬合, 進而增強泛化能力。用白話文轉義,泛化誤差(generalization error)= 測試誤差(test error),其實就是使用訓練資料訓練的模型在測試集上的表現(或說效能 performance)好不好

過擬合

如上圖,紅色這條“想象力”過於豐富上下橫跳的曲線就是過擬合情形。結合上圖和正則化的英文 Regularizaiton-Regular-Regularize,直譯應該是:規則化

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

我的思考模式的中心有一個理念:每一個概念被定義就是為了去解決一個實際問題(問Why&What),接著尋找解決問題的方法(問How)

,這個“方法”在計算機領域被稱為“演算法”(非常多的人在研究)。我們無法真正衡量到底是提出問題重要,還是解決問題重要,但我們可以從不同的解決問題的角度來思考問題。一方面,重複以加深印象。另一方面,具有多角度的視野,能讓我們獲得更多的靈感,真正做到連結並健壯自己的知識圖譜

How 線性模型角度

對於線性模型來說,無論是Logistic Regression、SVM或是簡單的線性模型,都有一個基函式 ϕ()ϕ(),其中有很多 ww (引數)需要通過對損失函式 E()E() 求極小值(或最大似然估計)來確定,求的過程,也就是使用訓練集的訓練過程:梯度下降到最小值點。最終,找到最合適的 ww 確定模型。

從這個角度來看,正則化是怎麼做的呢?

二次正則項

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

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

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

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

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

這是最小二乘法的解形式,所以在題目中寫的是從“最小二乘角度”。至於為何正則化項是 在之後馬上解釋

一般正則項

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

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

q=2就是二次正則項。高維度沒有影象表徵非常難以理解,那就使用二維作為特例來理解。這裡令M=2,即 x={x1,x2} w={w1,w2}x={x1,x2}w={w1,w2} ,令q=0.5 q=1 q=2 q=4 有

正則項的邊緣直觀表示

橫座標是w1 縱座標是w2 綠線是等高線的其中一條,換言之是一個俯檢視,而z軸代表的是 的值

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

正則項的邊緣直觀表示

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

正則項的邊緣直觀表示

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

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

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

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

How 神經網路模型角度

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

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

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

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

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

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

範數

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

我們知道,範數(norm)的概念來源於泛函分析與測度理論,wiki中的定義相當簡單明瞭:範數是具有“長度”概念的函式,用於衡量一個向量的大小(測量向量的測度)

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

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

範數分為向量範數(二維座標系)和矩陣範數(多維空間,一般化表達),如果不希望太數學化的解釋,那麼可以直觀的理解為:0-範數:向量中非零元素的數量;1-範數:向量的元素的絕對值;2-範數:是通常意義上的模(距離)

向量範數

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

正則項的邊緣直觀表示

p-範數

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

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

−∞-範數

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

1-範數

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

2-範數

向量元素的平方和再開方Euclid範數,也稱歐幾里得範數,歐氏距離

∞-範數

所有向量元素中絕對值的最大值,也稱棋盤距離(chessboard),切比雪夫距離

矩陣範數

1-範數

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

∞-範數

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

2-範數

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

A∗為 A 的共軛轉置,實數域等同於 AT

F-範數

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

核範數

若 AA 矩陣是方陣,稱為本徵值。若不是方陣,稱為奇異值,即奇異值/本徵值之和

總結

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

Learning with intuitive and get Insight

以上!鞠躬!