终身机器学习(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. docker下的images 保存和导出

    由于迁移测试环境,所以部署的的docker镜像某一些需要迁移到另外一台服务器上面去.. 我是用 docker save -o registry.tar registry 来把相应需要导出的images ...

  2. js base64编码,C#解码

    JS: this.Base64 = function (str) { return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, fu ...

  3. koa 实现上传文件

    项目目录: 1.上传单个文件 思路: (1)获取上传文件,使用 const file = ctx.request.files.file (2)我们使用 fs.createReadStream 来读取文 ...

  4. linux 下执行py问题提示cannot import name request

    最近因为工作需要,需要在linux上去执行python代码,但是在执行的时候提示cannot import name request,我以为是导入有问题,然后我就把代码放到与包一个目录下,执行py问题 ...

  5. 使用Python爬取mobi格式电纸书

    最近做了个微信推送kindle电子书的公众号:kindle免费书库 不过目前电子书不算非常多,所以需要使用爬虫来获取足够书籍. 于是,写了以下这个爬虫,来爬取kindle114的电子书. 值得注意的地 ...

  6. 图片滚动js代码

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  7. Swift3.0添加桥接文件

    注意是在target下不是project !!!纠结了好久表示...... 都这里一直编译错误,找不到该桥接文件,这里也是纠结了好久......最后原因是不能使用下划线就可以了....<表示这是 ...

  8. Python 面向对象(下)

    本篇博客承接自Python 面向对象(上) 四. 继承,实现,依赖,关联,聚合,组合 Python面向对象--继承,实现,依赖,关联,聚合,组合 五. 特殊成员 Python面向对象--类的特殊成员 ...

  9. lua学习笔记3--lua与c#交互

    LuaInterface是C#与Lua连接的桥梁 LuaInterface是一个开源项目工程,内部有两个核心DLL文件: LuaInterface.dll:在C#中操作Lua代码需要依赖该文件; lu ...

  10. ASP.NET Core 入门笔记9,ASP.NET Core + Entity Framework Core 数据访问入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...