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

在预备篇中我们做了一些热身,并且介绍了L1正则化在Online模式下也不能产生较好的稀疏性,而稀疏性对于高维特征向量以及大数据集又特别的重要。因此,从现在开始,我们沿着提升模型稀疏性的主线进行算法介绍。

为了得到稀疏的特征权重 ,最简单粗暴的方式就是设定一个阈值,当的某维度上系数小于这个阈值时将其设置为称作简单截断)。这种方法实现起来很简单,也容易理解。但实际中(尤其在OGD里面)的某个系数比较小可能是因为该维度训练不足引起的,简单进行截断会造成这部分特征的丢失。

截断梯度法(TG, Truncated Gradient)是由John Langford,Lihong Li和Tong Zhang在2009年提出[1],实际上是对简单截断的一种改进。下面首先描述一下L1正则化和简单截断的方法,然后我们再来看TG对简单截断的改进以及这三种方法在特定条件下的转化。

1. L1正则化法

由于L1正则项在0处不可导,往往会造成平滑的凸优化问题变成非平滑凸优化问题,因此在每次迭代中采用次梯度[2](Subgradient)计算L1正则项的梯度。权重更新方式为:

  公式(1)

注意,这里是一个标量,且,为L1正则化参数;为符号函数,如果是一个向量,是向量的一个维度,那么有;为学习率,通常将其设置成的函数;代表了第t次迭代中损失函数的梯度,,由于OGD每次仅根据观测到的一个样本进行权重更新,因此也不再使用区分样本的下标j

2. 简单截断法

k为窗口,当t/k不为整数时采用标准的SGD进行迭代,当t/k为整数时,采用如下权重更新方式:

    公式(2)

注意,这里面是一个正数;如果是一个向量,是向量的一个维度,那么有

3. 截断梯度法(TG)

上述的简单截断法被TG的作者形容为too aggressive,因此TG在此基础上进行了改进,同样是采用截断的方式,但是比较不那么粗暴。采用相同的方式表示为:

   公式(3)

其中。TG同样是以k为窗口,每k步进行一次截断。当t/k不为整数时,当t/k为整数时。从公式(3)可以看出,决定了的稀疏程度,这两个值越大,则稀疏性越强。尤其令时,只需要通过调节一个参数就能控制稀疏性。

根据公式(3),我们很容易写出TG的算法逻辑:

4. TG与简单截断以及L1正则化的关系

简单截断和截断梯度的区别在于采用了不同的截断公式,如图1所示。

图1 截断公式T0&T1的曲线

为了清晰地进行比较,我们将公式(3)进行改写,描述特征权重每个维度的更新方式:

    公式(4)

如果令截断公式变成:

此时TG退化成简单截断法。

如果令截断公式变成:

如果再令k=1,那么特征权重维度更新公式变成:

此时TG退化成L1正则化法。

参考文献

[1]  John Langford, Lihong Li & Tong Zhang. Sparse Online Learning via Truncated Gradient. Journal of Machine Learning Research, 2009

[2]       Subgradienthttp://sv.wikipedia.org/wiki/Subgradient

在线最优化求解(Online Optimization)之二:截断梯度法(TG)的更多相关文章

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

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

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

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

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

    在线最优化求解(Online Optimization)之四:RDA 不论怎样,简单截断.TG.FOBOS都还是建立在SGD的基础之上的,属于梯度下降类型的方法,这类型方法的优点就是精度比较高,并且T ...

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

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

  5. 免费在线生成彩色带logo的个性二维码

          码工具网站提供免费的在线二维码生成服务,可以把网址.文本.电子邮件.短信.电话号码.电子名片.wifi网络等信息生成对应的二维码图片.你可以设置二维码图片的格式(png,jpg,gif). ...

  6. 文档在线预览开源实现方案二:OpenOffice + pdf.js

    文档在线预览的另一种实现方式采用的技术栈是OpenOffice + pdf.js, office文档转换为pdf的工作依然由OpenOffice的服务来完成,pdf生成后我们不再将其转换为其他文件而是 ...

  7. 微软office web apps 服务器搭建之在线文档预览(二)

    上一篇文章已经介绍了整个安装过程了.只要在浏览器中输入文档转换server的ip,会自动跳转,出现如下页面. 那么就可以实现本地文档预览了,你可以试试.(注意:是本地哦,路径不要写错,类似“\\fil ...

  8. Angular4.0学习笔记 从入门到实战打造在线竞拍网站学习笔记之二--路由

    Angular4.0基础知识见上一篇博客 路由 简介 接下来学习路由的相关知识 本来是不准备写下去的,因为当时看视频学的时候感觉自己掌握的不错 ( 这是一个灰常不好的想法 ) ,过了一段时间才发现An ...

  9. 七月在线爬虫班学习笔记(二)——Python基本语法及面向对象

    第二课主要内容如下: 代码格式 基本语法 关键字 循环判断 函数 容器 面向对象 文件读写 多线程 错误处理 代码格式 syntax基本语法 a = 1234 print(a) a = 'abcd' ...

随机推荐

  1. Ajax Array Json 示例

    function functionName(){ var list=new Array(); $("td.classA").each(function(){ list.push($ ...

  2. windows 7 打开控制面板的命令

    在开始菜单中键入contrl,回车就进入了控制面板,比较快

  3. UI2_视图切换

    // // ViewController.m // UI2_视图切换 // // Created by zhangxueming on 15/7/1. // Copyright (c) 2015年 z ...

  4. Php 与 Json

    PHP与JSON 在PHP中存在两个与JSON相关的函数: json_encode($array或$object)函数:把一个数组或对象转化为JSON格式的字符串 json_decode($json, ...

  5. 使用notepad++编辑器

    使用notepad++编辑器 在公司时经常要用到文本编辑器去写jsp文件,之前使用的是sublime text 3,但是觉得不太顺手,于是转用notepad++编辑器. 这个编辑器最吸引我的地方是层次 ...

  6. Http和Socket连接区别

    相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过自己的浅显理解能对初学者有所帮助. 1.TCP连接 要想明白Socket连接,先要明白TCP连接.手机能够使用联 ...

  7. 记录一次会话CRT

    记录一次会话CRT --------------------- su -oracle sqlplus / as sysdba sqlplus username/password  如:普通用户登录   ...

  8. u-boot ctr0.S详解 包含_main函数

    /** ****************************************************************************** * @author    Maox ...

  9. SDRAM控制器

    1 初始化以及load mode 寄存器1 初始化以及load mode 寄存器 2  时间表 这里会有几个重要的时间周期: 3 AUTO REFRESH (自动刷新) 4 CAS(CL delay) ...

  10. HMTL5的 video 在IOS7中碰到的坑

    直接说问题吧, 测试设备,ipod 我们在移动端播放视频的时候,一般使用H5的video标签,OK,这里有几点差异(就我目前所发现的)给大家分享一下, 1.在IOS7中,video元素是需要确定大小的 ...