基本介紹
- 中文名:L1範數正則化
- 外文名:L1 regularization
- 別名:稀疏規則運算元
- 別名:lasso
定義,原理,
定義
L1範數(L1 norm)是指向量中各個元素絕對值之和,也有個美稱叫“稀疏規則運算元”(Lasso regularization)。
比如 向量
, 那么A的L1範數為![](/img/b/29f/f0bb21d2fab83b68ff045f7b01e1.jpg)
![](/img/7/315/431b13c92f97e637efaf5e5547fa.jpg)
![](/img/b/29f/f0bb21d2fab83b68ff045f7b01e1.jpg)
原理
成本函式的構建原理
例如我們有一個數學模型的樣子(structure),
,其中x是輸入,y是輸出。
![](/img/d/eae/a167520d0d4a101f0053d31cafdb.jpg)
如果我們已知
,那么我們可以根據任何輸入x的值,知道輸出y的值。這叫預測(prediction)。
![](/img/5/438/5f92c5a393b81b8b908749d320a2.jpg)
因此,問題進化為,我們手裡有很對很多組x對應的y,但是不知道
!我們想通過測量很多組的x和y,來推斷出
為多少。
![](/img/5/438/5f92c5a393b81b8b908749d320a2.jpg)
![](/img/5/438/5f92c5a393b81b8b908749d320a2.jpg)
我們將
T記為
,
記為
。
![](/img/b/89a/631daf5d3c88fed130e9fc6e75f5.jpg)
![](/img/5/017/9617d0855a72966a2458e167f788.jpg)
![](/img/1/6cf/dde41f327a434401567253f7409f.jpg)
![](/img/d/d5d/b5fb725f9690d4ddc4427a98f19e.jpg)
那么原式則寫為![](/img/8/747/ec48467e861bd838b1b24817cef7.jpg)
![](/img/8/747/ec48467e861bd838b1b24817cef7.jpg)
若![](/img/c/204/9e68a8a489823e8c4eb2045fe289.jpg)
![](/img/c/204/9e68a8a489823e8c4eb2045fe289.jpg)
那么![](/img/7/500/2e39710ec5f2362c856a0c7385b5.jpg)
![](/img/7/500/2e39710ec5f2362c856a0c7385b5.jpg)
因此我們現在知道
和
,我們希望通過計算得到
!
![](/img/c/364/5ae1557cdac48c09c225095acd74.jpg)
![](/img/3/063/1383ac041c3595a9683c456ee9f5.jpg)
![](/img/d/d5d/b5fb725f9690d4ddc4427a98f19e.jpg)
我們構建一個方程,這個方程也是最小二乘法的核心
![](/img/f/bf3/702423dea2927ce4c4aebcd61c95.jpg)
線性回歸的本質,就是找到一組
,能夠讓
最小!
![](/img/d/d5d/b5fb725f9690d4ddc4427a98f19e.jpg)
![](/img/0/0e5/44b054dbbc00f96b9d12f1935e11.jpg)
![](/img/0/0e5/44b054dbbc00f96b9d12f1935e11.jpg)
用最小二乘法學習的問題
如果我們的問題是’灰箱‘(grey box)(即我們已經知道數學模型,而不知道參數),直接用最小二乘法找到
是很簡潔的。
![](/img/d/d5d/b5fb725f9690d4ddc4427a98f19e.jpg)
如果我們的問題是‘黑箱’(black box) (即 我們既不知道數學模型,也不知道參數),在擬合時,我們就不知道我們需要用幾階的多項式模型來逼近(或者幾個核函式來逼近(kernel function),為了簡便,不在這裡贅述)。那么我們甚至連
的個數都不知道。
![](/img/d/d5d/b5fb725f9690d4ddc4427a98f19e.jpg)
我們只能通過嘗試和專家經驗來猜測階數。如果我們的階數猜測多了,就會多出很多冗餘的項。我們希望這些冗餘項對應的權值
為0,這樣我們就知道哪些項是無關的,是冗餘的項。
![](/img/0/6a3/94936da0b128fa9b856e629b0350.jpg)
但是只用最小二乘法確定
時,可能所有的
的絕對值都極其巨大,這是很正常的現象,但是它使得我們無法剔除無關項,得到的模型也毫無實際意義,模型處於ill-condition狀態 (即輸入很小的變化,就會引起輸出病態的巨大的變化)。
![](/img/d/d5d/b5fb725f9690d4ddc4427a98f19e.jpg)
![](/img/d/d5d/b5fb725f9690d4ddc4427a98f19e.jpg)
最大複雜度模型+L1正規化(懲罰項)
我們在成本函式中加入L1範數(其實就是懲罰項),成本函式
變為
![](/img/e/093/27a102370d7098651b03934c18a9.jpg)
![](/img/9/8cd/a878033403cd44aff6d5a4c71824.jpg)
其中
是我們用來控制L1正規化影響的權重係數。
![](/img/a/446/ae66859197359084d1bd14a03002.jpg)
因此,我們的目標成為了 : 找到一組
使得
最小!
![](/img/d/d5d/b5fb725f9690d4ddc4427a98f19e.jpg)
![](/img/6/d47/48cf2ab1b4721bd77dac53bdc4b7.jpg)
繼而使用最小二乘法,完成運算。
為什麼要這樣構建成本函式???
如上文所述,監督機器學習問題無非就是“minimize your error while regularizing your parameters”,也就是在規則化參數的同時最小化誤差(最小二乘法的原理)。最小化誤差是為了讓我們的模型擬合我們的訓練數據,而規則化參數是防止我們的模型過分擬合我們的訓練數據。因為參數太多,會導致我們的模型複雜度上升,容易過擬合,也就是我們的訓練誤差會很小。但訓練誤差小並不是我們的最終目標,我們的目標是希望模型的測試誤差小,也就是能準確的預測新的樣本。所以,我們需要保證模型“簡單”的基礎上最小化訓練誤差,這樣得到的參數才具有好的泛化性能(也就是測試誤差也小),而模型“簡單”就是通過規則函式來實現的。另外,規則項的使用還可以約束我們的模型的特性。這樣就可以將人對這個模型的先驗知識融入到模型的學習當中,強行地讓學習到的模型具有人想要的特性,例如稀疏、低秩、平滑等等。