第 10 章 · 五年级(初一) 下学期

NOAI复赛备战与阶段毕业

真题实战 + 竞赛工程能力(调参、模型融合、云端 GPU、论文复现),最终完成自主选题的 AI 毕业项目并答辩。

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

情景导航

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

复赛比初赛难得多:不再是选择题,而是真刀真枪的数据、模型与排名。小强这半年练的不只是算法,还有「竞赛工程学」——调参、融合、云端 GPU、论文复现,最后用一个自主选题的 AI 项目完成第二阶段的毕业答辩。

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

超参数 = 烹饪火候

食材(数据)一样,火候(超参数)不同,味道天差地别。

训练配置
🤝

模型融合 = 众筹智慧

三个臭皮匠投票,顶个诸葛亮(还要比皮匠强)。

集成上分
☁️

云 GPU = 租用健身房

不用买设备,按小时付费练大模型。

算力租用
📄

论文 = 武功秘籍

看懂招式(方法)只是第一步,能比划出来(复现)才算学会。

科研入门
核 心 口 诀调参先看学习率,交叉验证防过拟合;
融合投票效果涨,云端GPU省成本;
论文复现走流程,答辩展示亮作品!
02

知识探究

NOAI复赛备战与阶段毕业 —— 共 12 课时,全部知识点一网打尽。

🎯复赛真题实战(3 课时)
第1课NOAI复赛精讲1
🎯 趣味项目:赛题解析📚 教学目标:掌握比赛流程、评分标准,在项目实战中巩固运用
比赛流程评分标准
PythonNOAI 复赛:读懂赛题
# 复赛 vs 初赛:初赛考概念,复赛考真做项目
# 典型赛题结构:
rubric = {
    "题目": "给定 5000 张带标签的图片,训练分类模型",
    "评分": "测试集准确率 60% + 方案报告 25% + 答辩 15%",
    "陷阱": "类别不平衡(有的类只有 20 张图)",
    "策略": "数据增强 + 加权损失 + 先跑通 baseline",
}
for k, v in rubric.items():
    print(f"{k}:{v}")
print("铁律:先交一个能跑的笨办法,再花时间优化")
运 行 结 果
题目:给定 5000 张带标签的图片,训练分类模型
评分:测试集准确率 60% + 方案报告 25% + 答辩 15%
陷阱:类别不平衡(有的类只有 20 张图)
策略:数据增强 + 加权损失 + 先跑通 baseline
铁律:先交一个能跑的笨办法,再花时间优化
第2课NOAI复赛精讲2
🎯 趣味项目:计算机视觉赛题📚 教学目标:掌握CV赛题实战,在项目实战中巩固运用
CV赛题实战
PythonCV 赛题实战套路
# 图像赛题四板斧:
# ① EDA:看数据长什么样、类别分布
# ② baseline:迁移学习(resnet18 预训练权重起步)
# ③ 增强:随机裁剪/翻转/颜色抖动(免费扩充数据)
# ④ 训练技巧:早停 + 学习率衰减 + 保存最优权重
import torchvision.models as models
m = models.resnet18(weights="IMAGENET1K_V1")   # 迁移学习
m.fc = __import__("torch").nn.Linear(512, 10)  # 换成 10 类输出
print("预训练网络 + 新分类头 = 强力起点")
运 行 结 果
预训练网络 + 新分类头 = 强力起点
(5000 张小数据集上,迁移学习往往吊打从零训练)
第3课NOAI复赛精讲3
🎯 趣味项目:NLP赛题📚 教学目标:掌握NLP赛题实战,在项目实战中巩固运用
NLP赛题实战
PythonNLP 赛题实战套路
# 文本赛题三板斧:清洗 → 表示 → 模型
# ① 清洗:去停用词、去 HTML、统一大小写
# ② 表示:TF-IDF(快)或预训练词向量(准)
# ③ 模型:朴素贝叶斯起步 → LSTM/BERT 冲分
from sklearn.feature_extraction.text import TfidfVectorizer
docs = ["这部电影 精彩", "剧情 拖沓 无聊"]
vec = TfidfVectorizer(token_pattern=r"(?u)\b\w+\b")
X = vec.fit_transform(docs)
print("词表:", vec.get_feature_names_out())
print("TF-IDF 矩阵形状:", X.shape)
运 行 结 果
词表: ['剧情' '无聊' '这部电影' '拖沓' '精彩']
TF-IDF 矩阵形状: (2, 5)
🛠️竞赛工程(4 课时)
第4课竞赛技巧
🎯 趣味项目:调参大作战📚 教学目标:掌握超参数优化、交叉验证,在项目实战中巩固运用
超参数优化交叉验证
Python竞赛技巧:调参大作战
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier
# 网格搜索 + 交叉验证 = 科学的穷举
param_grid = {"n_estimators": [50, 100, 200],
              "max_depth": [None, 5, 10]}
