EbwAmSgmm2Options Struct Reference

This header implements a form of Extended Baum-Welch training for SGMMs. More...

#include <estimate-am-sgmm2-ebw.h>

Collaboration diagram for EbwAmSgmm2Options:

Public Member Functions

 EbwAmSgmm2Options ()
 for an issue in some implementations of SVD. More...
 
void Register (OptionsItf *opts)
 

Public Attributes

BaseFloat tau_v
 Smoothing constant for updates of sub-state vectors v_{jm}. More...
 
BaseFloat lrate_v
 Learning rate used in updating v– default 0.5. More...
 
BaseFloat tau_M
 Smoothing constant for the M quantities (phone-subspace projections) More...
 
BaseFloat lrate_M
 Learning rate used in updating M– default 0.5. More...
 
BaseFloat tau_N
 Smoothing constant for the N quantities (speaker-subspace projections) More...
 
BaseFloat lrate_N
 Learning rate used in updating N– default 0.5. More...
 
BaseFloat tau_c
 Tau value for smoothing substate weights (c) More...
 
BaseFloat tau_w
 Tau value for smoothing update of phonetic-subspace weight projectsions (w) More...
 
BaseFloat lrate_w
 Learning rate used in updating w– default 1.0. More...
 
BaseFloat tau_u
 Tau value for smoothing update of speaker-subspace weight projectsions (u) More...
 
BaseFloat lrate_u
 Learning rate used in updating u– default 1.0. More...
 
BaseFloat max_impr_u
 Maximum improvement/frame allowed for u [0.25, carried over from ML update.]. More...
 
BaseFloat tau_Sigma
 Tau value for smoothing covariance-matrices Sigma. More...
 
BaseFloat lrate_Sigma
 Learning rate used in updating Sigma– default 0.5. More...
 
BaseFloat min_substate_weight
 Minimum allowed weight in a sub-state. More...
 
BaseFloat cov_min_value
 E.g. More...
 
BaseFloat max_cond
 is allowed to change. More...
 
BaseFloat epsilon
 very small value used in SolveQuadraticProblem; workaround More...
 

Detailed Description

This header implements a form of Extended Baum-Welch training for SGMMs.

If you are confused by this comment, see Dan Povey's thesis for an explanation of Extended Baum-Welch. A note on the EBW (Extended Baum-Welch) updates for the SGMMs... In general there is a parameter-specific value D that is similar to the D in EBW for GMMs. The value of D is generally set to: E * (denominator-count for that parameter) + tau-value for that parameter where the tau-values are user-specified parameters that are specific to the type of the parameter (e.g. phonetic vector, subspace projection, etc.). Things are a bit more complex for this update than for GMMs, because it's not just a question of picking a tau-value for smoothing: there is sometimes a scatter-matrix of some kind (e.g. an outer product of vectors, or something) that defines a quadratic objective function that we'll add as smoothing. We have to pick where to get this scatter-matrix from. We feel that it's appropriate for the "E" part of the D to get its scatter-matrix from denominator stats, and the tau part of the D to get half its scatter-matrix from the both the numerator and denominator stats, assigned a weight proportional to how much stats there were. When you see the auxiliary function written out, it's clear why this makes sense.

Definition at line 54 of file estimate-am-sgmm2-ebw.h.

Constructor & Destructor Documentation

◆ EbwAmSgmm2Options()

EbwAmSgmm2Options ( )
inline

for an issue in some implementations of SVD.

Definition at line 80 of file estimate-am-sgmm2-ebw.h.

