返回列表

54th Place Solution

473. PetFinder.my - Pawpularity Contest | petfinder-pawpularity-score

开始: 2021-09-23 结束: 2022-01-14 计算机视觉 数据算法赛
第54名方案

第54名方案

作者: shigeria (Kaggle Master)
比赛: PetFinder.my - Pawpularity Score

首先,我要感谢各位参赛者和主办方!
我们的解决方案主要由三部分组成。

  1. 使用 SVR 和高斯过程回归
  2. 使用 Focal Loss
  3. Ridge 和 Catboost 堆叠

1. 使用 SVR 和高斯过程回归

首先,我们提取了图像嵌入并将其用于 SVR 和 GPR。我们的灵感来自 Chris 的 讨论CommonLit 第6名方案
图像嵌入的大小为 1536(未更改),并使用 sklearn 的 normalize 函数对其进行了归一化。

2. 模型

我们最终选择了 4 个模型进行集成。所有模型在计算 CV 时均使用了 TTA(n=5)。

模型 NN CV SVR CV GPR CV 备注
swin_large_patch4_window7_224_in22k 17.48 17.51 17.47 None
swin_large_patch4_window7_224 17.42 17.55 17.45 Focal Loss(gamma=2)
swin_large_patch4_window7_224 17.44 17.53 17.41 Focal Loss(gamma=0.5) 和 mixup(α=0.2)
swin_large_patch4_window7_224 17.58 None None 由 FastAI 训练

训练流程基于 此 Notebook(感谢分享!),验证方式也相同。

3. 数据增强

我们使用了以下代码:

def get_train_transforms(epoch, dim = Config.im_size):
    return A.Compose(
        [             
            # resize like Resize in fastai
            A.SmallestMaxSize(max_size=dim, p=1.0),
            A.CenterCrop(height=dim, width=dim, p=1.0),
            A.HorizontalFlip(p = 0.5),
            A.geometric.transforms.ShiftScaleRotate(shift_limit=0.0625, scale_limit=0.1, rotate_limit=15, p=0.5)
        ]
  )

def get_tta_transforms(epoch, dim = Config.im_size):
    return A.Compose(
        [             
            # resize like Resize in fastai
            A.SmallestMaxSize(max_size=dim, p=1.0),
            A.CenterCrop(height=dim, width=dim, p=1.0),
            A.HorizontalFlip(p = 0.5),
            A.geometric.transforms.ShiftScaleRotate(shift_limit=0.0625, scale_limit=0.1, rotate_limit=15, p=1.0)
        ]
  )

4. 堆叠

我们集成了 Catboost * 0.2 和 Ridge * 0.8。除了 train 和 test.csv 中使用的元数据外,我们还添加了 此 Notebook 中使用的 yolov5 猫狗特征。

顺便说一句,25天前使用 Swin large 384 提交的 Private LB 分数为 16.975(达到第22名)。所以,我们本应该信任 Swin large 384 的……