机器学习从零基础开始【第一节】

机器学习一词由美国计算机游戏和人工智能领域的先驱亚瑟·塞缪尔 (Arthur Samuel) 于 1959 年创造,并表示“它赋予计算机无需明确编程的学习能力”。

1997 年,汤姆·米切尔 (Tom Mitchell) 给出了一个“适定”的数学和关系定义,


“如果计算机程序在 T 上的性能(由 P 衡量)随着经验 E 提高,则称该计算机程序从经验 E 中学习关于某些任务 T 和某些性能度量 P。”

机器学习是近年来的流行语。因为它是计算机科学中最有趣的子领域之一。那么机器学习的真正含义是什么?


让我们尝试用外行的术语来理解机器学习。想一想你正试图将一团纸扔进垃圾箱。 在第一次尝试之后,你意识到你用力过猛。第二次尝试后,您意识到您离目标更近了,但您需要增加投掷角度。这里发生的事情基本上是在每次投掷之后我们都在学习一些东西并改进最终结果。我们被编程为从我们的经验中学习。


这意味着机器学习所关注的任务提供了一个基本的操作定义,而不是用认知术语来定义该领域。这遵循了艾伦·图灵在他的论文“计算机与智能”中提出的“机器能思考吗?”这个问题。被替换为“机器可以做我们(作为思考实体)可以做的事情吗?”


在数据分析领域,机器学习用于设计复杂的模型和算法以进行预测;在商业用途中,这称为预测分析。这些分析模型允许研究人员、数据科学家、工程师和分析师通过学习数据集(输入)中的历史关系和趋势,“产生可靠、可重复的决策和结果”并发现“隐藏的见解”。


假设您决定查看该假期的优惠。您浏览旅行社网站并搜索酒店。当您查看特定酒店时,在酒店描述下方有一个标题为“您可能也喜欢这些酒店”的部分。这是机器学习的一个常见用例,称为“推荐引擎”。同样,许多数据点被用于训练模型,以根据他们已经了解的大量信息来预测在该部分下向您展示的最佳酒店。


因此,如果您希望您的程序预测,例如,繁忙路口的交通模式(任务 T),您可以通过机器学习算法运行它,并使用有关过去交通模式的数据(经验 E),如果它已成功“学习”,然后它将更好地预测未来的流量模式(性能度量 P)。


然而,许多现实世界问题的高度复杂性通常意味着,发明每次都能完美解决这些问题的专门算法是不切实际的,如果不是不可能的话。机器学习问题的例子包括,“这是癌症吗?”,“这些人中谁是彼此的好朋友?”,“这个人会喜欢这部电影吗?” 此类问题是机器学习的极好目标,事实上,机器学习已被应用于此类问题并取得了巨大成功。


机器学习的分类


机器学习实现分为三大类,具体取决于学习系统可用的学习“信号”或“响应”的性质,如下所示:


监督学习: 当算法从示例数据和相关的目标响应中学习时,这些目标响应可以由数值或字符串标签组成,例如类或标签,以便以后在新示例中预测正确响应时,属于监督学习的范畴. 这种方法确实类似于人类在教师监督下的学习。教师提供好的例子让学生记住,然后学生从这些具体的例子中推导出一般规则。


无监督学习:而当算法从没有任何关联响应的普通示例中学习时,让算法自行确定数据模式。这种类型的算法倾向于将数据重组为其他东西,例如可能代表一个类或一系列新的不相关值的新特征。它们在为人类提供对数据含义的洞察以及对监督机器学习算法的新有用输入方面非常有用。


作为一种学习,它类似于人类用来判断某些对象或事件是否属于同一类的方法,例如通过观察对象之间的相似程度。您在网上找到的一些以营销自动化形式出现的推荐系统就是基于这种类型的学习。


强化学习: 当您向算法展示缺少标签的示例时,如无监督学习。但是,您可以根据算法提出的解决方案附带一个带有正面或负面反馈的示例,属于强化学习类别,该类别与算法必须做出决策的应用程序相关(因此产品是规定性的,而不仅仅是描述性的,如在无监督学习中),并且决策承担后果。在人世间,就像是在试错中学习。


错误可以帮助您学习,因为它们会增加惩罚(成本、时间损失、后悔、痛苦等),告诉您某项行动比其他行动更不可能成功。当计算机学会自己玩电子游戏时,就会出现强化学习的一个有趣例子。


在这种情况下,应用程序通过特定情况的示例展示算法,例如让游戏玩家在躲避敌人的同时陷入迷宫。该应用程序让算法知道它采取的行动的结果,并且在尝试避免它发现的危险并追求生存的同时进行学习。你可以看看谷歌 DeepMind 公司是如何创建一个强化学习程序来玩旧的 Atari 视频游戏的。观看视频时,请注意该程序最初是如何笨拙和不熟练的,但随着训练不断改进,直到它成为冠军。


半监督学习:给出不完整的训练信号:训练集缺少一些(通常是很多)目标输出。该原理有一个特殊情况,称为转导,其中整个问题实例集在学习时都是已知的,只是缺少部分目标。


根据所需输出分类


当人们考虑机器学习系统的期望输出时,就会出现机器学习任务的另一种分类:


1.分类:当输入被分成两个或更多类时,学习者必须生成一个模型,将看不见的输入分配给这些类中的一个或多个(多标签分类)。这通常以受监督的方式解决。垃圾邮件过滤是分类的一个例子,其中输入是电子邮件(或其他)消息,类别是“垃圾邮件”和“非垃圾邮件”。


2.回归:这也是一个监督问题,输出是连续的而不是离散的情况。


3.聚类:当一组输入被分成组时。与分类不同,这些组是事先不知道的,这使得这通常是一项无监督的任务。

当问题无法通过典型方法解决时,机器学习就会出现。


上一篇:Java JNI简单实现


下一篇:7 个让你的 console.log() 输出脱颖而出的提示和技巧(01)