机器学习

机器学习(ML)是人工智能领域,其使用统计技术使计算机系统能够从数据“学习”(例如,逐步提高特定任务的性能)而无需明确编程。

机器学习这个名字是由Arthur Samuel于1959年创造的。 机器学习探索了可以从数据中学习和预测数据的算法的研究和构建 – 这种算法通过从样本输入构建模型,通过数据驱动的预测或决策来克服严格的静态程序指令。 机器学习被用于一系列计算任务中,其中设计和编程具有良好性能的显式算法是困难的或不可行的; 示例应用程序包括电子邮件过滤,网络入侵者检测和计算机视觉。

机器学习与计算统计密切相关(并且经常重叠),计算统计还侧重于通过使用计算机进行预测。 它与数学优化有很强的联系,可以为现场提供方法,理论和应用领域。 机器学习有时与数据挖掘相混淆,后者子领域更侧重于探索性数据分析,被称为无监督学习。

在数据分析领域,机器学习是一种用于设计复杂模型和算法的方法,可用于预测; 在商业用途中,这被称为预测分析。 这些分析模型使研究人员,数据科学家,工程师和分析师能够“通过从历史关系和数据趋势中学习”来“产生可靠,可重复的决策和结果”,并发现“隐藏的见解”。

概观
Tom M. Mitchell在机器学习领域提供了一个被广泛引用的,更正式的算法定义:“据说计算机程序可以从经验E中学习某些任务T和性能测量P,如果它在任务中的表现在T中,以P为衡量标准,随着经验E而提高。“ 机器学习所涉及的任务的定义提供了基本的操作定义,而不是在认知术语中定义该领域。这是艾伦图灵在他的论文“计算机器和情报”中提出的建议,其中的问题是“机器可以思考吗?” 被问题“机器可以做我们(作为思考实体)可以做什么?”的问题所取代。 在图灵的提议中,思考机器可能拥有的各种特征以及构建一个特征的各种含义都暴露出来。

机器学习任务

机器学习任务通常分为几大类:

监督学习:计算机提供示例输入及其所需的输出,由“教师”给出,目标是学习将输入映射到输出的一般规则。 作为特殊情况,输入信号只能部分可用,或仅限于特殊反馈。
半监督学习:计算机仅给出不完整的训练信号:训练集中缺少一些(通常很多)目标输出。
主动学习:计算机只能获取有限实例的训练标签(基于预算),还必须优化其对象选择以获取标签。当以交互方式使用时,可以将这些呈现给用户以进行标记。
无监督学习:没有给学习算法赋予标签,只能在其输入中找到结构。 无监督学习本身可以成为一个目标(发现数据中的隐藏模式)或达到目的的手段(特征学习)。
强化学习:数据(以奖励和惩罚的形式)仅作为对动态环境中程序动作的反馈,例如驾驶车辆或与对手玩游戏。

机器学习应用
当考虑机器学习系统的期望输出时,出现机器学习任务的另一种分类:
在分类中,输入被分为两个或更多个类,并且学习者必须生成一个模型,该模型将看不见的输入分配给这些类的一个或多个(多标签分类)。 这通常以受监督的方式解决。 垃圾邮件过滤是一种分类示例,其中输入是电子邮件(或其他)邮件,类别是“垃圾邮件”和“非垃圾邮件”。
在回归中,也是一个监督问题,输出是连续的而不是离散的。
在聚类中,一组输入将被分组。 与分类不同,这些组事先是未知的,因此通常是无人监督的任务。
密度估计在某些空间中找到输入的分布。
降维通过将输入映射到较低维空间来简化输入。 主题建模是一个相关问题,其中给予程序一个人类语言文档列表,并负责找出哪些文档涵盖类似主题。

在其他类别的机器学习问题中,学习学习基于以前的经验学习其自身的归纳偏差。 为机器人学习制定的发展性学习,通过自主的自我探索和与人类教师的社会互动以及主动学习,成熟,运动等指导机制,产生自己的学习情境序列(也称为课程),以累积性地获取新技能的曲目。协同作用和模仿。

