-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Documenter.jl
committed
Aug 3, 2024
1 parent
6482e33
commit 4ba34c7
Showing
5 changed files
with
149 additions
and
149 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
{"documenter":{"julia_version":"1.10.4","generation_timestamp":"2024-08-03T14:12:43","documenter_version":"1.5.0"}} | ||
{"documenter":{"julia_version":"1.10.4","generation_timestamp":"2024-08-03T15:27:24","documenter_version":"1.5.0"}} |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Control Variables and Extras · SSMProblems</title><meta name="title" content="Control Variables and Extras · SSMProblems"/><meta property="og:title" content="Control Variables and Extras · SSMProblems"/><meta property="twitter:title" content="Control Variables and Extras · SSMProblems"/><meta name="description" content="Documentation for SSMProblems."/><meta property="og:description" content="Documentation for SSMProblems."/><meta property="twitter:description" content="Documentation for SSMProblems."/><script data-outdated-warner src="../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../search_index.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../">SSMProblems</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="../">Home</a></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="../examples/kalman-filter/">Kalman Filter</a></li></ul></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 class="is-active"><a href>Control Variables and Extras</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Control Variables and Extras</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/TuringLang/SSMProblems.jl" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/TuringLang/SSMProblems.jl/blob/main/docs/src/extras.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="Control-Variables-and-Extras"><a class="docs-heading-anchor" href="#Control-Variables-and-Extras">Control Variables and Extras</a><a id="Control-Variables-and-Extras-1"></a><a class="docs-heading-anchor-permalink" href="#Control-Variables-and-Extras" title="Permalink"></a></h1><p>All functions that form part of the <code>SSMProblems</code> model interface demand that a final positional argument called <code>extra</code> is included.</p><p>This argument has multiple uses, but is generally used to pass in additional information to the model at inference time. Although this might seem unnecessary and clunky for simple models, this addition leads to a great amount of flexibility which allows complex and exotic models to be implemented with little effort or performance penalty.</p><p>If your model does not require any extras, you can simply using <code>Nothing</code> as the type for this argument.</p><p>When forward-simulating, filtering or smoothing from a model, a vector a <code>extra</code>s is passed to the sampler, with each element corresponding to the <code>extra</code> argument for each timestep. Some advanced algorithms may also augment the <code>extra</code> vector with additional information.</p><h2 id="Use-as-Control-Variables"><a class="docs-heading-anchor" href="#Use-as-Control-Variables">Use as Control Variables</a><a id="Use-as-Control-Variables-1"></a><a class="docs-heading-anchor-permalink" href="#Use-as-Control-Variables" title="Permalink"></a></h2><p>In simple cases <code>extra</code> can be treated as a control (or input) vector. For example, for data arriving at irregular time intervals, the <code>extra</code> argument could be the time deltas between observations. Or, in control engineering, the <code>extra</code> argument could be the <a href="https://www.mathworks.com/help/control/ref/ss.html">control inputs</a> to the system.</p><p>Note, that it is also possible to store this data in the latent dynamic's struct and extract it during a transition (e.g. <code>dyn.dts[timestep]</code>). However, this approach has the disadvantage that the control variables must be defined when the model is instantiated. Further, this means that re-runs with new control variables require a re-instantiation of the model.</p><p>Using <code>extra</code> for control variables allows for a separation between the abstract definition of the state space model and the concrete simulation or inference given specific data.</p><h2 id="Use-with-Streaming-Data"><a class="docs-heading-anchor" href="#Use-with-Streaming-Data">Use with Streaming Data</a><a id="Use-with-Streaming-Data-1"></a><a class="docs-heading-anchor-permalink" href="#Use-with-Streaming-Data" title="Permalink"></a></h2><p>The de-coupling of model definition and data that comes from using <code>extra</code> makes it easy to use <code>SSMProblems</code> with streaming data. As control variables arrive, these can be passed to the model distributions via the <code>extra</code> argument.</p><h2 id="Use-in-Rao-Blackwellisation"><a class="docs-heading-anchor" href="#Use-in-Rao-Blackwellisation">Use in Rao-Blackwellisation</a><a id="Use-in-Rao-Blackwellisation-1"></a><a class="docs-heading-anchor-permalink" href="#Use-in-Rao-Blackwellisation" title="Permalink"></a></h2><p>Briefly, a Rao-Blackwellised particle filter is an efficient variant of the generic particle filter that can be applied to state space models that have an analytically tractable sub-model. The filter behaves as two nested filters, a regular particle filter for the outer model, and an analytic filter (e.g. Kalman filter) for the inner sub-model.</p><p>Since the value of the <code>extra</code> argument can be defined at inference time, the outer filter can pass information to the inner filter via the <code>extra</code> argument. This leads to a clean and generic interface for Rao-Blackwellised filtering which is not possible with other state space model packages.</p></article><nav class="docs-footer"><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.5.0 on <span class="colophon-date" title="Saturday 3 August 2024 14:12">Saturday 3 August 2024</span>. Using Julia version 1.10.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> | ||
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Control Variables and Extras · SSMProblems</title><meta name="title" content="Control Variables and Extras · SSMProblems"/><meta property="og:title" content="Control Variables and Extras · SSMProblems"/><meta property="twitter:title" content="Control Variables and Extras · SSMProblems"/><meta name="description" content="Documentation for SSMProblems."/><meta property="og:description" content="Documentation for SSMProblems."/><meta property="twitter:description" content="Documentation for SSMProblems."/><script data-outdated-warner src="../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../search_index.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../">SSMProblems</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="../">Home</a></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="../examples/kalman-filter/">Kalman Filter</a></li></ul></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 class="is-active"><a href>Control Variables and Extras</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Control Variables and Extras</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/TuringLang/SSMProblems.jl" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/TuringLang/SSMProblems.jl/blob/main/docs/src/extras.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="Control-Variables-and-Extras"><a class="docs-heading-anchor" href="#Control-Variables-and-Extras">Control Variables and Extras</a><a id="Control-Variables-and-Extras-1"></a><a class="docs-heading-anchor-permalink" href="#Control-Variables-and-Extras" title="Permalink"></a></h1><p>All functions that form part of the <code>SSMProblems</code> model interface demand that a final positional argument called <code>extra</code> is included.</p><p>This argument has multiple uses, but is generally used to pass in additional information to the model at inference time. Although this might seem unnecessary and clunky for simple models, this addition leads to a great amount of flexibility which allows complex and exotic models to be implemented with little effort or performance penalty.</p><p>If your model does not require any extras, you can simply using <code>Nothing</code> as the type for this argument.</p><p>When forward-simulating, filtering or smoothing from a model, a vector a <code>extra</code>s is passed to the sampler, with each element corresponding to the <code>extra</code> argument for each timestep. Some advanced algorithms may also augment the <code>extra</code> vector with additional information.</p><h2 id="Use-as-Control-Variables"><a class="docs-heading-anchor" href="#Use-as-Control-Variables">Use as Control Variables</a><a id="Use-as-Control-Variables-1"></a><a class="docs-heading-anchor-permalink" href="#Use-as-Control-Variables" title="Permalink"></a></h2><p>In simple cases <code>extra</code> can be treated as a control (or input) vector. For example, for data arriving at irregular time intervals, the <code>extra</code> argument could be the time deltas between observations. Or, in control engineering, the <code>extra</code> argument could be the <a href="https://www.mathworks.com/help/control/ref/ss.html">control inputs</a> to the system.</p><p>Note, that it is also possible to store this data in the latent dynamic's struct and extract it during a transition (e.g. <code>dyn.dts[timestep]</code>). However, this approach has the disadvantage that the control variables must be defined when the model is instantiated. Further, this means that re-runs with new control variables require a re-instantiation of the model.</p><p>Using <code>extra</code> for control variables allows for a separation between the abstract definition of the state space model and the concrete simulation or inference given specific data.</p><h2 id="Use-with-Streaming-Data"><a class="docs-heading-anchor" href="#Use-with-Streaming-Data">Use with Streaming Data</a><a id="Use-with-Streaming-Data-1"></a><a class="docs-heading-anchor-permalink" href="#Use-with-Streaming-Data" title="Permalink"></a></h2><p>The de-coupling of model definition and data that comes from using <code>extra</code> makes it easy to use <code>SSMProblems</code> with streaming data. As control variables arrive, these can be passed to the model distributions via the <code>extra</code> argument.</p><h2 id="Use-in-Rao-Blackwellisation"><a class="docs-heading-anchor" href="#Use-in-Rao-Blackwellisation">Use in Rao-Blackwellisation</a><a id="Use-in-Rao-Blackwellisation-1"></a><a class="docs-heading-anchor-permalink" href="#Use-in-Rao-Blackwellisation" title="Permalink"></a></h2><p>Briefly, a Rao-Blackwellised particle filter is an efficient variant of the generic particle filter that can be applied to state space models that have an analytically tractable sub-model. The filter behaves as two nested filters, a regular particle filter for the outer model, and an analytic filter (e.g. Kalman filter) for the inner sub-model.</p><p>Since the value of the <code>extra</code> argument can be defined at inference time, the outer filter can pass information to the inner filter via the <code>extra</code> argument. This leads to a clean and generic interface for Rao-Blackwellised filtering which is not possible with other state space model packages.</p></article><nav class="docs-footer"><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.5.0 on <span class="colophon-date" title="Saturday 3 August 2024 15:27">Saturday 3 August 2024</span>. Using Julia version 1.10.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> |
Oops, something went wrong.