车间里那台工业相机一天拍几万张正常件,次品一个月碰不到几次。算法团队把数据摊开:合格样本堆成山,缺陷样本用手指头数得完。瓶颈并不在模型结构,而在凑不齐足够多、足够刁钻的样本。这时候,讨论往往就转向合成数据。
缺的常常不是模型,是样本
标注成本不是线性的。常见情形便宜,罕见情形贵得离谱,越靠近真实世界的边缘,越难找人标、越难让标注者达成一致。靠人工再拍一遍也不现实——你没法预约一次偶发故障。于是有人把思路掉个头:与其等真实数据自然出现,不如按需生成。
它的长处是可控制,不是更像真的
生成图像做到以假乱真常被当作卖点,但工程上更有用的其实是可控。光照角度、材质反光、镜头畸变、遮挡比例、缺陷的位置和形状,这些参数能一个个拨动,生成一批条件明确的样本,标签天然准确,不需要人再判断一次。这类做法在视觉检测、驾驶仿真、语音唤醒等场景里已经比较常见:先用生成的方式覆盖住那些罕见的组合,再用少量真实数据校准。
换句话说,合成数据提供的是一种确定性:你知道这批图是怎么来的,也知道它想教会模型什么。
相似度是由表及里的陷阱
容易被忽略的问题是,人眼看着像,不代表模型学到的对。生成器会带着自己的偏好,把纹理、边缘、噪声分布成某种固定模式,模型很可能把这些模式当成捷径。结果是在生成出来的验证集上表现漂亮,换成真实相机拍出的图就散了。所以合成样本与真实样本混在一起时,比例、采样策略、验证集划分都得跟着改;验证集最好坚持用真实数据,并且和训练时见过的真实部分保持距离。
边界值得说清楚
- 真实世界的长尾分布不是靠想象能补齐的,没见过的失效模式仍然需要靠真实数据发现。
- 评测环节依赖真实数据,用生成样本自证,等于自己在给自己出题。
- 把缺失条件描述清楚是前提,描述不清的时候,生成只是把模糊放大。
合成数据替代不了的东西也值得说清楚。它更像一种补丁能力,用在你已经知道缺什么、并且能把缺失条件写下来的地方。先想明白缺口,再决定要不要造;这个顺序反过来,基本都会返工。