Dvir Samuel, Yuval Atzmon, Gal Chechik
Real-world data is predominantly unbalanced and long-tailed, but deep models struggle to recognize rare classes in the presence of frequent classes. Often, classes can be accompanied by side information like textual descriptions, but it is not fully clear how to use them for learning with unbalanced long-tail data. Such descriptions have been mostly used in (Generalized) Zero-shot learning (ZSL), suggesting that ZSL with class descriptions may also be useful for long-tail distributions. We describe DRAGON, a late-fusion architecture for long-tail learning with class descriptors. It learns to (1) correct the bias towards head classes on a sample-by-sample basis; and (2) fuse information from class-descriptions to improve the tail-class accuracy. We also introduce new benchmarks CUB-LT, SUN-LT, AWA-LT for long-tail learning with class-descriptions, building on existing learning-with-attributes datasets and a version of Imagenet-LT with class descriptors. DRAGON outperforms state-of-the-art models on the new benchmark. It is also a new SoTA on existing benchmarks for GFSL with class descriptors (GFSL-d) and standard (vision-only) long-tailed learning ImageNet-LT, CIFAR-10, 100, and Places365.
| Task | Dataset | Metric | Value | Model |
|---|---|---|---|---|
| Image Classification | Places-LT | Top-1 Accuracy | 38.1 | smDRAGON |
| Image Classification | CIFAR-10-LT (ρ=10) | Error Rate | 11.84 | smDRAGON |
| Image Classification | CIFAR-100-LT (ρ=10) | Error Rate | 41.23 | smDRAGON |
| Image Classification | ImageNet-LT | Top-1 Accuracy | 42 | smDRAGON |
| Image Classification | CIFAR-100-LT (ρ=100) | Error Rate | 56.5 | smDRAGON |
| Image Classification | CIFAR-10-LT (ρ=100) | Error Rate | 20.37 | smDRAGON |
| Image Classification | CUB-LT | Long-Tailed Accuracy | 66.5 | DRAGON + Bal'Loss |
| Image Classification | CUB-LT | Per-Class Accuracy | 60.1 | DRAGON + Bal'Loss |
| Image Classification | CUB-LT | Long-Tailed Accuracy | 67.7 | DRAGON |
| Image Classification | CUB-LT | Per-Class Accuracy | 57.8 | DRAGON |
| Image Classification | AWA-LT | Long-Tailed Accuracy | 92.2 | DRAGON + Bal'Loss |
| Image Classification | AWA-LT | Per-Class Accuracy | 76.2 | DRAGON + Bal'Loss |
| Image Classification | AWA-LT | Long-Tailed Accuracy | 94.1 | DRAGON |
| Image Classification | AWA-LT | Per-Class Accuracy | 74.1 | DRAGON |
| Image Classification | SUN-LT | Long-Tailed Accuracy | 38.5 | DRAGON + Bal'Loss |
| Image Classification | SUN-LT | Per-Class Accuracy | 36.1 | DRAGON + Bal'Loss |
| Image Classification | SUN-LT | Long-Tailed Accuracy | 40.4 | DRAGON |
| Image Classification | SUN-LT | Per-Class Accuracy | 34.8 | DRAGON |
| Image Classification | ImageNet-LT-d | Per-Class Accuracy | 53.5 | DRAGON + Bal'Loss |
| Image Classification | ImageNet-LT-d | Per-Class Accuracy | 51.2 | DRAGON |
| Few-Shot Image Classification | Places-LT | Top-1 Accuracy | 38.1 | smDRAGON |
| Few-Shot Image Classification | CIFAR-10-LT (ρ=10) | Error Rate | 11.84 | smDRAGON |
| Few-Shot Image Classification | CIFAR-100-LT (ρ=10) | Error Rate | 41.23 | smDRAGON |
| Few-Shot Image Classification | ImageNet-LT | Top-1 Accuracy | 42 | smDRAGON |
| Few-Shot Image Classification | CIFAR-100-LT (ρ=100) | Error Rate | 56.5 | smDRAGON |
| Few-Shot Image Classification | CIFAR-10-LT (ρ=100) | Error Rate | 20.37 | smDRAGON |
| Few-Shot Image Classification | CUB-LT | Long-Tailed Accuracy | 66.5 | DRAGON + Bal'Loss |
| Few-Shot Image Classification | CUB-LT | Per-Class Accuracy | 60.1 | DRAGON + Bal'Loss |
| Few-Shot Image Classification | CUB-LT | Long-Tailed Accuracy | 67.7 | DRAGON |
| Few-Shot Image Classification | CUB-LT | Per-Class Accuracy | 57.8 | DRAGON |
| Few-Shot Image Classification | AWA-LT | Long-Tailed Accuracy | 92.2 | DRAGON + Bal'Loss |
| Few-Shot Image Classification | AWA-LT | Per-Class Accuracy | 76.2 | DRAGON + Bal'Loss |
| Few-Shot Image Classification | AWA-LT | Long-Tailed Accuracy | 94.1 | DRAGON |
| Few-Shot Image Classification | AWA-LT | Per-Class Accuracy | 74.1 | DRAGON |
| Few-Shot Image Classification | SUN-LT | Long-Tailed Accuracy | 38.5 | DRAGON + Bal'Loss |
| Few-Shot Image Classification | SUN-LT | Per-Class Accuracy | 36.1 | DRAGON + Bal'Loss |
| Few-Shot Image Classification | SUN-LT | Long-Tailed Accuracy | 40.4 | DRAGON |
| Few-Shot Image Classification | SUN-LT | Per-Class Accuracy | 34.8 | DRAGON |
| Few-Shot Image Classification | ImageNet-LT-d | Per-Class Accuracy | 53.5 | DRAGON + Bal'Loss |
| Few-Shot Image Classification | ImageNet-LT-d | Per-Class Accuracy | 51.2 | DRAGON |
| Generalized Few-Shot Classification | Places-LT | Top-1 Accuracy | 38.1 | smDRAGON |
| Generalized Few-Shot Classification | CIFAR-10-LT (ρ=10) | Error Rate | 11.84 | smDRAGON |
| Generalized Few-Shot Classification | CIFAR-100-LT (ρ=10) | Error Rate | 41.23 | smDRAGON |
| Generalized Few-Shot Classification | ImageNet-LT | Top-1 Accuracy | 42 | smDRAGON |
| Generalized Few-Shot Classification | CIFAR-100-LT (ρ=100) | Error Rate | 56.5 | smDRAGON |
| Generalized Few-Shot Classification | CIFAR-10-LT (ρ=100) | Error Rate | 20.37 | smDRAGON |
| Generalized Few-Shot Classification | CUB-LT | Long-Tailed Accuracy | 66.5 | DRAGON + Bal'Loss |
| Generalized Few-Shot Classification | CUB-LT | Per-Class Accuracy | 60.1 | DRAGON + Bal'Loss |
| Generalized Few-Shot Classification | CUB-LT | Long-Tailed Accuracy | 67.7 | DRAGON |
| Generalized Few-Shot Classification | CUB-LT | Per-Class Accuracy | 57.8 | DRAGON |
| Generalized Few-Shot Classification | AWA-LT | Long-Tailed Accuracy | 92.2 | DRAGON + Bal'Loss |
| Generalized Few-Shot Classification | AWA-LT | Per-Class Accuracy | 76.2 | DRAGON + Bal'Loss |
| Generalized Few-Shot Classification | AWA-LT | Long-Tailed Accuracy | 94.1 | DRAGON |
| Generalized Few-Shot Classification | AWA-LT | Per-Class Accuracy | 74.1 | DRAGON |
| Generalized Few-Shot Classification | SUN-LT | Long-Tailed Accuracy | 38.5 | DRAGON + Bal'Loss |
| Generalized Few-Shot Classification | SUN-LT | Per-Class Accuracy | 36.1 | DRAGON + Bal'Loss |
| Generalized Few-Shot Classification | SUN-LT | Long-Tailed Accuracy | 40.4 | DRAGON |
| Generalized Few-Shot Classification | SUN-LT | Per-Class Accuracy | 34.8 | DRAGON |
| Generalized Few-Shot Classification | ImageNet-LT-d | Per-Class Accuracy | 53.5 | DRAGON + Bal'Loss |
| Generalized Few-Shot Classification | ImageNet-LT-d | Per-Class Accuracy | 51.2 | DRAGON |
| Long-tail Learning | Places-LT | Top-1 Accuracy | 38.1 | smDRAGON |
| Long-tail Learning | CIFAR-10-LT (ρ=10) | Error Rate | 11.84 | smDRAGON |
| Long-tail Learning | CIFAR-100-LT (ρ=10) | Error Rate | 41.23 | smDRAGON |
| Long-tail Learning | ImageNet-LT | Top-1 Accuracy | 42 | smDRAGON |
| Long-tail Learning | CIFAR-100-LT (ρ=100) | Error Rate | 56.5 | smDRAGON |
| Long-tail Learning | CIFAR-10-LT (ρ=100) | Error Rate | 20.37 | smDRAGON |
| Long-tail Learning | CUB-LT | Long-Tailed Accuracy | 66.5 | DRAGON + Bal'Loss |
| Long-tail Learning | CUB-LT | Per-Class Accuracy | 60.1 | DRAGON + Bal'Loss |
| Long-tail Learning | CUB-LT | Long-Tailed Accuracy | 67.7 | DRAGON |
| Long-tail Learning | CUB-LT | Per-Class Accuracy | 57.8 | DRAGON |
| Long-tail Learning | AWA-LT | Long-Tailed Accuracy | 92.2 | DRAGON + Bal'Loss |
| Long-tail Learning | AWA-LT | Per-Class Accuracy | 76.2 | DRAGON + Bal'Loss |
| Long-tail Learning | AWA-LT | Long-Tailed Accuracy | 94.1 | DRAGON |
| Long-tail Learning | AWA-LT | Per-Class Accuracy | 74.1 | DRAGON |
| Long-tail Learning | SUN-LT | Long-Tailed Accuracy | 38.5 | DRAGON + Bal'Loss |
| Long-tail Learning | SUN-LT | Per-Class Accuracy | 36.1 | DRAGON + Bal'Loss |
| Long-tail Learning | SUN-LT | Long-Tailed Accuracy | 40.4 | DRAGON |
| Long-tail Learning | SUN-LT | Per-Class Accuracy | 34.8 | DRAGON |
| Long-tail Learning | ImageNet-LT-d | Per-Class Accuracy | 53.5 | DRAGON + Bal'Loss |
| Long-tail Learning | ImageNet-LT-d | Per-Class Accuracy | 51.2 | DRAGON |
| Generalized Few-Shot Learning | AwA2 | Per-Class Accuracy (1-shot) | 67.1 | DRAGON |
| Generalized Few-Shot Learning | AwA2 | Per-Class Accuracy (10-shots) | 81.9 | DRAGON |
| Generalized Few-Shot Learning | AwA2 | Per-Class Accuracy (2-shots) | 69.1 | DRAGON |
| Generalized Few-Shot Learning | AwA2 | Per-Class Accuracy (20-shots) | 83.3 | DRAGON |
| Generalized Few-Shot Learning | AwA2 | Per-Class Accuracy (5-shots) | 76.7 | DRAGON |
| Generalized Few-Shot Learning | SUN | Per-Class Accuracy (1-shot) | 41 | DRAGON |
| Generalized Few-Shot Learning | SUN | Per-Class Accuracy (10-shots) | 48.2 | DRAGON |
| Generalized Few-Shot Learning | SUN | Per-Class Accuracy (2-shots) | 43.8 | DRAGON |
| Generalized Few-Shot Learning | SUN | Per-Class Accuracy (5-shots) | 46.7 | DRAGON |
| Generalized Few-Shot Learning | Places-LT | Top-1 Accuracy | 38.1 | smDRAGON |
| Generalized Few-Shot Learning | CIFAR-10-LT (ρ=10) | Error Rate | 11.84 | smDRAGON |
| Generalized Few-Shot Learning | CIFAR-100-LT (ρ=10) | Error Rate | 41.23 | smDRAGON |
| Generalized Few-Shot Learning | ImageNet-LT | Top-1 Accuracy | 42 | smDRAGON |
| Generalized Few-Shot Learning | CIFAR-100-LT (ρ=100) | Error Rate | 56.5 | smDRAGON |
| Generalized Few-Shot Learning | CIFAR-10-LT (ρ=100) | Error Rate | 20.37 | smDRAGON |
| Generalized Few-Shot Learning | CUB-LT | Long-Tailed Accuracy | 66.5 | DRAGON + Bal'Loss |
| Generalized Few-Shot Learning | CUB-LT | Per-Class Accuracy | 60.1 | DRAGON + Bal'Loss |
| Generalized Few-Shot Learning | CUB-LT | Long-Tailed Accuracy | 67.7 | DRAGON |
| Generalized Few-Shot Learning | CUB-LT | Per-Class Accuracy | 57.8 | DRAGON |
| Generalized Few-Shot Learning | AWA-LT | Long-Tailed Accuracy | 92.2 | DRAGON + Bal'Loss |
| Generalized Few-Shot Learning | AWA-LT | Per-Class Accuracy | 76.2 | DRAGON + Bal'Loss |
| Generalized Few-Shot Learning | AWA-LT | Long-Tailed Accuracy | 94.1 | DRAGON |
| Generalized Few-Shot Learning | AWA-LT | Per-Class Accuracy | 74.1 | DRAGON |
| Generalized Few-Shot Learning | SUN-LT | Long-Tailed Accuracy | 38.5 | DRAGON + Bal'Loss |
| Generalized Few-Shot Learning | SUN-LT | Per-Class Accuracy | 36.1 | DRAGON + Bal'Loss |
| Generalized Few-Shot Learning | SUN-LT | Long-Tailed Accuracy | 40.4 | DRAGON |
| Generalized Few-Shot Learning | SUN-LT | Per-Class Accuracy | 34.8 | DRAGON |
| Generalized Few-Shot Learning | ImageNet-LT-d | Per-Class Accuracy | 53.5 | DRAGON + Bal'Loss |
| Generalized Few-Shot Learning | ImageNet-LT-d | Per-Class Accuracy | 51.2 | DRAGON |