
Baalは、産業用アプリケーションと研究ユーザーケースの両方をサポートするアクティブな学習ライブラリです。
https://baal.readthedocs.ioでドキュメントを読んでください。
私たちの論文はarxivで読むことができます。これには、生産でアクティブな学習を使用できるようにするためのヒントとコツが含まれています。
BaalとBayesian Active Learningの簡単な紹介については、これらのリンクをご覧ください。
バアルは当初、Elementaiで開発されました(2021年にServiceNowによって買収)が、現在は独立しています。
バアルにはPython>=3.8が必要です。
PIPを使用してBaalをインストールするには: pip install baal
詩をパッケージマネージャーとして使用しています。 Source: poetry installからBaalをインストールします
アクティブラーニングは、学習アルゴリズムがユーザー(またはその他の情報ソース)をインタラクティブにクエリして、新しいデータポイントで目的の出力を取得することができる機械学習の特別なケースです(概念をより深く理解するために、チュートリアルを参照してください)。
現時点では、Baalは積極的な学習を実行するための次の方法をサポートしています。
新しい方法を提案したい場合は、問題を提出してください。
モンテカルロドロップアウト法は、ベイジアンニューラルネットワークの既知の近似です。この方法では、ドロップアウト層は、トレーニング時間とテスト時間の両方で使用されます。重量をランダムにドロップしながらモデルを複数回実行することにより、ヒューリスティクスの不確実性測定の1つを使用して予測の不確実性を計算します。
フレームワークは、以下のフローチャートに示されているように、4つの主要部分で構成されています。
開始するには、 ActiveLearningDatasetクラスでデータセットを包みます。これにより、データセットがtrainingとpoolセットに分割されるようになります。 poolセットは、まだラベル付けされていないトレーニングセットの部分を表します。
keras.Modelに似た軽量オブジェクトモデルワッパーを提供して、モデルのトレーニングとテストを容易にします。モデルがアクティブ学習の準備ができていない場合は、モジュールを準備するためのモジュールを提供します。
たとえば、 McDropoutModuleラッパーは、トレーニング時間と推論時間の両方で使用される既存のドロップアウトレイヤーを変更し、 ModelWrapperトレーニングと推論で実行する反復数を指定します。
最後に、 ActiveLearningloopは不確実性を自動的に計算し、プールで最も不確実なアイテムにラベルを付けます。
結論として、スクリプトはこれに似ている必要があります。
dataset = ActiveLearningDataset ( your_dataset )
dataset . label_randomly ( INITIAL_POOL ) # label some data
model = MCDropoutModule ( your_model )
wrapper = ModelWrapper ( model , args = TrainingArgs (...))
experiment = ActiveLearningExperiment (
trainer = wrapper , # Huggingface or ModelWrapper to train
al_dataset = dataset , # Active learning dataset
eval_dataset = test_dataset , # Evaluation Dataset
heuristic = BALD (), # Uncertainty heuristic to use
query_size = 100 , # How many items to label per round.
iterations = 20 , # How many MC sampling to perform per item.
pool_size = None , # Optionally limit the size of the unlabelled pool.
criterion = None # Stopping criterion for the experiment.
)
# The experiment will run until all items are labelled.
metrics = experiment . start ()完全な実験については、実験/vgg_mcdropout_cifar10.pyを参照してください。
docker build [--target base_baal] -t baal .
docker run --rm baal --gpus all python3 experiments/vgg_mcdropout_cifar10.pyリポジトリをクローンするだけで、実験/vgg_mcdropout_cifar10.pyの例と同様の独自の実験スクリプトを作成します。 Baalフレームワークの4つの主要部分を必ず使用してください。幸せなランニング実験
貢献するには、貢献を参照してください。md。
「情熱がありますが、平和、静けさ、それでも感情、混乱、まだ秩序があります。」
Baalチームは、不確実性の推定と積極的な学習に関する最新の論文をテストおよび実装しています。
現在のメンテナー:
プロジェクトの1つでBaalを使用した場合、このライブラリを使用してこのライブラリを引用しても、大いに感謝します。
@misc{atighehchian2019baal,
title={Baal, a bayesian active learning library},
author={Atighehchian, Parmida and Branchaud-Charron, Frederic and Freyberg, Jan and Pardinas, Rafael and Schell, Lorne
and Pearse, George},
year={2022},
howpublished={url{https://github.com/baal-org/baal/}},
}
このAPIのライセンスに関する情報を取得するには、ライセンスを読んでください