RDA(Regularized Dual Average) 稀疏在线学习算法
来源:互联网 发布:蜂窝移动数据快捷方式 编辑:程序博客网 时间:2024/06/06 02:35
转载地址:http://www.cnblogs.com/luctw/p/4757943.html
不论怎样,简单截断、TG、FOBOS都还是建立在SGD的基础之上的,属于梯度下降类型的方法,这类型方法的优点就是精度比较高,并且TG、FOBOS也都能在稀疏性上得到提升。但是有些其它类型的算法,例如RDA从另一个方面来求解Online Optimization并且更有效地提升了特征权重的稀疏性。RDA(Regularized Dual Averaging)是微软十年的研究成果。RDA是Simple Dual Averaging Scheme一个扩展,由Lin Xiao发表于2010年[1]。
1. 算法原理
在RDA中,特征权重的更新策略为:
其中表示梯度对的积分平均值(积分中值);为正则项;为一个辅助的严格凸函数;是一个非负且非自减序列。
本质上,公式(1)中包含了3个部分:(1) 线性函数,包含了之前所有梯度(或次梯度)的平均值(dual average);(2) 正则项;(3) 额外正则项,它是一个严格凸函数。
2. L1-RDA
我们下面来看看在L1正则化下,RDA中的特征权重更新具有什么样的形式以及如何产生稀疏性。
令,由于是一个关于的严格凸函数,不妨令,此外将非负非自减序列定义为,将L1正则化代入公式(1)有:
直接求解上式看上去非常困难,但是我们可以仿照上一篇FOBOS中采用的方法,针对特征权重的各个维度将其拆解成N个独立的标量最小化问题:
这里,;;公式(3)就是一个无约束的非平滑最优化问题。其中第2项在处不可导。假设是其最优解,并且定义为在的次导数,那么有:
如果对公式(3)求导(求次导数)并等于0,则有:
由于,我们针对公式(5)分三种情况进行讨论:
-------------------------------------
(1) 当时:
还可以分为三种情况:
(a) 如果,由公式(5)可得,满足公式(4)
(b) 如果,由公式(4)可得,那么有,不满足公式(5)
(c) 如果,由公式(4)可得,那么有,不满足公式(5)
所以,当时,
(2) 当时:
采用相同的分析方法可以得到,此时,即:
(3) 当时:
采用相同的分析方法可以得到,此时,即:
--------------------------------------
综合上面的分析,可以得到L1-RDA特征权重的各个维度更新的方式为:
这里我们发现,当某个维度上累积梯度平均值的绝对值小于阈值的时候,该维度权重将被置,特征权重的稀疏性由此产生。
根据公式(6),可以设计出L1-RDA的算法逻辑为:
3. L1-RDA与FOBOS的比较
在上一篇博文中中我们看到了L1-FOBOS实际上是TG的一种特殊形式,在L1-FOBOS中,进行“截断”的判定条件是。通常会定义为的正相关函数(),因此L1-FOBOS的“截断阈值”为,随着的增加,这个阈值会逐渐降低。
相比较而言,从公式(6)可以看出,L1-RDA的“截断阈值”为,是一个常数,并不随着而变化,因此可以认为L1-RDA比L1-FOBOS在截断判定上更加aggressive,这种性质使得L1-RDA更容易产生稀疏性;此外,RDA中判定对象是梯度的累加平均值,不同于TG或L1-FOBOS中针对单次梯度计算的结果进行判定,避免了由于某些维度由于训练不足导致截断的问题。并且通过调节一个参数,很容易在精度和稀疏性上进行权衡。
参考文献
[1] Lin Xiao. Dual Averaging Methods for Regularized Stochastic Learning and Online Optimization. Journal of Machine Learning Research, 2010
- RDA(Regularized Dual Average) 稀疏在线学习算法
- 在线机器学习FTRL(Follow-the-regularized-Leader)算法介绍
- 在线机器学习FTRL(Follow-the-regularized-Leader)算法介绍
- RDA
- RDA
- RDA工具的使用学习
- 在线算法学习
- 在线学习算法FTRL
- 在线学习算法FTRL
- 在线算法学习网站
- 稀疏学习
- 稀疏学习
- 稀疏学习
- 机器学习最优化算法的演变,FTRL一路走来,从LR -> SGD -> TG -> FOBOS -> RDA -> FTRL
- LCA在线算法学习笔记
- 在线学习算法FTRL详解
- 在线学习算法FTRL-Proximal
- 深度学习笔记:稀疏自编码器(3)——稀疏自编码算法
- Aizu
- Echarts地图省市关联下钻,读取数据库中数据
- ios KVO的使用和原理实现
- 我整理的.Net FrameWork发展史
- 基于 TensorFlow 在手机端实现文档检测
- RDA(Regularized Dual Average) 稀疏在线学习算法
- 微信小程序——智能小秘“遥知之”(语义理解基于olami,源码见原文链接,PC端打开)
- 静态代码块,代码块,构造函数的执行顺序
- Vue2.0 探索之路——生命周期和钩子函数的一些理解
- 使用plsql访问远程数据库
- PAT乙级 1008. 数组元素循环右移问题 (20) 数组反转思想
- linux修改文件或目录所属用户与组
- AJAX 跨域请求
- a span 设置height没有用的