# gs = GridSearchCV(RandomForestClassifier(),
#                  param_grid, cv=5, scoring="f1_macro")
# gs.fit(X, y); print(gs.best_params_)
print("网格搜索:3×3=9 组 × 5 折 = 45 次训练")
print("经验:学习率/树深/正则 > 其他一切参数")
运 行 结 果
网格搜索:3×3=9 组 × 5 折 = 45 次训练
经验:学习率/树深/正则 > 其他一切参数
第5课模型融合
🎯 趣味项目:团队上分技巧📚 教学目标:掌握集成方法、投票,在项目实战中巩固运用
集成方法投票
Python模型融合:团队一起上分
# 融合三板斧:
# ① 投票法:三个模型举手表决
# ② 平均法:概率取平均(回归最常用)
# ③ Stacking:再来一个模型学「怎么结合它们」
import numpy as np
p1 = np.array([0.8, 0.2])   # CNN 的判断
p2 = np.array([0.6, 0.4])   # SVM 的判断
p3 = np.array([0.9, 0.1])   # 树模型的判断
avg = (p1 + p2 + p3) / 3
print("平均融合概率:", np.round(avg, 2), "→ 预测类别", avg.argmax())
print("前提:模型要「和而不同」,全一样融合无增益")
运 行 结 果
平均融合概率: [0.77 0.23] → 预测类别 0
前提:模型要「和而不同」,全一样融合无增益
第6课云端训练
🎯 趣味项目:使用GPU云平台📚 教学目标:掌握Colab、Kaggle使用,在项目实战中巩固运用
ColabKaggle使用
Python云端训练:白嫖 GPU
# Google Colab / Kaggle Notebook 免费送 GPU
# 用法三步:
# ① 运行时 → 更改运行时类型 → T4 GPU
# ② 代码里 device = "cuda"
# ③ 数据放 Google Drive,挂载进笔记本
import torch
print("GPU 可用:", torch.cuda.is_available())
print("设备名:", torch.cuda.get_device_name(0)
      if torch.cuda.is_available() else "CPU only")
print("省时对比:CPU 训 2 小时 ≈ GPU 训 8 分钟")
print("注意:免费档 12 小时会断连,重要 checkpoint 存 Drive")
运 行 结 果
GPU 可用: True
设备名: Tesla T4
省时对比:CPU 训 2 小时 ≈ GPU 训 8 分钟
注意:免费档 12 小时会断连,重要 checkpoint 存 Drive
第7课代码效率优化
🎯 趣味项目:让训练更快📚 教学目标:掌握混合精度、分布式训练概念,在项目实战中巩固运用
混合精度分布式训练概念
Python代码效率优化:让训练更快
# 三招提速(效果从小到大):
# ① 向量化:能不写 for 循环就不写
import numpy as np, time
a = np.random.rand(10_000_000)
t = time.perf_counter(); s = a * 2 + 1
print("向量化 1000 万运算:%.0f 毫秒" % ((time.perf_counter()-t)*1000))
# ② 混合精度:fp16 存中间结果,显存减半速度翻倍
#    with torch.autocast("cuda"): out = model(x)
# ③ 数据加载 num_workers + pin_memory,GPU 不挨饿
print("②混合精度 ③多进程读数据 → 整体再快 2~3 倍")
运 行 结 果
向量化 1000 万运算:12 毫秒
②混合精度 ③多进程读数据 → 整体再快 2~3 倍
📄科研入门(1 课时)
第8课论文阅读入门
🎯 趣味项目:读一篇经典论文📚 教学目标:掌握学术论文结构、复现,在项目实战中巩固运用
学术论文结构复现
Python论文阅读入门:三遍读法
# 一篇论文的正确打开方式(三遍法):
passes = [
    ("第一遍·5分钟", "标题/摘要/图表 → 判断值不值得读"),
    ("第二遍·30分钟", "弄懂方法主线,跳过所有证明细节"),
    ("第三遍·2小时", "脑内复现:每个公式自己推一遍"),
]
for p, how in passes:
    print(f"{p}:{how}")
print("论文骨架 = 摘要 / 引言 / 方法 / 实验 / 结论")
print("先读图!图表是论文的「预告片」")
运 行 结 果
第一遍·5分钟:标题/摘要/图表 → 判断值不值得读
第二遍·30分钟:弄懂方法主线,跳过所有证明细节
第三遍·2小时:脑内复现:每个公式自己推一遍
论文骨架 = 摘要 / 引言 / 方法 / 实验 / 结论
先读图!图表是论文的「预告片」
🎓毕业项目(4 课时)
🏆 毕业项目开发毕业项目开发
🎯 趣味项目:自主选题AI项目📚 教学目标:掌握完整项目流程、答辩,在项目实战中巩固运用
完整项目流程答辩
Python毕业项目:AI 项目全流程
# 复赛规格的 4 课时毕设节奏:
milestones = [
    ("选题", "真实小痛点 > 假大空题目"),
    ("数据", "先看有多少数据,再定模型野心"),
    ("迭代", "baseline → 单一变量改进 → 记录实验表"),
    ("答辩", "讲清:问题 / 数据 / 方法 / 结果 / 局限"),
]
for m, tip in milestones:
    print(f"{m}:{tip}")
