最近研究在线学习,对理论和工程化做一些记录与总结,供以后回顾。话不多说,直接进入正题。

一、背景

传统机器学习开发流程基本是:数据收集->特征工程->模型训练->模型评估->保存模型->线上模型预测。这种方式有一定的缺陷,主要体现在以下方面:

. 模型更新周期慢,不能有效反映线上变化,最快小时级,一般天级甚至周级;

. 模型参数少,预测效果差;模型参数多,线上预测时需要内存大,QPS无法保证;

并且,在互联网行业,数据量往往特别大,几百G甚至更大。这种级别的数据在训练的时候直接套用一些算法框架是无法训练的,基本在特征工程阶段就会遇到瓶颈。通常采用采样、截断的方式获取更小的数据集,或者使用大数据集群的方式进行训练。这两种方式也存在两种问题:

. 采样数据或者截断数据的方式,非常的依赖前期的数据分析以及经验;

. 大数据集群的方式,spark、flink等支持的原生机器学习模型较少,且训练出来的模型较为复杂;

无论是线性回归、逻辑回归、支持向量机、深度学习中,最优化都是基本步骤。常见的梯度下降、牛顿法、拟牛顿法等都属于批量处理的方法(batch),每次更新都需要对已经训练过的样本重新训练一遍。在面对高维高数据量的时候,批量处理的方式就显得笨重和不够高效,因此需要要在线(online)处理的方法。

二、在线最优化算法理论

主要参考冯扬老师的《在线最优化求解》,沿着提升模型稀疏性的主线进行算法总结。

online模式下数据是流式的产生,类似随机梯度优化,L1正则化在online模式下也不能产生较好的稀疏性,故需要对其进行改进优化。

主要分为三类:

一类梯度下降类的算法,该列算法优点就是精度比较高,并且TG、FOBOS也能在稀疏性上得到提升:简单截断法、截断梯度法(TG)、前向后向切分(FOBOS);

简单截断法:最简单粗暴的方式设定一个阈值,当W某维度上系数小于这个阈值时将其设置为0;

截断梯度法(TG):是对简单截断的改进,同样是采用截断的方式,但是比较不那么粗暴;

前向后向切分(FOBOS):在FOBOS中,权重更新分为两个步骤:前一个步骤实际上是一个标准的梯度下降步骤,后一个步骤可以理解为对梯度下降的结果的微调;第二步对W微调也分为两部分:(1)、前一步保证微调发生在梯度下降结果的附近;(2)、后一部分则用于处理正则化,产生稀疏性;

L1-FOBOS:加了L1正则的FOBOS,能够取得比较好的稀疏性;如公式也可以认为L1-FOBOS是TG在特定条件下的特殊形式;

一类是简单对偶平均的扩展应用,从另一个方面求解Online Optimization并且更有效的提升了特征权重的稀疏性:正则对偶平均(RDA);

RDA:梯度更新公式中包含3个部分:(1)、线性函数,包含了之前所以梯度(或次梯度)的平均值;(2)、正则项;(3)、额外正则项,它是一个严格凸函数;

L1-RDA:加了L1正则的RDA,当某个维度累积梯度平均值的绝对值小于阈值时,该维度权重被置为0,特征权重稀疏性由此产生。L1-RDA与L1-FOBOS比较:L1-FOBOS的“截断阈值”随着t增加而逐渐降低,而L1-RDA的“截断阈值”为常数,不随t而变化,因而更易产生稀疏解。有实验表明,L1-FOBOS这一类基于梯度下降的方法有比较高的精度,但是L1-RDA却能在损失一定精度的情况下产生更好的稀疏性;

一类是RDA和FOBOS的结合:FTRL(Follow the Regularized Leader);

FTRL:综合考虑了FOBOS和RDA对于正则项和W限制的区别。目前工业街使用最多的也是FTRL作为在线优化的算法。

参考文献

[1] 在线最优化求解(online optimization)-冯扬-2014.12.09 - 豆丁网

