flexmatch
**FlexMatch** is a **semi-supervised learning algorithm that extends FixMatch with class-specific flexible confidence thresholds** — allowing easy-to-learn classes to have higher thresholds and hard classes to have lower thresholds, improving learning fairness across classes.
**How Does FlexMatch Work?**
- **Curriculum**: Start with a lower threshold and increase it as the model improves.
- **Per-Class**: Each class has its own dynamic threshold based on its learning status.
- **Learning Status**: Track how well the model predicts each class on unlabeled data.
- **Threshold**: Classes that the model already handles well get higher thresholds. Struggling classes get lower thresholds.
- **Paper**: Zhang et al. (2021).
**Why It Matters**
- **Class Fairness**: FixMatch's fixed threshold causes the model to ignore hard classes early in training — FlexMatch fixes this.
- **Curriculum Learning**: The adaptive threshold naturally creates a curriculum from easy to hard classes.
- **SOTA**: Outperforms FixMatch significantly, especially with very few labels per class.
**FlexMatch** is **FixMatch with class-adaptive confidence** — ensuring every class gets a fair chance to contribute pseudo-labels during training.