历史和与其他领域的关系
亚瑟·塞缪尔是计算机游戏和人工智能领域的美国先驱,他在1959年在IBM工作时创造了“机器学习”一词。 作为一项科学努力,机器学习源于对人工智能的追求。 在人工智能作为学科的早期阶段,一些研究人员对机器从数据中学习感兴趣。 他们试图用各种符号方法以及当时被称为“神经网络”的方法来解决问题。 这些主要是感知器和其他模型,后来被发现是广义线性统计模型的重建。 还采用了概率推理,特别是在自动医学诊断中。

然而,越来越强调逻辑的,基于知识的方法导致AI和机器学习之间的裂痕。 概率系统受到数据采集和表示的理论和实际问题的困扰。 到1980年,专家系统已经成为人工智能的主导,统计数据已经失宠。在AI中继续进行符号/基于知识的学习,导致归纳逻辑编程,但现在更多的统计学研究领域在模式识别和信息检索的AI领域之外。 人工智能和计算机科学几乎同时抛弃了神经网络研究。 这条线也在AI / CS领域之外继续,作为“连接主义”,来自其他学科的研究人员,包括Hopfield,Rumelhart和Hinton。 他们的主要成功发生在20世纪80年代中期,后来又重新传播了反向传播。

机器学习作为一个独立的领域重组,在20世纪90年代开始蓬勃发展。 该领域将目标从实现人工智能转变为解决实际可解决的问题。 它将焦点从它从AI继承的象征性方法转移到了从统计学和概率论中借鉴的方法和模型。 它还受益于数字化信息的日益普及以及通过互联网分发信息的能力。

