带有嘈杂标签的分类?


13

我正在尝试训练神经网络进行分类,但是我拥有的标签比较吵(大约30%的标签是错误的)。

交叉熵损失确实有效,但是我想知道在这种情况下是否有其他方法更有效?还是交叉熵损失最优?

我不确定,但是我正在考虑某种程度地“减少”交叉熵损失,这样一个数据点的损失将不大于某个上限,这行得通吗?

谢谢!

更新
根据卢卡斯的答案,我得到了预测输出和softmax函数z的输入的导数。所以我想基本上是在增加一个平滑项3yz为导数。p=0.3/Ñ+0.7Ŷ=-Σ登录p37N

pi=0.3/N+0.7yi
l=tilog(pi)
lyi=tilog(pi)pipiyi=0.7tipi=ti37N+yi
衍生物为原交叉熵损失:
lzi=0.7jtjpjyjzi=yijtjyj37N+yjtiyi37N+yi
lyi=tiyi
请让我知道,如果我错了。谢谢!
lzi=yiti

更新
我刚读了Google的一篇论文,该论文采用与卢卡斯的答案相同的公式,但具有不同的解释。

在第7节中,通过标签平滑进行模型正则化

l/zk

但是,他们没有将平滑项添加到预测中,而是将其添加到了基本事实中,事实证明这很有帮助。

在此处输入图片说明

ϵ


Answers:


10

正确的做法是更改模型,而不是损失。您的目标仍然是正确地对尽可能多的数据点进行分类(这决定了损失),但是您对数据的假设已经改变(在这种情况下,这些假设编码在统计模型(即神经网络)中)。

pt(yt,pt)yt

p~t=0.3/N+0.7pt

而是优化

t(yt,0.3/N+0.7pt),

N


p~t0.3/N+0.7ptp~tProb(y~=+1|t)=0.7Prob(y=+1|t)+0.3Prob(y=1|t)Prob(y~=1|t)=0.7Prob(y=1|t)+0.3Prob(y=+1|t)1/N

0

我认识到这是一个统计论坛,期望集中在数学推导上,但是如果它可以帮助您并且使用的是Python,则有一个带有嘈杂标签的分类程序包cleanlabhttps : //github.com/ cgnorthcutt / cleanlab /

我是作者的cleanlabPython软件包,可pip install cleanlab发现数据集中的标签错误,并支持带有嘈杂标签的分类/学习。它与scikit-learn,PyTorch,Tensorflow,FastText等一起使用。

用于带有嘈杂标签的学习。

# Code taken from https://github.com/cgnorthcutt/cleanlab
from cleanlab.classification import LearningWithNoisyLabels
from sklearn.linear_model import LogisticRegression

# Learning with noisy labels in 3 lines of code.

# Wrap around any classifier. Works with sklearn/pyTorch/Tensorflow/FastText/etc.
lnl = LearningWithNoisyLabels(clf=LogisticRegression())
lnl.fit(X = X_train_data, s = train_noisy_labels)
# Estimate the predictions you would have gotten by training with *no* label errors.
predicted_test_labels = lnl.predict(X_test)

在数据集中查找标签错误。

from cleanlab.latent_estimation import estimate_cv_predicted_probabilities

# Find the indices of label errors in 2 lines of code.

probabilities = estimate_cv_predicted_probabilities(
    X_train_data, 
    train_noisy_labels, 
    clf=LogisticRegression(),
)
label_error_indices = get_noise_indices(
    s = train_noisy_labels, 
    psx = probabilities, 
)

FastText(NLP)和PyTorch(MNIST AlexNet)的一些示例。

文档:https : //l7.curtisnorthcutt.com/cleanlab-python-package

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.