forward-backward アルゴリズムによって、やを求 める際、入力系列が長いために、計算が進むにつれてこれらの値が小さくなり、 計算機で扱える最小値よりも小さくなることがある(アンダーフロー)。特に シンボル出力確率が連続分布を仮定している連続分布型HMM(2.1.9章) において、この現象が顕著になる。このアンダーフローを回避するために、 やに適当な係数を掛けたスケーリングという方法が知られている [60] [4]。スケーリングを導入したforward-backward アルゴリズム を以下に示す。
(2.17) |
(2.18) |
(2.19) |
(2.20) |
(2.21) |
この式は積の形であるので、実際に計算する時はアンダーフロー
を回避するため対数で
を算出する。
(2.22) |
但し、時刻におけるスケーリング係数は以下の式で求める。
(2.23) |
これにより、全時刻において
(2.24) |
backward probability では forward probabilityで算出したスケーリ ング定数を用いる。
(2.25) |
(2.26) |
(2.27) |
(2.28) |
スケーリング法を用いて算出した、
とスケーリングを用いない、の間には
次式のような関係がある。
(2.29) | |||
(2.30) |
スケーリングを行なう場合の各パラメータの更新式は次式となる。
(2.31) |
(2.32) |
(2.33) |