第10章机器学习研究与应用新进展徐从富李石坚王金龙(浙江大学人工智能研究所,杭州 310027)2005年10月7日第一稿2006年10月16日第二稿10.1 机器学习研究与应用综述10.1.1 机器学习的发展概况机器学习(Machine Learning)不仅是人工智能的一个核心研究领域,而且已成为整个计算机领域中最活跃、应用潜力最明显的领域之一,它扮演着日益重要的角色。
近年来,欧美各国都投入了大量人财物进行机器学习的研究和应用,Intel、IBM、波音、微软、通用电器等大型公司也积极开展该领域的研究和开发,而且已有不少研究成果进入产品。
美国航空航天局JPL实验室的科学家们在2001年9月出版的《Science》上撰文指出:“机器学习对科学研究的整个过程正起到越来越大的支持作用,……,该领域在今后的若干年内将取得稳定而快速的发展。
”此外,机器学习研究的热门程度还可以从该领域的国际权威期刊《机器学习研究学报》(Journal of Machine Learning Research,简称JMLR)的影响因子(Impact factor)看出,据美国科学引文检索公司(ISI)统计,2004年该学报的影响因子已达到5.952,这是除了《ACM计算综述》(ACM Computing Survey)以外影响因子最高的计算机类期刊。
需要特别说明的是,《ACM计算综述》每年只发表12篇世界级权威计算机专家关于某个研究方向最新研究进展的综述文章,一般并不发表研究论文,2004年其影响因子为10.037。
1997年Tom M. Mitchell在“Machine Learning”一书中给出了机器学习的经典定义——“计算机利用经验改善系统自身性能的行为。
”还有人认为,机器学习是“神经科学(含认知科学)+数学+计算”的有机结合,数学则填补了神经科学与计算之间的鸿沟。
与很多新兴学科一样,机器学习也是一个多学科交叉的产物,它吸取了人工智能、概率统计、神经生物学、认知科学、信息论、控制论、计算复杂性理论、哲学等学科的成果。
实践证明,机器学习在很多应用领域发挥了重要的实用价值,特别是在数据挖掘、语音识别、图像识别、机器人、车辆自动驾驶、生物信息学、信息安全、遥感信息处理、计算金融学、工业过程控制等领域取得了令人瞩目的成果。
一般来说,机器学习的研究起点最早可追溯到19世纪末的神经科学,特别是James发现了神经元是相互连接的现象。
随后,在20世纪30年代,McCulloch 和Pitts发现了神经元的“兴奋”和“抑制”机制,20世纪中叶,Hebb发现了“学习律”,等等。
在上述神经生物学研究成果的基础上,机器学习的发展大致可分为两条重要主线。
一条主线是:以Barlow提出的功能单细胞假设为依据,Rosenblatt于1956年提出了感知器,在随后的近30年时间里,Samuel等人提出的“符号机器学习”方法一直处于主导地位,1969年Minsky开始研究线性不可分问题,1986年Rumelhart提出了著名的后向传播(BP)神经网络,20世纪90年代Vapnik等人提出了针对有限样本的统计学习理论和支持向量机(SVM),等等。
另一条主线是:以Hebb提出的神经集合体假设为依据,1960年Widrow提出了Madline以解决平凡解问题,1984年Valiant提出了PAC,1990年Schapire 提出了弱学习定理,1995年Freund和Schapire提出了AdaBoost算法,在上述研究成果的基础上,逐渐形成了泛化理论。
需要说明的是,在符号机器学习方面,1959年Solomonoff关于文法归纳的研究应该是最早的符号机器学习,Samuel将学习限制在结构化数据,由此学习演变为约简算法,这是现代符号机器学习的基础。
如果将每条规则理解为一个分类器,符号机器学习是也可算作是Hebb路线的产物。
此外,1967年哥德尔从数学上证明了符号机器学习是不可能完全实现的。
10.1.2 机器学习的研究内容一般来说,一个典型的机器学习系统(如图10.1所示)都包括下面4个程序模块:(1) 执行系统(Performance System)。
其主要功能是用学会的目标函数来解决给定的任务。
(2) 鉴定器(Critic)。
它以解答路线或历史记录作为输入,输出目标函数的一系列训练样本。
(3) 泛化器(Generalizer)。
它以训练样本作为输入,产生一个输出假设,作为它对目标函数的估计。
它从特定的训练样本中泛化,猜测一个一般函数,使其能够覆盖这些样本以及样本之外的情形。
(4) 实验生成器(Experiment Generator)。
它以当前的假设(即当前学到的目标函数)作为输入,输出一个新的问题供执行系统去探索。
设计一个机器学习系统通常要解决如下几方面的问题:(1)选择训练经验。
它包括:如何选择训练经验的类型,如何控制训练样本序列,以及如何使训练样本的分布与未来测试样本的分布相似等子问题。
(2)选择目标函数(Target function)。
不难发现,所有的机器学习问题几乎都可简化为学习某个特定的目标函数的问题,而且这样的简化对解决实际问题是非常有益的,因此,目标函数的学习、设计和选择是机器学习领域的关键问题。
(3)选择目标函数的表示。
对于一个特定的应用问题,在确定了理想的目标函数后,接下来的任务是必须从很多(甚至是无数)种表示方法中选择一种最优或近似最优的表示方法。
图10.1 一个典型的机器学习的基本组成模块Tom M. Mitchell认为,机器学习致力于解决的主要问题有:(1) 存在什么样的算法能从特定的训练样本中学习一般的目标函数?如果提供了充足的训练样本,在什么条件下会使特定的算法收敛到期望的函数?哪个算法对哪些问题的性能最好?(2) 多少训练样本是充足的?怎样找到假设的置信度与训练样本的数量及提供给学习器的假设空间特性之间的一般关系?(3) 学习器拥有的先验知识是怎样引导从样本进行泛化的过程的?当先验知识仅仅是近似正确的,它们会有帮助吗?(4) 关于选择有效的后续训练经验,什么样的策略最好?这个策略的选择将如何影响学习问题的复杂性?(5) 怎样把学习任务简化为一个或多个函数逼近问题?也就是说,系统试图学习哪些函数?这个过程本身能否自动化?(6) 学习器怎样自动地改变表示法来提高表示和学习目标函数的能力?10.1.3 研究现状与发展趋势显然,任何一个没有学习能力的系统都很难被认为是一个真正的智能系统,但随着机器学习研究及应用的不断发展,尽管“学习机制”还是研究动力之一,然而,“烦恼的网络”危机使得更为重要的推动力来自“有效利用”信息。
当前,很多传统领域借用机器学习来提高研究水平,应用驱动的机器学习方法层出不穷,特别是基于机器学习的数据分析方法已成为解决复杂问题的关键技术之一,因此,当前机器学习的角色也逐渐发生了转变,已发展到一个新阶段。
主要体现在:(1)主方向的改变。
当前机器学习领域的主流不再是单纯地做“会学习的机器(人)”,而是越来越朝着智能数据分析的方向发展,并已成为智能数据分析技术的一个重要源泉。
目前,机器学习主要用于智能数据分析的典型任务——预测,例如,天气预报、网络入侵检测、生物信息学中的基因组和蛋白质组的结构分析等。
(2)侧重点的改变。
传统的机器学习强调“学习本身是目的”,上一阶段的研究几乎完全局限于人工智能这一领域本身,主要关注人工智能对人类学习能力的追求;而当前的机器学习更强调“学习本身是手段”,它已经开始广泛进入计算机科学的不同领域,甚至其它学科,并已成为一种支持技术和服务技术。
(3)应用面的改变。
近年来,文本与图像占信息的绝大数,在文本分析与自然语言理解上,数据资源建设逐渐完善,人们关注的焦点是机器学习及其在这些数据资源上的深层次应用。
当前,针对信息的复杂多样性,涌现出很多新的机器学习方法。
比如:可用于特征抽取的流形机器学习,即稀疏数据的非线性处理方法;改善机器人适应环境变化性能的增强学习;可用于药物设计的多实例学习和半监督学习;广泛用于搜索引擎的Ranking学习;能够快速过滤海量数据的数据流(Data stream)学习;等等。
虽然这些新的机器学习方法仍处于探索和实验观察阶段,但是,它们已充分表明基于机器学习的数据分析方法越来越成为解决复杂问题的关键。
因此,现阶段机器学习研究不应再过多地强调模拟人的学习能力,应该把机器学习真正当成一种支持技术(也就是说,它是一种重要手段而非目的),考虑不同领域甚至不同学科对机器学习的需求,找出其中迫切需要解决的共性问题,并进行深入研究,有人把这种视角下的机器学习称为“普适机器学习”(Pervasive Machine Learning,简称PML)。
中科院自动化研究所模式识别国家重点实验室的王珏教授等人认为,目前机器学习领域存在的主要理论问题有:z统计类机器学习需要满足独立同分布条件,这样的要求太过苛刻。
z没有一般的指导原则来寻找问题线性表示的空间。
z没有好的方法来支持信息向符号的映射。
z机器学习没有一劳永逸的解决方案。
z领域知识与数据分析不可避免。
南京大学计算机软件新技术国家重点实验室的周志华教授等人认为,今后10年间机器学习领域存在5个挑战性问题:(1)泛化能力。
这是一个共性问题,几乎所有的领域都希望越准越好,提高泛化能力是机器学习领域永远追求的目标。
目前泛化能力最强的技术有:支持向量机(SVM),其产生途径是从理论(特别是统计学)到实践;集成学习(Ensemble learning),其产生途径则是从实践到理论。
(2)速度。
这也是一个共性问题,几乎所有的领域都希望越快越好,加快速度也是机器学习领域永远追求的目标。
目前,机器学习领域最关心的一个问题是“训练速度”与“测试速度”之间的关系,以及如何使这两者之间不发生矛盾。
例如,k近邻方法的训练速度快,但其测试速度往往比较慢;而神经网络恰恰相反;等等。
(3)可理解性。
绝大多数领域都希望有“可理解性”,例如,在医疗诊断中需要向病人解释“为什么做出这样的诊断”,信用卡盗用检测时需要向保安或公安部门解释“为什么这是正被盗用的卡”,等等。
而目前功能强大的机器学习技术几乎都是(或基本上是)“黑盒子”,如神经网络、支持向量机、集成学习等。
最近,Tom M. Mitchell在他的著作“Machine Learning”新增一章可理解的Naïve Bayes(朴素贝叶斯)方法和Logistic Regression(回归)模型是有重要意义的。
(4)数据利用能力。
传统的机器学习技术都是对有“标记”的数据(是指带有事件所对应的结果的数据)进行学习,然而,随着Internet的出现和数据收集能力的不断提高,绝大多数领域都将面临大量未标记的数据,如医学图像、垃圾邮件等;同样地,大多数领域也都会遇到“坏”数据(是指那些含有大量噪音、属性缺失、不一致的数据);此外,还有一类“不平衡”数据也经常碰到,比如,乳腺癌诊断中的“健康人”样本就远多于“病人”样本,信用卡盗用检测中的“正常使用”样本就远多于“盗用”样本。