卷积网络上随机图像裁剪有什么好处?

What is the benefit of random image crop on Convolutional Network?

我正在使用 pytorch 教程学习迁移学习。我发现 pytorch 教程作者使用不同的方法来训练集和验证集。

data_transforms = {
    'train': transforms.Compose([
        transforms.RandomResizedCrop(224),
        transforms.RandomHorizontalFlip(),
        transforms.ToTensor(),
        transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    ]),
    'val': transforms.Compose([
        transforms.Resize(256),
        transforms.CenterCrop(224),
        transforms.ToTensor(),
        transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    ]),
}

如上所述,训练会话使用随机裁剪图像进行训练。但是我发现经过这种变换后,有些图像完全切掉了目标对象,没有留下任何有用的检测特征。我很好奇为什么作者选择了那种方法,即使定义不同的管道来训练和验证数据集更加困难。随机裁剪有什么好处吗?

随机裁剪背后的几个想法:

简写:

  • 扩展训练数据量
  • 让神经网络更健壮

更多详情:

图像的语义得以保留,但 conv 网络的激活值不同。 conv 网络学习将更广泛的空间激活与特定 class 标签相关联,并提高 conv 网络中特征检测器的稳健性。

看这段摘录https://link.springer.com/chapter/10.1007/978-3-319-31293-4_25