自然语言处理技术 2019-01-29
路线图
目标:
首先,机器学习蕴含着这个内涵,它非常复杂。虽然它在数学上是严格的,但是当你把它分解成数学术语时非常简单,一旦你看到一个真实世界的例子,就像你和我这样的人一直在使用它的话,它会变得更加简单。我的目标是教任何对代数有基本了解的人,这些疯狂的东西是如何运作的。
机器学习来自哪里?
1959年,在IBM工作期间,美国计算机游戏和人工智能领域的先驱亚瑟·塞缪尔创造了“机器学习”一词。在接下来的几十年里,这个计算机科学领域一直生活在公司和大学的许多研究实验室中,直到2010年左右,当时企业开始意识到深度学习的价值,以及它在预测企业、政府所产生的大量数据集中的见解时的应用。
值得注意的是,根据斯坦福大学的GSB,由于他们可以控制大数据,因此该领域的许多进展都在学术界和公司内部取得。
这些流行语是什么意思?
围绕人工智能和它的兄弟机器学习的流行语列表似乎每天都在增长,所以为了理解这一切,让我们想象一下这一切都来自于哪里,因为我们在第一个原则层面深入探讨这一点。
如上所述,我们可以看到许多这些领域与我们人类每天所做的事情有关:学习、处理语言(听)、谈话(语音)、计划(优化)、移动(机器人)和看(视觉)。
这不是偶然的! AI的种子植根于神经网络。神经网络是一种数学模型,用于将人类思维(神经元)的第一原理转化为数学,然后转化为计算机对该数学的解释。请参阅下面的可视化,但现在不要担心理解它。
重要的是要了解有三个主要的主题是彼此非常不同的:
这三个领域与人类的学习方式有很多重叠。
重要的是要注意,即使一个基于另一个,它们也不是同义词。现在我们已经拥有了超级高度的水平,让我们深入了解一下人类和计算机学习之间的相似点和不同点。
人类如何学习?
我们人类通过自己特有的传感器收集数据:眼睛、耳朵、鼻子、舌头,然后我们的大脑解释这些数据,并根据这些数据做出决定。在第一个原则层面,这些决定是由我们的身体化学物质和最终的神经系统决定的,因为这是控制我们的思想、感受和动作的因素。这些决定都有外部结果,结果通过我们从周围世界收集的感官数据向我们的大脑表达。我们感知的这种感官数据会影响我们的感受,进而影响我们的思维,因为我们的大脑的情感部分是最古老和最有影响力的事实。
例如,儿童在第一次接触像熨斗这样的铁的热物时,会避免接触,感受到烧灼的感觉和疼痛,
铁时会学会避免像熨斗这样的热物,并感受到烧灼的感觉和疼痛。通常情况下他们会哭,这有助于他们认识到,如果将来他们不想再发生这样的情况,那么就不要做这样的决定,这也称为学习反馈环。
对许多不同的用例推断这个例子,我们可以看到它是人类如何学习决策导致良好结果以及哪些决策导致不良结果的基本构建块。这在一定程度上是无监督的机器学习。
当父母教孩子如何做事时,这可以被归类为有监督的学习。它是一种监督学习,因为孩子们被“灌输”了数据以影响其决策并在出现错误时修复错误。
例如,父母教他们的孩子如何骑自行车。
前面提到的是一些数据,会告诉孩子的大脑,如果你在踏板上只踏几次,自行车是不可能学会的。
最终,孩子会从连续失败中学会如何骑自行车,就像“一旦你学会骑自行车,你永远不会忘记”,孩子的大脑会有一套发达的指令来完成骑自行车的目标。这就是人类在高层次上学习每项任务的方式,它与计算机学习的方式有些相似。
在数学中,这种通过误差法的试验被称为梯度下降,我们将很快得到它!
我们的身体利用神经元收集信息,然后再次使用神经元传递我们周围世界的动作,而计算机使用我上面展示的数学模型以比特(1和0)的形式收集信息并做出决定!
电脑如何学习?
现代计算机不同于人类,因为它们处理二进制数据,并且必须被告知一组非常具体的指令才能操作,而当孩子出生时,他们没有得到移动、吃饭或哭泣的指令。它们是“预先编程的”,能够自己做这些事情。没有基本指令集的计算机就不是计算机。通过类比推理,婴儿所具有的子宫行为与计算机BIOS类似,或者是生命中最基本的指令集(在计算机机箱打开时)。唯一的区别是BIOS必须由其他人编写,我们人类并不是100%确定我们是从哪里开始预先编程的,但这是另一个重点了。
简单来说,计算机通过机器学习学习的三种方式是(i)模型(ii)参数(iii)学习者。
假装你是一名新老师,并希望确定学生应该学习的最佳时间,以便在考试中获得最佳成绩,这样你就可以将这些信息放在你教授的第二堂课的教学大纲中。
一切都始于模型,也称为机器学习系统将使用的预测。在形式上,这被称为假设:
接下来,我们的ML(机器学习)模型创建了一个数学公式来模拟这个数据中的关系。
现在我们将学生在第一年结束时收到的考试成绩输入我们的模型,以测试我们的假设,结果发现我们的模型不合适。我们输入的数据称为训练集。
在这个模型中,我们看到的最严重的误差范围,即学生学习4小时。
上述计算的结果意味着我们的算法高估了学生的分数,我们的学习者需要调整我们的预测。
从下面的图表中得出的关键是我们的精度指标很低,因为我们的假设存在一个可计算的误差范围。
所以我们调整预测,这是我们得到的结果:
第二次迭代假设
现在系统再次运行,但这次我们使用一组新的分数。学习者将这些真实分数与修正后的模型进行了比较。
这次我们获得了相当高的精确度:
但是为了使我们的模型尽可能精确,机器学习算法将继续运行,直到它尽可能接近绝对精度。
就像自行车上孩子的例子一样,这种梯度下降的方法完全可以弥补机器学习中的一切!是不是很酷?
现在您已经了解了机器学习如何在一个非常简单但实用的示例中运行,让我们来看看机器学习的两个主要构建块:
什么是监督学习以及它如何运作?
监督学习依赖于监督者(人),用于解决两类问题:分类(按相似性分组)和回归(根据一系列独立输入制定定量输出)。
如果您熟悉独立变量和因变量,请继续阅读!如果没有,这是一篇很好的作品,以外行人的术语来描述。这与下面的部分非常相关,所以如果你对这两个含义有点模糊,请花点时间阅读它。
监督机器学习如何运作?
在您需要了解的SML(监督机器学习)过程中有四个主要部分,它们与我们讨论计算机如何学习的前一部分非常相似,但我们将进一步进入数学的部分详细介绍几个关键部分。
数据准备:
一位优秀的工程师正在评估其数据集的三个主要方面:偏斜、分布以及数据集的均值/中值/模式。
我们使用的数据集满足这个标准是绝对重要的,因为如果不是这样,我们基本上会有一个毫无价值的ML模型,因为我们不能在没有多样化数据集的情况下达到高精度。
训练:
这部分几乎与上一节我们介绍模型、参数和学习者相同,但我想直观地展示一些结果是什么样的,这样您就可以查看机器学习模型,并通过分析结果给你的朋友留下深刻印象!
在我展示一些例子之前,有一个非常重要的概念需要理解,那就是差异。方差是衡量模型对新数据“敏感”程度的指标。差异结果对于机器学习来说真的很糟糕,因为它实际上意味着我们已经构建了一个只能在“真空”中工作的软件,换句话说,由于没有采用理论数学而无法从理论数学转换到现实世界的过程中考虑多个参数。
Underfit:
这意味着我们的模型具有良好的数据,但我们运行它的公式太“愚蠢”了,我们需要考虑更多的事情。这就是所谓的偏见。偏见的模型只是忽略了它不应忽视的事物。
这个模型太简单了,因此有一些异常数据点。
这个模型太简单了,因此没有正确分类。
过度拟合:
当我们的数据不好时会发生这种情况干净利落。我们没有多样化的数据集并且存在偏差。然而,该模型并不太“愚蠢”,而且更多的是我们选择训练算法的数据集问题,这是监督机器学习算法的最常见结果。
高方差=从每个点到它们的平均值的差异过大
高方差=从每个点到平均值的分布太大。
这就是超级监督机器学习。
什么是无监督学习,它是如何工作的?
就像它的名字一样,无人监督,这种类型的机器学习涉及最少的人类参与。当然,这些数据需要清理和呈现。
使用它的其中一种方法是电子商务。公司拥有大量有关客户的数据,包括潜在客户和当前客户。每家公司都希望找到新客户来服务他们的产品。通过大量数据集包含他们对某人的了解信息,公司可以对此数据集应用无监督学习,以找到向这些客户销售的新方法,同时寻找新产品销售给这些客户。
让我们来看看用于实现此目的的最流行的算法 - k-means聚类:
以前当我们看聚类时,我们看到了这个例子,当我们进行分类时,我们根据它们是否是相同的形状对对象进行分组,而不是根据它们是否是一个有效的形状。
在用于无监督学习的聚类应用中,数据基于它的相似程度而不是该数据所属的类别(也称为标记)被分组在一起。
例如,在我上面绘制的聚类图像中,您可以根据不同花的花瓣宽度进行分组,而不依赖于花型。
使用多样化的数据集,您将拥有一个根据对象大小对对象进行分组的模型,您可以从最终结果中推断出一些见解。
洞察力是那些使用这些模型的公司所追求的因素,因为它最终可以推断出为客户提供的新产品。
因此,如果您的数据集的结果显示了一群不同的人(多样性定义为年龄、种族、教育、收入、地理区域等),你知道他们每月花多少钱购买产品,根据他们每月花费的金额,无论其他因素如何,他们都会根据这些产品进行分组。
接下来,您可以向他们出售其他人在同一支出集群中购买的更多产品。理论上,这个应用程序会增加公司的销售额,因为您可以合理地假设这些新产品中的一些最终会出售给客户。
k-means聚类是如何工作的?
第1步:根据一些任意指标将数据分成集群(在我们的例子中,我们将使用某些公司每月花费的$作为我们的集群指标)。我们拥有的组数将是由字母“K”表示的量化数字。因此名称为k-means聚类。
设置点
步骤2:选择位于这些聚类中心的k个点,也就是这些聚类中间的点。
第3步:将我们最初设置的每个k点移动到一个新点。通过测量每个点距离我们最初设置的中心的距离来计算这个新点。这是使用我们在代数中学习的方便的花花公子测量的,称为欧几里德距离,或者用更简单的术语,毕达哥拉斯定理。
现在,新点将移动到最近的集群中心。注意:新点不会移动到距离原点最近的点,因为它不是群集,即单个数据点。
为此,我们聚合从原始点到数据集中每个点的距离,并找到具有最小总和的群集(在我们的例子中定义为3个点)(总和定义为每个距离加到一个数字)。一旦我们知道这些聚类中哪一个是最接近的聚类,我们就知道我们的新点将在哪个聚类区域,但这并没有告诉我们究竟需要准确地移动新点的位置。
第4步:为了计算我们想要移动新点的位置,我们必须计算集群中点的平均值。如前所述,均值只是每个点值的总和除以我们得到的点数。
点的移动(定性估计)
步骤5:这不是一个真正的步骤,但在这一步,我们将继续运行我们的算法中的前面的步骤,直到我们不再能够将我们的点位置移动到有利于移动的集群。换句话说,除非有一个群集的距离/平均值比之前计算的更好,否则我们不会改变这一点。
让我们先退一步,因为我必须先解释一下这个过程(算法),然后才能说明主要观点,以便消除任何困惑。
还记得我是怎么说我们在开始时选择k点作为我们开始的基础吗?
无监督学习的全部意义在于告诉他们可能没有意识到的人类见解。如果不改变每次迭代中k点的位置,我们就不能高精度地做到这一点。
为了简单说明发生了什么,这些k点在上述每个步骤完成后都会发生变化,并且会一直这样做,直到我们用尽可能的地方放置这三点或其他一些边缘情况,我是为了简洁而忽略。
那么为什么公司要付钱给工程师来运行这些算法呢?
在我们的算法结束时,我们将有一个最终的集群,它是我们选择寻找的参数(要评估的不同属性)的最佳结果。
在那个集群中,我们可以得到这样的输出例如:
尽管这四个人似乎没有任何共同之处,但他们实际上可以在市场上找到并购买对方拥有的商品,但他们甚至不知道他们想要那些商品,因为没有广告也没有人告诉他们。
好吧,大卫和马库斯有着与梅兰妮和苏珊类似的消费习惯,尽管他们在不同的城市工作并且年龄不同。
通过分析他们的数据,公司可以根据他们刚刚生成的“类似购物者”洞察力向他们提供广告,并且他们可能会在向客户和购买该商品的人展示广告时获得一些可量化的转化率。
这些数学模型和部署它们的工程师花费了少量资金来建造/使用和维护相对于潜在的好处。在规模上,您可能会看到很多销售额超过了构建这些模型的成本,所以......
这就是为什么公司使用像k-means这样的无监督学习模型是有道理的!
从这里可以去哪里?
信不信由你,我们只是触及了机器学习的皮毛。如果你看一下上面的AI快照,你会发现我们真的只涉及一些超级高级的话题。
机器学习中的其他一些有趣的话题就是这些图像中的东西,如NLP(自然语言处理),这就是亚马逊的Alexa如何处理您所说的,CV(计算机视觉),这是机场扫描人员在通过安检时如何查看是否他们在任何观察名单上,当然还有更多。
如果你真的想深入研究这些科目,你应该认真看看MOOC(大规模在线开放课程),如Udacity、Udemy和Coursera。