1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class HMM</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class <A HREF="#DOC.DOCU">HMM</A></H2></H2><BLOCKQUOTE>This class implements a Hidden Markov Model distribution.</BLOCKQUOTE>
<HR>
<H2>Inheritance:</H2>
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=185>
<param name=classes value="CObject,MObject.html,CMachine,MMachine.html,CGradientMachine,MGradientMachine.html,CDistribution,MDistribution.html,CHMM,MHMM.html,CSpeechHMM,MSpeechHMM.html">
<param name=before value="M,M,M,M,M,M^_">
<param name=after value="Md_SPSPSP,Md_SPSP,Md_SP,Md_,M,M">
<param name=indent value="0,1,2,3,4,4">
<param name=arrowdir value="down">
</APPLET>
<HR>
<DL>
<P><DL>
<DT><H3>Public Fields</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="SeqDataSet.html">SeqDataSet</A>* <B><A HREF="#DOC.98.1">data</A></B>
<DD><I>keep the training data to compute the size of the longest sequence</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int <B><A HREF="#DOC.98.2">n_states</A></B>
<DD><I>The number of states of the HMM.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>real <B><A HREF="#DOC.98.3">prior_transitions</A></B>
<DD><I>a prior on the transition probabilities</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Distribution.html">Distribution</A>** <B><A HREF="#DOC.98.4">states</A></B>
<DD><I>keep the emission distributions</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Distribution.html">Distribution</A>** <B><A HREF="#DOC.98.5">unique_states</A></B>
<DD><I>in the case where the emission distribution share their parameters, <TT>unique_states</TT> contains the prototypes which will be used for updates (otherwise, it is a pointer to <TT>states</TT>).</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int <B><A HREF="#DOC.98.6">n_unique_states</A></B>
<DD><I>if <TT>unique_states</TT> is given, n_unique_states is its size</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>real** <B><A HREF="#DOC.98.7">transitions</A></B>
<DD><I>the initial transitions between states are kept as a matrix</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>real** <B><A HREF="#DOC.98.8">log_transitions</A></B>
<DD><I>in fact, we keep the transitions in log</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>real** <B><A HREF="#DOC.98.9">dlog_transitions</A></B>
<DD><I>the derivative of the log transitions for gradient descent</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>real** <B><A HREF="#DOC.98.10">transitions_acc</A></B>
<DD><I>the accumulators of the transitions for EM</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>real** <B><A HREF="#DOC.98.11">log_alpha</A></B>
<DD><I>accumulator used in the forward phase to compute log likelihood </I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>real** <B><A HREF="#DOC.98.12">log_beta</A></B>
<DD><I>accumulator used in the backward phase to compute log likelihood </I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int** <B><A HREF="#DOC.98.13">arg_viterbi</A></B>
<DD><I>for each state, for each time step, keep the best predecessor </I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int* <B><A HREF="#DOC.98.14">viterbi_sequence</A></B>
<DD><I>for each time step, keep the best state </I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>real** <B><A HREF="#DOC.98.15">log_probabilities_s</A></B>
<DD><I>keep for each time step and each model its emission log probability</I>
</DL></P>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.98.16">printTransitions</A></B>(bool real_values=false, bool transitions_only=false)
<DD><I>this method can be used for debugging purpose to see the transitions</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.98.17">logAlpha</A></B>(<!1><A HREF="SeqExample.html">SeqExample</A>* ex)
<DD><I>computes the log_alpha during forward phase of EM</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.98.18">logBeta</A></B>(<!1><A HREF="SeqExample.html">SeqExample</A>* ex)
<DD><I>computes the log_beta during backward phase of EM</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.98.19">logViterbi</A></B>(<!1><A HREF="SeqExample.html">SeqExample</A>* ex)
<DD><I>computes the log_viterbi during forward phase of Viterbi</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.98.20">decode</A></B>(<!1><A HREF="List.html">List</A>* input)
<DD><I>this method returns the state sequence associated to the input</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual void <B><A HREF="#DOC.98.21">logProbabilities</A></B>(<!1><A HREF="List.html">List</A>* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>)
<DD><I>computes for each state and each time step of the sequence <TT>inputs</TT> its associated emission probability</I>
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Distribution.html">Distribution</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Fields</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>int <B>n_observations</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>int <B>tot_n_frames</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>int <B>max_n_frames</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>real <B>log_probability</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>real* <B>log_probabilities</B>
</DL></P>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual real <B>logProbability</B>(<!1><A HREF="List.html">List</A>* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual real <B>viterbiLogProbability</B>(<!1><A HREF="List.html">List</A>* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual real <B>frameLogProbability</B>(real* <!1><A HREF="SeqExample.html#DOC.107.4">observations</A>, real* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>, int t)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>frameExpectation</B>(real* <!1><A HREF="SeqExample.html#DOC.107.4">observations</A>, real* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>, int t)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>eMIterInitialize</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>iterInitialize</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>eMSequenceInitialize</B>(<!1><A HREF="List.html">List</A>* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>sequenceInitialize</B>(<!1><A HREF="List.html">List</A>* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>eMAccPosteriors</B>(<!1><A HREF="List.html">List</A>* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>, real log_posterior)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>frameEMAccPosteriors</B>(real* <!1><A HREF="SeqExample.html#DOC.107.4">observations</A>, real log_posterior, real* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>, int t)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>viterbiAccPosteriors</B>(<!1><A HREF="List.html">List</A>* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>, real log_posterior)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>frameViterbiAccPosteriors</B>(real* <!1><A HREF="SeqExample.html#DOC.107.4">observations</A>, real log_posterior, real* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>, int t)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>eMUpdate</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>eMForward</B>(<!1><A HREF="List.html">List</A>* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>viterbiForward</B>(<!1><A HREF="List.html">List</A>* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>frameBackward</B>(real* <!1><A HREF="SeqExample.html#DOC.107.4">observations</A>, real* <!1><A HREF="QCMachine.html#DOC.40.5">alpha</A>, real* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>, int t)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>viterbiBackward</B>(<!1><A HREF="List.html">List</A>* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>, real* <!1><A HREF="QCMachine.html#DOC.40.5">alpha</A>)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="GradientMachine.html">GradientMachine</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Fields</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>bool <B>is_free</B>
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="List.html">List</A>* <B>params</B>
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="List.html">List</A>* <B>der_params</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>int <B>n_params</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>real* <B>beta</B>
</DL></P>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>init</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual int <B>numberOfParams</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>backward</B>(<!1><A HREF="List.html">List</A>* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>, real* <!1><A HREF="QCMachine.html#DOC.40.5">alpha</A>)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>allocateMemory</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>freeMemory</B>()
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>loadFILE</B>(FILE* <!1><A HREF="Measurer.html#DOC.30.2">file</A>)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>saveFILE</B>(FILE* <!1><A HREF="Measurer.html#DOC.30.2">file</A>)
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Machine.html">Machine</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Fields</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>int <B>n_inputs</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>int <B>n_outputs</B>
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="List.html">List</A>* <B>outputs</B>
</DL></P>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>forward</B>(<!1><A HREF="List.html">List</A>* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>reset</B>()
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Object.html">Object</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>void <B>addOption</B>(const char* <!1><A HREF="SeqExample.html#DOC.107.9">name</A>, int size, void* <!1><A HREF="Vec.html#DOC.81.3">ptr</A>, const char* <!1><A HREF="CmdLine.html#DOC.7.3">help</A>="", bool is_allowed_after_init=false)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>addIOption</B>(const char* <!1><A HREF="SeqExample.html#DOC.107.9">name</A>, int* <!1><A HREF="Vec.html#DOC.81.3">ptr</A>, int init_value, const char* <!1><A HREF="CmdLine.html#DOC.7.3">help</A>="", bool is_allowed_after_init=false)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>addROption</B>(const char* <!1><A HREF="SeqExample.html#DOC.107.9">name</A>, real* <!1><A HREF="Vec.html#DOC.81.3">ptr</A>, real init_value, const char* <!1><A HREF="CmdLine.html#DOC.7.3">help</A>="", bool is_allowed_after_init=false)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>addBOption</B>(const char* <!1><A HREF="SeqExample.html#DOC.107.9">name</A>, bool* <!1><A HREF="Vec.html#DOC.81.3">ptr</A>, bool init_value, const char* <!1><A HREF="CmdLine.html#DOC.7.3">help</A>="", bool is_allowed_after_init=false)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setOption</B>(const char* <!1><A HREF="SeqExample.html#DOC.107.9">name</A>, void* <!1><A HREF="Vec.html#DOC.81.3">ptr</A>)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setIOption</B>(const char* <!1><A HREF="SeqExample.html#DOC.107.9">name</A>, int option)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setROption</B>(const char* <!1><A HREF="SeqExample.html#DOC.107.9">name</A>, real option)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setBOption</B>(const char* <!1><A HREF="SeqExample.html#DOC.107.9">name</A>, bool option)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>load</B>(const char* filename)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>save</B>(const char* filename)
</DL></P>
</DL>
<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>This class implements a Hidden Markov Model distribution. In fact,
it also implements the Input Output version (IOHMM). It can be trained
either by EM, Viterbi, or Gradient Descent.
<P>Note that this kind of HMM always contain one initial state and
one final state. Both are non-emitting.
<P></BLOCKQUOTE>
<DL>
<A NAME="data"></A>
<A NAME="DOC.98.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="SeqDataSet.html">SeqDataSet</A>* data</B></TT>
<DD>keep the training data to compute the size of the longest sequence
<DL><DT><DD></DL><P>
<A NAME="n_states"></A>
<A NAME="DOC.98.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int n_states</B></TT>
<DD>The number of states of the HMM.
the first model is the initial state,
the last model is the final (absorbing) state,
(neither of them are emitting).
hence, n_states > 2
<DL><DT><DD></DL><P>
<A NAME="prior_transitions"></A>
<A NAME="DOC.98.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>real prior_transitions</B></TT>
<DD>a prior on the transition probabilities
<DL><DT><DD></DL><P>
<A NAME="states"></A>
<A NAME="DOC.98.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Distribution.html">Distribution</A>** states</B></TT>
<DD>keep the emission distributions
<DL><DT><DD></DL><P>
<A NAME="unique_states"></A>
<A NAME="DOC.98.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Distribution.html">Distribution</A>** unique_states</B></TT>
<DD>in the case where the emission distribution share their
parameters, <TT>unique_states</TT> contains the prototypes which
will be used for updates (otherwise, it is a pointer to
<TT>states</TT>). Note that if given, and as for <TT>states</TT>,
<TT>unique_states</TT> contains an empty state for positions
0 (initial state) and <TT>n_states</TT> - 1 (final state)
<DL><DT><DD></DL><P>
<A NAME="n_unique_states"></A>
<A NAME="DOC.98.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int n_unique_states</B></TT>
<DD>if <TT>unique_states</TT> is given, n_unique_states is its size
<DL><DT><DD></DL><P>
<A NAME="transitions"></A>
<A NAME="DOC.98.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>real** transitions</B></TT>
<DD>the initial transitions between states are kept as a matrix
<DL><DT><DD></DL><P>
<A NAME="log_transitions"></A>
<A NAME="DOC.98.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>real** log_transitions</B></TT>
<DD>in fact, we keep the transitions in log
<DL><DT><DD></DL><P>
<A NAME="dlog_transitions"></A>
<A NAME="DOC.98.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>real** dlog_transitions</B></TT>
<DD>the derivative of the log transitions for gradient descent
<DL><DT><DD></DL><P>
<A NAME="transitions_acc"></A>
<A NAME="DOC.98.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>real** transitions_acc</B></TT>
<DD>the accumulators of the transitions for EM
<DL><DT><DD></DL><P>
<A NAME="log_alpha"></A>
<A NAME="DOC.98.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>real** log_alpha</B></TT>
<DD>accumulator used in the forward phase to compute log likelihood
<DL><DT><DD></DL><P>
<A NAME="log_beta"></A>
<A NAME="DOC.98.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>real** log_beta</B></TT>
<DD>accumulator used in the backward phase to compute log likelihood
<DL><DT><DD></DL><P>
<A NAME="arg_viterbi"></A>
<A NAME="DOC.98.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int** arg_viterbi</B></TT>
<DD>for each state, for each time step, keep the best predecessor
<DL><DT><DD></DL><P>
<A NAME="viterbi_sequence"></A>
<A NAME="DOC.98.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int* viterbi_sequence</B></TT>
<DD>for each time step, keep the best state
<DL><DT><DD></DL><P>
<A NAME="log_probabilities_s"></A>
<A NAME="DOC.98.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>real** log_probabilities_s</B></TT>
<DD>keep for each time step and each model its emission log probability
<DL><DT><DD></DL><P>
<A NAME="printTransitions"></A>
<A NAME="DOC.98.16"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void printTransitions(bool real_values=false, bool transitions_only=false)</B></TT>
<DD>this method can be used for debugging purpose to see the transitions
<DL><DT><DD></DL><P>
<A NAME="logAlpha"></A>
<A NAME="DOC.98.17"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void logAlpha(<!1><A HREF="SeqExample.html">SeqExample</A>* ex)</B></TT>
<DD>computes the log_alpha during forward phase of EM
<DL><DT><DD></DL><P>
<A NAME="logBeta"></A>
<A NAME="DOC.98.18"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void logBeta(<!1><A HREF="SeqExample.html">SeqExample</A>* ex)</B></TT>
<DD>computes the log_beta during backward phase of EM
<DL><DT><DD></DL><P>
<A NAME="logViterbi"></A>
<A NAME="DOC.98.19"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void logViterbi(<!1><A HREF="SeqExample.html">SeqExample</A>* ex)</B></TT>
<DD>computes the log_viterbi during forward phase of Viterbi
<DL><DT><DD></DL><P>
<A NAME="decode"></A>
<A NAME="DOC.98.20"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void decode(<!1><A HREF="List.html">List</A>* input)</B></TT>
<DD>this method returns the state sequence associated to the input
<DL><DT><DD></DL><P>
<A NAME="logProbabilities"></A>
<A NAME="DOC.98.21"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual void logProbabilities(<!1><A HREF="List.html">List</A>* <!1><A HREF="SeqExample.html#DOC.107.3">inputs</A>)</B></TT>
<DD>computes for each state and each time step of the sequence <TT>inputs</TT>
its associated emission probability
<DL><DT><DD></DL><P></DL>
<HR>
<DL><DT><B>Direct child classes:
</B><DD><A HREF="SpeechHMM.html">SpeechHMM</A><BR>
</DL>
<DL><DT><DT><B>Author:</B><DD>Samy Bengio (bengio@idiap.ch)
<DD></DL><P><P><I><A HREF="index.html">Alphabetic index</A></I> <I><A HREF="HIER.html">HTML hierarchy of classes</A> or <A HREF="HIERjava.html">Java</A></I></P><HR>
<BR>
This page was generated with the help of <A HREF="http://docpp.sourceforge.net">DOC++</A>.
</BODY>
</HTML>
|