什么是机器学习?[关闭]


93
  • 什么是机器学习
  • 机器学习代码有什么作用?
  • 当我们说机器学习时,它是修改自身的代码还是修改历史(数据库),其中将包含给定输入集的代码经验?

Answers:


146

什么是机器学习?

从本质上讲,它是一种教学计算机的方法,它可以基于一些数据进行预测并改进预测或行为。这是什么“数据”?好吧,这完全取决于问题。它可能是机器人学习走路时从其传感器读取的值,或者是某些输入的程序的正确输出。

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

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

取决于您正在谈论的机器学习的类型。机器学习是一个巨大的领域,拥有数百种解决各种不同问题的算法- 有关更多信息,请参见Wikipedia;有关详细信息,请参见Wikipedia。具体来说,请在“ 算法类型”下查看。

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

再次取决于

实际被修改的代码的一个示例是遗传编程,您实质上是在其中开发一个程序来完成一项任务(当然,该程序不会自行修改-但是会修改另一台计算机程序)。

另一方面,神经网络会根据准备的刺激和预期响应自动修改其参数。这使它们可以产生许多行为(理论上,它们可以产生任何行为,因为在给定的时间上,它们可以将任意函数近似于任意精度。


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

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

最后一项功能-对以前从未见过的输入做出反应的能力-是许多机器学习算法的核心原则之一。想象一下,试图教计算机驾驶员在交通中驾驶高速公路。使用“数据库”隐喻,您将必须确切地告诉计算机在数百万种可能情况下的处理方法。一个有效的机器学习算法将(希望!)能够学习不同状态之间的相似性,并对它们做出相似的反应。

状态之间的相似之处可以是任何东西-甚至我们可能认为“平凡”的东西都可以使计算机真正崩溃!例如,假设计算机驾驶员了解到,当前面的汽车减速时,它必须减速。对于人类来说,用摩托车代替汽车不会改变任何东西-我们认识到摩托车也是车辆。对于机器学习算法,这实际上可能非常困难!数据库将必须分别存储有关汽车在前面和摩托车在前面的情况的信息。另一方面,机器学习算法将从汽车示例中“学习”,并能够自动推广到摩托车示例。


3
您的解释确实非常值得和赞赏。您能否详细阐述“计算机”驱动程序的示例(关于您的陈述“不同状态之间的学习相似性”)?
Kushal Waikar

3
很好的例子。感谢您的解释。万分感谢 !
Kushal Waikar

1
为什么“ KNN”或“ K手段”属于机器学习。你能解释一下吗?谢谢
Sunku Vamsi Tharun Kumar

23

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

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

  • 监督学习
  • 强化学习

监督学习
在监督学习中,您有一些非常复杂的功能(从输入到输出的映射),有很多输入/输出对的示例,但您不知道该复杂的功能是什么。在给定大量输入/输出对数据的情况下,有监督的学习算法可以预测一些您之前可能从未见过的新输入值的输出值。基本方法是将数据集分为训练集和测试集。您有一个带有关联误差函数的模型,您试图在训练集上最小化该模型,然后确保解决方案在测试集上起作用。一旦使用不同的机器学习算法和/或参数重复了这一过程,直到模型在测试集上表现良好,然后就可以尝试在新输入中使用结果。请注意,在这种情况下,程序不会更改,仅更改模型(数据)。从理论上讲,虽然可以输出一个不同的程序,但是据我所知,实际上并没有完成。监督学习的一个例子是邮局使用的数字识别系统,在该系统中,将像素映射到集合0 ... 9中的标签,并使用一大堆被手动标记为0的数字图片... 9。

强化学习
在强化学习中,该程序负责制定决策,并且会定期为其操作获得某种奖励/实用性。但是,不同于在监督学习的情况下,结果不是立即产生的。该算法可能会规定一系列较大的动作,并且只能在最后接收反馈。在强化学习中,目标是建立一个好的模型,以便算法将生成导致最高长期效用/奖励的决策序列。强化学习的一个很好的例子是教机器人如何在碰碰传感器检测到碰到物体时给予否定惩罚来进行导航。如果编码正确,则机器人有可能最终将其测距仪传感器数据与其保险杠传感器数据以及发送至车轮的方向相关联,

更多信息
如果您有兴趣学习更多,我强烈建议您阅读Christopher M. Bishop的模式识别和机器学习或参加机器学习课程。您可能也有兴趣免费阅读宾夕法尼亚州CIS 520:机器学习讲义


2
您提到“ ...逻辑/程序方法将不可能或不可行。” 您能举例说明一下吗?谢谢。
LionHeart 2011年

@LionHeart,一个很好的例子是字符识别。您可以尝试编码一种算法,该算法可以识别各种字符的各种曲线,直线和其他特征,但是当归结到它时,这是一项非常困难的任务,并且ML非常简单地解决了这一问题。
Michael Aaron Safyan 2011年

12

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


11
  • 机器学习是一门科学学科,涉及算法的设计和开发,这些算法允许计算机根据经验数据(例如来自传感器数据或数据库的数据)来演化行为。在Wikipedia上阅读更多内容

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

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


机器学习不需要数据库。它也不总是记录“事实”。有些事情是推测。有些东西是近似值。并非机器学习的一切都可以视为事实。
凯文·克雷威尔

2
您仍然将答案限制在特定的机器学习领域。事实或近似值不会始终记录下来。事物可以经历,反应并被遗忘。“存储”不是机器学习的主要内容。可以使用,但不是必需的。
凯文·克雷威尔

4
如果机器学习程序存储了它学习到的数据,那么就没有必要使用该程序了……我们只是查询数据本身。由于数据集可能非常大(几个GB),因此大多数ML程序仅创建数据模型,并且我们希望该程序具有对看不见的数据集的预测能力。ML程序几乎没有理由存储数据。
基里尔

11

机器学习只是一个通用术语,用于定义各种学习算法,这些算法可根据示例(未标记/已标记)产生准学习。实际的准确性/错误完全取决于您提供给学习算法的训练/测试数据的质量。这可以使用收敛速率来测量。提供示例的原因是因为您希望自己选择的学习算法能够通过指导性概括来提供有益的信息。该算法可分为监督学习(分类)和非监督学习(聚类)技术两个主要领域。在决定如何分离训练和测试数据集以及为学习算法提供的质量方面做出明智的决定非常重要。在提供数据集时,您还希望注意示例中的过度拟合和保持健康的偏见。然后,该算法基本上会根据您从提供给它的数据(用于训练和过程测试)所获得的概括性来学习写写,然后尝试在目标训练的基础上使学习算法生成新示例。在聚类中,很少有指导性信息,该算法基本上试图通过测量数据之间的模式来产生数据,以建立相关的聚类集,例如kmeans / knearest邻居。然后,该算法基本上会根据您从提供给它的数据(用于训练和过程测试)所获得的概括性来学习写写,然后尝试在目标训练的基础上使学习算法生成新示例。在聚类中,很少有指导性信息,该算法基本上试图通过测量数据之间的模式来产生数据,以建立相关的聚类集,例如kmeans / knearest邻居。然后,该算法基本上会根据您从提供给它的数据(用于训练和过程测试)所获得的概括性来学习写写,然后尝试在目标训练的基础上使学习算法生成新示例。在聚类中,很少有指导性信息,该算法基本上试图通过测量数据之间的模式来产生数据,以建立相关的聚类集,例如kmeans / knearest邻居。

一些好书:机器学习入门(Nilsson / Stanford),机器学习的高斯过程,机器学习入门(Alpaydin),信息论推理和学习算法(非常有用的书),机器学习(Mitchell),模式识别和机器学习(标准)爱丁堡和各个大学的ML课程书,但对数学的阅读比较繁重;使用Weka进行数据挖掘和实用机器学习(使用weka进行理论研究并在Java中进行实践)

强化学习在线有免费书籍,您可以阅读:http : //www.cs.ualberta.ca/~sutton/book/ebook/the-book.html

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


8

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

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

学习者基本上都是数据驱动的,这意味着他们将状态另存为数据,以备日后重用。至少在一般情况下,它们不是这样进行自我修改的。


8

我认为我读过的最酷的机器学习定义之一就是汤姆·米切尔(Tom Mitchell)的这本书。易于记忆和直观。

如果说计算机程序可以从经验E中学习有关某类任务T和绩效指标P的信息,则计算机程序在P中对任务T的绩效(由P衡量)会随着经验E的提高而提高


21
尽管它不必要地使用了符号,但我一直讨厌如何重复定义甚至不去定义。更简单,更好:如果某个计算机程序在这些任务中的性能(相对于某些性能指标)随着经验的提高而提高,则可以说是从某类任务的经验中学习。现在让我们简化一些。 A computer program is said to learn in the context of performing a task if its performance with respect to some measure improves with experience.
Ninjakannon 2013年

1
我从事机器学习已有大约一年的时间,即使今天,我也必须阅读几次以了解其确切含义。我想知道我是不好还是定义。
Maxim Dsouza

7
  • 从Wikipedia中毫不客气地窃取内容:机器学习是一门科学学科,致力于算法的设计和开发,这些算法允许计算机根据经验数据(例如,传感器数据或数据库)来演化行为。

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

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

基本上,机器学习是一门非常开放的学科,其中包含许多方法和算法,这些问题使第三个问题不可能有一个答案。


6

机器学习是一个取自一个人的真实世界的术语,并应用于无法真正学习的东西-机器。

为了增加其他答案-机器学习通常不会更改代码,但是它可能会更改它的执行路径和基于先前数据或新收集的数据的决策,从而改变“学习”效果。

有很多方法可以“教”机器,您可以为算法的多个参数赋予权重,然后在很多情况下让机器解决它,每次您给她有关答案的反馈,然后机器就会根据机器答案与您答案的接近程度或根据您给出答案的分数,或根据某些结果测试算法。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.