- Version 3.5: 0.8222 (FFT), 0.9089 (Gray)
- Version 3: 0.8217 (FFT), 0.9173 (Gray)
- Version 2: 0.8137 (FFT), 0.9121 (Gray)
- Version 1: 0.7931 (FFT), 0.8685 (Gray)
- Independently trained branches: 0.7589 (FFT), 0.8907 (Gray)
- Integrated a weighted loss based pseudo-labeling.
- Integrated stochastic pseudo-labeled sample filtering.
- Added MLFlow API for training and results visualization.
This version contains improvements for the cotraining algortihm after doing some research.
- Changed the Loss function to contain the KL divergence on the FFT model.
- The datasets will now always be the same for both models.
- The pseudo-labeling is done together, based on the "opinion" of both models.
- The confidence threshold is capped at the maximum value of 98.5%.
- Reevaluation is done based on the agreement between both models.
This version contains the prototype for the cotraining algortihm presented by Blum and Mitchell [1998]. Added features:
- Added the backbone for SqueezeNet for the multi-branch neural network that contains one branch view for Grayscale images and one view for Frequency domain images. The FFT images represent only the abosolute value of magnitude.
- The Loss function is a basic sum of the two Cross Entropy results for each view.
- Each model will perform pseudo-label generation and will feed the Dataloader for the other model. The label is chosen by each model independently and inserted in the Dataloader of the other model.
- Reevaluation of the added examples is done by feeding the samples to the models they were attributed to. If the prediction is different, the samples are removed from the datasets.
- Confidence threshold is what determines a label to be chosen. This is set as a fixed value and is being changed based on the removal rate during the reevaluation.
- Added a Learning Rate Scheduler.