next up previous contents
次へ: 対数の加算の計算方法 上へ: 認識アルゴリズム 戻る: Viterbiアルゴリズム   目次

トレリス法と対数を用いたアルゴリズムの違い

トレリス法の計算は小数点の乗算と加算であるが,音声認識において小数点での 尤度の計算は桁が3,4桁以上違う.

例えば

$\displaystyle 0.0123+0.0087$ $\displaystyle =$ $\displaystyle 0.210$ (28)
$\displaystyle ln(0.0087)$ $\displaystyle =$ $\displaystyle -4.74$  
$\displaystyle ln(0.0123)$ $\displaystyle =$ $\displaystyle -4.4$  
$\displaystyle ln(0.21)$ $\displaystyle =$ $\displaystyle -1.56$  
$\displaystyle 0.0123+0.000000000000423$ $\displaystyle =$ $\displaystyle 0.012300000000423$ (29)
$\displaystyle ln(0.0123)$ $\displaystyle =$ $\displaystyle -4.389$  
$\displaystyle ln(0.000000000000423)$ $\displaystyle =$ $\displaystyle -28.49$  
$\displaystyle ln(0.012300000000423)$ $\displaystyle =$ $\displaystyle -4.389$  

上の(21)式は値が近い加算だがであり,対数で計算すると大きく値が異なる. しかし下の(22)式は値が遠い加算であり,対数で計算しても同じである. よって,値を加算する計算量が無駄になる.この無駄を防ぐために, 次章の対数の加算の計算を用いる.

また,対数を用いる場合はトレリス法に比べ以下のような利点がある.プログラ ム上,一番最初の利点が重要であり,尤度の計算が正確にできなくなる欠点を防 ぎ,対数による近似で尤度の計算を行う事が音声認識の基本である.

このために対数を用いたアルゴリズムは広く用いられている.

平成20年5月16日