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
Application number
JP8164227A
Other languages
English (en)
Other versions
JPH1011086A (ja
Inventor
正吾 中谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GIJUTSU KENKYU KUMIAI SHINJOHO SHORI KAIHATSU KIKO
NEC Corp
Original Assignee
GIJUTSU KENKYU KUMIAI SHINJOHO SHORI KAIHATSU KIKO
Nippon Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by GIJUTSU KENKYU KUMIAI SHINJOHO SHORI KAIHATSU KIKO, Nippon Electric Co Ltd filed Critical GIJUTSU KENKYU KUMIAI SHINJOHO SHORI KAIHATSU KIKO
Priority to JP8164227A priority Critical patent/JP2933537B2/ja
Publication of JPH1011086A publication Critical patent/JPH1011086A/ja
Application granted granted Critical
Publication of JP2933537B2 publication Critical patent/JP2933537B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、隠れマルコフモ
デル(HMM)の計算方式に関し、特にその並列計算方
式に関する。
【0002】
【従来の技術】音声認識においては、音声の特徴パラメ
ータの時間的な変化と確率的な変動とを統計的に扱うた
めに、隠れマルコフモデル(HMM)が使用される。H
MMを用いた音声認識における学習では、複数の音声を
入力としてHMMのパラメータを決定する。そして、実
際の音声認識動作のときは、認識対象の音声よりパラメ
ータが決定されたHMMを用いてその確率を計算するよ
うにしている。
【0003】すなわち、パラメータがθとして決定され
たHMMが認識対象の音声であるシンボル列X=x0
1,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へ遷移する確率
を表している。
【0004】
【数1】
【0005】また、Bは以下の(3)式に示す状態数N
×Nの行列で、各対角成分bi (s)は、状態iにおい
てs番目のシンボルを出力する確率である(s=0〜S
−1)。
【0006】
【数2】
【0007】また、πは、以下の(4)式で示される初
期状態確率ベクトルである。1×Nの行ベクトルである
πの各成分は、状態iが初期状態である確率を表す。 π=(π0,π1,・・・,πN-1)・・・(4) そして、Fは以下の(5)式で示されるN×1の列ベク
トルで、fi は終状態に対応する成分が1でそれ以外が
0である。
【0008】
【数3】
【0009】前述した音声認識の学習段階では、HMM
の処理過程で、図9に示すフォワードアルゴリズムおよ
び図10に示すバックワードアルゴリズムの計算が必要
となる。図9において、α(t) はフォーワードアルゴリ
ズムの過程で生成されるt番目の行ベクトルを示してい
る。また、図10において、β(t) はバックワードアル
ゴリズムの過程で生成されるt番目列ベクトルを示して
いる。また、図9,10において、xtはシンボル列中
のt番目のシンボルを表している(t=0〜T−1)。
ここで、Tはシンボル列の長さである。
【0010】HMMのフォワードアルゴリズムは、
(1)式を左側から計算しているものであり、図9に示
されるように、まず、インデックスtを0とした後、次
のステップの処理F1でπ×B(Xt )を計算する。こ
の処理において、以下の(6)式に示される行列の演算
がなされている。すなわち、各要素のかけ算が、状態数
N個分おこなわれることになる。
【0011】
【数4】
【0012】次いで、次のステップの処理F2で、処理
F1の結果にAを乗ずる。次いで、インデックスtを1
増やし、次のステップの処理F3で、今度は、B(X
2 )を処理F2の結果に乗ずる。次いで、次のステップ
の処理F4で、インデックスtがT−1と等しいかどう
かを判断する。すなわち、F2のステップからF3のス
テップまでを、シンボル列のシンボルの数Tだけおこな
う。
【0013】一方、バックワードアルゴリズムは、
(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)式の計算をおこなう。
【0014】しかし、これらのアルゴリズムを単一プロ
セッサで処理すると多大な時間を要する。例えば、図9
の処理F1では、状態数N回の計算が必要となる。この
ため、これらのところを並列化して計算することで、処
理の高速化が期待できる。従来、この種のHMMの並列
計算方式として、たとえば特開平5−108695号公
報に示されるような方式が提案されている。図11にそ
の従来のHMMの並列計算方式における並列計算装置の
ブロック図を示す。これはHMMの状態数Nと同じ数の
プロセッサエレメントPE0〜PEN-1で構成される並列
処理部1を、データ伝送路2で環状に結合したリングア
レイプロセッサである。
【0015】このリングアレイプロセッサでは、フォー
ワードアルゴリズムにおいて、データ3が各プロセッサ
エレメントPEi (i=0〜N−1)に生成される。ま
た、リングアレイプロセッサでは、バックワードアルゴ
リズムにおいて、データ7が各プロセッサエレメントP
i (i=0〜N−1)に生成される。
【0016】以下、図11に示した並列計算装置を用
い、フォワードアルゴリズムを実行するときの各プロセ
ッサエレメント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に内蔵されているレジスター
群である。アキュミュレータは、演算結果を保持するレ
ジスターをいい、累算器とも呼ばれる。
【0017】図12において、まず、インデックスtを
0とした後、次のステップの処理F1でα(t) にπB
(Xt )の計算結果を代入する。これは、前述した
(6)式に示される計算であり、図11のリングアレイ
プロセッサを用いれば、並列処理部1の一度の並列処理
で計算が終了する。次いで、次のステップの処理F12
に移行する。この処理12は、行ベクトルπ×B(X
t )と一般に非対角行列であるところのAとの積であ
る。この処理では、並列処理部1で数回の並列処理をお
こなうことになる。
【0018】処理F12において、まず、インデックス
jを0とした後、次のステップのF15において、Ac
i に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対角列と呼ぶこ
とにする。
【0019】次いで、次のステップの処理F17におい
て、αi (t)をα(i-j)modN (t)とする。これは、図11の
フォワードアルゴリズムの流れに示されるように、各プ
ロセッサエレメントPEi に保持されているα(t)のデ
ータを、隣接したプロセッサエレメントに転送する操作
である。そして、インデックスjを1増やす。次いで、
次のステップの処理F8で、jがNと等しいか、また
は、Aのj番目以降の対角列が全て0行列であるかどう
か判断する。ここで、jがNと等しいか、または、Aの
j番目以降の対角列が全て0行列であると判断されなか
った場合、F16の処理に戻る。
【0020】一方、F8の処理でjがNと等しいか、ま
たは、Aのj番目以降の対角列が全て0行列であると判
断された場合、インデックスtを1増やし、次のステッ
プの処理F13でαi (t)をbi(xt)Acciとする。
そして、次のステップのF4の処理で、tがT−1と等
しいかどうかを判断する。ここで、等しいと判断された
場合処理を終了し、等しいと判断されなかった場合、再
びF12の処理をおこなう。
【0021】次に、図11の装置を用いてバックワード
アルゴリズムを実行するときの各プロセッサエレメント
PEi の処理過程を図13に示す。図13の処理B1
1,B12,B13は、それぞれ図10の処理B1,B
2,B3に対応する。また、各プロセッサエレメントP
i には処理に必要なパラメータがあらかじめ保存され
ているものとする。なお、βi (t)(t=0〜T−1)
は、プロセッサエレメントPEi に内蔵されているレジ
スター群である。
【0022】このバックワードアルゴリズムの処理過程
においては、まず、インデックスjをT−1とした後、
次のステップのB11において、βi (t)にfi を代入す
る。ついで、次のステップB12において、βi (t-1)
i(xt)βi (t)を代入する。これは、(1)式を右側
から計算していくなかのF・B(xT-1 )の計算であ
り、図11のリングアレイプロセッサを用いれば、並列
処理部1の一度の並列処理で計算が終了する。
【0023】ついで、インデックスtを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のリングアレイプロセッサを用いて並列処理で計
算するものである。
【0024】次のステップの処理B17において、βi
(t)をβ(i+j)modN (t)とする。これは、図11のバック
ワードアルゴリズムの流れに示されるように、各プロセ
ッサエレメントPEi に保持されているβi (t)のデータ
を、隣接したプロセッサエレメントにサイクリックに転
送する操作である。そして、インデックスjを1増や
す。次いで、次のステップの処理B8で、jがNと等し
いか、または、Aのj番目以降の対角列が全て0行列で
あるかどうか判断する。ここで、jがNと等しいか、ま
たは、Aのj番目以降の対角列が全て0行列であると判
断されなかった場合、B16の処理に戻る。
【0025】一方、B8の処理で、jがNと等しいか、
または、Aのj番目以降の対角列が全て0行列であると
判断された場合、βi (t)をAcci とする。そして、次
のステップのB4の処理で、tが0と等しいかどうかを
判断する。ここで、等しいと判断された場合は処理を終
了し、等しいと判断されなかった場合は再びB12の処
理をおこなう。以上に示したように、HMMの計算にお
いては、状態数Nの個数のプロセッサエレメントを用い
ることで、並列演算をおこなうことが可能となる。
【0026】
【発明が解決しようとする課題】従来は以上のように構
成されていたので、以下に示すような問題があった。従
来では、並列演算をおこなおうとすれば、プロセッサエ
レメントの数は状態数N個しか用いることができない。
前述したように、HMMの並列計算においては、N個の
プロセッサエレメントが必要となるが、プロセッサエレ
メントがN個以上あっても、並列演算に用いられること
がない。N個を越えるプロセッサエレメントは無駄にな
ってしまう。
【0027】また、上述したことにより、HMMの計算
を高速化しようとする場合は、N個のプロセッサエレメ
ントを用意して並列演算をおこなうしかない。したがっ
て、より少ない数のプロセッサエレメントで計算の高速
化をおこなうことができなかった。すなわち、従来で
は、規模に対する制約がなく、大規模な並列処理部を用
意しても、プロセッサエレメントが状態数N個までの並
列化による高速化しかできず、それ以上の高速化ができ
ない。一方で、計算の高速化をより小さい規模でおこな
おうとしても、高速処理のための並列化が効果を発揮す
るのは、プロセッサエレメントが状態数N個の場合だけ
であり、小規模での計算の高速化が望めなかった。
【0028】この発明は、以上のような問題点を解消す
るためになされたものであり、HMMの計算を、より高
速化できるようにすることを目的とする。
【0029】
【課題を解決するための手段】この発明の隠れマルコフ
モデルの計算方式は、複数のレジスタとアキュミュレー
タとを有するプロセッサエレメントを状態数N個リング
状に結合した第1のリングアレイプロセッサと、プロセ
ッサエレメントを状態数N個リング状に結合し、それら
が第1のリングアレイプロセッサを構成するプロセッサ
エレメントそれぞれと結合した第2のリングアレイプロ
セッサとを備え、第1のリングアレイプロセッサがフォ
ーワードアルゴリズムを並列計算し、第2のリングアレ
イプロセッサがバックワードアルゴリズムを並列計算す
るようにした。このため、フォワードアルゴリズムとバ
ックワードアルゴリズムの並列計算を同時におこなうこ
とができる。
【0030】また、この発明の隠れマルコフモデルの計
算方式は、複数のレジスタとアキュミュレータとを有す
る第1および第2のプロセッサエレメントを備え、それ
ら第1と第2のプロセッサエレメントを結合した状態
で、第1のプロセッサエレメントがフォーワードアルゴ
リズムを計算し、第2のプロセッサエレメントがバック
ワードアルゴリズムを計算するようにした。このため、
フォワードアルゴリズムとバックワードアルゴリズムの
計算を同時に並列しておこなうことができる。そして、
パラメータおよび計算によって生成される数値の対数を
整数に量子化し、フォーワードアルゴリズムおよびバッ
クワードアルゴリズムを計算するようにした。すなわ
ち、対数表現のアルゴリズムを用いることにより、フォ
ーワードアルゴリズムおよびバックワードアルゴリズム
を計算するようにした。
【0031】
【発明の実施の形態】以下この発明の実施の形態を図を
参照して説明する。 実施の形態1.図1は、この発明の第1の実施の形態に
おける隠れマルコフモデルの計算システムの構成を示す
構成図である。この実施の形態では、図1に示されるよ
うに、2つのリングアレイプロセッサ4,8を用いるよ
うにしたものである。
【0032】リングアレイプロセッサ4では、プロセッ
サエレメントPE0,i (i=0〜N−1)から構成され
た並列処理部1とそれらを接続するデータ転送路2によ
り、フォワードアルゴリズムにおけるデータ3を並列処
理する。一方、リングアレイプロセッサ8では、プロセ
ッサエレメントPE1,i (i=0〜N−1)から構成さ
れた並列処理部5とそれらを接続するデータ転送路6に
より、バックワードアルゴリズムにおけるデータ7を並
列処理する。そして、並列処理部1と並列処理部5の各
プロセッサエレメントは、それぞれデータ転送路9で接
続されている。
【0033】このようにすることで、例えば、音声認識
動作で、パラメータが決定されたHMMを用いてその確
率を求めるときに、以下に示すようにできる。 まず、(1)式に示した計算を、左側からリングアレ
イプロセッサ4を用いて途中まで計算する(フォーワー
ドアルゴリズム)。 一方、(1)式に示した計算を、右側からリングアレ
イプロセッサ8を用いて途中まで計算する(バックワー
ドアルゴリズム)。 そして、それらの計算結果を合わせる。 以上のことにより、従来に比較して約半分の時間で計算
を終わらせることができる。
【0034】前述したように、パラメータを指定された
HMMθが、シンボル列X=x0,l,2,,T-1を出
力する確率P(X|θ)は、(1)式で与えられる。そ
して、(1)式の右辺を、左から右へ順に計算を進めて
いったものが、図9に示したフォーワードアルゴリズム
てあり、その計算過程で中間結果としてベクトルα(t)
が生成される。また、(1)式の右辺を、右から左へ順
に計算を進めていったものが図10に示したバックワー
ドアルゴリズムそあり、その計算過程で中間結果として
ペグトルβ(t)が生成される。
【0035】従来、P(X|θ)を求めるとき、図11
に示すような一つのリングアレイプロセッサを用いて、
フォーワードアルゴリズムかバックワードアルゴリズム
の一方を計算していた。すなわち、フォーワードアルゴ
リズムの終了時に得られるα(T-1) を用いてα(T-1)
を計算するか、あるいはバックワードアルゴリズムの終
了時に得られるβ(0) を用いてπB(x0)β(0) を計
算するか、どちらかの方法が取られていた。
【0036】ところで、(1)式は、P(X|θ)=α
(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とするのが最も好ま
しい。
【0037】α(L)の計算は、図9に示したフォーワー
ドアルゴリズムにおいて、終了条件F4を「tがLに等
しいか?」とすることによっておこなうことができる。
そしてこれは、図1の並列処理部1の各プロセッサエレ
メントPE0,i(i=0〜N−1)が、図12のアルゴ
リズムにしたがって処理を進めることによって並列計算
がなされる。ただし、このときの終了条件F4は、「t
がLに等しいか?」となる。
【0038】また、β(L)の計算は、図10に示したバ
ックワードアルゴリズムにおいて、終了条件B4を「t
がLに等しいか?」とすることによって計算される。そ
してこれは、図1の並列処理部5の各プロセッサエレメ
ントPE1,i(i=0〜N−1)が、図13のアルゴリ
ズムにしたがって処理を進めることによって平行計算が
なされる。ただし、このときの終了条件B4は「tがL
に等しいか?」とする。
【0039】以上このとにより、図1の並列処理部1に
α(L)のデータが得られ、並列処理部5にβ(L)のデータ
が得られたのち、両並列処理部1,5をつなぐデータ伝
送路9を通じでα(L)のデータを並列処理部5に転送す
る。そして、並列処理部5で両ベクトルの内積α(L)β
(L)を計算することによりP(X|θ)を得ることがで
きる。あるいは、並列処理部5のβ(L)のデータを、デ
ータ伝送路9を通じで並列処理部1に転送し、並列処理
部1でα(L)β(L)を計算してもよい。
【0040】以上示したように、この実施の形態1によ
れば、P(X|θ)を従来の約半分の時間で求めること
ができる。以上は、HMMの識別アルゴリズムの場合を
例に取り説明したが、HMMの学習アルゴリズムである
Baum−Welchアルゴリズムも、フォワード・バ
ックワードアルゴリズムを含んでおり、この実施の形態
1を使用できる。このとき、図1のリングアレイプロセ
ッサ4でフォーワードアルゴリズムを、リングアレイプ
ロセッサ8でバックワードアルゴリズムを実行する。
【0041】しかし、上述したP(X|θ)の算出の場
合と異なり、フォーワードアルゴリズムの終了条件であ
るの処理F4は「tがT−1と等しいか」となり、バッ
クワードアルゴリズムの終了条件である処理B4は「t
が0と等しいか」となる。すなわち、HMMの学習アル
ゴリズムでは、(1)式の計算をフォワード/バックワ
ードそれぞれおこなうようにする。このことにより、B
aum−Welchアルゴリズムのフォーワード・バッ
クワードアルゴリズムは、従来の半分の時間で処理を済
ますことができる。
【0042】実施の形態2.次に、本発明の第2の実施
の形態について説明する。これは、第1の実施の形態の
計算アルゴリズムを、以下に説明するように対数上の計
算アルゴリズムに置き換えたものである。これまで定義
したHMMに関するパラメータの対数を、以下の(7)
式のように定義する。
【0043】 vi=logcπi,wi(s)=−logci(s), yi,j=−logci,j,z=−logci, γi (t)=−logcαi (t),δi (t)=−logcβi (t) ・・・(7) ただし、対数が無限大になるときは、プロセッサで表現
可能な最大の数値(以下これをInf.と略す)を用い
る。
【0044】(7)式を用いると、図1の、プロセッサ
エレメント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は同一である。
【0045】なお、図2において、処理F25で、In
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)
【0046】また、(7)式に示した定義により、バッ
クワードアルゴリズムの実行は、図3のアルゴリズムに
よっておこなう。図2においてB21,B22,B2
3,B25,B26,B27は、図12のB11,B1
2,B13,B15,B16,B17に対応している。
なお、B4,B8は同一である。ただし、前述の実施の
形態1と同様に、識別アルゴリズムにおいては図3の終
了条件B4を「tがLに等しいか?」とする。
【0047】以上示したことにより、(7)式の定義に
よる対数表現においても、並列演算処理がおこない得
る。この対数表現では、対数の底cを1より大きくかつ
1に十分近い数値にとることにより、すべての数値を整
数に量子化しても十分な計算精度を得ることができる。
(9)式に示した関数gc(x)は、予め必要な範囲の
整数の引数についで値を計算しておき、その値を量子化
したものをメモリーに保持してルックアップテーブルと
して使用することにより、全計算を整数の演算だけで処
理することができる。
【0048】このため、この実施の形態2によれば、複
雑で大きい浮動小数点演算器が不要になるという利点が
ある。実施の形態1は、浮動小数点を用いたアルゴリズ
ムとなるが、IEEE規格の浮動小数点を採用した標準
的な汎用プロセッサでは、本対数表現を用いた整数演算
によるアルゴリズムの方が、実施の形態1より計算のダ
イナミックレンジ(計算で扱える数値の範囲)を大きく
とることができるという利点もある。
【0049】実施の形態3.次に、本発明の第3の実施
の形態について図面を参照して説明する。図4は、本発
明の第3の実施の形態におけるアレイプロセッサの構成
を示す構成図である。これは、2つのプロセッサエレメ
ントPE0 およびプロセッサエレメントPE1 をデータ
伝送路9で結合したものである。そして、プロセッサエ
レメントPE0 でフォオーワードアルゴリズムの処理を
おこない、プロセッサエレメントPE1 でバックワード
アルゴリズムをおこない、それらを同時に処理すること
により、単独のプロセッサによる処理に比べて処理時間
を半分に短縮することができる。ただし、前述の実施の
形態1と同様に、識別アルゴリズムにおいては終了条件
F4および終了条件B4を「tがLに等しいか?」とす
る。
【0050】まず、プロセッサエレメントPE0 で、図
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が不規
則疎行列である場合には効率的な処理を可能とする。
【0051】一方、プロセッサエレメントPE1 で図6
に示すバックワードアルゴリズムを実行する。これは、
図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が不規則疎行
列である場合には効率的な処理を可能とする。
【0052】図6(c)において、ηi(i=0〜N−
1)は中間結果保存用のレジスターである。P(X|
θ)を求めるときは、フォーワードアルゴリズムでプロ
セッサエレメントPE0 に生成されたα(L)のデータ
を、データ伝送路9を通じてプロセッサエレメントPE
1 に転送し、プロセッサエレメントPE1 で(6)式を
計算する。 あるいは逆に、バックワードアルゴリズム
でプロセッサエレメントPE1 に生成されたβ(L)のデ
ータをデータ伝送路9を通じてプロセッサエレメントP
0 に転送し、プロセッサエレメントPE0 で(6)式
を計算してもよい。
【0053】従来では、HMMの並列計算をおこなおう
とすると、HMMの状態数個のプロセッサエレメントを
必要としたため、装置が大規模になるという欠点があっ
た。しかし、この実施の形態3では、HMMの計算を2
つのプロセッサエレメントで並列処理するようにした。
このため、HMMの並列計算をおこなうとき、従来のよ
うに状態数個のプロセッサエレメントを用意することな
く、小型のHMM計算装置でおこなうことができる。
【0054】実施の形態4.次に、この発明の第4の実
施の形態について説明する。本実施の形態4では、図4
に示すようにデータ伝送路9で結合された2つのプロセ
ッサエレメントPE0 およびプロセッサエレメントPE
i を用いるようにした。そして、プロセッサエレメント
PE0 でフォーワードアルゴリズムを、プロセッサエレ
メントPE1でバックワードアルゴリズムを処理する。
【0055】そして、プロセッサエレメントPE0 で図
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と同様に、対数上で
処理するものである。
【0056】なお、フォーワードアルゴリズムの終了条
件F4、および、バックワードアルゴリズムの終了条件
B4は、学習アルゴリズムにおいては図6,7に示した
通り、識別アルゴリズムにおいて「tがLに等しいか
?」とする。この実施の形態4においても、上記実施の
形態と同様の効果を奏するものである。
【0057】また、対数上での計算アルゴリズムを用い
るため整数演算のみでよく、演算器の規模が大きくなる
積算および除算を必要としないため、プロセッサは小規
模で簡単なものになる。また、実施の形態3では、浮動
小数点を用いたアルゴリズムとなるが、IEEE規格の
浮動小数点を採用した標準的な汎用プロセッサでは、本
対数表現を用いた整数演算によるアルゴリズムの方が、
実施の形態3より計算のダイナミックレンジを大きくと
ることができるという利点もある。
【0058】
【発明の効果】以上説明したように、この発明では、複
数のレジスタとアキュミュレータとを有するプロセッサ
エレメントを状態数N個リング状に結合した第1のリン
グアレイプロセッサと、プロセッサエレメントを状態数
N個リング状に結合し、それらが第1のリングアレイプ
ロセッサを構成するプロセッサエレメントそれぞれと結
合した第2のリングアレイプロセッサとを備え、第1の
リングアレイプロセッサがフォーワードアルゴリズムを
並列計算し、第2のリングアレイプロセッサがバックワ
ードアルゴリズムを並列計算するようにした。また、複
数のレジスタとアキュミュレータとを有する第1および
第2のプロセッサエレメントを備え、それら第1と第2
のプロセッサエレメントを結合した状態で、第1のプロ
セッサエレメントがフォーワードアルゴリズムを計算
し、第2のプロセッサエレメントがバックワードアルゴ
リズムを計算するようにした。そして、パラメータおよ
び計算によって生成される数値の対数を整数に量子化
し、フォーワードアルゴリズムおよびバックワードアル
ゴリズムを計算するようにした。
【0059】以上のことにより、この発明によれば、以
下に示すような効果を得ることができる。まず、HMM
の計算において、従来の2倍の並列化ができるようにな
る。また、プロセッサエレメント2つで、HMMの並列
計算ができるようになる。また、対数表現のアルゴリズ
ムを用いることにより、すべての処理を整数上で行うこ
とができ、かつ掛け算および割り算が必要なくなる。こ
のためプロセッサとして、小規模で簡単な整数演算器の
みを備えたものを用いることができる。そして、計算の
ダイナミックレンジを大きくとることができることであ
る。これは、対数表現の整数演算アルゴリズムを用いる
ようにしたので、広く普及しているIEEE規格の浮動
小数点を採用した標準的な汎用プロセッサを用いた場
合、浮動小数点を用いたアルゴリズムより計算のダイナ
ミックレンジを大きくすることができるためである。
【図面の簡単な説明】
【図1】 この発明の第1の実施の形態における隠れマ
ルコフモデルの計算システムの構成を示す構成図であ
る。
【図2】 実施の形態1におけるフォーワードアルゴリ
ズムを実行するための処理を示すフローチャートであ
る。
【図3】 実施の形態1におけるバックワードアルゴリ
ズムの実行するための処理を示すフローチャートであ
る。
【図4】 本発明の第3の実施の形態におけるアレイプ
ロセッサの構成を示す構成図である。
【図5】 実施の形態3におけるフォーワードアルゴリ
ズムを示すフローチャートである。
【図6】 実施の形態3におけるバックワードアルゴリ
ズムを示すフローチャートである。
【図7】 実施の形態4におけるフォーワードアルゴリ
ズムを示すフローチャートである。
【図8】 実施の形態4におけるバックワードアルゴリ
ズムを示すフローチャートである。
【図9】 従来のフォーワードアルゴリズムを示すフロ
ーチャートである。
【図10】 従来のバックワードアルゴリズムを示すフ
ローチャートである。
【図11】 従来のリングアレイプロセッサの構成を示
す構成図である。
【図12】 従来の並列処理によるフォーワードアルゴ
リズムを示すフローチャートである。
【図13】 従来の並列処理によるバックワードアルゴ
リズムを示すフローチャートである。
【符号の説明】
1,5…並列処理部、2,6,9…データ転送路、3,
7…データ、4,8…リングアレイプロセッサ、PE…
プロセッサエレメント。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平5−108695(JP,A) 特開 平6−167995(JP,A) 特開 昭57−30900(JP,A) 特開 平4−125698(JP,A) (58)調査した分野(Int.Cl.6,DB名) G10L 3/00 - 9/18 JICSTファイル(JOIS)

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 T個のシンボルからなるシンボル列を出
    力する確率Pを与え、状態数Nと,状態の遷移確率を示
    すマルコフ行列と呼ばれる遷移確率行列Aと,初期の状
    態確率を示すベクトルπと,終状態を示す集合Fと,前
    記シンボルを出力する確率を示す出力確率行列Bとで示
    されるパラメータで決定される隠れマルコフモデルのフ
    ォーワードアルゴリズムおよバックワードアルゴリズム
    を計算する隠れマルコフモデルの計算方式において、 複数のレジスタとアキュミュレータとを有するプロセッ
    サエレメントを、前記状態数N個リング状に結合した第
    1のリングアレイプロセッサと、 前記プロセッサエレメントを前記状態数N個リング状に
    結合し、それらが前記第1のリングアレイプロセッサを
    構成するプロセッサエレメントそれぞれと結合した第2
    のリングアレイプロセッサとを備え、 前記第1のリングアレイプロセッサが前記フォーワード
    アルゴリズムを並列計算し、 前記第2のリングアレイプロセッサが前記バックワード
    アルゴリズムを並列計算することを特徴とする隠れマル
    コフモデルの計算方式。
  2. 【請求項2】 T個のシンボルからなるシンボル列を出
    力する確率Pを与え、状態数Nと,状態の遷移確率を示
    すマルコフ行列と呼ばれる遷移確率行列Aと,初期の状
    態確率を示すベクトルπと,終状態を示す集合Fと,前
    記シンボルを出力する確率を示す出力確率行列Bとで示
    されるパラメータで決定される隠れマルコフモデルのフ
    ォーワードアルゴリズムおよバックワードアルゴリズム
    を計算する隠れマルコフモデルの計算方式において、 複数のレジスタとアキュミュレータとを有する第1およ
    び第2のプロセッサエレメントを備え、 前記第1と第2のプロセッサエレメントを結合し、 前記第1のプロセッサエレメントが前記フォーワードア
    ルゴリズムを計算し、 前記第2のプロセッサエレメントが前記バックワードア
    ルゴリズムを計算することを特徴とする隠れマルコフモ
    デルの計算方式。
  3. 【請求項3】 請求項1または2記載の隠れマルコフモ
    デルの計算方式において、 前記パラメータおよび計算によって生成される数値の対
    数を整数に量子化し、前記フォーワードアルゴリズムお
    よびバックワードアルゴリズムを計算することを特徴と
    する隠れマルコフモデルの計算方式。
JP8164227A 1996-06-25 1996-06-25 隠れマルコフモデルの計算方式 Expired - Fee Related JP2933537B2 (ja)

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)

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