소개 • 방법 재현 • 재현 된 결과 • 사용 방법 • 라이센스 • 승인 • 연락처

가장 구현 된 방법을 사용하여 클래스 인익 학습을위한 도구 상자 인 Pycil에 오신 것을 환영합니다. Pytorch의 "Pycil : Class-Incremental Learning을위한 Python 도구 상자"의 코드 저장소입니다. 작업 에이 저장소의 컨텐츠를 사용하는 경우 다음 BIB 항목을 인용하십시오.
@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}
}
기존의 기계 학습 시스템은 폐쇄 된 세계 설정에 따라 배포되며 오프라인 교육 프로세스 전에 전체 교육 데이터가 필요합니다. 그러나 실제 응용 프로그램은 종종 들어오는 새로운 클래스에 직면하고 있으며 모델은이를 지속적으로 통합해야합니다. 학습 패러다임을 CIL (Class-Incremental Learning)이라고합니다. 우리는 기계 학습 커뮤니티에서 연구원의 부담을 완화하기 위해 등급 비주교 학습을위한 몇 가지 주요 알고리즘을 구현하는 Python Toolbox를 제안합니다. 이 도구 상자에는 EWC 및 ICARL과 같은 CIL의 여러 창립 작품 구현이 포함되어 있지만 새로운 기본 연구를 수행하는 데 사용할 수있는 현재의 최첨단 알고리즘도 제공합니다. Python Class-Incremental Learning 용 Pycil이라는이 도구 상자는 MIT 라이센스가있는 오픈 소스입니다.
증분 학습에 대한 자세한 내용은 다음과 같은 독서 자료를 참조하십시오.
FineTune : 새로운 작업의 매개 변수를 단순히 업데이트하는 기준 방법.EWC : 신경망에서 치명적인 잊어 버린 극복. PNAS2017 [종이]LwF : 잊지 않고 배우는 것. ECCV2016 [종이]Replay : 예시적인 재생이있는 기준 방법.GEM : 지속적인 학습을위한 그라디언트 에피소드 메모리. NIPS2017 [종이]iCaRL : 증분 분류기 및 표현 학습. CVPR2017 [종이]BiC : 대규모 증분 학습. CVPR2019 [종이]WA : 수업 증분 학습에서 차별과 공정성 유지. CVPR2020 [종이]PODNet : Podnet : 소규모 작업 증분 학습을위한 풀링 출력 증류. ECCV2020 [종이]DER : der : 수업 증분 학습을위한 동적으로 확장 가능한 표현. CVPR2021 [종이]PASS : 증분 학습을위한 프로토 타입 확대 및 자기 감독. CVPR2021 [종이]RMM : RMM : 클래스 점수 학습을위한 강화 메모리 관리. Neurips2021 [종이]IL2A : 이중 확대를 통한 계급 학습. Neurips2021 [종이]ACIL : 절대 암기 및 개인 정보 보호를 통한 분석 학급 증가 학습. Neurips 2022 [종이]SSRE : 비 임시 클래스-점수 학습에 대한 자체 유지 표현 확장. CVPR2022 [종이]FeTrIL : 예시가없는 클래스-점수 학습을위한 특징 번역. WACV2023 [종이]Coil : 계급 학습 학습을위한 공동 전환. ACM MM2021 [종이]FOSTER : 등급 비상 학습을위한 특징 향상 및 압축. ECCV 2022 [종이]MEMO : 모델 또는 603 예 : 메모리 효율적인 계급 학습을 향해. ICLR 2023 스포트라이트 [종이]BEEF : 쇠고기 : 에너지 기반 확장 및 융합을 통한 이중 호환 계급 학습. ICLR 2023 [종이]DS-AL : 예시가없는 클래스-점수 학습을위한 이중 스트림 분석 학습. AAAI 2024 [종이]SimpleCIL : 미리 훈련 된 모델로 계급 불확실한 학습을 다시 방문 : 일반화 가능성과 적응성이 필요합니다. IJCV 2024 [종이]Aper : 미리 훈련 된 모델로 계급 학습 학습을 다시 방문 : 일반화 및 적응성이 필요합니다. IJCV 2024 [종이] 