80  {
81  tau_v = 50.0;
82  lrate_v = 0.5;
83  tau_M = 500.0;
84  lrate_M = 0.5;
85  tau_N = 500.0;
86  lrate_N = 0.5;
87  tau_c = 10.0;
88  tau_w = 50.0;
89  lrate_w = 1.0;
90  tau_u = 50.0;
91  lrate_u = 1.0;
92  max_impr_u = 0.25;
93  tau_Sigma = 500.0;
94  lrate_Sigma = 0.5;
95 
96  min_substate_weight = 1.0e-05;
97  cov_min_value = 0.5;
98 
99  max_cond = 1.0e+05;
100  epsilon = 1.0e-40;
101  }
BaseFloat tau_Sigma
Tau value for smoothing covariance-matrices Sigma.
BaseFloat max_cond
is allowed to change.
BaseFloat max_impr_u
Maximum improvement/frame allowed for u [0.25, carried over from ML update.].
BaseFloat tau_u
Tau value for smoothing update of speaker-subspace weight projectsions (u)
BaseFloat lrate_Sigma
Learning rate used in updating Sigma– default 0.5.
BaseFloat lrate_v
Learning rate used in updating v– default 0.5.
BaseFloat lrate_w
Learning rate used in updating w– default 1.0.
BaseFloat lrate_N
Learning rate used in updating N– default 0.5.
BaseFloat tau_v
Smoothing constant for updates of sub-state vectors v_{jm}.
BaseFloat lrate_u
Learning rate used in updating u– default 1.0.
BaseFloat tau_M
Smoothing constant for the M quantities (phone-subspace projections)
BaseFloat lrate_M
Learning rate used in updating M– default 0.5.
BaseFloat tau_c
Tau value for smoothing substate weights (c)
BaseFloat tau_N
Smoothing constant for the N quantities (speaker-subspace projections)
BaseFloat tau_w
Tau value for smoothing update of phonetic-subspace weight projectsions (w)
BaseFloat epsilon
very small value used in SolveQuadraticProblem; workaround
BaseFloat min_substate_weight
Minimum allowed weight in a sub-state.

Member Function Documentation

◆ Register()

void Register ( OptionsItf opts)
inline

Definition at line 103 of file estimate-am-sgmm2-ebw.h.

References OptionsItf::Register().

Referenced by main().

103  {
104  std::string module = "EbwAmSgmm2Options: ";
105  opts->Register("tau-v", &tau_v, module+
106  "Smoothing constant for phone vector estimation.");
107  opts->Register("lrate-v", &lrate_v, module+
108  "Learning rate constant for phone vector estimation.");
109  opts->Register("tau-m", &tau_M, module+
110  "Smoothing constant for estimation of phonetic-subspace projections (M).");
111  opts->Register("lrate-m", &lrate_M, module+
112  "Learning rate constant for phonetic-subspace projections.");
113  opts->Register("tau-n", &tau_N, module+
114  "Smoothing constant for estimation of speaker-subspace projections (N).");
115  opts->Register("lrate-n", &lrate_N, module+
116  "Learning rate constant for speaker-subspace projections.");
117  opts->Register("tau-c", &tau_c, module+
118  "Smoothing constant for estimation of substate weights (c)");
119  opts->Register("tau-w", &tau_w, module+
120  "Smoothing constant for estimation of phonetic-space weight projections (w)");
121  opts->Register("lrate-w", &lrate_w, module+
122  "Learning rate constant for phonetic-space weight-projections (w)");
123  opts->Register("tau-u", &tau_u, module+
124  "Smoothing constant for estimation of speaker-space weight projections (u)");
125  opts->Register("lrate-u", &lrate_u, module+
126  "Learning rate constant for speaker-space weight-projections (u)");
127  opts->Register("tau-sigma", &tau_Sigma, module+
128  "Smoothing constant for estimation of within-class covariances (Sigma)");
129  opts->Register("lrate-sigma", &lrate_Sigma, module+
130  "Constant that controls speed of learning for variances (larger->slower)");
131  opts->Register("cov-min-value", &cov_min_value, module+
132  "Minimum value that an eigenvalue of the updated covariance matrix can take, "
133  "relative to its old value (maximum is inverse of this.)");
134  opts->Register("min-substate-weight", &min_substate_weight, module+
135  "Floor for weights of sub-states.");
136  opts->Register("max-cond", &max_cond, module+
137  "Value used in handling singular matrices during update.");
138  opts->Register("epsilon", &max_cond, module+
139  "Value used in handling singular matrices during update.");
140  }
BaseFloat tau_Sigma
Tau value for smoothing covariance-matrices Sigma.
BaseFloat max_cond
is allowed to change.
BaseFloat tau_u
Tau value for smoothing update of speaker-subspace weight projectsions (u)
BaseFloat lrate_Sigma
Learning rate used in updating Sigma– default 0.5.
BaseFloat lrate_v
Learning rate used in updating v– default 0.5.
BaseFloat lrate_w
Learning rate used in updating w– default 1.0.
BaseFloat lrate_N
Learning rate used in updating N– default 0.5.
BaseFloat tau_v
Smoothing constant for updates of sub-state vectors v_{jm}.
BaseFloat lrate_u
Learning rate used in updating u– default 1.0.
BaseFloat tau_M
Smoothing constant for the M quantities (phone-subspace projections)
BaseFloat lrate_M
Learning rate used in updating M– default 0.5.
BaseFloat tau_c
Tau value for smoothing substate weights (c)
BaseFloat tau_N
Smoothing constant for the N quantities (speaker-subspace projections)
BaseFloat tau_w
Tau value for smoothing update of phonetic-subspace weight projectsions (w)
BaseFloat min_substate_weight
Minimum allowed weight in a sub-state.

