
Baal은 산업 응용 프로그램과 연구 Usecases를 모두 지원하는 적극적인 학습 라이브러리입니다.
https://baal.readthedocs.io에서 문서를 읽으십시오.
우리 논문은 Arxiv에서 읽을 수 있습니다. 프로덕션에서 적극적인 학습을 사용할 수 있도록하는 팁과 요령이 포함되어 있습니다.
Baal 및 Bayesian Active Learning에 대한 빠른 소개는 다음을 참조하십시오.
Baal은 처음에 Elementai (2021 년 Servicenow에 의해 인수 됨)에서 개발되었지만 현재 독립적입니다.
Baal은 Python>=3.8 필요로합니다.
PIP를 사용하여 Baal을 설치하려면 : pip install baal
우리는시를 패키지 관리자로 사용합니다. 소스 : poetry install 에서 Baal을 설치하려면
Active Learning은 학습 알고리즘이 사용자 (또는 기타 정보 소스)를 대화식으로 쿼리하여 새로운 데이터 포인트에서 원하는 출력을 얻기 위해 (더 깊이있는 개념을 이해하고, 자습서를 참조하십시오. ).
현재 Baal은 적극적인 학습을 수행하기위한 다음 방법을 지원합니다.
새로운 방법을 제안하려면 문제를 제출하십시오.
Monte-Carlo 드롭 아웃 방법은 베이지안 신경 네트워크에 알려진 근사치입니다. 이 방법에서, 드롭 아웃 층은 훈련 및 테스트 시간 모두에 사용됩니다. 무작위로 가중치를 떨어 뜨리는 동안 모델을 여러 번 실행하면 Heuristics.py의 불확실성 측정 중 하나를 사용하여 예측의 불확실성을 계산합니다.
프레임 워크는 아래 흐름도에서 보여 지듯이 4 가지 주요 부분으로 구성됩니다.
시작하려면 ActivelearningDataset 클래스에 데이터 세트를 랩핑하십시오. 이를 통해 데이터 세트가 training 및 pool 세트로 분할되도록합니다. pool 세트는 아직 레이블이 지정되지 않은 훈련 세트의 부분을 나타냅니다.
우리는 keras.Model 과 유사한 가벼운 객체 ModelWrapper를 제공하여 모델을보다 쉽게 훈련하고 테스트 할 수 있도록합니다. 귀하의 모델이 적극적인 학습을 준비 할 준비가되지 않은 경우, 우리는이를 준비 할 모듈을 제공합니다.
예를 들어, McDropoutModule 래퍼는 훈련 및 추론 시간 모두에서 사용할 기존 드롭 아웃 레이어를 변경하고 ModelWrapper 는 교육 및 추론에서 실행할 반복 수를 지정합니다.
마지막으로, ActiveEarningLoop는 자동으로 불확실성을 계산하고 수영장에서 가장 불확실한 품목에 레이블을 지정합니다.
결론적으로, 스크립트는 다음과 유사해야합니다.
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.pyREPO를 복제하고 실험/VGG_MCDROPOUT_CIFAR10.py 의 예와 유사한 실험 스크립트를 작성하십시오. Baal 프레임 워크의 네 가지 주요 부분을 사용하십시오. 행복한 실험 실험
기여하려면 Contributing.md를 참조하십시오.
"열정, 평화, 평온, 감정, 혼란, 그러나 질서가 있습니다."
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의 라이센스에 대한 정보를 얻으려면 라이센스를 읽으십시오.