本章地图:
- 12.1 从"看懂"到"做出来":实验体系怎么运转
- 12.2 项目怎么选:四个项目,四块不同的肌肉
- 12.3 项目通用流程:五步走,一步都不能跳
- 12.4 零基础工具链:不用从零写算法
- 12.5 四个项目逐个拆解:数据、步骤、产出、评分点
- 12.6 汇报与互评:向甲方交差
先说这一章和前面十一章的关系。前面是"讲课",这一章是"训练"。全书的每一章,都会在这一章被重新用一遍——第一章的翻译三步法是每个项目的起点,第二章的数据是粮食,第三章的模型是心脏,第六章的智能体是 RAG 项目的骨架。这一章不是第十二个新知识点,它是前面十一个知识点的考场。
但有一件事必须提前讲:这一章没有标准答案。 项目做得好不好,不看你抄了多少代码,看你有没有把问题想明白、把数据整明白、把结论说明白。这恰恰是工程里最值钱的三件事。
12.1 从"看懂"到"做出来":实验体系怎么运转
核心知识点
先回答一个你憋了一路的问题:为什么读完了十一本书页,还要单独用一章来"做"?
因为听和做,是两种完全不同的学习。听课时你觉得自己懂了——老师讲到裂缝识别的 CNN,你点头,逻辑通顺。可让你自己把一张照片变成"有裂缝/没裂缝"的结论,你会发现:数据从哪来?模型怎么训练?怎么知道它行不行?每一步都是坑。听懂是别人把路走给你看,做出来是你自己把路走一遍。
这一章的学习体系分两层,用一个比喻说清楚:
第一层:基础实验——健身房里的器械。 健身房每件器械只练一块肌肉:卧推练胸,深蹲练腿。实验也一样,每个实验只练一个技能点:实验 12-1 练"跑通环境",实验 12-4 练"训练第一个分类器",实验 12-9 练"提示工程"。肌肉就是这么一块一块长出来的。基础实验一共十个,按顺序做,每个 30 分钟到 2 小时,难度用★标出,可以按基础跳着做,但别全跳。
第二层:综合项目——毕业设计预演。 健身房练得再多,你也得打一场完整的比赛才知道自己行不行。综合项目就是那场比赛:3-4 人一组,从四个题目里选一个,用四周走完"问题定义→数据→模型→决策→汇报"全流程,最后向全班汇报。它不考你单块肌肉,考你全身协调,分量相当于一次缩小版的毕业设计。这套"实验编号 + 星级难度"的编排参考了参考书《AI Agent 实战营》:小步快跑,做完一个打一个勾,打勾的快感是坚持学下去最好的燃料。
十个基础实验的清单如下:
| 编号 | 实验内容 | 练什么 | 难度 |
|---|---|---|---|
| 实验12-1 | 环境热身:跑通第一个代码块 | 认识 Python 和 notebook | ★ |
| 实验12-2 | 数据体检:读表格、查缺失、看分布 | pandas 数据操作 | ★ |
| 实验12-3 | 画图说话:三张图讲清一个数据集 | matplotlib 可视化 | ★ |
| 实验12-4 | 第一个分类器:裂缝 / 非裂缝 | sklearn 分类流程 | ★★ |
| 实验12-5 | 第一个回归器:混凝土强度预测 | sklearn 回归流程 | ★★ |
| 实验12-6 | 混淆矩阵:看懂模型错在哪 | 模型评估 | ★★ |
| 实验12-7 | 迁移学习:用现成模型做图像分类 | 深度学习初体验 | ★★★ |
| 实验12-8 | 时序异常:监测数据的滑动窗口 | 时间序列处理 | ★★★ |
| 实验12-9 | 提示工程与 RAG 初体验 | 大模型应用 | ★★★ |
| 实验12-10 | 智能体工作流:查规范→出报告 | Agent 编排 | ★★★★ |
再交代三句大白话,帮你看清体系的脾气:第一,实验是个人作业,项目是小组作业;第二,实验的产出是"跑通了",项目的产出是"讲清了"——讲不清就是没做完;第三,所有东西都能在四周内完成,前提是别攒到最后一周。 每周推进一小步,胜过最后通宵一整夜。
专业解读
为什么"动手做"对学 AI 特别重要?因为有个反直觉的事实:AI 是唯一一种"看起来懂了就以为会了"的学科。 你学材料力学,公式推不出来就是不会,心里有数。但学 AI,看别人跑通一个模型,你会产生错觉:"这不就是几行代码吗?我也会。"直到自己上手,才发现第一行 import 就报错。这种错觉叫"观看者偏差"——看魔术觉得简单,是因为你没看见魔术师练了一万遍。
学习留存率的研究也支持这个判断:只听讲,两周后大约记住 5%;听讲加阅读,能到 10%;亲自动手做,能到 75%。同样的两小时,听课和动手,收获差十五倍。 听和做是配套的:前面的十一章负责"装货",这一章负责"卸货"。
再把这一章的核心比喻串一遍,记不住细节,记住这四个就够了:数据是练习册(题做多了,套路自然熟);模型是解题套路(套路可以拿来就用,但你要知道什么题配什么套路);实验是健身房器械(单项训练,枯燥但见效快);汇报是向甲方交差(做得再好,说不清楚,等于没做)。
最后一个问题:这一章会不会难到零基础的同学做不下去?我的判断是:不会,但有两个真实的困难。 第一个是环境——装 Python、装库、第一次跑通程序,我们用 12.4 的"工具链入门"拆掉它;第二个是"不知道从哪下手",我们用 12.3 的"五步流程"给你脚手架。难点都替你踩过了,按图索骥就行。
土木案例
讲一个翻转时刻(教学示意)。某高校带学生做隧道围岩识别项目时,有位大三学生(就是第一章提过的那个数千张岩石图的项目)。他上课认真,笔记工整,但一直处于"看得懂、做不出"的状态。转折点在一次组会:带他的研究生让他把新拍的岩石照片,用现成的预训练卷积神经网络模型跑一遍分类。
他花了一个下午装环境、调代码,第一版准确率只有 62%(示意)——比随机猜高不了多少。他找带他的研究生,对方只问了一句:"你看看,错得最多的那几类,是不是碎石和土夹石?"他回去一看,果然是;再一查,训练数据里这两类本来就少。那一刻他懂了:模型不会骗你,数据会告诉你一切。 后来他把这个发现写进汇报,评委当场表扬"这个问题问得很专业"。
这个故事有三个要点:他是从"跑通别人的代码"开始的,零基础完全可以这样起步;真正让他成长的不是代码跑通,而是"结果不对之后他怎么查、怎么想"——动手的价值在纠错,不在成功;他汇报时讲得最好的,是"数据不平衡"这个发现——评委想听的从来不是"我们很厉害",而是"我们真的搞懂了问题"。
再讲一个反面案例。另一个班有同学做"沉降预测",为了显得高级,一上来就上了 LSTM。代码是网上抄的,跑了三天没跑通。答辩时老师问:"你的数据一共多少个点?为什么用 LSTM?有没有先试试最简单的线性回归?"他答不上来。不是 LSTM 不对,是他根本不知道自己为什么用它。 工具越高级,你越要能回答"为什么是它"。
本节小结
这一章是全书的能力转化站:十个基础实验练单项技能,四个综合项目做全身协调,实验是健身房器械,项目是毕业设计预演。动手的价值在于纠错。记住四个比喻:数据是练习册,模型是解题套路,实验是器械,汇报是向甲方交差。
课堂思考题
- 用你自己的话解释:为什么"看懂了"和"做出来了"之间隔着一道墙?墙是什么?
- 对照十个基础实验清单,给自己现在的水平打星:哪些实验可以直接跳,哪些必须老实做?
- 你觉得"汇报"为什么值得占这一章这么大的篇幅?工程里"说清楚"和"做出来"是什么关系?
12.2 项目怎么选:四个项目,四块不同的肌肉
核心知识点
综合项目四选一。题目不是随便定的——四个项目,正好对应 SUDA 环上四个不同的环节。 还记得第一章那张贯穿全书的 SUDA 环吗?感知(Sensing)、理解(Understanding)、决策(Decision)、执行(Action)。前十一章你在地图上"看"了无数次,这一次,你要亲自站到其中一个格子里。
项目 A:裂缝图像分类。 给一批混凝土表面照片,训练模型判断"有没有裂缝",进一步判断裂缝类型。这是分类任务,站在 SUDA 环的理解环节。它和第四章的 CNN、第七章的病害检测一脉相承。
项目 B:基坑沉降预测。 给定基坑沉降监测历史,预测未来几天的沉降量,并给出"要不要预警"的建议。这是回归任务,站在理解 + 决策之间。它和第三章的回归、第八章的施工安全预测一脉相承。
项目 C:结构健康监测(SHM)异常检测。 给一段结构振动或应变的监测时序,找出其中"不对劲"的时段——可能是传感器故障,可能是荷载异常,可能是损伤征兆。这是异常检测任务,站在感知 + 理解环节。它和第九章的 SHM 一脉相承。
项目 D:规范条文 RAG 问答。 把一本规范(比如混凝土结构设计规范、桥梁养护规范)喂给大模型,做一个能回答"这条规定是什么、出处在哪里"的问答系统。这是决策支持任务,站在决策环节。它和第五章的 RAG、第六章的 Agent 一脉相承。
四个项目与 SUDA 环的映射关系见图 12-3(整套项目流程见图 12-2):
| 项目 | 任务类型 | SUDA 环节 | 核心技术 | 相对难度 |
|---|---|---|---|---|
| A 裂缝图像分类 | 分类 | 理解 | CNN / 迁移学习 | ★★ |
| B 基坑沉降预测 | 回归 | 理解 + 决策 | 回归模型 / 时序预测 | ★★ |
| C SHM 异常检测 | 异常检测 | 感知 + 理解 | 滑动窗口 / 统计 + 机器学习 | ★★★ |
| D 规范条文 RAG 问答 | 问答检索 | 决策 | 向量库 + 大模型 API | ★★★ |
为什么是这四个题目? 因为它们正好覆盖 AI 在土木里最常干的四件事:看图、预测、监测、问答。你以后无论去设计院、施工企业、检测机构还是运维单位,干的活逃不出这四样。选一个,就等于提前三年体验你未来的岗位。
专业解读
四选一,怎么选?给你三条实在的标准。
第一条:看你想练哪块肌肉。 想走视觉方向(检测、机器人)?选 A,练图像处理;想走岩土、施工方向?选 B,练数据整理和回归建模;想走监测、运维方向?选 C,练传感器和时序分析;想走智能建造平台方向?选 D,练大模型应用——目前市场上最稀缺的技能。一句话:项目不是任务,是简历。 你汇报时讲的那个项目,就是你面试时最能讲的经历。
第二条:看你的队伍。 组里最好有人擅长数据、有人擅长表达、有人愿意啃文档。没人碰过 Python,选 A 或 B(入门更顺);有人常用大模型工具,选 D 很占便宜;有竞赛经验、愿意折腾环境的,选 C 更有挑战。选项目不是选"最难的",是选"最适合你们组现在水平的"。
第三条:看你们能拿到什么数据。 项目能不能做下去,一半取决于数据。A 有现成的公开裂缝数据集(12.5 会给你具体名字);B 可以自己按沉降规律生成合成数据;C 团队/实验室积累的实测监测数据(可向导师申请,需脱敏)或公开数据都能用;D 最麻烦的是规范文本,但公开规范 PDF 不难找。判断标准很简单:开题那天,你们组手里必须已经握着一份能读进程序的数据。没有数据就开题,等于没带粮草就出征。
再泼一盆冷水,说一个前几届反复出现的坑:贪大求全。 有的组想"既有裂缝分类又做沉降预测还要加个问答系统",结果四周过去,哪个都没做完。记住综合项目的第一原则是"砍":一个项目,只回答一个问题,只做一条主线。 做得深,比做得多,得分高得多。
土木案例
先讲正面案例。上一届有个组选了项目 D(RAG 问答),组里两个同学完全没学过编程,但他们有一个别人没有的优势:一个同学在工地实习过,知道工程师查规范的真实场景——"这个梁的钢筋保护层厚度,规范怎么说的?"他们把这句"人话"变成系统的第一个演示问题。汇报现场,老师随口问了一个规范条文,系统三秒给出答案,还标出了出处页码。全场鼓掌。
这个案例告诉你两件事:第一,项目的价值不在技术多深,在问题多真——他们的问题来自真实工地;第二,零基础完全能做 RAG 项目——它的核心工作量在"准备规范文本"和"设计问答逻辑",这两件事跟编程关系不大,跟工程素养关系很大。
再讲反面案例。另一个组选了项目 A(裂缝分类),数据是从网上下载的现成数据集,模型用的是教程里的迁移学习模板,一切顺利得不像话——顺利到他们自己都心虚。答辩时老师问:"你这个数据集的裂缝照片是在什么光照条件下拍的?换到夜间、雨天,你的模型还行吗?"组员沉默了。他们从头到尾没有看过自己数据集的哪怕一张原图。 数据是网上来的,他们只是"用"了,没有"懂"它。
两个案例合起来,就是 12.3 五步流程存在的理由:项目翻车,从来不是翻在模型,而是翻在问题没想清、数据没看透、结论说不圆。
本节小结
四个项目对应 SUDA 环四个环节:裂缝分类站"理解",沉降预测站"理解+决策",SHM 异常检测站"感知+理解",RAG 问答站"决策"。选项目看三条:练哪块肌肉、队伍什么水平、手里有没有数据。第一原则是"砍"——一个项目只回答一个问题。
课堂思考题
- 用第一章的"翻译三步法"(数据/输出/评判)分别拆解四个项目,看看每个项目的"评判"分别是什么。
- 如果你组队做项目,你会选哪个?给出三条理由,其中至少一条和你的职业设想有关。
- 为什么说"选项目不是选最难的,是选最适合的"?"贪大求全"的代价具体是什么?
12.3 项目通用流程:五步走,一步都不能跳
核心知识点
不管选哪个项目,流程是同一个。这一节给你一张脚手架,五步:问题定义 → 数据 → 模型 → 决策 → 汇报。
第 1 步:问题定义。 这是第一章"翻译三步法"的实战版。开题那天,你们组必须能回答三个问题:我们有什么数据?我们想要什么输出?谁来评判好坏、怎么算错?写不出一句话的问题定义,后面四步全是白干。 比如项目 B,问题定义不是"预测沉降",而是"根据前 30 天的沉降监测数据,预测未来 7 天每天的沉降量,当预测值超过预警阈值时给出预警建议"——数据、输出、评判全在里面了。
第 2 步:数据。 第二章讲过:数据是 AI 的粮食。这一步干四件事:拿到数据、看数据(画图、统计、查缺失)、清洗数据、划分数据(训练/验证/测试集)。记住一条铁律:测试集在最终评估前,谁都不许碰。 后面那个"数据泄漏"的坑,就是违反这条铁律的下场。
第 3 步:模型。 第三章讲过:先跑通基线,再谈改进。基线(baseline)就是最简单的现成模型——分类用逻辑回归,回归用线性回归,异常检测用均值±3σ,问答先直接用大模型不加 RAG。基线跑通,你就有了"及格分";然后一步步换更好的模型,每一步都要说清"为什么换、换来强在哪"。零基础怎么办?12.4 告诉你:你只需要会调用现成库,不需要从零写算法。
第 4 步:决策。 这是本书和纯 AI 课最大的区别:模型输出的是数字,工程要的是决定。 预测沉降 3.2 毫米(示意),模型的任务到此为止;但"3.2 毫米意味着什么、要不要预警、谁来看这个数字"——这是工程决策,必须由人来定。你的项目要产出"决策建议":把模型输出翻译成工程师能用的语言("未来三天沉降速率超每天 0.5 毫米,建议加密监测"),并说明边界("模型基于晴天工况,暴雨期间不可靠")。
第 5 步:汇报。 向甲方交差。12.6 专门讲,这里只提醒一句:汇报不是项目做完后的收尾,它从开题第一天就在准备。 每做一步,都留一张图、一段话,最后拼起来就是汇报。
这五步不是直线,是螺旋:第 4 步发现数据不够(比如缺降雨数据),就回到第 2 步补数据;模型效果差,先回第 2 步看数据,再回第 3 步换模型。虚线回路,是这五步图里最重要的一条线。
| 步骤 | 做什么 | 产出物 | 常见坑 |
|---|---|---|---|
| 1 问题定义 | 翻译三步法写清问题 | 一句话问题定义 | 问题模糊,什么都想干 |
| 2 数据 | 获取/查看/清洗/划分 | 干净数据集 + 3 张图 | 没看原数据;测试集泄漏 |
| 3 模型 | 先基线后改进 | 模型 + 评估指标 | 一上来就上复杂模型 |
| 4 决策 | 输出翻译成工程语言 | 决策建议 + 边界说明 | 只有数字,没有建议 |
| 5 汇报 | 讲清来龙去脉 | 10 分钟汇报 + PPT | 念 PPT;只报喜不报忧 |
专业解读
为什么顺序不能乱?因为后面的每一步都在替前面的步骤还债。 问题定义不清楚,数据阶段就不知道收集什么;数据没看透,模型阶段就会被"莫名其妙的坏结果"卡三天;模型没评估扎实,决策阶段每句话都是悬空的。前几届最常见的死法,是跳过第 1 步直接找模型——"听说 LSTM 很厉害,我们用 LSTM 吧"。你连问题都没写清,凭什么选工具?选工具的前提是先翻译问题,这是第一章的老话,这一章的老实践。
再给你一张四周时间表,照着走,不慌:
| 周次 | 任务 | 产出 | 关键提醒 |
|---|---|---|---|
| 第 1 周 | 组队、选题、问题定义、数据到位 | 开题报告(半页纸) | 数据没到位,别急着写代码 |
| 第 2 周 | 数据清洗 + 基线模型跑通 | 3 张数据图 + 基线结果 | 基线及格,后面才敢谈优化 |
| 第 3 周 | 模型改进 + 决策建议 | 最终模型 + 评估对比 | 留两天给"结果不对"的排查 |
| 第 4 周 | 汇报准备 + 互评 | 10 分钟汇报 + 一页总结 | 至少彩排两遍,卡着表练 |
这张表最值钱的一行是第 2 周:"基线及格,后面才敢谈优化。" 无数组的崩溃,都是从"第 3 周还在调环境"开始的——前面欠的债,后面加倍还。四周时间,每天投入一小时,比周末突击十小时强十倍——建模卡壳时需要"隔一夜的潜意识",突击的人没有这个缓冲,一卡壳就崩。
最后回答一个很多人想问又不敢问的问题:我们组的模型效果很差,是不是项目就失败了? 不是。评分标准里"模型效果"只占一部分(12.6 的评分表你会看到)。评委更看重的是:你们知不知道模型为什么差?有没有分析原因?有没有尝试改进?把"模型差的原因"分析清楚,本身就是合格的工程成果。 工程里没有"失败的结果",只有"没分析的结果"。
土木案例
正面案例:上一届做项目 B(沉降预测)的一组,第一周就把问题定义写成了上面那句话的样子,还画了一张"数据流图"贴在群里。第二周基线用线性回归,预测误差约 12%(示意);第三周试随机森林,误差降到 8%(示意);又试带时间特征的线性模型,误差 7.5%(示意)。最后汇报时用一张对比表,结论是"对这个数据规模,复杂模型提升有限,建议用可解释性更好的线性模型"。评委评价很高——不是因为他们准确率最高,而是他们用最朴素的对比,得出了最诚实的结论。
反面案例:另一个组做项目 C(SHM 异常检测),模型"准确率 100%"(示意),组员们很高兴。彩排时助教多问了一句:"训练集和测试集怎么划分的?"一查,傻眼了:他们先对整个时间序列做了标准化,再划分训练测试——标准化用了全序列的均值和方差,等于把"未来"的信息提前泄露给了"过去"。 测试集当然"预测"得完美。这就是数据泄漏的实战版。教训有两条:任何预处理都要在划分之后再算;"好得离谱"的结果,先怀疑自己,别先庆祝。
本节小结
五步流程是每个项目的骨架:问题定义用翻译三步法写清,数据要拿到、看懂、清洗、划分,模型先基线后改进,决策把数字翻译成工程语言,汇报贯穿全程。五步是螺旋不是直线,随时可以回去补课。每周推进一小步,胜过最后通宵一整夜。
课堂思考题
- 为什么"问题定义"必须用一句话写清?写不清的代价具体发生在哪个环节?
- 数据泄漏为什么可怕?除了"先标准化后划分",你还能想到哪些常见的数据泄漏来源?
- 你组的模型效果差,但你把原因分析得很清楚——为什么这仍然算合格的工程成果?
12.4 零基础工具链:不用从零写算法
核心知识点
先说一句让零基础同学安心的话:这一章,你不需要从零写算法,就像你开车不需要会造发动机。
你需要的,是一条"够用就好"的工具链,一共六层:
第 1 层:环境——Google Colab 或 Anaconda。 二选一。强烈推荐 Google Colab:浏览器打开就能用,不用安装任何东西,免费,还自带 GPU。 它是这一章的"默认健身房"。网络不方便就用 Anaconda 在本地装一个 Jupyter notebook。环境是第一个拦路虎,但照着教程做一遍就成了。
第 2 层:语言——Python。 你不需要"学会"Python,只需要"会读会改":能看懂变量、循环、函数这三样,能改数字、改路径、改参数。这一章用到的 Python 全部加起来不超过 100 行,而且绝大多数是"填空式"的——模板给你,你填数据路径和参数。记住:你要的不是编程能力,是"能跑通别人代码"的能力。
第 3 层:数据——pandas 和 numpy。 pandas 管表格(读 Excel、CSV、筛选、统计),numpy 管数值计算。你只需要会四招:读数据、看前几行、看统计描述、处理缺失值。就这四招,够你做完所有项目的数据准备。
第 4 层:画图——matplotlib。 数据要"看见"才算懂。matplotlib 画折线、散点、直方图,每张图五行代码以内。本书所有配图都是用它画的,你项目汇报里的图也用它。
第 5 层:模型——scikit-learn(sklearn)。 这是零基础最大的福利:世界上最好的机器学习库之一,免费、中文教程遍地。 逻辑回归、线性回归、随机森林,全是几行代码调用现成实现。你的"第一个分类器"(实验 12-4)和"第一个回归器"(实验 12-5)用的就是它。想深入视觉的组,再加 PyTorch 或直接用预训练模型做迁移学习。
第 6 层:大模型——API + 向量库。 做项目 D(RAG 问答)的组用到。调用大模型 API,配合向量数据库做检索增强。这一层更不需要你写算法——你需要的是"把规范文本整理好、把提示词写好",这恰恰是土木学生的长项。
notebook 是什么? 一句话:会说话的草稿纸。它把代码和说明文字写在同一个文档里,一段代码一个格子,跑完立即出结果。你的过程记录、汇报素材、给评委看的"证据链"都住在里面。从第一节课开始,就养成"每做一步,留一段文字、一张图"的习惯——这是汇报阶段最值钱的习惯。
专业解读
零基础的同学,心里通常藏着三个问题,一个个答。
第一个问题:我真的能行吗? 能。理由有三:第一,这一章的工具全是"填空式"的,你要做的不是发明,是模仿;第二,每个实验都有现成模板,你先跑通、再改参数、最后才谈理解——先跑通,后理解,是零基础学编程唯一可行的顺序,先求理解再动手的人,大多卡死在第 2 天;第三,你身边有一个随叫随到的助教——大模型。
第二个问题:怎么用 AI 帮自己学? 把大模型当编程助教,但要会问。坏的问法:"帮我写个裂缝分类代码"——它给你一堆代码,你更看不懂。好的问法:"我是一名土木专业大二学生,第一次用 Python,请给我一段读 CSV 文件的代码,并逐行解释每行在干什么。数据长这样:……"让 AI 写代码可以,但你必须能讲清楚每一行在干什么——讲不清,说明这段代码还不是你的。 这条"抄袭红线"适用于所有环节:代码可以抄,理解不能抄。
第三个问题:"不用从零写算法"到底是什么意思? 三层意思。第一层,用 sklearn 的现成模型——几十行代码训练一个分类器,底层数学不用你碰;第二层,用预训练模型——别人已经用几百万张图训练好了,你只需要拿它的"眼睛"来看你的裂缝照片;第三层,用大模型 API——别人已经训练好了几千亿参数的模型,你只需要会"问"。这三层一层比一层省力,一层比一层接近"工程应用"。 你用的有限元软件,底层求解器也不是你写的,但你用它做了无数合格的工程分析——道理一模一样。
再提醒一个方向性的事:别把时间花在"调参的玄学"上。 初学者最容易沉迷"把准确率从 93% 调到 94%"(示意),一个参数试一晚上。正确的投入顺序是:数据有没有问题(先检查)→ 基线跑没跑通(再确认)→ 结果能不能解释(最重要)→ 最后才是调参。准确率 93% 还是 94%(示意),评委不在乎;你能不能解释为什么是 93%,评委很在乎。
土木案例
正面案例:某高校学生的迁移学习实践(教学示意)。一位本科生做隧道围岩识别时,没有从零训练任何网络——用的是 ImageNet 预训练的 EfficientNet 系列模型,微调最后几层,准确率就达到了九成左右的量级,最后以模型文件形式交付给合作单位。这位学生的全部工作,就是"站在巨人肩膀上":下载预训练模型、准备数据、微调、评估。 他不需要会推导反向传播,他需要会的是数据组织和工程判断——这两件事,土木学生训练了四年。
反面案例:有同学做实验 12-4 时,抄了一段"神代码",跑出 100% 准确率(示意),高兴地截图发群里。老师看了一眼代码,问:"你的数据标准化,为什么在划分训练测试之前做的?"他愣住了。抄代码不丢人,抄了不懂才丢人。 工具链解决的是"能不能跑",理解解决的是"跑对了没有"——两者缺一不可。
本节小结
零基础工具链六层:Colab 环境、Python 语言、pandas/numpy 数据、matplotlib 画图、sklearn 模型、大模型 API。全程"填空式"学习,先跑通后理解,让大模型当助教但必须讲清每行代码。不用从零写算法有三层含义:用现成模型、用预训练模型、用大模型 API——工程本来就是站在别人肩膀上组装。
课堂思考题
- 为什么"先跑通,后理解"是零基础学编程唯一可行的顺序?反过来会怎样?
- 用大模型当编程助教时,为什么"逐行解释代码"比"直接要代码"更有效?
- 迁移学习为什么能让你一个本科生做出约 90% 准确率的模型?"站在巨人肩膀上"在工程里还体现在哪些地方?
12.5 四个项目逐个拆解:数据、步骤、产出、评分点
核心知识点
这一节是本章的"操作手册"。四个项目,每个给你四样东西:数据来源建议(三条路:公开数据集 / 合成数据 / 可申请的真实工程数据)、步骤清单(照着走)、预期产出(交什么)、评分点(怎么得分)。 先看总览表:
| 项目 | 首选数据来源 | 核心模型 | 预期产出 | 难度 |
|---|---|---|---|---|
| A 裂缝分类 | 公开数据集(SDNET2018 等) | 迁移学习 CNN | 分类报告 + 混淆矩阵 | ★★ |
| B 沉降预测 | 合成数据 / 公开监测数据 | 线性回归 → 随机森林 | 预测曲线 + 预警规则 | ★★ |
| C SHM 异常检测 | 实验室实测数据 / 公开 SHM 数据 | 滑动窗口 + 统计模型 | 异常标注 + 误报分析 | ★★★ |
| D RAG 问答 | 公开规范文本 | 向量库 + 大模型 API | 问答 demo + 引用溯源 | ★★★ |
项目 A:裂缝图像分类(对应 SUDA 环"理解")
项目定位:最"直给"的项目。输入是图片,输出是"有裂缝 / 没裂缝"(可选:裂缝类型)。练的是图像数据组织、迁移学习、模型评估,是四个项目里和"计算机视觉"最亲的一个。
数据来源建议:公开数据集首选 SDNET2018(美国犹他州立大学发布,学术界常用);GitHub 上还有 Crack500、DeepCrack 等仓库,搜"concrete crack dataset"即可。团队/实验室如有积累的隧道掌子面围岩照片(教学示意),也可做"岩石类型分类"变体。也可以自己拍:手机拍校园路面、墙体裂缝,正样本够 100 张就能起步——注意光照、角度一致,否则模型会"学偏"。
步骤清单:
- 下载数据集,图片按"裂缝/非裂缝"分两个文件夹(文件夹名就是标签)。
- 读图、统一尺寸(如 224×224),统计两类数量——先解决类别不平衡。
- 划分训练/验证/测试集(7:2:1)。
- 跑基线:预训练模型迁移学习,只训练最后几层。
- 评估:准确率、精确率、召回率、混淆矩阵——重点看"裂缝被漏掉"的比例(漏检代价远大于误报)。
- 可视化:挑几张判错的图,分析原因(光线暗?裂缝太细?背景太乱?)。
- 写决策建议:这个模型在什么条件下可用、什么条件下不可用。
预期产出:一个 notebook(含全部代码和过程记录)、3 张以上数据/结果图、一页纸的项目总结(问题定义 + 方法 + 结果 + 决策建议)。
评分点:问题定义用翻译三步法写清(15 分);数据看过原图、处理了不平衡(20 分);基线跑通、有对比(20 分);混淆矩阵与错误分析到位(20 分);决策建议有边界说明(15 分);汇报表达(10 分)。
项目 B:基坑沉降预测(对应 SUDA 环"理解 + 决策")
项目定位:最"工程"的项目。输入是监测历史,输出是未来沉降量和预警建议。练的是数据整理、时序特征构造、回归建模、决策翻译。
数据来源建议:合成数据(首选,最可控):按沉降经验规律(如对数曲线 s = a + b·ln(t))生成 60-90 天逐日沉降序列,加噪声,再人为嵌入 1-2 次"异常突变"模拟超载或降雨。合成数据的好处是你们完全知道"真答案",模型好坏一目了然。 公开数据:搜"基坑沉降监测数据",部分论文开源了实测数据;国标附录也有监测项目示例。团队/实验室如有合作基坑实测数据也可申请(需脱敏)。
步骤清单:
- 生成/获取数据,画沉降-时间曲线——先肉眼看趋势。
- 构造特征:时间序号、累计时间、前 N 天沉降均值/速率、相邻日差值等。
- 划分训练/测试:按时间顺序切,不能随机切——时序数据随机切就是数据泄漏。
- 基线:线性回归;改进:随机森林或带时间特征的模型;对比误差(MAE/RMSE)。
- 定义预警规则:如"预测未来 7 天沉降量超过累计沉降控制值的 80% 且速率超每天 0.5 毫米,则建议加密监测"(参数为教学示意)。
- 回测:用历史数据模拟"如果当时用了这个规则,会不会提前预警"——决策环节的加分项。
- 写决策建议:阈值怎么定、误报和漏报怎么权衡。
预期产出:notebook、沉降曲线与预测曲线对比图、模型对比表、一页纸的预警规则说明。
评分点:问题定义包含"数据、输出、评判"(15 分);数据可视化、时序划分正确(20 分);基线→改进的对比过程(20 分);预警规则明确、边界说明(25 分,重头);汇报表达(10 分);加分项:回测验证(10 分)。
项目 C:SHM 异常检测(对应 SUDA 环"感知 + 理解")
项目定位:最"监测"的项目。输入是振动/应变时序,输出是"哪个时段异常"。练的是时序数据处理、滑动窗口、统计与机器学习结合——对应第九章 SHM 体系,是四个项目里最像"科研"的。
数据来源建议:实验室实测数据(首选推荐):团队/实验室积累的压电阻抗(PZT-EMI)监测数据、振动监测数据,真实、有故事,"数据来自实测"本身就是亮点。公开数据:搜 "SHM benchmark dataset"、"structural health monitoring dataset",Kaggle 上也有。合成数据(可控):生成正弦波 + 噪声模拟正常振动,在某段嵌入幅值突变、频率漂移或尖峰模拟异常——你们自己知道异常在哪,天然有标注。
步骤清单:
- 读入时序,画全时段曲线,肉眼找"异常段"。
- 滑动窗口切分:长序列切成一段段(如每段 100 点),每段提取特征(均值、方差、峰值、频率主峰等)。
- 训练正常段模型:用正常段特征拟合统计模型(均值±3σ 判异常)或孤立森林等无监督模型。
- 检测:对每个窗口打分,标出"异常窗口",画成时间轴标注图。
- 评估:与真实异常段对比,算检出率和误报率——误报多不多?漏检在哪?
- 分析:把异常段和正常段对比画出来,说明"为什么被判为异常"(幅值变大?频率变了?)。
- 写决策建议:这类异常可能对应什么工程含义(传感器故障 vs 荷载异常 vs 损伤征兆),系统应该报警还是转人工复核。
预期产出:notebook、异常标注时间轴图、检出率/误报率指标、异常成因分析、一页纸的"报警策略"说明。
评分点:问题定义清晰(15 分);时序处理与窗口/特征构造合理(20 分);检测方法有依据(20 分);检出率与误报率权衡分析(20 分);异常与工程含义的关联分析(15 分);汇报表达(10 分)。
项目 D:规范条文 RAG 问答(对应 SUDA 环"决策")
项目定位:最"前沿"的项目。输入是规范文档,输出是一个能回答规范问题、还能指出出处的问答系统。练的是文档处理、向量检索、大模型调用、提示词设计——对应第五章 RAG 和第六章 Agent,最接近"智能建造平台"。
数据来源建议:公开规范文本(首选):混凝土结构设计规范(GB 50010)、建筑基坑工程监测技术标准、公路桥梁养护规范(JTG 5120)等——用公开正式版本,规范 PDF 转文本后按章节切分。自行整理问答对:把规范条文改写成"问题-答案"对(如"保护层厚度最小是多少?"),既是数据准备,也是工程训练。团队/实验室如有工程案例教学智能体积累的问答语料(教学示意),可申请使用(需脱敏)。
步骤清单:
- 规范 PDF 转文本,按章节切成若干段落(每段几百字,太长检索不准,太短上下文不全)。
- 给每段编号,存成"文档库"(向量化用现成嵌入模型)。
- 搭检索:用户提问 → 问题向量化 → 在文档库中找最相关的 3-5 段。
- 搭生成:把"找到的段落 + 问题"拼进提示词,让大模型基于段落回答,并要求标注出处段落编号。
- 测试 10-20 个真实问题:规范里直接有答案的(查得准)、需要跨条文推理的(难)、规范里没有的(系统应该诚实说"没有查到"——防幻觉的关键)。
- 边界分析:答错的例子收集起来,分析是检索错了还是生成错了。
- 写决策建议:这个系统适合放什么场景(设计院快速查规范、现场辅助判断),什么场景不能依赖它(涉及责任判定必须人工复核)。
预期产出:notebook(或演示页面)、10 个测试问题的问答记录(含出处)、答错案例分析、一页纸的"可用边界"说明。
评分点:问题定义清晰(15 分);文档切分与检索设计合理(20 分);问答效果与出处标注(20 分);防幻觉与边界分析(25 分,重头);汇报表达(10 分);加分项:做成可演示的交互界面(10 分)。
专业解读
四个项目的数据来源都是三条路:公开、合成、实测。怎么选?一句判断口诀:想要"稳",用公开;想要"可控",用合成;想要"真",用实测。 公开数据省事但你可能不熟,合成数据你完全知道答案但显得"假",实测数据最真实但需要申请和脱敏。大多数组的正解是混搭:主数据用公开或实测,再人为构造 1-2 个"特殊工况"展示你们处理问题的能力——评委最爱看的就是"你们自己给自己挖了坑,又自己填了坑"。
再强调三个贯穿所有项目的坑,每个组都必须自查:
第一,数据泄漏。 时序项目按时间切分,图像项目按"照片"切分(同一面墙的多张照片不能一张进训练一张进测试),预处理必须在划分之后。一句话:让"未来"或"测试"的信息,一刻也不能提前进模型。
第二,只报喜不报忧。 汇报里只有"准确率 95%"(示意),没有"它在夜间照片上会漏检,因为训练数据里夜间照片只占 5%"(示意)。主动交代弱点,是工程汇报的成熟标志。
第三,数据没看就开跑。 打开数据的第一个动作永远是"看":画图、统计、打印前几行。不看的后果,12.2 那个"没看过一张原图"的组已经替你演示过了。
土木案例
某公开项目可作为"对标样本"(教学示意):你们做项目 A 时,可以把它当"业界参考线"对照——问题定义有没有它清晰、数据组织有没有它讲究、评估有没有它严格。有对标,项目就不会跑偏。
再讲一个合成数据的成功用法。上一届做沉降预测的组,除了主数据,还专门构造了一个"暴雨工况":在沉降序列里人为叠加一次加速沉降,测试预警规则能不能提前三天触发。结果触发了,但晚了半天(示意)——他们在汇报里如实讲了,并分析了原因(特征里没有降雨信息),建议"实际应用应接入降雨预报数据"。评委给这个"人为工况 + 诚实复盘"打了高分。 这就是"自己挖坑、自己填坑"的标准示范。
本节小结
四个项目各有数据三选一:公开求稳、合成求可控、实测求真,正解是混搭。A 练迁移学习,B 练回归与预警,C 练时序异常,D 练 RAG 与防幻觉。三个必查的坑:数据泄漏、只报喜不报忧、不看数据就开跑。评分点共同的重心是"问题定义 + 数据功夫 + 决策建议",不是模型炫技。
课堂思考题
- 四个项目中,为什么 B 和 C 的"数据划分"特别容易踩数据泄漏?各是什么形式的泄漏?
- 项目 D 里"规范里没有的答案,系统应该诚实说没有"——为什么这条比"答得准"还重要?
- 给四个项目各想一个"人为挖坑"的变体(如 A 加夜间照片、C 加传感器故障段),并说说这个坑考验什么能力。
12.6 汇报与互评:向甲方交差
核心知识点
项目做完不算完,讲得清楚才算完。 这一节教你怎么"向甲方交差"——你的甲方,就是评委老师和身边的同学。
汇报的黄金结构:10 分钟,五段话,每段 2 分钟。 问题(做了什么、为什么做)→ 数据(长什么样、怎么处理)→ 方法(什么模型、为什么)→ 结果(好在哪、差在哪)→ 决策建议(结论是什么、边界是什么)。这个结构和 12.3 的五步流程一一对应——五步流程做得好,汇报就是把每步的产出物"念出来",不需要另起炉灶。
汇报的三个硬规则:
第一,一页一图。 每页 PPT 只放一张关键图,配三行以内的话。评委最怕一页 6 张图、20 行字,讲的人自己都不知道先看哪。
第二,一个数字讲清效果。 不需要报十个指标,挑一个最能说明问题的:裂缝分类报"漏检率",沉降预测报"未来 7 天平均预测误差",异常检测报"检出率和误报率",RAG 报"20 个测试问题答对 17 个"(示意)。一个数字,配上它的前提条件("在测试集上""在正常工况下"),比十个数字有力量。
第三,一句话讲清建议。 汇报最后必须有"所以呢?"——"这套方法可以用于日常巡检初筛,夜间照片需人工复核"。"所以呢"讲不出来,前面的技术再漂亮,甲方也不买单。
互评规则:汇报当天,每个组派评委给其他组打分(去掉最高最低取平均),打分维度就是下面的评分表。互评不是走过场——你给别人打分的过程,就是拿别人的项目照镜子:你看得出别人哪里没做扎实,回头就知道自己哪里也虚。
项目评分总表(呼应第一章的评价标准——第一章教你"谁来评判好坏",这里就是评判的落地):
| 维度 | 权重 | 评什么 | 满分长什么样 |
|---|---|---|---|
| 问题翻译 | 15% | 是否用翻译三步法写清问题 | 一句话说清数据、输出、评判 |
| 数据功夫 | 20% | 数据是否看懂、处理扎实、划分正确 | 有数据图、有清洗记录、无泄漏 |
| 方法匹配 | 20% | 模型选择是否有依据、有基线对比 | 先基线后改进,每步有理由 |
| 决策建议 | 25% | 结论是否翻译成工程语言、有边界 | 有明确建议 + 适用边界 + 诚实弱点 |
| 表达呈现 | 20% | 10 分钟是否讲清、图是否合格 | 一页一图、一个数字、一句话建议 |
看清楚权重:决策建议 25%,是最大头。 这就是这本书和纯 AI 课的区别——我们评的不是"模型多聪明",是"你能不能把它变成决策"。模型效果差的组别慌:只要你们把"为什么差、边界在哪、建议怎么用"讲透了,决策建议这一项照样拿高分。
专业解读
为什么"汇报"值得单独占一节,还占 20% 的分数?因为在真实工程里,交付物的一半是"让别人听懂"。 你算了一百遍、建了十八版模型,最后业主问"所以呢",你支支吾吾——前面的功夫全白费。设计院里的高工,一半的本事在"讲":讲给业主、施工方、审查专家听。这一章练的汇报,就是你未来职场的第一课。
再回答一个大家心里嘀咕的问题:互评打分,会不会有人乱打? 会,但规则已经防住了:去掉最高最低取平均。更重要的是,互评的本质不是"公平打分",是"互相学习"。 你坐在台下听六个组汇报,等于看了六个版本的"问题定义 → 决策",比你自己闷头做一遍学到的还多。给别人的项目挑刺,是给自己项目补漏的最快方式。
好汇报的三个要素,再提炼一遍:一张图讲清问题,一个数字讲清效果,一句话讲清建议。 做不到这三件事的汇报,多半是没想清楚;能做到的,哪怕模型一般,评委也会给高分。最常见的翻车现场有四种,你对照自查:念 PPT(讲的人成了播音员)、堆术语(听众全程懵)、只报喜(被追问就露馅)、超时(10 分钟讲成 25 分钟,评委的耐心先耗尽)。
最后说一句关于"紧张"的话。上台前紧张是正常的,连高工第一次见业主也紧张。克服紧张的唯一办法,是彩排——至少完整讲两遍,卡着表讲。 第二遍讲完,你就知道哪句话卡壳、哪张图讲不顺,改掉它们。彩排两遍的组和没彩排的组,现场表现是天壤之别,而这个差别和天赋无关,只和练不练有关。
土木案例
正面案例:上一届 RAG 项目组的汇报现场,评委老师临时起意,问了一个不在他们测试列表里的问题:"按现行规范,梁的纵向受力钢筋保护层厚度最小值是多少?"组员当场操作系统,三秒后屏幕上跳出答案,下面跟着出处段落编号。全场安静了一秒,然后鼓掌。这个现场 demo,比他们准备的所有 PPT 都值钱。 事后复盘:能接住随机题,是因为"引用溯源"做进了系统、测试覆盖了常见条文——准备充分的人,才敢接随机题。
反面案例:另一个组汇报沉降预测,PPT 第三页放了一张密密麻麻的误差表格,六行指标,每个小数点后三位。讲的人照着念,台下已经开始看手机。老师打断:"你能不能一句话告诉我,你们这个模型到底行不行?"组员愣住,说"还行吧"。"还行吧"三个字,把前面 8 分钟的努力全冲掉了。 老师点评时说了一句值得所有组记住的话:"工程汇报不是数据展销会,是决策说明会。 你要给的不是数据,是判断。"
本节小结
汇报是向甲方交差:10 分钟五段话对应五步流程,一页一图、一个数字讲清效果、一句话讲清建议。评分表五维度中决策建议占 25%——模型可以平庸,决策建议必须扎实。互评是拿别人的项目照镜子,彩排两遍是克服紧张的唯一办法。工程汇报不是数据展销会,是决策说明会。
课堂思考题
- 为什么评分表里"决策建议"权重最高(25%)?这和第一章"谁来评判好坏"有什么关系?
- 四种翻车现场(念 PPT、堆术语、只报喜、超时)里,你觉得哪种最致命?为什么?
- 如果你是评委,一个组"模型效果一般但弱点交代得很诚实",另一个组"模型效果很好但一问细节就含糊",你给哪个组高分?说出你的评分依据。
本章小结
- 本章是全书的考场:前面十一章装货,这一章卸货;看懂和做出来之间隔着一道墙,动手是唯一的拆墙工具(12.1)。
- 实验是健身房器械,项目是毕业设计预演:十个基础实验练单项技能(<span class='star'>★</span>到<span class='star'><span class='star'><span class='star'>★</span><span class='star'>★</span></span><span class='star'>★</span></span><span class='star'>★</span>),四个综合项目练全身协调(12.1)。
- 四个项目对应 SUDA 环四个环节:裂缝分类站"理解",沉降预测站"理解+决策",SHM 异常检测站"感知+理解",RAG 问答站"决策"——选项目就是选未来的岗位(12.2)。
- 五步流程是项目骨架:问题定义→数据→模型→决策→汇报,是螺旋不是直线;每周推进一小步,胜过最后通宵一整夜(12.3)。
- 零基础不用从零写算法:Colab + pandas + matplotlib + sklearn + 大模型 API,六层工具链全是"填空式";先跑通后理解,代码可以抄、理解不能抄(12.4)。
- 数据三选一:公开求稳、合成求可控、实测求真,正解是混搭;数据泄漏、只报喜不报忧、不看数据就开跑,是三大必查坑(12.5)。
- 汇报是向甲方交差:10 分钟五段话、一页一图、一个数字、一句话建议;工程汇报不是数据展销会,是决策说明会(12.6)。
- 评分表的重心是决策:决策建议占 25%,模型可以平庸,决策必须扎实——这就是 AI 4 Civil 和纯 AI 课的区别(12.6)。
思考题
★ 入门级
- 用一句话向一个没学过本书的同学解释:为什么"动手做"一章要放在全书最后,而不是最前面?
- 十个基础实验中,你打算跳过哪三个、老实做哪三个?给出你的理由。
- 说出四个综合项目各自对应的 SUDA 环节,并各举一个现实中的岗位例子。
- 工具链六层分别是什么?哪一层是你最陌生的、哪一层是你最有把握的?
★★ 应用级
- 你们组打算做项目 B(沉降预测),请用翻译三步法写出你们开题时要交的那句话问题定义。
- 项目 C(SHM 异常检测)中,为什么"误报率"和"检出率"要一起看?只追求检出率会发生什么?
- 数据泄漏有三种常见形态(时序切分错误、预处理先于划分、同源数据跨集合),任选一种,设计一个"演示它有多坑"的小实验。
- 项目 D 的 RAG 系统答错了一个规范问题,你如何判断错在"检索"还是"生成"?写出你的排查步骤。
★★★ 挑战级
- 设计一个你们组的四周甘特图,把 12.3 的时间表细化到"每天做什么、谁负责",并说明你们留了几天"缓冲时间"给意外。
- 互评时你发现另一个组"数据划分有泄漏",但他们的结果"好得离谱"。请写出你作为评委的三条提问,既要让他们意识到问题,又不显得刻薄。
- 综合设计题:假设你要为一家检测机构做一个"裂缝分类 + 报告自动生成"的完整系统(对应项目 A + 第六章 Agent),画出系统架构图,标出每个模块的输入输出、人工复核点、以及哪部分可以复用本章项目 A 的成果。
- 反思题:本章结束后,请回顾你最初"选项目"时的理由,对照你的实际体验,写一段 200 字左右的复盘:哪些判断对了,哪些判断错了,如果重来一次你会怎么选?
拓展阅读
- 《AI Agent 实战营》(bojieli,GitHub 开源)——参考书的实验范式:实验编号 + 星级难度,动手学 AI 的样板编排。
- scikit-learn 官方文档中文版(scikit-learn.org)——实验 12-4 到 12-6 的标准参考。
- Google Colab 官方入门教程(colab.research.google.com)——零配置环境,跟着做一遍就完成实验 12-1。
- SDNET2018 裂缝数据集论文与下载页——项目 A 的首选公开数据,了解真实裂缝数据的构成与局限。
- 住房和城乡建设部《建筑基坑工程监测技术标准》(GB 50497)——项目 B 预警规则设计的规范依据。
参考文献
- 周志华. 机器学习[M]. 北京: 清华大学出版社, 2016.
- Dorafshan S, Thomas R J, Maguire M. SDNET2018: An annotated image dataset for non-contact concrete crack detection using deep convolutional neural networks[J]. Data in Brief, 2018, 21: 1664-1668.
- 中华人民共和国住房和城乡建设部. 建筑基坑工程监测技术标准: GB 50497—2019[S]. 北京: 中国建筑工业出版社, 2019.
- 中华人民共和国交通运输部. 公路桥梁养护规范: JTG 5120—2021[S]. 北京: 人民交通出版社, 2021.
- Vaswani A, et al. Attention is all you need[C]. NeurIPS, 2017.
- Lewis P, et al. Retrieval-augmented generation for knowledge-intensive NLP tasks[C]. NeurIPS, 2020.
- Pedregosa F, et al. Scikit-learn: Machine learning in Python[J]. Journal of Machine Learning Research, 2011, 12: 2825-2830.