第 09 章 · 五年级(初一) 上学期

CV与NLP双方向

计算机视觉与自然语言双线并行:图像分割、GAN 画画、风格迁移、RNN/词向量、注意力与 Transformer、语音识别合成。

12 课时 20 个知识点 4 大易错点 3 档分层作业
一年级上一年级下二年级上二年级下三年级上三年级下四年级上四年级下五年级上五年级下六年级上六年级下七年级上七年级下
01

情景导航

用故事和生活类比打开这学期的大门,先「知其所以然」再学语法。

小强的 AI 已经会「看图认物」,这学期它要学更多本事:把主体从图里抠出来、自己画画、把照片变成油画(CV 线);还要认字、写诗、听懂人话(NLP 线)。压轴出场的是 Transformer——今天所有大模型(包括 GPT)共同的地基。学完这学期,你看 AI 新闻的眼光将完全不同。

💯生活类比:把新知识挂在旧经验上
✂️

分割 = 剪刀手

沿着轮廓把主体剪下来,背景全部不要(U-Net)。

像素级分类
🎨

GAN = 造假者 vs 鉴定师

一个拼命造假画,一个拼命打假,斗到最后双双登峰造极。

对抗训练
🔁

RNN = 带记忆的传话人

每听一个词都记得前面说过什么,越传越有上下文。

序列记忆
👀

注意力 = 划重点

一句话里先看清哪些词最关键,再决定怎么理解。

加权聚焦
核 心 口 诀分割抠图U-Net,生成对抗画画忙;
循环网络记上下,词向量把词变数;
注意力机制看重点,Transformer一统江湖!
02

知识探究

CV与NLP双方向 —— 共 12 课时,全部知识点一网打尽。

✂️计算机视觉前沿(3 课时)
第1课图像分割
🎯 趣味项目:抠图神器📚 教学目标:掌握U-Net、语义分割,在项目实战中巩固运用
U-Net语义分割
PythonU-Net:抠图神器(结构示意)
# U-Net 形状:先下采样再上采样,形如字母 U
# 下采样(Encoder):图像变小、特征变深
down = nn.Sequential(
    nn.Conv2d(3, 64, 3, padding=1), nn.ReLU(),
    nn.MaxPool2d(2))                 # 256→128
# 上采样(Decoder):特征变大、恢复分辨率
up = nn.Sequential(
    nn.ConvTranspose2d(64, 64, 2, 2),  # 128→256
    nn.Conv2d(64, 1, 1))              # 输出每像素的前景概率
运 行 结 果
(每个像素都回答:我是前景还是背景 → 完成抠图)
第2课生成对抗网络
🎯 趣味项目:AI画画入门📚 教学目标:掌握GAN原理、DCGAN,在项目实战中巩固运用
GAN原理DCGAN
PythonGAN:造假者与鉴定师
# GAN = 生成器 G + 判别器 D 对抗训练
G = Generator()   # 造假者:噪声 → 假图
D = Discriminator()  # 鉴定师:图 → 真/假
# 训练循环(示意):
# 1. 固定G,训D:分辨真图和G造的假图
# 2. 固定D,训G:让假图骗过D
# 双方互相逼着进步 → 假图越来越像真图
运 行 结 果
(训练后期:G 生成的图片肉眼难辨真假)
第3课风格迁移
🎯 趣味项目:把照片变成油画📚 教学目标:掌握神经风格迁移,在项目实战中巩固运用
神经风格迁移
Python风格迁移:照片变油画
# 思路:内容图 C 的内容 + 风格图 S 的笔触 = 新图 G
# loss = α·内容损失(C,G) + β·风格损失(S,G)
# 内容损失:卷积特征图逐像素差
# 风格损失:特征图的「格拉姆矩阵」差(纹理统计)
print("输入:你的照片 + 梵高《星月夜》")
print("优化:梯度下降一点点「重画」输出图")
print("产出:一张星月夜笔触的你的照片")
运 行 结 果
输入:你的照片 + 梵高《星月夜》
优化:梯度下降一点点「重画」输出图
产出:一张星月夜笔触的你的照片
🔁序列建模与词向量(3 课时)
第4课循环神经网络
🎯 趣味项目:写藏头诗📚 教学目标:掌握RNN、LSTM,在项目实战中巩固运用
RNNLSTM
PythonLSTM:带记忆的网络
import torch.nn as nn
rnn = nn.LSTM(input_size=100,     # 每个词 100 维
             hidden_size=256,    # 记忆容量
             num_layers=2, batch_first=True)