在线学习(online learning)总结相关推荐

  1. Alink在线学习(Online Learning)之Java示例【一】

    Alink是基于Flink的机器学习算法平台,欢迎访问Alink的github获取下载链接及更多信息. alibaba/Alink​github.com 序 前面发表了一系列文章介绍如何使用Pytho ...

  2. 在线学习(Online learning)与离线学习(Offline learning)

    目录 简介 离线学习 在线学习 在线学习算法的分类 在线学习算法的优化 对比 总结 参考文献 简介 机器学习领域中,可将机器学习算法分为在线学习和离线学习.需要根据数据选择不同的线性可分和线性不可分的 ...

  3. Alink在线学习(Online Learning)之Java示例【五】

    基于前面几篇的准备工作,我们已经具备了初始模型.流式向量训练数据.流式向量预测数据,如下图蓝色节点所示.接下来,我们会进入该系列文章的关键时刻,演示如何接入FTRL在线训练模块及对应的在线预测模块. ...

  4. Alink在线学习(Online Learning)之Java示例【三】

    上一篇展示了数据,这里会继续深入了解数据,由数据列的描述信息,知道里面含有哪些数值型特征,哪些为枚举型特征.具体内容如下面脚本所示, String labelColName = "click ...

  5. 在线学习算法(Online Learning)理论与实践

    背景 Online Learning是工业界比较常用的机器学习算法,在很多场景下都能有很好的效果.本文主要介绍Online Learning的基本原理和两种常用的Online Learning算法:F ...

  6. 在线学习(Online Learning)

    原题目叫做The perception and large margin classifiers,其实探讨的是在线学习.这里将题目换了换.以前讨论的都是批量学习(batch learning),就是给 ...

  7. 终身学习(LifeLong Learning)/ 增量学习(Incremental Learning)、在线学习(Online Learning)

    1.在线学习 实时获得一个新样本就进行一次模型更新.显然,在线学习时增量学习的特例,而增量学习可视为"批模式"的在线/离线学习. online主要相对于offline或者说batc ...

  8. 强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例----Sarsa算法, Q学习, 期望Sarsa算法

    强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例 5.1 TD预测 例5.1 回家时间的估计 5.2 TD预测方法的优势 例5.2 随机移动 5.3 ...

  9. 效果广告点击率预估实践:在线学习

    效果广告点击率预估实践:在线学习 原创 2016-03-24 腾讯大数据 腾讯大数据 1.引言 技术钻研如逆水行舟,不进则退.公司的广告业务发展非常迅猛,有目共睹,激烈的外部竞争和客户越来越高的期望, ...

最新文章

  1. 《H5 App开发》移动端IOS click 事件响应缓慢的解决方案
  2. 利用WINDOWS活动目录提供LDAP的方案
  3. HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求
  4. 【DP】【BFS】迷之阶梯
  5. php 用户授权访问控制,用户权限访问控制功能
  6. 第47课 称心如意的输入 《小学生C++趣味编程》
  7. Installing specific major Java JDK versions on OS X via Homebrew
  8. Struts的文件上传与下载
  9. Asp.Net 之Jquery知识点运用
  10. Server-U文件名中文乱码问题解决方法
  11. 【Netbackup恢复步骤-02】
  12. 【Android Audio 入门 五】--- AudioSW介绍
  13. DirectX修复工具(DirectX Repair)修复工具V4.0增强版
  14. Axure share APP使用教程——如何在手机上演示axure文件
  15. 未知环境探索(二)基于边界点的自主环境探索
  16. 由于应用程序配置不正确,应用程序未能启动 VS2008 Release /MD编译
  17. string.h 详解
  18. MAC-MAC-MAC-MAC
  19. 逻辑强化(09)加强支持 知识练习
  20. CAJ转换为PDF+英语文献翻译

热门文章

  1. atan2与atan的区别
  2. 渗透测试--ARP攻击
  3. 主数据建设的挑战与发展
  4. 即将开业的影院,20 亿美刀的元気森林和「五环外」的钉钉|极客一周
  5. Visual Studio 2022环境中C语言的使用——一维数组和二维数组
  6. access查找楼号为01_Access 应用基础—查询设计(一)
  7. 数学建模竞赛【必须要掌握的十个算法】
  8. vue开发中遇到的滚动到底部加载更多数据问题
  9. 《重构与模式(修订版)》目录—导读
  10. json数据如何得到所有的value