在線最優化求解(Online Optimization)之三:FOBOS
FOBOS (Forward-Backward Splitting)是由John Duchi和Yoram Singer提出的[11]。從全稱上來看,該方法應該叫FOBAS,但是由於一開始作者管這種方法叫FOLOS(Forward Looking Subgradients),為了減少讀者的困擾,作者干脆只修改一個字母,叫FOBOS。
1. 算法原理
在FOBOS中,將權重的更新分為兩個步驟:


前一個步驟實際上是一個標准的梯度下降步驟,后一個步驟可以理解為對梯度下降的結果進行微調。
觀察第二個步驟,發現對的微調也分為兩部分:(1) 前一部分保證微調發生在梯度下降結果的附近;(2)后一部分則用於處理正則化,產生稀疏性。
如果將公式(1)中的兩個步驟合二為一,即將代入
中,有:

令,如果
存在一個最優解,那么可以推斷
向量一定屬於
的次梯度集合:

由於,那么有:

上式實際上給出了FOBOS中權重更新的另一種形式:

我們這里可以看到不僅僅與迭代前的狀態
有關,而且與迭代后的
有關。可能這就是FOBOS名稱的由來。
2. L1-FOBOS
關於FOBOS的收斂性和Regret就不在此討論了,詳情可參見論文[1]。這里我們來看看FOBOS如何在L1正則化下取得比較好的稀疏性。
在L1正則化下,有為了簡化描述,用向量
來表示
用標量
來表示
並將公式(1)等號右邊按維度展開:

我們可以看到,在求和公式中的每一項都是大於等於的,所以公式(2)可以拆解成對特征權重 每一維度單獨求解:

首先,假設是
的最優解,則有
,這是因為:
--------------------------------------------------------------------
反證法:
假設成立,那么有

這與是
的最優解相矛盾,故假設不成立,
成立。
---------------------------------------------------------------------
既然有,那么我們可以分兩種情況來進行討論:
---------------------------------------------------------------------
(1) 當時:
由於,所以
,相當於對
引入了不等式條件
;
為了求解這個含不等式約束的最優化問題,引入拉格朗日乘子,由KKT條件,有:
以及
根據上面的求導等式可得:
再次分為兩種情況:
(a):
由於,所以
;這時有:
;又由於
,所以
。
(b):
這時有;又由於
,所以
綜合(a)(b)的結論,當時,
(2) 當時:
采用相同的分析方法可得,在時有:
---------------------------------------------------------------------
綜合上面的分析,可以得到在FOBOS在L1正則化條件下,特征權重的各個維度更新的方式為:


其中,為梯度
在維度i上的取值。
根據公式(3),我們很容易就可以設計出L1-FOBOS的算法邏輯:
3. L1-FOBOS與TG的關系
公式3)可以看出,L1-FOBOS在每次更新的時候,對
的每個維度都會進行判定,當滿足
時對該維度進行“截斷”,這個判定條件的含義是當一條樣本產生的梯度不足以令對應維度上的權重值發生足夠大的變化時,認為在本次更新過程中該維度不夠重要,應當令其權重為0。
對於L1-FOBOS特征權重的各個維度更新公式(3),也可以寫作如下形式:

比較上式與TG的特征權重維度更新公式,可以發現如果令,L1-FOBOS與TG完全一致。我們可以認為L1-FOBOS是TG在特定條件下的特殊形式。
參考文獻
[1] John Duchi & Yoram Singer. Efficient Online and Batch Learning using Forward Backward Splitting. Journal of Machine Learning Research, 2009