在线最优化求解(Online Optimization)之三:FOBOS
2015-07-29 19:52
417 查看
在线最优化求解(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相关文章推荐
- linux vi 编辑后保存
- linux防火墙基础和管理设置iptables规则
- 在线最优化求解(Online Optimization)之二:截断梯度法(TG)
- Centos6.5 Python2.7+Supervisor 环境安装
- AOP学习之Log4net
- sed用法小结
- 第五篇 学习OpenCV之视频处理
- 第五篇 学习OpenCV之视频处理
- hdu5322 Hope(dp)
- Linux目录结构及其详解--转载
- 怎样使模块不optimize
- linux下创建文件与目录时默认被赋予了什么样的权限?
- Linux下的调试工具
- linux系统管理之ip配置、yum本地仓库搭建、密码破解
- CentOS升级Python版本
- 第18/24周 乐观并发控制(Optimistic Concurrency)
- linux问题解决之--使用wget下载不了jdk问题的解决办法
- 大型网站架构演化
- linux命令行编辑快捷键
- LINUX c++ 遍历网卡列表