I recognize that this is a stats forum and the expectation is a focus on mathematical derivations, but if it can be helpful and you're using Python, there is a package for classification with noisy labels called `cleanlab`: https://github.com/cgnorthcutt/cleanlab/. (Disclaimer: I am the author of cleanlab) The `cleanlab` Python package, `pip install cleanlab`, for which I am an author, finds label errors in datasets and supports classification/learning with noisy labels. It works with scikit-learn, PyTorch, Tensorflow, FastText, etc. For learning with noisy labels. # 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) To find label errors in your dataset. 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, ) Some examples with [FastText][1] (NLP) and [PyTorch][2] (MNIST AlexNet). Documentation: https://l7.curtisnorthcutt.com/cleanlab-python-package [1]: https://github.com/cgnorthcutt/cleanlab/blob/master/tests/test_model_fasttext.py [2]: https://github.com/cgnorthcutt/cleanlab/blob/master/tests/test_model_pytorch_cnn.py