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}\]- 参数:
参考文献
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