class Distribution

This class is designed to handle generative distribution models such as Gaussian Mixture Models and Hidden Markov Models.

Inheritance:


Public Fields

[more]int n_observations
size of the observation vectors
[more]int tot_n_frames
total number of frames
[more]int max_n_frames
the longest sequence in the database (used to dimensionate the variables)
[more]real log_probability
the log likelihood
[more]real* log_probabilities
the log likelihood for each frame

Public Methods

[more] Distribution()
[more]virtual real logProbability(List* inputs)
Returns the log probability of a sequence represented by inputs
[more]virtual real viterbiLogProbability(List* inputs)
Returns the viterbi score of a sequence represented by inputs
[more]virtual real frameLogProbability(real* observations, real* inputs, int t)
Returns the log probability of a frame of a sequence
[more]virtual void frameExpectation(real* observations, real* inputs, int t)
Returns the expected value of observations given inputs
[more]virtual void eMIterInitialize()
Methods used to initialize the model at the beginning of each EM iteration
[more]virtual void iterInitialize()
Methods used to initialize the model at the beginning of each gradient descent iteration
[more]virtual void eMSequenceInitialize(List* inputs)
Methods used to initialize the model at the beginning of each example during EM training
[more]virtual void sequenceInitialize(List* inputs)
Methods used to initialize the model at the beginning of each example during gradient descent training
[more]virtual void eMAccPosteriors(List* inputs, real log_posterior)
The backward step of EM for a sequence
[more]virtual void frameEMAccPosteriors(real* observations, real log_posterior, real* inputs, int t)
The backward step of EM for a frame
[more]virtual void viterbiAccPosteriors(List* inputs, real log_posterior)
The backward step of Viterbi learning for a sequence
[more]virtual void frameViterbiAccPosteriors(real* observations, real log_posterior, real* inputs, int t)
The backward step of Viterbi for a frame
[more]virtual void eMUpdate()
The update after each iteration for EM
[more]virtual void decode(List* inputs)
For some distribution like SpeechHMM, decodes the most likely path
[more]virtual void eMForward(List* inputs)
Same as forward, but for EM
[more]virtual void viterbiForward(List* inputs)
Same as forward, but for Viterbi
[more]virtual void frameBackward(real* observations, real* alpha, real* inputs, int t)
Same as backward, but for one frame only
[more]virtual void viterbiBackward(List* inputs, real* alpha)
Same as backward, but for Viterbi


Inherited from GradientMachine:

Public Fields

obool is_free
oList* params
oList* der_params
oint n_params
oreal* beta

Public Methods

ovirtual void init()
ovirtual int numberOfParams()
ovirtual void backward(List* inputs, real* alpha)
ovirtual void allocateMemory()
ovirtual void freeMemory()
ovirtual void loadFILE(FILE* file)
ovirtual void saveFILE(FILE* file)


Inherited from Machine:

Public Fields

oint n_inputs
oint n_outputs
oList* outputs

Public Methods

ovirtual void forward(List* inputs)
ovirtual void reset()


Inherited from Object:

Public Methods

ovoid addOption(const char* name, int size, void* ptr, const char* help="", bool is_allowed_after_init=false)
ovoid addIOption(const char* name, int* ptr, int init_value, const char* help="", bool is_allowed_after_init=false)
ovoid addROption(const char* name, real* ptr, real init_value, const char* help="", bool is_allowed_after_init=false)
ovoid addBOption(const char* name, bool* ptr, bool init_value, const char* help="", bool is_allowed_after_init=false)
ovoid setOption(const char* name, void* ptr)
ovoid setIOption(const char* name, int option)
ovoid setROption(const char* name, real option)
ovoid setBOption(const char* name, bool option)
ovoid load(const char* filename)
ovoid save(const char* filename)


Documentation

This class is designed to handle generative distribution models such as Gaussian Mixture Models and Hidden Markov Models. As distribution inherits from GradientMachine, they can be trained by gradient descent or by Expectation Maximization (EM) or even Viterbi.

Note that the output of a distribution is the negative log likelihood.

oint n_observations
size of the observation vectors

oint tot_n_frames
total number of frames

oint max_n_frames
the longest sequence in the database (used to dimensionate the variables)

oreal log_probability
the log likelihood

oreal* log_probabilities
the log likelihood for each frame

o Distribution()

ovirtual real logProbability(List* inputs)
Returns the log probability of a sequence represented by inputs

ovirtual real viterbiLogProbability(List* inputs)
Returns the viterbi score of a sequence represented by inputs

ovirtual real frameLogProbability(real* observations, real* inputs, int t)
Returns the log probability of a frame of a sequence

ovirtual void frameExpectation(real* observations, real* inputs, int t)
Returns the expected value of observations given inputs

ovirtual void eMIterInitialize()
Methods used to initialize the model at the beginning of each EM iteration

ovirtual void iterInitialize()
Methods used to initialize the model at the beginning of each gradient descent iteration

ovirtual void eMSequenceInitialize(List* inputs)
Methods used to initialize the model at the beginning of each example during EM training

ovirtual void sequenceInitialize(List* inputs)
Methods used to initialize the model at the beginning of each example during gradient descent training

ovirtual void eMAccPosteriors(List* inputs, real log_posterior)
The backward step of EM for a sequence

ovirtual void frameEMAccPosteriors(real* observations, real log_posterior, real* inputs, int t)
The backward step of EM for a frame

ovirtual void viterbiAccPosteriors(List* inputs, real log_posterior)
The backward step of Viterbi learning for a sequence

ovirtual void frameViterbiAccPosteriors(real* observations, real log_posterior, real* inputs, int t)
The backward step of Viterbi for a frame

ovirtual void eMUpdate()
The update after each iteration for EM

ovirtual void decode(List* inputs)
For some distribution like SpeechHMM, decodes the most likely path

ovirtual void eMForward(List* inputs)
Same as forward, but for EM

ovirtual void viterbiForward(List* inputs)
Same as forward, but for Viterbi

ovirtual void frameBackward(real* observations, real* alpha, real* inputs, int t)
Same as backward, but for one frame only

ovirtual void viterbiBackward(List* inputs, real* alpha)
Same as backward, but for Viterbi


Direct child classes:
TableLookupDistribution
ParzenDistribution
Multinomial
HMM
FixedMachineDistribution
DistrMachine
DiagonalGMM
Author:
Samy Bengio (bengio@idiap.ch)

Alphabetic index HTML hierarchy of classes or Java



This page was generated with the help of DOC++.