為什麼FTRL比FOBOS更容易獲得稀疏解?

個人認為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 在稀疏性和精度上進行平衡


推薦閱讀:

TAG:機器學習 | 計算廣告學 | 凸優化 |