[PYTHON] Einführung und Implementierung von JoCoR-Loss (CVPR2020)

Introduction of the paper

This work, named Combating Noisy Labels by Agreement: A Joint Training Method with Co-Regularization[CVPR2020],isgenerallybasedonco-teaching[NIPS2018]. To explain what this paper is about, we need some basic conception about co-teaching.

co-teaching co-teaching is a framework that is proposed for robust training against noise. This paper aims to mitigate the negative impact of noisy labels on model training.

The specific method is:

image.png

This is the concept of co-teaching. A and B denote two models.

JoCoR-Loss

This work follows most of the settings of co-teaching, like

The core technology that this paper proposed, is a novel loss, which named JoCoR Loss.

image.png image.png

image.png

image.png

This new loss function forces the two models to give the same prediction. According to the author, this Contrastive loss function should be lower when the label is clean, so the model can distinguish whether a label is clean by this loss.

image.png

Here are the experiment results on the noisy CIFAR-10 dataset. This method absolutely outperforms the previous method.

My opinion about JoCoR loss

image.png

Since this loss compares 2 prediction vectors, but not two Cross_Entropy Loss. So this KL-divergences has nothing to do with the labels. So I don't think that this loss is helpful for selecting data with clean samples. I think the prediction of 2 models will be similar for the images that have significant features which are easy to be distinguished. But this novel loss did help the model to achieve better performance, I think the reason should be:

To support my opinion, I ran an easy experiment. I let the model select clean sample without JoCor loss( the original way ), and backward the loss with JoCoR loss . And I got a similar test accuracy..

So for me, the meaning of this paper is showing that training two models and force them predicting samely is useful. And I think this idea can apply to other tasks. What I have done

Recommended Posts

Einführung und Implementierung von JoCoR-Loss (CVPR2020)
Einführung und Implementierung der Aktivierungsfunktion
Erklärung und Implementierung von SocialFoceModel
Einführung und Tipps von mlflow.Tracking
Erläuterung und Implementierung von PRML Kapitel 4
Erklärung und Implementierung des ESIM-Algorithmus
Erklärung und Implementierung von einfachem Perzeptron
Erklärung und Implementierung des Decomposable Attention-Algorithmus
Einfache Einführung in die Python3-Serie und OpenCV3
Einführung von PyGMT
Einführung von Python
Vergleichen Sie die Implementierungsbeispiele für scikit-learn und pyclustering k-means
TRIE-Baumimplementierung mit Python und LOUDS
Erläuterung der Bearbeitungsentfernung und Implementierung in Python
Einführung von trac (Windows + trac 1.0.10)
Spielen Sie mit der Implementierung der Pythonista 3-Benutzeroberfläche [Super Super Primer]
Einführung von ferenOS 1 (Installation)
Einführung des Virtualenv-Wrappers
Sequentielle Aktualisierung der Co-Distribution zur Ableitung und Implementierung von Ausdrücken
Implementierung der Fibonacci-Sequenz
Ich berührte Bachstelze (3). Untersuchung und Implementierung von Popup-Nachrichten.
Perceptron Grundlagen und Implementierung
Implementierung des DB-Administratorbildschirms durch Flask-Admin und Flask-Login
Python-Implementierung des CSS3-Mischmodus und Diskussion über den Farbraum
[Deep Learning von Grund auf neu] Implementierung der Momentum-Methode und der AdaGrad-Methode
Ableitung und Implementierung von Aktualisierungsgleichungen für die nicht negative Tensorfaktorzerlegung
[Einführung in cx_Oracle] (Teil 4) Abrufen und Scrollen der Ergebnismenge
[Einführung in Scipy] Berechnung der Lorenzkurve und des Gini-Koeffizienten ♬
[Einführung in Data Scientists] Grundlagen von Python ♬ Funktionen und Klassen
Theorie und Implementierung mehrerer Regressionsmodelle - warum Regularisierung erforderlich ist -
Einführung von DataLiner Version 1.3 und Verwendung von Union Append
Überprüfung und Implementierung der Videorekonstruktionsmethode mit GRU und Autoencoder
Erläuterung der CSV und Implementierungsbeispiel in jeder Programmiersprache
Quantum Computer Implementierung von Quantum Walk 2
Das Problem der Lügner und der Ehrlichkeit
Mechanismus von Pyenv und Virtualenv
Implementierung von TF-IDF mit Gensim
Implementierung von MathJax auf Sphinx
Vor- und Nachbearbeitung von Pytest
[Einführung in cx_Oracle] Übersicht über cx_Oracle
Kombination von rekursiv und Generator
Kombination von anyenv und direnv
Normalisierung der Strömungstheorie und -implementierung
Einführung in Aktivitäten mit Python
Implementierung der Spieltheorie - Gefangenendilemma -
Differenzierung der Sortierung und Verallgemeinerung der Sortierung
Implementierung einer unabhängigen Komponentenanalyse
Koexistenz von Pyenv und Autojump
Quantum Computer Implementierung von Quantum Walk 3
Einführung von Kaffee mit Pyenv
Python-Implementierung des Partikelfilters
Verwendung und Integration von "Shodan"
Das Problem der Lügner und der Ehrlichkeit
Maxout Beschreibung und Implementierung (Python)
Auftreten und Auflösung von tensorflow.python.framework.errors_impl.FailedPreconditionError
Implementierung der schnellen Sortierung in Python
Vergleich von Apex und Lamvery
Quellinstallation und Installation von Python