小样本场景下 ResNet 迁移学习关键细节
目录
1. 预训练模型选择策略
跨领域适应性
- 医学影像:优先选用 RadImageNet 等医学预训练模型
若使用 ImageNet 预训练,需注意:# 修改第一层适应单通道医学影像 model.conv1 = nn.Conv2d(1, 64, kernel_size=7, stride=2, padding=3)
- 遥感:选用 SEN12MS 等遥感预训练权重
- 缺陷检测:ImageNet 预训练 + 工业缺陷数据集微调
模型深度选择
小样本场景推荐使用浅层 ResNet 变体:
参数量 ∝ 1 N ( N 为样本量 ) \text{参数量} \propto \frac{1}{\sqrt{N}} \quad (N为样本量) 参数量∝N1(N为样本量)
当 N < 1000 N<1000 N<1000 时优先选择 ResNet-18/34
2. 数据增强与预处理
领域特化增强
领域 | 推荐增强方法 | 代码示例 |
---|---|---|
医学影像 | 弹性形变、窗宽窗位调整 | torchio.RandomElasticDeformation() |
遥感 | 多波段混合、旋转翻转 | albumentations.RandomRotate90() |
缺陷检测 | 局部遮挡、纹理合成 | imgaug.Cutout(nb_iterations=2) |
小样本增强公式
对输入图像 x x x 应用特征空间增强:
x ′ = λ x + ( 1 − λ ) x mix ( λ ∼ B e t a ( α , α ) ) x' = \lambda x + (1-\lambda)x_{\text{mix}} \quad (\lambda \sim Beta(\alpha,\alpha)) x′=λx+(1−λ)xmix(λ∼Beta(α,α))
其中 x mix x_{\text{mix}} xmix 为随机样本,代码实现:
lam = np.random.beta(alpha, alpha)
mixed_x