什么是机器学习?

  • 什么是机器学习
  • 机器学习代码是做什么的?
  • 当我们说机器学习时,它是修改自己的代码还是修改历史(数据库),这将包含给定的input集的代码的经验?

什么是机器学习?

从本质上讲,它是一种教授计算机的方法,可以根据一些数据来制定和改进预测或行为。 这个“数据”是什么? 那么这完全取决于这个问题。 它可以读取机器人传感器读取的数据,或者input某个程序的正确输出。

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

机器学习代码是做什么的?

取决于你正在谈论的机器学习的types 。 机器学习是一个巨大的领域,有数以百计的不同algorithm来解决无数不同的问题 – 请参阅维基百科获取更多信息; 具体来说,请查看algorithmtypes 。

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

再一次, 这取决于

实际上被修改的代码的一个例子就是遗传编程 ( Genetic Programming) ,在这里你基本上演化了一个程序来完成一个任务(当然,这个程序不会修改自己 – 但是它修改了另一个计算机程序)。

另一方面, neural network根据准备好的刺激和预期的响应自动修改它们的参数。 这允许他们产生许多行为(理论上,他们可以产生任何行为,因为他们可以近似任意函数的任意精度,给予足够的时间)。


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

我已经提到的neural network只保留近似的当前“状态”,随着学习的发生而更新。 neural network不是记住发生了什么事情,而是如何对它做出反应,而是build立起他们“世界”的一种“模型”。 该模型告诉他们如何对某些input做出反应,即使这些input是以前从未见过的。

最后一个能力 – 对以前从未见过的input做出反应的能力是许多机器学习algorithm的核心原则之一。 想象一下,试图教导计算机驾驶员在高速公路上行驶。 使用你的“数据库”比喻,你将不得不在数百万种可能的情况下教导计算机究竟该做些什么。 一个有效的机器学习algorithm会(希望!)能够学习不同状态之间的相似性并对它们作出类似的反应。

国家之间的相似之处可以是任何事情 – 甚至我们可以认为是“世俗”的东西真的可以绊倒电脑! 例如,假devise算机驱动程序了解到,当它前面的一辆汽车减速时,它不得不减速到。 对于一个人来说,用摩托车来replace汽车并没有什么改变 – 我们认识到摩托车也是一辆汽车。 对于一个机器学习algorithm,这实际上可能会非常困难! 数据库将不得不单独存储有关前方车辆和前方摩托车的情况的信息。 另一方面,机器学习algorithm将从汽车示例中“学习”并自动推广到摩托车示例。

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

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

  • 监督学习
  • 强化学习

监督学习
在监督式学习中,从input到输出有一些非常复杂的function(映射),你有很多input/输出对的例子,但是你不知道这个复杂的function是什么。 监督式学习algorithm使得在给定大量input/输出对数据集的情况下,可以预测一些以前可能没有见过的新input值的输出值。 基本的方法是将数据分解成一个训练集和一个testing集。 你有一些模型与一个相关的错误函数,你试图在训练集中最小化,然后你确定你的解决scheme在testing集上工作。 一旦你用不同的机器学习algorithm和/或参数重复了这一点,直到模型在testing集合上performance得相当好,那么你可以尝试在新的input上使用结果。 请注意,在这种情况下,程序不会更改,只会更改模型(数据)。 尽pipe理论上可以输出一个不同的程序,但据我所知,这在实践中并不是这样做的。 监督学习的一个例子是邮局使用的数字识别系统,它将像素映射到集合0 … 9中的标签,使用大量被手标记为0的数字图片…… 9。

强化学习
在强化学习中,程序负责做出决定,并且定期地为其行为获得某种奖励/效用。 但是,与监督学习案例不同,其结果不是立竿见影; 该algorithm可以规定一个大的动作序列,并且只在最后收到反馈。 在强化学习中,目标是build立一个好的模型,使得该algorithm将产生导致最高的长期效用/奖励的决策序列。 强化学习的一个很好的例子是教导机器人如何通过给予否定的惩罚,只要其碰撞传感器检测到撞到物体就行。 如果编码正确,机器人有可能最终将其测距传感器数据与其保险杠传感器数据以及发送到车轮的方向相关联,并最终select导致其不会碰撞物体的导航forms。

