What
Fixing mislabels in frontal/lateral information for better performance
Why
Mislabels in frontal/lateral information might affect stronger than we expected.
We've conventionally trained our model only for the frontal view data. Using the frontal view is not unusual. Pham, H. H. et al.(2021), one of our preferred papers, also mentioned this restriction of data while training.
However, it is hard to overcome the validation ROC-AUC score of 0.9 so far. Since ROC-AUC 0.9 indicates that easy samples are already classified well but there are some difficult samples, it could be a sign of trying to look at the data again.
I suspect the mislabeling in the frontal/lateral view is one of the reasons for the limitation of the validation score.
Restricting data to the frontal view only could be more vulnerable to the effect of mislabels in frontal/lateral information than using both frontal and lateral view.
In the asymmetric loss paper, Ridnic, T. et al. (2021) emphasized the necessity of rejecting ground-truth mislabels because it affects heavily to the loss value and drives the training process the wrong way.
Furthermore, in my personal opinion, it could be worse than target class mislabeling because there is no clear way to handle it without doing data preprocessing.
Let's dive into the 4 cases of mislabeling existence in train and test. (The test is changeable to the validation)
- Mislabels are both in train and test
Most likely among the 4 cases, and the subject what I want to suggest finding a way to handle it. On the positive side, train and test are in a similar distribution but it is hard to expect a model to learn the pattern of lateral view images because of the small number of samples. Thus, mislabels disturbs the optimizer in train, and disturbs evaluating the model performance by unfairly lessening scores in test.
- Mislabels are in train but not in test
This case will be better than cases 1 and 3. Mislabeled data might drive the model training the wrong way but if the number of mislabels in the train is not big, the test process will go as we want. However, given the data structure of MIMIC, it is hard to expect.
- Mislabels are not in train but in test
Probably the worst case. There is no way to train to handle lateral images. For the model, it is an unseen & out of distribution case and scores might indicate overfitting. However, given the huge number of train compare to test, the possibility of this case seems very low.
- Mislabels are not in both train and test
In this case, there is no problem but I think it is hard to guarantee. Even if CheXpert is clear about this, there is no guarantee about the other datasets such as MIMIC, BRAX, etc.
- Pham, H. H., Le, T. T., Tran, D. Q., Ngo, D. T., & Nguyen, H. Q. (2021). Interpreting chest X-rays via CNNs that exploit hierarchical disease dependencies and uncertainty labels. Neurocomputing, 437, 186-194. (https://arxiv.org/pdf/1911.06475.pdf)
- Ridnik, T., Ben-Baruch, E., Zamir, N., Noy, A., Friedman, I., Protter, M., & Zelnik-Manor, L. (2021). Asymmetric loss for multi-label classification. In Proceedings of the IEEE/CVF International Conference on Computer Vision (pp. 82-91). https://openaccess.thecvf.com/content/ICCV2021/papers/Ridnik_Asymmetric_Loss_for_Multi-Label_Classification_ICCV_2021_paper.pdf)
How
I suggest a preprocessing python script to handle this problem.
- If we can assume that the number of mislabel is small enough, I think that a model can learn the difference between frontal and lateral
- Manually picking images can be better in terms of data accuracy but it is time-consuming and hard to convince users to try due to the reproducibility
- Since there are many dataset such as CheXpert, MIMIC, Brax, etc, it could be a time-efficient choice if we can make a reusable script for every dataset
- The purpose of this script will be not to achieve perfect data cleaning but would like to have cleaner data with a reproducible & automated process
- Given that classifying frontal/lateral is not a difficult problem, it plausibly does not need a hyperparameter tuning. Thus, it will be okay with a hard-coded model and the other settings
- Using our code will be more time-efficient than making it from scratch
- Since we already have the data loader class, it could be efficient to use it (e.g. add a data-cleaning mode as a keyword argument)
- Using paths in hydra config will be good considering the user reproducibility
- Personally, creating a new csv file such as train_cleaned.csv will be enough as a result of this script but any other idea will always be welcomed
- Using if else syntax by
if (train_cleaned.csv not exists in the path) -> running the script else -> pass
will be good to save the time because cleaned csv is no need to make again and again in every experiments
What
Fixing mislabels in frontal/lateral information for better performance
Why
Mislabels in frontal/lateral information might affect stronger than we expected.
We've conventionally trained our model only for the frontal view data. Using the frontal view is not unusual. Pham, H. H. et al.(2021), one of our preferred papers, also mentioned this restriction of data while training.
However, it is hard to overcome the validation ROC-AUC score of 0.9 so far. Since ROC-AUC 0.9 indicates that easy samples are already classified well but there are some difficult samples, it could be a sign of trying to look at the data again.
I suspect the mislabeling in the frontal/lateral view is one of the reasons for the limitation of the validation score.
Restricting data to the frontal view only could be more vulnerable to the effect of mislabels in frontal/lateral information than using both frontal and lateral view.
In the asymmetric loss paper, Ridnic, T. et al. (2021) emphasized the necessity of rejecting ground-truth mislabels because it affects heavily to the loss value and drives the training process the wrong way.
Furthermore, in my personal opinion, it could be worse than target class mislabeling because there is no clear way to handle it without doing data preprocessing.
Let's dive into the 4 cases of mislabeling existence in train and test. (The test is changeable to the validation)
Most likely among the 4 cases, and the subject what I want to suggest finding a way to handle it. On the positive side, train and test are in a similar distribution but it is hard to expect a model to learn the pattern of lateral view images because of the small number of samples. Thus, mislabels disturbs the optimizer in train, and disturbs evaluating the model performance by unfairly lessening scores in test.
This case will be better than cases 1 and 3. Mislabeled data might drive the model training the wrong way but if the number of mislabels in the train is not big, the test process will go as we want. However, given the data structure of MIMIC, it is hard to expect.
Probably the worst case. There is no way to train to handle lateral images. For the model, it is an unseen & out of distribution case and scores might indicate overfitting. However, given the huge number of train compare to test, the possibility of this case seems very low.
In this case, there is no problem but I think it is hard to guarantee. Even if CheXpert is clear about this, there is no guarantee about the other datasets such as MIMIC, BRAX, etc.
How
I suggest a preprocessing python script to handle this problem.
if (train_cleaned.csv not exists in the path) -> running the script else -> pass
will be good to save the time because cleaned csv is no need to make again and again in every experiments