机器学习和数据挖掘通常采用相同的方法并且显着重叠,但是机器学习侧重于预测,基于从训练数据中学习的已知属性,数据挖掘侧重于发现(先前)数据中的未知属性(这是数据库中知识发现的分析步骤。 数据挖掘使用了许多机器学习方法,但目标不同; 另一方面,机器学习也采用数据挖掘方法作为“无监督学习”或作为预处理步骤来提高学习者的准确性。 这两个研究团体(通常有单独的会议和单独的期刊,ECML PKDD是一个主要的例外)之间的大部分混淆来自他们使用的基本假设:在机器学习中,性能通常根据能力来评估再现已知知识,而在知识发现和数据挖掘(KDD)中,关键任务是发现以前未知的知识。 根据已知知识进行评估,未知信息(无监督)方法将很容易被其他监督方法表现,而在典型的KDD任务中,由于训练数据不可用,无法使用监督方法。

机器学习也与优化密切相关:许多学习问题被公式化为训练集的一些损失函数的最小化。 损失函数表示正在训练的模型的预测与实际问题实例之间的差异(例如,在分类中,人们想要为实例分配标签,并且训练模型以正确地预测一组的预先指定的标签。例子)。 这两个领域之间的差异源于概括的目标:虽然优化算法可以最小化训练集的损失,但机器学习关注的是最小化看不见的样本的损失。

与统计的关系
机器学习和统计是密切相关的领域。 迈克尔·乔丹认为,机器学习的思想,从方法论原则到理论工具,在统计学方面都有很长的历史。 他还建议将数据科学这个术语称为占位符,称之为整体领域。

Leo Breiman区分了两种统计建模范例:数据模型和算法模型,其中“算法模型”或多或少意味着机器学习算法,如随机森林。

一些统计学家采用了机器学习的方法,导致他们称之为统计学习的综合领域。

理论
学习者的核心目标是从其经验中概括出来。 在此上下文中的概括是学习机器在经历学习数据集之后在新的,看不见的示例/任务上准确执行的能力。 训练样例来自一些通常未知的概率分布(被认为代表出现的空间),并且学习者必须建立关于该空间的一般模型,使其能够在新的情况下产生足够准确的预测。

机器学习算法及其性能的计算分析是理论计算机科学的一个分支,称为计算学习理论。 由于训练集是有限的,未来是不确定的,因此学习理论通常不能保证算法的性能。 相反,性能的概率界限非常普遍。 偏差方差分解是量化泛化误差的一种方法。

为了在泛化的背景下获得最佳性能,假设的复杂性应该与数据底层函数的复杂性相匹配。 如果假设不如函数复杂,那么模型就不适合数据。 如果响应时模型的复杂性增加,则训练误差减小。 但如果假设过于复杂,那么模型就会过度拟合,而且泛化会更加糟糕。

除了性能界限,计算学习理论家还研究了学习的时间复杂性和可行性。 在计算学习理论中,如果计算可以在多项式时间内完成,则认为计算是可行的。 有两种时间复杂度结果。 正结果表明,在多项式时间内可以学习某类函数。 负面结果表明某些类不能在多项式时间内学习。

途径

决策树学习
决策树学习使用决策树作为预测模型,其将关于项目的观察结果映射到关于项目的目标值的结论。

关联规则学习
关联规则学习是一种发现大型数据库中变量之间有趣关系的方法。

人工神经网络
人工神经网络(ANN)学习算法,通常称为“神经网络”(NN),是一种学习算法,其模糊地受到生物神经网络的启发。 计算是根据一组相互连接的人工神经元构建的,使用连接方法计算处理信息。 现代神经网络是非线性统计数据建模工具。 它们通常用于模拟输入和输出之间的复杂关系,查找数据中的模式,或捕获观察变量之间未知联合概率分布中的统计结构。

深度学习
在过去几年中,硬件价格的下降和个人使用的GPU的发展促进了深度学习概念的发展,该概念由人工神经网络中的多个隐藏层组成。 这种方法试图模拟人类大脑处理光和声进入视觉和听觉的方式。 深度学习的一些成功应用是计算机视觉和语音识别。

归纳逻辑编程
归纳逻辑编程(ILP)是一种规则学习方法,使用逻辑编程作为输入示例,背景知识和假设的统一表示。 给定已知背景知识的编码和表示为事实的逻辑数据库的一组示例,ILP系统将得出假设的逻辑程序,其包含所有正面和非负面示例。 归纳编程是一个相关领域,它考虑任何类型的编程语言来表示假设(而不仅仅是逻辑编程),例如功能程序。

支持向量机
支持向量机(SVM)是一组用于分类和回归的相关监督学习方法。 给定一组训练示例,每个示例标记为属于两个类别之一,SVM训练算法构建模型,该模型预测新示例是否属于一个类别或另一个类别。

聚类
聚类分析是将一组观测值分配到子集(称为聚类)中,以便根据一些预先指定的标准或标准,同一聚类内的观测值相似,而从不同聚类中提取的观测值则不同。 不同的聚类技术对数据的结构做出不同的假设,通常由一些相似性度量定义并且例如通过内部紧凑性(相同聚类的成员之间的相似性)和不同聚类之间的分离来评估。 其他方法基于估计的密度和图形连通性。 聚类是一种无监督学习的方法,也是统计数据分析的常用技术。

贝叶斯网络
贝叶斯网络,置信网络或有向无环图形模型是概率图形模型,其通过有向无环图(DAG)表示一组随机变量及其条件独立性。 例如,贝叶斯网络可以代表疾病和症状之间的概率关系。 鉴于症状,网络可用于计算各种疾病存在的概率。 存在执行推理和学习的有效算法。

代表性学习
几种学习算法,主要是无监督学习算法,旨在发现训练期间提供的输入的更好表示。 经典的例子包括主成分分析和聚类分析。 表示学习算法通常尝试在其输入中保留信息,但是以使其有用的方式对其进行变换,通常作为执行分类或预测之前的预处理步骤,允许重建来自未知数据生成分布的输入,同时不一定忠实于那种在该分布下难以置信的配置。

流形学习算法试图在学习表示是低维的约束下这样做。 稀疏编码算法试图在学习的表示稀疏(具有许多零)的约束下这样做。 多线性子空间学习算法旨在直接从多维数据的张量表示中学习低维表示,而不将它们重塑为(高维)向量。 深度学习算法发现多级表示或特征层次结构,具有根据(或生成)较低级别特征定义的更高级别,更抽象的特征。 有人认为,智能机器是一种学习表示的机器,可以解开解释观测数据的变异的潜在因素。

相似性和度量学习
在这个问题中,学习机被给予被认为是相似的成对的对和成对的不太相似的对象。 然后,它需要学习可以预测新对象是否相似的相似性函数(或距离度量函数)。 它有时用于推荐系统。

稀疏字典学习
在该方法中,数据被表示为基函数的线性组合,并且假设系数是稀疏的。 令x为d维数据,D为ad×n矩阵,其中D的每列代表基函数。 r是用D表示x的系数。数学上,稀疏字典学习意味着求解 其中r很稀疏。 一般而言,假设n大于d以允许稀疏表示的自由度。

学习字典以及稀疏表示是非常难以解决的,并且难以解决。 稀疏字典学习的流行启发式方法是K-SVD。

稀疏字典学习已经在几种情况下应用。 在分类中,问题是确定先前未见过的数据属于哪些类。 假设已经构建了每个类的字典。 然后,新的数据与该类相关联,使得它最好由相应的字典稀疏地表示。 稀疏字典学习也已应用于图像去噪。 关键的想法是一个干净的图像补丁可以用图像字典稀疏地表示,但噪声不能。

遗传算法
遗传算法(GA)是一种模仿自然选择过程的搜索启发式算法,并使用诸如变异和交叉等方法来生成新的基因型,以期找到针对特定问题的良好解决方案。 在机器学习中,遗传算法在20世纪80年代和90年代发现了一些用途。 相反,机器学习技术已被用于改进遗传和进化算法的性能。

基于规则的机器学习
基于规则的机器学习是用于识别,学习或发展“规则”以存储,操纵或应用知识的任何机器学习方法的通用术语。 基于规则的机器学习器的定义特征是识别和利用一组关系规则,这些关系规则共同表示系统捕获的知识。 这与通常识别可以普遍应用于任何实例以进行预测的单一模型的其他机器学习者形成对比。 基于规则的机器学习方法包括学习分类器系统,关联规则学习和人工免疫系统。

学习分类器系统
学习分类器系统(LCS)是一系列基于规则的机器学习算法,其将发现组件(例如,通常是遗传算法)与学习组件(执行监督学习,强化学习或无监督学习)组合。 他们寻求识别一组依赖于上下文的规则,这些规则以分段方式集中存储和应用知识以进行预测。

应用
机器学习的应用包括:

农业
自动定理证明
适应性网站
情感计算
生物信息学
脑机接口
化学信息学
分类DNA序列
计算解剖学
计算机网络
电信
计算机视觉,包括物体识别
检测信用卡欺诈
一般游戏
信息检索
网络欺诈检测
计算语言学
营销
机器学习控制
机器感知
自动医疗诊断
计算经济学
保险
自然语言处理
自然语言理解
优化和元启发式
在线广告
推荐系统
机器人运动
搜索引擎
情绪分析(或意见挖掘)
序列挖掘
软件工程
语音和手写识别
金融市场分析
结构健康监测
句法模式识别
时间序列预测
用户行为分析
机器翻译

2006年,在线电影公司Netflix举办了第一场“Netflix奖”竞赛,旨在找到一个能够更好地预测用户偏好的程序,并将其现有Cinematch电影推荐算法的准确度提高至少10%。 由AT& T Labs-Research的研究人员组成的联合团队与Big Chaos和Pragmatic Theory团队合作,建立了一个合奏模型,以100万美元赢得2009年的大奖。 奖项颁发后不久,Netflix意识到观众的评分并不是他们观看模式的最佳指标(“一切都是推荐”),他们相应地改变了他们的推荐引擎。

2010年,华尔街日报撰写了关于反叛研究公司及其使用机器学习来预测金融危机的文章。

2012年,Sun Microsystems的联合创始人Vinod Khosla预测,在未来20年内,80%的医生工作将丢失到自动化机器学习医疗诊断软件中。

2014年,据报道,机器学习算法已被应用于艺术史中以研究美术绘画,并且它可能揭示了艺术家之间以前未被认识的影响。

限制
虽然机器学习在某些领域具有变革性,但有效的机器学习很困难,因为找到模式很难,而且通常没有足够的训练数据; 因此,许多机器学习计划往往无法提供预期的价值。 造成这种情况的原因很多:缺乏(合适的)数据,缺乏对数据的访问,数据偏差,隐私问题,错误选择的任务和算法,错误的工具和人员,缺乏资源以及评估问题。

2018年,优步的一辆自动驾驶汽车未能发现一名在事故中丧生的行人。 使用IBM Watson系统在医疗保健中使用机器学习的尝试即使经过多年的时间和数十亿的投资也未能实现。

偏压
特别是机器学习方法可能遭受不同的数据偏差。 仅对您当前客户进行培训的机器学习系统可能无法预测未在培训数据中表示的新客户组的需求。 在接受人造数据培训后,机器学习很可能会发现社会中已存在的相同的宪法和无意识的偏见。 从数据中学习的语言模型已被证明包含类似人类的偏见。 已经发现用于犯罪风险评估的机器学习系统对黑人有偏见。 在2015年,Google照片通常会将黑人标记为大猩猩,并且在2018年仍然没有得到很好的解决,但据报道谷歌仍然使用解决方法从训练数据中删除所有大猩猩,因此无法识别真正的大猩猩所有。 在许多其他系统中也发现了识别非白种人的类似问题。2016年,微软测试了一个从Twitter上学习的聊天机器人,并迅速采用了种族主义和性别歧视语言。 由于存在这些挑战,机器学习的有效使用可能需要更长时间才能在其他领域中采用。

模型评估
分类机器学习模型可以通过精确度估计技术进行验证,例如Holdout方法,它将数据分成训练和测试集(通常为2/3训练集和1/3测试集指定),并评估训练模型的性能。测试集。 相比之下,N倍交叉验证方法随机分割k个子集中的数据,其中数据的k-1个实例用于训练模型,而第k个实例用于测试训练模型的预测能力。 除了保持和交叉验证方法之外,bootstrap可以用来评估模型的准确性,后者可以从数据集中替换n个实例。

除总体准确性外,研究人员还经常报告敏感性和特异性,分别表示真阳性率(TPR)和真阴性率(TNR)。 同样,研究者有时会报告假阳性率(FPR)和假阴性率(FNR)。 然而,这些比率是未能揭示其分子和分母的比率。 总操作特征(TOC)是表达模型诊断能力的有效方法。 TOC显示前面提到的速率的分子和分母,因此TOC提供的信息比常用的接收器工作特性(ROC)和ROC相关的曲线下面积(AUC)更多。

伦理
机器学习提出了许多道德问题。 对使用偏差收集的数据集进行训练的系统可能会在使用时出现这些偏差(算法偏差),从而将文化偏见数字化。 例如,使用来自具有种族主义招聘政策的公司的工作招聘数据可能会导致机器学习系统通过对求职者的评分与先前成功的申请人的相似性来重复偏见。 因此,负责任地收集系统使用的算法规则的数据和文档是机器学习的关键部分。

因为语言包含偏见,所以在语言语料库上训练的机器也必然会学习偏见。

其他形式的道德挑战,与个人偏见无关,更多见于医疗保健。 医疗保健专业人员担心这些系统可能不是为了公众的利益而设计的,而是作为创收机器。 在美国,尤其如此,那里存在着改善医疗保健的永久道德困境,同时也增加了利润。 例如,算法可以被设计为向患者提供不必要的测试或药物,其中算法的所有者拥有赌注。医疗机器学习的巨大潜力为专业人员提供诊断,治疗甚至计划的好工具。患者的康复途径,但这不会发生,直到前面提到的个人偏见,并解决了这些“贪婪”的偏见。

软件
包含各种机器学习算法的软件套件包括以下内容:

免费和开源软件
CNTK
Deeplearning4j
ELKI
H2O
亨利马乌

mlpack
MXNet
OpenNN
橙子
scikit学习
将军
Spark MLlib
TensorFlow
火炬/ PyTorch
Weka / MOA
Yooreeka

具有免费和开源版本的专有软件
KNIME
RapidMiner

专有软件
亚马逊机器学习
Angoss KnowledgeSTUDIO
Ayasdi
IBM数据科学经验
Google Prediction API
IBM SPSS Modeler
KXEN Modeler
LIONsolver
数学
MATLAB
蟒蛇
Microsoft Azure机器学习
神经设计师
NeuroSolutions
Oracle数据挖掘
Oracle AI平台云服务
RCASE
SAS Enterprise Miner
序列1
Splunk的
STATISTICA Data Miner