机器学习笔记
机器学习是计算机科学的分支——人工智能的一个子集,它通常使用统计学方法,借助数据,赋予计算机“学习”的能力(例如,逐渐提高在特定任务上的表现)而不需要明确编写学习过程[1]。
机器学习的名字是Arthur Samuel [2] 在1959年创建的。它由人工智能 [3] 中的模式识别与计算学习理论研究发展而来,探究从数据 [4] 中学习、做出预测的算法的研究与结构——这些算法通过从样本输入中建立模型,做出数据驱动的预测或决定 [5], 避免了一系列严格的静态程序指令。机器学习被应用于那些设计运转良好、 清晰明确的算法十分困难或根本不可行的计算任务中 ;其应用范围包括电子邮件过滤、网络入侵者与针对数据泄露的恶意内部人员的探查、光学字符识别、学习排序、计算机视觉。
机器学习与计算统计学密切相关(而且常常与之重叠),计算统计学也专注于通过使用计算机进行预测。它与数学优化有着很强的联系,后者为之提供了方法、理论和应用领域。机器学习有时与数据挖掘 [6] 混为一谈,后者更侧重于探索性数据分析,被称为无监督学习 [5] [7]。机器学习也可以是无监督的,并可用于为各种实体,学习和建立基线行为轮廓,然后用于寻找有意义的异常。
在数据分析领域,机器学习是设计复杂模型和算法的一种方法。这有助于预测;在商业用途中,这被称为预测分析。这些分析模型使研究人员、数据科学家、工程师和分析人员能够“产生可靠的、可重复的决策和结果”,并通过从数据中的历史关系和趋势中学习,来发现“隐藏的洞见”。 [8]
目录[隐藏] |
概述
Tom M.Mitchell对机器学习领域中研究的算法提供了一个被广泛引用的、更正式的定义:“计算机程序被描述为从经验E中学习某些类型的任务T和性能度量P,如果它在T中的性能(用P来衡量)随着经验E而提高。” [9] 这一将机器学习与任务进行关联的定义提供了一个基本的可执行定义,而不是认知术语形式的定义。这与艾伦·图灵在他的论文“计算机器和智能”中的提议一脉相承,其中“机器能思考吗?”被替换为“机器能做我们(作为思维实体)能做的事情吗?” [10] 。图灵的建议揭露了思维机器可能具有的各种特性以及构建机器时的诸多暗含之意 。
机器学习的任务
机器学习任务通常分为两大类,取决于学习系统是否存在学习“信号”或“反馈”:
- 监督学习:向计算机展示由“教师”提供的示例输入及其期望的输出,目标是学习将输入映射到输出的一般规则。作为特例,输入信号只能被部分提供,或仅限于特定反馈:
- 无监督学习:没有标签给学习算法,留下它自己在其输入中找到结构。无监督学习本身可以是一个目标(发现数据中隐藏的模式),或者是一种达到目的的手段(特征学习)。
机器学习的应用
当考虑机器学习系统的期望输出时,机器学习任务的另一种分类出现了。 [5]
- 在分类中,输入被分成两个或多个类,学习者必须生成一个模型,将未被分类的输入分配给这些类的一个或多个(多标签分类)。这通常是以监督的方式处理的。垃圾邮件过滤是分类的一个例子,其中输入是电子邮件(或其他)消息,类是“垃圾邮件”和“非垃圾邮件”。
- 在回归中,也是一个有监督学习问题,输出是连续的而不是离散的。
- 在聚类中,一组输入被分为不同组。与分类不同的是,这些组事先是未知的,因此这通常是无监督学习的任务。
- 密度估计挖掘输入在某一空间的分布。
- 维数约简通过将输入映射到低维空间来简化输入。主题建模是一个相关的问题,在这个问题中,程序会得到一个人类语言文档的列表,并负责找出哪些文档涵盖了类似的主题。
在其他类型的机器学习问题中, 元学习在以往经验的基础上学会了自己的归纳偏好。 发育学习是为机器人学习而发展起来的,它通过自主的自我探索和与人类教师的社会互动,利用主动学习、成熟、运动协同和模仿等引导机制,产生自己的学习情境序列(也称为课程),累积获得一系列新技能。
历史、和其它领域的关系
- 参见:机器学习时间线
美国计算机游戏和人工智能领域的先驱Arthur Samuel于1959年在IBM时发明了“机器学习”一词。作为一项科学探索,机器学习源于对人工智能的探索 [11]. 。 早在人工智能作为一门学术学科的时期,一些研究人员就对让机器从数据中学习产生了兴趣。他们试图用各种符号方法以及后来被称为“神经网络”的方法来解决这个问题;这些模型大多是感知器和其他模型,后来被发现是广义线性统计模型的再发明 [12]。统计学推理也被使用,特别是在自动医疗诊断中 [13]。
然而,对逻辑的、基于知识的方法的日益重视,导致人工智能和机器学习之间产生了裂痕,概率系统受到数据采集和数据表示的理论和实践问题的困扰 [13]。 到1980年,专家系统已经主导了人工智能,而统计方法不再受欢迎 [14]。 基于符号与知识的学习的工作仍然属于AI领域,这促成了归纳逻辑编程,但更多的在模式识别和信息检索 [13] 方面的统计方法的研究已经超出了人工智能本身的范围。神经网络的研究几乎同时被人工智能和计算机科学所抛弃。而在AI/CS领域之外,这条路线也被其他学科的研究人员奉为“连接主义”而继续存在,包括Hopfield、Rumelhart和Hinton。他们的主要成功是在上世纪80年代中期重新发明了反向传播算法 [13]。
机器学习,作为一个独立的领域,在20世纪90年代开始蓬勃发展。机器学习的目标从实现人工智能转变为解决可解决的实践性问题。它将重点从AI中继承的符号方法转向了来自于统计学和概率论的方法和模型[14] ,同时也受益于数字化信息日益增长的普及性,以及互联网传播信息的能力。
机器学习和数据挖掘通常采用相同的方法,重叠程度很大。但是机器学习侧重于预测——基于从训练数据中学习到的已知属性,而数据挖掘则侧重于在数据中发现(以前的)未知属性(这是数据库中知识发现的分析步骤)。数据挖掘采用多种机器学习方法而目标不同;另一方面,机器学习也采用数据挖掘的方法作为“无监督学习”或作为预处理步骤来提高学习精度。这两个研究对象之间的许多混淆(它们通常有单独的会议和单独的期刊,ECML PKDD是一个主要的例外)来自于它们所使用的基本假设:在机器学习中,性能通常是根据重复生产已知知识的能力来评估的,而在知识发现和数据挖掘(KDD)中,关键任务是发现以前未知的知识。在对学习已知知识进行评估时,其他监督学习方法很容易优于无监督学习方法,而在典型的KDD任务中,由于训练数据的不可得性,则无法使用监督学习的方法。
机器学习与优化也有着密切的联系:许多学习问题被描述为训练集上的一些损失函数的最小化。损失函数表示被训练模型的预测与实际问题之间的差异(例如,在分类中,要为实例分配一个标签,且模型要被训练以正确预测一组预先分配过标签的示例)。这两个领域的区别来自于一般化的目的:优化算法可以最小化训练集上的损失,而机器学习则涉及到最小化未知样本的损失 [15]。
与统计学的关系
机器学习和统计是密切相关的领域。据Michael I. Jordan说,机器学习的思想,从方法论原理到理论工具,都在统计学上有着悠久的历史 [16]。 他还建议用数据科学这个术语来称呼整个领域 [16]。
Leo Breiman区分了两种统计建模范式:数据模型和算法模型 [17] ,其中“算法模型”或多或少是指像随机森林那样的机器学习算法。
一些统计学家采用机器学习的方法,形成了一个他们称之为统计学习的交叉领域[18]。
理论
- 主文章:计算学习理论
学习者的一个核心目标是从经验中举一反三 [5] [19]。 这里的举一反三是指学习机器在经历了学习数据集之后,能够准确地对新的、未见过的示例/任务进行精确的操作。训练实例通常来自一些未知的概率分布(常被认为是样本空间的代表),并且学习者必须建立一个关于这个空间的通用模型,使得它能够在新的情况下产生足够精确的预测。
机器学习算法及其性能的计算分析是理论计算机科学的一个分支,称为计算学习理论。由于训练集是有限的但是未来是不确定的,所以学习理论通常不能保证算法的性能。然而,算法性能的概率的界限是相当普适的。偏差-方差分解是量化泛化误差的一种方法。
为了在泛化的情境中获得最佳性能,假设的复杂性应该与数据基础上的函数的复杂性相匹配。如果假设没有函数复杂,那么模型就不适合数据。如果模型的复杂度因此增加,则训练误差减小。但如果假设过于复杂,则模型会被过度拟合,泛化也将变得更差[20]。
除了性能界限外,计算学习理论家还研究了学习的时间复杂性和可行性。在计算学习理论中,如果可以在多项式时间内进行计算,则认为计算是可行的。有两种时间复杂度的结果。正结果表明,一类函数可以在多项式时间内学习。负结果表明,某些类函数不能在多项式时间内学习。
方法
- 主文章:机器学习算法列表
决策树学习
- 主文章:决策树学习
决策树学习使用决策树作为预测模型,它将问题相关的观察结果映射为问题目标值的结论。
关联规则学习
- 主文章:关联规则学习
关联规则学习是在大型数据库中发现变量间有趣关系的一种方法。
人工神经网络
- 主文章: 人工神经网络
人工神经网络(ANN)学习算法,通常称为神经网络(NN),是一种受生物神经网络启发的学习算法。计算是根据一组相互关联的人工神经元来构造的,它们使用连接主义的计算方法来处理信息。现代神经网络是非线性统计数据建模工具。它们通常用于模拟输入和输出之间的复杂关系,在数据中找到模式,或在观测变量之间的未知联合概率分布中寻找统计结构。
深度学习
- 主文章:深度学习
近几年来,硬件价格的下降和个人用GPU的发展促进了深度学习概念的发展,该概念由人工神经网络中的多个隐层组成。这种方法试图模拟人脑将光和声音处理成视觉和听觉的方式。深入学习的一些成功应用是计算机视觉和语音识别 [21]。
归纳逻辑编程
- 主文章:归纳逻辑编程
归纳逻辑编程(ILP)是一种将逻辑编程作为输入实例、背景知识和假设的统一表示的规则学习方法。给定已知背景知识的编码和作为事实逻辑数据库表示的一组示例,ILP系统将导出一个假设逻辑程序,其中包含所有正负示例。归纳编程是一个相关的领域,它考虑任何类型的编程语言来表示假设(而不仅仅是逻辑编程),例如函数程序。
支持向量机
- 主文章:SVM支持向量机
SVM支持向量机(SupportVectorMachine,SVMs)是一种用于分类和回归的监督学习算法。给出一组训练实例,每个样本会被标记为属于两类中的一个,SVM算法建立了一个模型来预测一个新的例子是否属于一个类别或另一个类别。
聚类
- 主文章:聚类分析
聚类分析是将一组观测数据分配到子集(称为聚类)中,使同一簇内的观测按照某些预先指定的准则相似,而从不同的簇中提取的观测值则不同。不同的聚类技术对数据的结构提出了不同的假设,通常用某种相似性度量来定义,并通过内部紧密性(同一聚类成员之间的相似性)和不同聚类之间的分离性来评估。其他方法基于估计的密度和图的连通性。聚类是一种无监督学习方法,是一种常用的统计数据分析技术。
贝叶斯网络
- 主文章:贝叶斯网络
贝叶斯网络,或称信任网络或者有向无环图形模型是通过有向无环图(DAG)表示一组随机变量及其条件独立性的概率图形模型。例如,贝叶斯网络可以表示疾病和症状之间的概率关系。给定症状,网络可以用来计算各种疾病出现的概率。有效的算法可以进行推理和学习。
强化学习
- 主文章:强化学习
强化学习是指一个智能体(agent)应该如何在环境中采取行动,从而最大限度地获得长期报酬的概念。强化学习算法试图找到一种策略,将世界状态映射到智能体在这些状态中应该采取的行动。强化学习不同于监督学习问题,因为不会提供正确的输入/输出对,也没有明确地修正次优行为。
表示学习
- 主文章:表示学习
一些学习算法,大多是无监督学习算法,旨在发现更好的输入的训练数据的表示。经典的例子包括主成分分析和聚类分析。表示学习算法通常试图在输入中保留信息,并将其转换成有用的方式,通常是在执行分类或预测之前的预处理步骤,允许重构来自未知数据生成分布的输入,而不一定对不太可能服从该分布的结构可靠。
流形学习算法尝试处理被学习的数据表示是低维的情况。稀疏编码算法尝试处理被学习的数据表示是稀疏(有多个零)的情况。多线性子空间学习算法的目的是直接从多维数据的张量表示中学习低维表示,而不将它们重构成(高维)向量[22]。深度学习算法能发现数据表示的多个层次,或者由低级特征定义(或生成)的更高、更抽象的特征层次。有人认为,智能机器是一种学习表示法的机器,它能找出那些解释观测数据的潜在变异因素[23]。
相似性与度量学习
- 主文章:相似性学习
在这个问题中,学习机器给出了一对被认为相似的对象和一对不太相似的对象。然后,它需要学习一个相似函数(或距离度量函数),该函数可以预测新对象是否相似。该算法有时用于推荐系统。
稀疏字典学习
- 主文章:稀疏字典学习
该方法将数据表示为基函数的线性组合,并假定系数是稀疏的。设x是d维数据,D是d乘n矩阵,其中D的每一列代表一个基函数,r是用D表示x的系数。数学上,稀疏字典学习意味着求解 是稀疏的。一般说来,假设n大于d,以便稀疏表示。
学习字典和稀疏表示是强NP难解的,也很难近似求解[24] 。稀疏字典学习的一种流行的启发式方法是K-SVD。
稀疏字典学习已经在几种环境中得到了应用。在分类中,问题是确定以前看不见的数据属于哪些类。假设已经为每个类构建了一个字典。然后,将一个新的数据与类相关联,使得它被相应的字典最优表示。稀疏字典学习也被应用于图像去噪。关键的思想是一个干净的图像补丁可以用图像字典来稀疏地表示,但是噪声却不能[25]。
遗传算法
- 主文章:遗传算法
遗传算法(GeneticAlgorithm,GA)是一种模拟自然选择过程的搜索启发式算法,它利用变异和重组等方法生成新的基因型,以期为给定问题找到好的解决方案。在机器学习中,遗传算法在20世纪80年代和90年代得到了一些应用 [26][27]。 相反,机器学习技术被用来改进遗传算法和进化算法的性能 [28]。
基于规则的机器学习
基于规则的机器学习是任何机器学习方法的通用术语,它通过识别、学习或演化“规则”来存储、操作或应用知识。基于规则的机器学习者的定义特征是识别和使用一组关系规则,这些规则共同表示系统获取的知识。这与其他机器学习者不同,这些机器学习者通常会识别出一个可以普遍应用于任何实例的奇异模型,以便进行预测[29] 。基于规则的机器学习方法包括学习分类器系统、关联规则学习和人工免疫系统。
学习分类器
- 主文章:学习分类器系统
学习分类器系统(LCS)是一组基于规则的机器学习算法,它将发现组件(通常是遗传算法)与学习组件(执行有监督学习、强化学习或无监督学习)结合起来。他们试图找出一套与情境相关的规则,这些规则以一种分段的方式,集体存储和应用知识,以便进行预测[30]。