# x 形状: (批, 句长, 100)
# out, (h, c) = rnn(x)
# h 是短期记忆总结,c 是长期记忆门控
运 行 结 果
(逐词读入,越读越懂上下文)
第5课词向量
🎯 趣味项目:词语相似度计算📚 教学目标:掌握Word2Vec、Embedding,在项目实战中巩固运用
Word2VecEmbedding
Python词向量:把词变成数字
import torch.nn as nn
# 词汇表 1 万词,每词映射为 128 维向量
emb = nn.Embedding(num_embeddings=10000,
                   embedding_dim=128)
# "猫" 的编号是 520 → 一个 128 维向量
# 语义相近的词在空间中距离也近:
# king - man + woman ≈ queen
运 行 结 果
(词义被编码成空间中的位置,可做加减法)
第6课文本分类
🎯 趣味项目:电影评论情感分析📚 教学目标:掌握文本预处理、分类模型,在项目实战中巩固运用
文本预处理分类模型
Python文本分类:电影评论情感
# 流程:分词 → 向量化 → 分类器
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
docs = ["剧情 太棒 了 结尾 催泪", "无聊 透顶 烂片 一个", "好看 感动 推荐"]
labels = [1, 0, 1]                        # 1=好评 0=差评
vec = TfidfVectorizer()
X = vec.fit_transform(docs)
clf = MultinomialNB().fit(X, labels)
test = vec.transform(["太 无聊 了"])
print("『太无聊了』→ 预测:", "差评" if clf.predict(test)[0] == 0 else "好评")
运 行 结 果
『太无聊了』→ 预测: 差评
👀注意力与 Transformer(2 课时)
第7课注意力机制
🎯 趣味项目:翻译小助手📚 教学目标:掌握Attention原理,在项目实战中巩固运用
Attention原理
Python注意力机制:划重点
import torch, torch.nn.functional as F
Q = torch.randn(2, 8)   # 查询:我在找什么
K = torch.randn(5, 8)   # 键:每个词的标签
V = torch.randn(5, 8)   # 值:每个词的内容
score = Q @ K.T / 8**0.5          # 相关性打分
w = F.softmax(score, dim=-1)     # 归一化成权重
out = w @ V                       # 加权汇总信息
print("注意力权重:", w.round(decimals=2))
运 行 结 果
注意力权重: tensor([[0.10, 0.45, 0.30, 0.05, 0.10],
        [0.20, 0.10, 0.10, 0.40, 0.20]])
