在线最优化求解(Online Optimization)之四:RDA

不论怎样,简单截断、TG、FOBOS都还是建立在SGD的基础之上的,属于梯度下降类型的方法,这类型方法的优点就是精度比较高,并且TG、FOBOS也都能在稀疏性上得到提升。但是有些其它类型的算法,例如RDA从另一个方面来求解Online Optimization并且更有效地提升了特征权重的稀疏性。RDA(Regularized Dual Averaging)是微软十年的研究成果。RDA是Simple Dual Averaging Scheme一个扩展,由Lin Xiao发表于2010年[1]。

1. 算法原理

在RDA中,特征权重的更新策略为:

  公式(1)

其中表示梯度的积分平均值(积分中值);为正则项;为一个辅助的严格凸函数;是一个非负且非自减序列。

本质上,公式(1)中包含了3个部分:(1) 线性函数,包含了之前所有梯度(或次梯度)的平均值(dual average);(2) 正则项;(3) 额外正则项,它是一个严格凸函数。

2. L1-RDA

我们下面来看看在L1正则化下,RDA中的特征权重更新具有什么样的形式以及如何产生稀疏性。

,由于是一个关于的严格凸函数,不妨令,此外将非负非自减序列定义为,将L1正则化代入公式(1)有:

   公式(2)

直接求解上式看上去非常困难,但是我们可以仿照上一篇FOBOS中采用的方法,针对特征权重的各个维度将其拆解成N个独立的标量最小化问题:

    公式(3)

这里;公式(3)就是一个无约束的非平滑最优化问题。其中第2项处不可导。假设是其最优解,并且定义的次导数,那么有:

   公式(4)

如果对公式(3)求导(求次导数)并等于0,则有:

   公式(5)

由于,我们针对公式(5)分三种情况进行讨论:

-------------------------------------

(1) 当时:

还可以分为三种情况:

(a) 如果,由公式(5)可得,满足公式(4)

(b) 如果,由公式(4)可得,那么有,不满足公式(5)

(c) 如果,由公式(4)可得,那么有,不满足公式(5)

所以,当时,

(2) 当时:

采用相同的分析方法可以得到,此时,即:

(3) 当时:

采用相同的分析方法可以得到,此时,即:

--------------------------------------

综合上面的分析,可以得到L1-RDA特征权重的各个维度更新的方式为:

      公式(6)

这里我们发现,当某个维度上累积梯度平均值的绝对值小于阈值的时候,该维度权重将被置,特征权重的稀疏性由此产生。

