前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >资源 | 清华大学发布珠算:一个用于生成模型的Python库

资源 | 清华大学发布珠算:一个用于生成模型的Python库

作者头像
机器之心
发布2018-05-08 11:32:46
9610
发布2018-05-08 11:32:46
举报
文章被收录于专栏:机器之心机器之心

选自Github

机器之心编译

参与:吴攀

5 月 27-28 日,机器之心主办的第一届全球机器智能峰会(GMIS 2017)将在北京 898 创新空间举行。在峰会第一天下午的「机器学习」主题 Session 上,清华大学副教授朱军将分享演讲《珠算:贝叶斯深度学习的 GPU 库(ZhuSuan: a GPU Library with Bayesian Deep Learning)》。近日,清华大学机器学习组已经在 GitHub 上发布了「珠算(ZhuSuan)」这一软件库。机器之心在本文中编译介绍了该项目的介绍文档,如果你想现场聆听对该项目的更详细深入的介绍,可访问 GMIS 官网 gmis.jiqizhixin.com 了解参会方式或点击文末「阅读原文」直达购票地址。

  • 珠算项目地址:https://github.com/thu-ml/zhusuan
  • 朱军教授 GMIS 2017演讲时间:5 月 27 日 14:10-14:30
  • 演讲主题:珠算:贝叶斯深度学习的 GPU 库

珠算(ZhuSuan)是一个构建于 TensorFlow 之上的用于生成模型(Generative Model)的 Python 库。和现有的主要为监督式任务设计的深度学习库不同,珠算的特点是其在很大程度上根基于贝叶斯推理(Bayesian Inference),因此支持各种生成模型:既包括传统的分层贝叶斯模型,也有最近的深度生成模型。

使用珠算,用户可以享有深度学习的强大拟合能力和多 GPU 训练支持,同时还能通过执行原理上的贝叶斯推理来使用生成模型建模这个复杂的世界、利用无标注数据和处理不确定性。

支持的推理

变分推理和随机变分推理(VI & SVI)

  • 支持多种变分后验:
  • 平均场后验(Mean-field posterior):全因素分解
  • 有结构的后验(Structured posterior):具有用户指定的依赖关系
  • 支持的变分目标:
  • SGVB:随机梯度变分贝叶斯(Stochastic gradient variational Bayes)
  • IWAE:重要程度加权的目标(Importance weighted objectives)
  • NVIL:具有方差减缩的得分函数估计器(Score function estimator with variance reduction)
  • VIMCO:具有方差减缩的多样本得分函数估计器(Multi-sample score function estimator with variance reduction)

自适应重要程度采样

  • 重新加权的唤醒-睡眠(RWS:Reweighted Wake-sleep):带有用户指定的自适应提议

马尔可夫链蒙特卡洛(MCMC)

  • 哈密尔顿蒙特卡洛(HMC):带有步长和 mass adaptation

安装

珠算仍处在开发阶段。在第一个稳定版(1.0)发布之前,请在主目录中运行以下代码来克隆这个库:

pip install .

这会自动安装珠算及其依赖包。

如果你正在开发珠算,你可能需要以「可编辑」或「开发」模式进行安装。具体参见下面的开发一节。

文档

在线文档地址:http://zhusuan.readthedocs.io/

示例

如果你想运行我们提供的示例,你需要安装额外的依赖包。可以通过执行以下代码完成:

  • pip install ".[examples]"
  • 高斯(Gaussian):HMC
  • Toy 2D Intractable Posterior: SGVB
  • 贝叶斯神经网络:SGVB
  • 变自编码器(VAE):SGVB、IWAE
  • 卷积 VAE:SGVB
  • 半监督 VAE(Kingma, 2014:SGVB、RWS
  • 深度 Sigmoid 信念网络:RWS、VIMCO
  • Logistic Normal 主题模型:HMC

开发

如果要以「可编辑」或「开发」模式安装珠算,在主目录下运行:

pip install -e .

如果要移除安装,运行:

pip uninstall zhusuan

附加的开发用依赖包可通过以下代码安装:

pip install ".[dev]"

1.测试

以下命令可在主目录中运行自动测试:

python -m unittest discover -v

测试范围:在运行测试之后,为了确保测试范围涵盖开发,请运行

coverage report --include="zhusuan/*"

PEP8 代码风格检查:我们遵循 PEP8 Python 代码风格。要进行检查,在主目录中运行

pep8 .

2.文档

文档在 docs/ 目录下,是 RestructuredText(.rst)文件。主页为 index.rst。关于 RestructuredText 的教程可参阅:https://pythonhosted.org/an_example_pypi_project/sphinx.html

API References 是通过 Sphinx 自动生成的。它们在 doc/api/ 目录下,在每次修改代码之后都应该重新生成:

make api

在 docs/ 目录下运行以下代码可将文档编译成网页:

make html

生成的网页存储在 docs/_build 目录,可以通过浏览器查看。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档