説明

再標本化装置

【課題】メモリのランダムアクセスを避けつつ、並列的なスイッチング操作によって高速な再標本化を実現し、特に粒子数が少ない場合に有利な再標本化装置を提供する。
【解決手段】再標本化装置1は、尤度値が入力された時点における累積尤度値を算出する累積尤度値算出手段と、最大の累積尤度値未満の一様乱数を生成する一様乱数発生手段13と、複数の累積尤度値と一様乱数とを一様乱数が生成される度に比較する複数の比較手段14と、比較手段14によって一様乱数以下であると判定された累積尤度値の中から最大の累積尤度値を選択し、当該最大の累積尤度値が算出される際に累積尤度値算出手段に入力された尤度値に対応する仮説を示すコードを生成するプライオリティエンコーダ15と、複数のコードが示す複数の仮説に対応する接点を制御することで、再標本化された複数の仮説を出力するマトリックススイッチ18と、を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、逐次モンテカルロ法によるパラメータ推定に関し、重み付けに応じた仮説の再標本化を行う再標本化装置に関する。
【背景技術】
【0002】
観測情報と、観測量と状態量との間の関係を確率・統計的に表現したモデルと、に基づいて状態量(パラメータ)を推定する方法として、逐次モンテカルロ法(パーティクルフィルタ、粒子フィルタまたはCONDENSATION等とも呼ばれる)がある。逐次モンテカルロ法では、状態量の確率密度分布を空間方向に離散化(標本化)して表現することで、多次元の状態空間における確率的な挙動を能率的に模擬することができる。また、逐次モンテカルロ法では、この離散化された状態空間内の数量を仮説(粒子)と呼び、複数かつ有限の粒子によって確率密度分布を近似表現する。
【0003】
逐次モンテカルロ法では、各粒子に重み付けを行うことが広く行われている。これにより、確率密度は状態空間内における粒子の密度と重みとの積によって表現されることになる。このように、逐次モンテカルロ法では、各粒子に重み付けを行うことで表現の自由度が増えるため、確率密度関数をより精度高く近似表現することができる。
【0004】
その一方で、逐次モンテカルロ法では、重み付けの小さい粒子が増加すると、寄与の少ない粒子が数多く存在することになり無駄が生じる。そのため、重み付けに応じた出現頻度となるように、新たな粒子に再編成(重み付けはより均質なものとする)することで、寄与の少ない粒子を省く操作が行われる。この操作のことを再標本化(あるいはリサンプリング)と呼ぶ(例えば特許文献1の段落0002、非特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−117865号公報
【非特許文献】
【0006】
【非特許文献1】A Doucet, N de Freitas and N Gordon: "Sequential Monte Carlo Methods in Practice," Springer, 2001. ISBN 978-0387951461.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、再標本化処理には、重み付けに応じた頻度で生起する特殊な乱数発生器が必要である。なお、「重み付けに応じた頻度で生起する」とは、重み付けの重い粒子ほど乱数が生起される確率が高いということを意味している。このような重み付けに応じた頻度で生起する特殊な乱数は、例えば重み付けを積算したものを累積確率密度分布とみなし、その逆関数に対して一様乱数を代入することで生成することができるが、従来はソフトウェア処理によって当該演算が行われており、論理回路や順序回路を用いたハードウェア処理によって前記した機能を高速に実現することは考えられてこなかった。
【0008】
また、従来の逐次モンテカルロ法では、非常に多くの(例えば千個ないし十万個程度の)粒子を用いて演算を行うことが通例であり、粒子をメモリ上に記憶した上で、前記した特殊な乱数によるアドレッシングによってランダムアクセスを行って再標本化を実現していた。そのため、従来の逐次モンテカルロ法では、次元数と粒子数との積の回数だけメモリのランダムアクセスが発生することが、特に状態量の次元(すなわち粒子の次元)が高い場合における演算のボトルネックとなっていた。
【0009】
一方、画像処理等の用途によっては、粒子数は比較的少ない数で良いものの、状態空間が極めて高次である場合や、非常に多数の逐次モンテカルロ法による処理を並列して実行しなければならない場合がある。このような用途においては、メモリのランダムアクセスが次元数や並列処理数に比例して増大することが問題点となるため、粒子数が少ない場合の利点(例えば再標本化による高速化等の利点)を生かすことができなかった。
【0010】
本発明はかかる点に鑑みてなされたものであって、メモリのランダムアクセスを避けつつ、並列的なスイッチング操作によって高速な再標本化を実現することを課題とし、特に粒子数が少ない場合に有利な再標本化装置を提供することを課題とする。
【課題を解決するための手段】
【0011】
前記課題を解決するために請求項1に係る再標本化装置は、逐次モンテカルロ法によりモデルのパラメータを推定する際に用いられる当該パラメータの解の候補である複数の仮説を、当該仮説の尤もらしさを示す尤度値に従って再標本化する再標本化装置であって、累積尤度値算出手段と、一様乱数発生手段と、複数の比較手段と、プライオリティエンコーダと、マトリックススイッチと、を備える構成とした。
【0012】
これにより、再標本化装置は、累積尤度値算出手段に複数の仮説に対応した尤度値が順次入力され、当該累積尤度値算出手段によって、当該尤度値が入力された時点における累積尤度値を、当該尤度値が入力される度に算出する。また、再標本化装置は、一様乱数発生手段によって、累積値尤度値算出手段において算出された最大の累積尤度値未満の一様乱数を、所定の時間間隔で所定の回数だけ生成する。なお、一様乱数とは、指定区間内で一様と見なすことができる乱数、すなわち予め定められた区間内で全ての数が同じ確率で現れるような乱数のことを意味している。
【0013】
また、再標本化装置は、複数の比較手段によって、累積尤度値算出手段において算出された複数の累積尤度値のそれぞれと、一様乱数発生手段によって生成された一様乱数とを、当該一様乱数が生成される度に比較する。また、再標本化装置は、プライオリティエンコーダによって、複数の比較手段において一様乱数以下であると判定された累積尤度値の中から最大の累積尤度値を選択し、当該最大の累積尤度値が算出される際に累積尤度値算出手段に入力された尤度値に対応する仮説を示すコードを、複数の比較手段から比較結果が入力される度に生成する。そして、再標本化装置は、複数の接点を備えるマトリックススイッチに複数の仮説が入力され、当該マトリックススイッチによって、プライオリティエンコーダにおいて生成された複数のコードが示す複数の仮説に対応する接点を制御することで、再標本化された複数の仮説を出力する。
【0014】
このように、再標本化装置は、累積尤度値算出手段、一様乱数発生手段、複数の比較手段およびプライオリティエンコーダにおける一連の処理によって、再標本化の対象となる複数の仮説を決定する。そして、マトリックススイッチに複数の仮説が入力されると、当該マトリックススイッチから、前記した一連の処理によって決定された再標本化後の複数の仮説が一度に出力されることになる。従って、再標本化装置によれば、複数の仮説(粒子)をメモリに記憶する必要がないため、メモリのランダムアクセスが発生することがない。また、再標本化装置によれば、マトリックススイッチに標本化前の複数の仮説を入力すると、再標本化後の複数の仮説が一度に出力されるという並列的なスイッチング操作を実現することができる。
【0015】
また、請求項2に係る再標本化装置は、請求項1に係る再標本化装置において、累積尤度値算出手段が、加算手段と、シフトレジスタと、を備える構成とした。
【0016】
これにより、再標本化装置は、加算手段に複数の仮説に対応した複数の尤度値が順次入力され、当該加算手段によって、複数の尤度値を順次加算することで、入力された尤度値の数に対応する複数の累積尤度値を算出する。また、シフトレジスタに加算手段から累積尤度値が順次入力され、当該シフトレジスタによって、複数の比較手段に対して、複数の累積尤度値を同時に出力する。
【0017】
このように、再標本化装置は、加算手段とシフトレジスタによって、入力された尤度値列を累積尤度値列に変換し、当該累積尤度値列を構成する複数の累積尤度列を複数の比較手段に対して同時に出力することができる。
【発明の効果】
【0018】
請求項1および請求項2に係る発明によれば、論理回路や順序回路を用いてハードウェア処理を行うことで、仮説(粒子)をメモリに記憶する必要がなく、かつ、複数の仮説(粒子)を一度に再標本化することができるため、メモリのランダムアクセスを避けつつ、並列的なスイッチング操作によって高速な再標本化を実現することができる。また、請求項1および請求項2に係る発明によれば、状態空間が高次である場合であっても、並列的に処理を行うことができるため、粒子数が少ない場合において、次元数に関わらず高速に再標本化を行うことができる。
【図面の簡単な説明】
【0019】
【図1】本発明に係る再標本化装置の構成例を示すブロック図である。
【図2】本発明に係る再標本化装置が備えるシフトレジスタの構成例を示すブロック図である。
【図3】本発明に係る再標本化装置が備える加算手段の構成例を示すブロック図である。
【図4】本発明に係る再標本化装置の入出力のタイミングを示すタイミングチャートである。
【図5】本発明に係る再標本化装置が備える一様乱数発生手段の構成例を示すブロック図である。
【図6】本発明に係る再標本化装置が備える一様乱数発生手段の入力のタイミングを示すタイミングチャートである。
【発明を実施するための形態】
【0020】
本発明の実施形態に係る再標本化装置について、図面を参照しながら説明する。なお、以下の説明において、同一の構成については同一の名称及び符号を付し、詳細説明を省略する。
【0021】
再標本化装置1は、逐次モンテカルロ法によるモデルのパラメータを推定する際に用いられる複数の仮説を、それらの仮説に対応した尤度値に従って再標本化するものである。ここで、仮説とは、前記したモデルのパラメータの解の候補のことを意味している。また、尤度値とは、それぞれの仮説の尤もらしさを示す値のことを意味している。
【0022】
再標本化装置1は、例えば映像中における人間の顔の姿勢(位置、向き)をトラッキング(追跡)する場合において、当該映像中における人間の顔の位置(2次元)、大きさ(1次元)、向き(3次元)からなる顔姿勢パラメータ等を推定するためのパラメータ推定装置の内部に組み込まれて用いられる。このパラメータ推定装置は、まず前記した顔姿勢パラメータの複数の仮説を作成し、各仮説について、現在のフレームの画像に対して当該仮説がどの程度尤もらしいかの評価(尤度評価)を行う。そして、パラメータ推定装置は、各仮説の尤度を用いて最終的な姿勢パラメータ推定を行う。再標本化装置1は、このようなパラメータ推定装置において、前記した尤度に従って仮説の再標本化を行い、寄与の少ない仮説を省く処理を行う。
【0023】
再標本化装置1は、ここでは図1に示すように、シフトレジスタ10と、加算手段12と、一様乱数発生手段13と、比較手段14と、プライオリティエンコーダ15と、計数手段16と、マトリックス制御手段17と、マトリックススイッチ18と、を備えている。そして、再標本化装置1は、図1に示すように、図示しない外部の仮説(粒子)生成手段からマトリックススイッチ18に入力される複数の仮説(粒子)1〜Hを、図示しない外部の尤度評価手段から加算手段12に入力される複数の尤度値と、一様乱数発生手段13によって生成される一様乱数と、に基づいて複数の仮説(粒子)1〜Kに再標本化する。なお、再標本化装置1が備えるシフトレジスタ10および加算手段12は、後記するように、外部から入力される尤度値から累積尤度値を算出するための累積尤度値算出手段として機能する。また、前記した「H」および「K」は、2以上の整数を意味しており、同数であっても同数でなくてもどちらでも構わない。
【0024】
シフトレジスタ10は、予め定められたクロックに同期して、データを内部でシフトさせながら保持するものである。シフトレジスタ10は、具体的には図1に示すように、加算手段12から順次入力される複数の累積尤度値のそれぞれを保持し、後記する複数の比較手段14に対して、それぞれの累積尤度値を同時に出力する。シフトレジスタ10は、図1に示すように、複数の遅延手段11−1,11−2,11−3,・・・,11−Hから構成される。すなわち、シフトレジスタ10は、図1に示すように、遅延手段がH段分カスケード接続されて構成される。
【0025】
シフトレジスタ10には、図1に示すように、クロックφのタイミングで、加算手段12から累積尤度値が順次入力される。この累積尤度値は、図示しない外部の尤度評価手段から順次入力される尤度値が順次加算されたものであり、後に入力されるものほど値が大きくなる。そして、シフトレジスタ10は、図1に示すように、順次入力される累積尤度値を遅延手段11−H、・・・、遅延手段11−3、遅延手段11−2、遅延手段11−1、の順序で上方向に順次シフトさせ、遅延手段11−1,11−2,11−3,・・・,11−Hのそれぞれに累積尤度値を保持させる。なお、以下の説明では、複数の遅延手段11−1,11−2,11−3,・・・,11−Hを包括して、「遅延手段11−h(hは1以上H以下の整数)」と表記する場合がある。
【0026】
遅延手段11−hは、入力された数値をクロック入力のタイミングで保持するとともに、当該数値をリセット入力のタイミングで破棄するものである。なお、遅延手段11−hが保持または破棄する数値は、整数、固定小数点、または浮動小数点のいずれであっても構わない。遅延手段11−hは、具体的には図1に示すように、後記する加算手段12から入力される累積尤度値を、図示しない外部のクロック発生手段から入力されるクロックφのタイミングで保持するとともに、図示しない外部のリセット発生手段から入力されるリセット入力Rのタイミングで破棄して値ゼロを出力する。
【0027】
ここで、累積尤度値とは、前記したように、図示しない外部の尤度評価手段から入力される複数の尤度値を加算したものである。例えば、再標本化装置1の加算手段12に対して、尤度値L、尤度値L、尤度値Lおよび尤度値Lがこの順番で入力される場合、これらの尤度値が入力される度に、後記する加算手段12によって累積尤度値A(=L)、累積尤度値A(=L+L)、累積尤度値A(=L+L+L)および累積尤度値A(=L+L+L+L))が順次算出され、遅延手段11−h(ここではh=4)に順次入力される。このように、累積尤度値は、加算手段によって、図示しない外部の尤度評価手段から入力される尤度値の数と同じ数だけ算出され、遅延手段11−hに順次入力される。
【0028】
遅延手段11−hは、具体的には図2に示すように、リセット入力付きのD(Delay)フリップフロップによって実現することができる。ここで、遅延手段11−hの上下方向の段数は、図1に示すように、再標本化装置1に入力される尤度値(または粒子)の数Hに対応している。すなわち、遅延手段11−hは、例えば再標本化装置1に入力される尤度値の個数Hが4つである場合、上下方向に少なくとも4段配置される。
【0029】
また、遅延手段11−hの左右方向の段数は、再標本化装置1に入力される尤度値の個数Hと尤度値の範囲(例えば尤度値を2進数で表わした場合のビット数)とに対応している。すなわち、遅延手段11−hは、例えば2進数の数値が入力される場合において、再標本化装置1に入力される尤度値の個数Hが4つであり、それぞれの尤度値の範囲が0以上255以下(つまり2進数で8ビット以下)である場合、左右方向に少なくとも10段配置される。これは、例えば再標本化装置1の加算手段12に対して、4回とも尤度値「255」が入力され、当該加算手段12から遅延手段11−hに対して、累積尤度値「1020(つまり2進数で10ビット)」が入力された場合であっても、桁があふれないようにするためである。
【0030】
遅延手段11−hには、図1に示すように、後記する加算手段12から、クロックφに同期して累積尤度値A,A,A,・・・,Aが順次入力される。そして、遅延手段11−hは、当該クロックφの立ち上がりエッジのタイミングで、最下段の遅延手段11−Hから最上段の遅延手段11−1に向かって、累積尤度値A,A,A,・・・,Aを一段ずつ順次シフトさせて保持させる。そして、遅延手段11−hは、比較手段14−1,14−2,・・・,14−(H−1)に対して、累積尤度値A,A,A,・・・を同時に出力し、一様乱数発生手段13に対して、最大の累積尤度値Aを出力する。なお、以下の説明では、複数の累積尤度値A,A,A,・・・,Aを包括して、「累積尤度値A(hは1以上H以下の整数)」と表記する場合がある。
【0031】
加算手段12は、入力された数値を加算するものである。なお、加算手段12が加算する2つの数値は、整数、固定小数点、または浮動小数点のいずれであっても構わない。加算手段12には、図1に示すように、図示しない外部の尤度評価手段から、クロックφに同期して尤度値L,L,L,・・・,Lが順次入力されるとともに、シフトレジスタ10の最下段に配置された遅延手段11−Hから、クロックφに同期して累積尤度値が順次入力される。ここで、尤度値L,L,L,・・・,Lは、後記するマトリックススイッチ18に入力される、再標本化をしようとする複数の仮説(粒子)1〜Hに対応したものである。
【0032】
そして、加算手段12は、両者を加算することでさらに累積尤度値を算出し、これを遅延手段11−Hに出力する。すなわち、加算手段12は、尤度値L,L,L,・・・,Lが入力される度に、当該尤度値L,L,L,・・・,Lが入力された時点における累積尤度値を算出し、当該累積尤度値を遅延手段11−Hに出力する。なお、以下の説明では、複数の尤度値L,L,L,・・・,Lを包括して、「尤度値L(hは1以上H以下の整数)」と表記する場合がある。
【0033】
加算手段12は、入力された2つの数値が整数または固定小数点による2進数で表現されている場合には、例えば半加算器1個以上および全加算器0個以上によって実現することができる。但し、加算手段12の具体的構成は、図示しない外部の尤度評価手段から入力される尤度値Lの値の範囲によって異なる。例えば、加算手段12に入力される一方の値、すなわち図示しない外部の尤度評価手段から入力される尤度値Lの範囲が0以上M以下の整数値である場合、加算手段12に入力される他方の値、すなわち遅延手段11−Hから入力される累積尤度値は、0以上M×(H−1)以下の整数値となる。従って、この場合、以下の式(1)によって加算手段12を構成する最小限の半加算器の数を算出することができるとともに、以下の式(2)によって加算手段12を構成する最小限の全加算器の数を算出することができる。
【0034】
【数1】

