大白話5分鐘帶你走進人工智慧-第十五節L1和L2正則幾何解釋和Ridge,Lasso,Elastic Net迴歸

LHBlog發表於2019-04-28

                                     第十五節L1和L2正則幾何解釋和Ridge,Lasso,Elastic Net迴歸

上一節中我們講解了L1和L2正則的概念,知道了L1和L2都會使不重要的維度權重下降得多,重要的維度權重下降得少,引入L1正則會使不重要的w趨於0(達到稀疏編碼的目的),引入L2正則會使w的絕對值普遍變小(達到權值衰減的目的)。本節的話我們從幾何角度再講解下L1和L2正則的區別。

          L1正則是什麼?|W1|+|W2|,假如|W1|+|W2|=1,也就是w1和w2的絕對值之和為1 。讓你畫|W1|+|W2|=1的圖形,剛好是下圖中方形的線。

仔細思考一下,用一個分類函式去討論,比如第二象限,W1小於零,W2大於零,此時這個絕對值就等於W2-W1=1,在第一象限裡面,它倆都大於零,就把絕對值脫掉,變成W1+W2=1,所以,這是一個分類討論的例子。所以根據4個象限的取值不同,畫出圖中所示的L1正則項等高線的圖。

 L2正則是什麼?$W1^{2}+W 2^{2}=1$,畫出其圖形剛好是個圓形。

無論是L1正則還是L2正則,最後的最優解一定是出現在損失函式和正則等高線的焦點上。為什麼呢,我們反推一下,如果不在焦點,假如說這是一個二維空間,這個例子裡面有兩個W,假如不加正則,能夠使損失函式達到最小值的點也就是目標函式最優解的地方,如果加上了L1正則或者L2正則,原來只使損失函式達到最小值的地方,還能使目標函式達到最小值嗎? 肯定不能,那麼最優解得點它在哪?

假設新的最優點在下圖位置:

因為圓圈是L2正則的等高線,所以L2沒變小,誰變大了,損失項是不是變大了?因為損失函式等高線越往外值越大,所以上圖中這個假設的最優點的損失項,肯定比焦點上的損失項要大。

假設新的最優點在下圖位置:

雖然損失項沒變大,但是這個正則項是不是變大了?所以最優解一定會出現在它們的相切的位置,也就是焦點的位置。

又因為L1正則的等高線圖形是這種方形的,所以最優解更容易出現在軸上。

此時W1=0,W2=1。這個圖在很多書裡面都出現過。但是特別討厭的就是沒有一本書給你解釋這個圖是怎麼個意思?實際上方形和圓形是L1,L2正則的等高線。 而這些彩色的圓圈是loss的等高線,它想解釋的是為什麼L1正則更容易導致某些W變為零,本質上是因為它在空間裡面形成的等高線是尖的,在軸上它會扎到loss的等高線上,而這個圓乎乎的東西L2正則的等高線它不會扎。所以L2正則你再怎麼加,再不重要的特徵,也不會讓它到零。這個是由它的幾何特性決定的,L2它就是一個圓乎乎的東西,L1是一個很尖銳的東西。

接下來我們討論下Ridge迴歸與Lasso迴歸,  Ridge迴歸(嶺迴歸)的公式如下:

                                                                          $\min _{w}\|X w-y\|_{2}^{2}+\alpha\|w\|_{2}^{2}$

你發現它就是一個線性迴歸,加了一個L2正則。再來看下 Lasso迴歸,它就是一個線性迴歸,加了一個L1正則。

                                                                       \min _{w} \frac{1}{2 n_{\text {samples}}}\|X w-y\|_{2}^{2}+\alpha\|w\|_{1}

α是什麼?α是取決於你有多重視正則項,也就是多重視模型簡單程度的,值越大,說明我越想得到簡單的模型。假如你把α調成了很大比如100,就證明我只想要一個簡單的模型,模型錯的多離譜,我並不在乎。假如我們調成了一個0.01,可能簡單性我不是那麼重視,也重視。但是模型一定得相對做好。所以α一般會調到多大?是大於1還是小於1的?一定是小於1的。預設α通常會0.1,0.01,也可以是0.001

我們再看下面關於α的變化與W的對應變化的圖:

這十條線代表10個W,當這個α調到10的-10次方的時候,幾乎你可以認為它壓根就沒加L2正則。這會L2正則影響極小的時候,你發現此時模型訓練出來的W都是一個特別大的權重的模型(200,150,-100等),因為它只追求了損失函式一定要最低。但你看隨著把α的權重越調越大的話,這些線都迅速地被收起來了。僅僅將α調到0.01的時候,此時W就變得很小了,你可以想象α的係數才0.01,因此也不會對錯誤率影響很大。當然這個例子一定是一個特殊情況,現實情況可能不會那麼完美,它不一定會有這麼大作用。但是你可以看到哪怕你α只設了一點點,就比不設強很多,它就能大幅度的簡化掉你模型原來沒有用的大權重,與此同時又沒帶來太高的錯誤率,沒帶來太高的損失,所以通常都會加L2正則。。

Ridge迴歸(嶺迴歸)和Lasso迴歸兩種方式的結合,叫Elastic Net,也就是對損失函式同時增加L1和L2正則。公式如下:

                                           \min _{w} \frac{1}{2 n_{\text { samples }}}\|X w-y\|_{2}^{2}+\alpha \rho\|w\|_{1}+\frac{\alpha(1-\rho)}{2}\|w\|_{2}^{2}

  α是超引數,  ρ是一個新的超引數,它是一個0到1之間的數,當ρ值為0的時候, L1正則就被幹掉了。當ρ值為1的時候,L2正則被幹掉了,當ρ值為0.5或0.6,0.7的時候,就變成了一個兩種正則的混合形式,它兼備了L1跟L2兩項特點。那麼底下這張圖解釋下Elastic Net與Lasso迴歸的對比:

實線為什麼是嶺迴歸,因為隨著α增大,w歸到0上去了。所以加的是L1正則,L1正則會使W為0,因L2正則它都不著急歸為零,但都會使w通通變小,所以你加了L1正則的時候w迅速的縮到0了。Elastic Net它也能讓這個w縮排去,但它縮的比原來晚了一些。比如原來這個藍線Lasso迴歸很快使w變為0,很快縮到0,而Elastic Net相對很慢才使w變為0,縮的較慢。實際上它的應用不是特別多,為什麼不是特別多?因為超引數不好調,你永遠找不到一個最合適的ρ,來平衡他們的關係,並且還能說明白了為什麼你要選這個ρ。如果你說那我就成敗論英雄,我就試哪個ρ對訓練集最好,我就選哪個ρ,這本身是不是就是一種過擬合,就相當於你去迎合你的訓練集的概念上去了。

相關文章