前言
前面讲了这么多,如果没法简单方便地求解
xt+1=argminx[h0:t(x)]
,岂不是开心不起来了。
对SGD,是可以顺利地求得封闭解的,这个前面的文章已经有讨论。
对一般形式下
h
,还能很方便地求解么?什么情况封闭解是可以求得的?下面仅给出几个一般样式的解。
不同形式h 的解
1)
x∗=argminx∈R|x|
x∗=sign(x)
2)
x∗=argminx∈R[12(b−x)2+λ|x|]
,???。
x∗=⎧⎩⎨⎪⎪0(1−λ|b|)b,|b|<λ,other
3)
x∗=argminx∈Rn||x||1=maxs∈{−1,+1}nsTx
x∗k=⎧⎩⎨⎪⎪[−1,1]1−1,xk=0,xk>0,xk<0
4)
x∗=argminx∈Rn||x||2
x∗=⎧⎩⎨⎪⎪⎪⎪{x||x||2}{g|||g||2≤1},x≠0,x=0
5)
x∗=argminx∈Rn[bx+λ||x||1+σ2||x||22],λ≥0,σ>0
x∗k=⎧⎩⎨0−12(bk−λ∗sign(bk)),|bk|≤λ,otherwise
待解问题
针对在线学习
xt+1=argminx[f1:t(x)+r0:t(x)]
的各种不同版本,如何求解是个问题。
假设
ft(x)
损失函数是凸函数,则可以通过凸函数的性质和Regret放缩定理,定义
f^t(x)=gtx
,而不影响最值求取。
这个假设,一是为了方便求解计算,二是实际问题中构造损失函数也多为凸函数。
1)
rt(x)
为origin-central形式的,比如
rt(x)=σt2||x||22
则
h0:t=f1:t(x)+rt(x)=g1:tx+σt2||x||22
2)
rt(x)
为proximal形式的,比如
rt(x)=σt2||x−xt||22
则
h0:t=f1:t(x)+rt(x)=g1:tx+σt2||x−xt||22
,其中
||⋅||22
可以拆开。
3) 在其他约束下的
xt+1
求解,比如
x∈χ
或者
||x||2≤λ
或者
||x||1≤λ
则
xt+1=argminx∈χ[g1:tx+r0:t(x)]
。每次先求
x∈χ
约束下的解,再投射到
χ
上求解。
或
h0:t=g1:tx+rt(x)+λ(||x||2−1)
类似
4)FTRL-Proximal with
x∈χ
xt+1=argminx∈χ[g1:tx+σ0:t2||x−xt||22+λ||x||1]
=argminx∈χ[(g1:t+σ0:txt)x+σ0:t2||x||22+λ||x||1+constant]
可以每次迭代先求无
x∈χ
约束的解,利用上面的(5)解得
ut+1
,
ut+1={0−1σ0:t[zt,i−λ∗sign(zt,i)],|zk,i|<λ,other
其中,
zt,i=g1:t,i+σ0:t,ixt,i
然后,再投射到
χ
上,
xt+1=argminx∈χ||x−ut+1||2
,得到当次解。
思考
1)
f1:t(x)+r0:t(x)
是一个整体,只要满足整体是强凸函数即可,在前面的上限可期证明中可知。若
ft(x)
是凸函数,则可以不用
rt(x)
,在直接计算
xt+1=argminxf1:t(x)
。
2) 若需要引入第三个Regular项到
h
,也需要使得h0:t 满足强凸条件。
3) 这里所研究的都是在
xt+1=argminx[loss1:t(x)+r0:t(x)]
或者
xt+1=argminx[h0:t(x)]
形式下的在线学习方式,其他也可以开发出其他的在线方法。大道万千,殊途同归,都是为了模型更稳定和更小的预测误差。
4) 为什么会用
ηt=1σ0:t
来表示学习率和强凸参数的关系?该等式等价于
σt=1ηt−1ηt−1
,其中学习率
ηt
是个非增函数。
5)
ηt
的构造思路是什么?其中
R和G
是根据实际的loss函数函数和
x
的约束来给出的吗?为什么?
6) 再思考下r0:t(x)=σ0:t2||x−xt||22 与
h0:t(x)
的解的关系。
7)关于封闭解,有个思路是取
xt
使得
0∈∂F(xt)
,对试探构造封闭解有帮助,对证明也有帮助。
8)传统学习与在线学习的区别。
前者已知样本总量,对模型的误差可以有期望估计,直接求目标函数的最优解;后者是未知样本量,无法估计模型的期望误差,只能采取收敛误差的方式,不发散即为胜利。
小结
0)解决的问题:A,什么情况下,是误差收敛的。B,给出了一般形式下的封闭解样式。
1)
ηt
的构造原理,未完全解决。
2)封闭解的问题,没有完全解决,没有给出一个通用性强的解形式或者求解思路。
3)代码实现,没有。
有github上,别人实现的代码:https://github.com/CastellanZhang/alphaFM/blob/master/src/FTRL/ftrl_trainer.h
4)主要讨论的是
xt+1=argminx[h0:t(x)]
形式下的上限收敛问题。
关于
h0:t(x)
的组成,可以选择任意符合误差上限收敛条件的函数。
h0:t(x)
主要形式有两种:
h0:t(x)=f1:t(x)+r0:t(x)
h0:t(x)=f1:t(x)+r0:t(x)+α1:tΨ(x)
5)在线优化理论,是对凸函数的充分利用的理论。涉及到凸函数的性质,和凸函数间关系性质。
假设 ft(x) 损失函数是凸函数,则可以通过凸函数的性质和Regret放缩定理,定义 f^t(x)=gtx ,而不影响最值求取。
这个假设,一是为了方便求解计算,二是实际问题中构造损失函数也多为凸函数。
1) rt(x) 为origin-central形式的,比如 rt(x)=σt2||x||22
则 h0:t=f1:t(x)+rt(x)=g1:tx+σt2||x||22
2) rt(x) 为proximal形式的,比如 rt(x)=σt2||x−xt||22
则 h0:t=f1:t(x)+rt(x)=g1:tx+σt2||x−xt||22 ,其中 ||⋅||22 可以拆开。
3) 在其他约束下的 xt+1 求解,比如 x∈χ 或者 ||x||2≤λ 或者 ||x||1≤λ
则 xt+1=argminx∈χ[g1:tx+r0:t(x)] 。每次先求 x∈χ 约束下的解,再投射到 χ 上求解。
或 h0:t=g1:tx+rt(x)+λ(||x||2−1) 类似
4)FTRL-Proximal with x∈χ
xt+1=argminx∈χ[g1:tx+σ0:t2||x−xt||22+λ||x||1]
=argminx∈χ[(g1:t+σ0:txt)x+σ0:t2||x||22+λ||x||1+constant]
可以每次迭代先求无 x∈χ 约束的解,利用上面的(5)解得 ut+1 ,
ut+1={0−1σ0:t[zt,i−λ∗sign(zt,i)],|zk,i|<λ,other
其中, zt,i=g1:t,i+σ0:t,ixt,i
然后,再投射到 χ 上, xt+1=argminx∈χ||x−ut+1||2 ,得到当次解。
2) 若需要引入第三个Regular项到 h ,也需要使得
3) 这里所研究的都是在 xt+1=argminx[loss1:t(x)+r0:t(x)] 或者 xt+1=argminx[h0:t(x)] 形式下的在线学习方式,其他也可以开发出其他的在线方法。大道万千,殊途同归,都是为了模型更稳定和更小的预测误差。
4) 为什么会用 ηt=1σ0:t 来表示学习率和强凸参数的关系?该等式等价于 σt=1ηt−1ηt−1 ,其中学习率 ηt 是个非增函数。
5) ηt 的构造思路是什么?其中 R和G 是根据实际的loss函数函数和 x 的约束来给出的吗?为什么?
6) 再思考下
7)关于封闭解,有个思路是取 xt 使得 0∈∂F(xt) ,对试探构造封闭解有帮助,对证明也有帮助。
8)传统学习与在线学习的区别。
前者已知样本总量,对模型的误差可以有期望估计,直接求目标函数的最优解;后者是未知样本量,无法估计模型的期望误差,只能采取收敛误差的方式,不发散即为胜利。
1) ηt 的构造原理,未完全解决。
2)封闭解的问题,没有完全解决,没有给出一个通用性强的解形式或者求解思路。
3)代码实现,没有。
有github上,别人实现的代码:https://github.com/CastellanZhang/alphaFM/blob/master/src/FTRL/ftrl_trainer.h
4)主要讨论的是 xt+1=argminx[h0:t(x)] 形式下的上限收敛问题。
关于 h0:t(x) 的组成,可以选择任意符合误差上限收敛条件的函数。
h0:t(x) 主要形式有两种:
h0:t(x)=f1:t(x)+r0:t(x)
h0:t(x)=f1:t(x)+r0:t(x)+α1:tΨ(x)
5)在线优化理论,是对凸函数的充分利用的理论。涉及到凸函数的性质,和凸函数间关系性质。