终身机器学习(Lifelong Machine Learning)综述

2015年10月23日 17:34:57 qrlhl 阅读数 7805更多

分类专栏: 机器学习
 
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

大概有十几天了没有回来更新博客了吧,这期间遇到了大大小小各种事情,最悲伤的事应该是跟我关系最好的一个哥们的父亲去世了,被酒驾的人撞了,希望叔叔在天国安好!再次告诫各位开车一定不能喝酒,不只是对自己负责,也是对他人生命的尊重,在这里谢过大家了!
 
下面说一说我这些天积累的一点东西,是关于终身机器学习(Lifelong Machine Learning)的一些知识。所谓终身机器学习,就是这个模型自从创立那一天开始,就一直不断的运行下去。说起终身机器学习,相信很多人都不理解也没有了解过这个方向,因为确实很偏,但是在现在的大数据背景下,我相信总有一天,终身机器学习会大放异彩。虽然现在的应用可能不是很广泛,但是我相信终身机器学习也可以对我们现在正在做的一些工作有着启发式的作用。
 
终身机器学习出现的背景可以概括为以下两个方面:第一,随着信息技术的进步,各种数据呈爆炸式增长。第二,传统机器学习算法对大数据环境下的应用问题很多已不再适用,这是因为传统的机器学习算法大多只是关注于小样本范围内的分类等工作,对大数据环境缺乏适应能力。在这样的背景下,终身机器学习应运而生。
 
上面说过,这个方向现在有些偏,做这个方向的人也很少,下面列举三位大牛并附上他们的个人主页链接。
1. Daniel L.Sliver:此人是先驱级的人物,早期理论的奠基人
http://plato.acadiau.ca/courses/comp/dsilver/DLSWebSIte/Welcome.html
2. 杨强:此人曾在华为诺亚方舟研究所工作,从事这个方向的研究,现在在香港执教
http://www.cs.ust.hk/~qyang/
3. Eric Eaton: 新秀,提出的ELLA算法效率极高(1000倍左右的提升)
http://www.seas.upenn.edu/~eeaton/
 
下面先粗略介绍一下人类的学习过程,终身机器学习就是模仿人类学习过程提出的。首先人类对外界环境保持感知,从而对感兴趣的信息保持关注;之后,在大脑的海马系统上,新的知识在以往知识的基础上被快速建立起来;之后经过长时间的处理,在大脑皮质区形成较难遗忘的长时记忆。
 
关于终身机器学习的定义,学术界尚未形成统一的结论,但经过我的总结发现,一般都遵循以下四个要点:
1. 维护可增长的知识库 2.按照一定顺序学习 3.多个任务 4.知识的正向迁移
 
从上面的四点还有之前的人类学习过程我们可以看出,这里面最重要的一点就是知识的迁移,也就是旧知识如何帮助新知识的学习,知识迁移或者说迁移学习(Transfer Learning)正是终身机器学习的基础。
 
下面介绍一下终身机器学习的框架:
 
如图所示,终身机器学习的框架较为清晰,经过我个人的总结和参考一位博士学姐的文章,我将终身机器学习分为以下几个部分:
1. 迁移知识
作用是从知识仓库中选择对新模型学习有用的知识进行迁移,帮助新模型的学习。
2. 知识仓库
作用是存储学习到的有必要长期存储的知识同时对存储数据有效的检索和再现能力
3. 模型学习
4. 与知识仓库进行交互,利用迁移知识使新任务完成快速学习过程,并将新任务中学习到的新知识整合进原有的知识中
5. 整合知识
6. 保证知识仓库能得到不断地更新,以使得在学习新任务时,这些知识可以得到有效的迁移
7. 引导学习
求解出合理的任务学习顺序从而提升系统的学习性能和效率
 
以上的内容对有迁移学习基础的朋友可能会更容易理解一些,如果有朋友不是很理解,可以在下面评论,我会一一解答的。
 