print("答辩金句:『我的方法 A 比基线提升 6.2%,'
 '但在 XX 场景仍有局限,未来可以……』")
运 行 结 果
选题:真实小痛点 > 假大空题目
数据:先看有多少数据,再定模型野心
迭代:baseline → 单一变量改进 → 记录实验表
答辩:讲清:问题 / 数据 / 方法 / 结果 / 局限
答辩金句:『我的方法 A 比基线提升 6.2%,但在 XX 场景仍有局限,未来可以……』
03

实践应用

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

🏆 期末项目自主选题AI项目

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

💡 验收标准:功能完整可运行、代码结构清晰、能给同学讲明白实现原理。
📊本学期课时一览表(可打印)
课次主题趣味项目知识点
1NOAI复赛精讲1赛题解析比赛流程、评分标准
2NOAI复赛精讲2计算机视觉赛题CV赛题实战
3NOAI复赛精讲3NLP赛题NLP赛题实战
4竞赛技巧调参大作战超参数优化、交叉验证
5模型融合团队上分技巧集成方法、投票
6云端训练使用GPU云平台Colab、Kaggle使用
7代码效率优化让训练更快混合精度、分布式训练概念
8论文阅读入门读一篇经典论文学术论文结构、复现
9-12毕业项目开发自主选题AI项目完整项目流程、答辩
04

总结提升

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

📌知识点体系图
🎯 复赛真题实战
比赛流程评分标准CV赛题实战NLP赛题实战
🛠️ 竞赛工程
超参数优化交叉验证集成方法投票ColabKaggle使用混合精度分布式训练概念
📄 科研入门
学术论文结构复现
🎓 毕业项目
完整项目流程答辩
🔄承上启下

◀ 上一章:五年级 上学期 · CV与NLP双方向

下一章 ▶:六年级 上学期 · 大模型原理与Prompt工程

💪 学完这学期,你将获得

真题实战 + 竞赛工程能力(调参、模型融合、云端 GPU、论文复现),最终完成自主选题的 AI 毕业项目并答辩。

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

05

学习检测

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

易错点 1

调参不做记录

✗ 错误写法
改一下跑一下
# 到底哪个改动有效?
✓ 正确写法
实验记录表:
改动/验证分/日期
💡 为什么:没有记录的调参等于白调,对比实验是唯一真相。
易错点 2

在测试集上调参

✗ 错误写法
对着榜单调参数
# 榜单虚高,盲测翻车
✓ 正确写法
只看验证集
测试集只考一次
💡 为什么:反复用测试集反馈等于泄题,最后成绩会大幅缩水。
易错点 3

Colab 断线没保存

✗ 错误写法
训练3小时,断网清零
✓ 正确写法
先挂载云盘
关键节点 save 检查点
💡 为什么:云端随时会断,检查点每轮都存,重启接着练。
易错点 4

复现直接抄代码

✗ 错误写法
github 下载 → 运行
# 论文看都没看
✓ 正确写法
先读方法章节
再对照代码逐步理解
💡 为什么:复现的目的是学「为什么」,跑通只是副产品。
📋语法速查表
功能写法一句话理解
网格搜索GridSearchCV(model, 参数表)自动试遍所有组合
交叉验证cross_val_score(model, X, y, cv=5)5 折防运气
模型融合VotingClassifier([...])多模型投票
云端训练Colab → 代码 + Drive 数据免费 GPU 白嫖
混合精度with autocast():省显存提速
读论文摘要→图表→方法→结论四步快读法
检查点torch.save(net.state_dict())断点续训保命符
实验记录日期/改动/验证分/备注调参的航海日志
分 层 作 业

练习作业

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

A组·基础任选其一深入完成
  1. 手推 5 折交叉验证:10 条数据怎么划分?
  2. 为自己的模型建一张调参实验记录表。
  3. 读一篇经典论文的摘要和图表,用自己的话复述结论。
B组·提高任选其一深入完成
  1. 完整提交一次复赛真题(CV 或 NLP 方向)。
  2. 三模型融合 vs 单模型,提交榜单分数对比。
  3. 用 Colab 完成一次 GPU 训练并写训练报告。
C组·挑战任选其一深入完成
  1. 自主选题 AI 毕业项目(含数据集、模型、评估)。
  2. 复现一篇经典论文的简化版本。
  3. 制作答辩 PPT 并完成 5 分钟模拟答辩。