在上一课中,您了解到数据是人工智能的燃料。但仅靠燃料并不能驱动汽车——你需要发动机。在人工智能中,该引擎是一种算法。每次人工智能系统做出预测、推荐视频或检测垃圾邮件时,算法都会在幕后承担繁重的工作。
算法只是用于解决问题的分步指令。你每天都在不知不觉中遵循算法。
关键思想是算法必须精确、有序和可重复 - 任何遵循相同步骤的人都应该得到相同的结果。
“算法”一词来自 9 世纪波斯数学家穆罕默德·本·穆萨·花拉子米 (Muhammad ibn Musa al-Khwarizmi) 的名字,他写了第一本关于系统解决问题的书。
在我们深入探讨人工智能之前,让我们先看一下您已经直观理解的两种简单算法。
当您拿起一手扑克牌并按顺序排列它们时,您正在运行排序算法:
这本质上就是冒泡排序的工作原理——计算机科学中最简单的排序算法之一。
您不必从第一页开始阅读每个单词。相反,你:
这称为二分搜索,而且效率非常高。它可以通过大约 20 个步骤从一百万个条目中找到任何单词。
为什么二分查找比从头开始读取每个条目更快?
人工智能算法比卡片分类更复杂,但原理是相同的:遵循结构化步骤来得出答案。以下是两个基本的人工智能算法。
决策树提出一系列是或否问题来对事物进行分类。
示例 - 这封电子邮件是垃圾邮件吗?
每个问题都是一个分支,每个最终答案都是一个叶子。决策树很容易理解,这使得当人类需要解释人工智能的推理时,决策树很受欢迎。
KNN 通过查看它已经见过的最接近的示例来对某些内容进行分类。
想象一下,您搬到一个新社区,想知道房子是否昂贵或负担得起。您查看最近的五栋房屋(您的“邻居”)并检查它们的价格。如果大多数都很贵,你预计你的也会很贵。
KNN 的工作方式与数据点完全相同 - 它找到 K 个最接近的示例并进行投票。
如果你向三个朋友推荐一部电影,其中两个推荐了同一部电影,你可能会看那部。这就是 KNN 背后的核心思想——最近邻居之间的多数规则。
登录 参与讨论
在 K=5 的 K 最近邻算法中,模型如何进行预测?
并非所有算法都同样快。计算机科学家使用大 O 表示法来描述算法的速度如何随着数据的增长而变化。
|符号|名称 |示例|速度| |----------|------|---------|--------| | O(1) | O(1) |恒定|按索引查找值 | ⚡ 即时| | O(log n) |对数|二分查找 | 🚀 非常快 | | O(n) |线性|读取列表中的每一项 | 🏃 体面 | | O(n²) |二次 |将每个项目与其他项目进行比较 | 🐢 慢 |
你不需要记住数学。关键的见解是:随着数据集的增长,选择不当的算法可能会从快变得极其慢。
Google 每天处理超过 85 亿次搜索。如果他们的搜索算法是 O(n²) 而不是高度优化的,那么单次搜索可能需要几个小时而不是几毫秒。
O 表示法与精确速度无关 - 它与速度如何缩放有关。 O(n) 算法在处理微小数据时可能会很慢,但随着数据集变大,其性能始终优于 O(n²) 算法。
不存在单一的“最佳”算法。正确的选择取决于:
决策树可能非常适合需要透明度的简单贷款审批系统。但为了识别照片中的物体,您需要一个神经网络 - 我们将在下一课中探讨。
医院需要人工智能来帮助诊断患者。他们应该选择一种高度准确但无法解释的算法,还是一种准确度稍差但可以清楚地显示其推理的算法?有哪些权衡?
选择人工智能算法时哪个因素最不重要?
接下来,我们将了解现代人工智能中最强大的算法系列:神经网络。