1.1 机器学习简介
机器学习(Machine Learning)是计算机科学的子领域,也是人工智能的一个分支和实现方式。汤姆·米切尔(Tom Mitchell)在1997年出版的Machine Learning一书中指出,机器学习这门学科所关注的是计算机程序如何随着经验积累,自动提高性能。他同时给出了形式化的描述:对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么就称这个计算机程序在从经验E学习。
机器学习主要的理论基础涉及概率论、数理统计、线性代数、数学分析、数值逼近、最优化理论和计算复杂理论等,其核心要素是数据、算法和模型。
1.1.1 机器学习简史
机器学习是一门不断发展的学科,虽然只是在最近几年才成为一个独立学科,但机器学习的起源可以追溯到20世纪50年代以来人工智能的符号演算、逻辑推理、自动机模型、启发式搜索、模糊数学、专家系统以及神经网络的反向传播BP算法等。虽然这些技术在当时并没有被冠以机器学习之名,但时至今日它们依然是机器学习的理论基石。从学科发展过程的角度思考机器学习,有助于理解目前层出不穷的各类机器学习算法。机器学习的大致演变过程如表1-1所示。
表1-1 机器学习的大致演变过程
机器学习的发展分为知识推理期、知识工程期、浅层学习(Shallow Learning)和深度学习(Deep Learning)几个阶段。知识推理期起始于20世纪50年代中期,这时候的人工智能主要通过专家系统赋予计算机逻辑推理能力,赫伯特·西蒙(Herbert Simon)和艾伦·纽厄尔(Allen Newell)实现的自动定理证明系统Logic Theorist证明了逻辑学家拉赛尔(Russell)和怀特黑德(Whitehead)编写的《数学原理》中的52条定理,并且其中一条定理比原作者所写更加巧妙。20世纪70年代开始,人工智能进入知识工程期,费根鲍姆(E.A. Feigenbaum)作为知识工程之父在1994年获得了图灵奖。由于人工无法将所有知识都总结出来教给计算机系统,所以这一阶段的人工智能面临知识获取的瓶颈。实际上,在20世纪50年代,就已经有机器学习的相关研究,代表性工作主要是罗森布拉特(F. Rosenblatt)基于神经感知科学提出的计算机神经网络,即感知器,在随后的十年中浅层学习的神经网络曾经风靡一时,特别是马文·明斯基提出了著名的XOR问题和感知器线性不可分的问题。由于计算机的运算能力有限,多层网络训练困难,通常都是只有一层隐含层的浅层模型,虽然各种各样的浅层机器学习模型相继被提出,对理论分析和应用方面都产生了较大的影响,但是理论分析的难度和训练方法需要很多经验和技巧,随着最近邻等算法的相继提出,浅层模型在模型理解、准确率、模型训练等方面被超越,机器学习的发展几乎处于停滞状态。
2006年,希尔顿(Hinton)发表了深度信念网络论文,本戈欧(Bengio)等人发表了“Greedy Layer-Wise Training of Deep Networks”论文,乐康(LeCun)团队发表了“Efficient Learning of Sparse Representations with an Energy-Based Model”论文,这些事件标志着人工智能正式进入了深层网络的实践阶段,同时,云计算和GPU并行计算为深度学习的发展提供了基础保障,特别是最近几年,机器学习在各个领域都取得了突飞猛进的发展。
新的机器学习算法面临的主要问题更加复杂,机器学习的应用领域从广度向深度发展,这对模型训练和应用都提出了更高的要求。随着人工智能的发展,冯·诺依曼式的有限状态机的理论基础越来越难以应对目前神经网络中层数的要求,这些都对机器学习提出了挑战。
1.1.2 机器学习主要流派
在人工智能的发展过程中,随着人们对智能的理解和现实问题的解决方法演变,机器学习大致出现了符号主义、贝叶斯、联结主义、进化主义、行为类推主义五大流派。
1. 符号主义
符号主义起源于逻辑学、哲学,实现方法是用符号表示知识,并用规则进行逻辑推理,其中专家系统和知识工程是这一学说的代表性成果。符号主义流派认为知识是信息符号的表示,是人工智能的基础,将这些符号输入到计算机中进行模拟推理,从而实现人工智能。
2. 贝叶斯派
贝叶斯定理是概率论中的一个定理,其中P(A|B)是在事件B发生的情况下事件A发生的可能性(条件概率)。贝叶斯学习已经被应用于许多领域。例如,自然语言中的情感分类、自动驾驶和垃圾邮件过滤等。
3. 联结主义
联结主义起源于神经科学,主要算法是神经网络,由大量神经元以一定的结构组成。神经元是一种看起来像树状的细胞,它由细胞体和细胞突起构成,在长的轴突上套有一层鞘,组成神经纤维,它的末端的细小分支叫作神经末梢。每个神经元可以有一或多个树突,可以接受刺激并将兴奋传入细胞体。每个神经元只有一个轴突,可以把兴奋从胞体传送到另一个神经元或其他组织,神经元之间是互相连接的,这样形成了一个大的神经网络,人类所学会的知识几乎都存在其中,如图1-1所示。
图1-1 神经元结构
在神经网络中,将n个相连接的神经元的输出作为当前神经元的输入,进行加权计算,并加一个偏置值(Bias)之后通过激活函数来实现变换,激活函数的作用是将输出控制在一定的范围以内。以Sigmoid函数为例,输入从负无穷到正无穷,经过激活之后映射到(0,1)区间。
人工神经网络是以层(Layer)形式组织起来的,每一层中包含多个神经元,层与层之间通过一定的结构连接起来,对神经网络的训练目的就是要找到网络中各个突触连接的权重和偏置值。作为一种监督学习算法,神经网络的训练过程是通过不断反馈当前网络计算结果与训练数据之间的误差来修正网络权重,使误差足够小,这就是反向传播算法。
4. 进化主义
1850年,达尔文发现进化论。在微观上,DNA是线性串联编码,进化过程是基因交叉、突变的过程。宏观上,进化过程是生物个体适应环境的优胜劣汰过程。智能要适应不断变化的环境,通过对进化的过程进行建模,产生智能行为。进化算法(Evolutionary Algorithm,EA)是在计算机上模拟进化过程,基于“物竞天择,适者生存”的原则,不断迭代优化,直到找到最佳的结果。进化算法包括基因编码、种群初始化、交叉变异算子等基本操作,是一种比较成熟的具有广泛适用性的全局优化方法,具有自组织、自适应、自学习的特性,能够有效地处理传统优化算法难以解决的复杂问题(例如NP难优化问题)。
遗传算法的优化要视具体情况进行算法选择,也可以与其他算法相结合,对其进行补充。对于动态数据,用遗传算法求最优解可能会比较困难,种群可能会过早收敛。本书第9章将对遗传算法进行详细介绍。
5. 行为类推主义
根据约束条件来优化函数,行为类推主义者倾向于通过类比推理获得知识和理论,将未知情况与已知情况建立对应关系,在实际应用中,就是计算它们之间的相似度,然后定义关联关系。