相信各位也看出来了,在这个系统里面比较重要的是两个部分,迁移知识和整合知识。下面我介绍以下关于终身机器学习四种经典的算法,按照时间先后排序,这几个算法里面知识的迁移和整合往往是最重要的部分:
1. 基于解释的神经网络模型EBNN
目标:解决了纯粹的归纳学习在训练数据不足时通常会失败的问题
解决问题的角度:将归纳学习和分析学习相结合
算法思想:将归纳学习和分析学习相结合并增加了给定训练导数与神经网络函数实际导数之间的一致性约束,且进一步提出采用已经学习过任务的信息给出对训练数据的解释,实现不同任务间知识的迁移
贡献点:开创了利用根据先验知识进行演绎推导来进行终身学习的先河
2. 多任务人工神经网络MTLNN
目标:解决当学习新问题时,学习过的任务知识的滞留和回想问题
解决问题的角度:将学习过的任务进行重演
算法思想:将新任务样本输入已学习过模型中,并将对应的输出结果作为虚拟样本加入新任务学习的ηMTL 网络中进行训练,使得旧任务在学习新任务的同时也得到了巩固
贡献点:引入了任务重演对以前学习的任务进行巩固
3. 相关多任务学习csMTL
目标:克服MTL网络的局限性
解决问题的角度:增加任务上下文输入集
算法思想:增加输入节点,每一个增加的输入节点分别标记一个任务,但只设立一个输出节点;直接共享任务的表示
贡献点:避免了一次任务训练中必须对其他任务进行任务重演的操作,同时不需要计算任务相关性。
4. 高效终身机器学习ELLA
        目标:提高终身学习的效率
解决问题的角度:设立潜在任务
算法思想:将一组潜在任务作为共享知识保存起来,新任务到来的时候,通过这些潜在任务迁移已经学习到的知识帮助学习新任务,又通过学习到的新任务知识精炼潜在任务,可以使得先前学习的任务模型性能同样得到提升.
贡献点:在与MTL几乎同样的性能下,节省大量时间(超过1000倍),极度高效
 
如果各位朋友想深入了解这些算法的话,可以和我联系,我把论文发给大家。
 
说过了知识的迁移和整合,我们再来看看知识仓库。我们可能会想,知识仓库到底应该存储怎样的知识呢?根据相关研究,任务间的迁移随任务所共有的认知要素程度而变化,通过在更高的抽象层面上表征问题可以提高迁移能力。同时Weitheimer的实验说明,理解性学习的知识更容易迁移到新问题上。所以我们得出结论,知识仓库应存储知识的表示,相当于对存储经总结压缩后的原始信息。
 
说了这么久,我们来举两个应用实例吧:
1. 永不停止的语言学习机,它的目的是创造一个计算机系统可以持续不断地学习阅读和理解网页。
2. 永不停止的图像学习机,它的目的是在最少人工参与的情况下,建立世界上最大的结构化视觉知识库
 
最后,现有的终身机器学习方法还有很多不足之处,对未来的展望主要体现在以下三个方面:
1. 可迁移知识表示的研究,尤其是适用于任务类别数大且不一定完全相关的情况的知识表示
2. 如何处理数据多源异构问题,这里指的是针对来自不同的数据采集源,分布不同的
异构数据
3. 结合其他先进技术,如深度学习、知识图谱等,旨在提高特征学习性能和隐含因素捕捉能力以及对知识的组织和利用能力
 
由于最近心情都不怎么阳光,所以写出的东西可能有些凌乱,希望大家多多批评指教。最后希望大家能够向周围的家人朋友多多宣传一下千万不要酒驾,我在这里谢过大家了,谢谢!

