23: 超分辨率
在本课程中,我们使用 Tiny Imagenet 创建了一个超分辨率 U-Net 模型,讨论了数据集创建、预处理和数据增强。超分辨率的目标是将低分辨率图像放大到更高分辨率。我们使用 AdamW 优化器和混合精度训练了模型,准确率接近 60%。我们还通过查看 Papers with Code 网站上 Tiny Imagenet 上其他模型的结果,探索了改进的潜力。
我们讨论了使用卷积神经网络进行图像超分辨率的局限性,并引入了 U-net 的概念,这是一种更适合此任务的高效架构。我们实现了感知损失(perceptual loss),它涉及在预训练分类器模型的中间层比较输出图像和目标图像的特征。使用新的损失函数训练 U-net 模型后,输出图像的模糊度降低,并且更接近目标图像。
最后,我们讨论了比较不同模型及其输出的挑战。我们展示了感知损失如何显著改进了结果,但也指出没有明确的指标可用于比较。接着,我们继续讲解逐步解冻预训练网络,这是 fast.ai 中常用的技巧。我们将预训练模型的权重复制到我们的模型中,并在下行路径权重冻结的情况下训练一个 epoch。这导致了损失的显著改善。
讨论概念
- Tiny Imagenet 数据集
- 创建超分辨率 U-Net 模型
- 数据预处理和数据增强
- 感知损失
- 逐步解冻预训练网络
- 在 U-net 中实验交叉连接