lds::gaussian::FitEM

lds::gaussian::FitEM #

GLDS E-M Fit Type. More…


#include <lds_gaussian_fit_em.h>

Inherits from lds::EM< Fit >

Additional inherited members #

Public Functions inherited from lds::EM< Fit >

Name
EM() =default
Constructs a new EMFit type.
EM(size_t n_x, data_t dt, UniformMatrixList< kMatFreeDim2 > && u_train, UniformMatrixList< kMatFreeDim2 > && z_train)
Constructs a new EMFit type.
EM(const Fit & fit0, UniformMatrixList< kMatFreeDim2 > && u_train, UniformMatrixList< kMatFreeDim2 > && z_train)
Constructs a new EMFit type.
virtual ~EM() =default
const Fit & Run(bool calc_dynamics =true, bool calc_Q =true, bool calc_init =true, bool calc_output =true, bool calc_measurement =true, size_t max_iter =100, data_t tol =1e-2)
Runs fitting by Expectation(E)-Maximization(M)
std::tuple< UniformMatrixList< kMatFreeDim2 >, UniformMatrixList< kMatFreeDim2 > > ReturnData()
Returns the input/output data to caller.
const std::vector< Matrix > & x() const
gets estimated state (over time)
const std::vector< Matrix > & y() const
gets estimated output (over time)
const Matrix & sum_E_x_t_x_t() const
gets state-input covariance
const Matrix & sum_E_xu_tm1_xu_tm1() const
gets state-input covariance (t-minus-1)
const Matrix & sum_E_xu_t_xu_tm1() const
gets single lag state-input covariance
size_t n_t_tot()
total number of time samples
const Vector & theta() const
gets parameters updated in M step

Protected Functions inherited from lds::EM< Fit >

Name
void Expectation(bool force_common_initial =false)
Expectation step.
void Maximization(bool calc_dynamics =true, bool calc_Q =true, bool calc_init =false, bool calc_output =false, bool calc_measurement =false)
Maximization step.
void MaximizeDynamics()
void MaximizeQ()
void MaximizeInitial()
void Smooth(bool force_common_initial)
get smoothed estimates
void Reset()
reset to initial conditions
void InitVars()
Initializes the variables.
Vector UpdateTheta()
updates parameter list, theta

Protected Attributes inherited from lds::EM< Fit >

Name
UniformMatrixList< kMatFreeDim2 > u_
input training data
UniformMatrixList< kMatFreeDim2 > z_
measurement training data
std::vector< Matrix > x_
state estimate
std::vector< Cube > P_
state estimate cov
std::vector< Cube > P_t_tm1_
single-lag state covariance
std::vector< Matrix > y_
output estimate
Matrix diag_y_
Matrix sum_E_x_t_x_t_
state covariance (current time)
Matrix sum_E_xu_tm1_xu_tm1_
state-input covariance (t-minus-1)
Matrix sum_E_xu_t_xu_tm1_
single lag state-input covariance
Fit fit_
Vector theta_
data_t dt_
sample period
size_t n_u_
number of inputs
size_t n_x_
number of states
size_t n_y_
number of outputs
size_t n_trials_
number of input/output data sequences
std::vector< size_t > n_t_
number of time steps
size_t n_t_tot_
total number of time steps across trials

Detailed Description #

class lds::gaussian::FitEM;

This type is used in the process of fitting GLDS models by expectation-maximization (EM).




Updated on 19 May 2022 at 17:16:04 Eastern Daylight Time