1. 程式人生 > >Lasso估計論文學習筆記(一)

Lasso估計論文學習筆記(一)

最近課程作業讓閱讀了這篇經典的論文,寫篇學習筆記。

主要是對論文前半部分Lasso思想的理解,後面實驗以及引數估計部分沒有怎麼寫,中間有錯誤希望能提醒一下,新手原諒一下。

1.整體思路

  作者提出了一種收縮和選擇方法Lasso,這是一種可以用於線性迴歸的新的估計方法。它具有子集選擇和嶺迴歸的各自的優點。像子集選擇一樣可以給出具有解釋力的模型,又能像嶺迴歸一樣具有可導的特性,比較穩定。同時避免了子集選擇不可導,部分變化引起整體巨大變化這一不穩定的缺點。以及嶺迴歸不能很好的收縮到0的缺點。

2.對文章目的理解

  為了理解這篇文章是做了什麼事情,先要明白迴歸的收縮和選擇是用來做什麼的。

  我們用某一個模型F來回歸擬合某一問題時,往往容易遇到過擬合的問題。這是經常是由於,模型過於複雜,比如引數過多,變數指數過高。過度擬合了訓練資料,導致模型的泛化能力變差。這是需要引入正則化項(懲罰項)來使模型最後訓練的結果不至於太過於複雜(過擬合)。

  正則化一般具有如下形式:

是經驗風險。J(f)是正則化項,就代表了對模型複雜度的懲罰,只要它能做到模型越複雜,J(f)值越大。所以最小化損失函式時,就會令經驗風險儘量小的同時,考慮讓模型複雜度也不要太大。這樣雖然會提高模型的訓練誤差,甚至可能某些正則化操作會使模型偏差(Bias)變大,但是會提高模型的穩定程度(方差更小,模型更簡單),減少模型的泛化誤差。

  這裡有兩個問題!

(1)  模型的簡單體現在什麼方面?(模型如何簡化)

(2)  正則化是怎麼讓模型變簡單的?

  先說問題(1),考慮模型。向量X是特徵向量,向量W是其對應的引數。模型複雜,一是體現在特徵過多,第二是體現在X的指數過高。那麼如何令模型變得簡單呢,自然而然的想到若某些引數為0,那麼就相當於不考慮這些特徵Xi了(這就是子集選擇的思想)。或者令某些引數縮小,這樣不重要的特徵對結果造成的影響也會變小(這就是shrinkage的思想)。當然有些引數在縮小過程中會變成0,這就是在收縮過程中起到了子集選擇的效果。

  那麼關鍵的來了,問題(2)正則化是怎麼讓模型變簡單的呢。上一段分析出,如果讓某些不重要的引數進行收縮,能夠使模型變得簡化。再來看看正則化的例子: 

  以J(f)取||w||為例,可以看出,如果引數W越多,或者整理模的平方和越大,||w||就越大。所以在最小化代價函式的過程,就會考慮讓引數的平方和也儘可能小(整體最小的前提下)。所以設不加正則化項的估計出的向量為,加了正則化項的估計出得引數向量為。那麼可以看出。所以正則化項起到了shrinkage引數的效果,如果有些引數在收縮過程中精確到0,就相當於子集選擇的效果(我們是希望這樣的)。

  那麼這篇文章的目的就可以理解了,作者提出的Lasso就是一種具有嶺迴歸(可導可直接求最小值)和子集選擇(部分引數為0)的優點的估計方法(也可以說一種正則化的方法)。

 3.方法對比及Lasso引入

  之前是在word寫的,這裡為了方便截圖一下。