简介
机器学习领域中,可将机器学习算法分为在线学习和离线学习。需要根据数据选择不同的线性可分和线性不可分的核函数。
离线学习
离线学习也通常称为批学习,是指对独立数据进行训练,将训练所得的模型用于预测任务中。将全部数据放入模型中进行计算,一旦出现需要变更的部分,只能通过再训练(retraining)的方式,这将花费更长的时间,并且将数据全部存在服务器或者终端上非常占地方,对内存要求高。
正是由于这个问题,传统的离线学习不能直接用于在线学习场景:
- 离线需要多次传递训练数据,由于数据量的二次时间复杂度,导致处理效率很低
- 离线需要分别在训练集和验证集上训练和选择,但在线学习不将训练与选择分离,不分割训练数据
- 在批量学习设置中,通常假设数据是根据独立同分布设置的,但是在在线学习设置中,对训练数据的假设是宽松或几乎没有的。
离线学习的缺点:
1、 模型训练过程低效
2、 训练过程不易拓展于大数据场景。
3、 模型无法适应动态变化的环境
在线学习
在线学习也称为增量学习或适应性学习,是指对一定顺序下接收数据,每接收一个数据,模型会对它进行预测并对当前模型进行更新,然后处理下一个数据。这对模型的选择是一个完全不同,更复杂的问题。需要混合假设更新和对每轮新到达示例的假设评估。换句话说,你只能访问之前的数据,来回答当前的问题。
The main objective of online learning algorithms is to minimize the regret
在线学习算法的主要目标是使regret最小化
在网络异常检测中,网络异常通常包括各种网络故障、流量的异常表现和拥塞等,各种网络攻击层出不穷,数据是原数据中从未出现过的,因此要求新的在线学习方法能够自动地侦测当前要鉴别的流数据是原来数据中存在的还是新生成的 。在线学习算法具有实现简单、可拓展性强和算法性能优越等特点,适合用于海量数据处理。
在线学习算法的分类
根据模型是线性还是非线性模型,将在线学习算法分为两大类,在线线性学习算法和基于核的在线学习算法。
在线线性学习算法 | 在线核学习算法 |
---|---|
感知器算法 | 基于核的感知器算法 |
稀疏在线学习算法 | 基于核的在线梯度下降算法 |
无 | 固定缓冲区的核在线学习算法 |
以上是针对单任务的在线学习问题,比如自然语言处理、生物基因序列以及图片视频搜索等适合使用多任务学习。多任务可利用多个任务之间的相关性避免模型欠拟合,从而提高算法的泛化能力。主要包括有:
- 基于多任务的在线学习算法
- 基于Group Lasso的在线学习算法
在线学习算法的优化
- 通过"损失函数+正则化向"的优化框架
- 还可以通过在线学习与深度学习相结合
对比
离线学习与在线学习对比的流程图如下:
总结
在线学习与当前研究热点深度学习有待更加深入有效的融合,在线学习的分布式实现有待进一步探索和研究,在线学习是否能与强化学习结合,有待进一步探索。
参考文献
1.刘成昊.在线学习算法研究与应用.浙江大学博士学位论文,2017.
2.潘志松等.在线学习算法综述,数据采集与处理,2016.
3.X.Zhang el.a survey on online kernal selection for online kernal learning,WIREs Data Mining Knowl Discov. 2018
4.机器学习中的在线学习与离线学习
5.在线学习与离线学习
6.Online Machine Learning - Introduction,overview and examples