FTRL 笔记


  这篇笔记主要参考冯杨的五篇博客:在线最优化求解(Online Optimization)。因为对于在线学习方法,稀疏性问题需要特别关注:每次在线学习一个新 instance 的时候,优化方向并不一定是全局最优,不容易产生稀疏解,而简单截断又可能将从全局看不该稀疏掉的特征变为零。所以这里以 L1 正则为基础,比较几种在线学习算法。

0,预备

每个 instance 由特征向量和预测目标组成: (x,y) 。其中 xRN,y{0,1} 。第 t 个新样本标记为 (x(t),y(t))

模型预测值:

p=σ(wx)=11+ewx

经验损失函数采用交叉熵的形式:

0(w)=ylogp(1y)log(1p)

经验损失对权重的梯度,后面用 g 表示:

g0(w)=(py)x

1,L1 正则

基本的 L1 正则逻辑回归方法,在经验损失函数中直接加入 L1 正则项 (w)=0(w)+λ|w| ,然后直接优化。在某一方向上的梯度为:

(w)=g+λ |wt|

迭代方式:

wt+1=wtη=wtηgtηλwt
其中 η>0 是学习率。 |wi| 在 0 处非光滑,故需要使用次梯度来代替,即使用一些截断方法。

1.1 截断方式:

  1. 简单截断法:
    从上面的更新公式可以看出,L1 正则的作用是,如果 wti>0 ,将 w 在 沿梯度下降方向移动后,再减去一个常数; 如果 wti<0,则是加上一个常数。总之使其向 0 靠拢。下面就是一种简单的截断方法,使得如果经过 L1 正则修正后越过 0,则直接置为 0,从而实现有效稀疏性。

    wt+1i=T0(wtiηgti, ηλ)T0(x,y)={0,xif |x|yotherwise

  2. 截断梯度法(TG)
    相比上面方法不那么粗暴,在两端接近被截断的小范围 θ 内,向横轴移动一段,使其近 0 端达到 0。当 θ=ηλ 时,与上面的简单截断法相同。

    wt+1i=T1(wtiηgti, η λ, θ)T1(x,y,z)=0,xy,xif |x|yif |x|(y,z)if |x|>z

这两种截断方法在更新时都会取窗口 k ,每 k 步做一次截断。 t%k0 时不截断(令 λ=0 )。

2,L1-FOBOS

(2.1) 优化目标

Forward-Backward Splitting,是由 John Duchi 和 Yoram Singer 提出的。

FOBOS 中模型的更新分为如下两步,优先沿经验损失减小的方向优化,然后在尽量与上一步结果偏离不太远的情况下,最小化正则项 Ψ(w) 。这样不需要设定截断规则,就能得到类似的结果。

wt+12=wtηtgtwt+1=argminw{12wwt+122+η12 Ψ(w)}

把第一个式子代入第二个,由极小值时梯度为零易得:

wt+1=wtηtgtηt+12 Ψ(wt+1)

可以看出,这里与直接的 L1 正则损失的唯一区别是,这里有两个 η ,而在前面这两个 η 是相等的。

(2.2) L1 正则下的求解

L1-FOBOS 就是在上面取 L1 正则 Ψ(w)=λ |w| 。引入记号 v=wηg ,以及 λ~=ηt+12λ ,则前面的优化问题重新写为分量形式:

wt+1i=argminwi{12(wivi)2+λ~|wi|}

假设最优解是 wi ,后面省去下标 i

  1. wv0
    证明:
    因为 w 是最优解,所以有

    12(wv)2+λ~|w|12v2
    w=0 时取等号。从而得到
    wvw2+λ~|w|0

    • v0 时:
      w0 ,引入拉格朗日乘子 β>0 和约束条件 βw=0 ,优化目标

      12(wv)2+λ~wβw
      易得极小值时的解 w=vλ~+β

      • w>0 , 此时有 β=0 v>λ~ w=vλ~
      • w=0 ,则有 vλ~+β=0 , β0 ,所以 vλ~

      综合结果

      w=max(0,vλ~)

    • v<0 时:
      类似上面的方法,得到

      w=max(0,vλ~)

    • 综合以上结果,可得:

      wt+1=sgn(vi)max(0,|vi|λ~)=0,viλ~,vi+λ~,if |vi|λ~if vi>λ~if vi<λ~

      3. L1-RDA

      RDA(Regularized Dual Averaging),由微软的 Lin Xiao 在 2010 年提出。优化目标是最小化 {12g1:tw+Ψ(w)+βtth(w)} ,其中 g1:t=ts=1gs Ψ(w) 是正则项, βt 是非负非自减序列, h(w) 是辅助的严格凸函数。

      L1-RDA 具体的更新策略如下:

      wt+1=argminw{12g1:tw+λ|w|1+γ2tw22}
      其中 λ>0 , γ>0 。为求解方便,令 g¯ti=12g1:ti , 写出最小化问题的分量形式:
      minwi{g¯tiwi+λ|wi|+γ2tw2i}

      求上式梯度,并直接令梯度为零来寻找最优解 wi

      g¯ti+λξ+γtwi=0
      其中 ξ=wi 是正则项在最优点的次梯度,满足:
      ξ=1,1,(1,1)if wi>0if wi<0if wi=0

      分情况分析:
      1. g¯ti<λ ,

      • wi=0 , 则有 ξ=gλ(1,0] , 满足条件。
      • wi>0 , 则 ξ=1 g+λξ+γtwi>g+λ0 ,条件相斥。
      • wi<0 ,则 ξ=1 gλ+γtwi<0 ,也不满足
        所以此时 wi=0

      2 . g¯ti>λ

      • wi=0 ,则有 ξ=gλ(,0) , 不满足
      • wi>0 , 则有 ξ=1 g+λξ+γtwi=tγg+λ0 ,不满足
      • wi<0 ,则有 ξ=1 wi=tγ(gλ)<0 ,满足条件
        所以此时 wi=tγ(g¯iλ)

      3 . g¯ti<λ

      • wi=0 ,则有 ξ=gλ(1,+) , 不满足
      • wi>0 , 则有 ξ=1 wi=tγ(g+λ)>0 ,与假设一致
      • wi<0 ,则有 ξ=1 wi=tγ(gλ)>0 ,与假设矛盾
        所以此时 wi=tγ(g¯ti+λ)

      综上可得更新方式:

      wt+1i={0,tγ(g¯tiλ sgn(g¯ti))if g¯ti<λif g¯ti>λ

      总结,RDA 主要计算每一维的累积平均梯度,与 λ 相比来做截断,更新权重。更新的幅度与迭代次数 t 直接相关,但在模型的构建中,并不需要指定学习步长。

      Algorithms

      1. input λ γ

      2. initial wRN gRN
      3. for t=1,2,3, , do
        gt1tg+1t(w)
        refresh w by
        wi={0,if |gi|<λ tγ(giλ sgn(gi))if |gi|>λ
      4. end
      5. return w
      6. 4,FTRL

        L1-FOBOS 的优化目标分量形式可写为:

        minw{12(wiwtiηtgti)2+ηtλ|wi|}=minw{12(wiwti)2+wiηtgti+ηtλ|wi|+const}=minw{12ηt(wiwti)2+wigti+λ|wi|}

        由此重新写出更新公式:

        wt+1=argminw{gtw+λw1+12ηtwwt22}

        而 L1-RDA 的更新策略可以写为:
        wt+1=argminw{g1:tw+λw1+12ηtw022}

        引入替代“更新步长“的量 σs=1ηs1ηs1 ,则有 σ1:tts=1σs=1ηt 。上面两种模型,L1_FOBOS 和 L1-RDA 的更新策略重新写为:

        wt+1=wt+1=argminw{gtw+λw1+12σ1:twwt22}argminw{g1:tw+λw1+12σ1:tw022}
        其区别于相似之处非常明显。

        FTRL结合两种特点,更新策略为:

        wt+1=argminw{g1:tw+λ1w1+12λ2w22+12s=0tσswws22}

        为了求解,将上式整理为:

        wt+1==argminw{(g1:ts=1tσsws)w+λ1w1+12(λ2+σ1:t)w22+const}argminw{ztw+λ1w1+12(λ2+σ1:t)w22}

        其中已引入 ztts=1(gsσsws)

        类似于之前的方法,首先将上式写成分量形式 minw{zti wi+λ1|wi|+12(λ2+σ1:t)w2i} ,分析即可得到结果:

        wt+1t={0,1λ2+σ1:t(ztiλ1 sgn(zti)),if |zi|<λ1if |zi|>λ1

        建议的学习步长的取值方式为:

        σ1:ti=1ηti=β+ts=1(gsi)2α
        即不同特征的权重的更新步长也不相同。

        Algorithm

        input α , β , λ1 , λ2
        initialize wRN , z=0⃗ RN , n=0⃗ RN
        for t=1,2,3,... , do
        g=(w;xt,yt)
        for i=1,2,3,...,N , do
        σi=1α(ni+g2ini)
        zizi+(giσiwti)
        nini+g2i
        wi={0,if |zi|λ1 (β+niα+λ2)1(zisgn(zi)λ1)otherwise
        end for
        end for

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值