더 많은 실험 세부 사항과 결과는 설문 조사에서 찾을 수 있습니다.
이 github 저장소를 복제하십시오.
git clone https://github.com/G-U-N/PyCIL.git
cd PyCIL
[MODEL NAME].json 파일을 편집하십시오.[MODEL NAME].py 파일 (예 : models/icarl.py )에서 하이퍼 파라미터를 편집하십시오.python main.py --config=./exps/[MODEL NAME].json [모델 이름]이 finetune , ewc , lwf , replay , gem , icarl , bic , wa , podnet , der 등에서 선택 해야하는 경우
hyper-parametersPYCIL을 사용하는 경우 해당 JSON 파일에서 글로벌 매개 변수 및 알고리즘 별 하이퍼 패러 아미질을 편집 할 수 있습니다.
이 매개 변수에는 다음이 포함됩니다.
ResNet32 CIFAR100 에 사용되며 ResNet18 ImageNet 에 사용됩니다.모델 최적화 측면에서 다른 매개 변수, 예를 들어, 배치 크기, 최적화 시대, 학습 속도, 학습 속도 부패, 중량 부패, 이정표 및 온도는 해당 Python 파일에서 수정할 수 있습니다.
CIFAR100 , imagenet100, 및 imagenet1000 의 사전 처리를 구현했습니다. CIFAR100 에 대한 교육은이 프레임 워크가 자동으로 다운로드됩니다. imagenet100/1000 에 대한 교육을 받으면 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/'다음은 imagenet100 (또는 imagenet-sub)의 파일 목록입니다.
미리 훈련 된 모델 기반 도메인-점수 학습에 대한 이중 통합 ( ARXIV 2024 ) [논문]
미리 훈련 된 모델로 계급 점수 학습 재 방문 : 일반화 성과 적응성이 필요합니다 ( IJCV 2024 ) [논문] [코드]
계급 학습 학습 : 설문 조사 ( TPAMI 2024 ) [논문] [코드]
미리 훈련 된 모델 기반 클래스-점수 학습을위한 확장 가능한 서브 스페이스 앙상블 ( CVPR 2024 ) [논문] [코드]
클래스-상업 학습을위한 다층 리허설 기능 증강 ( ICML 2024 ) [논문] [코드]
미리 훈련 된 모델을 사용한 지속적인 학습 : 설문 조사 ( IJCAI 2024 ) [논문] [코드]
긴 꼬리 클래스 인익 학습을위한 적응 형 어댑터 라우팅 ( 기계 학습 2024 ) [논문] [코드]
비전 언어 모델에 대한 잊지 않고 학습 ( ARXIV 2023 ) [논문]
파일럿 : 사전 훈련 된 모델 기반 연속 학습 도구 상자 ( ARXIV 2023 ) [논문] [코드]
훈련이없는 프로토 타입 교정을 통한 소수의 클래스-점수 학습 ( Neurips 2023 ) [논문] [코드]
쇠고기 : 에너지 기반 확장 및 퓨전을 통한 양성 호환 계급 학습 ( ICLR 2023 ) [논문] [코드]
모델 또는 603 예제 : 메모리 효율적인 클래스 점수 학습 ( ICLR 2023 ) [논문] [코드]
다중 위상 작업을 샘플링하여 소수의 전환 학습 ( TPAMI 2022 ) [논문] [코드]
Foster : 클래스-점수 학습을위한 기능 부스팅 및 압축 ( ECCV 2022 ) [논문] [코드]
앞으로 호환 가능한 소수의 클래스-점수 학습 ( CVPR 2022 ) [논문] [코드]
클래스-점수 학습을위한 공동 전환 ( ACM MM 2021 ) [논문] [코드]
에너지 소비 및 계산 발자국에 중점을 둔 산업 지속적인 학습 시나리오의 현실적인 평가 ( ICCV 2023 ) [논문] [코드]
클래스 증분 학습을위한 동적 잔차 분류기 ( ICCV 2023 ) [논문] [코드]
미리 훈련 된 변압기로 학습 : 도메인 증분 학습을위한 Occam의 면도기 ( Neurips 2022 ) [논문] [코드]
이 저장소에 나열된 MIT 라이센스를 확인하십시오.
우리는 우리의 작업에 유용한 구성 요소/기능을 제공하는 다음 저장소에 감사드립니다.
교육 흐름 및 데이터 구성은 지속적인 학습 재생산을 기반으로합니다. 레포의 원래 정보는 기본 지점에서 사용할 수 있습니다.
궁금한 점이 있으시면 Da-wei Zhou ([email protected]) 및 Fu-Yun Wang ([email protected])과 함께 문제를 열거나 연락하여 새로운 기능을 자유롭게 제안하십시오. 코드를 즐기십시오.