在线学习算法(Online Learning)理论与实践 |
您所在的位置:网站首页 › 河南在线教育平台有哪些 › 在线学习算法(Online Learning)理论与实践 |
背景
Online Learning是工业界比较常用的机器学习算法,在很多场景下都能有很好的效果。本文主要介绍Online Learning的基本原理和两种常用的Online Learning算法:FTRL(Follow The Regularized Leader)[1]和BPR(Bayesian Probit Regression)[2],以及Online Learning在美团移动端推荐重排序的应用。 什么是在线学习(Online Learning)准确地说,Online Learning并不是一种模型,而是一种模型的训练方法,Online Learning能够根据线上反馈数据,实时快速地进行模型调整,使得模型及时反映线上的变化,提高线上预测的准确率。Online Learning的流程包括:将模型的预测结果展现给用户,然后收集用户的反馈数据,再用来训练模型,形成闭环的系统。如下图所示: Online Learning有点像自动控制系统,但又不尽相同,二者的区别是:Online Learning的优化目标是整体的损失函数最小化,而自动控制系统要求最终结果与期望值的偏差最小。 传统的训练方法,模型上线后,更新的周期会比较长(一般是一天,效率高的时候为一小时),这种模型上线后,一般是静态的(一段时间内不会改变),不会与线上的状况有任何互动,假设预测错了,只能在下一次更新的时候完成更正。Online Learning训练方法不同,会根据线上预测的结果动态调整模型。如果模型预测错误,会及时做出修正。因此,Online Learning能够更加及时地反映线上变化。 Online Learning的优化目标 如上图所示,Online Learning训练过程也需要优化一个目标函数(红框标注的),但是和其他的训练方法不同,Online Learning要求快速求出目标函数的最优解,最好是能有解析解。 怎样实现Online Learning前面说到Online Learning要求快速求出目标函数的最优解。要满足这个要求,一般的做法有两种:Bayesian Online Learning和Follow The Regularized Leader。下面就详细介绍这两种做法的思路。 Bayesian Online Learning 贝叶斯方法能够比较自然地导出Online Learning的训练方法:给定参数先验,根据反馈计算后验,将其作为下一次预测的先验,然后再根据反馈计算后验,如此进行下去,就是一个Online Learning的过程,如下图所示。 举个例子, 我们做一个抛硬币实验,估算硬币正面的概率 初始化 如果 最终: 上面的例子是针对离散分布的,我们可以再看一个连续分布的例子。 有一种测量仪器,测量的方差 初始化 观测值为 ![]() ![]()
上面的两个结果都是后验跟先验是同一分布的(一般取共轭先验,就会有这样的效果),这个后验很自然的作为后面参数估计的先验。假设后验分布和先验不一样,我们该怎么办呢? 举个例子:假设上面的测量仪器只能观测到 但是后验分布显然不是高斯分布(是截断高斯分布),这种情况下,我们可以用和上面分布KL距离最近的高斯分布代替。 观测到 观测到 两者综合起来,可以求得: 有了后验我们可以得到Online Bayesian Learning流程: 初始化 观测值为 Bayesian Online Learning最常见的应用就是BPR(Bayesian Probit Regression)。 BPR 在看Online BPR前,我们先了解以下Linear Gaussian System(具体可以参考[3]的4.4节)。 已知 上面这个结论的具体的推导过程可以参考[3]的4.4节,这里我们直接拿来用。 我们可以假设特征权重 :
由于我们只能观测到 对于观测值,我们可以先用KL距离近似 可以求得: Online Bayesian Probit Regression 训练流程如下: 初始化 观测值为YiYi for d = 1 ... D 更新 FTRL 除了Online Bayesian Learning,还有一种做法就是FTRL(Follow The Regularized Leader)。FTRL的网上资料很多,但是大部分介绍怎么样产生稀疏化解,而往往忽略了FTRL的基本原理。顾名思义,FTRL和稀疏化并没有关系,它只是一种做Online Learning的思想。 先说说FTL(Follow The Leader)算法,FTL思想就是每次找到让之前所有损失函数之和最小的参数。流程如下: 初始化 损失函数 FTRL算法就是在FTL的优化目标的基础上,加入了正规化,防止过拟合: 其中, FTRL算法的损失函数,一般也不是能够很快求解的,这种情况下,一般需要找一个代理的损失函数。 代理损失函数需要满足几个要求: 代理损失函数比较容易求解,最好是有解析解优化代理损失函数求的解,和优化原函数得到的解差距不能太大为了衡量条件2中的两个解的差距,这里需要引入regret的概念。 假设每一步用的代理函数是 其中 随着训练样本的增多,这两个优化目标优化出的参数的实际损失值差距越来越小。 代理函数 其中 为了产生稀疏的效果,我们也可以加入L1正规化: 只要 上面的式子我们可以得出 wt+1,i={0−ηt(zt,i−sgn(zt,i)λ1))|zt,i| |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |