はじめに•メソッド再現•再現された結果•使用方法•ライセンス•謝辞•連絡先

Pycilへようこそ。おそらく、最も実装された方法を使用したクラスインクリメンタル学習のツールボックスです。これは、Pytorchの「Pycil:A Class-Incremental LearningのPythonツールボックス」[Paper]のコードリポジトリです。このレポのコンテンツを作業に使用する場合は、次の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)と呼ばれます。機械学習コミュニティの研究者の負担を緩和するために、クラスインクリメンタル学習のためのいくつかの重要なアルゴリズムを実装するPythonツールボックスを提案します。このツールボックスには、EWCやICARLなどのCILの多くの設立作品の実装が含まれていますが、新しい基本的な研究の実施に使用できる現在の最先端のアルゴリズムも提供します。 Pythonクラスインクリメンタル学習用の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 :絶対的な暗記とプライバシー保護を伴う分析クラスインクリメンタル学習。ニューリップス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 )[Paper] [Code]
階級学習:調査( TPAMI 2024 )[Paper] [Code]
事前訓練を受けたモデルベースのクラスインクリメンタル学習のための拡張可能なサブスペースアンサンブル( CVPR 2024 )[Paper] [Code]
集団学習のための多層リハーサル機能増強( ICML 2024 )[Paper] [Code]
事前に訓練されたモデルを使用した継続的な学習:調査( IJCAI 2024 )[Paper] [Code]
長期尾のあるクラスと複雑な学習のための適応アダプタールーティング(機械学習2024 )[Paper] [Code]
ビジョン言語モデルを忘れずに学習( ARXIV 2023 )[紙]
パイロット:事前に訓練されたモデルベースの継続学習ツールボックス( ARXIV 2023 )[Paper] [Code]
トレーニングのないプロトタイプのキャリブレーション( Neurips 2023 )[Paper] [Code]を介した少数のクラスインクリメンタル学習
牛肉:エネルギーベースの拡張と融合による双方向のクラスインクリメンタル学習( ICLR 2023 )[Paper] [Code]
モデルまたは603の模範:メモリ効率の高いクラスインクリメンタル学習( ICLR 2023 )[Paper] [Code]
多相タスクをサンプリングすることによる少数のクラスインクリメンタル学習( TPAMI 2022 )[Paper] [Code]
里親:クラスインクラメント学習の機能ブーストと圧縮( ECCV 2022 )[Paper] [Code]
フォワード互換性のある少数のショットクラスインクリメンタル学習( CVPR 2022 )[Paper] [Code]
クラスインクリメンタル学習のための共輸送( ACM MM 2021 )[Paper] [Code]
エネルギー消費と計算フットプリントに重点を置いた産業継続的な学習シナリオの現実的な評価に向けて( ICCV 2023 )[Paper] [Code]
クラス増分学習のための動的残差分類器( ICCV 2023 )[Paper] [Code]
事前に訓練された変圧器を使用したS-PROMPTS学習:ドメインインクリメンタル学習のためのOccam's Razor( Neurips2022 )[Paper] [Code]
このリポジトリにリストされているMITライセンスを確認してください。
私たちの仕事で役立つコンポーネント/機能を提供する次のリポジトリに感謝します。
トレーニングフローとデータ構成は、継続的な学習レプロードに基づいています。リポジトリの元の情報は、ベースブランチで入手できます。
ご質問がある場合は、著者との問題を開くか、 Da-Wei Zhou ([email protected])とfu-yun wang ([email protected])と連絡をとって、新しい機能をお気軽に提案してください。コードをお楽しみください。