10 AI 说(AI Speak):机器学习

算法是一系列固定的指令,用于执行特定任务。它将任务分解成简单、无歧义的步骤,就像一份写得很好的食谱。

编程语言是计算机可以遵循和执行的指令集。它们充当了人类和机器互相理解的桥梁。最终,所有的数据和信息都被转化为二进制的形式,类似于开关的“开”和“关”状态。对于计算机来说,图像、视频、指令都是1(开关打开)和0(开关关闭)。

在编程语言中,算法变成了程序。应用程序是为最终用户编写的程序。

传统程序接收数据并按照指令输出结果。许多早期的AI程序都是传统的。由于指令不能适应数据,这些程序在预测不完整信息和自然语言处理(NLP)等方面表现不佳。

搜索引擎既依赖于传统算法,也依赖于机器学习(Machine learning, ML)算法。与传统程序不同,机器学习算法分析数据以寻找模式,并使用这些模式或规则来做出未来决策或预测。因此,基于数据和好坏事例,算法通过不断试验和调整,它们会形成自己独特的“食谱”。

这些算法非常适合处理复杂和缺失数据的情况。它们还可以监控自己的性能,并利用这些反馈来变得更好。

这与人类的情况并没有太大不同,尤其是当我们看到婴儿在传统教育体系之外学习技能时。婴儿观察、重复、学习、测试自己的学习成果并改进。在必要时,他们会即兴发挥。

但是,机器与人类的相似性只是表面的。人类的“学习”与机器的学习有着天壤之别,人类的“学习”更加微妙和复杂。

[AI4T] 机器学习 (Machine Learning)

分类问题

“玩牌”由aquarianinsight.com/free-readings/提供,采用CC BY-SA 2.0许可。要查看此项,请访问https://creativecommons.org/licenses/by-sa/2.0/?ref=openverse。

机器学习应用的一个常见任务是分类。比如,判断一张图片是狗还是猫,或者预测一个学生会不会通过考试。这些任务中通常存在两个或更多的组,机器学习应用需要将新的数据归类到其中一个组中。

我们以扑克牌为例,假设有两组牌——组A和组B——它们按照某种规律分成两堆。现在,我们要将一张新的牌——方块A——归类到组A或组B中。

为了完成这个任务,我们首先需要了解这两组牌是如何划分的,这就需要一些示例牌。我们从组A中抽四张牌,从组B中也抽四张牌。这八张牌就是我们的训练集,它们可以帮助我们找到分类的规律,就像“训练”我们的大脑一样。

当我们看到右侧图展示的排列后,大多数人都能猜出方块A应该属于组B。这是因为人类大脑非常擅长发现模式。那么,机器是如何做到这一点的呢?

机器学习算法建立在强大的统计理论基础之上。不同的算法基于不同的数学方程,这些方程需要仔细选择,以便适应特定的任务。程序员的工作是选择数据,分析数据的哪些特征与特定问题相关,并选择正确的机器学习算法。

数据的重要性

“玩牌”由aquarianinsight.com/free-readings/提供,采用CC BY-SA 2.0许可。要查看此许可证的副本,请访问https://creativecommons.org/licenses/by-sa/2.0/?ref=openverse.

上面的抽牌可能会以多种方式出错。请参考右图。1组的牌太少,无法做出猜测。2组有更多的牌,但都是同一花色——无法知道方块应该放在哪里。如果各组的大小不同,3组可能意味着数字牌在A组,而图片牌在B组。

一般来说,机器学习问题更为复杂,所涉及的数据集规模远大于一副牌。在选择训练集时,我们需要借助统计分析来确保数据的有效性和准确性,否则可能会导致错误。对于机器学习应用来说,良好的数据选择至关重要,其重要性甚至超过了其他类型的程序。机器学习需要大量的相关数据来支持其训练和预测。在最基本的情况下,机器学习模型所包含的数据点数量应该是特征总数的十倍1。也就是说,机器学习也擅长处理复杂、混乱甚至矛盾的数据。

特征提取

当我们看到上面A组和B组的牌时,可能首先会注意到牌的颜色。然后,我们会关注牌上的数字或字母以及花色。但是,对于算法来说,它并不知道哪些特征是重要的,所以我们必须明确地告诉它这些特征。

在选择特征时,程序员会面临很多问题。如“特征太少无法发挥作用?”“特征多大的数量是太多呢?”“哪些特征是与任务相关的?”“这些特征之间是否有关联,比如一个特征是否依赖于另一个特征?”“使用这些特征,算法能否给出准确的输出?”这些都是程序员在特征提取时需要仔细考虑的问题。

[AI4T] 特征的作用是什么?(What is the role of features?)

过程

数据必须被预先分类吗?

阅读这里

程序员在开发应用程序时,会先收集数据,从中提取出关键特征,然后选用合适的机器学习算法(一种定义处理过程的数学函数),并用已标注数据(比如已知是A组还是B组的数据)进行训练,让机器“理解”问题背后的规律。

在机器眼中,“理解”问题其实就是给每个特征分配一组数字(权重)。通过给特征分配正确的权重,机器就能算出新卡属于A组还是B组的概率。在训练过程中,程序员会手动调整一些数值来帮助机器更好地学习。这个过程叫做调整(tuning)应用程序。

训练完成后,程序还需要经过测试才能投入使用。这时,我们会把之前没用过的标注数据输入程序进行测试。这些用于测试的数据就叫测试数据。接着,我们会评估机器预测输出的表现。如果表现让人满意,程序就可以正式投入使用了——它现在已经能够接收新数据,并基于这些数据做出决策或预测。

模型在训练和测试数据集上发挥的功能是否不同?特征的数量如何影响两者的性能?点击观看此视频了解。

实时性能将持续受到监控和并得到改进(即调整特征权重,使输出结果更精确)。在实际使用中,实时性能往往与用已有数据测试机器学习时的结果不同。由于用真实用户做实验成本高昂,工作量大且风险高,所以算法总是先用历史用户数据进行测试,但这样可能无法准确评估算法对用户行为的影响1。这就是为什么一旦投入使用,对机器学习应用进行全面评估就显得至关重要:

【[AI4T] 评估 (Evaluating)】

 

想要亲手尝试一些机器学习吗?尝试这个活动吧。


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.

License

知识共享署名 4.0 国际许可的图标

面向教师的人工智能教程: 一本开放式教科书 Copyright © 2024 by Colin de la Higuera 和 Jotsna Iyer is licensed under a 知识共享署名 4.0 国际许可, except where otherwise noted.

Share This Book

面向教师的人工智能教程: 一本开放式教科书
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.