【0035】
【数2】

【0036】
加算手段12は、例えば図示しない外部の尤度評価手段から入力される尤度値Lの範囲が0以上255以下であり、シフトレジスタ10の段数H、すなわち再標本化装置1に入力される尤度値の個数Hが8個である場合、図3に示すように、少なくとも半加算器5個と全加算器7個とで構成することができる。ここで、図3において、A,B,SおよびCの端子を有するブロックは、半加算器を表わしており、A,B,X,SおよびCの端子を有するブロックは、全加算器を示している。そして、図3における半加算器および全加算器の端子の記号は、AおよびBが被加算器入力、Xがキャリー入力、Sが加算結果出力、Cがキャリー出力を表わしている。
【0037】
再標本化装置1では、シフトレジスタ10および加算手段12、すなわち累積尤度値算出手段を前記したように構成することで、最上段の遅延手段11−1から最下段の遅延手段11−Hに向かって、それぞれ累積尤度値Aが現れる。すなわち、再標本化装置1では、外部の図示しない尤度評価手段から加算手段12に対して尤度列(尤度値L,L,L,・・・,L)が入力されると、遅延手段11−hから累積尤度列(累積尤度値A,A,A,・・・,A)が出力される。
【0038】
以下、遅延手段11−hおよび加算手段12の動作について、図4を参照しながら簡単に説明する。なお、以下では、再標本化装置1に入力される尤度値Lの個数Hを4個(つまり遅延手段11−hの段数Hを4段)とした場合について説明する。また、図4のタイミングチャートにおいて途切れている箇所は、途中の動作を省略していることを示している。
【0039】
まず、加算手段12は、1回目のクロックφの立ち上がりエッジのタイミングで外部から尤度値Lが入力されると、これを累積尤度値Aとして遅延手段11−hの最下段(説明の便宜上、「遅延手段11−4」とする)に出力する。すると、遅延手段11−4は、加算手段12から入力された累積尤度値A(=尤度値L)を保持する。
【0040】
次に、加算手段12は、2回目のクロックφの立ち上がりエッジのタイミングで外部から尤度値Lが入力されるとともに、遅延手段11−4から累積尤度値A(=尤度値L)が入力されると、両者を加算して累積尤度値A(=尤度値L+L)を算出し、これを遅延手段11−4に出力する。すると、遅延手段11−4は、前記した累積尤度値A(=尤度値L)を上段の遅延手段11−3へとシフトさせ、加算手段12から入力された累積尤度値A(=尤度値L+L)を保持する。
【0041】
次に、加算手段12は、3回目のクロックφの立ち上がりエッジのタイミングで外部から尤度値Lが入力されるとともに、遅延手段11−4から累積尤度値A(=尤度値L+L)が入力されると、両者を加算して累積尤度値A(=尤度値L+L+L)を算出し、これを遅延手段11−4に出力する。すると、遅延手段11−4は、前記した累積尤度値A(=尤度値L+L)を上段の遅延手段11−3へとシフトさせ、加算手段12から入力された累積尤度値A(=尤度値L+L+L)を保持する。また、遅延手段11−3は、前記した累積尤度値A(=尤度値L)を上段の遅延手段11−2へとシフトさせ、遅延手段11−4から入力された累積尤度値A(=尤度値L+L)を保持する。
【0042】
次に、加算手段12は、4回目のクロックφの立ち上がりエッジのタイミングで外部から尤度値Lが入力されるとともに、遅延手段11−4から累積尤度値A(=尤度値L+L+L)が入力されると、両者を加算して累積尤度値A(=尤度値L+L+L+L)を算出し、これを遅延手段11−4に出力する。すると、遅延手段11−4は、前記した累積尤度値A(=尤度値L+L+L)を上段の遅延手段11−3へとシフトさせ、加算手段12から入力された累積尤度値A(=尤度値L+L+L+L)を保持する。また、遅延手段11−3は、前記した累積尤度値A(=尤度値L+L)を上段の遅延手段11−2へとシフトさせ、遅延手段11−4から入力された累積尤度値A(=尤度値L+L+L)を保持する。また、遅延手段11−2は、前記した累積尤度値A(=尤度値L)を上段の遅延手段11−1へとシフトさせ、遅延手段11−3から入力された累積尤度値A(=尤度値L+L)を保持する。
【0043】
以上のような動作により、累積尤度算手段は、クロックφに同期して、加算手段12によって尤度値L,L,L,Lの数に対応する累積尤度値A,A,A,Aを算出し、遅延手段11−1,11−2,11−3,11−4によって累積尤度値A,A,A,Aをそれぞれ保持する。そして、クロックφに同期して、遅延手段11−4は、一様乱数発生手段13に対して累積尤度値Aを出力するとともに、遅延手段11−1,11−2,11−3は、複数の比較手段14に対して累積尤度値A,A,Aを出力する。以下、再標本化装置1の残りの構成について説明する。
【0044】
一様乱数発生手段13は、一様乱数を発生させるものである。この一様乱数とは、前記したように、指定区間内で一様と見なすことができる乱数のことを意味している。一様乱数発生手段13は、図1に示すように、一様乱数を所定の時間間隔ごと、すなわちクロックφごとに発生させるとともに、所定の回数、すなわち出力する粒子の数と同じK回発生させる。一様乱数発生手段13には、図1に示すように、シフトレジスタ10の最下段に配置された遅延手段11−Hから累積尤度値Aが入力される。そして、一様乱数発生手段13は、当該累積尤度値Aに基づいて、0以上A未満の範囲の一様乱数を発生させる。すなわち、一様乱数発生手段13は、加算手段12によって算出された最大の累積尤度値A未満の一様乱数を生成する。
【0045】
一様乱数発生手段13は、例えばM系列やPN系列等の擬似乱数発生回路によって発生させた乱数値s(sがとり得る値の最小値は0、最大値はA以上とする)に対して、遅延手段11−Hから入力された累積尤度値Aによる剰余演算を施すことによって実現することができる。従って、一様乱数発生手段13は、具体的には図5に示すように、擬似乱数発生回路20と、シフトレジスタ21と、切替回路22と、ラッチ回路23と、減算回路24と、シフトレジスタ25と、ラッチ回路26と、から構成することができる。
【0046】
擬似乱数発生回路20は、擬似的な乱数を発生させるものである。擬似乱数発生回路20は、前記したように、例えばM系列やPN系列の乱数発生回路によって構成することができ、ここでは図5に示すように、シフトレジスタ21に排他的論理和ゲートを3個接続した周期65535のM系列発生回路で構成されている。
【0047】
一様乱数発生手段13の残りの構成であるシフトレジスタ21、切替回路22、ラッチ回路23、減算回路24およびシフトレジスタ25は、前記した累積尤度値Aによる剰余演算を施すための剰余演算回路を構成するものである。これらの構成はそれぞれ一般的なものであるため、詳細な説明は省略する。
【0048】
以下、一様乱数発生手段13の動作について、図6を参照(適宜図5も参照)しながら簡単に説明する。また、図6のタイミングチャートにおいて途切れている箇所は、途中の動作を省略していることを示している。
【0049】
まず、一様乱数発生手段13は、図6に示すように、クロックφによって擬似乱数発生回路20の擬似乱数の乱数値sを更新する。次に、一様乱数発生手段13は、図6に示すように、制御信号cをローレベルにすることで、切替回路22のスイッチ群を擬似乱数発生回路20側に倒しつつ、シフトレジスタ25をクリアする。次に、一様乱数発生手段13は、図6に示すように、クロックφに1番目の正のパルスを与え、ラッチ回路23に擬似乱数発生回路20が発生させた擬似乱数の乱数値sをラッチする。次に、一様乱数発生手段13は、図6に示すように、制御信号cをローレベルとした状態で、クロックφに1番目の正のパルスを与え、H番目の累積尤度値出力の値(シフトレジスタ10の最下段の遅延手段11−Hから出力される累積尤度値A)をシフトレジスタ25にセットし、その後、制御信号cをハイレベルにする。
【0050】
次に、一様乱数発生手段13は、図6に示すように、クロックφとクロックφについて、2番目ないし(ビット幅−1)番目(図5の例では15番目)まで、交互に正のパルスを与える(但し、クロックφをクロックφに先行させる)。これにより、擬似乱数の乱数値sから引き得る最大の「Aの整数倍」を引いた結果(すなわち、sをAで除した際の剰余(R=s%A))が減算回路24の出力に現れる。そして、一様乱数発生手段13は、図6に示すように、最後にクロックφに正のパルスを与えることで、0以上A未満の整数の一様乱数R(以下、単に乱数Rという)をラッチ回路26にラッチし、乱数出力を得る。このように、一様乱数発生手段13はクロックφごとに乱数Rを発生させ、図1に示すように、その都度当該乱数Rを複数の比較手段14に対して出力する。
【0051】
なお、図6のタイミングチャートにおける「AH−1が乱数Rの最大値となる」とは、後記する比較手段14において、累積尤度値と比較される乱数Rの最大値が実質的にAH−1であることを示している。すなわち、一様乱数発生手段13は、前記したように0以上A未満の乱数Rを発生させることができるが、図1に示すように、比較手段14にはシフトレジスタ10の最下段に配置された遅延手段11−Hから累積尤度値Aが入力されない。そのため、仮に一様乱数発生手段13によってAH−1超えA以下の乱数Rが生成され、当該乱数Rが比較手段14に入力されると、後記する比較結果Dの値が必ず0となる。従って、図6のタイミングチャートにおける「AH−1が乱数Rの最大値となる」とは、乱数Rの実質的な最大値がAH−1であることを示している。
【0052】
比較手段14は、入力された2つの数値の大小を比較するものである。比較手段14は、図1に示すように、複数の比較手段14−1,14−2,・・・,14−(H−1)から構成される。すなわち、比較手段14は、図1に示すように、比較手段が、シフトレジスタ10を構成する遅延手段の段数Hよりも1個少ないがH−1段分カスケード接続されて構成される。
【0053】
複数の比較手段14には、図1に示すように、遅延手段11−Hを除く遅延手段11−hから、累積尤度値Aがそれぞれ同時に入力されるとともに、一様乱数発生手段13から乱数Rがそれぞれ同時に入力される。そして、比較手段14は、前記した一様乱数発生手段13によって一様乱数Rが生成されて入力される度に、以下の式(3)に示すように、累積尤度値Aと乱数Rとの大小を比較し、その比較結果Dをプライオリティエンコーダ15に出力する。すなわち、比較手段14は、以下の式(3)に示すように、累積尤度値Aが乱数Rより大きい場合は「比較結果D=0」を出力し、累積尤度値Aが乱数R以下である場合は「比較結果D=1」を出力する。
【0054】
【数3】

【0055】
ここで、「比較結果Dを出力する」とは、例えば再標本化装置1の加算手段12にH個の尤度値L,L,L,・・・,Lが入力された場合に、比較手段14が、入力された尤度値Lよりも1個少ないH−1個の比較結果D,D,D,・・・,DH−1をプライオリティエンコーダ15に対して出力することを示している。なお、前記した式(3)において、Dの値「0」はローレベルと読み替え、Dの値「1」はハイレベルと読み替えても構わない。
【0056】
例えば、再標本化装置1の加算手段12に入力される尤度値Lの個数Hが4つ(つまり遅延手段11−hの段数Hが4段)である場合、比較手段14−1には、遅延手段11−1から累積尤度値Aが入力され、比較手段14−2には、遅延手段11−2から累積尤度値Aが入力される。そして、比較手段14の最下段(説明の便宜上、「比較手段14−3」とする)には、最下段の遅延手段11−3から累積尤度値Aが入力される。また同時に、比較手段14−1,14−2,14−3には、クロックφに同期して乱数Rがそれぞれ入力される。
【0057】
そして、比較手段14−1は、累積尤度値Aと乱数Rとの比較結果Dをプライオリティエンコーダ15に出力し、比較手段14−2は、累積尤度値Aと乱数Rとの比較結果Dをプライオリティエンコーダ15に出力し、比較手段14−3は、累積尤度値Aと乱数Rとの比較結果Dをプライオリティエンコーダ15に出力する。このように、再標本化装置1の加算手段12に4つの尤度値L,L,L,Lが入力されると、プライオリティエンコーダ15には、3つの比較結果D,D,Dが同時に入力されることになる。
【0058】
比較手段14は、例えば累積尤度値Aと乱数Rとの差分を演算する減算回路として実装し、R−Aを演算した結果として現れる最上位ビットのボローフラグを比較結果Dとすることができる。
【0059】
プライオリティエンコーダ15は、優先順位の最も高い入力に対応するコードを出力するものである。プライオリティエンコーダ15には、具体的には図1に示すように、複数の比較手段14−1,14−2,・・・,14−(H−1)のそれぞれから比較結果Dが入力される。この比較結果Dは、前記した式(3)に示すように、0または1の数値(フラグ)から構成されるものである。そして、プライオリティエンコーダ15は、複数の比較手段14−1,14−2,・・・,14−(H−1)から入力される複数の比較結果Dのうち、D=1(乱数R以下であると判定された比較結果)となるものを選出し、値が1である比較結果Dのうちの最大の「h」を選択する。なお、全てのhについてD=0の場合には、最大の「h」は0であったものとみなす。
【0060】
ここで、前記した「複数の比較結果Dのうち、D=1(乱数R以下であると判定された比較結果)となるものを選出し、値が1である比較結果Dのうちの最大の「h」を選択する」とは、言い換えれば、複数の比較手段14−1,14−2,・・・,14−(H−1)によって乱数R以下であると判定された累積尤度値Aとなるものを選出し、これらの累積尤度値Aの中から、最大の累積尤度値Aを選択するとともに、当該累積尤度値Aのインデックス(下付き数字)である「h」を選択するという処理のことを意味している。
【0061】
そして、プライオリティエンコーダ15は、選択したhに1を加えた(h+1)を標本点Pとしてマトリックス制御手段17に出力する。ここで、標本点Pとは、言い換えれば、前記した最大の累積尤度値Aが算出される際に加算手段12(累積尤度値算出手段)に入力された尤度値Lに対応する仮説を示すコードのことを意味している。なお、プライオリティエンコーダ15は、前記した複数の比較手段14−1,14−2,・・・,14−(H−1)から比較結果Dが入力される度に、コード(標本点P)を生成し、これをマトリックス制御手段17に出力する。
【0062】
例えば、再標本化装置1に入力される尤度値Lの個数Hが4つ(つまり遅延手段11−hの段数Hが4段)である場合、プライオリティエンコーダ15には、比較手段14−1から比較結果Dが、比較手段14−1から比較結果Dが、比較手段14の最下段(説明の便宜上、「比較手段14−3」とする)から比較結果Dが入力される。そして、例えばこれらの比較結果D,D,Dの値がそれぞれ「D=1,D=1,D=0」である場合、プライオリティエンコーダ15は、値が1である比較結果D,Dのうちの最大の「h」(インデックス、下付き数字)である「2」を選出し、当該「2」に1を加えた「3」のコード(標本点P)をマトリックス制御手段17に出力する。
【0063】
ここで、プライオリティエンコーダ15が生成する標本点Pは、再標本化の対象となる仮説を示している。従って、前記した例において、プライオリティエンコーダ15によって値が1である比較結果D,Dのうちの最大の「h」に1を加えた「3」を選出するという処理は、比較手段14−3によって乱数R以下であると判定された累積尤度値A,Aの中で最も大きい累積尤度値Aを選択した後に、当該累積尤度値Aよりも一段階大きい累積尤度値Aを選択し、当該累積尤度値Aが算出される際に加算手段12に入力された尤度値Lに対応する仮説を選出するという処理に相当することになる。
【0064】
以上の処理により、比較手段14の比較結果Dのうち、1(ハイレベル)のビットが立つ「h」である標本点Pは、近似的に一様な乱数Rを累積尤度関数の逆関数に代入した結果に近似することになる。すなわち、標本点Pは、累積尤度関数に近似的に比例する確率で生起することになる。
【0065】
計数手段16は、クロックφのタイミングで1〜Kまで計数するカウンタである。このKは、図1に示すように、再標本化後の粒子の数(自然数)であり、予め任意の数で設定される。計数手段16は、例えばバイナリカウンタを用いることができ、図1に示すように、クロックφに同期して、そのカウント値kをマトリックス制御手段17に出力する。
【0066】
マトリックス制御手段17は、プライオリティエンコーダ15から入力される標本点P(コード)と、計数手段16から入力されるカウント値kと、に基づいてマトリックススイッチ18の接点の継断を制御するものである。マトリックス制御手段17は、具体的には図1に示すように、プライオリティエンコーダ15から標本点Pが、計数手段16からカウント値kが、それぞれ入力されると、P番目の入力(図1では行)とk番目の出力(図1では列)との接点を閉じ、P番目以外の入力(図1では行)とk番目の出力(図1では列)との接点を開放するような接点制御信号を生成し、これをマトリックススイッチ18に出力する。これにより、マトリックス制御手段17は、図1に示すように、1番目〜K番目の各粒子(仮説)の出力を、1番目〜H番目の粒子の入力の中の1つの入力に接続することができ、その結果として、マトリックススイッチ18に入力されたH個の粒子を再標本化後のK個の粒子に写像して出力することができる。
【0067】
マトリックススイッチ18は、スイッチング操作によって、外部から入力される複数の仮説(粒子)を複数の仮説(粒子)に再標本化するものである。マトリックススイッチ18は、図1に示すように、碁盤状に接点が配置されており、マトリックス制御手段17から入力される接点制御信号に従って、これらの接点を閉鎖または開放するように構成されている。また、マトリックススイッチ18が備える接点は、図1に示すように、外部から入力される再標本化前の複数の仮説(粒子)1〜Hと、外部に出力する再標本化後の複数の仮説(粒子)1〜Kと、に対応している。このマトリックススイッチ18は、例えばCMOS(Complementary Metal Oxide Semiconductor)によるスイッチで実現することができる。
【0068】
マトリックススイッチ18には、図1に示すように、図示しない外部の仮説(粒子)生成手段から、再標本化前の複数の仮説(粒子)1〜Hが入力され、マトリックス制御手段17から、接点制御信号が入力される。この接点制御信号には、プライオリティエンコーダ15によって生成された標本点P(コード)と、計数手段16によって計数されたカウント値kに関する情報が含まれている。そして、マトリックススイッチ18は、当該接点制御信号に基づいて図1に示す接点を制御することで、再標本化後の複数の仮説(粒子)1〜Kを出力する。このような処理によって、マトリックススイッチ18における粒子入力と粒子出力の関係が、再標本化前の粒子と再標本化後の粒子の関係となる。すなわち、マトリックススイッチ18に複数の粒子の状態量(複数の仮説1〜H)を入力すると、即座に再標本化が実行され、再標本化後の複数の粒子の状態量(複数の仮説1〜K)が出力されることになる。
【0069】
以上のような構成を備える再標本化装置1は、累積尤度値算出手段(加算手段12およびシフトレジスタ10)、一様乱数発生手段13、複数の比較手段14およびプライオリティエンコーダ15における一連の処理によって、再標本化の対象となる複数の仮説を決定する。そして、マトリックススイッチ18に複数の仮説が入力されると、当該マトリックススイッチ18から、前記した一連の処理によって決定された再標本化後の複数の仮説が一度に出力されることになる。従って、再標本化装置1によれば、複数の仮説(粒子)をメモリに記憶する必要がないため、メモリのランダムアクセスが発生することがない。また、再標本化装置1によれば、マトリックススイッチ18に標本化前の複数の仮説を入力すると、再標本化後の複数の仮説が一度に出力されるという並列的なスイッチング操作を実現することができる。
【0070】
従って、再標本化装置1によれば、論理回路や順序回路を用いてハードウェア処理を行うことで、仮説(粒子)をメモリに記憶する必要がなく、かつ、複数の仮説(粒子)を一度に再標本化することができるため、メモリのランダムアクセスを避けつつ、並列的なスイッチング操作によって高速な再標本化を実現することができる。また、再標本化装置1によれば、状態空間が高次である場合であっても、並列的に処理を行うことができるため、粒子数が少ない場合において、次元数に関わらず高速に再標本化を行うことができる。
【0071】
以上、本発明に係る再標本化装置について、発明を実施するための形態により具体的に説明したが、本発明の趣旨はこれらの記載に限定されるものではなく、特許請求の範囲の記載に基づいて広く解釈されなければならない。また、これらの記載に基づいて種々変更、改変等したものも本発明の趣旨に含まれることはいうまでもない。
【符号の説明】
【0072】
1 再標本化装置
10 シフトレジスタ
11−1,11−2,11−3,11−H,11−h 遅延手段
12 加算手段
13 一様乱数発生手段
14,14−1,14−2,14−(H−1) 比較手段
15 プライオリティエンコーダ
16 計数手段
17 マトリックス制御手段
18 マトリックススイッチ
20 擬似乱数発生回路
21 シフトレジスタ
22 切替回路
23 ラッチ回路
24 減算回路
25 シフトレジスタ
26 ラッチ回路

【特許請求の範囲】
【請求項1】
逐次モンテカルロ法によりモデルのパラメータを推定する際に用いられる当該パラメータの解の候補である複数の仮説を、当該仮説の尤もらしさを示す尤度値に従って再標本化する再標本化装置であって、
前記複数の仮説に対応した前記尤度値が順次入力され、当該尤度値が入力された時点における累積尤度値を、当該尤度値が入力される度に算出する累積尤度値算出手段と、
前記累積値尤度値算出手段によって算出された最大の累積尤度値未満の一様乱数を、所定の時間間隔で所定の回数だけ生成する一様乱数発生手段と、
前記累積尤度値算出手段によって算出された複数の前記累積尤度値のそれぞれと、前記一様乱数発生手段によって生成された前記一様乱数とを、当該一様乱数が生成される度に比較する複数の比較手段と、
前記複数の比較手段によって前記一様乱数以下であると判定された前記累積尤度値の中から最大の累積尤度値を選択し、当該最大の累積尤度値が算出される際に前記累積尤度値算出手段に入力された前記尤度値に対応する仮説を示すコードを、前記複数の比較手段から比較結果が入力される度に生成するプライオリティエンコーダと、
前記複数の仮説が入力されるとともに、当該複数の仮説に対応した複数の接点を備え、前記プライオリティエンコーダによって生成された複数の前記コードが示す複数の仮説に対応する前記接点を制御することで、再標本化された複数の仮説を出力するマトリックススイッチと、
を備えることを特徴とする再標本化装置。
【請求項2】
前記累積尤度算出手段は、
前記複数の仮説に対応した前記複数の尤度値が順次入力され、当該複数の尤度値を順次加算することで、入力された前記尤度値の数に対応する複数の前記累積尤度値を算出する加算手段と、
前記加算手段から前記累積尤度値が順次入力され、前記複数の比較手段に対して、複数の前記累積尤度値を同時に出力するシフトレジスタと、
を備えることを特徴とする請求項1に記載の再標本化装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−92895(P2013−92895A)
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2011−234314(P2011−234314)
【出願日】平成23年10月25日(2011.10.25)
【出願人】(000004352)日本放送協会 (2,206)