在Class-Aware Pseudo-Labeling (CAP) 方法中,类感知阈值(Class-Aware Thresholds)的动态调整是通过以下步骤实现的:
-
初始化阈值:
- 在训练开始时,为每个类别设置初始阈值。这些阈值可以基于先验知识、数据分布或通过其他启发式方法确定。
-
类别分布估计:
- 利用标记数据集来估计每个类别的分布。这包括计算每个类别的正例(positive labels)和负例(negative labels)的比例。
-
类别感知阈值更新:
- 在训练过程中,根据类别分布感知阈值策略(Class-Distribution-Aware Thresholding, CAT)动态调整阈值。这个策略确保伪标签的分布与真实分布对齐。
- 对于每个类别 kk,通过解决以下方程来确定阈值 τ(αk)τ(αk) 和 τ(βk)τ(βk):
1m∑j=1mI(fk(xj)≥τ(αk))=γ^k,m1j=1∑mI(fk(xj)≥τ(αk))=γ^k,
1m∑j=1mI(fk(xj)≤τ(βk))=ρ^k,m1j=1∑mI(fk(xj)≤τ(βk))=ρ^k,
其中 γ^kγ^k 和 ρ^kρ^k 分别是标记数据中正例和负例的比例,I(⋅)I(⋅) 是指示函数,mm 是未标记样本的数量。
-
利用估计的类别分布:
- 由于在训练过程中未标记实例的真实标签不可用,CAP方法使用标记数据的类别比例作为未标记数据的类别分布的紧密近似。
-
训练过程中的调整:
- 在每个训练周期(epoch)中,根据模型对未标记数据的预测结果更新伪标签,并相应地调整阈值。这确保了模型能够根据新的数据和预测结果自适应地优化阈值。
-
可靠区间的选择:
- 为了进一步提高性能,CAP方法可以选择性地丢弃一些置信度较低的伪标签。这是通过参数 η1η1 和 η0η0 控制的,这些参数决定了正负伪标签的可靠区间。
通过这种动态调整机制,CAP方法能够更精确地估计未标记数据的类别分布,并据此生成更高质量的伪标签,从而提高半监督多标签学习的性能。这种方法特别适用于处理多标签图像分类问题,其中每个实例可能与多个类别相关联。
复制分享
在每个训练周期(epoch)中,根据模型对未标记数据的预测结果更新伪标签,并相应地调整阈值。这确保了模型能够根据新的数据和预测结果自适应地优化阈值。举个例子结合公式说明具体是怎么实现的
在每个训练周期(epoch)中,CAP方法通过以下步骤更新伪标签并相应地调整阈值:
-
模型预测:首先,模型对未标记数据集 Du={xj}j=1mDu={xj}j=1m 进行前向传播,生成预测概率分布 f(xj)f(xj)。
-
生成伪标签:根据模型的预测结果,使用类感知阈值 τ(αk)τ(αk) 和 τ(βk)τ(βk) 为每个类别 kk 生成伪标签 y^jy^j。具体来说,对于每个类别 kk 和每个未标记样本 xjxj,如果模型预测的概率 fk(xj)fk(xj) 大于正类阈值 τ(αk)τ(αk),则分配正类伪标签 1;如果小于负类阈值 τ(βk)τ(βk),则分配负类伪标签 0;否则,不分配标签(或标记为未知)。
-
更新伪标签记忆:将生成的伪标签存储在伪标签记忆中,用于后续的训练和阈值调整。
-
计算损失并优化:使用标记数据和伪标签计算损失函数。对于标记数据,使用二元交叉熵损失(BCE);对于未标记数据,使用类感知阈值调整后的损失。
-
调整阈值:在每个epoch结束后,根据当前的模型预测和已分配的伪标签,重新估计每个类别的正负样本比例 γ^kγ^k 和 ρ^kρ^k。然后,使用这些估计值来更新阈值 τ(αk)τ(αk) 和 τ(βk)τ(βk),以更好地匹配真实类别分布。
具体实现过程如下:
假设在某个epoch中,模型对未标记样本 xjxj 的预测概率为 f(xj)f(xj)。对于类别 kk,如果 fk(xj)≥τ(αk)fk(xj)≥τ(αk),则 y^jk=1y^jk=1;如果 fk(xj)≤τ(βk)fk(xj)≤τ(βk),则 y^jk=0y^jk=0。这里 τ(αk)τ(αk) 和 τ(βk)τ(βk) 是根据当前估计的类别分布动态调整的阈值。
例如,如果对于类别 kk,模型预测 fk(xj)=0.7fk(xj)=0.7,而当前的正类阈值 τ(αk)=0.6τ(αk)=0.6,负类阈值 τ(βk)=0.3τ(βk)=0.3,则 y^jk=1y^jk=1,因为 0.7≥0.60.7≥0.6。这意味着模型预测样本 xjxj 与类别 kk 相关联,因此分配正类伪标签。
在训练的下一个epoch中,模型将使用这些伪标签进行训练,并通过比较预测结果与伪标签来更新阈值,以进一步优化模型性能。这个过程在每个epoch中重复进行,直到模型收敛或达到预定的训练周期数。
在CAP(Class-Aware Pseudo-Labeling)方法中,提出的优化问题:
miny^,θ∑i=1n∑k=1qyikℓ1(fk(xi))+(1−yik)ℓ0(fk(xi))+∑j=1m∑k=1qy^jkℓ1(fk(xj))+(1−y^jk)ℓ0(fk(xj))−∑j=1m∑k=1qαky^jk+βk(1−y^jk),y^,θmini=1∑nk=1∑qyikℓ1(fk(xi))+(1−yik)ℓ0(fk(xi))+j=1∑mk=1∑qy^jkℓ1(fk(xj))+(1−y^jk)ℓ0(fk(xj))−j=1∑mk=1∑qαky^jk+βk(1−y^jk),
这里的优化目标是最小化标记数据和未标记数据的损失函数,同时通过正则化项 −∑j=1m∑k=1qαky^jk+βk(1−y^jk)−∑j=1m∑k=1qαky^jk+βk(1−y^jk) 控制每个类别的正负伪标签的数量。
具体来说,−∑j=1m∑k=1qαky^jk+βk(1−y^jk)−∑j=1m∑k=1qαky^jk+βk(1−y^jk) 的作用如下:
-
类感知正则化:这个正则化项通过引入类感知阈值 αkαk 和 βkβk 来控制每个类别 kk 的正负伪标签的数量。αkαk 和 βkβk 分别是针对类别 kk 的正类和负类的正则化参数。
-
控制伪标签分配:通过调整 αkαk 和 βkβk,模型可以学习到每个类别的适当数量的正负伪标签。这有助于模型在训练过程中平衡不同类别的伪标签分布,从而更好地学习类别之间的关系。
-
避免过拟合:正则化项还有助于防止模型对未标记数据过度拟合。通过控制伪标签的数量,模型可以更加关注于从标记数据中学习到的有用信息,而不是依赖于可能不准确的伪标签。
-
提高泛化能力:通过优化伪标签的分配,模型可以提高其泛化能力,因为它在训练过程中被迫学习到更加鲁棒的特征表示,这些表示能够更好地推广到未见过的数据上。
总的来说,这个正则化项在CAP方法中起到了关键作用,它不仅帮助模型在半监督多标签学习环境中有效地利用未标记数据,而且还提高了模型对类别分布的估计准确性,从而提升了整体的性能。