从简单的方面入手讲解机器学习算法(第2部分)

在第一部分中,我们解释了什么是ML和一些机器学习算法。 在这一新部分中,我们将更深入地介绍可以帮助我们教会机器完成任务的其他方法。

SVM(支持向量机)

现在,我们看到了另一种考虑更多方法。 在此示例中,我们有三个红色点和三个灰色点,并用多条线隔开。

从简单的方面入手讲解机器学习算法(第2部分)

现在我们将研究哪一条线最适合数据。

从简单的方面入手讲解机器学习算法(第2部分)

我们可以看到,绿线离点很近,而粉红线离点不那么近。 粉红线似乎离圆点足够远,因此能够将它们很好地分开。 粉红线在这里胜过绿线。 从对数回归中,我们必须解释如何找到最适合这些点的线。 我们应该处理从点到线的距离。 在这里,我们可以查看每个点到直线的距离,发现在这些距离下的最小值是各个点距直线的距离。

从简单的方面入手讲解机器学习算法(第2部分)

通过仅查看六个距离中的最小距离,我们可以忽略距离直线很远的点。

从简单的方面入手讲解机器学习算法(第2部分)

由此可以得出结论,粉红色的线可以更好地分离数据,因为粉红色的线的最小值大于绿线的最小值。 此处的目标是像以前的方法一样通过使用梯度下降来最大化距离。 该算法称为支持向量机(SVM)。 这里的支持向量是超平面封闭的点。 粉红线是分隔点的超平面。 SVM可用于分类任务。

从简单的方面入手讲解机器学习算法(第2部分)

神经网络

在这里,我们将继续我们的肿瘤数据。 现在,数据的排列方式如下图所示。 这是一个新模型。

从简单的方面入手讲解机器学习算法(第2部分)

有时数据可以这样排列:

从简单的方面入手讲解机器学习算法(第2部分)

不幸的是,在这种情况下,我们无法使用一行来分隔数据。

从简单的方面入手讲解机器学习算法(第2部分)

我们可以使用多条直线或一个圆来分隔数据。

从简单的方面入手讲解机器学习算法(第2部分)

通过使用梯度下降,我们可以最小化误差函数并找到这些线。 这种方法称为神经网络。 该名称来自于人脑如何工作的灵感,特别是在多任务处理时。 例如。 一个人可以在操纵手机的同时走在大街上(可能会有危险)。

现在让我们说我们有一台功率较低的计算机,并且不能同时执行多个任务。 例如,如果我们想知道新数据是否属于恶性肿瘤类型,就必须将大任务分为许多小任务。 第一个任务或问题是:新数据是否在紫色线上?

从简单的方面入手讲解机器学习算法(第2部分)

答案是肯定的。 下一个问题是:新数据是否在绿线上?

从简单的方面入手讲解机器学习算法(第2部分)

答案也将是。 两个答案为是,我们可以得出结论,新数据是恶性肿瘤。

从简单的方面入手讲解机器学习算法(第2部分)

因此,我们可以用"是"或"否"来完成其他区域。

从简单的方面入手讲解机器学习算法(第2部分)

因此,右下角的区域将回答1-否/ 2-是。 在左上方区域,我们将具有1-是/ 2-否,最后在左下方区域中,我们将具有1-否/ 2-否。 现在,我们可以在具有以下节点的图中表示任务:

从简单的方面入手讲解机器学习算法(第2部分)

对于这个带有绿色节点的小图,我们提出一个问题,即是否具有坐标(重复率grad = 70%,生长速度grad = 20%)的数据是否超过了绿线,答案是否定的。 对另一个图形执行相同的过程,其中另一个问题是,坐标是否为数据(递归grad = 70%,生长速度grad = 20%)是否在紫色线上,并且答案是否定的。

从简单的方面入手讲解机器学习算法(第2部分)

对于下一个问题,我们只是将上面两个图的输出合并到一个新节点。

从简单的方面入手讲解机器学习算法(第2部分)

这两个值的组合是使用AND逻辑完成的。 让我们看一下这个AND运算符。

从简单的方面入手讲解机器学习算法(第2部分)

它有两个输入,是和否(或数字0和1),并有一个输出。 如果我们输入Yes和No(或1和0),则输出将为No(或0)。 如果输入No和No(或0和0),则输出将为No(或0)。

