????????起因:最近在训练一个非常简单的二分类任务(计算描述两个实体的文本是否描述的是同一个实体),任务训练模式是用NLP大模型批量标注样本,在蒸馏后的robert_base上进行fine-tune,但是存在以下问题:
? ? ? ? 1. 样本大多都是简单样本:为了缓解这个问题,做了难样本生成,以及简单样本部分抽样。
? ? ? ? 2. 标注样本有错误:即使是LORA微调后的大模型也会在某几种类别的实体识别上性能不佳。
? ? ? ? 3. 模型训练极快达到过拟合,泛化性不强
? ? ? ? 针对上面的问题2和3,我这里尝试对标签进行一些魔改,因此有了接下来的内容。
? ? ? ? 我将数据集中的二分类标签从0和1改为0.1和0.9。这部分是有论文依据的,在二分类任务中,常见的标签就是0和1,如果训练样本中某一类样本出现问题,0和1的标签就显的过于绝对,增强了模型对这类错误数据的错误信任;过于绝对的标签也会减少模型的泛化能力(对于数据集的过于信任会导致过度的拟合,对于那些新出现or类似的样本缺乏判别能力)。
? ? ? ? 你们可以根据自己的任务情况,动态设计标签正则化,可以0.9也可以0.8;甚至根据正负样本的难易程度,从 [0.0, 0.2] 和 [0.8, 1.0] 之间动态取值。
????????这篇论文提出了一种正则化方法,通过将真实标签从0和1调整为较小的值来降低模型的过拟合。这些调整的标签值可以是接近0和1的常数,如0.9和0.1。通过降低标签的确定性,模型将更加谨慎地信任数据,提高泛化能力。
? ? ? ? 这篇论文提出了一种称为"Label Smoothing"的方法,进一步减轻模型的过拟合问题。同样,他们将真实的二进制标签0和1替换为了较小的值,这样模型不会过于自信地对待训练数据,从而提升泛化能力。
? ? ? ? 这篇论文探讨了将one-hot独热编码进行二分类和多分类任务时,将真实标签值从0和1,调整为0.1和0.9的效果,作者发现,通过减小标签的确定性,可以改善模型的鲁棒性和泛化能力。
? ? ? ? 笔者在进行本文提及的任务时,实验发现模型收敛的更加稳定、延缓了过拟合的出现、提升了模型性能。但是,在另一个任务上性能有所下降,所以最终是否要使用这个技巧,仍然需要对比试验。
? ? ? ? 这部分算是知识补充,硬标签、软标签、单标签、多标签这四个概念很容易和标签正则 / 标签平滑混淆。
? ? ? ? 用于单一分类任务,对于一个类别,只有属于或不属于。在二分类任务中只有”是“或者”不是“;在多分类任务中只能是[1, 0, 0,...,..., 0]
? ? ? ? 用概率分布表示样本属于某个类别的概率。例如,对于一个三分类任务,一个样本的软标签可以是[0.3, 0.5, 0.2],表示样本属于三个类别的可能性分别为30%、50%和20%。
????????每个样本只有一个明确的类别,比如一个三分类任务,一个样本的单标签可以是[1,0,0] 、[0,1,0] 或 [0,0,1],表示样本明确属于哪一个类别。
? ? ? ? 一个样本可以有多个标签。比如在POI类别解析(楼栋、商场、工业园、餐厅等等),一个样本可以既是商场、又是楼栋和餐厅,所以one-hot标签应该是[1, 1, 1, 0 , 0, ...,1, 0, ...., 1]\
? ? ? ? 软标签和多标签类似,他们都允许一个样本属于多个类别。
????????不同的是,?软标签以概率的形式,表示有多大可能属于这个类别;多标签则是只要有专家认为样本属于这个类别,那么这个样本就属于这个类别。
? ? ? ? 相同的是,无论是软标签还是多标签,最终都需要设定一个阈值,来判别样本属于哪几类。
? ? ? ? 硬标签和单标签在概念上相似,一般在二分类任务中用术语“硬标签”;在多分类任务中使用“单标签”描述样本属于哪个类别。后续如果有更深入的理解,会更新这两个概念。
???
参考链接:硬标签、软标签、单标签、多标签的概念_软标签和硬标签区别-CSDN博客