共计 733 个字符,预计需要花费 2 分钟才能阅读完成。
在线学习想要解决的问题
在线学习 ( OnlineLearning ) 代表了一系列机器学习算法,特点是每来一个样本就能训练,能够根据线上反馈数据,实时快速地进行模型调整,使得模型及时反映线上的变化,提高线上预测的准确率。相比之下,传统的批处理方式需要一次性收集所有数据,新数据到来时重新训练的代价也很大,因而更新周期较长,可扩展性不高。
一般对于在线学习来说,我们致力于解决两个问题: 降低 regret 和提高 sparsity。其中 regret 的定义为:
\text{Regret} = \sum\limits_{t=1}^T \ell_t(\bold{w}_t) – \min_\bold{w}\sum\limits_{t=1}^T\ell_t(\bold{w})
其中 𝑡 表示总共 𝑇 轮中的第 𝑡 轮迭代,ℓ𝑡 表示损失函数,𝐰 表示要学习的参数。第二项\min_\bold{w}\sum_{t=1}^T\ell_t(\bold{w})表示得到了所有样本后损失函数的最优解。因为在线学习一次只能根据少数几个样本更新参数,随机性较大,所以需要一种稳健的优化方式,而 regret 字面意思是 “后悔度”,意即更新完不后悔。
所以再来看这个公式,第一项是指 T 轮的学习,每一轮都会更新权重 w,但是它希望更新的w 使得与全局的最优解之间的偏差更小,这就说明在线学习其实也是想要得到最优解。这个也是所有的离线或者在线学习的终极目标。
在理论上可以证明,如果一个在线学习算法可以保证其 regret 是 𝑡 的次线性函数,则:
\lim_{t \to \infty}\frac{\text{Regret}(t)}{t} = 0
那么随着训练样本的增多,在线学习出来的模型无限接近于最优模型。而毫不意外的,FTRL 正是满足这一特性。