Introduction • Méthodes reproduites • Résultats reproduits • Comment utiliser • Licence • Remerciements • Contact

Bienvenue à Pycil, peut-être la boîte à outils pour l'apprentissage en cours de classe avec les méthodes les plus implémentées. Il s'agit du référentiel de code pour "PyCil: une boîte à outils Python pour l'apprentissage-incriment de classe" [Paper] dans Pytorch. Si vous utilisez un contenu de ce dépôt pour votre travail, veuillez citer les entrées de dossiers suivantes:
@article{zhou2023pycil,
author = {Da-Wei Zhou and Fu-Yun Wang and Han-Jia Ye and De-Chuan Zhan},
title = {PyCIL: a Python toolbox for class-incremental learning},
journal = {SCIENCE CHINA Information Sciences},
year = {2023},
volume = {66},
number = {9},
pages = {197101},
doi = {https://doi.org/10.1007/s11432-022-3600-y}
}
@article{zhou2024class,
author = {Zhou, Da-Wei and Wang, Qi-Wei and Qi, Zhi-Hong and Ye, Han-Jia and Zhan, De-Chuan and Liu, Ziwei},
title = {Class-Incremental Learning: A Survey},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
volume={46},
number={12},
pages={9851--9873},
year = {2024}
}
@inproceedings{zhou2024continual,
title={Continual learning with pre-trained models: A survey},
author={Zhou, Da-Wei and Sun, Hai-Long and Ning, Jingyi and Ye, Han-Jia and Zhan, De-Chuan},
booktitle={IJCAI},
pages={8363-8371},
year={2024}
}
Les systèmes d'apprentissage automatique traditionnels sont déployés dans le cadre du monde fermé, qui nécessite la totalité des données de formation avant le processus de formation hors ligne. Cependant, les applications du monde réel sont souvent confrontées aux nouvelles classes entrantes, et un modèle devrait les intégrer en permanence. Le paradigme d'apprentissage est appelé apprentissage en classe (CIL). Nous proposons une boîte à outils Python qui met en œuvre plusieurs algorithmes clés pour l'apprentissage en cours d'incitements pour soulager la charge des chercheurs de la communauté d'apprentissage automatique. La boîte à outils contient des implémentations d'un certain nombre d'œuvres fondatrices de CIL, telles que EWC et ICARL, mais fournit également des algorithmes actuels de pointe qui peuvent être utilisés pour mener de nouvelles recherches fondamentales. Cette boîte à outils, nommée Pycil pour Python Class-Incremental Learning, est open source avec une licence MIT.
Pour plus d'informations sur l'apprentissage incrémentiel, vous pouvez vous référer à ces documents de lecture:
FineTune : Méthode de base qui met simplement à jour les paramètres sur les nouvelles tâches.EWC : Surmonter l'oubli catastrophique dans les réseaux de neurones. PNAS2017 [papier]LwF : Apprendre sans oublier. ECCV2016 [papier]Replay : Méthode de base avec relecture exemplaire.GEM : Mémoire épisodique de dégradé pour l'apprentissage continu. NIPS2017 [papier]iCaRL : Classificateur incrémental et apprentissage de la représentation. CVPR2017 [document]BiC : apprentissage incrémentiel à grande échelle. CVPR2019 [document]WA : Maintenir la discrimination et l'équité dans l'apprentissage progressif de classe. CVPR2020 [document]PODNet : PODNET: Distillation des sorties regroupées pour l'apprentissage incrémentiel de petites tâches. ECCV2020 [papier]DER : Der: Représentation dynamiquement extensible pour l'apprentissage incrémentiel de classe. CVPR2021 [Papier]PASS : Prototype Augmentation et auto-entension pour l'apprentissage incrémentiel. CVPR2021 [Papier]RMM : RMM: Gestion renforcée de la mémoire pour l'apprentissage en cours de classe. Neirips2021 [papier]IL2A : apprentissage-incriment de classe via une double augmentation. Neirips2021 [papier]ACIL : apprentissage analytique-classe-incriment avec mémorisation absolue et protection de la vie privée. Neirips 2022 [papier]SSRE : Expansion de la représentation auto-entretenue pour l'apprentissage non exemplaire de la classe-incriment. CVPR2022 [Papier]FeTrIL : Traduction de caractéristiques pour l'apprentissage sans exemplaire de classe-incriment. WACV2023 [papier]Coil : Co-transport pour l'apprentissage en classe-incriment. ACM MM2021 [papier]FOSTER : augmentation des fonctionnalités et compression pour l'apprentissage en cours d'incitements. ECCV 2022 [papier]MEMO : un modèle ou 603 exemplaires: vers l'apprentissage incité à la classe économe en mémoire. ICLR 2023 Spotlight [papier]BEEF : Boeuf: apprentissage bi-compatible dans la classe par une expansion et une fusion basées sur l'énergie. ICLR 2023 [papier]DS-AL : un apprentissage analytique à double stream pour l'apprentissage sans exemplaire en cours d'incitements. AAAI 2024 [papier]SimpleCIL : Revisiter l'apprentissage incriment en classe avec des modèles pré-formés: la généralisation et l'adaptabilité sont tout ce dont vous avez besoin. IJCV 2024 [papier]Aper : Revisiter l'apprentissage en cours d'incitation avec les modèles pré-formés: la généralisation et l'adaptabilité sont tout ce dont vous avez besoin. IJCV 2024 [papier] 


Des détails et des résultats plus expérimentaux peuvent être trouvés dans notre enquête.
Clone ce référentiel GitHub:
git clone https://github.com/G-U-N/PyCIL.git
cd PyCIL
[MODEL NAME].json pour les paramètres globaux.[MODEL NAME].py (par exemple, models/icarl.py ).python main.py --config=./exps/[MODEL NAME].json où [le nom du modèle] doit être choisi parmi finetune , ewc , lwf , replay , gem , icarl , bic , wa , podnet , der , etc.
hyper-parametersLorsque vous utilisez PYCIL, vous pouvez modifier les paramètres globaux et l'hyper-paramètre spécifique à l'algorithme dans le fichier JSON correspondant.
Ces paramètres incluent:
ResNet32 est utilisé pour CIFAR100 et ResNet18 est utilisé pour ImageNet .D'autres paramètres en termes d'optimisation du modèle, de par exemple, de taille par lots, d'époque d'optimisation, de taux d'apprentissage, de désintégration du taux d'apprentissage, de désintégration du poids, de jalon et de température, peuvent être modifiés dans le fichier Python correspondant.
Nous avons mis en œuvre le prétraitement de CIFAR100 , imagenet100, et imagenet1000 . Lors de la formation sur CIFAR100 , ce cadre le télécharge automatiquement. Lors de la formation sur imagenet100/1000 , vous devez spécifier le dossier de votre ensemble de données dans utils/data.py
def download_data ( self ):
assert 0 , "You should specify the folder of your dataset"
train_dir = '[DATA-PATH]/train/'
test_dir = '[DATA-PATH]/val/'Voici la liste de fichiers de ImageNet100 (ou dire ImageNet-Sub).
Double consolidation de l'apprentissage pré-formé sur le domaine incité au domaine ( Arxiv 2024 ) [document]
Revisiter l'apprentissage par classe-incriment avec des modèles pré-formés: la généralisation et l'adaptabilité sont tout ce dont vous avez besoin ( IJCV 2024 ) [Papier] [Code]
Apprentissage par classe-incriment: une enquête ( TPAMI 2024 ) [Papier] [Code]
Ensemble de sous-espace extensible pour l'apprentissage pré-formé par le modèle ( CVPR 2024 ) [Papier] [Code]
Augmentation des fonctionnalités de répétition multicouches pour l'apprentissage-incrémental de classe ( ICML 2024 ) [Papier] [Code]
Apprentissage continu avec des modèles pré-formés: une enquête ( IJCAI 2024 ) [document] [Code]
Routage adaptateur adaptatif pour l'apprentissage à longue queue ( apprentissage automatique 2024 ) [Papier] [Code]
Apprendre sans oublier pour les modèles de langue de vision ( Arxiv 2023 ) [Papier]
Pilote: une boîte à outils d'apprentissage continue basée sur un modèle pré-formé ( Arxiv 2023 ) [Papier] [Code]
Apprentissage à quelques coups de classe-incriment via l'étalonnage du prototype sans formation ( Neirips 2023 ) [Papier] [Code]
Boeuf: apprentissage bi-compatible dans la classe-incriment via l'expansion et la fusion basées sur l'énergie ( ICLR 2023 ) [Papier] [Code]
Un modèle ou 603 exemplaires: vers l'apprentissage incrimenturel économe en mémoire ( ICLR 2023 ) [Paper] [Code]
Apprentissage à quelques coups de classe par classement en échantillonnant des tâches multi-phases ( TPAMI 2022 ) [Papier] [Code]
Foster: augmentation des fonctionnalités et compression pour l'apprentissage incriment en classe ( ECCV 2022 ) [Papier] [Code]
Forward compatible à quelques coups d'apprentissage-incriment ( CVPR 2022 ) [Paper] [Code]
Co-transport pour l'apprentissage incriment en classe ( ACM MM 2021 ) [Papier] [Code]
Vers une évaluation réaliste des scénarios d'apprentissage continu industriels en mettant l'accent sur la consommation d'énergie et l'empreinte informatique ( ICCV 2023 ) [Papier] [Code]
Classificateur résiduel dynamique pour l'apprentissage incrémentiel de classe ( ICCV 2023 ) [Paper] [Code]
SPROMPTS S APPRENTISSEMENT AVEC LES TRANSFORMES PRÉ-TRAINTÉS: RAZOR D'UN OCCAM POUR L'APPRENTISSEMENT INCRÉMÉMAIRE DU DOMAINE ( NEIRIPS 2022 ) [PAPER] [CODE]
Veuillez vérifier la licence MIT répertoriée dans ce référentiel.
Nous remercions les références suivantes offrant des composants / fonctions utiles dans notre travail.
Le flux d'entraînement et les configurations de données sont basés sur le reproducteur de learning continue. Les informations originales du dépôt sont disponibles dans la branche de base.
S'il y a des questions, n'hésitez pas à proposer de nouvelles fonctionnalités en ouvrant un problème ou un contact avec l'auteur: Da-Wei Zhou ([email protected]) et fu-yun wang ([email protected]). Profitez du code.