根据公式(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

在线最优化求解(Online Optimization)之四:RDA的更多相关文章

  1. 在线最优化求解(Online Optimization)之五:FTRL

    在线最优化求解(Online Optimization)之五:FTRL 在上一篇博文中中我们从原理上定性比较了L1-FOBOS和L1-RDA在稀疏性上的表现.有实验证明,L1-FOBOS这一类基于梯度 ...

  2. 在线最优化求解(Online Optimization)之一:预备篇

    在线最优化求解(Online Optimization)之一:预备篇 动机与目的 在实际工作中,无论是工程师.项目经理.产品同学都会经常讨论一类话题:“从线上对比的效果来看,某某特征或因素对xx产品的 ...

  3. 在线最优化求解(Online Optimization)之三:FOBOS

    在线最优化求解(Online Optimization)之三:FOBOS FOBOS (Forward-Backward Splitting)是由John Duchi和Yoram Singer提出的[ ...

  4. 在线最优化求解(Online Optimization)之二:截断梯度法(TG)

    在线最优化求解(Online Optimization)之二:截断梯度法(TG) 在预备篇中我们做了一些热身,并且介绍了L1正则化在Online模式下也不能产生较好的稀疏性,而稀疏性对于高维特征向量以 ...

  5. Angular4.0从入门到实战打造在线竞拍网站学习笔记之四--数据绑定&管道

    Angular4.0基础知识之组件 Angular4.0基础知识之路由 Angular4.0依赖注入 数据绑定 数据绑定允许你将组件控制器的属性和方法与组件的模板连接起来,大大降低了开发时的编码量. ...

  6. Alink漫谈(十二) :在线学习算法FTRL 之 整体设计

    Alink漫谈(十二) :在线学习算法FTRL 之 整体设计 目录 Alink漫谈(十二) :在线学习算法FTRL 之 整体设计 0x00 摘要 0x01概念 1.1 逻辑回归 1.1.1 推导过程 ...

  7. Alink漫谈(十三) :在线学习算法FTRL 之 具体实现

    Alink漫谈(十三) :在线学习算法FTRL 之 具体实现 目录 Alink漫谈(十三) :在线学习算法FTRL 之 具体实现 0x00 摘要 0x01 回顾 0x02 在线训练 2.1 预置模型 ...

  8. FTRL笔记

    这篇笔记主要参考冯杨的五篇博客:在线最优化求解(Online Optimization).因为对于在线学习方法,稀疏性问题需要特别关注:每次在线学习一个新 instance 的时候,优化方向并不一定是 ...

  9. [笔记]FTRL与Online Optimization

    1. 背景介绍 最优化求解问题可能是我们在工作中遇到的最多的一类问题了:从已有的数据中提炼出最适合的模型参数,从而对未知的数据进行预测.当我们面对高维高数据量的场景时,常见的批量处理的方式已经显得力不 ...

随机推荐

  1. 总结一下block的几种常用方法

    一.block的简单介绍 block相当于一个参数,有参数的名,有参数的值,有参数的使用,当使用block的时候,它又相当于一个函数,会回调函数体. 声明:void (^block)(void); 实 ...

  2. IE8 textarea 滚动条定位不准解决方法

    工作中遇到一个bug: IE8 下textarea 如果带滚动条(height:100px;overflow:scroll-y;),内容高度超过可视区域之后,输入文字,滚动条位置会乱跳. 开始以为是j ...

  3. MySQL 5.7 Zip 安装(win7)

    参考官方文档 http://dev.mysql.com/doc/refman/5.7/en/windows-install-archive.html 2.3.5.1 Extracting the In ...

  4. Static的使用

    (一) 当它用于函数定义时,或用于代码块之外的变量声明时,static关键字用于修饰修改标识符的连接属性,从external改为internal,但是标识符的存储类型和作用域不受影响.用这种方式声明的 ...

  5. 已有数据表的Mysql字符编码修改

    Mysql字符集修改应该如何实现呢?下面就为您详细介绍已用数据表的Mysql字符集修改方法,希望对您学习Mysql字符集方面能有所启迪. 环境:在应用开始阶段没有正确的设置字符集,在运行一段时间以后才 ...

  6. 【风马一族_xml】xml的两种解析思想

    xml的解析思想 dom解析 将整个xml使用类似树的结构保存在内存中,再进行对其操作 是woc组织推荐的处理xml的一种方式 需要等到xml完全加载进内存才可以进行操作 耗费内存.当解析超大的xml ...

  7. Java应用短信猫

    首先确定短信猫正常连接到主机,并安装SIM卡.先用超级终端测试短息猫能不能用.安装minicom:#sudo apt-get install minicom安装完成后,执行#sudo minicom ...

  8. Entity Framework Code First 常用方法集成

    using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using S ...

  9. 如何使用NET Reactor为您的.Net(C#,VB.Net) 源代码加密

    前言 VS开发的源代码安全性,是很多开发者头痛的事情.于是保护好源代码便成了开发者们最关心的事情之一了. 在网上搜一搜,很多有不少的第三方工具可以为源代码加密.加密方式不外乎就是混淆,加壳. 理论上, ...

  10. Hbase 0.95.2介绍及下载地址

    HBase是一个分布式的.面向列的开源数据库,该技术来源于Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Google文件系统(File System) ...