什么是机器学习?

时间:2010-04-12 06:55:28

标签: machine-learning definition

  • 什么是机器学习
  • 机器学习代码做什么?
  • 当我们说机器学习时,是修改本身的代码还是修改历史(数据库),它将包含给定输入集的代码体验?

9 个答案:

答案 0 :(得分:135)

  

什么是机器学习?

基本上,它是一种教授计算机基于某些数据制作和改进预测或行为的方法。这个“数据”是什么?嗯,这完全取决于问题。它可以是机器人传感器在学会走路时的读数,也可以是某个输入的正确输出程序。

考虑机器学习的另一种方式是“模式识别” - 教授程序对模式作出反应或识别模式的行为。

  

机器学习代码有什么作用?

取决于您正在谈论的机器学习的类型。机器学习是一个巨大的字段,有数百种不同的算法可以解决各种不同的问题 - 有关更多信息,请参阅Wikipedia;具体来说,请查看Algorithm Types

  

当我们说机器学习时,它是修改自身的代码还是修改历史(数据库),它将包含给定输入集的代码体验?

再一次,取决于

实际修改的代码的一个例子是Genetic Programming,你实际上是在进化程序以完成一项任务(当然,程序不会自行修改 - 但它会修改另一个计算机程序)。

另一方面,

Neural networks会自动修改其参数以响应准备好的刺激和预期的反应。这允许它们产生许多行为(理论上,它们可以产生任何行为,因为它们可以将任何函数逼近任意精度,给定足够的时间)。


我应该注意到,使用术语“数据库”意味着机器学习算法通过“记住”信息,事件或经验来工作。这不一定(甚至经常!)情况。

我已经提到的神经网络只保留近似的当前“状态”,随着学习的发生而更新。神经网络不是记住发生的事情以及如何对其做出反应,而是建立了一种“世界”的“模型”。该模型告诉他们如何对某些输入作出反应,即使这些输入是以前从未见过的。

这最后一项能力 - 对以前从未见过的输入作出反应的能力 - 是许多机器学习算法的核心原则之一。想象一下,试图教一个计算机驱动程序在高速公路上进行交通。使用您的“数据库”比喻,您必须教会计算机准确地在百万的可能情况下做什么。一个有效的机器学习算法(希望!)能够学习不同状态之间的相似性并对它们作出类似的反应。

国家之间的相似之处可以是任何东西 - 即使是我们可能认为“平凡”的东西也可以真正绊倒电脑!例如,假设计算机驱动程序了解到,当它前面的汽车减速时,它必须放慢速度。对于人来说,用摩托车取代汽车并没有改变任何东西 - 我们认识到摩托车也是一种车辆。对于机器学习算法,这实际上可能非常困难!数据库必须分别存储关于汽车在前方和摩托车在前方的情况的信息。另一方面,机器学习算法将从汽车示例“学习”并能够自动推广到摩托车示例。

答案 1 :(得分:21)

机器学习是计算机科学,概率论和优化理论的一个领域,它允许解决复杂的任务,逻辑/程序方法是不可能或不可行的。

有几种不同类型的机器学习,包括(但不限于):

       
  • 监督学习
  •    
  • 强化学习

监督学习
在有监督的学习中,你有一些从输入到输出的非常复杂的功能(映射),你有很多输入/输出对的例子,但是你不知道那复杂的功能是什么。在给定输入/输出对的大数据集的情况下,监督学习算法可以预测您之前可能没有看到的某些新输入值的输出值。基本方法是将数据集分解为训练集和测试集。您有一些具有相关错误功能的模型,您尝试将其最小化到训练集上,然后确保您的解决方案适用于测试集。一旦您使用不同的机器学习算法和/或参数重复此操作,直到模型在测试集上执行得相当好,那么您可以尝试在新输入上使用结果。请注意,在这种情况下,程序不会更改,只会更改模型(数据)。虽然理论上可以输出一个不同的程序,但据我所知,这在实践中并没有完成。监督学习的一个例子是邮局使用的数字识别系统,它使用手工标记为0的大量数字图像将像素映射到集合0 ... 9中的标签。 ... 9。

强化学习
在强化学习中,该计划负责制定决策,并定期为其行动获得某种奖励/效用。然而,与监督学习案例不同,结果不是立即的;该算法可以规定大量的动作,并且只在最后接收反馈。在强化学习中,目标是建立一个良好的模型,使算法产生一系列决策,从而产生最高的长期效用/奖励。强化学习的一个很好的例子是教导机器人如何在其碰撞传感器检测到碰撞到物体时给予负面惩罚。如果编码正确,机器人最终可能会将其测距仪传感器数据与其保险杠传感器数据和发送到车轮的方向相关联,并最终选择一种导航方式,使其不会碰到物体。

更多信息
如果您有兴趣了解更多信息,我强烈建议您阅读Pattern Recognition and Machine Learning by Christopher M. Bishop或参加机器学习课程。您可能还有兴趣免费阅读lecture notes from CIS 520: Machine Learning at Penn

答案 2 :(得分:11)

  • 机器学习是一门科学学科,它关注算法的设计和开发,允许计算机根据经验数据(例如传感器数据或数据库)发展行为。详情阅读Wikipedia

  • 机器学习代码在某种存储中记录“事实”或近似值,并使用算法计算不同的概率。

  • 当机器学习时,代码本身不会被修改,只有“它知道”的数据库才会被修改。

答案 3 :(得分:10)

机器学习是一种基于样本数据创建模型并使用模型进行预测或策略的方法。它属于人工智能。

答案 4 :(得分:10)

机器学习只是一个通用术语,用于定义各种学习算法,这些算法通过实例(未标记/标记)产生准学习。实际的准确度/误差完全取决于您为学习算法提供的培训/测试数据的质量。这可以使用收敛率来测量。您提供示例的原因是因为您希望您选择的学习算法能够通过指导进行信息化推广。算法可以分为两个主要区域监督学习(分类)和无监督学习(聚类)技术。您应该如何决定如何分离训练和测试数据以及为学习算法提供的质量,这一点非常重要。当您提供数据集时,您还希望了解诸如过度拟合和保持您的示例中的健康偏见感。然后该算法基本上学习写作是基于泛化而写的,它是从你提供的数据中获得的,用于训练,然后在测试过程中,你试图让你的学习算法根据你的目标训练产生新的例子。在聚类中,该算法基本上试图通过数据之间的模式测量来产生非常少的信息指导,以构建相关的聚类集合,例如kmeans / knearest neighbor。

一些好书: ML简介(尼尔森/斯坦福), ML的高斯过程, ML(Alpaydin)简介, 信息理论推理和学习算法(非常有用的书), 机器学习(米切尔), 模式识别和机器学习(爱丁堡的标准ML课程书和各种Unis,但数学相对较重), 使用Weka进行数据挖掘和实用机器学习(使用weka理论并使用Java实践)

强化学习网上有一本免费的书,你可以阅读: http://www.cs.ualberta.ca/~sutton/book/ebook/the-book.html

IR,IE,推荐者和文本/数据/ Web挖掘通常使用很多机器学习原理。您甚至可以在此处应用元启发式/全局优化技术来进一步自动化您的学习过程。例如,应用像GA(遗传算法)这样的进化技术来优化基于神经网络的方法(可能使用一些学习算法)。您可以纯粹以可能性机器学习方法的形式进行处理,例如贝叶斯学习。这些算法中的大多数都使用了大量的统计数据。收敛和泛化的概念对许多这些学习算法都很重要。

答案 5 :(得分:8)

机器学习是计算科学的研究,通过学习类似信息培训的模式,制作能够对以前从未见过的信息进行分类的算法。在这个意义上,有各种各样的“学习者”。神经网络,贝叶斯网络,决策树,k-聚类算法,隐马尔可夫模型和支持向量机就是一个例子。

基于学习者,他们每个人都以不同的方式学习。一些学习者产生人类可理解的框架(例如决策树),有些通常是不可理解的(例如神经网络)。

学习者本质上都是数据驱动的,这意味着他们将状态保存为以后重用的数据。它们本身并不是自我修改的,至少在一般情况下如此。

答案 6 :(得分:8)

我认为我读过的最酷的机器学习定义之一来自Tom Mitchell的这本书。易于记忆和直观。

  

据说,计算机程序可以从经验E中学习某些任务T和绩效指标P,如果它在T中的任务中的表现(由P测量)随经验E而改善

答案 7 :(得分:7)

  • 从维基百科无耻地撕掉:机器学习是一门科学学科,它关注算法的设计和开发,允许计算机根据经验数据(如传感器数据或数据库)发展行为。

  • 很简单,机器学习代码完成了机器学习任务。从解释传感器数据到遗传算法,这可能是很多事情。

  • 我想说这取决于。不,修改代码不正常,但不在可能范围之外。我也不会说机器学习总是会修改历史。有时我们没有历史可以建立起来。有时我们只是想对环境作出反应,但实际上并没有从过去的经验中学习。

基本上,机器学习是一门非常开放的学科,其中包含许多方法和算法,使得第3个问题无法得到1个答案。

答案 8 :(得分:6)

机器学习是一个从人的现实世界中获取的术语,应用于无法实际学习的东西 - 机器。

要添加其他答案 - 机器学习不会(通常)更改代码,但它可能会根据以前的数据或新收集的数据改变执行路径和决策,从而改变“学习”效果。

有许多方法可以“教”一台机器 - 你可以给算法的许多参数赋予权重,然后让机器在很多情况下解决它,每次你给她一个关于答案的反馈并且机器调整根据机器答案与答案的接近程度或根据您给出答案的分数,或根据某些结果测试算法进行衡量。

这是一种学习方式,还有更多......