JP2933537B2 - 隠れマルコフモデルの計算方式 - Google Patents
隠れマルコフモデルの計算方式Info
- Publication number
- JP2933537B2 JP2933537B2 JP8164227A JP16422796A JP2933537B2 JP 2933537 B2 JP2933537 B2 JP 2933537B2 JP 8164227 A JP8164227 A JP 8164227A JP 16422796 A JP16422796 A JP 16422796A JP 2933537 B2 JP2933537 B2 JP 2933537B2
- Authority
- JP
- Japan
- Prior art keywords
- algorithm
- processor
- calculation
- probability
- hidden markov
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Description
デル(HMM)の計算方式に関し、特にその並列計算方
式に関する。
ータの時間的な変化と確率的な変動とを統計的に扱うた
めに、隠れマルコフモデル(HMM)が使用される。H
MMを用いた音声認識における学習では、複数の音声を
入力としてHMMのパラメータを決定する。そして、実
際の音声認識動作のときは、認識対象の音声よりパラメ
ータが決定されたHMMを用いてその確率を計算するよ
うにしている。
たHMMが認識対象の音声であるシンボル列X=x0,
x1,x2,・・・,xT-1を出力する確率P(X|θ)
は、以下の(1)式で示される。 P(X|θ)=πB(x0)AB(x1)AB(x2)…AB(xT-2)AB(xT-1)F・・・(1) ここで、Aは以下の(2)式に示す状態数N×Nの行列
で、各成分ai,j は、状態iから状態jへ遷移する確率
を表している。
×Nの行列で、各対角成分bi (s)は、状態iにおい
てs番目のシンボルを出力する確率である(s=0〜S
−1)。
期状態確率ベクトルである。1×Nの行ベクトルである
πの各成分は、状態iが初期状態である確率を表す。 π=(π0,π1,・・・,πN-1)・・・(4) そして、Fは以下の(5)式で示されるN×1の列ベク
トルで、fi は終状態に対応する成分が1でそれ以外が
0である。
の処理過程で、図9に示すフォワードアルゴリズムおよ
び図10に示すバックワードアルゴリズムの計算が必要
となる。図9において、α(t) はフォーワードアルゴリ
ズムの過程で生成されるt番目の行ベクトルを示してい
る。また、図10において、β(t) はバックワードアル
ゴリズムの過程で生成されるt番目列ベクトルを示して
いる。また、図9,10において、xtはシンボル列中
のt番目のシンボルを表している(t=0〜T−1)。
ここで、Tはシンボル列の長さである。
(1)式を左側から計算しているものであり、図9に示
されるように、まず、インデックスtを0とした後、次
のステップの処理F1でπ×B(Xt )を計算する。こ
の処理において、以下の(6)式に示される行列の演算
がなされている。すなわち、各要素のかけ算が、状態数
N個分おこなわれることになる。
F1の結果にAを乗ずる。次いで、インデックスtを1
増やし、次のステップの処理F3で、今度は、B(X
2 )を処理F2の結果に乗ずる。次いで、次のステップ
の処理F4で、インデックスtがT−1と等しいかどう
かを判断する。すなわち、F2のステップからF3のス
テップまでを、シンボル列のシンボルの数Tだけおこな
う。
(1)式を右側から計算しているものであり、図10に
示されるように、まず、処理B1において、β(t)にF
を代入して、次のステップの処理B2において、β(t)
にB(xt )を乗じたものをβ(t-1)とする。すなわ
ち、F・B(xT-1 )の計算をおこなう。次いで、次の
ステップの処理B3で、β(t)にAを乗じる。すなわ
ち、これでF・B(xT-1 )・Aまで計算したことにな
る。そして、次のステップB4で、インデックスtが0
になったかどうかを判断し、ここでは、tがまだ0にな
っていないので、B2の処理に戻り、B(xt )を乗ず
る。すなわち、F・B(xT-1 )・A・(xT-2 )まで
計算をおこなう。そして、以上のことを繰り返すこと
で、(1)式の計算をおこなう。
セッサで処理すると多大な時間を要する。例えば、図9
の処理F1では、状態数N回の計算が必要となる。この
ため、これらのところを並列化して計算することで、処
理の高速化が期待できる。従来、この種のHMMの並列
計算方式として、たとえば特開平5−108695号公
報に示されるような方式が提案されている。図11にそ
の従来のHMMの並列計算方式における並列計算装置の
ブロック図を示す。これはHMMの状態数Nと同じ数の
プロセッサエレメントPE0〜PEN-1で構成される並列
処理部1を、データ伝送路2で環状に結合したリングア
レイプロセッサである。
ワードアルゴリズムにおいて、データ3が各プロセッサ
エレメントPEi (i=0〜N−1)に生成される。ま
た、リングアレイプロセッサでは、バックワードアルゴ
リズムにおいて、データ7が各プロセッサエレメントP
Ei (i=0〜N−1)に生成される。
い、フォワードアルゴリズムを実行するときの各プロセ
ッサエレメントPEi (i=0〜N−1)の処理過程
を、図12示す。図12の処理F11,F12,F13
は、図9の処理F1,F2,F3に対応する。なお、各
プロセッサエレメントPEi はそれぞれメモリーを所有
し、プロセッサエレメントPEi における処理に必要な
パラメータがあらかじめ保存されているものとする。ま
た、Acc1 はプロセッサエレメントPEi に内蔵されて
いるアキュミュレータ、α1 (t)(t=0〜T−1)はプ
ロセッサエレメントPEiに内蔵されているレジスター
群である。アキュミュレータは、演算結果を保持するレ
ジスターをいい、累算器とも呼ばれる。
0とした後、次のステップの処理F1でα(t) にπB
(Xt )の計算結果を代入する。これは、前述した
(6)式に示される計算であり、図11のリングアレイ
プロセッサを用いれば、並列処理部1の一度の並列処理
で計算が終了する。次いで、次のステップの処理F12
に移行する。この処理12は、行ベクトルπ×B(X
t )と一般に非対角行列であるところのAとの積であ
る。この処理では、並列処理部1で数回の並列処理をお
こなうことになる。
jを0とした後、次のステップのF15において、Ac
ci に0を代入する。次いで、次のステップの処理F1
6において、Acci にa(i-j)modNにαi (t )を乗じた
ものを加える。ここで、xmod Nは、xをNで割った余
りを意味する。 すなわち、この処理F16では、
(2)式で示した行列Aの対角列とπB(xt )との乗
算を、図11のリングアレイプロセッサを用いて並列処
理で計算するものである。以後Aの行列要素の集合{a
(i+j)mod N,i|i=0〜N−1}を第j対角列と呼ぶこ
とにする。
て、αi (t)をα(i-j)modN (t)とする。これは、図11の
フォワードアルゴリズムの流れに示されるように、各プ
ロセッサエレメントPEi に保持されているα(t)のデ
ータを、隣接したプロセッサエレメントに転送する操作
である。そして、インデックスjを1増やす。次いで、
次のステップの処理F8で、jがNと等しいか、また
は、Aのj番目以降の対角列が全て0行列であるかどう
か判断する。ここで、jがNと等しいか、または、Aの
j番目以降の対角列が全て0行列であると判断されなか
った場合、F16の処理に戻る。
たは、Aのj番目以降の対角列が全て0行列であると判
断された場合、インデックスtを1増やし、次のステッ
プの処理F13でαi (t)をbi(xt)Acciとする。
そして、次のステップのF4の処理で、tがT−1と等
しいかどうかを判断する。ここで、等しいと判断された
場合処理を終了し、等しいと判断されなかった場合、再
びF12の処理をおこなう。
アルゴリズムを実行するときの各プロセッサエレメント
PEi の処理過程を図13に示す。図13の処理B1
1,B12,B13は、それぞれ図10の処理B1,B
2,B3に対応する。また、各プロセッサエレメントP
Ei には処理に必要なパラメータがあらかじめ保存され
ているものとする。なお、βi (t)(t=0〜T−1)
は、プロセッサエレメントPEi に内蔵されているレジ
スター群である。
においては、まず、インデックスjをT−1とした後、
次のステップのB11において、βi (t)にfi を代入す
る。ついで、次のステップB12において、βi (t-1)に
bi(xt)βi (t)を代入する。これは、(1)式を右側
から計算していくなかのF・B(xT-1 )の計算であ
り、図11のリングアレイプロセッサを用いれば、並列
処理部1の一度の並列処理で計算が終了する。
B13に移行する。この処理13は、{F・B(x
T-1 )}・Aの計算であり、一般に非対角行列であると
ころのAと列ベクトルβ(t)の積である。まず、B15
の処理でAcci に0を代入する。次いで、次のステッ
プの処理B16において、Acci にai,(i+j)modNに
βi (t)を乗じたものを加える。この処理B16では、
(2)式で示した行列Aの対角列とβi (t)との乗算を、
図11のリングアレイプロセッサを用いて並列処理で計
算するものである。
(t)をβ(i+j)modN (t)とする。これは、図11のバック
ワードアルゴリズムの流れに示されるように、各プロセ
ッサエレメントPEi に保持されているβi (t)のデータ
を、隣接したプロセッサエレメントにサイクリックに転
送する操作である。そして、インデックスjを1増や
す。次いで、次のステップの処理B8で、jがNと等し
いか、または、Aのj番目以降の対角列が全て0行列で
あるかどうか判断する。ここで、jがNと等しいか、ま
たは、Aのj番目以降の対角列が全て0行列であると判
断されなかった場合、B16の処理に戻る。
または、Aのj番目以降の対角列が全て0行列であると
判断された場合、βi (t)をAcci とする。そして、次
のステップのB4の処理で、tが0と等しいかどうかを
判断する。ここで、等しいと判断された場合は処理を終
了し、等しいと判断されなかった場合は再びB12の処
理をおこなう。以上に示したように、HMMの計算にお
いては、状態数Nの個数のプロセッサエレメントを用い
ることで、並列演算をおこなうことが可能となる。
成されていたので、以下に示すような問題があった。従
来では、並列演算をおこなおうとすれば、プロセッサエ
レメントの数は状態数N個しか用いることができない。
前述したように、HMMの並列計算においては、N個の
プロセッサエレメントが必要となるが、プロセッサエレ
メントがN個以上あっても、並列演算に用いられること
がない。N個を越えるプロセッサエレメントは無駄にな
ってしまう。
を高速化しようとする場合は、N個のプロセッサエレメ
ントを用意して並列演算をおこなうしかない。したがっ
て、より少ない数のプロセッサエレメントで計算の高速
化をおこなうことができなかった。すなわち、従来で
は、規模に対する制約がなく、大規模な並列処理部を用
意しても、プロセッサエレメントが状態数N個までの並
列化による高速化しかできず、それ以上の高速化ができ
ない。一方で、計算の高速化をより小さい規模でおこな
おうとしても、高速処理のための並列化が効果を発揮す
るのは、プロセッサエレメントが状態数N個の場合だけ
であり、小規模での計算の高速化が望めなかった。
るためになされたものであり、HMMの計算を、より高
速化できるようにすることを目的とする。
モデルの計算方式は、複数のレジスタとアキュミュレー
タとを有するプロセッサエレメントを状態数N個リング
状に結合した第1のリングアレイプロセッサと、プロセ
ッサエレメントを状態数N個リング状に結合し、それら
が第1のリングアレイプロセッサを構成するプロセッサ
エレメントそれぞれと結合した第2のリングアレイプロ
セッサとを備え、第1のリングアレイプロセッサがフォ
ーワードアルゴリズムを並列計算し、第2のリングアレ
イプロセッサがバックワードアルゴリズムを並列計算す
るようにした。このため、フォワードアルゴリズムとバ
ックワードアルゴリズムの並列計算を同時におこなうこ
とができる。
算方式は、複数のレジスタとアキュミュレータとを有す
る第1および第2のプロセッサエレメントを備え、それ
ら第1と第2のプロセッサエレメントを結合した状態
で、第1のプロセッサエレメントがフォーワードアルゴ
リズムを計算し、第2のプロセッサエレメントがバック
ワードアルゴリズムを計算するようにした。このため、
フォワードアルゴリズムとバックワードアルゴリズムの
計算を同時に並列しておこなうことができる。そして、
パラメータおよび計算によって生成される数値の対数を
整数に量子化し、フォーワードアルゴリズムおよびバッ
クワードアルゴリズムを計算するようにした。すなわ
ち、対数表現のアルゴリズムを用いることにより、フォ
ーワードアルゴリズムおよびバックワードアルゴリズム
を計算するようにした。
参照して説明する。 実施の形態1.図1は、この発明の第1の実施の形態に
おける隠れマルコフモデルの計算システムの構成を示す
構成図である。この実施の形態では、図1に示されるよ
うに、2つのリングアレイプロセッサ4,8を用いるよ
うにしたものである。
サエレメントPE0,i (i=0〜N−1)から構成され
た並列処理部1とそれらを接続するデータ転送路2によ
り、フォワードアルゴリズムにおけるデータ3を並列処
理する。一方、リングアレイプロセッサ8では、プロセ
ッサエレメントPE1,i (i=0〜N−1)から構成さ
れた並列処理部5とそれらを接続するデータ転送路6に
より、バックワードアルゴリズムにおけるデータ7を並
列処理する。そして、並列処理部1と並列処理部5の各
プロセッサエレメントは、それぞれデータ転送路9で接
続されている。
動作で、パラメータが決定されたHMMを用いてその確
率を求めるときに、以下に示すようにできる。 まず、(1)式に示した計算を、左側からリングアレ
イプロセッサ4を用いて途中まで計算する(フォーワー
ドアルゴリズム)。 一方、(1)式に示した計算を、右側からリングアレ
イプロセッサ8を用いて途中まで計算する(バックワー
ドアルゴリズム)。 そして、それらの計算結果を合わせる。 以上のことにより、従来に比較して約半分の時間で計算
を終わらせることができる。
HMMθが、シンボル列X=x0,xl,x2,…,xT-1を出
力する確率P(X|θ)は、(1)式で与えられる。そ
して、(1)式の右辺を、左から右へ順に計算を進めて
いったものが、図9に示したフォーワードアルゴリズム
てあり、その計算過程で中間結果としてベクトルα(t)
が生成される。また、(1)式の右辺を、右から左へ順
に計算を進めていったものが図10に示したバックワー
ドアルゴリズムそあり、その計算過程で中間結果として
ペグトルβ(t)が生成される。
に示すような一つのリングアレイプロセッサを用いて、
フォーワードアルゴリズムかバックワードアルゴリズム
の一方を計算していた。すなわち、フォーワードアルゴ
リズムの終了時に得られるα(T-1) を用いてα(T-1) F
を計算するか、あるいはバックワードアルゴリズムの終
了時に得られるβ(0) を用いてπB(x0)β(0) を計
算するか、どちらかの方法が取られていた。
(L)β(L)のように書くことができる。ここでLは、0≦
L≦T−1を満たす整数である(Tはシンボル列の長
さ)。すなわち、この実施の形態では、この式において
LをT/2に近い整数とし、α(L)とβ(L)の計算を、そ
れぞれリングアレイプロセッサ4,8でおこなうように
したものである。LはT/2に近い整数であればよい
が、両リングアレイプロセッサ4,8の負荷を可能な限
り均等に分散するため、Tが偶数のとき(T/2)−
1、Tが奇数のとき(T−1)/2とするのが最も好ま
しい。
ドアルゴリズムにおいて、終了条件F4を「tがLに等
しいか?」とすることによっておこなうことができる。
そしてこれは、図1の並列処理部1の各プロセッサエレ
メントPE0,i(i=0〜N−1)が、図12のアルゴ
リズムにしたがって処理を進めることによって並列計算
がなされる。ただし、このときの終了条件F4は、「t
がLに等しいか?」となる。
ックワードアルゴリズムにおいて、終了条件B4を「t
がLに等しいか?」とすることによって計算される。そ
してこれは、図1の並列処理部5の各プロセッサエレメ
ントPE1,i(i=0〜N−1)が、図13のアルゴリ
ズムにしたがって処理を進めることによって平行計算が
なされる。ただし、このときの終了条件B4は「tがL
に等しいか?」とする。
α(L)のデータが得られ、並列処理部5にβ(L)のデータ
が得られたのち、両並列処理部1,5をつなぐデータ伝
送路9を通じでα(L)のデータを並列処理部5に転送す
る。そして、並列処理部5で両ベクトルの内積α(L)β
(L)を計算することによりP(X|θ)を得ることがで
きる。あるいは、並列処理部5のβ(L)のデータを、デ
ータ伝送路9を通じで並列処理部1に転送し、並列処理
部1でα(L)β(L)を計算してもよい。
れば、P(X|θ)を従来の約半分の時間で求めること
ができる。以上は、HMMの識別アルゴリズムの場合を
例に取り説明したが、HMMの学習アルゴリズムである
Baum−Welchアルゴリズムも、フォワード・バ
ックワードアルゴリズムを含んでおり、この実施の形態
1を使用できる。このとき、図1のリングアレイプロセ
ッサ4でフォーワードアルゴリズムを、リングアレイプ
ロセッサ8でバックワードアルゴリズムを実行する。
合と異なり、フォーワードアルゴリズムの終了条件であ
るの処理F4は「tがT−1と等しいか」となり、バッ
クワードアルゴリズムの終了条件である処理B4は「t
が0と等しいか」となる。すなわち、HMMの学習アル
ゴリズムでは、(1)式の計算をフォワード/バックワ
ードそれぞれおこなうようにする。このことにより、B
aum−Welchアルゴリズムのフォーワード・バッ
クワードアルゴリズムは、従来の半分の時間で処理を済
ますことができる。
の形態について説明する。これは、第1の実施の形態の
計算アルゴリズムを、以下に説明するように対数上の計
算アルゴリズムに置き換えたものである。これまで定義
したHMMに関するパラメータの対数を、以下の(7)
式のように定義する。
可能な最大の数値(以下これをInf.と略す)を用い
る。
エレメントPE0,i(i=0〜N−1)によってフォー
ワードアルゴリズムを実行するためには、図2に示す処
理を行えばよい。ただし、前述の第1の実施の形態と同
様に、識別アルゴリズムにおいては図2の終了条件F4
を「tがLに等しいか?」とする。図2においてF2
1,F22,F23,F25,F26,F27は、図1
2のF11,F12,F13,F15,F16,F17
に対応している。なお、F4,F8は同一である。
f.はプロセッサエレメントで表現可能な最大の数値を
表す。また、処理F26における2変数関数Gc(p,
q)は、以下の(8)式で示されるように定義される。 p≧qのとき、Gc(p,q)=q−gc(p−q) p<qのとき、Gc(p,q)=p−gc(q−p) ・・・(8) ここで、関数gc(x)は以下の(9)式で定義され
る。 gc(x)=logc(1+c-x) ・・・(9)
クワードアルゴリズムの実行は、図3のアルゴリズムに
よっておこなう。図2においてB21,B22,B2
3,B25,B26,B27は、図12のB11,B1
2,B13,B15,B16,B17に対応している。
なお、B4,B8は同一である。ただし、前述の実施の
形態1と同様に、識別アルゴリズムにおいては図3の終
了条件B4を「tがLに等しいか?」とする。
よる対数表現においても、並列演算処理がおこない得
る。この対数表現では、対数の底cを1より大きくかつ
1に十分近い数値にとることにより、すべての数値を整
数に量子化しても十分な計算精度を得ることができる。
(9)式に示した関数gc(x)は、予め必要な範囲の
整数の引数についで値を計算しておき、その値を量子化
したものをメモリーに保持してルックアップテーブルと
して使用することにより、全計算を整数の演算だけで処
理することができる。
雑で大きい浮動小数点演算器が不要になるという利点が
ある。実施の形態1は、浮動小数点を用いたアルゴリズ
ムとなるが、IEEE規格の浮動小数点を採用した標準
的な汎用プロセッサでは、本対数表現を用いた整数演算
によるアルゴリズムの方が、実施の形態1より計算のダ
イナミックレンジ(計算で扱える数値の範囲)を大きく
とることができるという利点もある。
の形態について図面を参照して説明する。図4は、本発
明の第3の実施の形態におけるアレイプロセッサの構成
を示す構成図である。これは、2つのプロセッサエレメ
ントPE0 およびプロセッサエレメントPE1 をデータ
伝送路9で結合したものである。そして、プロセッサエ
レメントPE0 でフォオーワードアルゴリズムの処理を
おこない、プロセッサエレメントPE1 でバックワード
アルゴリズムをおこない、それらを同時に処理すること
により、単独のプロセッサによる処理に比べて処理時間
を半分に短縮することができる。ただし、前述の実施の
形態1と同様に、識別アルゴリズムにおいては終了条件
F4および終了条件B4を「tがLに等しいか?」とす
る。
5に示すフォーワードアルゴリズムを実行する。これ
は、図9に示したフォーワードアルゴリズムを実行する
とき、処理F1は図5(a)、処理F2は図5(b)、
処理F3は図5(c)に示したアルゴリズムを用いるこ
とと同様である。ここで、図5(b)のアルゴリズムて
は2次元配列Iを使用する。これは、状態遷移確率行列
Aの第j列成分のうち非零成分に通し番号を付け、その
第i番目の成分の行数を配列Iの第i行j列成分I
(i,j)に保存するものである。また1次元配列nの
第j成分n(j)には、状態遷移確率行列Aの第j列の
非零成分の数を保存するものである。これらの配列を用
いた図5(b)のアルゴリズムは、行列Aの零成分との
不必要な積和演算を省略するものであり、行列Aが不規
則疎行列である場合には効率的な処理を可能とする。
に示すバックワードアルゴリズムを実行する。これは、
図10に示したバックワードアルゴリズムを実行すると
き、処理B1は図6(a),処理B2は図6(b),処
理B3は図6(c)に示したアルゴリズムに従うことと
同様である。ここで、図6(c)のアルゴリズムでは2
次元配列Jを使用する。これは、状態遷移確率行列Aの
第i行成分のうち非零成分に通し番号を付け、その第j
番目の成分の列数を配列Jの第i行j列成分J(i,
j)に保存するものである。また1次元配列mの第j成
分m(i)には、状態遷移確率行列Aの第i行の非零成
分の数を保存するものである。これらの配列を用いた図
6(c)のアルゴリズムは、行列Aの零成分との不必要
な積和演算を省略するものであり、行列Aが不規則疎行
列である場合には効率的な処理を可能とする。
1)は中間結果保存用のレジスターである。P(X|
θ)を求めるときは、フォーワードアルゴリズムでプロ
セッサエレメントPE0 に生成されたα(L)のデータ
を、データ伝送路9を通じてプロセッサエレメントPE
1 に転送し、プロセッサエレメントPE1 で(6)式を
計算する。 あるいは逆に、バックワードアルゴリズム
でプロセッサエレメントPE1 に生成されたβ(L)のデ
ータをデータ伝送路9を通じてプロセッサエレメントP
E0 に転送し、プロセッサエレメントPE0 で(6)式
を計算してもよい。
とすると、HMMの状態数個のプロセッサエレメントを
必要としたため、装置が大規模になるという欠点があっ
た。しかし、この実施の形態3では、HMMの計算を2
つのプロセッサエレメントで並列処理するようにした。
このため、HMMの並列計算をおこなうとき、従来のよ
うに状態数個のプロセッサエレメントを用意することな
く、小型のHMM計算装置でおこなうことができる。
施の形態について説明する。本実施の形態4では、図4
に示すようにデータ伝送路9で結合された2つのプロセ
ッサエレメントPE0 およびプロセッサエレメントPE
i を用いるようにした。そして、プロセッサエレメント
PE0 でフォーワードアルゴリズムを、プロセッサエレ
メントPE1でバックワードアルゴリズムを処理する。
7に示すフォーワードアルゴリズムを実行する。これ
は、図9に示したフォーワードアルゴリズムを、処理F
1は図7(a),処理F2は図7(b),処理F3は図
7(c)に示したアルゴリズムを用いておこなうことと
同様である。また、プロセッサエレメントPEi で図8
に示すバックワードアルゴリズムを実行する。これは、
図10に示したバックワードアルゴリズムを、処理B1
は図8(a),処理B2は図8(b),処理B3は図8
(c)に示したアルゴリズムを用いておこなうことと同
様である。すなわち、実施の形態2と同様に、対数上で
処理するものである。
件F4、および、バックワードアルゴリズムの終了条件
B4は、学習アルゴリズムにおいては図6,7に示した
通り、識別アルゴリズムにおいて「tがLに等しいか
?」とする。この実施の形態4においても、上記実施の
形態と同様の効果を奏するものである。
るため整数演算のみでよく、演算器の規模が大きくなる
積算および除算を必要としないため、プロセッサは小規
模で簡単なものになる。また、実施の形態3では、浮動
小数点を用いたアルゴリズムとなるが、IEEE規格の
浮動小数点を採用した標準的な汎用プロセッサでは、本
対数表現を用いた整数演算によるアルゴリズムの方が、
実施の形態3より計算のダイナミックレンジを大きくと
ることができるという利点もある。
数のレジスタとアキュミュレータとを有するプロセッサ
エレメントを状態数N個リング状に結合した第1のリン
グアレイプロセッサと、プロセッサエレメントを状態数
N個リング状に結合し、それらが第1のリングアレイプ
ロセッサを構成するプロセッサエレメントそれぞれと結
合した第2のリングアレイプロセッサとを備え、第1の
リングアレイプロセッサがフォーワードアルゴリズムを
並列計算し、第2のリングアレイプロセッサがバックワ
ードアルゴリズムを並列計算するようにした。また、複
数のレジスタとアキュミュレータとを有する第1および
第2のプロセッサエレメントを備え、それら第1と第2
のプロセッサエレメントを結合した状態で、第1のプロ
セッサエレメントがフォーワードアルゴリズムを計算
し、第2のプロセッサエレメントがバックワードアルゴ
リズムを計算するようにした。そして、パラメータおよ
び計算によって生成される数値の対数を整数に量子化
し、フォーワードアルゴリズムおよびバックワードアル
ゴリズムを計算するようにした。
下に示すような効果を得ることができる。まず、HMM
の計算において、従来の2倍の並列化ができるようにな
る。また、プロセッサエレメント2つで、HMMの並列
計算ができるようになる。また、対数表現のアルゴリズ
ムを用いることにより、すべての処理を整数上で行うこ
とができ、かつ掛け算および割り算が必要なくなる。こ
のためプロセッサとして、小規模で簡単な整数演算器の
みを備えたものを用いることができる。そして、計算の
ダイナミックレンジを大きくとることができることであ
る。これは、対数表現の整数演算アルゴリズムを用いる
ようにしたので、広く普及しているIEEE規格の浮動
小数点を採用した標準的な汎用プロセッサを用いた場
合、浮動小数点を用いたアルゴリズムより計算のダイナ
ミックレンジを大きくすることができるためである。
ルコフモデルの計算システムの構成を示す構成図であ
る。
ズムを実行するための処理を示すフローチャートであ
る。
ズムの実行するための処理を示すフローチャートであ
る。
ロセッサの構成を示す構成図である。
ズムを示すフローチャートである。
ズムを示すフローチャートである。
ズムを示すフローチャートである。
ズムを示すフローチャートである。
ーチャートである。
ローチャートである。
す構成図である。
リズムを示すフローチャートである。
リズムを示すフローチャートである。
7…データ、4,8…リングアレイプロセッサ、PE…
プロセッサエレメント。
Claims (3)
- 【請求項1】 T個のシンボルからなるシンボル列を出
力する確率Pを与え、状態数Nと,状態の遷移確率を示
すマルコフ行列と呼ばれる遷移確率行列Aと,初期の状
態確率を示すベクトルπと,終状態を示す集合Fと,前
記シンボルを出力する確率を示す出力確率行列Bとで示
されるパラメータで決定される隠れマルコフモデルのフ
ォーワードアルゴリズムおよバックワードアルゴリズム
を計算する隠れマルコフモデルの計算方式において、 複数のレジスタとアキュミュレータとを有するプロセッ
サエレメントを、前記状態数N個リング状に結合した第
1のリングアレイプロセッサと、 前記プロセッサエレメントを前記状態数N個リング状に
結合し、それらが前記第1のリングアレイプロセッサを
構成するプロセッサエレメントそれぞれと結合した第2
のリングアレイプロセッサとを備え、 前記第1のリングアレイプロセッサが前記フォーワード
アルゴリズムを並列計算し、 前記第2のリングアレイプロセッサが前記バックワード
アルゴリズムを並列計算することを特徴とする隠れマル
コフモデルの計算方式。 - 【請求項2】 T個のシンボルからなるシンボル列を出
力する確率Pを与え、状態数Nと,状態の遷移確率を示
すマルコフ行列と呼ばれる遷移確率行列Aと,初期の状
態確率を示すベクトルπと,終状態を示す集合Fと,前
記シンボルを出力する確率を示す出力確率行列Bとで示
されるパラメータで決定される隠れマルコフモデルのフ
ォーワードアルゴリズムおよバックワードアルゴリズム
を計算する隠れマルコフモデルの計算方式において、 複数のレジスタとアキュミュレータとを有する第1およ
び第2のプロセッサエレメントを備え、 前記第1と第2のプロセッサエレメントを結合し、 前記第1のプロセッサエレメントが前記フォーワードア
ルゴリズムを計算し、 前記第2のプロセッサエレメントが前記バックワードア
ルゴリズムを計算することを特徴とする隠れマルコフモ
デルの計算方式。 - 【請求項3】 請求項1または2記載の隠れマルコフモ
デルの計算方式において、 前記パラメータおよび計算によって生成される数値の対
数を整数に量子化し、前記フォーワードアルゴリズムお
よびバックワードアルゴリズムを計算することを特徴と
する隠れマルコフモデルの計算方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8164227A JP2933537B2 (ja) | 1996-06-25 | 1996-06-25 | 隠れマルコフモデルの計算方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8164227A JP2933537B2 (ja) | 1996-06-25 | 1996-06-25 | 隠れマルコフモデルの計算方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1011086A JPH1011086A (ja) | 1998-01-16 |
JP2933537B2 true JP2933537B2 (ja) | 1999-08-16 |
Family
ID=15789094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8164227A Expired - Fee Related JP2933537B2 (ja) | 1996-06-25 | 1996-06-25 | 隠れマルコフモデルの計算方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2933537B2 (ja) |
-
1996
- 1996-06-25 JP JP8164227A patent/JP2933537B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1011086A (ja) | 1998-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110119809B (zh) | 对神经网络中非对称量化数据执行mac运算的装置和方法 | |
US10691996B2 (en) | Hardware accelerator for compressed LSTM | |
US20180260710A1 (en) | Calculating device and method for a sparsely connected artificial neural network | |
CN111695671B (zh) | 训练神经网络的方法及装置、电子设备 | |
CN111338695B (zh) | 基于流水线技术的数据处理方法及相关产品 | |
Varvarigou et al. | Scheduling in and out forests in the presence of communication delays | |
CN110766128A (zh) | 卷积计算单元、计算方法及神经网络计算平台 | |
CN110955734B (zh) | 逻辑节点的分布式签名决策***及其方法 | |
US11775832B2 (en) | Device and method for artificial neural network operation | |
US20190138922A1 (en) | Apparatus and methods for forward propagation in neural networks supporting discrete data | |
US20200389182A1 (en) | Data conversion method and apparatus | |
CN112784974A (zh) | 动态多组态cnn加速器架构与操作方法 | |
JP3345894B2 (ja) | 浮動小数点乗算器 | |
CN111047045A (zh) | 机器学习运算的分配***及方法 | |
CN110716751B (zh) | 高并行度计算平台、***及计算实现方法 | |
US6003058A (en) | Apparatus and methods for performing arithimetic operations on vectors and/or matrices | |
JP2933537B2 (ja) | 隠れマルコフモデルの計算方式 | |
CN110659014B (zh) | 乘法器及神经网络计算平台 | |
CN111788567B (zh) | 一种数据处理设备以及一种数据处理方法 | |
Lian et al. | Revisit batch normalization: New understanding from an optimization view and a refinement via composition optimization | |
KR20200072666A (ko) | 합성곱 계층의 선택적 데이터 처리 방법 및 이를 이용한 뉴럴 프로세서 | |
JP4083387B2 (ja) | 離散フーリエ変換の計算 | |
US20190073584A1 (en) | Apparatus and methods for forward propagation in neural networks supporting discrete data | |
Huang et al. | A parallel FFT algorithm for transputer networks | |
CN111985628A (zh) | 计算装置及包括所述计算装置的神经网络处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090528 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100528 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110528 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110528 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120528 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120528 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130528 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130528 Year of fee payment: 14 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |