[Kaggle]涨点技巧之Pseudolabelling(伪标签)
出自kaggle大佬@Alexander Ryzhkov,原文地址
大概意思就是给没标签的数据(unlabelled data,有的时候可以是官方给的test set)打上标签,流程如下:
- 用带着标签的训练集训练模型
- 用上述训练好的模型预测没标签的数据来造伪标签,然后把pseudo labelled的数据和训练集concat来训练
那问题来了,这真的能行吗?大神说了,按他的经验如果满足下面的条件那就是很可能有效的办法!
- 第一阶段用训练集训练出来的模型得有80%+的准确率,这就意味着我们在test set上打的伪标签80%以上都是正确的
- 第二阶段中拼接的数据集中带有label的和pseudo label的样本应当平衡(balanced),比如七三开或最多五五开,因为我们希望模型主要还是从real ground trueth中学习,而pseudo的部分我们希望起到一个微调的作用,如果pseudo的样本太多模型会把它当成real ground trueth,那就容易把一阶段中学到的错误给放大了
- 在第二阶段的时候最好check the training metric only by real ground truth labels
- Last nut not least,一二阶段得到的模型应当是不一样的,因为第二阶段能学习到第一阶段学习不到的新东西
但大神又说了,这个办法只是也许能行,玄学,有的时候并不奏效需要辩证看待 - -。。
浙公网安备 33010602011771号