更多信息
如果您有兴趣了解更多信息,我强烈build议您阅读Christopher M. Bishop的“模式识别和机器学习”或参加机器学习课程。 您可能还有兴趣免费阅读独联体520:Penn机器学习的讲义 。

  • 机器学习是一门科学学科,涉及algorithm的devise和开发,这些algorithm允许计算机根据经验数据(例如传感器数据或数据库)演变行为。 阅读更多的维基百科

  • 机器学习代码在某种存储器中logging“事实”或近似值,并且algorithm计算不同的概率。

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

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

机器学习只是一个通用术语,用来定义各种各样的学习algorithm,这些学习algorithm可以从示例(未标记/标记)中产生准学习。 实际的准确度/误差完全取决于您提供给学习algorithm的训练/testing数据的质量。 这可以使用收敛速度来衡量。 您提供示例的原因是因为您希望您select的学习algorithm能够通过指导进行信息提示进行概括。 algorithm可以分为两个主要领域监督学习(分类)和无监督学习(聚类)技术。 关于如何计划分离培训和testing数据集以及提供给您的学习algorithm的质量,您做出明智的决定是非常重要的。 当你提供数据集的时候,你也想知道在你的例子中过度适应和保持健康的偏见。 该algorithm基本上是学习写在写的基础上的泛化,它从你提供给它的数据,既为训练,然后在testing过程中,你试图让你的学习algorithm产生新的例子,在你的目标培训的基础上。 在聚类中,该algorithm基本上试图通过数据之间的模式测量来生成相关的集合集合,例如kmeans / kneely neighbor,所以很less有信息指导。

一些好书:ML(Nilsson / Stanford)入门,ML高斯过程,ML介绍(Alpaydin),信息理论推理与学习algorithm(非常有用的书),机器学习(Mitchell),模式识别与机器学习在爱丁堡和各种联合国大学的ML课本,但与math相对沉重的阅读),数据挖掘和Weka实践机器学习(通过在Java中使用weka和实践的理论工作)

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

IR,IE,Recommenders和Text / Data / Web Mining通常使用很多机器学习原理。 您甚至可以在这里应用Metaheuristic / Global Optimization Techniques来进一步实现学习过程的自动化。 例如应用像GA(遗传algorithm)这样的进化技术来优化基于neural network的方法(可能使用一些学习algorithm)。 你可以纯粹以一种概率机器学习的方式来进行学习,例如贝叶斯学习。 大多数这些algorithm都有很大的统计使用。 收敛和泛化的概念对许多这些学习algorithm很重要。

机器学习是计算机科学中的一门学科,通过从类似信息的训练中学习模式,可以对以前从未见过的信息进行分类。 从这个意义上说,有各种各样的“学习者”。 贝叶斯networking,决策树,k-聚类algorithm,隐马尔可夫模型和支持向量机就是例子。

基于学习者,他们各自以不同的方式学习。 一些学习者产生人类可理解的框架(例如决策树),而另一些通常是不可思议的(例如neural network)。

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

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

一个计算机程序被认为是从经验E学习一些类别的任务T和性能度量P,如果它在T中的任务的性能(由P测量)随着经验E

  • 机器学习是一门科学学科,涉及algorithm的devise和开发,它允许计算机根据经验数据(例如传感器数据或数据库)演变行为。

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

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

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

机器学习是从一个人的真实世界中获得的一个术语,并且应用于一些实际上无法学习的东西 – 一台机器。

为了增加其他的答案 – 机器学习不会(通常)改变代码,但它可能会改变它的执行path和决定基于以前的数据或新收集的数据,从而“学习”的影响。

有许多方法来“教”一台机器 – 你给一个algorithm的许多参数权重,然后让机器解决它的情况很多,每次你给她一个关于答案的反馈,机器根据机器的答案离你的答案有多近,或者根据你给出答案的分数,或者根据一些结果testingalgorithm。

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