10 AI 说(AI Speak):机器学习
算法是一系列固定的指令,用于执行特定任务。它将任务分解成简单、无歧义的步骤,就像一份写得很好的食谱。
编程语言是计算机可以遵循和执行的指令集。它们充当了人类和机器互相理解的桥梁。最终,所有的数据和信息都被转化为二进制的形式,类似于开关的“开”和“关”状态。对于计算机来说,图像、视频、指令都是1(开关打开)和0(开关关闭)。
在编程语言中,算法变成了程序。应用程序是为最终用户编写的程序。
传统程序接收数据并按照指令输出结果。许多早期的AI程序都是传统的。由于指令不能适应数据,这些程序在预测不完整信息和自然语言处理(NLP)等方面表现不佳。
搜索引擎既依赖于传统算法,也依赖于机器学习(Machine learning, ML)算法。与传统程序不同,机器学习算法分析数据以寻找模式,并使用这些模式或规则来做出未来决策或预测。因此,基于数据和好坏事例,算法通过不断试验和调整,它们会形成自己独特的“食谱”。
这些算法非常适合处理复杂和缺失数据的情况。它们还可以监控自己的性能,并利用这些反馈来变得更好。
这与人类的情况并没有太大不同,尤其是当我们看到婴儿在传统教育体系之外学习技能时。婴儿观察、重复、学习、测试自己的学习成果并改进。在必要时,他们会即兴发挥。
但是,机器与人类的相似性只是表面的。人类的“学习”与机器的学习有着天壤之别,人类的“学习”更加微妙和复杂。
[AI4T] 机器学习 (Machine Learning)
分类问题

机器学习应用的一个常见任务是分类。比如,判断一张图片是狗还是猫,或者预测一个学生会不会通过考试。这些任务中通常存在两个或更多的组,机器学习应用需要将新的数据归类到其中一个组中。
我们以扑克牌为例,假设有两组牌——组A和组B——它们按照某种规律分成两堆。现在,我们要将一张新的牌——方块A——归类到组A或组B中。
为了完成这个任务,我们首先需要了解这两组牌是如何划分的,这就需要一些示例牌。我们从组A中抽四张牌,从组B中也抽四张牌。这八张牌就是我们的训练集,它们可以帮助我们找到分类的规律,就像“训练”我们的大脑一样。
当我们看到右侧图展示的排列后,大多数人都能猜出方块A应该属于组B。这是因为人类大脑非常擅长发现模式。那么,机器是如何做到这一点的呢?
机器学习算法建立在强大的统计理论基础之上。不同的算法基于不同的数学方程,这些方程需要仔细选择,以便适应特定的任务。程序员的工作是选择数据,分析数据的哪些特征与特定问题相关,并选择正确的机器学习算法。
数据的重要性

上面的抽牌可能会以多种方式出错。请参考右图。1组的牌太少,无法做出猜测。2组有更多的牌,但都是同一花色——无法知道方块应该放在哪里。如果各组的大小不同,3组可能意味着数字牌在A组,而图片牌在B组。
一般来说,机器学习问题更为复杂,所涉及的数据集规模远大于一副牌。在选择训练集时,我们需要借助统计分析来确保数据的有效性和准确性,否则可能会导致错误。对于机器学习应用来说,良好的数据选择至关重要,其重要性甚至超过了其他类型的程序。机器学习需要大量的相关数据来支持其训练和预测。在最基本的情况下,机器学习模型所包含的数据点数量应该是特征总数的十倍1。也就是说,机器学习也擅长处理复杂、混乱甚至矛盾的数据。
特征提取
当我们看到上面A组和B组的牌时,可能首先会注意到牌的颜色。然后,我们会关注牌上的数字或字母以及花色。但是,对于算法来说,它并不知道哪些特征是重要的,所以我们必须明确地告诉它这些特征。

在选择特征时,程序员会面临很多问题。如“特征太少无法发挥作用?”“特征多大的数量是太多呢?”“哪些特征是与任务相关的?”“这些特征之间是否有关联,比如一个特征是否依赖于另一个特征?”“使用这些特征,算法能否给出准确的输出?”这些都是程序员在特征提取时需要仔细考虑的问题。
[AI4T] 特征的作用是什么?(What is the role of features?)
过程
程序员在开发应用程序时,会先收集数据,从中提取出关键特征,然后选用合适的机器学习算法(一种定义处理过程的数学函数),并用已标注数据(比如已知是A组还是B组的数据)进行训练,让机器“理解”问题背后的规律。
在机器眼中,“理解”问题其实就是给每个特征分配一组数字(权重)。通过给特征分配正确的权重,机器就能算出新卡属于A组还是B组的概率。在训练过程中,程序员会手动调整一些数值来帮助机器更好地学习。这个过程叫做调整(tuning)应用程序。
训练完成后,程序还需要经过测试才能投入使用。这时,我们会把之前没用过的标注数据输入程序进行测试。这些用于测试的数据就叫测试数据。接着,我们会评估机器预测输出的表现。如果表现让人满意,程序就可以正式投入使用了——它现在已经能够接收新数据,并基于这些数据做出决策或预测。
模型在训练和测试数据集上发挥的功能是否不同?特征的数量如何影响两者的性能?点击观看此视频了解。
实时性能将持续受到监控和并得到改进(即调整特征权重,使输出结果更精确)。在实际使用中,实时性能往往与用已有数据测试机器学习时的结果不同。由于用真实用户做实验成本高昂,工作量大且风险高,所以算法总是先用历史用户数据进行测试,但这样可能无法准确评估算法对用户行为的影响1。这就是为什么一旦投入使用,对机器学习应用进行全面评估就显得至关重要:
想要亲手尝试一些机器学习吗?尝试这个活动吧。
1 Theobald, O. Machine Learning For Absolute Beginners: A Plain English Introduction (Second Edition) (Machine Learning From Scratch Book 1) (p. 24). Scatterplot Press. Kindle Edition.
2 Konstan, J., Terveen, L., Human-centered recommender systems: Origins, advances, challenges, and opportunities, AI Magazine, 42(3), 31-42, 2021.