Online learning系列:从RDAFOBOS到FTRL
Posted luchi007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Online learning系列:从RDAFOBOS到FTRL相关的知识,希望对你有一定的参考价值。
前言
在一般的机器学习任务中,往往是通过batch的训练方法进行离线训练,然后线上进行预测,通常离线模型更新的时间在1天以上,这就使得模型不能及时学到实时的特征;另一方面,如果要进行实时训练的话,需要特征尽量稀疏,因为大规模的机器学习往往伴随着大量的参数,如果做不到特征计量稀疏的话,实时预估时延就会很大,这个时候就要用到online learning的一些方法,其目的是在提高训练参数稀疏性的同时,也提高训练精度。
梯度下降法
最原始的也是最简单的参数更新的方法是梯度下降法,即:
W
(
t
+
1
)
=
W
t
−
η
t
∗
ℓ
W
(
W
t
,
Z
)
W_(t+1) = W_t - \\eta_t *\\ell_W(W_t,Z)
W(t+1)=Wt−ηt∗ℓW(Wt,Z)
当然这里可以加batch进行梯度更新,这种更新方法存在的问题就是很难产生稀疏的特征,不适合online learning的场景。
l1正则
在机器学习任务中,我们知道,可以加l1正则来使得特征变的稀疏,如:
W
(
t
+
1
)
=
W
t
−
η
t
∗
(
ℓ
W
(
W
t
,
Z
)
+
λ
s
g
n
(
W
t
)
)
W_(t+1) = W_t - \\eta_t *(\\ell_W(W_t,Z) + \\lambda sgn(W_t))
W(t+1)=Wt−ηt∗(ℓW(Wt,Z)+λsgn(Wt))这样能保持参数更新尽量趋近0,这种方法可以一定程度上增大稀疏性
截断梯度法TG
梯度截断法是在l1的正则基础上提出的一种变体,其更新方式是:
W
t
+
1
=
T
1
(
W
t
,
η
t
∗
(
ℓ
W
(
W
t
,
Z
)
,
η
t
∗
λ
s
g
n
(
W
t
)
)
W_t+1 = T_1(W_t, \\eta_t *(\\ell_W(W_t,Z),\\eta_t* \\lambda sgn(W_t))
Wt+1=T1(Wt,ηt∗(ℓW(Wt,Z),ηt∗λsgn(Wt))其中
T
1
T_1
T1的表达式是
T
1
(
v
,
a
,
θ
)
=
m
a
x
(
0
,
v
−
a
)
i
f
v
∈
[
0
,
θ
]
m
i
n
(
0
,
v
+
a
)
i
f
v
i
n
[
−
θ
,
0
]
v
o
t
h
e
r
w
i
s
e
T_1(v,a,\\theta)=\\left\\ \\beginaligned & max(0,v- a) \\quad if \\quad v \\in [0,\\theta]\\\\ & min(0,v+a) \\quad if \\quad v in [-\\theta,0] \\\\ & v \\quad otherwise \\endaligned \\right.
T1(v,a,θ)=⎩⎪⎨⎪⎧max(0,v−a)ifv∈[0,θ]min(0,v+a)ifvin[−θ,0]votherwise
TG和L1正则的对比图:
可以看出的是,TG比L1正则更加柔和了一点,但是这两种方法还是非常的“武断”和“粗糙”
Regularized Dual Averaging Algorithm(RDA)
这里就有人提出了新的在线学习参数更新方法,特征权重更新方式是:
W
t
+
1
=
a
r
g
m
i
n
w
1
t
∑
i
=
1
t
g
i
⋅
w
+
ψ
(
w
)
+
β
t
t
h
(
w
)
W_t+1 = argmin_w\\ \\frac1t\\sum_i=1^tg_i \\cdot w+\\psi(w)+\\frac\\beta_tth_(w) \\
Wt+1=argminwt1i=1∑tgi⋅w+ψ(w)+tβth(w)
其中
ψ
(
w
)
\\psi(w)
ψ(w)是正则项,
h
w
h_w
hw是一个严格凸函数。
RDA的l1正则化
这里我们讨论RDA的l1正则化,即更新方式为:
W
t
+
1
=
a
r
g
m
i
n
w
1
t
∑
i
=
1
t
g
i
⋅
w
+
λ
∣
w
∣
+
γ
2
t
∣
w
∣
2
2
W_t+1 = argmin_w\\ \\frac1t\\sum_i=1^tg_i \\cdot w+\\lambda|w|+\\frac\\gamma2\\sqrtt|w|_2^2 \\
Wt+1=argminwt1i=1∑tgi⋅w+λ∣w∣+2tγ∣w∣22
现在我们去求解这个更新值
令
g
1
:
t
ˉ
=
1
t
∑
i
=
1
t
g
i
\\barg_1:t=\\frac1t\\sum_i=1^tg_i
g1:tˉ=t1i=1∑tgi
则原式变为:
W
t
+
1
=
a
r
g
m
i
n
w
g
1
:
t
ˉ
⋅
w
+
λ
∣
w
∣
+
γ
2
t
∣
w
∣
2
2
W_t+1 = argmin_w\\\\barg_1:t \\cdot w+\\lambda|w|+\\frac\\gamma2\\sqrtt|w|_2^2 \\
Wt+1=argminwg以上是关于Online learning系列:从RDAFOBOS到FTRL的主要内容,如果未能解决你的问题,请参考以下文章
Online learning in higher education
在 Scikit learn 中处理 Passive Aggressive Online Learning 中的类不平衡
在线学习和在线凸优化(online learning and online convex optimization)—FTL算法5