
Baal是一個活躍的學習庫,支持工業應用和研究用途。
在https://baal.readthedocs.io上閱讀文檔。
我們的論文可以在Arxiv上閱讀。它包括提示和技巧,使積極學習在生產中可用。
有關巴爾和貝葉斯活躍學習的快速介紹,請參閱以下鏈接:
Baal最初是在ElementAi開發的(2021年被ServiceNow收購),但現在是獨立的。
Baal需要Python>=3.8 。
使用PIP安裝Baal: pip install baal
我們將詩歌作為我們的包裝經理。從來源安裝巴爾: poetry install
主動學習是機器學習的一種特殊情況,其中學習算法能夠交互性地查詢用戶(或其他信息源)以在新數據點獲得所需的輸出(以更深入地了解該概念,請參閱我們的教程)。
目前,BAAL支持以下可以執行主動學習的方法。
如果您想提出新方法,請提交問題。
蒙特卡洛輟學方法是貝葉斯神經網絡的已知近似值。在此方法中,輟學層用於訓練和測試時間。通過多次運行模型,而隨機降低權重,我們使用啟示術中的不確定性測量之一來計算預測的不確定性。
該框架由四個主要部分組成,如以下流程圖所示:
要開始,請將數據集包含在我們的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框架的四個主要部分。快樂的跑步實驗
要貢獻,請參見貢獻。
“有激情,卻和平;寧靜,卻情緒化;混亂,秩序。”
巴爾團隊測試並實施了有關不確定性估計和積極學習的最新論文。
當前的維護者:
如果您在一個項目之一中使用了Baal,那麼如果您使用此Bibtex引用此庫,我們將非常感謝:
@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許可的信息,請閱讀許可證