欢迎来到人工智能的世界!
你好!今天,我们要深入探讨 H2 计算机科学(Computing)旅程中最令人兴奋的章节之一:人工智能 (Artificial Intelligence, AI)。你可能每天都在与 AI 互动——无论是手机的人脸解锁、Netflix 为你推荐感兴趣的影集,还是聊天机器人回答你的问题。在本章中,我们将揭开这些“智能”系统的运作原理。如果起初觉得像科幻小说也不用担心,我们会一步一步为你拆解!
1. 什么是人工智能 (AI)?
人工智能 (Artificial Intelligence) 的核心,是指计算机系统执行原本需要人类智能才能处理的复杂任务的能力。
要将一个系统称为“AI”,需具备以下两点:
- 自主性 (Autonomy): 它可以在无须人类持续指导的情况下执行任务。
- 学习能力 (Learning): 它能随着数据积累而改善其表现。
AI 任务的现实例子
课程大纲强调了几个 AI 非常擅长的任务:
- 人脸识别: 解锁你的智能手机。
- 语音识别: Siri 或 Alexa 理解你的指令。
- 图像分类: Google 相册识别相册中的“狗”与“猫”。
- 垃圾邮件过滤: 电子邮件收件箱自动侦测“垃圾”邮件。
- 棋类游戏: 如 AlphaGo 等 AI 在桌上游戏中击败世界冠军。
- 文本生成: AI 撰写故事、电邮,甚至编写程序代码。
- 图像生成: 根据文字提示创作逼真的艺术作品或照片。
重点总结: AI 不仅仅是一台“快速计算机”;它是一个从数据中学习模式,并从中自行作出决策的系统。
2. 机器学习 (ML) 与传统程序编写的区别
机器学习 (Machine Learning, ML) 是实现 AI 的其中一种特定技术。为了理解它,让我们将其与我们平时编写程序的方式作对比。
传统程序编写 (Traditional Programming)
在传统程序编写中,由你(人类)写下一套严格的规则 (Rules)。计算机接收数据 (Data),严格遵守你设定的规则,然后得出输出 (Output)。
类比:依照食谱烹饪。如果食谱写着“加入 2 颗鸡蛋”,计算机就会加入 2 颗鸡蛋。如果没有鸡蛋,计算机就会因为不知道该怎么办而死机!机器学习 (Machine Learning)
在机器学习中,我们给计算机数据和理想的答案(输出)。计算机随后利用算法自行找出其中的规则!
类比:婴儿学习什么是“椅子”。你不会给婴儿一张测量清单,而是让他们看 50 张不同的椅子,直到他们的大脑识别出这些物体的共同规律。快速检阅:
- 传统编程: 数据 + 规则 \(\rightarrow\) 输出
- 机器学习: 数据 + 输出 \(\rightarrow\) 规则
3. 两大学习类型
本课程主要探讨两种机器学习方式:监督式学习 (Supervised Learning) 与非监督式学习 (Unsupervised Learning)。
A. 监督式学习 (Supervised Learning)
在监督式学习中,计算机会使用“已标记 (labeled)”的数据集进行训练。这意味着每一笔数据都附带正确答案(标签)。其目标是让计算机学会数据与标签之间的对应关系。
例子:K-近邻算法 (K-Nearest Neighbours, KNN)
想象你有一张红果与绿果的地图。如果你找到一颗新的水果,KNN 会观察与它最接近的 \( k \) 颗水果。如果大多数“邻居”是红色的,计算机就会将新水果标记为红色。
B. 非监督式学习 (Unsupervised Learning)
在非监督式学习中,计算机接收的是没有标签的数据。它必须自行找出数据中隐藏的模式或结构。
例子:K-平均算法 (K-Means Clustering)
想象你有一堆混乱的 LEGO 积木,你要求计算机将它们分成 3 堆。计算机可能会根据形状或颜色进行分组,因为它注意到这些积木看起来相似,即使你从未定义过什么是“方形”或“蓝色”。
记忆小撇步:
Supervised(监督式) = Someone(有人)告诉它答案。
Unsupervised(非监督式) = Unknown labels(未知标签);自行寻找分组。
4. 机器学习工作流程的 7 个步骤
当你想要使用 ML 解决问题时,需要遵循一个标准流程。如果这看起来很冗长别担心,这就像做科学实验一样!
- 数据收集 (Gathering Data): 尽可能收集相关信息。
- 数据准备 (Preparing Data): 清理数据(移除错误)并调整格式。
- 选择模型 (Choosing a Model): 决定使用哪种算法(例如 KNN 或 K-Means)。
- 训练 (Training): 将数据输入模型,让它学习模式。
- 评估 (Evaluating): 在模型未见过的数据上进行测试,检查其准确性。
- 参数调整 (Tuning Parameters): 微调模型设置,以提升其表现。
- 进行预测 (Making Predictions): 使用完成训练的模型来处理现实世界中的新数据。
重点总结: ML 中大部分的工作其实在于收集和准备数据。如果你给计算机“垃圾”数据,你就会得到“垃圾”预测结果!
5. 在 Python 中实现 ML (sklearn)
在实现课程中,你可能会使用 sklearn (scikit-learn) 函数库。以下是参考指南中最重要、必须记住的部分:
对于监督式学习 (KNN):
使用 sklearn.neighbors 模块。你可以使用 KNeighborsClassifier() 建立分类器。
两个最重要的方法是:
- .fit(X, y): 这是“训练”步骤。\( X \) 是你的数据,\( y \) 是标签。
- .predict(X_new): 这是针对新数据的“预测”步骤。
对于非监督式学习 (K-Means):
使用 sklearn.cluster 模块。你可以使用 KMeans() 建立模型。
由于没有标签 (\( y \)),你只需要使用:
- .fit(X): 模型观察数据 \( X \) 并找出集群 (clusters/分组)。
- .cluster_centers_: 这个属性会显示每个分组的“中心点”。
测试你的模型:
使用 sklearn.model_selection 模块中的 train_test_split()。这能帮助你将数据分为两组:训练集和测试集,以确保你的 AI 真的是学会了,而不仅仅是背下了答案!
必须避免的常见错误: 千万不要用训练时完全相同的数据来测试你的模型。这就像老师在正式考试中出跟练习卷一模一样的题目——这无法证明你理解概念,只证明你有很好的记忆力!
总结检查清单
- 你能定义 AI 并列出它的两个主要特征吗?
- 你知道 ML 与传统程序编写的区别吗?
- 你能用例子(KNN 对比 K-Means)解释监督式与非监督式学习吗?
- 你记得 ML 工作流程的 7 个步骤吗?
- 你熟悉 Python 中的 .fit() 和 .predict() 吗?
你一定做得到的!AI 是一个广大的领域,但只要掌握这些基础知识,你就已经在理解塑造我们世界的技术之路上迈进了一大步。