机器学习并非孤立存在,而是归属于更大的范畴——人工智能(AI)。然而,机器学习的发展并非一蹴而就。它经历了四个截然不同的发展阶段,逐步形成了我们今天所熟知的技术。
第一阶段的机器学习模型主要依赖于基于规则的决策和简单的基于数据的算法。这些算法包含了所有可能的分支和决策规则,并由专家预先设定。这种算法主要用于处理布尔型数据,即“是”或“否”的决策。
在统计推理发展的第二阶段,人们开始关注数据的概率特性,而非预先设定的选择。这种方法更加贴近现实问题的模糊特性。在这种背景下,贝叶斯概率理论等数学工具得到了广泛应用,包括曲线拟合等技术,从而更好地处理数值数据。
第三阶段的机器学习引入了更复杂的任务。此时的机器学习算法能够从数据中归纳出模型,并生成自己的特征选择器,而不受固定目标函数的限制。这种模型可以处理各种数据类型,如语音、图像、视频和文本等。
最后,第四阶段的AI算法不仅涵盖了之前的各类算法,还具备了一种特殊的能力:能够利用学到的知识解决训练阶段未曾考虑的问题。这种算法可以处理更广泛的数据类型,并能够在不同数据类型间灵活转换,无需重新训练整个模型。
接下来,我们将从实现者的角度分析不同类型的机器学习项目。这些项目主要包括监督学习、无监督学习和强化学习。
在监督学习中,模型会根据已知的数据样本集进行训练,并得到预期的结果。统计上,所有训练集的实验结果都会被记录下来。
无监督学习则只提供问题领域的样本数据,但没有先验信息供推断。这种学习方法主要用于将相似数据分组和归类。
强化学习没有已标记的样本集,而是通过智能体、环境和学习最优策略或步骤集来实现。这种学习方法通过奖励或惩罚机制来最大化面向目标的方法。
图1.2展示了机器学习的主要领域,包括监督学习、无监督学习和强化学习。
在学习过程中,监督学习采用了渐进的步骤。具体包括:
无监督学习没有关于类别的先验知识,需要通过自动推断得出结果。
半监督学习需要一个已知样本作为种子,模型通过这个种子推断剩余样本的分类或数值。
监督学习通常包含一个已知的数据集作为训练集,并使用另一个数据集进行验证和测试。
监督学习包括回归和分类两种类型的任务。
回归任务旨在通过比较输入与实际答案来最小化误差,从而在新样本中进行预测。
分类任务则是对新样本进行标记或分类。
无监督学习主要用于处理聚类问题,即通过观察对象的相似性或共享特征来进行分类。此外,还有半监督学习,它结合了已标记和未标记的数据进行训练。
本书面向开发人员,通过实际代码解释所用方法的数学概念。在选择示例代码的编程语言时,作者选择了Python,因为它易于理解和应用,且在机器学习项目中被广泛采用。
Python是一种通用脚本语言,由Guido Van Rossum于1989年创建。它语法简洁,且具有强大的可扩展性,这得益于其丰富的扩展库。Python可以与C语言绑定,适合原型设计和通用编码。
本书将带领读者深入了解机器学习的各种技术和应用场景,包括回归、聚类、分类和神经网络等。通过本书的学习,读者将能够应用这些概念解决实际问题,如图像分析、自然语言处理和时间序列数据分析。
本文节选自《机器学习开发者指南》。