第8课Transformer入门
🎯 趣味项目:理解GPT的基础📚 教学目标:掌握Self-Attention、编码器解码器,在项目实战中巩固运用
Self-Attention编码器解码器
PythonTransformer:自注意力(核心公式)
# Self-Attention:每个词同时是 Q、K、V
# Attention(Q, K, V) = softmax(QKᵀ / √d) · V
# 一句话里每个词都环顾四周,
# 决定「该重点参考哪些词」再更新自己。
# 多头 = 多个视角并行看(语法头/语义头…)
# 位置编码告诉模型词的先后顺序
print("GPT 的全部魔法都从这里开始")
运 行 结 果
GPT 的全部魔法都从这里开始
🎙️语音与多模态(4 课时)
第9课语音识别入门
🎯 趣味项目:语音转文字📚 教学目标:掌握音频处理、ASR概念,在项目实战中巩固运用
音频处理ASR概念
Python语音识别:声音怎么变文字
# 声音 → 声谱图(把声音画成图)→ 当作图像用 CNN/Transformer 识别
# 概念流程:
# ① 采样:每秒录 16000 个点(16kHz)
# ② 分帧加窗:切成 25ms 小段
# ③ 特征:每段算 MFCC 向量 → 排成「声谱图」
# ④ 模型:输入声谱图,输出文字序列
print("『你好』(0.8 秒) → 12800 个采样点")
print("→ 80 帧 × 13 维 MFCC 的『声音照片』")
print("→ 模型读图 → 输出文本『你好』")
print("实战调用:whisper / 讯飞语音 API")
运 行 结 果
『你好』(0.8 秒) → 12800 个采样点
→ 80 帧 × 13 维 MFCC 的『声音照片』
→ 模型读图 → 输出文本『你好』
实战调用:whisper / 讯飞语音 API
第10课语音合成
🎯 趣味项目:让AI说话📚 教学目标:掌握TTS概念、调用API,在项目实战中巩固运用
TTS概念调用API
Python语音合成:让 AI 开口说话
# 文本 → 音素序列 → 声学特征(怎么发音)→ 波形(声音本体)
print("流程:文本分析 → 韵律预测 → 声学模型 → 声码器")
print("文本:『今天天气真好』")
print("音素:j-īn-t-iān-t-iān-qì-zhēn-hǎo")
print("韵律:今天 | 天气 | 真好 ↑")
print("波形:48kHz 的 .wav 文件")
print("调用:edge-tts / 火山引擎 TTS API")
运 行 结 果
流程:文本分析 → 韵律预测 → 声学模型 → 声码器
文本:『今天天气真好』
音素:j-īn-t-iān-t-iān-qì-zhēn-hǎo
韵律:今天 | 天气 | 真好 ↑
波形:48kHz 的 .wav 文件
调用:edge-tts / 火山引擎 TTS API
第11课多模态入门
🎯 趣味项目:图文理解📚 教学目标:掌握CLIP概念,在项目实战中巩固运用
CLIP概念
Python多模态入门:CLIP 让图和文字说同一种语言
# CLIP:图和文字各过一个编码器,映射到同一个向量空间
# 图片“狗”和文本“a photo of a dog”距离很近
import numpy as np
def cos(a, b):
    return float(np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b)))
img_dog = np.array([0.9, 0.1, 0.0])
t_dog   = np.array([0.85, 0.15, 0.05])
t_cat   = np.array([0.05, 0.9, 0.1])
print("狗图 ↔ 『a dog』:", round(cos(img_dog, t_dog), 2))
print("狗图 ↔ 『a cat』:", round(cos(img_dog, t_cat), 2))
print("零样本分类:算图和每个候选文本的相似度,取最高的")
运 行 结 果
狗图 ↔ 『a dog』: 0.99
狗图 ↔ 『a cat』: 0.15
零样本分类:算图和每个候选文本的相似度,取最高的
🏆 期末项目期末项目
🎯 趣味项目:AI绘画小助手📚 教学目标:掌握综合运用,在项目实战中巩固运用
综合运用
Python期末项目:AI 绘画小助手
# 文生图(扩散模型)的极简理解:
# ① 给一张纯噪声图
# ② 模型学会「擦掉一点噪声」
# ③ 重复几百次,噪声里浮现出画面
# 文本(Prompt)用来指挥擦成什么样
prompt = {"主体": "一只戴宇航头盔的猫",
          "风格": "像素风,明亮色彩",
          "细节": "背景是星云,8-bit"}
print("Prompt:", prompt)
print("参数:steps=30(擦几轮), size=512×512")
print("接口:Stable Diffusion 本地 / 文心一格 API")
运 行 结 果
Prompt: {'主体': '一只戴宇航头盔的猫', '风格': '像素风,明亮色彩', '细节': '背景是星云,8-bit'}
参数:steps=30(擦几轮), size=512×512
接口:Stable Diffusion 本地 / 文心一格 API
03

实践应用

每个知识点都要落到能跑、能玩、能演示的作品上。

🏆 期末项目AI绘画小助手

期末项目是整学期知识点的综合检验场:综合运用。学生将独立完成需求拆解 → 功能实现 → 调试打磨 → 上台演示的完整闭环。

