
1) 【一句话结论】针对数据不足或分布不均问题,核心通过“数据增强扩充样本多样性+迁移学习利用预训练模型通用特征+主动学习优化标注效率”组合策略,有效提升模型泛化能力。
2) 【原理/概念讲解】
数据增强:通过几何变换(旋转、缩放)、颜色调整或合成数据(如GAN生成)扩充样本量,本质是“给现有数据做‘扩容+变形’处理,类似给玩具积木加更多形状但保留原特征”。
迁移学习:利用预训练模型(如ImageNet训练的CNN)在目标数据上微调,因为预训练模型已学习通用特征,本质是“用别人训练好的‘通用特征识别器’,再针对自己任务微调,类似学英语先背常用词再学专业术语”。
主动学习:模型主动选择最不确定的样本请求标注(如预测熵最大),本质是“模型自己‘挑最需要学习’的样本让标注员处理,类似学生先做易题再攻克难题”。
3) 【对比与适用场景】
| 方法 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 数据增强 | 通过变换(几何、颜色等)或合成生成新数据 | 不改变数据分布本质,仅增加样本量 | 图像/文本分类(如医疗影像少量数据) | 变换需合理,避免引入噪声 |
| 迁移学习 | 利用预训练模型在目标数据上微调 | 借助预训练模型通用特征,减少目标数据需求 | 目标领域数据稀缺,预训练模型相关 | 预训练模型需与任务相关 |
| 主动学习 | 模型选择最不确定样本请求标注 | 优化标注效率,降低成本 | 需要大量标注的场景(如医疗诊断) | 需要标注员配合,模型选择策略影响效果 |
4) 【示例】
import cv2
import numpy as np
def augment_image(img):
angle = np.random.randint(-15, 15)
rows, cols = img.shape[:2]
M = cv2.getRotationMatrix2D((cols/2, rows/2), angle, 1)
img = cv2.warpAffine(img, M, (cols, rows))
scale = np.random.uniform(0.9, 1.1)
img = cv2.resize(img, None, fx=scale, fy=scale)
return img
original = cv2.imread('sample.jpg')
augmented = augment_image(original)
import torch
import torchvision.models as models
model = models.resnet50(pretrained=True)
for param in model.parameters():
param.requires_grad = False
model.fc = torch.nn.Linear(model.fc.in_features, num_classes)
optimizer = torch.optim.Adam(model.fc.parameters(), lr=0.001)
for epoch in range(num_epochs):
for images, labels in dataloader:
optimizer.zero_grad()
outputs = model(images)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
def select_samples(data, model, n_samples):
uncertainties = []
for sample in data:
with torch.no_grad():
logits = model(sample['image'])
probs = torch.softmax(logits, dim=1)
entropy = -torch.sum(probs * torch.log(probs), dim=1)
uncertainties.append(entropy.item())
top_n_indices = np.argsort(uncertainties)[-n_samples:]
return data[top_n_indices]
5) 【面试口播版答案】
“面试官您好,针对数据不足或分布不均的问题,我之前在XX项目中采用‘数据增强+迁移学习+主动学习’的组合策略。首先,数据增强通过几何变换(旋转、缩放)和颜色调整扩充样本,比如将10张医疗影像旋转不同角度生成50张,让模型学习更泛化的特征;然后迁移学习,我们使用预训练的ResNet模型,在目标数据上微调最后一层,因为预训练模型已学习通用视觉特征,微调后准确率从60%提升到85%;最后主动学习,模型主动选择预测最不确定的样本请求标注,比如用熵最大策略,每次标注5张最难的样本,最终标注量减少40%,模型准确率稳定在88%。这些方法结合后,有效解决了数据不足的问题,提升了模型泛化能力。”
6) 【追问清单】
7) 【常见坑/雷区】