无监督学习和监督学习是机器学习中最基础的两种类型,其他的学习方式都可以看作是它们的扩展。无监督学习通常用于从样本数据中找出潜在的分类结构。例如,利用不同年代的人民币硬币的尺寸和重量作为样本数据,这些数据在二维空间中会形成几个不同的聚集区域。观察者可以根据这些聚集区域来判断硬币的类别。同样,机器也可以通过计算数据点之间的距离(如K-means算法),自动将相似的数据点聚类。这样,当有新的硬币输入时,可以通过比较其与各个聚类中心的距离,确定其所属的类别。
许多看似杂乱的事物,实际上可以被划分为不同的类别。比如,人的性格、艺术风格以及生物种类等,只需要使用足够的特征属性进行描述,就能实现有效区分。然而,对于大量特征属性的应用,人类往往难以掌握其全部含义,而机器却能轻松应对。在实际工作中,我们也可以利用现有的多维自动分类工具,从现有数据中挖掘出潜在的分类模式。
无监督学习如同自学,依靠自我理解和推理,因此效率较低,有时甚至无法解决问题。相比之下,监督学习更为高效,因为它通过已知的答案对样本进行标记,指导机器进行学习。监督学习中最常见的算法之一是支持向量机(SVM)。SVM基于单层神经网络,通过非线性的变换将输入数据映射到特征空间,使数据在该空间中变得线性可分。通过构造与特征空间中的内积相等的“核函数”,可以简化计算过程。SVM还使用分段线性函数替代神经元中的Sigmoid函数,从而简化了参数调整的过程,减少了计算量。此外,SVM通过二次规划问题在线性约束下求解极值,特别适合处理大规模稀疏矩阵。1998年,微软研究院的约翰·帕拉特(John C. Platt)提出了SMO算法,极大地提高了处理海量数据的能力,使支持向量机得到了广泛应用。
支持向量机包含了单层感知器作为特殊情况,具有明确的数学理论支持,能够有效控制训练结果。目前,有许多编程语言实现的软件包可供使用。相比多层神经网络,支持向量机所需的硬件资源较少,是一种非常实用的学习算法。但是,选择合适的核函数需要领域专家的协助。支持向量机已经在多个领域取得了成功应用,包括文本分类、图像识别、蛋白质分析、垃圾邮件过滤和手写字符识别等。
神经网络则是由多层感知器构成的网络,每一层都使用线性分类方法处理输入数据。由于Sigmoid函数的存在,每一层的输入和输出都是非线性的。这种架构无需人工设计属性变换,即可通用化地处理各种数据分类任务。实际上,三层神经网络已经能够解决任何分类问题。但是,随着复杂度的增加,中间隐藏层所需的神经元数量也会急剧增加。每层神经网络实现一个线性分类函数,多层神经网络则通过叠加多个线性函数,提高了学习效率。不过,对于超过三层的神经网络,传统的反向传播算法在控制学习结果方面存在困难,因此推动了深度学习的研究和发展。