新节点与两个小图的组合称为神经网络。 在神经网络中,我们首先具有输入层,在其中输入递归grad = 70%和增长速度grad = 20%。 然后,将有关输入层中grad的信息转发到中间层。 来自中间层的节点的答案是否定的。 然后将这些信息转发到输出层,并通过和逻辑进行评估,并且和逻辑或神经网络的输出为否。

从简单的方面入手讲解机器学习算法(第2部分)

可以将其他层和节点添加到此网络以解决更复杂的任务。

从简单的方面入手讲解机器学习算法(第2部分)

这是一种强大而强大的机器学习算法。 它被用于许多项目中,例如驾驶员辅助系统,草书手写识别,使用TNA(热中子分析)检测手提箱中的炸弹,并可能在将来用于阅读心智检查等等。

内核方法

在这个新示例中,我们将看到一种新方法,该方法可以将线性不可分离的数据转换为线性可分离的数据。 我们的要点安排如下。

从简单的方面入手讲解机器学习算法(第2部分)

在这些情况下,不可能使用线来分隔点。

从简单的方面入手讲解机器学习算法(第2部分)

在这里,我们必须以不同的方式进行。 我们可以想象这些点显示在网格中,然后使用曲线将它们分开。

从简单的方面入手讲解机器学习算法(第2部分)

同样,我们可以想象这些点在空间中,并使用一个计划将它们分开。 为此,我们添加了一个附加轴,即z轴。 然后,通过将2D中的点的坐标(x,y)与3D中的坐标(x,y,z)进行匹配,使两个红色点在z轴上移动,其中z可以是取决于x或y的方程,例如x³y ,x +y²,…随后,我们将能够使用计划分离点。

从简单的方面入手讲解机器学习算法(第2部分)

这两个技巧是相同的。 这种方法主要用于支持向量机,称为内核技巧。 我们将继续以(a)中排列的点和曲线作为分隔符的方式继续。 为了分离点,我们将使用一些方程式来帮助我们分离点。 我们有xy,x + y,x²,x³。

点的坐标应用于方程式中。 输出将为我们提供更多有关等式或函数将点分开的信息。 我们使用表格来显示结果。

从简单的方面入手讲解机器学习算法(第2部分)

第一行对应于点的坐标(从左到右),第一列包含等式。 我们可以在表中看到所有结果。 例如。 对于x³中的(4,0),使5x5x5 = 125,对于x + y中的(1,3),我们有1 + 3 = 4。

现在的问题是,哪个等式将点分开。 首先,我们有x + y。 我们可以看到两个蓝色点和两个红色点的坐标具有相同的结果,即4。因此,该方程式无法将这些点分开。 对于x²和x³,可以看出,蓝色和红色点的结果不同,并且红色点的值介于蓝色点的值之间。 因此,这些方程式也无法将点分开。 最后,我们有xy,请注意,蓝色点的值相同,而红色点的值相同。3。该函数可以将点分开,因为它为我们提供了一个红色点的值和一个红色点的值。 蓝点。

蓝点的xy = 0,红点的xy = 3。 我们知道1和2在和0和3之间,所以1和2分别在0和3之间。这使我们得到方程xy = 1和xy = 2,从而得到函数y = 1 / x和y = 2 / x。

从简单的方面入手讲解机器学习算法(第2部分)

由此得出的结论是,函数1 / x(或2 / x)将计划中的点分开。

从简单的方面入手讲解机器学习算法(第2部分)

使用该方法,可以将非线性数据映射到更高维(n-dim)的空间。 在这个新空间中,可以使用平面或曲线轻松分离数据。 此方法可用于手写识别,3D重建,地统计等。

结论

在本文中,我们分为两部分,我们看到了机器学习中使用的几种重要算法。 目的是使用各种示例以简单的方式向他们解释算法。 现在我们到达了"轻松潜水"的结尾。

从简单的方面入手讲解机器学习算法(第2部分)

因此,祝您在美丽的机器学习世界中玩得开心。

一些很好的参考

[1]伊恩·古德费洛(Ian Goodfellow),约书亚(Yoshua Bengio)和亚伦·库维尔(Aaron Courville)。 深度学习。 ISBN9780262035613。。

[2] Christoph H. Lampert。 计算机视觉中的内核方法。 计算机图形学和视觉的基础和趋势。 网址

(本文翻译自Didier Itembe的文章《Machine Learning Algorithms from the Easy Side (Part 2)》,参考:https://towardsdatascience.com/machine-learning-algorithms-from-the-easy-side-part-2-8b54e1cc4efb)


分享到:


相關文章: