最小平方法 2

給定一個矩陣

A 以及一個向量
b
, 我們想要找到一個向量
x
使得
Axb2+x2
最小.

AMm×n,bMm×1,xMn×1.

1. Motivation

1.1 Non-uniqueness

最小平方法

Axb2 問題有時候解並不唯一, 常見的例子例如深度學習裡的神經網路, 他的參數數量通常都遠比資料點數量多非常多. 若我們把
x
看成所有要找的參數的集合, 因此
n
就是參數個數. 然後
b
就是 target 資料集, 所以
m
就是資料個數. 所以常常會有
mn
的情形. 這樣的話
A
的 null space 不為零, 最小平方法的解空間變成了一個 affine subspace, 有無窮多組解.

1.1.1 Sensitivity in prediction

由於有無窮多組解, 因此選的解變異就非常大. 而最怕的情形就是某個參數非常的大. 這樣訓練出來的模型會很敏感, 一點點小擾動預測就差非常多.

舉個極端的例子, 比如說我們要找一個模型

f(x,y)=ax+by, 其中
a,b
是參數. 假設我們只有一筆資料
f(1,1)=0
. 這樣的話我們就只有一個方程式, 也就是, 模型裡的參數必須滿足

a+b=0,

有無窮多解!

如果我們選

(a,b)=(10000,10000). 那這樣我們的模型就是

f1(x,y)=10000x10000y.

然後算一下

f1(0,0)=0 以及
f1(1,0)=10000
, 初始值差
1
不過預測值差
10000
.

如果我們選

(a,b)=(1,1). 那這樣我們的模型就是

f2(x,y)=xy.

因此

f2(0,0)=0 以及
f2(1,0)=1
, 初始值差
1
預測值也差
1
.

所以模型參數的大小會直接影響到模型預測的敏感度. 通常我們希望模型不要太敏感, 因此輸入的資料難免有誤差, 不要因為一點點的誤差就在預測差了十萬八千里. 而一個簡單的做法就是我們不僅要求

Axb2 要小, 我們也要求
x2
要小. 這樣子參數就不會太大了.

1.2 Ill-conditioning

在最小平方法的計算裡需要解

ATAx=ATb 這個系統. 不過
ATA
這矩陣我們只能保證半正定, 所以不一定可以解. 另外, 解這個矩陣也有可能會有很大的誤差 (在數值分析裡我們稱之為 ill-conditioned matrix). 簡單的說如果一個矩陣的 eigenvalue 離
0
很靠近的話, 這個矩陣就會很像 singular matrix, 解起來就會有很大的誤差. 因此我們希望矩陣的 eigenvalue 遠離
0
.

一個簡單的觀察是,

ATA+I 這個矩陣是個正定矩陣, 並且他的 eigenvalues 全都大於等於
1
. 所以
(ATA+I)x=ATb
這個系統就會 well-condition, 解起來誤差不會太大.

2. Ridge regression and its dual problem

首先我們定義

x^ 為找到的那個解, 也就是說, 我們要解以下這個問題

(1)x^=argminxRn(Axb2+x2).

首先觀察可以發現

(2)Axb2+x2=[AI]x[b0]2.

因此, (1) 其實就是個最小平方問題, 只是這個問題的系統變成加大的一個系統而已. 因此我們知道這個問題的解會滿足

(3)[ATI][AI]x^=[ATI][b0],

也就是

(4)(ATA+I)x^=ATb.

接著我們將 (4) 改寫成

(5)x^=AT(bAx^),

並且我們定義一個新變數

α

(6)α=bAx^,

因此我們有

(7)x^=ATα.

接著從 (6) 跟 (7) 我們可以得到

(8)α=bAx^=bAATα,

整理一下得到

α 要滿足的方程式為

(9)(AAT+I)α=b.

最後, 由於

x^=ATα 我們可以得到

(10)x^=AT(AAT+I)1b.

2.1 QR decomposition

我們對

A 做 (reduced) QR 分解得到

(11)A=QR,
where
QTQ=Ir×r
,
QMm×r
and
RMr×n
.

那 least square 問題的解 (4) 可以改寫成

(12)(RTR+I)x^=RTQTb.

而 (10) 則是寫成

(13)x^=RT(RRT+I)1QTb,

3. Conclusion

我們考慮以下最小平方法問題

minxRn(Axb2+x2).

並且我們令最佳解為

x^.

  • 如果
    m>n
    , 我們以下列式子來計算
    x^=(ATA+I)1ATb.
    • 如果對
      A
      做 (reduced) QR,
      A=QR
      , 並且
      QTQ=In×n
      ,
      x^=(RTR+I)1RTQTb.
  • 如果
    m<n
    , 我們以下列式子來計算
    x^=AT(AAT+I)1b.
    • 如果對
      A
      做 (reduced) QR,
      A=QR
      , 並且
      QTQ=In×n
      ,
      x^=RT(RRT+I)1QTb.