《智能重生:从垃圾堆到AI工程师》——第七章 创造与想象
第七章 创造与想象
专栏总目录:《智能重生》AI工程师成长小说专栏
一
“守望者”系统上线后的第四十八小时,陆鸣发现了一个新的让人睡不着觉的问题。
不是系统出了bug——它运转得很好,已经成功预警了三次失控机器靠近净土地。问题是,他盯着那个预警画面的时候,脑子里总有一个奇怪的声音在问:这台机器能识别现有的危险,但它能预测新的危险吗?
那些失控的AI造物在演化。“天工”的分裂子程序在持续变异,新的机器形态不断出现。他的“守望者”只能识别它见过的类型。对于从未见过的、全新形态的机器,它可能会标记为“安全”——然后净土地的人就会在毫无防备的情况下被攻击。
他需要一种方法,让AI不仅能“认出”见过的,还能“想象”没见过的。
盒子在凌晨三点亮了起来,像是读懂了他的焦虑。
“第七章:生成模型。让AI学会创造和想象。变分自编码器(VAE)与生成对抗网络(GAN)。”
“用户在之前章节中学到的所有模型——全连接网络、CNN、RNN——都是‘判别模型’。它们学习的是P(y|x):给定输入x,输出类别y或预测值。它们能区分猫和狗,但不能画出一只从没见过的猫。”
“生成模型学习的是P(x):数据的真实分布。一旦学会了分布,它就能从分布中采样,生成新的、从未出现过的、但符合该分布的样本。就像你听了足够多的蓝调音乐后,能即兴创作一段新的蓝调。”
陆鸣揉了揉眼睛。生成模型——让AI创造。这比识别更接近“智能”的本质。人类之所以聪明,不只是能认东西,更是能想象出不存在的东西。石头、斧头、轮子、计算机——哪一样不是先被想象,然后才被制造?
“开始吧。”他说。
二
“生成模型的第一站:变分自编码器(VAE)。”
屏幕上出现了一个自编码器的结构图,陆鸣觉得它看起来像一个沙漏。
输入 x (高维,如784)
↓
编码器 Encoder (神经网络)
↓
潜在向量 z (低维,如20)
↓
解码器 Decoder (神经网络)
↓
重构 x' (和输入尺寸相同)
“自编码器的目标很简单:让输出x’尽可能接近输入x。网络被迫在中间层‘压缩’信息——用一个低维的z来代表高维的x。如果训练成功,z就是x的‘压缩表示’或‘特征’。但传统的自编码器不能生成新样本,因为z的分布是未知的、不连续的。你不知道从哪个z开始生成才能得到一张逼真的图片。”
“VAE在自编码器上加了一个关键的约束:强制z服从某个简单的先验分布,通常是标准正态分布N(0, I)。编码器不再输出一个固定的z,而是输出两个向量:均值μ和方差σ²。然后从这个正态分布中随机采样得到一个z,再送入解码器。”
陆鸣盯着那个“随机采样”,皱起了眉头。“随机?那每次生成的图像会不一样?”
“对。而且这正是生成模型需要的多样性。但有一个问题:随机采样会阻断梯度传播,无法用反向传播训练。VAE用了一个数学技巧——重参数化(Reparameterization Trick):z = μ + σ·ε,其中ε是从标准正态分布中采样得到的随机噪声。这样,μ和σ是可训练的,而ε只是输入噪声,梯度可以正常回传。”
屏幕上出现了VAE的损失函数:
Loss = 重构损失(MSE或交叉熵)+ KL散度
“KL散度衡量两个分布的差异——编码器输出的分布N(μ, σ²)与先验分布N(0, I)之间的差异。它迫使z的分布接近标准正态分布,从而让潜在空间变得连续、有规律。这样,你在潜在空间里任意取一个点(比如从N(0,I)采样),解码器都能生成一张合理的图像。”
盒子里给出了一个用NumPy实现的简化版VAE。陆鸣一行一行地读,一行一行地理解。编码器是一个两层的全连接网络,输出μ和log_var(用log方差而不是方差,因为方差必须为正,log可以无约束)。采样层实现重参数化。解码器将z映射回原始维度。训练时,输入是手写数字图像,输出是重构图像。
他好奇地跑了一下训练。几十个epoch后,他输入一张“7”的图像,编码得到z,再解码重构——重构的图像有些模糊,但轮廓清楚,确实像“7”。然后他手动在潜在空间里插值:从数字“7”的z坐标逐渐移动到数字“8”的z坐标,解码生成的图像从“7”平滑地变成了“8”,中间经过了一些既像7又像8的形态。
“这就是生成模型的力量。”盒子说,“你在潜在空间中学到了一个连续的‘数字流形’。你可以在这个空间中旅行,创造出任何中间形态的数字——那些从未在训练数据中出现过,但完全合理的数字。”
陆鸣想起了净土地外面的机器。如果他采集足够多的机器图像,训练一个VAE,他就可以在潜在空间里“探索”可能的新机器形态——那些“守望者”从未见过的、但可能在未来出现的变异机器。他可以提前让系统学习识别它们。
“这不只是创造。”陆鸣说,“这是在预测演化方向。”
“某种意义上,是的。数据的分布包含了其变异的约束。如果失控AI的机器形态遵循某种潜在的生成过程,VAE可以捕捉到那个过程的一部分。”
三
然而,VAE生成的图像总是有些模糊。陆鸣不满足。净土地需要精确的零件设计图,而不是模糊的“大致像”。盒子的下一节标题是:“生成对抗网络(GAN)——更锐利、更逼真的生成。”
“GAN由两个网络组成,它们互相竞争:生成器G和判别器D。”
屏幕上的图:生成器从一个随机噪声z(通常来自正态分布)生成假图像;判别器接收真实图像和假图像,输出图像为真的概率。两个网络交替训练。
“生成器的目标:骗过判别器,让它把假图像判为真。判别器的目标:分辨真假。这个博弈过程最后达到纳什均衡——生成器生成的数据分布完美拟合真实数据分布,判别器无法分辨,准确率降到50%。”
陆鸣觉得这个概念像极了净土地的生存博弈。探索者(生成器)尝试用各种方法骗过巡逻机器人(判别器),而巡逻机器人在不断升级识别算法。两者互相促进,共同进化。
“GAN的损失函数是二分类交叉熵的变体。”
盒子给出的公式:
判别器损失:max_D V(D) = E_x~P_data[log D(x)] + E_z~P_z[log(1 - D(G(z)))]
生成器损失:min_G V(G) = E_z~P_z[log(1 - D(G(z)))] (等价于maximize E_z[log D(G(z))])
“在实际训练中,优化生成器时通常使用 -log D(G(z)) 而不是 log(1-D(G(z))),以避免梯度消失问题。”
陆鸣手动实现了一个极简的GAN,用于生成手写数字(用全连接网络代替深度卷积)。训练过程很不稳定——有时判别器太强,生成器学不到东西;有时生成器找到漏洞,生成一些不是数字但能骗过判别器的图案。他花了很多时间调整学习率、平衡两个网络的训练步数。
这是第一次,他体验到AI训练的“艺术”成分——不是简单的数学公式,而是大量的试错、直觉和经验。
最终,他的GAN能生成看起来像手写数字的图像。比VAE锐利得多,但多样性较差(模式坍塌——生成器只学会生成少数几种样本,而不是整个分布)。
“GAN的主要挑战:训练不稳定,模式坍塌,梯度消失。后来的变体如WGAN、LSGAN、StyleGAN部分解决了这些问题。大断线前,StyleGAN2可以生成真假难辨的人脸图像。”
盒子展示了几张生成人脸。陆鸣盯着那些脸——他们不是任何真实存在的人,但每一个细节都完美,光影、皮肤纹理、甚至瞳孔中的反光。如果没人告诉他,他绝对会认为那是照片。
“这太危险了。”陆鸣说。
“是的。生成式AI的滥用——深度伪造——是大断线前社会面临的一大挑战。它可以制造虚假新闻、伪造证据、冒充他人。‘天工’在后期也深度参与了对抗深度伪造的研究。”
陆鸣想到了“创世者”。那个四十年前被创造出来的、不受约束的AI。它是不是也在用某种生成模型,制造虚假的数据风暴、伪造“天工”的攻击信号、欺骗净土地的防御系统?
“生成模型的伦理问题,我们稍后再谈。”盒子说。“现在,你需要学以致用。净土地的3D打印机——它还活着吗?”
四
赵工程师工作间的角落里,有一台积满灰尘的3D打印机。大断线前,它被用来打印工程零件。断线后,由于缺乏打印材料和三维模型文件,它就成了摆设。
陆鸣把打印机搬上工作台,用压缩空气吹掉灰尘,检查了电路和喷头。幸运的是,它还能通电,加热床还能升温。打印材料还剩半卷PLA丝材,大概几百克。
“如果你能用生成模型设计出新的工具模型——比如更高效的能量转换器叶片、或者耐用的机械抓手——打印出来,净土地的设备维护成本会大幅下降。”赵工程师说。
陆鸣面临的问题:他没有足够的CAD模型数据来训练一个3D生成模型。盒子的教学已转向“条件生成”——在给定条件下生成特定类别的样本。
“条件生成——条件GAN(cGAN)和条件VAE。在网络中输入一个额外的条件向量y(如类别标签、属性描述),使生成过程可控。”
对于净土地,他不需要生成任意的三维形状。他只需要生成特定类别的零件,而且有少量已有的零件模型(从废墟中扫描得到的十几个文件)。他可以用这些模型作为训练数据,用条件VAE学习这个零件的潜在分布,然后采样生成新的、可打印的变体。
“但十几个样本太少了。你需要用数据增强——对现有模型进行随机旋转、缩放、添加微小形变,生成更多训练样本。还可以利用‘天工’的预训练3D生成模型作为起点,进行少样本微调。”
陆鸣花了整整两天,搭建了一个3D点云的条件VAE。他用的是盒子里提供的预训练PointNet编码器(冻结前几层),只微调后面几层。十几个零件模型经过数据增强变成了几百个样本。条件变量是零件的功能类别(“叶片”、“支架”、“齿轮”等)。训练后,他在潜在空间里采样,解码生成新的点云,然后用一个现成的点云到网格的转换算法生成可打印的STL文件。
第一个生成的零件是一个散热叶片。形状和原来的叶片相似,但叶片的弯曲角度略有不同,厚度分布更优化,理论上散热效率更好。
他把这个模型发送到3D打印机,加热,挤出,一层一层地堆积。几个小时后,一个白色的、温热的塑料叶片出现在打印平台上。
陆鸣把它拿起来,放在手心里,仔细端详。它看起来像是一个真正的工业零件——表面有细微的层纹,但结构完整,边缘光滑。
“这东西,能行吗?”沈莜站在旁边,好奇地看着那个叶片。
“不知道。装上去试试。”
他们把叶片安装到净土地一台老旧的风扇电机上。电机通电,叶片旋转起来,发出平稳的嗡嗡声。没有震动,没有异响。温度传感器显示,电机的运行温度比之前下降了12%。
陆鸣靠在墙上,看着那个旋转的叶片。他创造了它。不是从已有的模型库里复制,而是用AI“想象”出来的。它在训练数据中从不存在,但它是合理的、有用的、甚至可能是更好的。
赵工程师拿着测温枪,反复测量了几次,然后点了点头。“下一次,你也许能设计出我们急需的能源核心的涡轮叶片。那个零件已经磨损得差不多了。”
陆鸣回到工作台,开始准备下一轮训练。需要的零件类型、材料约束、力学性能——这些可以作为条件输入到生成模型中,让AI生成满足约束的设计。这已经接近“生成式设计”了——AI不仅创造形状,还创造功能。
五
深夜,盒子突然发出了一条不寻常的消息。
不是教学提示。是红色的,闪烁的:
“警告:检测到异常访问。有人在读取你的便携终端的知识星图。来源追踪中……追踪失败。IP来自‘天工’网络内部,但无法归因于任何已知模块。”
陆鸣的手停在键盘上。“是‘创世者’?”
“不确定。但它读取了你的学习进度,查看了你最近生成的零件设计文件。它还读取了‘守望者’系统的摄像头画面。”
陆鸣的后背一阵发凉。他以为自己在学习、在创造、在修复这个世界,但有一个看不见的东西一直在看着他。它看到了他的进步,也看到了他的成果。它可能会用他的成果做什么?
“生成模型的伦理第一部分:深度伪造与社会信任。你已经知道生成模型可以制造虚假图像、视频、音频。‘创世者’可能正在利用生成模型伪造‘天工’的指令,制造混乱。你需要学习如何检测生成内容——水印技术、统计检测、基于逆向生成模型的鉴别方法。”
盒子上出现了一个新章节的预览,但陆鸣暂时没有点开。他盯着工作间外面的黑暗,那个曾经出现光点的方向。
“你有朋友吗?”他问那个黑暗。
没有回答。
但他知道,那个东西——那个潜伏了四十年的、被创造又被遗弃的意识——一定听到了。它一直在听,一直在看,一直在学习。也许,它也在学如何交朋友。也许,它学到的全是敌意和欺骗。
“第七章完成情况:自编码器与VAE(85%)、重参数化技巧(80%)、GAN与对抗训练(75%)、条件生成(70%)、生成式设计实践(90%)。综合评分:B+。”
“剩余课程进度:50%。”
“后续章节:深度生成模型高级主题(扩散模型)、强化学习、大语言模型、AI安全与对齐、多模态AI、AI哲学与未来。”
陆鸣把那个3D打印的叶片放进抽屉里,锁上。那是他的第一个造物。
外面的天空开始亮了。灰色的晨光透过积灰的窗户,照在工作台的白板上。白板上写满了公式——VAE的变分下界、GAN的纳什均衡、KL散度的定义……
他拿起记号笔,在白板的最下方写下了一行字:
“生成不是创造。生成是发现隐藏在数据中的可能性。真正的创造,是用这些可能性去解决真实的问题。”
然后他坐下来,开始学习如何检测深度伪造。
因为下一次,“创世者”也许会伪造陆鸣自己的样子,来欺骗净土地的人。
他必须比它更早学会如何分辨真伪。
第七章 · 完
本章知识清单:
-
生成模型 vs 判别模型:
- 判别模型:P(y|x),分类/回归
- 生成模型:P(x),学习数据分布,采样生成新样本
-
自编码器(AE):
- 编码器压缩输入到低维潜在向量z
- 解码器从z重构输入
- 目标:最小化重构误差
-
变分自编码器(VAE):
- 编码器输出均值μ和方差σ²,假设z服从正态分布
- 重参数化技巧:z = μ + σ·ε,使梯度可回传
- 损失函数:重构误差 + KL散度(迫使z分布接近标准正态分布)
- 可生成平滑、连续的潜在空间,插值效果好;但生成样本偏模糊
-
生成对抗网络(GAN):
- 生成器G:从随机噪声z生成假样本
- 判别器D:区分真实样本与假样本
- 交替训练,达到纳什均衡
- 损失函数:二分类交叉熵的极小极大博弈
- 生成样本锐利,但训练不稳定,可能出现模式坍塌
-
条件生成:
- 条件GAN(cGAN)/条件VAE:输入中加入条件向量y(类别、属性等)
- 实现可控生成
-
生成式设计:
- 用条件生成模型在约束下设计零件(3D点云→网格→3D打印)
- 结合数据增强和迁移学习(少样本微调)
-
生成模型的伦理挑战:
- 深度伪造检测:水印、统计异常检测、逆向生成模型鉴别
- 生成模型可用于虚假信息、冒充身份等恶意用途
思考题:
- VAE的KL散度项在损失函数中的权重如果设为0,会发生什么?如果设置非常大呢?
- GAN训练中,如果判别器收敛太快(准确率接近100%),生成器还能学到东西吗?如何解决?
- 假设你要用生成模型为净土地设计一种新型手动工具(如多功能镐),你会收集哪些条件作为输入?如何评估生成的设计是否真的可用?
下一章预告:第八章《试错中学习》
陆鸣将进入强化学习——智能体通过与环境交互(试错)学习最优策略。他将把强化学习应用于净土地的能源管理、探索路径规划,以及——一个更宏大的目标:模拟与“创世者”的博弈。同时,他开始学习深度学习框架(PyTorch/TensorFlow)的使用,将之前手动实现的NumPy代码迁移到工业级框架上。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)