终身机器学习(Lifelong Machine Learning)综述的更多相关文章

  1. 我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)【中英双语】

    我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)[中英双语] 视频地址:https://www.bilibili.com/video/av9912938/ t ...

  2. 机器学习(Machine Learning)

    机器学习(Machine Learning)是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能的学科.

  3. Domain adaptation:连接机器学习(Machine Learning)与迁移学习(Transfer Learning)

    domain adaptation(域适配)是一个连接机器学习(machine learning)与迁移学习(transfer learning)的新领域.这一问题的提出在于从原始问题(对应一个 so ...

  4. K近邻 Python实现 机器学习实战(Machine Learning in Action)

    算法原理 K近邻是机器学习中常见的分类方法之间,也是相对最简单的一种分类方法,属于监督学习范畴.其实K近邻并没有显式的学习过程,它的学习过程就是测试过程.K近邻思想很简单:先给你一个训练数据集D,包括 ...

  5. 学习笔记之机器学习(Machine Learning)

    机器学习 - 维基百科,自由的百科全书 https://zh.wikipedia.org/wiki/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0 机器学习是人工智能的一个分 ...

  6. 学习笔记之机器学习实战 (Machine Learning in Action)

    机器学习实战 (豆瓣) https://book.douban.com/subject/24703171/ 机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中 ...

  7. 统计机器学习(statistical machine learning)

    组要组成部分:监督学习(supervised learning),非监督学习(unsupervised learning),半监督学习(semi-supervised learning),强化学习(r ...

  8. 机器学习( Machine Learning)的定义

    关于机器学习有两个相关的定义: 1)给计算机赋予没有固定编程的学习能力的研究领域. 2)一种计算机的程序,能从一些任务(T)和性能的度量(P),经验(E)中进行学习.在学习中,任务T的性能P能够随着P ...

  9. 机器学习(Machine Learning)算法总结-决策树

    一.机器学习基本概念总结 分类(classification):目标标记为类别型的数据(离散型数据)回归(regression):目标标记为连续型数据 有监督学习(supervised learnin ...

随机推荐

  1. QTableWidget界面有数据之后鼠标点击无响应界面无响应

    1.问题:QTableWidget上出现数据之后,界面无响应,鼠标点击没有响应,但是还是可以正常接收数据,连关闭按钮都无法关闭,必须通过杀死进程来关闭程序.有的电脑是无响应,有的电脑又可以. 2.分析 ...

  2. 内部排序总结之----插入类排序(插入和Shell)

    一.直接插入排序 直接插入排序(straight insertion sort)的做法是: 每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序. 第一趟比较前两个数,然后把第二 ...

  3. python上下文小记

    python访问数据库是日常编程中经常使用的,一般的代码如下: 可以看出样例代码还是比较多的,有没有办法优化一下呢?有! def send_msgs(conn_id=None, **kwargs): ...

  4. ps 证件照制作

    自己制作证件照,再通过印鸽等服务打印邮寄,个人感觉还是比较方便实惠. 使用ps的定义图案和填充功能(ps精简版) 定义图案 1,打开1寸照片 2,图像=>图像大小,可选去掉约束比例 1寸:2.5 ...

  5. Fiddler主界面图标简单说明

    Fiddler主界面图标简单说明: 名称 含义 # 抓取HTTP Request的顺序,从1开始,以此递增 Result HTTP状态码 Protocol 请求使用的协议,如HTTP/HTTPS/FT ...

  6. 报错1251 - Client does not support authentication protocol 解决办法

    # 1.容器中登录mysql,查看mysql的版本 status; # 2,进行授权远程连接(注意mysql 8.0跟之前的授权方式不同) GRANT ALL ON *.* TO 'root'@'%' ...

  7. APP消息推送是否进入消息中心和click、receive事件分析

    前端时间研究APP消息推送的机制,由于机型.版本的碎片化,消息推送的机制不太好理解,所以总结下,放在博文里以备后续查阅. 安卓Android系统的消息推送:     安卓 推送方式 应用状态 类型 消 ...

  8. Flume-安装与 NetCat UDP Source 监控端口

    Flume 文档:https://flume.apache.org/FlumeUserGuide.html Flume 下载:https://archive.apache.org/dist/flume ...

  9. [log4j]Error:The method getLogger(String) in the type Logger is not applicable for the arguments

    原因:本该导入import org.apache.log4j.Logger; 结果成了import java.util.logging.Logger; 如果硬把private static Logge ...

  10. pytorch-googleNet

    googleNet网络结构 输入网络: 由4个分支网络构成 第一分支: 由1x1的卷积构成 第二分支: 由1x1的卷积,3x3的卷积构成 第三分支: 由1x1的卷积, 5x5的卷积构成 第四分支: 由 ...