学习机器学习,第二部分:算法与技术
在这篇文章中,我们将学习有助于实现机器学习功能的算法。
上一篇博文《机器学习导论》介绍了机器学习的概念。现在,让我们来讨论该技术中使用的代表性方法。
回归算法
在大多数机器学习课程中,回归算法是首先介绍的,原因有两个:
- 回归算法相对简单,讨论它们可以轻松地从统计学过渡到机器学习。
- 回归算法为稍后将讨论的一些强大算法奠定了基础。
回归算法有两种子类型:线性回归和逻辑回归。
我们已经在“房价问题”中触及了线性回归。让我们弄清楚如何找到最适合所有数据的直线。“最小二乘法”用于解决此问题。该方法的思想是:找到最能代表一组数据的直线;并找到最接近数据集中观测数据点的直线。并非所有数据点都正好位于一条直线上,因此最佳拟合线是与这些点偏差最小的直线。为了最小化偏差,找到一条直线,该直线最小化所有点与直线之间距离的平方和。最小二乘法将优化问题转化为极值问题。在数学中,我们可以通过查看导数为 0 的点来找到函数的极值。然而,这种方法不适用于计算机,因为它们可能无法解决问题,或者计算可能过于密集。
在计算机科学中,有一个专门的学科叫做数值计算。它致力于提高计算机运行各种计算时的准确性和效率。例如,著名的梯度下降法和牛顿法是经典的数值计算算法。它们也适用于寻找函数的极值。梯度下降法是解决回归模型最简单有效的方法之一。稍后将讨论的神经网络和推荐算法具有线性回归的因素,并且梯度下降法应用于其他算法。
逻辑回归算法与线性回归算法类似。但是,线性回归处理的问题类型与逻辑回归处理的问题类型不同。线性回归处理具有数字最终预测的数值问题,例如房价。另一方面,逻辑回归用于分类算法。逻辑回归的预测是离散类别,例如,逻辑回归通常用于确定电子邮件是否为垃圾邮件,或者用户是否会点击广告。
在实践中,逻辑回归只需在通过线性回归计算出的结果中添加一个 Sigmoid 函数。该函数将数值结果转换为 0 到 1 之间的概率(Sigmoid 函数的图像不是非常直观,但您需要理解较大的值更接近 1,较小的值更接近 0)。接下来,我们根据此概率进行预测。例如,如果概率大于 0.5,我们可以将电子邮件分类为垃圾邮件,或者将肿瘤判断为恶性。为了更好地理解,请参考下图所示的分类线中的逻辑回归算法。
假设有一组关于癌症患者的数据。有些患者的肿瘤是良性的(蓝色圆圈),而有些是恶性的(红色叉号)。肿瘤的红色或蓝色标记是数据“标签”。每个数据点包含两个特征:患者的年龄和肿瘤的大小。您可以在二维空间中映射这两个特征和数据标签。
现在,有一个新的数据点(绿色三角形)需要帮助确定此肿瘤是恶性还是良性。为此,您可以根据红色和蓝色数据点训练一个逻辑回归模型。这就是黑色显示的分类线。绿色点位于分类线的右侧,因此您可以确定标签应为红色,表示恶性肿瘤。
逻辑回归算法绘制的分类线始终是线性的(有时逻辑回归使用非线性线,但这些模型在处理大量数据时效率较低)。因此,当划分两个分类的线不是线性的时,逻辑回归无法充分表达这种情况。接下来,让我们讨论 ML 中使用过的两个最强大和最重要的算法。它们都用于查找非线性分类线。
神经网络
神经网络算法(也称为人工神经网络或 ANN)在深度学习中被广泛使用,神经网络已回归。它们是最强大的机器学习算法之一。
神经网络起源于对大脑机制的研究。生物学家使用神经网络来模拟大脑。然后,机器学习学者使用神经网络进行机器学习实验,并发现它们在视觉和听觉识别方面表现得相当好。神经网络的特定学习机制分解和整合数据。在著名的 Hubel-Wiesel 实验中,研究猫视觉分析机制的研究人员发现了这种机制。
例如,一个正方形有四条折线,然后进入下一层视觉处理。每条折线由四个神经元处理。每条折线进一步分解为两条直线,然后直线分解为两个黑白平面。因此,当图像进入神经元时,复杂图像会转换为数据。经过神经元处理后,它会被整合。最后,大脑看到结果正方形。这就是大脑的视觉识别机制,也是神经网络的工作机制。
现在让我们看一下简单神经网络的逻辑结构。该网络可以分为输入层、隐藏层和输出层。输入层接收信号;隐藏层分析和处理数据;最终结果被整合到输出层。在每一层中,圆圈代表处理单元。这些可以被认为是模拟的神经元。几个处理单元组合成一个层,几个层构成一个网络。结果就是一个神经网络。
在神经网络中,每个处理单元都是一个逻辑回归模型,它接收来自上一层的输入,并将预测结果输出到下一层。通过这个过程,神经网络可以实现复杂的非线性分类。下图展示了神经网络在图像识别领域的一个著名应用。该程序名为 LeNet,神经网络由多个隐藏层构成。LeNet 可以识别以不同方式书写的数字,从而达到很高的准确性和鲁棒性。
中心的正方形显示了输入计算机的图像。顶部,“答案”后面的红色数字是计算机的输出。图像左侧的三列显示了神经网络三个隐藏层的输出。随着层数的加深,细节越来越少,正如我们所见,第三层的基本处理仅达到了线性细节。
在 20 世纪 90 年代,即使有 BP 算法加速,神经网络的发展也遇到了瓶颈。因此,在 20 世纪 90 年代末,SVM 算法取代了神经网络。
支持向量机 (SVM)
支持向量机算法起源于统计学习领域,并在机器学习领域成为经典算法。在某种意义上,SVM 算法是逻辑回归算法的增强。通过为逻辑回归算法提供更严格的优化条件,SVM 算法绘制的比传统逻辑回归更好的分类边界线。
与高斯“核”结合使用时,SVM 可以表示极其复杂的分类边界,从而产生更好的分类结果。“核”是一个特殊函数。此类函数最典型的特征是它可以将数据从低维空间映射到高维空间。
这是一个例子。
现在的问题是如何在二维 (2-D) 空间中绘制圆形分类边界,这很困难。但是,使用“核”将 2D 数据映射到三维 (3-D) 空间。然后,使用线性平面来实现类似的结果。因此,2D 空间中的非线性分类边界等同于 3D 空间中的线性边界。因此,您可以使用一条简单的线来划分 3D 空间中的数据,并实现 2D 空间中的非线性划分效果。以下是 3D 空间的一个剖面。
SVM 算法是数学机器学习算法(相比之下,神经网络具有生物学成分)。该算法的核心步骤进一步证明了从低维空间映射到高维空间的数据不会增加最终计算的复杂性。因此,SVM 算法有助于保持计算效率并提供改进的分类结果。
聚类算法
对于前面提到的所有算法,一个显著的特点是训练数据包含标签,并且训练好的模型可以预测未知数据的标签。在以下算法中,训练数据不包含标签,算法力求通过训练来推断这些数据标签。这些算法有一个共同的名称:无监督算法(使用带标签数据的算法是监督算法)。典型的无监督算法是聚类算法。回到 2D 数据,您可以说每个数据点有两个特征。
如何使用聚类算法为它们打上各种标签?简单地说,聚类算法计算分组之间的距离,并基于这些距离将数据点划分为多个组。最典型的聚类算法是 K-Means 算法。
降维算法
降维算法是一种无监督算法。它将数据从高维级别降低到低维级别。维度表示表征数据的特征的大小。例如,房价数据可能有四个特征:房屋长度、宽度、面积和房间数量。因此,它是四维 (4-D) 数据。长度和宽度特征与面积特征重叠,因为面积 = 长度 x 宽度。使用降维算法,您可以消除冗余信息,并将特征减少到面积和房间数量,从而将 4D 数据压缩为 2D 数据。
您可以使用数学证明该算法在压缩维度数量的同时保留了最大量的信息。因此,降维算法仍然具有优势。
它们主要用于压缩数据并提高其他机器学习算法的效率。另一个优点是可视化。例如,如果您将五维 (5-D) 数据压缩为 2D 数据,则可以在 2D 平面上可视化数据。主成分分析 (PCA) 算法是降维算法最典型的例子。
推荐算法
推荐算法在机器学习行业中非常受欢迎,并被亚马逊、天猫和京东等电子商务公司广泛使用。推荐算法的主要特点是它能自动推荐最能引起用户兴趣的事物,以提高购买率。推荐算法主要有两种类型。
- 基于项目内容的推荐算法。
- 这些算法向用户推荐与他们最近购买的商品相似的商品。它们需要每个商品都有几个标签才能找到与用户购买的商品相似的商品。这些推荐的好处是它们的高度相关性。基于相似用户的推荐算法。
- 它们根据其他具有相同兴趣的用户购买的商品向用户显示推荐。例如,如果用户 A 购买了商品 B 和 C,并且算法发现用户 D 与用户 A 具有相同的兴趣,并且购买了商品 E,那么它就会向用户 A 推荐商品 E。
这两种推荐算法都有各自的优缺点。在电子商务应用中,卖家会混合使用这两种类型。在推荐算法中,最著名的是协同过滤算法。
其他
除了前面提到的算法之外,机器学习中还使用了许多其他算法,例如高斯判别、朴素贝叶斯和决策树算法。然而,前面讨论的六种算法是最广泛使用的、影响最大的、最具代表性的类型。
以下是算法的总结
- 监督算法(带标签):线性回归、逻辑回归、神经网络和 SVM
- 无监督算法(无标签):聚类算法和降维算法
- 特殊算法:推荐算法
除了这些算法之外,机器学习领域经常提到一些算法。然而,它们不是真正的机器学习算法。相反,它们源于解决某些子问题的尝试。在这些“子算法”中,最代表性的是梯度下降法,主要用于线性回归、逻辑回归、神经网络和推荐算法;牛顿法,用于线性回归;BP 算法,用于神经网络;SMO 算法,用于 SVM。
结论
在这篇博文中,我们学习了有助于实现机器学习功能的算法。这些算法包括回归算法、神经网络、SVM、聚类算法、降维算法和推荐算法。在下一篇博文“机器学习应用”中,我们将探讨其在相关领域的应用,包括大数据、人工智能和深度学习。