(一)RDA(Regularized Dual Averaging)
是微软的研究成果,它更有效地提升了特征权重的稀疏性。
算法原理--特征权重的更新策略为:---公式(1)
其中表示梯度对W的积分中值;表示正则项;h(W)表示一个辅助的严格凸函数;是一个非负且非自减序列。
L1-RDA
令:,,,将公式(1)L1正则化
根据特征权重的各个维度将其拆解成N个独立的标量最小化问题:
即
这里,,假设是最优解
次导数 ---公式(2)
令
求导并令等于0:
(1)当时,,得
(2)当时,,则,即
(3)当时,,则,即
综合可知,L1-RDA特征权重的各个维度更新的方式为:
L1-RDA的“截断阈值”为λ,是一个常数,并不随着t而变化,因此这种性质使得L1-RDA更容易产生稀疏性。某一维特征的梯度累加中值未达到“截断阈值”时,其特征权重仍置为0。
(二)FOBOS(Forward-Backward Splitting)
算法原理---把正则化的梯度下降问题分成一个经验损失梯度下降迭代和一个最优化问题:其中第二个最优化问题有两项:第一项2范数那项表示不能离loss损失迭代结果太远,第二项是正则化项,用来限定模型复杂度、抑制过拟合和做稀疏化等。
其中是学习率,通常定义为的正相关函数;是正则项;
更新后的不仅和有关,还和自己有关。这也许就是”前向后向切分”这个名称的由来;
L1-FOBOS
令是已知的,,,并拆解成对特征权重 每一维度单独求解:
假设是最优解,有
反证法:
假设成立,则,则此时最优解是,与假设矛盾。得证:。
wi的次导数见上面的公式(2)
求导:
(1)当时,
(2)当时,,
(3)当时,,
综合可知,L1-FOBOS特征权重的各个维度更新的方式为:
L1-RDA VS L1-FOBOS
在L1-FOBOS中,“截断阈值”随着时间t会逐渐减低,而L1-RDA是固定的,这种性质使得L1-RDA更容易产生稀疏性;RDA中判定对象是梯度的累加平均值,而L1-FOBOS针对单次梯度计算的结果进行判定,使得L1-RDA避免了由于某些维度由于训练不足导致截断的问题。
实验证明,L1-FOBOS这一类基于梯度下降的方法有比较高的精度,但是L1-RDA却能在损失一定精度的情况下产生更好的稀疏性。
(三)FTRL(Follow the Regularized Leader)
-----公式(3)
公式(3)中出现了L2正则项,在论文[2]的公式中并没有这一项,但是在其2013年发表的FTRL工程化实现的论文[3]却使用到了L2正则项。事实上该项的引入并不影响FRTL的稀疏性,后面的推导过程会显示这一点。L2正则项的引入仅仅相当于对最优化过程多了一个约束,使得结果求解结果更加“平滑”。
根据特征权重的各个维度将其分解成若干个独立的标量最小化问题:
公式(3)最后一项展开,等价于:
最后一项是常数项,可忽略,并令
花括号里面求导并令等于0:
令是最优解
(1)当时,
(2)当时, ,
(3)当时,,
综合可知,FTRL特征权重的各个维度更新的方式为:
或者简化等价为 ---公式(4)
可知,引入L2正则化并没有对FTRL结果的稀疏性产生任何影响。
Per-Coordinate Learning Rates
标准的学习率,这个策略保证了学习率是一个正的非增长序列,对于每一个特征维度都是一样的。
事实上在FTRL中,每个维度上的学习率都是单独考虑的(Per-Coordinate Learning Rates)。
公式(4)变为:
(四)FTRL工程实现
完毕。