【Datawhale CV夏令营】 1 Baseline的基本改进 (I)

1 赛题重述

1.1 赛题背景

机器虽然被大量用到农业生产中,但人还是不可或缺的因素。通过农民身份识别,可以真实客观地记录农民的状态,为农场管理和农产品追溯提供真实的客观数据;较之直接存储视频,可以有效地降低存储空间;自动识别也比人工监管,大幅度提高效率,减少人工成本。

2.2 赛事任务

农民身份识别需要对农民进行分类,本次大赛提供了中国农业大学实验室视频制成的图像序列。参赛选手先对图像进行预处理,并制作样本,对图像中的农民进行识别。选手需要自行训练模型,并上传自己训练好的模型和权重。

3.3 赛题数据集

本次比赛为参赛选手提供了25名农民身份,每个身份包含10段视频制成的图像序列,选手需要对图像序列进行预处理,打标签,并对农民进行身份识别。

1.4 评价指标

本模型依据提交的结果文件,采用Macro-F1进行评价,其中Macro-F1定义如下:

img

2 Baseline

2.1 传统图像特征提取方法

通过计算图像中的一些统计指标,如白色像素数目、均值、方差等指标手动构建特征,然后使用机器学习模型进行分类。在此不再赘述。

2.2 深度学习方法

采用预训练Resnet18作为骨架,输入为图片,输出为分类结果,如下图所示

3 改进Baseline

3.1 梯度裁剪

对于模型fθ、度量指标L、输入数据x、对应的标签y和学习率η,有梯度更新

img

在训练过程中,有可能出现梯度过大导致的震荡情况。因此考虑限制梯度的范数为一定范围,这与信赖域算法思路相似:

im1

这样的操作可以通过paddle.nn.ClipGradByNormtorch.nn.utils.ClipGradNorm实现。

3.2 集成学习

集成学习的思路较为简单,若某一个预测器件的准确率大于50%,那么很多个这样的预测器对结果投票得出的结果准确率将会更高。在对Baseline的改进中,我们引入对某模型效能的置信度函数α⋅,并将其简单地定义为模型的验证准确率的平方根。于是当!

持有N个模型时,期望的分类结果由下面的式子给出:

4 测试结果

  • 仅使用梯度裁剪的Baseline在训练集上训练少于5Epochs 可以在测试集上达到 50% 的准确率
  • 使用梯度裁剪和集成学习的Baseline在训练集上训练9个模型,在测试集上可以达到近 60%的准确率