Member Data Documentation

◆ cov_min_value

BaseFloat cov_min_value

E.g.

0.5– the maximum any eigenvalue of a covariance

Definition at line 71 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdateVars().

◆ epsilon

◆ lrate_M

BaseFloat lrate_M

Learning rate used in updating M– default 0.5.

Definition at line 58 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdateM().

◆ lrate_N

BaseFloat lrate_N

Learning rate used in updating N– default 0.5.

Definition at line 60 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdateN().

◆ lrate_Sigma

BaseFloat lrate_Sigma

Learning rate used in updating Sigma– default 0.5.

Definition at line 68 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdateVars().

◆ lrate_u

BaseFloat lrate_u

Learning rate used in updating u– default 1.0.

Definition at line 65 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdateU().

◆ lrate_v

BaseFloat lrate_v

Learning rate used in updating v– default 0.5.

Definition at line 56 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdatePhoneVectorsInternal().

◆ lrate_w

BaseFloat lrate_w

Learning rate used in updating w– default 1.0.

Definition at line 63 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdateW().

◆ max_cond

BaseFloat max_cond

is allowed to change.

[this is the minimum; the maximum is the inverse of this, i.e. 2.0 in this case. For example, 0.9 would constrain the covariance quite tightly, 0.1 would be a loose setting. large value used in SolveQuadraticProblem.

Definition at line 76 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdateM(), EbwAmSgmm2Updater::UpdateN(), EbwAmSgmm2Updater::UpdatePhoneVectorsInternal(), EbwAmSgmm2Updater::UpdateU(), and EbwAmSgmm2Updater::UpdateW().

◆ max_impr_u

BaseFloat max_impr_u

Maximum improvement/frame allowed for u [0.25, carried over from ML update.].

Definition at line 66 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdateU().

◆ min_substate_weight

BaseFloat min_substate_weight

Minimum allowed weight in a sub-state.

Definition at line 69 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdateSubstateWeights().

◆ tau_c

BaseFloat tau_c

Tau value for smoothing substate weights (c)

Definition at line 61 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdateSubstateWeights().

◆ tau_M

BaseFloat tau_M

Smoothing constant for the M quantities (phone-subspace projections)

Definition at line 57 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdateM().

◆ tau_N

BaseFloat tau_N

Smoothing constant for the N quantities (speaker-subspace projections)

Definition at line 59 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdateN().

◆ tau_Sigma

BaseFloat tau_Sigma

Tau value for smoothing covariance-matrices Sigma.

Definition at line 67 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdateVars().

◆ tau_u

BaseFloat tau_u

Tau value for smoothing update of speaker-subspace weight projectsions (u)

Definition at line 64 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdateU().

◆ tau_v

BaseFloat tau_v

Smoothing constant for updates of sub-state vectors v_{jm}.

Definition at line 55 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdatePhoneVectorsInternal().

◆ tau_w

BaseFloat tau_w

Tau value for smoothing update of phonetic-subspace weight projectsions (w)

Definition at line 62 of file estimate-am-sgmm2-ebw.h.

Referenced by EbwAmSgmm2Updater::UpdateW().


The documentation for this struct was generated from the following file: