在线学习

来源:互联网 发布:c语言中fabs()用法 编辑:程序博客网 时间:2024/03/29 19:29

一般的算法当中,我们有一个训练模型的集合。通过假设,拟合得到模型。而在在线学习模型中,我们是在一个不断扩充的集合中不断训练,不断改变模型参数。这种方法适用于许多在线训练的场景,边测试,边训练,不断优化模型。

以线性回归为例

根据最小二乘方法,我们得到线性回归的目标函数:


求解时,得到负梯度方向:


根据下降算法,迭代更新系数直至收敛:


那么我们每次遍历所有的样本,更新上述系数,此为批梯度下降法,方法为:


 

在线学习的做法是,把目标函数分为若干份:


每次只取目标函数关于当前样本的部分,实现目标函数的分布最优化,主要步骤如下:

 

也就是,每回在线地加入新样本,然后更新模型。

根据这种方法只用于训练的,也就是随机下降的方法。边测试,然后把之后得到的真实结果再加入训练集训练,就是在线学习。

比如我们预测前一天的天气对第二天穿衣的影响。过了那天之后,原先的测试数据可以转化为训练数据,更新数据集。

 

收敛性

以感知机为例,证明在线性可分的情况下,在线学习的错分个数存在上限。

感知机目标函数:

其中:


两个假设

1.给定按照顺序到来的(x1,y1;x2,y2;…;xm,ym)样例。假设对于所有的样例||x||<D。

2.假设存在一个单位长度向量u且。也就是说对于所有样本,u能够有将正例和反例分开。

结论

感知算法的预测的错误样例数不超过

 

证明

当样本分错时,我们更新系数:

不等式来自于之前的假设。

上面是一个等差数列,于是我们可以得到:


还有:


第一个不等式来自于xi为错分样本;

第二个不等式来自于之前的假设。

还是一个等差数列,于是我们有:

 

综合上面两个式子,我们得到:


即:

 

错分样本数存在上限,证明这种方法收敛。

3 0