KJB
|
#include <abstract_dynamics.h>
Public Member Functions | |
Abstract_dynamics (double ialpha=0.99, unsigned int ikick=0) | |
Abstract_dynamics (kjb::Vector iparameters, kjb::Vector ideltas, double ialpha=0.99, unsigned int ikick=0) | |
Abstract_dynamics (const Abstract_dynamics &src) | |
Abstract_dynamics & | operator= (const Abstract_dynamics &src) |
virtual | ~Abstract_dynamics () |
void | set_num_parameters (unsigned int num_params) |
Sets the number of parameters we will be sampling over. More... | |
Protected Member Functions | |
void | run (unsigned int iterations) |
Implements stochastic dynamics sampling on a set of parameters. This implementation follows the algorithm described in the 1993 Neal Paper, with leapfrog discretization and stochastic transitions weighted by the stochastic alpha parameter. This function MUST be kept protected so that only classes that inherit from this class can use it. Each of this derived class will have to provide its own public interface to this method. More... | |
virtual void | compute_energy_gradient ()=0 |
virtual void | log_sample () |
Protected Attributes | |
kjb::Vector | parameters |
The parameters to sample over. More... | |
kjb::Vector | deltas |
The size of the step to take in the gradient direction. This step size is different for each parameter we are sampling over. More... | |
kjb::Vector | gradients |
kjb::Vector | stochastic_momenta |
kjb::Vector | momenta |
kjb::Vector | temp_momenta |
kjb::Vector | stochastic_transition |
kjb::MV_gaussian_distribution * | mv_gauss |
double | alpha |
double | st_alpha |
unsigned int | kick |
dynamics sampling on a set of parameters.This implementation follows the algorithm described in the 1993 Neal Paper, with leapfrog discretization and stochastic transitions weighted by the stochastic alpha parameter.
|
inline |
ialpha | This parameter tweaks the contribution of the stochastic transition. If it is close to one, the random transition has little weight, and the dynamics mostly follow the momenta. The closer it gets to zero, the more the stochastic transitions will influence the selected trajectory. |
ikick | This parameters is used to reset the momenta to the correct trajectory, thus eliminating the effect of the stochastic transitions. It specifies after how many transitions the momenta are to be reset. This was not fully tested |
|
inline |
iparameters | The initial values of the parameters to sample over |
ideltas | The size of the step to take in the gradient direction. This step size is different for each parameter we are sampling over |
ialpha | This parameter tweaks the contribution of the stochastic transition. If it is close to one, the random transition has little weight, and the dynamics mostly follow the momenta. The closer it gets to zero, the more the stochastic transitions will influence the selected trajectory. |
ikick | this parameters is used to reset the momenta to the correct trajectory, thus eliminating the effect of the stochastic transitions. It specifies after how many transitions the momenta are to be reset. This was not fully tested |
Abstract_dynamics::Abstract_dynamics | ( | const Abstract_dynamics & | src | ) |
src | The Abstract_dynamics to copy into this one |
|
inlinevirtual |
|
protectedpure virtual |
Implemented in kjb::Likelihood_dynamics.
|
inlineprotectedvirtual |
Reimplemented in kjb::Likelihood_dynamics.
Abstract_dynamics & Abstract_dynamics::operator= | ( | const Abstract_dynamics & | src | ) |
src | The Abstract_dynamics to assign to this one |
|
protected |
Implements stochastic dynamics sampling on a set of parameters. This implementation follows the algorithm described in the 1993 Neal Paper, with leapfrog discretization and stochastic transitions weighted by the stochastic alpha parameter. This function MUST be kept protected so that only classes that inherit from this class can use it. Each of this derived class will have to provide its own public interface to this method.
Implements stochastic dynamics sampling on a set of parameters. This implementation follows the algorithm described in the 1993 Neal Paper, with leapfrog discretization and stochastic transitions weighted by the stochastic alpha parameter.
iterations | The number of iterations |
void Abstract_dynamics::set_num_parameters | ( | unsigned int | num_params | ) |
Sets the number of parameters we will be sampling over.
Sets the number of parameters we are sampling over and prepares the data structures needed for the computation accordingly
num_params | the number of parameters |
|
protected |
|
protected |
The size of the step to take in the gradient direction. This step size is different for each parameter we are sampling over.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
The parameters to sample over.
|
protected |
|
protected |
|
protected |
|
protected |