终身机器学习(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. 1.RabbitMq - Work 模式

    RabbitMq - Work 模式 一.什么是Work模式 如果有几个消息都需要处理,且每个消息的处理时间很长,仅有一个消费者,那么当它在处理一个消息的时候,其他消息就只有等待. 等待有时候是好的, ...

  2. Dubbo API 笔记——Dubbo架构与使用

    转载于: https://blog.csdn.net/benhuo931115/article/details/78457149 架构演变 单一应用架构 所有功能部署在一个应用上,用于简化增删改查工作 ...

  3. 预处理、const、static与sizeof-使用const与#define的特点及区别

    1:#define只是用来做文本替换的.例如: #define PI 3.1415926 float angle; angle=*PI/; 那么,程序进行编译的时候,编译器会首先将“#define P ...

  4. CDN之简介

    1. 什么是 CDN? 来自 <什么是 CDN?> CDN(内容交付网络)是一种高度分布式服务器平台,为交付 Web 应用程序.流媒体等内容专门优化.服务器网络分布于众多物理和网络位置,对 ...

  5. HearthBuddy BotManager

    MainWindow private void button_0_Click(object sender, RoutedEventArgs e) { Configuration.Instance.Sa ...

  6. 提高组刷题营 DAY 2

    1.滞空(jump/1s/64M) #include<bits/stdc++.h> using namespace std; typedef long long LL; ; inline ...

  7. java 注解方式 写入数据到Excel文件中

    之前有写过一点关于java实现写Excel文件的方法,但是现在看来,那种方式用起来不是太舒服,还很麻烦.所以最近又参考其他,就写了一个新版,用起来不要太爽. 代码不需要解释,惯例直接贴下来: publ ...

  8. java+web上传文件夹内的所有文件

    javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 <form id=" ...

  9. Jenkins——增加应用编译部署

    新建Item: 源码配置: 构建环境配置: #!/usr/bin/bash source /etc/profile tomcat_home="/home/mppay/apache-tomca ...

  10. ppt学习笔记

    文档:ppt学习笔记.note链接:http://note.youdao.com/noteshare?id=719a525ca3420e3692b1025d5d904c02&sub=4E52E ...