zl程序教程

您现在的位置是:首页 >  工具

当前栏目

cleanlab的学习笔记

2023-09-14 09:13:20 时间

0.总结

  • LawsonAbs 目前的认知与思考,不一定完善和准确,还请各位读者怀批判思维阅读。
  • 持续更新~

1.主要步骤

分成三个大步骤,六个小步骤

1.1三大步骤

  • count: 估计噪声标签和真实标签的联合分布
  • clean:找出并过滤掉错误样本
  • re-training:过滤掉错误样本后,重新调整样本类别权重

1.2 六小步骤

1.2.1 预测概率矩阵 psx

如何生成psx?

  • 这个就需要针对各自的模型+数据生成一个预测概率矩阵。假如,现在有n个矩阵,m个标签,那么得到的psx 就是一个 n*m 大小的二维矩阵。
  • 使用交叉验证

1.2.2 计数矩阵

  • 根据 psx 得到 计数矩阵
  • 这个计数矩阵是用于生成后面的 标定计数矩阵。
  • 怎么得到?
    主要就是根据阈值和psx的值,分门别类的将数据累加到矩阵中。

1.2.3 标定计数矩阵

  • 根据计数矩阵得到 标定计数矩阵
  • 目的是为了让计数总和 与 人工标记的样本总数相同。【为什么要这么做??因为没有达到某个阈值的概率值会被过滤掉,从而导致计数总和 <= 人工标记的样本总数,这个做法的实质就是:根据人工打的标签数,然后同比例放大。】

1.2.4 噪声标签和真实标签的联合概率分布

  • 根据 标定计数矩阵得到 噪声标签和真实标签的联合概率分布。【其实就是归一化】

1.2.5 得到联合分布之后,开始执行clean操作。

clean 的method 有5种:

这里不再叙述,可以根据文末夕小瑶的链接查看。

1.2.6 re-training 过滤错误样本后,重新训练

过滤掉错误样本后,根据联合分布 Q y ^ , y ∗ Q_{\hat{y},y*} Qy^,y, 将每个类别i下的损失权重修正为
Q y ∗ = i Q y ^ = i , y ∗ = i \frac{Q_{y^*=i}}{Q_{\hat{y}=i,y^*=i}} Qy^=i,y=iQy=i

针对上述几个步骤,又出现了如下几个问题:

  • 01.为什么权重要扩大?
    针对这一点,我和师兄讨论的结果是:为了增大正确样本对模型的影响效果,所以将权重扩大了

2.源码实现

当然,学习一个新工具的最好方法就是瞅官方文档+源码,但是我建议可以从我的库中【新人建议从cleanlab/examples 中开始学习如何实现】获取我打过注释的代码进行学习,里面有非常丰富的注释,保证你能够看的懂~

3.参考文章