pymc.ASVGD#

class pymc.ASVGD(approx=None, estimator=<class 'pymc.variational.operators.KSD'>, kernel=<pymc.variational.test_functions.RBF object>, **kwargs)[源代码]#

摊销Stein变分梯度下降

不建议使用

这种推断基于核化的 Stein 差异,其主要思想是移动初始的噪声粒子,使它们最好地适应目标分布。

算法概述如下

输入: 参数化随机生成器 \(R_{ heta}\)

输出: \(R_{ heta^{*}}\) 近似目标分布。

\[\begin{split}\Delta x_i &= \hat{\phi}^{*}(x_i) \\ \hat{\phi}^{*}(x) &= \frac{1}{n}\sum^{n}_{j=1}[k(x_j,x) \nabla_{x_j} logp(x_j)+ \nabla_{x_j} k(x_j,x)] \\ \Delta_{\theta} &= \frac{1}{n}\sum^{n}_{i=1}\Delta x_i\frac{\partial x_i}{\partial \theta}\end{split}\]
参数:
approx: :class:`近似`

默认是 FullRank 但可以是任何

kernel: `callable`

KSD 的核函数 \(f(直方图) -> (k(x,.), abla_x k(x,.))\)

模型: :class:`模型`
**kwargs: 梯度估计器的 kwargs

参考文献

  • Dilin Wang, Yihao Feng, Qiang Liu (2016) 使用 Stein 差异学习采样 http://bayesiandeeplearning.org/papers/BDL_21.pdf

  • Dilin Wang, Qiang Liu (2016) 学习抽样:应用于生成对抗学习的摊销最大似然估计 arXiv:1611.01722

  • Yang Liu, Prajit Ramachandran, Qiang Liu, Jian Peng (2017) Stein变分策略梯度 arXiv:1704.02399

方法

ASVGD.__init__([approx, estimator, kernel])

ASVGD.fit([n, score, callbacks, ...])

执行算子变分推断

ASVGD.refine(n[, progressbar])

使用最后编译的步骤函数优化解决方案

ASVGD.run_profiling([n, score, obj_n_mc])

属性

approx