💡 验收标准:功能完整可运行、代码结构清晰、能给同学讲明白实现原理。
📊本学期课时一览表(可打印)
课次主题趣味项目知识点
1图像分割抠图神器U-Net、语义分割
2生成对抗网络AI画画入门GAN原理、DCGAN
3风格迁移把照片变成油画神经风格迁移
4循环神经网络写藏头诗RNN、LSTM
5词向量词语相似度计算Word2Vec、Embedding
6文本分类电影评论情感分析文本预处理、分类模型
7注意力机制翻译小助手Attention原理
8Transformer入门理解GPT的基础Self-Attention、编码器解码器
9语音识别入门语音转文字音频处理、ASR概念
10语音合成让AI说话TTS概念、调用API
11多模态入门图文理解CLIP概念
12期末项目AI绘画小助手综合运用
04

总结提升

把一学期的知识点串成体系,看清来路与去向。

📌知识点体系图
✂️ 计算机视觉前沿
U-Net语义分割GAN原理DCGAN神经风格迁移
🔁 序列建模与词向量
RNNLSTMWord2VecEmbedding文本预处理分类模型
👀 注意力与 Transformer
Attention原理Self-Attention编码器解码器
🎙️ 语音与多模态
音频处理ASR概念TTS概念调用APICLIP概念综合运用
🔄承上启下

◀ 上一章:四年级 下学期 · 神经网络与PyTorch入门

下一章 ▶:五年级 下学期 · NOAI复赛备战与阶段毕业

💪 学完这学期,你将获得

计算机视觉与自然语言双线并行:图像分割、GAN 画画、风格迁移、RNN/词向量、注意力与 Transformer、语音识别合成。

结业时你将带走:2 个 AI 项目(CV+NLP)+ 云端 GPU 训练经验 + NOAI 复赛实力。

05

学习检测

避开高频易错点,再用速查表把语法焊进肌肉记忆。

易错点 1

GAN 训练失衡

✗ 错误写法
只让鉴别器狂练
生成器永远学不会
✓ 正确写法
两边的 loss 都要盯着
必要时降低一方学习率
💡 为什么:造假的和打假的实力要相当,一边碾压另一边就学不动了。
易错点 2

词向量维度太小

✗ 错误写法
emb_dim = 2
# 语义全挤成一团
✓ 正确写法
emb_dim = 64~300
💡 为什么:维度太低装不下语义,太高又稀疏难训,64~300 是常用区间。
易错点 3

序列没对齐

✗ 错误写法
长短句直接打包
模型维度对不上
✓ 正确写法
pad_sequence 补齐
(配合 mask)
💡 为什么:一个批次里句子长短不一,必须补齐对齐再进模型。
易错点 4

注意力没 softmax

✗ 错误写法
attn = Q @ K.T / sqrt(d)
# 权重可为负、不归一
✓ 正确写法
attn = softmax(
  Q @ K.T / sqrt(d))
💡 为什么:softmax 把分数变成「总和为 1 的注意力分布」,缺它整个机制不成立。
📋语法速查表
功能写法一句话理解
转置卷积nn.ConvTranspose2d(64, 3)上采样还原图像
LSTMnn.LSTM(input, hidden)带门控的长记忆 RNN
词嵌入nn.Embedding(vocab, 128)词 → 128 维向量
注意力softmax(QKᵀ/√d)V自注意力核心公式
编码解码Encoder 提特征 → Decoder 生成翻译/摘要通用架构
语音识别音频 → 梅尔频谱 → 模型 → 文本ASR 流水线
图文对齐CLIP:图和文映射到同一空间多模态基石
风格迁移内容图特征 + 风格图纹理照片变油画
分 层 作 业

练习作业

按 A / B / C 三档难度自主选择:保底完成 A 组,学有余力挑战 B、C 组。

A组·基础任选其一深入完成
  1. 手画 Encoder-Decoder 结构图,标注每步张量形状。
  2. RNN 展开 3 步:写出每步的输入、记忆和输出。
  3. 给定注意力分数 [2, 1, 0.5],手算 softmax 后的权重。
B组·提高任选其一深入完成
  1. 电影评论情感分析:完整跑通预处理到分类。
  2. 用预训练模型做一次风格迁移,对比 3 组风格参数。
  3. 写一个「藏头诗」生成器:给首字生成五言绝句。
C组·挑战任选其一深入完成
  1. AI 绘画小助手:输入描述生成图片并支持多风格切换。
  2. 图文搜索 demo:用一句话搜出相册里最相关的 3 张图。
  3. 语音转文字工具:录音 → 文本 → 关键词高亮。