Answers:
什么是机器学习?
从本质上讲,它是一种教学计算机的方法,它可以基于一些数据进行预测并改进预测或行为。这是什么“数据”?好吧,这完全取决于问题。它可能是机器人学习走路时从其传感器读取的值,或者是某些输入的程序的正确输出。
思考机器学习的另一种方式是它是“模式识别”-教程序对模式做出反应或识别模式的行为。
机器学习代码有什么作用?
取决于您正在谈论的机器学习的类型。机器学习是一个巨大的领域,拥有数百种解决各种不同问题的算法- 有关更多信息,请参见Wikipedia;有关详细信息,请参见Wikipedia。具体来说,请在“ 算法类型”下查看。
当我们说机器学习时,它是修改自身的代码还是修改历史记录(数据库),其中将包含给定输入集的代码体验?
再次取决于。
实际被修改的代码的一个示例是遗传编程,您实质上是在其中开发一个程序来完成一项任务(当然,该程序不会自行修改-但是会修改另一台计算机程序)。
另一方面,神经网络会根据准备的刺激和预期响应自动修改其参数。这使它们可以产生许多行为(理论上,它们可以产生任何行为,因为在给定的时间上,它们可以将任意函数近似于任意精度。
我应该注意,您对术语“数据库”的使用意味着机器学习算法通过“记住”信息,事件或体验来工作。这种情况不一定(甚至经常!)。
我已经提到过的神经网络仅保留近似值的当前“状态”,并随着学习的进行而更新。神经网络没有记住发生的事情以及如何应对,而是建立了他们“世界”的某种“模型”。该模型告诉他们如何对某些输入做出反应,即使输入是以前从未见过的。
最后一项功能-对以前从未见过的输入做出反应的能力-是许多机器学习算法的核心原则之一。想象一下,试图教计算机驾驶员在交通中驾驶高速公路。使用“数据库”隐喻,您将必须确切地告诉计算机在数百万种可能情况下的处理方法。一个有效的机器学习算法将(希望!)能够学习不同状态之间的相似性,并对它们做出相似的反应。
状态之间的相似之处可以是任何东西-甚至我们可能认为“平凡”的东西都可以使计算机真正崩溃!例如,假设计算机驾驶员了解到,当前面的汽车减速时,它必须减速。对于人类来说,用摩托车代替汽车不会改变任何东西-我们认识到摩托车也是车辆。对于机器学习算法,这实际上可能非常困难!数据库将必须分别存储有关汽车在前面和摩托车在前面的情况的信息。另一方面,机器学习算法将从汽车示例中“学习”,并能够自动推广到摩托车示例。
机器学习是计算机科学,概率论和优化论的领域,它允许解决不可能或不可行的逻辑/过程方法的复杂任务。
机器学习有几种不同的类别,包括(但不限于):
监督学习
在监督学习中,您有一些非常复杂的功能(从输入到输出的映射),有很多输入/输出对的示例,但您不知道该复杂的功能是什么。在给定大量输入/输出对数据的情况下,有监督的学习算法可以预测一些您之前可能从未见过的新输入值的输出值。基本方法是将数据集分为训练集和测试集。您有一个带有关联误差函数的模型,您试图在训练集上最小化该模型,然后确保解决方案在测试集上起作用。一旦使用不同的机器学习算法和/或参数重复了这一过程,直到模型在测试集上表现良好,然后就可以尝试在新输入中使用结果。请注意,在这种情况下,程序不会更改,仅更改模型(数据)。从理论上讲,虽然可以输出一个不同的程序,但是据我所知,实际上并没有完成。监督学习的一个例子是邮局使用的数字识别系统,在该系统中,将像素映射到集合0 ... 9中的标签,并使用一大堆被手动标记为0的数字图片... 9。
强化学习
在强化学习中,该程序负责制定决策,并且会定期为其操作获得某种奖励/实用性。但是,不同于在监督学习的情况下,结果不是立即产生的。该算法可能会规定一系列较大的动作,并且只能在最后接收反馈。在强化学习中,目标是建立一个好的模型,以便算法将生成导致最高长期效用/奖励的决策序列。强化学习的一个很好的例子是教机器人如何在碰碰传感器检测到碰到物体时给予否定惩罚来进行导航。如果编码正确,则机器人有可能最终将其测距仪传感器数据与其保险杠传感器数据以及发送至车轮的方向相关联,
更多信息
如果您有兴趣学习更多,我强烈建议您阅读Christopher M. Bishop的模式识别和机器学习或参加机器学习课程。您可能也有兴趣免费阅读宾夕法尼亚州CIS 520:机器学习的讲义。
机器学习只是一个通用术语,用于定义各种学习算法,这些算法可根据示例(未标记/已标记)产生准学习。实际的准确性/错误完全取决于您提供给学习算法的训练/测试数据的质量。这可以使用收敛速率来测量。提供示例的原因是因为您希望自己选择的学习算法能够通过指导性概括来提供有益的信息。该算法可分为监督学习(分类)和非监督学习(聚类)技术两个主要领域。在决定如何分离训练和测试数据集以及为学习算法提供的质量方面做出明智的决定非常重要。在提供数据集时,您还希望注意示例中的过度拟合和保持健康的偏见。然后,该算法基本上会根据您从提供给它的数据(用于训练和过程测试)所获得的概括性来学习写写,然后尝试在目标训练的基础上使学习算法生成新示例。在聚类中,很少有指导性信息,该算法基本上试图通过测量数据之间的模式来产生数据,以建立相关的聚类集,例如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(遗传算法)之类的进化技术来优化您基于神经网络的方法(可能使用一些学习算法)。您可以纯粹以概率机器学习方法(例如贝叶斯学习)的形式进行处理。这些算法大多数都大量使用统计数据。收敛和泛化的概念对许多此类学习算法都很重要。
我认为我读过的最酷的机器学习定义之一就是汤姆·米切尔(Tom Mitchell)的这本书。易于记忆和直观。
如果说计算机程序可以从经验E中学习有关某类任务T和绩效指标P的信息,则计算机程序在P中对任务T的绩效(由P衡量)会随着经验E的提高而提高
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.