在线学习与离线学习

机器学习算法可以分成两类。离线学习和在线学习。


在离线学习算法中,我们会有一个训练集,这个训练集包含多个训练实例。每个训练实例都认为是以某个概率分布从实例空间中独立同分布地抽取。我们的目标是根据这个训练样本构造一个分类器,使得其真正训练错误最小。‘


在在线学习算法中,我们不假设训练数据来自于某个概率分布或者随机过程。当有个训练实例x过来时,我们利用分类器对其进行分类。假设分类器输出的类别标签为l。那么当l不是实例x真正的类别标签,也即分类出错时,会产生一个罚值。分类器根据实例x的真正的类别标签以及罚值对分类器参数进行相应地调整,以更好地预测新的实例。我们的目标是,在整个预测过程中,实例的罚值和尽可能小。


在线算法对数据的要求更加宽松,因此它是更实用的算法。同时,它也是更实用的训练算法。例如,当我们区分一个邮件是否是紧急邮件时,在线算法显得更加合适。因为我们不能假设邮件是以某一分布独立同分布地生成的。可能一个人向我们发了一封邮件紧急邮件,我们已经做出了回复。那么当这个人再发来一封邮件时,它就显得不那么紧急了。也就是说,邮件之间存在很大的相关性。这时候,用在线算法会更加合适。


在线算法比离线算法难度更大。事实上,一个好的在线算法可以很容易转换成一个同样好的离线算法。反之则不然。最后还需要指出的是,在线算法有时候在设计和分析上,比离线算法更加简洁明了。

猜你喜欢

转载自blog.csdn.net/hedan2013/article/details/78011600