The actual output of the network ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ð§ 7 ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 8 /AH/ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðž ðž ðž ðž ðž ðž ðž ðž ðž ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /D/ /D/ Cannot distinguish between an extended symbol and ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ /EH/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 repetitions of the symbol ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº /F/ /F/ /F/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ð» ð» ð» ð» ð» ð» ð» ð» ð» ð§ 0 /G/ ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /G/ ð 0 ð 1 ð 2 ð 3 ð 4 ð 5 ð 6 ð 7 ð 8 ⢠Option 1: Simply select the most probable symbol at each time â Merge adjacent repeated symbols, and place the actual emission of the symbol in the final instant 17
The actual output of the network ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ð§ 7 ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 8 /AH/ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 Resulting sequence may be meaningless (what word is âGFIYDâ?) ðž ðž ðž ðž ðž ðž ðž ðž ðž ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /D/ /D/ Cannot distinguish between an extended symbol and ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ /EH/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 repetitions of the symbol ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº /F/ /F/ /F/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ð» ð» ð» ð» ð» ð» ð» ð» ð» ð§ 0 /G/ ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /G/ ð 0 ð 1 ð 2 ð 3 ð 4 ð 5 ð 6 ð 7 ð 8 ⢠Option 1: Simply select the most probable symbol at each time â Merge adjacent repeated symbols, and place the actual emission of the symbol in the final instant 18
The actual output of the network ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ð§ 7 ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 8 /AH/ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðž ðž ðž ðž ðž ðž ðž ðž ðž ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /D/ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ /EH/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº /F/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ð» ð» ð» ð» ð» ð» ð» ð» ð» ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /G/ ð 0 ð 1 ð 2 ð 3 ð 4 ð 5 ð 6 ð 7 ð 8 ⢠Option 2: Impose external constraints on what sequences are allowed â E.g. only allow sequences corresponding to dictionary words â E.g. Sub-symbol units (like in HW1 â what were they?) 19
The actual output of the network ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ð§ 7 ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 8 /AH/ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðž ðž ðž ðž ðž ðž ðž ðž ðž ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /D/ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ /EH/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº /F/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 We will refer to the process ð» ð» ð» ð» ð» ð» ð» ð» ð» ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /G/ of obtaining an output from the network as decoding ð 0 ð 1 ð 2 ð 3 ð 4 ð 5 ð 6 ð 7 ð 8 ⢠Option 2: Impose external constraints on what sequences are allowed â E.g. only allow sequences corresponding to dictionary words â E.g. Sub-symbol units (like in HW1 â what were they?) 20
The sequence-to-sequence problem /B/ /IY/ /F/ /IY/ ð 0 ð 1 ð 2 ð 3 ð 4 ð 5 ð 6 ð 7 ð 8 ð 9 ⢠How do we know when to output symbols â In fact, the network produces outputs at every time â Which of these are the real outputs ⢠How do we train these models? 21
Training /B/ /IY/ /F/ /IY/ ð 0 ð 1 ð 2 ð 3 ð 4 ð 5 ð 6 ð 7 ð 8 ð 9 ⢠Given output symbols at the right locations â The phoneme /B/ ends at X 2 , /IY/ at X 4 , /F/ at X 6 , /IY/ at X 9 22
/F/ /IY/ /B/ /IY/ Div Div Div Div ð ð ð ð 2 4 6 9 ð 0 ð 1 ð 2 ð 3 ð 4 ð 5 ð 6 ð 7 ð 8 ð 9 ⢠Either just define Divergence as: ðžðœð = ðððð¢ ð 2 , ð¶ + ðððð¢ ð 4 , ðœð + ðððð¢ ð 6 , ðº + ðððð¢(ð 9 , ðœð) ⢠Or.. 23
/IY/ /F/ /IY/ /B/ Div Div Div Div Div Div Div Div Div Div ð ð ð ð 2 4 6 9 ð 0 ð 1 ð 2 ð 3 ð 4 ð 5 ð 6 ð 7 ð 8 ð 9 ⢠Either just define Divergence as: ðžðœð = ðððð¢ ð 2 , ð¶ + ðððð¢ ð 4 , ðœð + ðððð¢ ð 6 , ðº + ðððð¢(ð 9 , ðœð) ⢠Or repeat the symbols over their duration ðžðœð = à· ðððð¢ ð ð¢ , ð¡ð§ðððð ð¢ = â à· log ð ð¢, ð¡ð§ðððð ð¢ ð¢ ð¢ 24
/IY/ /F/ /IY/ /B/ Div Div Div Div Div Div Div Div Div Div ð ð ð ð 2 4 6 9 ð 0 ð 1 ð 2 ð 3 ð 4 ð 5 ð 6 ð 7 ð 8 ð 9 ðžðœð = à· ðððð¢ ð ð¢ , ð¡ð§ðððð ð¢ = â à· log ð ð¢, ð¡ð§ðððð ð¢ ð¢ ð¢ ⢠The gradient w.r.t the ð¢ -th output vector ð ð¢ â1 ðŒ ð ð¢ ðžðœð = 0 0 ⊠0 ⊠0 ð ð¢, ð¡ð§ðððð ð¢ â Zeros except at the component corresponding to the target 25
Problem: No timing information provided /B/ /IY/ /F/ /IY/ ? ? ? ? ? ? ? ? ? ? ð ð ð ð ð ð ð ð ð ð 0 1 2 3 4 5 6 7 8 9 ð 0 ð 1 ð 2 ð 3 ð 4 ð 5 ð 6 ð 7 ð 8 ð 9 ⢠Only the sequence of output symbols is provided for the training data â But no indication of which one occurs where ⢠How do we compute the divergence? â And how do we compute its gradient w.r.t. ð ð¢ 26
Solution 1: Guess the alignment /F/ /B/ /B/ /IY/ /IY/ /IY/ /F/ /F/ /IY/ /F/ ? ? ? ? ? ? ? ? ? ? ð ð ð ð ð ð ð ð ð ð 0 1 2 3 4 5 6 7 8 9 ð 0 ð 1 ð 2 ð 3 ð 4 ð 5 ð 6 ð 7 ð 8 ð 9 ⢠Initialize: Assign an initial alignment â Either randomly, based on some heuristic, or any other rationale ⢠Iterate: â Train the network using the current alignment â Reestimate the alignment for each training instance ⢠Using the decoding methods already discussed 27
Solution 1: Guess the alignment /F/ /B/ /B/ /IY/ /IY/ /IY/ /F/ /F/ /IY/ /F/ ? ? ? ? ? ? ? ? ? ? ð ð ð ð ð ð ð ð ð ð 0 1 2 3 4 5 6 7 8 9 ð 0 ð 1 ð 2 ð 3 ð 4 ð 5 ð 6 ð 7 ð 8 ð 9 ⢠Initialize: Assign an initial alignment â Either randomly, based on some heuristic, or any other rationale ⢠Iterate: â Train the network using the current alignment â Reestimate the alignment for each training instance ⢠Using the decoding methods already discussed 28
Estimating an alignment ⢠Given: â The unaligned ð¿ -length symbol sequence ð = ð 0 ⊠ð ð¿â1 (e.g. /B/ /IY/ /F/ /IY/) â An ð -length input ( ð ⥠ð¿ ) â And a (trained) recurrent network ⢠Find: â An ð -length expansion ð¡ 0 ⊠ð¡ ðâ1 comprising the symbols in S in strict order ⢠e.g. ð 0 ð 1 ð 1 ð 2 ð 3 ð 3 ⊠ð ð¿â1 â i.e. ð¡ 0 = ð 0 , ð¡ 2 = ð 1 , ð 3 = ð 1 , ð¡ 4 = ð 2 , ð¡ 5 = ð 3 , ⊠ð¡ ðâ1 = ð ð¿â1 ⢠E.g. /B/ /B/ /IY/ /IY/ /IY/ /F/ /F/ /F/ /F/ /IY/ .. â ð¡ ð = ð ð â ð ⥠ð â ð¡ ð = ð ð , ð¡ ð = ð ð , ð < ð â ð †ð ⢠Outcome: an alignment of the target symbol sequence ð 0 ⊠ð ð¿â1 to the input ð 0 ⊠ð ðâ1 29
Recall: The actual output of the network ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ð§ 7 ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 8 /AH/ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðž ðž ðž ðž ðž ðž ðž ðž ðž ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /D/ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ /EH/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº /F/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ð» ð» ð» ð» ð» ð» ð» ð» ð» ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /G/ ð 0 ð 1 ð 2 ð 3 ð 4 ð 5 ð 6 ð 7 ð 8 ⢠At each time the network outputs a probability for each output symbol 30
Recall: unconstrained decoding ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ð§ 7 ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 8 /AH/ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðž ðž ðž ðž ðž ðž ðž ðž ðž ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /D/ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ /EH/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº /F/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ð» ð» ð» ð» ð» ð» ð» ð» ð» ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /G/ ⢠We find the most likely sequence of symbols â (Conditioned on input ð 0 ⊠ð ðâ1 ) ⢠This may not correspond to an expansion of the desired symbol sequence â E.g. the unconstrained decode may be /AH//AH//AH//D//D//AH//F//IY//IY/ ⢠Contracts to /AH/ /D/ /AH/ /F/ /IY/ â Whereas we want an expansion of /B//IY//F//IY/ 31
Constraining the alignment: Try 1 ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ðµðŒ ð§ 7 ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 8 /AH/ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðž ðž ðž ðž ðž ðž ðž ðž ðž ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /D/ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ ð¹ðŒ /EH/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº /F/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ð» ð» ð» ð» ð» ð» ð» ð» ð» ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /G/ ⢠Block out all rows that do not include symbols from the target sequence â E.g. Block out rows that are not /B/ /IY/ or /F/ 32
Blocking out unnecessary outputs ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ /B/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /IY/ ð§ 5 ðº ðº ðº ðº ðº ðº ðº ðº ðº /F/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 Compute the entire output (for all symbols) Copy the output values for the target symbols into the secondary reduced structure 33
Constraining the alignment: Try 1 ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ /B/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /IY/ ð§ 5 ðº ðº ðº ðº ðº ðº ðº ðº ðº /F/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ⢠Only decode on reduced grid â We are now assured that only the appropriate symbols will be hypothesized 34
Constraining the alignment: Try 1 ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ /B/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /IY/ ð§ 5 ðº ðº ðº ðº ðº ðº ðº ðº ðº /F/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ⢠Only decode on reduced grid â We are now assured that only the appropriate symbols will be hypothesized ⢠Problem: This still doesnât assure that the decode sequence correctly expands the target symbol sequence â E.g. the above decode is not an expansion of /B//IY//F//IY/ ⢠Still needs additional constraints 35
Try 2: Explicitly arrange the constructed table ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ /B/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /IY/ ð§ 5 ðº ðº ðº ðº ðº ðº ðº ðº ðº /F/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ Arrange the constructed table so that from top to bottom it has the exact sequence of symbols required 36
Try 2: Explicitly arrange the constructed table ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ /B/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /IY/ ð§ 5 ðº ðº ðº ðº ðº ðº ðº ðº ðº /F/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ Note: If a symbol occurs multiple times, we repeat the row in the appropriate location. E.g. the row for /IY/ occurs twice, in the 2 nd and 4 th positions Arrange the constructed table so that from top to bottom it has the exact sequence of symbols required 37
Explicitly constrain alignment ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ /B/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /IY/ ð§ 5 ðº ðº ðº ðº ðº ðº ðº ðº ðº /F/ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠Constrain that the first symbol in the decode must be the top left block ⢠The last symbol must be the bottom right ⢠The rest of the symbols must follow a sequence that monotonically travels down from top left to bottom right â I.e. never goes up ⢠This guarantees that the sequence is an expansion of the target sequence â /B/ /IY/ /F/ /IY/ in this case 38
Explicitly constrain alignment ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠Compose a graph such that every path in the graph from source to sink represents a valid alignment â Which maps on to the target symbol sequence (/B//AH//T/) ⢠Edge scores are 1 ⢠Node scores are the probabilities assigned to the symbols by the neural network ⢠The âscoreâ of a path is the product of the probabilities of all nodes along the path ⢠Find the most probable path from source to sink using any dynamic programming algorithm â E.g. The Viterbi algorithm 39
Viterbi algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠At each node, keep track of â The best incoming edge â The score of the best path from the source to the node ⢠Dynamically compute the best path from source to sink 40
Viterbi algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠First, some notation: ð(ð ) is the probability of the target symbol assigned to the ð -th row ⢠ð§ ð¢ in the ð¢ -th time (given inputs ð 0 ⊠ð ð¢ ) â E.g., S(0) = /B/ ⢠The scores in the 0 th row have the form ð§ ð¢ ð¶ â E.g. S(1) = S(3) = /IY/ ⢠The scores in the 1 st and 3 rd rows have the form ð§ ð¢ ðœð â E.g. S(2) = /F/ ⢠The scores in the 2 nd row have the form ð§ ð¢ ðº 41
Viterbi algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠Initialization: ð¶ð 0, ð = ðð£ðð, ð = 0 ⊠ð¿ â 1 ð 0 , ð¶ð¡ðð 0, ð = ââ, ð = 1 ⊠ð¿ â 1 ð¶ð¡ðð 0,0 = ð§ 0 ⢠for ð¢ = 1 ⊠ð â 1 ð 0 ð¶ð(ð¢, 0) = 0, ð¶ð¡ðð (ð¢, 0) = ð¶ð¡ðð (ð¢ â 1,0) à ð§ ð¢ for ð = 0 ⊠ð¿ â 1 ⢠ð¶ð ð¢, ð = ðð ð¶ð¡ðð ð¢ â 1, ð â 1 > ð¶ð¡ðð ð¢ â 1, ð ð â 1; ððð¡ð ð ð ð ⢠ð¶ð¡ðð (ð¢, ð) = ð¶ð¡ðð (ð¶ð(ð¢, ð)) à ð§ ð¢ 42
Viterbi algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠Initialization: ð¶ð 0, ð = ðð£ðð, ð = 0 ⊠ð¿ â 1 ð 0 , ð¶ð¡ðð 0, ð = ââ, ð = 1 ⊠ð¿ â 1 ð¶ð¡ðð 0,0 = ð§ 0 ⢠for ð¢ = 1 ⊠ð â 1 ð 0 ð¶ð ð¢, 0 = 0; ð¶ð¡ðð (ð¢, 0) = ð¶ð¡ðð (ð¢ â 1,0) à ð§ ð¢ for ð = 1 ⊠ð¿ â 1 ⢠ð¶ð ð¢, ð = ðð ð¶ð¡ðð ð¢ â 1, ð â 1 > ð¶ð¡ðð ð¢ â 1, ð ð â 1; ððð¡ð ð ð ð ⢠ð¶ð¡ðð (ð¢, ð) = ð¶ð¡ðð (ð¶ð(ð¢, ð)) à ð§ ð¢ 43
Viterbi algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠Initialization: ð¶ð 0, ð = ðð£ðð, ð = 0 ⊠ð¿ â 1 ð 0 , ð¶ð¡ðð 0, ð = ââ, ð = 1 ⊠ð¿ â 1 ð¶ð¡ðð 0,0 = ð§ 0 ⢠for ð¢ = 1 ⊠ð â 1 ð 0 ð¶ð ð¢, 0 = 0; ð¶ð¡ðð (ð¢, 0) = ð¶ð¡ðð (ð¢ â 1,0) à ð§ ð¢ for ð = 1 ⊠ð¿ â 1 ⢠ð¶ð ð¢, ð = ðð ð¶ð¡ðð ð¢ â 1, ð â 1 > ð¶ð¡ðð ð¢ â 1, ð ð â 1; ððð¡ð ð ð ð ⢠ð¶ð¡ðð (ð¢, ð) = ð¶ð¡ðð (ð¶ð(ð¢, ð)) à ð§ ð¢ 44
Viterbi algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠Initialization: ð¶ð 0, ð = ðð£ðð, ð = 0 ⊠ð¿ â 1 ð 0 , ð¶ð¡ðð 0, ð = ââ, ð = 1 ⊠ð¿ â 1 ð¶ð¡ðð 0,0 = ð§ 0 ⢠for ð¢ = 1 ⊠ð â 1 ð 0 ð¶ð ð¢, 0 = 0; ð¶ð¡ðð (ð¢, 0) = ð¶ð¡ðð (ð¢ â 1,0) à ð§ ð¢ for ð = 1 ⊠ð¿ â 1 ⢠ð¶ð ð¢, ð = ðð ð¶ð¡ðð ð¢ â 1, ð â 1 > ð¶ð¡ðð ð¢ â 1, ð ð â 1; ððð¡ð ð ð ð ⢠ð¶ð¡ðð (ð¢, ð) = ð¶ð¡ðð (ð¶ð(ð¢, ð)) à ð§ ð¢ 45
Viterbi algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠Initialization: ð¶ð 0, ð = ðð£ðð, ð = 0 ⊠ð¿ â 1 ð 0 , ð¶ð¡ðð 0, ð = ââ, ð = 1 ⊠ð¿ â 1 ð¶ð¡ðð 0,0 = ð§ 0 ⢠for ð¢ = 1 ⊠ð â 1 ð 0 ð¶ð ð¢, 0 = 0; ð¶ð¡ðð (ð¢, 0) = ð¶ð¡ðð (ð¢ â 1,0) à ð§ ð¢ for ð = 1 ⊠ð¿ â 1 ⢠ð¶ð ð¢, ð = ðð ð¶ð¡ðð ð¢ â 1, ð â 1 > ð¶ð¡ðð ð¢ â 1, ð ð â 1; ððð¡ð ð ð ð ⢠ð¶ð¡ðð (ð¢, ð) = ð¶ð¡ðð (ð¶ð(ð¢, ð)) à ð§ ð¢ 46
Viterbi algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠Initialization: ð¶ð 0, ð = ðð£ðð, ð = 0 ⊠ð¿ â 1 ð 0 , ð¶ð¡ðð 0, ð = ââ, ð = 1 ⊠ð¿ â 1 ð¶ð¡ðð 0,0 = ð§ 0 ⢠for ð¢ = 1 ⊠ð â 1 ð 0 ð¶ð ð¢, 0 = 0; ð¶ð¡ðð (ð¢, 0) = ð¶ð¡ðð (ð¢ â 1,0) à ð§ ð¢ for ð = 1 ⊠ð¿ â 1 ⢠ð¶ð ð¢, ð = ðð ð¶ð¡ðð ð¢ â 1, ð â 1 > ð¶ð¡ðð ð¢ â 1, ð ð â 1; ððð¡ð ð ð ð ⢠ð¶ð¡ðð (ð¢, ð) = ð¶ð¡ðð (ð¶ð(ð¢, ð)) à ð§ ð¢ 47
Viterbi algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠Initialization: ð¶ð 0, ð = ðð£ðð, ð = 0 ⊠ð¿ â 1 ð 0 , ð¶ð¡ðð 0, ð = ââ, ð = 1 ⊠ð¿ â 1 ð¶ð¡ðð 0,0 = ð§ 0 ⢠for ð¢ = 1 ⊠ð â 1 ð 0 ð¶ð ð¢, 0 = 0; ð¶ð¡ðð (ð¢, 0) = ð¶ð¡ðð (ð¢ â 1,0) à ð§ ð¢ for ð = 1 ⊠ð¿ â 1 ⢠ð¶ð ð¢, ð = ðð ð¶ð¡ðð ð¢ â 1, ð â 1 > ð¶ð¡ðð ð¢ â 1, ð ð â 1; ððð¡ð ð ð ð ⢠ð¶ð¡ðð (ð¢, ð) = ð¶ð¡ðð (ð¶ð(ð¢, ð)) à ð§ ð¢ 48
Viterbi algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠Initialization: ð¶ð 0, ð = ðð£ðð, ð = 0 ⊠ð¿ â 1 ð 0 , ð¶ð¡ðð 0, ð = ââ, ð = 1 ⊠ð¿ â 1 ð¶ð¡ðð 0,0 = ð§ 0 ⢠for ð¢ = 1 ⊠ð â 1 ð 0 ð¶ð ð¢, 0 = 0; ð¶ð¡ðð (ð¢, 0) = ð¶ð¡ðð (ð¢ â 1,0) à ð§ ð¢ for ð = 1 ⊠ð¿ â 1 ⢠ð¶ð ð¢, ð = ðð ð¶ð¡ðð ð¢ â 1, ð â 1 > ð¶ð¡ðð ð¢ â 1, ð ð â 1; ððð¡ð ð ð ð ⢠ð¶ð¡ðð (ð¢, ð) = ð¶ð¡ðð (ð¶ð(ð¢, ð)) à ð§ ð¢ 49
Viterbi algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠Initialization: ð¶ð 0, ð = ðð£ðð, ð = 0 ⊠ð¿ â 1 ð 0 , ð¶ð¡ðð 0, ð = ââ, ð = 1 ⊠ð¿ â 1 ð¶ð¡ðð 0,0 = ð§ 0 ⢠for ð¢ = 1 ⊠ð â 1 ð 0 ð¶ð ð¢, 0 = 0; ð¶ð¡ðð (ð¢, 0) = ð¶ð¡ðð (ð¢ â 1,0) à ð§ ð¢ for ð = 1 ⊠ð¿ â 1 ⢠ð¶ð ð¢, ð = ðð ð¶ð¡ðð ð¢ â 1, ð â 1 > ð¶ð¡ðð ð¢ â 1, ð ð â 1; ððð¡ð ð ð ð ⢠ð¶ð¡ðð (ð¢, ð) = ð¶ð¡ðð (ð¶ð(ð¢, ð)) à ð§ ð¢ 50
Viterbi algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠Initialization: ð¶ð 0, ð = ðð£ðð, ð = 0 ⊠ð¿ â 1 ð 0 , ð¶ð¡ðð 0, ð = ââ, ð = 1 ⊠ð¿ â 1 ð¶ð¡ðð 0,0 = ð§ 0 ⢠for ð¢ = 1 ⊠ð â 1 ð 0 ð¶ð ð¢, 0 = 0; ð¶ð¡ðð (ð¢, 0) = ð¶ð¡ðð (ð¢ â 1,0) à ð§ ð¢ for ð = 1 ⊠ð¿ â 1 ⢠ð¶ð ð¢, ð = ðð ð¶ð¡ðð ð¢ â 1, ð â 1 > ð¶ð¡ðð ð¢ â 1, ð ð â 1; ððð¡ð ð ð ð ⢠ð¶ð¡ðð (ð¢, ð) = ð¶ð¡ðð (ð¶ð(ð¢, ð)) à ð§ ð¢ 51
Viterbi algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠ð¡(ð â 1) = ð(ð¿ â 1) ⢠for ð¢ = ð ððð¥ð ð¢ð 1 â s(t-1) = BP(s(t)) 52
Viterbi algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠ð¡(ð â 1) = ð(ð¿ â 1) ⢠for ð¢ = ð â 1 ððð¥ðð¢ð 1 ð¡(ð¢ â 1) = ð¶ð(ð¡(ð¢)) 53
Viterbi algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠ð¡(ð â 1) = ð(ð¿ â 1) ⢠for ð¢ = ð â 1 ððð¥ðð¢ð 1 ð¡(ð¢ â 1) = ð¶ð(ð¡(ð¢)) /B/ /B/ /IY/ /F/ /F/ /IY/ /IY/ /IY/ /IY/ 54
Gradients from the alignment ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ /B/ /B/ /IY/ /F/ /F/ /IY/ /IY/ /IY/ /IY/ ððð¡ð¢ððð¢â = â à· ððð¡ð¢ððð¢â ðžðœð = à· ðððð¢ ð ð¢ , ð¡ð§ðððð ð¢ log ð ð¢, ð¡ð§ðððð ð¢ ð¢ ð¢ ⢠The gradient w.r.t the ð¢ -th output vector ð ð¢ â1 ⊠0 ⊠0 ðŒ ð ð¢ ðžðœð = 0 0 ððð¡ð¢ððð¢â ð ð¢, ð¡ð§ðððð ð¢ â Zeros except at the component corresponding to the target in the estimated alignment 55
Iterative Estimate and Training /IY/ /IY/ /B/ /B/ /IY/ /F/ /F/ /IY/ /IY/ /IY/ ? ? ? ? ? ? ? ? ? ? ð ð ð ð ð ð ð ð ð ð 0 1 2 3 4 5 6 7 8 9 ð 0 ð 1 ð 2 ð 3 ð 4 ð 5 ð 6 ð 7 ð 8 ð 9 Initialize Train model with Decode to obtain alignments given alignments alignments The âdecodeâ and âtrainâ steps may be combine into a single âdecode, find alignment, 56 compute derivativesâ step for SGD and mini -batch updates
Iterative update ⢠Option 1: â Determine alignments for every training instance â Train model (using SGD or your favorite approach) on the entire training set â Iterate ⢠Option 2: â During SGD, for each training instance, find the alignment during the forward pass â Use in backward pass 57
Iterative update: Problem ⢠Approach heavily dependent on initial alignment ⢠Prone to poor local optima ⢠Alternate solution: Do not commit to an alignment during any pass.. 58
The reason for suboptimality ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠We commit to the single âbestâ estimated alignment â The most likely alignment ððð¡ð¢ððð¢â ðžðœð = â à· log ð ð¢, ð¡ð§ðððð ð¢ ð¢ â This can be way off, particularly in early iterations, or if the model is poorly initialized ⢠Alternate view: there is a probability distribution over alignments â Selecting a single alignment is the same as drawing a single sample from this distribution â Selecting the most likely alignment is the same as deterministically always drawing the most probable value from the distribution 59
The reason for suboptimality ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ ⢠We commit to the single âbestâ estimated alignment â The most likely alignment ððð¡ð¢ððð¢â ðžðœð = â à· log ð ð¢, ð¡ð§ðððð ð¢ ð¢ â This can be way off, particularly in early iterations, or if the model is poorly initialized ⢠Alternate view: there is a probability distribution over alignments of the target Symbol sequence (to the input) â Selecting a single alignment is the same as drawing a single sample from it â Selecting the most likely alignment is the same as deterministically always drawing the most probable value from the distribution 60
Averaging over all alignments ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ⢠Instead of only selecting the most likely alignment, use the statistical expectation over all possible alignments ðžðœð = ð¹ â à· log ð ð¢, ð¡ ð¢ ð¢ â Use the entire distribution of alignments â This will mitigate the issue of suboptimal selection of alignment 61
The expectation over all alignments ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ðžðœð = ð¹ â à· log ð ð¢, ð¡ ð¢ ð¢ ⢠Using the linearity of expectation ðžðœð = â à· ð¹ log ð ð¢, ð¡ ð¢ ð¢ â This reduces to finding the expected divergence at each input ðžðœð = â à· à· ð(ð¡ ð¢ = ð|ð, ð) log ð ð¢, ð¡ ð¢ = ð¡ ð¢ ðâð 1 âŠð ð¿ 62
The expectation over all alignments ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t The probability of seeing the specific symbol s at time t, ðžðœð = ð¹ â à· log ð ð¢, ð¡ ð¢ given that the symbol sequence is an expansion of ð = ð 0 ⊠ð ð¿â1 and given the input sequence ð = ð 0 ⊠ð ðâ1 ð¢ ⢠Using the linearity of expectation We need to be able to compute this ðžðœð = â à· ð¹ log ð ð¢, ð¡ ð¢ ð¢ â This reduces to finding the expected divergence at each input ðžðœð = â à· à· ð(ð¡ ð¢ = ð|ð, ð) log ð ð¢, ð¡ ð¢ = ð ð¢ ðâð 1 âŠð ð¿ 63
A posteriori probabilities of symbols ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ð(ð¡ ð¢ = ð ð |ð, ð) â ð(ð¡ ð¢ = ð ð , ð|ð) ⢠ð(ð¡ ð¢ = ð ð , ð|ð) is the total probability of all valid paths in the graph for target sequence ð that go through the symbol ð ð (the ð th symbol in the sequence ð 1 ⊠ð ð¿ ) at time ð¢ ⢠We will compute this using the âforward - backwardâ algorithm 64
A posteriori probabilities of symbols ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ⢠Decompose ð(ð¡ ð¢ = ð ð , ð|ð) as follows: ð ð¡ ð¢ = ð ð , ð|ð = à· à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð , ð¡ ð¢+1 ⊠ð¡ ðâ1 , ð ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ ⢠[ð ð + ] indicates that ð¡ ð¢+1 might either be ð ð or ð ð +1 ⢠[ð ð â ] indicates that ð¡ ð¢â1 might be either ð ð or ð ð â1 = à· à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð , ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ â Because the target symbol sequence ð is implicit in the synchronized sequences ð¡ 0 ⊠ð¡ ðâ1 which are constrained to be expansions of ð 65
A posteriori probabilities of symbols ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ð ð¡ ð¢ = ð ð , ð|ð = à· à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð , ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ = à· à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð ð ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð , ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ ⢠For a recurrent network without feedback from the output we can make the conditional independence assumption: ð ð¡ ð¢+1 ⊠ð¡ 0 ⊠ð¡ ð¢ , ð = ð ð¡ ð¢+1 ⊠ð ð ð¡ ð¢ = ð ð , ð|ð = à· à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð ð ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð¡ ð¢ = ð ð , ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ 66
A posteriori probabilities of symbols ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ð ð¡ ð¢ = ð ð , ð|ð = à· à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð , ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ = à· à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð ð ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð , ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ ⢠For a recurrent network without feedback from the output we can make the conditional independence assumption: ð ð¡ ð¢+1 ⊠ð¡ 0 ⊠ð¡ ð¢ , ð = ð ð¡ ð¢+1 ⊠ð ð ð¡ ð¢ = ð ð , ð|ð = à· à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð ð ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð¡ ð¢ = ð ð , ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ Note: in reality, this assumption is not valid if the hidden states are unknown, but 67 we will make it anyway
Conditional independence ð§ 0 ð§ 1 ð = ð 0 ð 1 ⊠ð ðâ1 ð = ðŒ 0 ðŒ 1 ⊠ðŒ ðâ1 â® ð§ ðâ1 ⢠Dependency graph: Input sequence ð = ð 0 ð 1 ⊠ð ðâ1 governs hidden variables ð = ðŒ 0 ðŒ 1 ⊠ðŒ ðâ1 ⢠Hidden variables govern output predictions ð§ 0 , ð§ 1 , ⊠ð§ ðâ1 individually ⢠ð§ 0 , ð§ 1 , ⊠ð§ ðâ1 are conditionally independent given ð ⢠Since ð is deterministically derived from ð , ð§ 0 , ð§ 1 , ⊠ð§ ðâ1 are also conditionally independent given ð â This wouldnât be true if the relation between ð and ð were not deterministic or if ð is unknown 68
A posteriori probabilities of symbols ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ð ð¡ ð¢ = ð ð , ð|ð = à· à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð ð ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ = à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð ð à· ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ 69
A posteriori probabilities of symbols ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ð ð¡ ð¢ = ð ð , ð|ð = à· à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð ð ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ = à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð ð à· ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ 70
The expectation over all alignments ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ð ð¡ ð¢ = ð ð , ð|ð = à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð ð à· ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ ⢠We will call the first term the forward probability ðœ ð¢, ð ⢠We will call the second term the backward probability ðŸ ð¢, ð 71
Forward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ðœ ð¢, ð = à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] = à· ð ð¡ 0 ⊠ð¡ ð¢â1 ð ð ð¡ ð¢ = ð ð ð¡ 0 ⊠ð¡ ð¢â1 , ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] = à· ð ð¡ 0 ⊠ð¡ ð¢â1 ð ð ð¡ ð¢ = ð ð ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] = à· ð ð¡ 0 ⊠ð¡ ð¢â2 , ð¡ ð¢â1 = ð ð ð + à· ð ð¡ 0 ⊠ð¡ ð¢â2 , ð¡ ð¢â1 = ð ð â1 ð ð ð¡ ð¢ = ð ð ð ð¡ 0 âŠð¡ ð¢â2 âð 1 âŠ[ð ð â ] ð¡ 0 âŠð¡ ð¢â2 âð 1 âŠ[ð (ð â1)â ] 72
Forward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ðœ ð¢, ð = à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] = à· ð ð¡ 0 ⊠ð¡ ð¢â1 ð ð ð¡ ð¢ = ð ð ð¡ 0 ⊠ð¡ ð¢â1 , ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] = à· ð ð¡ 0 ⊠ð¡ ð¢â1 ð ð ð¡ ð¢ = ð ð ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] = à· ð ð¡ 0 ⊠ð¡ ð¢â2 , ð¡ ð¢â1 = ð ð ð + à· ð ð¡ 0 ⊠ð¡ ð¢â2 , ð¡ ð¢â1 = ð ð â1 ð ð ð¡ ð¢ = ð ð ð ð¡ 0 âŠð¡ ð¢â2 âð 1 âŠ[ð ð â ] ð¡ 0 âŠð¡ ð¢â2 âð 1 âŠ[ð (ð â1)â ] 73
Forward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ðœ ð¢, ð = à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] = à· ð ð¡ 0 ⊠ð¡ ð¢â1 ð ð ð¡ ð¢ = ð ð ð¡ 0 ⊠ð¡ ð¢â1 , ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] = à· ð ð¡ 0 ⊠ð¡ ð¢â1 ð ð ð¡ ð¢ = ð ð ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] = à· ð ð¡ 0 ⊠ð¡ ð¢â2 , ð¡ ð¢â1 = ð ð ð + à· ð ð¡ 0 ⊠ð¡ ð¢â2 , ð¡ ð¢â1 = ð ð â1 ð ð ð¡ ð¢ = ð ð ð ð¡ 0 âŠð¡ ð¢â2 âð 1 âŠ[ð ð â ] ð¡ 0 âŠð¡ ð¢â2 âð 1 âŠ[ð (ð â1)â ] 74
Forward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ðœ ð¢, ð = à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] = à· ð ð¡ 0 ⊠ð¡ ð¢â1 ð ð ð¡ ð¢ = ð ð ð¡ 0 ⊠ð¡ ð¢â1 , ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] = à· ð ð¡ 0 ⊠ð¡ ð¢â1 ð ð ð¡ ð¢ = ð ð ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] = à· ð ð¡ 0 ⊠ð¡ ð¢â2 , ð¡ ð¢â1 = ð ð ð + à· ð ð¡ 0 ⊠ð¡ ð¢â2 , ð¡ ð¢â1 = ð ð â1 ð ð ð¡ ð¢ = ð ð ð ð¡ 0 âŠð¡ ð¢â2 âð 1 âŠ[ð ð â ] ð¡ 0 âŠð¡ ð¢â2 âð 1 âŠ[ð (ð â1)â ] ð(ð ) 75 ð§ ð¢ ðœ ð¢ â 1, ð ðœ ð¢ â 1, ð â 1
Forward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ðœ ð¢, ð = à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] = à· ð ð¡ 0 ⊠ð¡ ð¢â1 ð ð ð¡ ð¢ = ð ð ð¡ 0 ⊠ð¡ ð¢â1 , ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] = à· ð ð¡ 0 ⊠ð¡ ð¢â1 ð ð ð¡ ð¢ = ð ð ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] = à· ð ð¡ 0 ⊠ð¡ ð¢â2 , ð¡ ð¢â1 = ð ð ð + à· ð ð¡ 0 ⊠ð¡ ð¢â2 , ð¡ ð¢â1 = ð ð â1 ð ð ð¡ ð¢ = ð ð ð ð¡ 0 âŠð¡ ð¢â2 âð 1 âŠ[ð ð â ] ð¡ 0 âŠð¡ ð¢â2 âð 1 âŠ[ð (ð â1)â ] ð(ð ) ðœ ð¢, ð = ðœ ð¢ â 1, ð + ðœ ð¢ â 1, ð â 1 ð§ ð¢ 76
Forward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ðœ ð¢ â 1, ð â 1 ðœ ð¢ â 1, ð ðœ ð¢, ð ð(ð ) ðœ ð¢, ð = ðœ ð¢ â 1, ð + ðœ ð¢ â 1, ð â 1 ð§ ð¢ 77
Forward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ⢠Initialization: ð 1 , ðœ 0,1 = ð§ 0 ðœ 0, ð = 0, ð > 1 ⢠for ð¢ = 1 ⊠ð â 1 ð 1 ðœ(ð¢, 1) = ðœ(ð¢ â 1,1)ð§ ð¢ for ð = 2 ⊠ð¿ ð ð ⢠ðœ(ð¢, ð) = (ðœ ð¢ â 1, ð + ðœ ð¢ â 1, ð â 1 )ð§ ð¢ 78
Forward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ⢠Initialization: ð 1 , ðœ 0,1 = ð§ 0 ðœ 0, ð = 0, ð > 1 ⢠for ð¢ = 1 ⊠ð â 1 ð 1 ðœ(ð¢, 1) = ðœ(ð¢ â 1,1)ð§ ð¢ for ð = 2 ⊠ð¿ ð ð ⢠ðœ(ð¢, ð) = (ðœ ð¢ â 1, ð + ðœ ð¢ â 1, ð â 1 )ð§ ð¢ 79
Forward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ⢠Initialization: ð 1 , ðœ 0,1 = ð§ 0 ðœ 0, ð = 0, ð > 1 ⢠for ð¢ = 1 ⊠ð â 1 ð 1 ðœ(ð¢, 1) = ðœ(ð¢ â 1,1)ð§ ð¢ for ð = 2 ⊠ð¿ ð ð ⢠ðœ(ð¢, ð) = (ðœ ð¢ â 1, ð + ðœ ð¢ â 1, ð â 1 )ð§ ð¢ 80
Forward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ⢠Initialization: ð 1 , ðœ 0,1 = ð§ 0 ðœ 0, ð = 0, ð > 1 ⢠for ð¢ = 1 ⊠ð â 1 ð 1 ðœ(ð¢, 1) = ðœ(ð¢ â 1,1)ð§ ð¢ for ð = 2 ⊠ð¿ ð ð ⢠ðœ(ð¢, ð) = (ðœ ð¢ â 1, ð + ðœ ð¢ â 1, ð â 1 )ð§ ð¢ 81
Forward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ⢠Initialization: ð 1 , ðœ 0,1 = ð§ 0 ðœ 0, ð = 0, ð > 1 ⢠for ð¢ = 1 ⊠ð â 1 ð 1 ðœ(ð¢, 1) = ðœ(ð¢ â 1,1)ð§ ð¢ for ð = 2 ⊠ð¿ ð ð ⢠ðœ(ð¢, ð) = (ðœ ð¢ â 1, ð + ðœ ð¢ â 1, ð â 1 )ð§ ð¢ 82
Forward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ⢠Initialization: ð 1 , ðœ 0,1 = ð§ 0 ðœ 0, ð = 0, ð > 1 ⢠for ð¢ = 1 ⊠ð â 1 ð 1 ðœ(ð¢, 1) = ðœ(ð¢ â 1,1)ð§ ð¢ for ð = 2 ⊠ð¿ ð ð ⢠ðœ(ð¢, ð) = (ðœ ð¢ â 1, ð + ðœ ð¢ â 1, ð â 1 )ð§ ð¢ 83
In practice.. ⢠The recursion ð ð ðœ(ð¢, ð) = (ðœ ð¢ â 1, ð + ðœ ð¢ â 1, ð â 1 )ð§ ð¢ will generally underflow ⢠Instead we can do it in the log domain log ðœ(ð¢, ð) = log(ð log ðœ ð¢â1,ð + ð log ðœ ð¢â1,ðâ1 ) + log ð§ ð¢ ð ð â This can be computed entirely without underflow 84
Forward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ⢠Initialization: ðœ 0,1 = 1, à· ðœ 0, ð = 0, ð > 1 à· ð ð , ðœ 0, ð = à· ðœ 0, ð ð§ 0 1 †ð †ð¿ ⢠for ð¢ = 1 ⊠ð â 1 ðœ(ð¢, 1) = ðœ(ð¢ â 1,1) à· for ð = 2 ⊠ð¿ ⢠ðœ(ð¢, ð) = ðœ ð¢ â 1, ð + ðœ ð¢ â 1, ð â 1 à· ð ð , ðœ ð¢, ð = à· ðœ ð¢, ð ð§ ð¢ 1 †ð †ð¿ 85
The forward probability ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ð ð¡ ð¢ = ð ð , ð|ð = à· ð ð¡ 0 ⊠ð¡ ð¢â1 , ð¡ ð¢ = ð ð ð à· ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ 0 âŠð¡ ð¢â1 âð 1 âŠ[ð ð â ] ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ ⢠We will call the first term the forward probability ðœ ð¢, ð ⢠We will call the second term the backward probability ðŸ ð¢, ð We have seen how to compute this ðœ ð¢, ð 86
The forward probability ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ð ð¡ ð¢ = ð ð , ð|ð = ðœ ð¢, ð à· ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ ⢠We will call the first term the forward probability ðœ ð¢, ð ⢠We will call the second term the backward probability ðŸ ð¢, ð We have seen how to compute this 87
The forward probability ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ð ð¡ ð¢ = ð ð , ð|ð = ðœ ð¢, ð à· ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ ⢠We will call the first term the forward probability ðœ ð¢, ð ⢠We will call the second term the backward probability ðŸ ð¢, ð Lets look at this ðŸ ð¢, ð 88
Backward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ðŸ ð¢, ð = à· ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ = à· ð ð¡ ð¢+1 = ð ð , ð¡ ð¢+2 ⊠ð¡ ðâ1 ð + à· ð ð¡ ð¢+1 = ð ð +1 , ð¡ ð¢+2 ⊠ð¡ ðâ1 ð ð¡ ð¢+2 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ ð¡ ð¢+2 âŠð¡ ðâ1 â[ð (ð +1)+ ]âŠð ð¿ 89
Backward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ðŸ ð¢, ð = à· ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ = à· ð ð¡ ð¢+1 = ð ð , ð¡ ð¢+2 ⊠ð¡ ðâ1 ð + à· ð ð¡ ð¢+1 = ð ð +1 , ð¡ ð¢+2 ⊠ð¡ ðâ1 ð ð¡ ð¢+2 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ ð¡ ð¢+2 âŠð¡ ðâ1 â[ð (ð +1)+ ]âŠð ð¿ = ð ð¡ ð¢+1 = ð ð ð à· ð ð¡ ð¢+2 ⊠ð¡ ðâ1 ð¡ ð¢+1 = ð ð , ð ð¡ ð¢+2 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ + ð ð¡ ð¢+1 = ð ð +1 ð à· ð ð¡ ð¢+2 ⊠ð¡ ðâ1 ð¡ ð¢+1 = ð ð +1 , ð ð¡ ð¢+2 âŠð¡ ðâ1 â[ð (ð +1)+ ]âŠð ð¿ 90
Backward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ðŸ ð¢, ð = à· ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ = à· ð ð¡ ð¢+1 = ð ð , ð¡ ð¢+2 ⊠ð¡ ðâ1 ð + à· ð ð¡ ð¢+1 = ð ð +1 , ð¡ ð¢+2 ⊠ð¡ ðâ1 ð ð¡ ð¢+2 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ ð¡ ð¢+2 âŠð¡ ðâ1 â[ð (ð +1)+ ]âŠð ð¿ = ð ð¡ ð¢+1 = ð ð ð à· ð ð¡ ð¢+2 ⊠ð¡ ðâ1 ð¡ ð¢+1 = ð ð , ð ð¡ ð¢+2 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ + ð ð¡ ð¢+1 = ð ð +1 ð à· ð ð¡ ð¢+2 ⊠ð¡ ðâ1 ð¡ ð¢+1 = ð ð +1 , ð ð¡ ð¢+2 âŠð¡ ðâ1 â[ð (ð +1)+ ]âŠð ð¿ = ð ð¡ ð¢+1 = ð ð ð à· ð ð¡ ð¢+2 ⊠ð¡ ðâ1 ð + ð ð¡ ð¢+1 = ð ð +1 ð à· ð ð¡ ð¢+2 ⊠ð¡ ðâ1 ð ð¡ ð¢+2 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ ð¡ ð¢+2 âŠð¡ ðâ1 â[ð (ð +1)+ ]âŠð ð¿ 91
Backward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ðŸ ð¢, ð = à· ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ = à· ð ð¡ ð¢+1 = ð ð , ð¡ ð¢+2 ⊠ð¡ ðâ1 ð + à· ð ð¡ ð¢+1 = ð ð +1 , ð¡ ð¢+2 ⊠ð¡ ðâ1 ð ð¡ ð¢+2 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ ð¡ ð¢+2 âŠð¡ ðâ1 â[ð (ð +1)+ ]âŠð ð¿ = ð ð¡ ð¢+1 = ð ð ð à· ð ð¡ ð¢+2 ⊠ð¡ ðâ1 ð¡ ð¢+1 = ð ð , ð ð¡ ð¢+2 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ + ð ð¡ ð¢+1 = ð ð +1 ð à· ð ð¡ ð¢+2 ⊠ð¡ ðâ1 ð¡ ð¢+1 = ð ð +1 , ð ð¡ ð¢+2 âŠð¡ ðâ1 â[ð (ð +1)+ ]âŠð ð¿ = ð ð¡ ð¢+1 = ð ð ð à· ð ð¡ ð¢+2 ⊠ð¡ ðâ1 ð + ð ð¡ ð¢+1 = ð ð +1 ð à· ð ð¡ ð¢+2 ⊠ð¡ ðâ1 ð ð¡ ð¢+2 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ ð¡ ð¢+2 âŠð¡ ðâ1 â[ð (ð +1)+ ]âŠð ð¿ 92 ð(ð ) ð(ð +1) ðŸ ð¢ + 1, ð ðŸ ð¢ + 1, ð + 1 ð§ ð¢+1 ð§ ð¢+1
Backward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ð(ð ) ðŸ ð¢ + 1, ð ð(ð +1) ðŸ ð¢ + 1, ð + 1 ðŸ ð¢, ð = ð§ ð¢+1 + ð§ ð¢+1 93
Backward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ⢠Initialization: ðŸ ð â 1, ð¿ = 1, ðŸ ð â 1, ð = 0, ð < ð¿ ⢠for ð¢ = ð â 2 ððð¥ðð¢ð 0 ð ð¿ ðŸ(ð¢, ð¿) = ðŸ(ð¢ + 1, ð¿)ð§ ð¢+1 for ð = ð¿ â 1 ⊠1 ð(ð) ðŸ ð¢ + 1, ð ð(ð +1) ðŸ ð¢ + 1, ð + 1 ⢠ðŸ ð¢, ð = ð§ ð¢+1 + ð§ ð¢+1 94
Backward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ⢠Initialization: ðŸ ð â 1, ð¿ = 1, ðŸ ð â 1, ð = 0, ð < ð¿ ⢠for ð¢ = ð â 2 ððð¥ðð¢ð 0 ð ð¿ ðŸ(ð¢, ð¿) = ðŸ(ð¢ + 1, ð¿)ð§ ð¢+1 for ð = ð¿ â 1 ⊠1 ð(ð) ðŸ ð¢ + 1, ð ð(ð +1) ðŸ ð¢ + 1, ð + 1 ⢠ðŸ ð¢, ð = ð§ ð¢+1 + ð§ ð¢+1 95
Backward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ⢠Initialization: ðŸ ð â 1, ð¿ = 1, ðŸ ð â 1, ð = 0, ð < ð¿ ⢠for ð¢ = ð â 2 ððð¥ðð¢ð 0 ð ð¿ ðŸ(ð¢, ð¿) = ðŸ(ð¢ + 1, ð¿)ð§ ð¢+1 for ð = ð¿ â 1 ⊠1 ð(ð) ðŸ ð¢ + 1, ð ð(ð +1) ðŸ ð¢ + 1, ð + 1 ⢠ðŸ ð¢, ð = ð§ ð¢+1 + ð§ ð¢+1 96
Backward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ⢠Initialization: ðŸ ð â 1, ð¿ = 1, ðŸ ð â 1, ð = 0, ð < ð¿ ⢠for ð¢ = ð â 2 ððð¥ðð¢ð 0 ð ð¿ ðŸ(ð¢, ð¿) = ðŸ(ð¢ + 1, ð¿)ð§ ð¢+1 for ð = ð¿ â 1 ⊠1 ð(ð) ðŸ ð¢ + 1, ð ð(ð +1) ðŸ ð¢ + 1, ð + 1 ⢠ðŸ ð¢, ð = ð§ ð¢+1 + ð§ ð¢+1 97
Backward algorithm ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ⢠Initialization: ðŸ ð â 1, ð¿ = 1, ðŸ ð â 1, ð = 0, ð < ð¿ ⢠for ð¢ = ð â 2 ððð¥ðð¢ð 0 ð ð¿ ðŸ(ð¢, ð¿) = ðŸ(ð¢ + 1, ð¿)ð§ ð¢+1 for ð = ð¿ â 1 ⊠1 ð(ð) ðŸ ð¢ + 1, ð ð(ð +1) ðŸ ð¢ + 1, ð + 1 ⢠ðŸ ð¢, ð = ð§ ð¢+1 + ð§ ð¢+1 98
The joint probability ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ð ð¡ ð¢ = ð ð , ð|ð = ðœ ð¢, ð à· ð ð¡ ð¢+1 ⊠ð¡ ðâ1 ð ð¡ ð¢+1 âŠð¡ ðâ1 â[ð ð + ]âŠð ð¿ ⢠We will call the first term the forward probability ðœ ð¢, ð ⢠We will call the second term the backward probability ðŸ ð¢, ð We now can compute this ðŸ ð¢, ð 99
The joint probability ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 /B/ ð§ 5 ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 6 ð§ 7 ð§ 8 ð§ 5 /IY/ ðº ðº ðº ðº ðº ðº ðº ðº ðº ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /F/ ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ðœð ð§ 0 ð§ 1 ð§ 2 ð§ 3 ð§ 4 ð§ 5 ð§ 6 ð§ 7 ð§ 8 /IY/ 0 1 2 3 4 5 6 7 8 t ð ð¡ ð¢ = ð ð , ð|ð = ðœ ð¢, ð ðŸ ð¢, ð ⢠We will call the first term the forward probability ðœ ð¢, ð ⢠We will call the second term the backward probability ðŸ ð¢, ð Forward algo Backward algo 100
Recommend
More recommend