学习目标: 了解AI的发展脉络,理解机器学习的基本分类,初步认识深度学习和LLM的原理,掌握实用AI工具并思考伦理问题。
15.1 AI发展简史
人工智能不是一夜之间冒出来的。它经历了三次浪潮:
1950s-1970s 第一次浪潮:符号主义AI
→ 专家系统、逻辑推理
→ "AI寒冬":算力不足,预期过高
1980s-1990s 第二次浪潮:统计学习
→ 神经网络、反向传播
→ "第二次寒冬":数据不够,效果不佳
2012-至今 第三次浪潮:深度学习
2012: AlexNet赢得ImageNet(GPU+大数据)
2016: AlphaGo击败李世石
2022: ChatGPT引爆大语言模型时代
→ 今天:AI无处不在
一个关键转折点:2012年
之前做图像识别,需要人工设计特征(边缘、颜色、纹理)。2012年AlexNet横空出世,直接用大量图片端到端训练一个深层神经网络,错误率从25%降到16%,碾压传统方法。这个突破开启了深度学习时代。
为什么2012年才爆发?三个条件同时成熟:大量数据(互联网产生海量图片)、GPU算力(游戏显卡恰好适合矩阵计算)、算法优化(ReLU激活函数、Dropout正则化)。
15.2 机器学习三大范式
监督学习(Supervised Learning)
定义: 给算法带标签的数据,让它学会从输入预测输出。
比喻: 给学生一堆标好答案的练习题(每道题都有正确解答),学生通过反复练习学会解题方法。
经典任务:
| 任务 | 输入 | 输出 | 例子 |
|---|---|---|---|
| 分类 | 图片 | 猫/狗/其他 | 垃圾邮件识别 |
| 回归 | 房屋面积/地段 | 预测价格 | 股票预测 |
经典算法:
- 线性回归 / 逻辑回归(入门必学)
- 决策树 / 随机森林(可解释性强)
- 支持向量机(SVM,曾经的王牌算法)
- 神经网络(现在的王者)
# scikit-learn监督学习示例:鸢尾花分类
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
X, y = load_iris(return_X_y=True)
model = RandomForestClassifier()
model.fit(X, y) # 训练:给数据+标签
print(model.predict([[5.1, 3.5, 1.4, 0.2]])) # 预测新花的种类
无监督学习(Unsupervised Learning)
定义: 给算法不带标签的数据,让它自己发现数据结构。
比喻: 给你一堆混合的豆子(红豆、绿豆、黄豆,但没有标签),你必须自己按颜色分堆。
经典任务:
- 聚类:把相似的数据归为一类(用户分群、文档归类)
- 降维:把高维数据压缩到2-3维方便可视化(PCA、t-SNE)
- 异常检测:找出"不一样"的数据(信用卡欺诈检测)
# K-Means聚类示例
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3) # 分成3类
kmeans.fit(X) # 不需要y,无标签!
labels = kmeans.labels_ # 每个数据点的类别
强化学习(Reinforcement Learning)
定义: 智能体在环境中通过试错学习,做对了给奖励,做错了给惩罚。
比喻: 训练狗。你无法告诉狗"坐下"的精确肌肉运动,但可以:坐下→给零食(奖励),乱跑→不理它。狗自己会学会"坐下有零食吃"。
经典应用:
- AlphaGo:自我对弈数百万局学习围棋
- 游戏AI:OpenAI Five打Dota2、DeepMind玩Atari游戏
- 机器人控制:机械手抓取物体
- ChatGPT的RLHF:人类反馈强化学习,让模型更符合人类偏好
15.3 深度学习基础
神经网络:模仿大脑的数学结构
大脑由神经元组成:收到信号→超过阈值→传递给下一个神经元。
人工神经网络类似:
输入层 隐藏层1 隐藏层2 输出层
[x1] ──▶ [ ● ] ──▶ [ ● ] ──▶ [识别结果]
[x2] ──▶ [ ● ] ──▶ [ ● ] ──▶ [猫:0.95]
[x3] ──▶ [ ● ] ──▶ [ ● ] ──▶ [狗:0.03]
... [ ● ] [ ... ]
每个神经元做一件简单的事:
输出 = 激活函数( 权重1×输入1 + 权重2×输入2 + ... + 偏置 )
本质上是:加权求和 → 非线性映射
训练过程(反向传播):
1. 输入一张猫图 → 网络输出"这有70%概率是猫"
2. 正确答案是"这是猫"(100%)→ 算出差了30%
3. 从输出层反推,调整所有权重使误差减小
4. 重复几百万次 → 网络学会识别猫
CNN(卷积神经网络):图像处理专家
人眼看图片是一层层抽象:像素→边缘→纹理→部件(眼睛/耳朵)→完整物体(猫)。
CNN模仿这个过程:
输入图片 ──conv──▶ 低级特征 ──conv──▶ 中级特征 ──conv──▶ 高级特征 ──fc──▶ 分类结果
(边缘/颜色) (纹理/形状) (语义/物体)
关键操作——卷积(Convolution):
拿一个小窗口(如3×3的滤镜)在图片上滑动,每个位置计算加权和。不同的"滤镜"检测不同特征:一个检测竖线,一个检测横线,一个检测圆角……
# 用PyTorch定义一个简单的CNN
import torch.nn as nn
class SimpleCNN(nn.Module):
def __init__(self):
super().__init__()
self.conv1 = nn.Conv2d(3, 16, 3) # 3通道输入,16个3×3滤镜
self.pool = nn.MaxPool2d(2, 2) # 2×2池化,保留最大值,压缩尺寸
self.fc = nn.Linear(16 * 13 * 13, 10) # 全连接层,输出10个类别
def forward(self, x):
x = self.pool(torch.relu(self.conv1(x)))
x = x.view(x.size(0), -1) # 展平
x = self.fc(x)
return x
CNN的应用远不止图像分类——人脸识别、自动驾驶的目标检测、医学影像诊断都在用CNN。
RNN和Transformer:处理序列数据
RNN(循环神经网络): 擅长处理序列——文字、语音、时间序列。它有一个"记忆单元",把前一步的信息传到下一步。
读"我今天吃了一个___",读到"吃"时,大脑已经记住前面的"我""今天",预期后面是可食用物品。
RNN的问题是:序列长了记不住(梯度消失)。
Transformer(2017年):RNN的革命性替代品
"Attention Is All You Need"这篇论文彻底改变了NLP领域。
核心创新——自注意力机制:
读一个句子时,每个词都和其他所有词计算"关联度"。
"The cat sat on the mat because it was tired."
│
"it"指的是?
自注意力计算:it ↔ cat = 0.88 ← 高!it指的是cat
it ↔ mat = 0.10 ← 低
it ↔ sat = 0.02
Transformer可以同时并行处理整个序列(不像RNN必须顺序),且能处理更长距离的依赖关系。
15.4 大语言模型(LLM)原理简介
ChatGPT、Claude、文心一言……这些"大模型"到底怎么工作的?
GPT的本质:超级"接话"模型
GPT(Generative Pre-trained Transformer)的核心任务简单得令人惊讶:
给定一段文字,预测下一个最可能的词。
就这么简单。但用这个能力,可以:
- 问答:"法国的首都是___" → 预测"巴黎"
- 翻译:"Hello 翻译成中文是___" → 预测"你好"
- 编程:"def factorial(n): return___" → 预测代码
训练三阶段
第一阶段:预训练(Pre-training)
喂给模型整个互联网的文本(书籍、网页、代码、论文……)
让模型学会:语言的规则、世界的知识、推理的模式
耗时:数周 × 数千张GPU × 数百万美元
第二阶段:监督微调(SFT)
用高质量的人工标注的"问答对"进一步训练
让模型学会:怎么回答用户更有用、更有礼貌
耗时:数天
第三阶段:RLHF(基于人类反馈的强化学习)
人类标注员比较两个回答,指出哪个更好
训练一个"奖励模型",再用强化学习优化LLM
让模型学会:对齐人类价值观,拒绝不当请求
提示词工程(Prompt Engineering)
与大模型交流的最佳方式:
原则1:清晰具体
❌ "写个排序算法"
✅ "用Python写一个冒泡排序函数,包含详细注释,给出复杂度分析,并对比快速排序的优劣"
原则2:给例子(Few-shot)
将以下英文翻译成中文,保持简洁风格:
英文: Hello → 中文: 你好
英文: I love programming → 中文: 我喜欢编程
英文: The weather is beautiful → 中文:
原则3:角色扮演
你是一位有20年经验的Python架构师。请review以下代码,
重点关注安全性、性能和可维护性,给出改进建议。
原则4:分步思考(Chain of Thought)
请一步步推理这道数学题:
小明有5个苹果,给了小红2个,又买了3个,最后吃了1个。还剩几个?
先列出步骤,再给出答案。
常用技巧
| 技巧 | 说明 | 例子 |
|---|---|---|
| Zero-shot | 不给例子直接问 | "解释量子力学" |
| Few-shot | 给2-5个例子 | "按以下格式翻译……" |
| Chain of Thought | 要求分步推理 | "请一步一步思考" |
| 结构化输出 | 指定输出格式 | "返回JSON格式:`{name, age}`" |
| 反驳/Debate | 让模型自我纠错 | "找到你回答中的错误并修正" |
15.5 AI工具推荐
大语言模型
| 工具 | 特点 | 适合 |
|---|---|---|
| ChatGPT | 综合能力最强,生态丰富 | 通用场景 |
| Claude | 长文本处理突出,更安全克制 | 文档分析、写作 |
| Kimi(月之暗面) | 超长上下文(200万字) | 长文档分析 |
| 通义千问 | 阿里出品,中文理解好 | 国内使用 |
| DeepSeek | 开源模型,性价比极高 | 本地部署 |
编程助手
| 工具 | 特点 |
|---|---|
| GitHub Copilot | IDE内实时代码补全,最成熟的AI编程助手 |
| Cursor | 基于VS Code的AI IDE,深度集成对话式编程 |
| Cody (Sourcegraph) | 开源+免费的代码助手 |
| 通义灵码 | 阿里出品,国内开发者的好选择 |
AI画图
| 工具 | 特点 |
|---|---|
| Midjourney | 艺术品质最高,Discord使用 |
| Stable Diffusion | 开源,可本地运行,完全控制 |
| DALL·E 3 | OpenAI出品,ChatGPT内集成 |
效率工具
| 工具 | 用途 |
|---|---|
| Perplexity | AI搜索引擎,回答问题并附来源 |
| Notion AI | 文档写作、会议总结、翻译 |
| Grammarly | 英文写作语法检查+风格优化 |
15.6 AI伦理与社会影响
技术越强大,责任越大。
关键问题
1. 偏见与公平性
- 训练数据中的偏见会被AI放大:招聘AI可能歧视特定群体、面部识别对深肤色人群准确率低
- 应对:多样化训练数据、定期审计模型输出
2. 隐私
- LLM的训练数据是否包含个人信息?被问到敏感信息时会泄露吗?
- 应对:不要输入敏感数据到在线AI服务、使用本地部署的模型
3. 幻觉(Hallucination)
- LLM会"一本正经地胡说八道",编造不存在的事实、论文、API
- 应对:重要事实必须交叉验证,不要盲信AI输出
4. 就业影响
- 与其担心"AI取代我",不如思考"会用AI的人取代不会用AI的人"
- AI正在成为新的基础技能(像当年的Office、互联网)
5. 安全与滥用
- 深度伪造(Deepfake):用AI换脸换声音诈骗
- AI生成的虚假信息:大规模传播不实内容
- 应对:水印技术、AI内容检测、法律法规
工程师的AI伦理原则
1. 透明性:AI参与生成的内容应当标注
2. 可解释性:关键决策(医疗、司法)需要能解释为什么
3. 人机协作:AI辅助而非替代人类判断
4. 安全第一:AI系统要有"刹车",能关闭和回退
5. 持续监控:部署后定期检查是否有意外行为
本章小结
- AI经历了三次浪潮,2012年AlexNet和2022年ChatGPT是两个分水岭
- 机器学习三范式:监督(有答案)、无监督(自己找规律)、强化(试错学习)
- 深度学习的核心:神经网络 + 反向传播 + GPU算力 + 大数据
- Transformer的自注意力机制是现代LLM的基石——没有Transformer就没有ChatGPT
- 提示词工程是每个程序员都该掌握的技能——清晰、给例子、分步思考
- AI工具是杠杆,会用AI的人正在取代不会用AI的人
- 技术越强,对伦理的关注就越重要
⬅️ [上一章:14-云计算与虚拟化](14-云计算与虚拟化.html) | ➡️ [下一章:16-搭建个人网站](16-搭建个人网站.html)