BatchBALD算法的一个实现
batchbald-redux的Python项目详细描述
BatchBALD Redux酒店
Clean reimplementation of "BatchBALD: Efficient and Diverse Batch Acquisition for Deep Bayesian Active Learning"
有关介绍和详细信息,请参见http://batchbald.ml/。这篇论文可以在http://arxiv.org/abs/1906.08158找到。在
本文中使用的原始实现可以在https://github.com/BlackHC/BatchBALD上找到。在
我们感谢fastai的nbdev为这个软件包提供动力。在
安装
pip install batchbald_redux
动机
BatchBALD是一种在贝叶斯环境下使用BNNs和MC-dropout进行主动学习的算法和获取函数。在
获取函数是候选批次的连接与模型参数$\omega$之间的相互信息:
{%raw%} $$a{\text{BatchBALD}}((y_b)_b)=I[(y_b)_b;\omega]$$ {%endraw%}
最佳候选批次是使该采集功能最大化的批次。在
本文证明了该函数满足子模块性,这为贪婪算法提供了最优性保证。利用贪婪展开法选择候选批次。在
关节熵很难估计,而且,为了一切工作,还必须使用一致的MC dropout,这使得一组dropout保持不变,同时为pool set得分。在
为了帮助再现性和基线复制,我们提供了这种更简单和更清晰的再实施。在
如何使用
我们提供了一个使用这个包here的简单示例实验。在
要使用BatchBALD获取候选批,我们在^{
fromnbdev.showdocimport*frombatchbald_redux.batchbaldimportget_batchbald_batchshow_doc(get_batchbald_batch)
get_batchbald_batch
[source]
get_batchbald_batch
(logits_N_K_C
:Tensor
,batch_size
:int
,num_samples
:int
,dtype
=None
,device
=None
)
我们还提供了^{
- 项目
标签: