Introducción • Métodos reproducidos • Resultados reproducidos • Cómo usar • Licencia • Agradecimientos • Contacto

Bienvenido a Pycil, tal vez la caja de herramientas para el aprendizaje de la clase con los métodos más implementados. Este es el repositorio de códigos para "Pycil: una caja de herramientas de Python para el aprendizaje de la clase" [documento] en Pytorch. Si usa algún contenido de este repositorio para su trabajo, cite las siguientes entradas de babero:
@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}
}
Los sistemas tradicionales de aprendizaje automático se implementan bajo la configuración del mundo cerrado, que requiere los datos de capacitación completos antes del proceso de capacitación fuera de línea. Sin embargo, las aplicaciones del mundo real a menudo enfrentan las nuevas clases entrantes, y un modelo debe incorporarlas continuamente. El paradigma de aprendizaje se llama Learning-Incremental Learning (CIL). Proponemos una caja de herramientas de Python que implementa varios algoritmos clave para el aprendizaje de clase de clase para aliviar la carga de los investigadores en la comunidad de aprendizaje automático. La caja de herramientas contiene implementaciones de una serie de obras fundadoras de CIL, como EWC e ICARL, pero también proporciona algoritmos actuales de última generación que pueden usarse para realizar una nueva investigación fundamental. Esta caja de herramientas, llamada Pycil para Python Class-Incremental Learning, es de código abierto con una licencia MIT.
Para obtener más información sobre el aprendizaje incremental, puede consultar estos materiales de lectura:
FineTune : método de línea de base que simplemente actualiza los parámetros en nuevas tareas.EWC : superar el olvido catastrófico en las redes neuronales. PNAS2017 [papel]LwF : Aprender sin olvidar. ECCV2016 [Documento]Replay : método de línea de base con repetición ejemplar.GEM : memoria episódica de gradiente para el aprendizaje continuo. NIPS2017 [papel]iCaRL : clasificador incremental y aprendizaje de representación. CVPR2017 [Documento]BiC : aprendizaje incremental a gran escala. CVPR2019 [papel]WA : Mantener la discriminación y la equidad en el aprendizaje incremental de clase. CVPR2020 [papel]PODNet : Podnet: destilación de salidas agrupadas para aprendizaje incremental de tareas pequeñas. ECCV2020 [papel]DER : DER: Representación dinámicamente expandible para el aprendizaje incremental de clase. CVPR2021 [Documento]PASS : Aumento de prototipos y auto-supervisión para el aprendizaje incremental. CVPR2021 [Documento]RMM : RMM: Gestión de memoria reforzada para el aprendizaje de clase de clase. Neurips2021 [papel]IL2A : Aprendizaje de clase-incremental a través del aumento dual. Neurips2021 [papel]ACIL : aprendizaje analítico-incremental con memorización absoluta y protección de la privacidad. Neurips 2022 [papel]SSRE : Expansión de representación autosuficiente para el aprendizaje de clase sin trabajo no explarado. CVPR2022 [Documento]FeTrIL : Traducción de características para el aprendizaje sincremental de clase sin ejemplar. WACV2023 [Documento]Coil : co-transportista para el aprendizaje de clase de clase. ACM MM2021 [papel]FOSTER : impulso de características y compresión para el aprendizaje de clase de clase. ECCV 2022 [Documento]MEMO : un modelo o 603 ejemplares: hacia el aprendizaje de la clase-incremento de la memoria. ICLR 2023 Spotlight [papel]BEEF : carne de res: aprendizaje bi-compatible de clase-incremental a través de la expansión y fusión basadas en la energía. ICLR 2023 [Documento]DS-AL : un aprendizaje analítico de doble torrente para el aprendizaje de incremento de clase sin ejemplar. AAAI 2024 [Documento]SimpleCIL : Revisando el aprendizaje de clase-incremental con modelos previamente capacitados: la generalización y la adaptación son todo lo que necesita. IJCV 2024 [papel]Aper : Revisando el aprendizaje de la clase-incremental con modelos previamente capacitados: la generalización y la adaptación son todo lo que necesita. IJCV 2024 [papel] 


Se pueden encontrar más detalles y resultados experimentales en nuestra encuesta.
Clone Este repositorio de GitHub:
git clone https://github.com/G-U-N/PyCIL.git
cd PyCIL
[MODEL NAME].json para la configuración global.[MODEL NAME].py Ej., models/icarl.py ).python main.py --config=./exps/[MODEL NAME].json donde [el nombre del modelo] debe elegirse de finetune , ewc , lwf , replay , gem , icarl , bic , wa , podnet , der , etc.
hyper-parametersAl usar Pycil, puede editar los parámetros globales e hiperparámetro específico de algoritmo en el archivo JSON correspondiente.
Estos parámetros incluyen:
ResNet32 se utiliza para CIFAR100 , y ResNet18 se usa para ImageNet .Otros parámetros en términos de optimización del modelo, por ejemplo, tamaño por lotes, época de optimización, tasa de aprendizaje, descomposición de la tasa de aprendizaje, descomposición de peso, hito y temperatura, se pueden modificar en el archivo de pitón correspondiente.
Hemos implementado el preprocesamiento de CIFAR100 , imagenet100, e imagenet1000 . Al entrenar en CIFAR100 , este marco lo descargará automáticamente. Al entrenar en imagenet100/1000 , debe especificar la carpeta de su conjunto de datos en 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/'Aquí está la lista de archivos de ImageNet100 (o dice ImageNet-sub).
Consolidación dual para aprendizaje de dominio de dominio basado en modelos previamente capacitado ( ARXIV 2024 ) [documento]
Revisando el aprendizaje de la clase-incremental con modelos previamente capacitados: la generalización y la adaptación son todo lo que necesita ( IJCV 2024 ) [documento] [Código]
Learning-Incremental Learning: una encuesta ( TPAMI 2024 ) [documento] [Código]
Conjunto de subespacio expandible para el aprendizaje de clase de clase basado en modelos previamente capacitado ( CVPR 2024 ) [documento] [Código]
Aumento de características de ensayo de múltiples capas para el aprendizaje de la clase-incremental ( ICML 2024 ) [documento] [Código]
Aprendizaje continuo con modelos previamente capacitados: una encuesta ( IJCAI 2024 ) [documento] [Código]
Enrutamiento adaptativo para el adaptador para el aprendizaje de cola larga ( aprendizaje automático 2024 ) [documento] [Código]
Aprender sin olvidar los modelos en idioma de visión ( ARXIV 2023 ) [Papel]
Piloto: una caja de herramientas de aprendizaje continuo basada en modelos previamente entrenada ( ARXIV 2023 ) [documento] [Código]
Aprendizaje de clase de clase de pocos disparos a través de la calibración de prototipos sin entrenamiento ( Neurips 2023 ) [documento] [Código]
Carne de res: aprendizaje de clase bi-compatible a través de expansión y fusión basadas en energía ( ICLR 2023 ) [documento] [código]
Un modelo o 603 ejemplares: hacia el aprendizaje incremental de clase eficiente en memoria ( ICLR 2023 ) [documento] [código]
Aprendizaje de clase de clase de pocos disparos mediante el muestreo de tareas múltiples ( TPAMI 2022 ) [documento] [Código]
Foster: impulso de características y compresión para el aprendizaje de clase de clase ( ECCV 2022 ) [documento] [Código]
Aprendizaje compatible con pocos disparos compatibles con la clase ( CVPR 2022 ) [documento] [Código]
Corransporte para el aprendizaje de clase de clase ( ACM MM 2021 ) [documento] [Código]
Hacia la evaluación realista de escenarios de aprendizaje continuo industrial con énfasis en el consumo de energía y la huella computacional ( ICCV 2023 ) [documento] [Código]
Clasificador residual dinámico para el aprendizaje incremental de clase ( ICCV 2023 ) [documento] [Código]
S-PROMPTS Aprendizaje con transformadores previamente capacitados: una navaja de afeitar de Occam para el aprendizaje incremental de dominio ( Neurips 2022 ) [documento] [Código]
Consulte la licencia MIT que se enumera en este repositorio.
Agradecemos los siguientes repos que proporcionan componentes/funciones útiles en nuestro trabajo.
El flujo de capacitación y las configuraciones de datos se basan en la reproducción de aprendizaje continuo. La información original del repositorio está disponible en la rama base.
Si hay alguna pregunta, no dude en proponer nuevas funciones abriendo un problema o contacto con el autor: Da-Wei Zhou ([email protected]) y Fu-yun Wang ([email protected]). Disfruta del código.