rofunc.learning.RofuncML.gmm#

1.  Module Contents#

1.1.  Classes#

GMM

1.2.  API#

class rofunc.learning.RofuncML.gmm.GMM(nb_states=1, nb_dim=None, init_zeros=False, mu=None, lmbda=None, sigma=None, priors=None, log_priors=None)[source]#

Bases: pbdlib.model.Model

get_matching_mvn(max=False, mass=None)[source]#
moment_matching(h)[source]#

Perform moment matching to approximate a mixture of Gaussian as a Gaussian :param h: np.array([nb_timesteps, nb_states])

Activations of each states for different timesteps

Returns:

marginal_model(dims)[source]#

Get a GMM of a slice of this GMM :param dims: :type dims: slice :return:

lintrans(A, b)[source]#

Linear transformation of a GMM

Parameters:
  • A – np.array(nb_dim, nb_dim)

  • b – np.array(nb_dim)

Returns:

lintrans_dyna(A, b)[source]#

Linear transformation of a GMM

Parameters:
  • A – np.array(nb_states, nb_dim, nb_dim)

  • b – np.array(nb_states, nb_dim)

Returns:

concatenate_gaussian(q, get_mvn=True, reg=None)[source]#

Get a concatenated-block-diagonal replication of the GMM with sequence of state given by q.

Parameters:
  • q – [list of int]

  • get_mvn – [bool]

Returns:

compute_resp(demo=None, dep=None, table=None, marginal=None, norm=True)[source]#
init_params_scikit(data, cov_type='full')[source]#
init_params_kmeans(data)[source]#
init_params_random(data)[source]#
em(data, reg=1e-08, maxiter=100, minstepsize=1e-05, diag=False, reg_finish=False, kmeans_init=False, random_init=True, dep_mask=None, verbose=False, only_scikit=False, no_init=False)[source]#
Parameters:
  • data – [np.array([nb_timesteps, nb_dim])]

  • reg – [list([nb_dim]) or float] Regulariazation for EM

  • maxiter

  • minstepsize

  • diag – [bool] Use diagonal covariance matrices

  • reg_finish – [np.array([nb_dim]) or float] Regulariazation for finish step

  • kmeans_init – [bool] Init components with k-means.

  • random_init – [bool] Init components randomely.

  • dep_mask – [np.array([nb_dim, nb_dim])] Composed of 0 and 1. Mask given the dependencies in the covariance matrices

Returns:

init_hmm_kbins(demos, dep=None, reg=1e-08, dep_mask=None)[source]#

Init HMM by splitting each demos in K bins along time. Each K states of the HMM will be initialized with one of the bin. It corresponds to a left-to-right HMM.

Parameters:
  • demos – [list of np.array([nb_timestep, nb_dim])]

  • dep

  • reg – [float]

Returns:

add_trash_component(data, scale=2.0)[source]#
mvn_pdf(x, reg=None)[source]#
Parameters:
  • x – np.array([nb_samples, nb_dim]) samples

  • mu – np.array([nb_states, nb_dim]) mean vector

  • sigma_chol – np.array([nb_states, nb_dim, nb_dim]) cholesky decomposition of covariance matrices

  • lmbda – np.array([nb_states, nb_dim, nb_dim]) precision matrices

Returns:

np.array([nb_states, nb_samples]) log mvn

log_prob(x)[source]#