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获取候选批,我们在^{}中提供了一个简单的API:

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)

我们还提供了^{}中一致MC-dropout的简单实现。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我想访问同一类的不同函数中的函数变量   创建字段/值哈希映射的java反射   java Velocity工具向后兼容性?   cmd JAVA运行时错误:发生JNI错误   java spring引导示例hateoas不工作   java为什么Android Studio和gradle可以使用不同的类路径进行单元测试?   java Selenium Firefox驱动程序初始化   java如何在jar中重新定位gradle依赖项的包   java为什么我的单线程hello world应用程序使用22个OS线程?   正则表达式替换Java字符串中的特殊字符   在任何派生类的构造函数之后运行方法的java   java从输入字符串中找出日期   带有libGdx(Java)音乐的安卓studio可以在Android模拟器上工作,但不能在桌面上工作   java我在getconnection的参数方面有错误吗?   java使用JFileChooser访问选定文件   java如何将Json解析为另一个活动   java使用Resources for html和rest server   java更新列表,列表内容来自循环中的方法   java如何在GLSL中读取完整范围的32位整数纹理