在线最优化求解(Online Optimization)之三:FOBOS
在线最优化求解(Online Optimization)之三:FOBOS
FOBOS (Forward-Backward Splitting)是由John Duchi和Yoram Singer提出的[11]。从全称上来看,该方法应该叫FOBAS,但是由于一开始作者管这种方法叫FOLOS(Forward Looking Subgradients),为了减少读者的困扰,作者干脆只修改一个字母,叫FOBOS。
1. 算法原理
在FOBOS中,将权重的更新分为两个步骤:
公式 (1)
前一个步骤实际上是一个标准的梯度下降步骤,后一个步骤可以理解为对梯度下降的结果进行微调。
观察第二个步骤,发现对的微调也分为两部分:(1) 前一部分保证微调发生在梯度下降结果的附近;(2)后一部分则用于处理正则化,产生稀疏性。
如果将公式(1)中的两个步骤合二为一,即将代入
中,有:
令,如果
存在一个最优解,那么可以推断
向量一定属于
的次梯度集合:
由于,那么有:
上式实际上给出了FOBOS中权重更新的另一种形式:
我们这里可以看到不仅仅与迭代前的状态
有关,而且与迭代后的
有关。可能这就是FOBOS名称的由来。
2. L1-FOBOS
关于FOBOS的收敛性和Regret就不在此讨论了,详情可参见论文[1]。这里我们来看看FOBOS如何在L1正则化下取得比较好的稀疏性。
在L1正则化下,有为了简化描述,用向量
来表示
用标量
来表示
并将公式(1)等号右边按维度展开:
公式(2)
我们可以看到,在求和公式中的每一项都是大于等于的,所以公式(2)可以拆解成对特征权重 每一维度单独求解:
首先,假设是
的最优解,则有
,这是因为:
--------------------------------------------------------------------
反证法:
假设成立,那么有
这与是
的最优解相矛盾,故假设不成立,
成立。
---------------------------------------------------------------------
既然有,那么我们可以分两种情况来进行讨论:
---------------------------------------------------------------------
(1) 当时:
由于,所以
,相当于对
引入了不等式条件
;
为了求解这个含不等式约束的最优化问题,引入拉格朗日乘子,由KKT条件,有:
以及
根据上面的求导等式可得:
再次分为两种情况:
(a):
由于,所以
;这时有:
;又由于
,所以
。
(b):
这时有;又由于
,所以
综合(a)(b)的结论,当时,
(2) 当时:
采用相同的分析方法可得,在时有:
---------------------------------------------------------------------
综合上面的分析,可以得到在FOBOS在L1正则化条件下,特征权重的各个维度更新的方式为:
公式(3)
其中,为梯度
在维度i上的取值。
根据公式(3),我们很容易就可以设计出L1-FOBOS的算法逻辑:

3. L1-FOBOS与TG的关系
公式3)可以看出,L1-FOBOS在每次更新的时候,对
的每个维度都会进行判定,当满足
时对该维度进行“截断”,这个判定条件的含义是当一条样本产生的梯度不足以令对应维度上的权重值发生足够大的变化时,认为在本次更新过程中该维度不够重要,应当令其权重为0。
对于L1-FOBOS特征权重的各个维度更新公式(3),也可以写作如下形式:
比较上式与TG的特征权重维度更新公式,可以发现如果令,L1-FOBOS与TG完全一致。我们可以认为L1-FOBOS是TG在特定条件下的特殊形式。
参考文献
[1] John Duchi & Yoram Singer. Efficient Online and Batch Learning using Forward Backward Splitting. Journal of Machine Learning Research, 2009
在线最优化求解(Online Optimization)之三:FOBOS的更多相关文章
- 在线最优化求解(Online Optimization)之五:FTRL
在线最优化求解(Online Optimization)之五:FTRL 在上一篇博文中中我们从原理上定性比较了L1-FOBOS和L1-RDA在稀疏性上的表现.有实验证明,L1-FOBOS这一类基于梯度 ...
- 在线最优化求解(Online Optimization)之四:RDA
在线最优化求解(Online Optimization)之四:RDA 不论怎样,简单截断.TG.FOBOS都还是建立在SGD的基础之上的,属于梯度下降类型的方法,这类型方法的优点就是精度比较高,并且T ...
- 在线最优化求解(Online Optimization)之一:预备篇
在线最优化求解(Online Optimization)之一:预备篇 动机与目的 在实际工作中,无论是工程师.项目经理.产品同学都会经常讨论一类话题:“从线上对比的效果来看,某某特征或因素对xx产品的 ...
- 在线最优化求解(Online Optimization)之二:截断梯度法(TG)
在线最优化求解(Online Optimization)之二:截断梯度法(TG) 在预备篇中我们做了一些热身,并且介绍了L1正则化在Online模式下也不能产生较好的稀疏性,而稀疏性对于高维特征向量以 ...
- Angular4.0从入门到实战打造在线竞拍网站学习笔记之三--依赖注入
Angular4.0基础知识之组件 Angular4.0基础知识之路由 依赖注入(Dependency Injection) 正常情况下,我们写的代码应该是这样子的: let product = ne ...
- Alink漫谈(十二) :在线学习算法FTRL 之 整体设计
Alink漫谈(十二) :在线学习算法FTRL 之 整体设计 目录 Alink漫谈(十二) :在线学习算法FTRL 之 整体设计 0x00 摘要 0x01概念 1.1 逻辑回归 1.1.1 推导过程 ...
- Alink漫谈(十三) :在线学习算法FTRL 之 具体实现
Alink漫谈(十三) :在线学习算法FTRL 之 具体实现 目录 Alink漫谈(十三) :在线学习算法FTRL 之 具体实现 0x00 摘要 0x01 回顾 0x02 在线训练 2.1 预置模型 ...
- FTRL笔记
这篇笔记主要参考冯杨的五篇博客:在线最优化求解(Online Optimization).因为对于在线学习方法,稀疏性问题需要特别关注:每次在线学习一个新 instance 的时候,优化方向并不一定是 ...
- [笔记]FTRL与Online Optimization
1. 背景介绍 最优化求解问题可能是我们在工作中遇到的最多的一类问题了:从已有的数据中提炼出最适合的模型参数,从而对未知的数据进行预测.当我们面对高维高数据量的场景时,常见的批量处理的方式已经显得力不 ...
随机推荐
- HTML+CSS学习笔记 (14) - 单位和值
标签:HTML+CSS 颜色值 在网页中的颜色设置是非常重要,有字体颜色(color).背景颜色(background-color).边框颜色(border)等,设置颜色的方法也有很多种: 1.英文命 ...
- error at ::0 can't find referenced pointcut performance
严重: Caught exception while allowing TestExecutionListener [org.springframework.test.context.support. ...
- CSS制作彩虹效果
今天看到一篇文章,说到margin的塌陷的问题,并提供了好几个例子. 自己之前还没怎么遇到过这个问题,正好来研究一下. <div class="box1"></d ...
- 8款强大的CSS3/HTML5动画及应用源码
1.CSS3 jQuery UI控制滑杆插件 今天我们要来分享一款基于CSS3和jQuery UI的控制滑杆插件,这款控制滑杆是在HTML5滑杆元素的基础上进行自定义CSS3渲染,所以外观更加漂亮.另 ...
- 胸腺嘧啶“T”
4.下列物质或结构中含胸腺嘧啶“T”的是( )A.DNA聚合酶 B.烟草花叶病毒C.ATP D.B淋巴细胞中的线粒体
- spring4.0源码导入
一个面试,让我知道了自己的不足,一天不进步就是倒退. spring源码导入eclipse 本人的环境 (我导入的是最新的spring 4.0 所以要用jdk1.8) 1 安装git (mac上自带了g ...
- jQuery对input中radio的一些操作
通过jQuery获取页面中的所有radio对象,遍历页面中的radio,取消选中的标签,因为使用到jQuery时间,因此引用到了网上公共的js,这只是本人的一些总结,大神勿喷. <html> ...
- curl 报错记录,mark
今天在做接口开发的时候,使用curl post ,请求返回数据为 null ,很纳闷,然后使用 curl_errno 打印出来的错误代码为 28 ,curl_error($ch) 打印出来的是Oper ...
- 单元测试SimpleTest新手入门
最近学习单元测试,先用了下PHPunit,结果安装问题一大堆,于是立刻放弃改试simpletest,感觉简单多了.下面列出步骤. 1.下载simpletest(版本1.1.0), http://www ...
- Oracle表空间、段、区和块
数据块(Block) 数据块Block是Oracle存储数据信息的最小单位.注意,这里说的是Oracle环境下的最小单位.Oracle也就是通过数据块来屏蔽不同操作系统存储结构的差异.无论是Windo ...