Stan
2.5.0
probability, sampling & optimization
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
stan
mcmc
covar_adaptation.hpp
Go to the documentation of this file.
1
#ifndef STAN__MCMC__COVAR__ADAPTATION__BETA
2
#define STAN__MCMC__COVAR__ADAPTATION__BETA
3
4
#include <vector>
5
#include <
stan/math/matrix/Eigen.hpp
>
6
7
#include <
stan/prob/welford_covar_estimator.hpp
>
8
#include <
stan/mcmc/windowed_adaptation.hpp
>
9
10
namespace
stan {
11
12
namespace
mcmc {
13
14
class
covar_adaptation
:
public
windowed_adaptation
{
15
16
public
:
17
18
covar_adaptation
(
int
n):
windowed_adaptation
(
"covariance"
),
estimator_
(n) {}
19
20
bool
learn_covariance
(Eigen::MatrixXd& covar,
const
Eigen::VectorXd& q) {
21
22
if
(
adaptation_window
())
estimator_
.
add_sample
(q);
23
24
if
(
end_adaptation_window
()) {
25
26
compute_next_window
();
27
28
estimator_
.
sample_covariance
(covar);
29
30
double
n =
static_cast<
double
>
(
estimator_
.
num_samples
());
31
covar = (n / (n + 5.0)) * covar
32
+ 1
e
-3 * (5.0 / (n + 5.0)) * Eigen::MatrixXd::Identity(covar.rows(), covar.cols());
33
34
estimator_
.
restart
();
35
36
++
adapt_window_counter_
;
37
return
true
;
38
39
}
40
41
++
adapt_window_counter_
;
42
return
false
;
43
44
}
45
46
protected
:
47
48
prob::welford_covar_estimator
estimator_
;
49
50
};
51
52
}
// mcmc
53
54
}
// stan
55
56
#endif
stan::prob::welford_covar_estimator::num_samples
int num_samples()
Definition:
welford_covar_estimator.hpp:35
windowed_adaptation.hpp
stan::prob::welford_covar_estimator::sample_covariance
void sample_covariance(Eigen::MatrixXd &covar)
Definition:
welford_covar_estimator.hpp:39
stan::mcmc::windowed_adaptation::end_adaptation_window
bool end_adaptation_window()
Definition:
windowed_adaptation.hpp:83
stan::mcmc::windowed_adaptation
Definition:
windowed_adaptation.hpp:13
stan::mcmc::windowed_adaptation::adaptation_window
bool adaptation_window()
Definition:
windowed_adaptation.hpp:77
stan::mcmc::covar_adaptation
Definition:
covar_adaptation.hpp:14
stan::mcmc::covar_adaptation::estimator_
prob::welford_covar_estimator estimator_
Definition:
covar_adaptation.hpp:48
stan::mcmc::covar_adaptation::learn_covariance
bool learn_covariance(Eigen::MatrixXd &covar, const Eigen::VectorXd &q)
Definition:
covar_adaptation.hpp:20
Eigen.hpp
stan::mcmc::windowed_adaptation::compute_next_window
void compute_next_window()
Definition:
windowed_adaptation.hpp:88
stan::math::e
double e()
Return the base of the natural logarithm.
Definition:
constants.hpp:86
welford_covar_estimator.hpp
stan::mcmc::covar_adaptation::covar_adaptation
covar_adaptation(int n)
Definition:
covar_adaptation.hpp:18
stan::prob::welford_covar_estimator
Definition:
welford_covar_estimator.hpp:11
stan::mcmc::windowed_adaptation::adapt_window_counter_
unsigned int adapt_window_counter_
Definition:
windowed_adaptation.hpp:117
stan::prob::welford_covar_estimator::restart
void restart()
Definition:
welford_covar_estimator.hpp:19
stan::prob::welford_covar_estimator::add_sample
void add_sample(const Eigen::VectorXd &q)
Definition:
welford_covar_estimator.hpp:25
[
Stan Home Page
]
© 2011–2014, Stan Development Team.