<div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../../">AdvancedVI.jl</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">AdvancedVI</a></li><li><a class="tocitem" href="../../general/">General Usage</a></li><li><a class="tocitem" href="../../examples/">Examples</a></li><li><span class="tocitem">ELBO Maximization</span><ul><li class="is-active"><a class="tocitem" href>Overview</a><ul class="internal"><li><a class="tocitem" href="#Introduction"><span>Introduction</span></a></li><li><a class="tocitem" href="#Algorithms"><span>Algorithms</span></a></li></ul></li><li><a class="tocitem" href="../repgradelbo/">Reparameterization Gradient Estimator</a></li></ul></li><li><a class="tocitem" href="../../families/">Variational Families</a></li><li><a class="tocitem" href="../../optimization/">Optimization</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">ELBO Maximization</a></li><li class="is-active"><a href>Overview</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Overview</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/TuringLang/AdvancedVI.jl/blob/master/docs/src/elbo/overview.md#" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="elbomax"><a class="docs-heading-anchor" href="#elbomax">Evidence Lower Bound Maximization</a><a id="elbomax-1"></a><a class="docs-heading-anchor-permalink" href="#elbomax" title="Permalink"></a></h1><h2 id="Introduction"><a class="docs-heading-anchor" href="#Introduction">Introduction</a><a id="Introduction-1"></a><a class="docs-heading-anchor-permalink" href="#Introduction" title="Permalink"></a></h2><p>Evidence lower bound (ELBO) maximization<sup class="footnote-reference"><a id="citeref-JGJS1999" href="#footnote-JGJS1999">[JGJS1999]</a></sup> is a general family of algorithms that minimize the exclusive (or reverse) Kullback-Leibler (KL) divergence between the target distribution <span>$\pi$</span> and a variational approximation <span>$q_{\lambda}$</span>. More generally, they aim to solve the following problem:</p><p class="math-container">\[ \mathrm{minimize}_{q \in \mathcal{Q}}\quad \mathrm{KL}\left(q, \pi\right),\]</p><p>where <span>$\mathcal{Q}$</span> is some family of distributions, often called the variational family. Since the target distribution <span>$\pi$</span> is intractable in general, the KL divergence is also intractable. Instead, the ELBO maximization strategy maximizes a surrogate objective, the <em>ELBO</em>:</p><p class="math-container">\[ \mathrm{ELBO}\left(q\right) \triangleq \mathbb{E}_{\theta \sim q} \log \pi\left(\theta\right) + \mathbb{H}\left(q\right),\]</p><p>which serves as a lower bound to the KL. The ELBO and its gradient can be readily estimated through various strategies. Overall, ELBO maximization algorithms aim to solve the problem:</p><p class="math-container">\[ \mathrm{maximize}_{q \in \mathcal{Q}}\quad \mathrm{ELBO}\left(q\right).\]</p><p>Multiple ways to solve this problem exist, each leading to a different variational inference algorithm.</p><h2 id="Algorithms"><a class="docs-heading-anchor" href="#Algorithms">Algorithms</a><a id="Algorithms-1"></a><a class="docs-heading-anchor-permalink" href="#Algorithms" title="Permalink"></a></h2><p>Currently, <code>AdvancedVI</code> only provides the approach known as black-box variational inference (also known as Monte Carlo VI, Stochastic Gradient VI). (Introduced independently by two groups <sup class="footnote-reference"><a id="citeref-RGB2014" href="#footnote-RGB2014">[RGB2014]</a></sup><sup class="footnote-reference"><a id="citeref-TL2014" href="#footnote-TL2014">[TL2014]</a></sup> in 2014.) In particular, <code>AdvancedVI</code> focuses on the reparameterization gradient estimator<sup class="footnote-reference"><a id="citeref-TL2014" href="#footnote-TL2014">[TL2014]</a></sup><sup class="footnote-reference"><a id="citeref-RMW2014" href="#footnote-RMW2014">[RMW2014]</a></sup><sup class="footnote-reference"><a id="citeref-KW2014" href="#footnote-KW2014">[KW2014]</a></sup>, which is generally superior compared to alternative strategies<sup class="footnote-reference"><a id="citeref-XQKS2019" href="#footnote-XQKS2019">[XQKS2019]</a></sup>, discussed in the following section:</p><ul><li><a href="../repgradelbo/#repgradelbo">RepGradELBO</a></li></ul><section class="footnotes is-size-7"><ul><li class="footnote" id="footnote-JGJS1999"><a class="tag is-link" href="#citeref-JGJS1999">JGJS1999</a>Jordan, M. I., Ghahramani, Z., Jaakkola, T. S., & Saul, L. K. (1999). An introduction to variational methods for graphical models. Machine learning, 37, 183-233.</li><li class="footnote" id="footnote-TL2014"><a class="tag is-link" href="#citeref-TL2014">TL2014</a>Titsias, M., & Lázaro-Gredilla, M. (2014). Doubly stochastic variational Bayes for non-conjugate inference. In <em>International Conference on Machine Learning</em>.</li><li class="footnote" id="footnote-RMW2014"><a class="tag is-link" href="#citeref-RMW2014">RMW2014</a>Rezende, D. J., Mohamed, S., & Wierstra, D. (2014). Stochastic backpropagation and approximate inference in deep generative models. In <em>International Conference on Machine Learning</em>.</li><li class="footnote" id="footnote-KW2014"><a class="tag is-link" href="#citeref-KW2014">KW2014</a>Kingma, D. P., & Welling, M. (2014). Auto-encoding variational bayes. In <em>International Conference on Learning Representations</em>.</li><li class="footnote" id="footnote-XQKS2019"><a class="tag is-link" href="#citeref-XQKS2019">XQKS2019</a>Xu, M., Quiroz, M., Kohn, R., & Sisson, S. A. (2019). Variance reduction properties of the reparameterization trick. In *The International Conference on Artificial Intelligence and Statistics.</li><li class="footnote" id="footnote-RGB2014"><a class="tag is-link" href="#citeref-RGB2014">RGB2014</a>Ranganath, R., Gerrish, S., & Blei, D. (2014). Black box variational inference. In <em>Artificial Intelligence and Statistics</em>.</li></ul></section></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../examples/">« Examples</a><a class="docs-footer-nextpage" href="../repgradelbo/">Reparameterization Gradient Estimator »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Monday 9 December 2024 16:37">Monday 9 December 2024</span>. Using Julia version 1.10.7.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
0 commit comments