為什麼FTRL比FOBOS更容易獲得稀疏解?
01-11
個人認為FOBOS和FTRL在迭代公式上的表達式一樣的,為什麼說FTRL比FOBOS更容易獲得稀疏解呢?
FOBOS迭代公式:
將1式帶入2式,得到
紅圈的部分是FOBOS的迭代公式。
FTRL的迭代公式如下:
所以兩者幾乎是等價的,為什麼FTRL比FOBOS更容易獲得稀疏解?
我還是自己回答一下這個問題吧,其實之前對RDA,FOBOS,FTRL的迭代公式有一些誤解,可以參考如下三個公式:
L1-FOBOS:
L1-RDA:
FTRL:
我們可以看到三者在是否累計梯度,本次迭代是距離0最小還是距離上次迭代的結果Wt最小。
- FTRL和RDA是積累每次迭代的梯度
FOBOS只利用上一次迭代的梯度,而不積累:
- FTRL和FOBOS每次迭代都保證和上一次的迭代結果距離不會太遠:
RDA則保證了迭代結果不會距離0太遠
綜上所述,FTRL和FOBOS還是不同的。
1)L1—FOBOS實際是TG的特殊形式,在FOBOS中進行階段的時候,階段判斷閾值會隨著t的增加逐漸減小,而FTRL 閾值是一個常數,固定不變,可以得到更好的稀疏解
2)FOBOS在針對每次結果的判定,這會導致有些維度訓練不充分而進行截斷,而FTRL是每次結果的累加進行判定,且可以引入一個lambda 在稀疏性和精度上進行平衡
推薦閱讀: