在线学习(Online learning)与离线学习(Offline learning)
目录
- 简介
- 离线学习
- 在线学习
- 在线学习算法的分类
- 在线学习算法的优化
- 对比
- 总结
- 参考文献
简介
机器学习领域中,可将机器学习算法分为在线学习和离线学习。需要根据数据选择不同的线性可分和线性不可分的核函数。
离线学习
离线学习也通常称为批学习,是指对独立数据进行训练,将训练所得的模型用于预测任务中。将全部数据放入模型中进行计算,一旦出现需要变更的部分,只能通过再训练(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
在线学习(Online learning)与离线学习(Offline learning)相关推荐
- 终身学习(LifeLong Learning)/ 增量学习(Incremental Learning)、在线学习(Online Learning)
1.在线学习 实时获得一个新样本就进行一次模型更新.显然,在线学习时增量学习的特例,而增量学习可视为"批模式"的在线/离线学习. online主要相对于offline或者说batc ...
- 在线学习与离线学习如何区分
在线学习使用一个数据或是小批量数据 离线学习使用全部数据参与训练
- Contrastive Learning(对比学习,MoCo,SimCLR,BYOL,SimSiam,SimCSE)
很多大佬认为,深度学习的本质就是做两件事情:Representation Learning(表示学习)和 Inductive Bias Learning(归纳偏好学习).在表示学习方面,如果直接对语义 ...
- 深度学习 免费课程_深入学习深度学习,提供15项免费在线课程
深度学习 免费课程 by David Venturi 大卫·文图里(David Venturi) 深入学习深度学习,提供15项免费在线课程 (Dive into Deep Learning with ...
- AI学习笔记之——如何理解机器学习(Machine Learning)
前面虽然介绍了概率和贝叶斯网络,但是还是没有正式介绍AI中最重要的算法--机器学习.如果说概率论是机器学习的基石,那么机器学习算法和理论就是支撑整个AI系统的支柱.现在比较火的深度学习神经网路等等其实 ...
- Deep Learning(深度学习)相关网站
Deep Learning(深度学习) ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一 ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习): ...
- Deep Learning(深度学习) 资料库
Deep Learning(深度学习) ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一 ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习): ...
- Deep Learning(深度学习)网络资源
ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一 ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):二 Bengio团队的deep lear ...
- 【强化学习】Playing Atari with Deep Reinforcement Learning (2013)
Playing Atari with Deep Reinforcement Learning (2013) 这篇文章提出了第一个可以直接用强化学习成功学习控制policies的深度学习模型. 输入是r ...
最新文章
- windbg 查看结构体_用WinDbg进行调试
- 手把手教你写个小程序定时器管理库
- 掌握新手学车技巧对于新手来说是非常重要的
- Docker从入门到实战(四)
- ie6-7中会出现图片下有空隙
- linux grep,egrep,正则表达式
- C#Excel上传批量导入sqlserver
- Java函数式编程详解
- 合并报表编制采用的理论_谈合并报表的编制理论
- c语言中malloc的作用,malloc函数-malloc函数,详解
- 100个java项目_我如何在100天内建立​​100个项目
- linux关闭firefox进程,Firefox 68+ 怎样关闭多进程
- 在线答题系统(小型HTTP服务器)
- Android 软件行为监控系统 的原理 主要是利用binder机制原理添加一个filter
- 4键电子手表说明书_电子表的使用方法 电子手表使用说明书
- JETT(三)-多Sheet渲染
- BUCTOJ2021年ACM竞赛班训练九题解
- Git_WorkFlow
- Android 打包流程之aapt打包资源文件
- 化工印染企业高盐废水处理盐纯化/盐资源化
热门文章
- matlab 对话框保持,如何在matlab中创建输入对话框?(How to create Input dialog box in matlab?)...
- php商品状态精品 热销,ecshop商品列表,商品页,热销,精品,搜索列表页调用商品销售量(已销售数量)-ECSHOP教程网...
- 自学python积累
- 单缓冲、双缓冲、循环缓冲
- 夜空中最靓的二狗子是如何让 HTTPS 快上加快的?
- 使用Dism++备份系统文件并恢复
- 设计模式七大原则介绍
- 【目标检测】Detection in Crowded Scenes: One Proposal, Multiple Predictions
- 基于树莓派和LD3320模块的语音识别控制
- Rabbitmq集群高可用测试