(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024077644
(43)【公開日】2024-06-10
(54)【発明の名称】データ処理装置、プログラム及びデータ処理方法
(51)【国際特許分類】
G06N 99/00 20190101AFI20240603BHJP
【FI】
G06N99/00 180
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022189711
(22)【出願日】2022-11-29
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】此島 眞喜子
(72)【発明者】
【氏名】田村 泰孝
(72)【発明者】
【氏名】大久保 潤
(57)【要約】
【課題】複数の連続変数を含む評価関数をイジング型の評価関数に変換する際のビット数を削減する。
【解決手段】記憶部11は、組合せ最適化問題を定式化した、複数の連続変数を含む第1評価関数の情報を記憶し、探索部12は、組合せ最適化問題の解を、複数の2値変数を含むイジング型の第2評価関数を用いて探索し、処理部13は、記憶部11から取得した上記の情報に基づいて、複数の連続変数に含まれる連続変数対の相関の大きさを検出し、複数の連続変数のそれぞれに1または複数の2値変数を割り当てる際に、相関が大きいほど、連続変数対に多くの共通の2値変数を割り当て、複数の連続変数のそれぞれと割り当てられた2値変数との対応関係を表す対応情報を生成し、対応情報に基づいて、第1評価関数を第2評価関数に変換し、第2評価関数の係数情報を探索部12に設定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
組合せ最適化問題を定式化した、複数の連続変数を含む第1評価関数の情報を記憶する記憶部と、
前記組合せ最適化問題の解を、複数の2値変数を含むイジング型の第2評価関数を用いて探索する探索部と、
前記情報を前記記憶部から取得し、前記情報に基づいて、前記複数の連続変数に含まれる連続変数対の相関の大きさを検出し、前記複数の連続変数のそれぞれに1または複数の2値変数を割り当てる際に、前記相関が大きいほど、前記連続変数対に多くの共通の2値変数を割り当て、前記複数の連続変数のそれぞれと割り当てられた2値変数との対応関係を表す対応情報を生成し、前記対応情報に基づいて、前記第1評価関数を前記第2評価関数に変換し、前記第2評価関数の係数情報を前記探索部に設定する、処理部と、
を有するデータ処理装置。
【請求項2】
前記情報は、前記複数の連続変数のうち、第1の連続変数と第2の連続変数の間の重み係数を含み、
前記処理部は、前記重み係数を、前記第1の連続変数と前記第2の連続変数による前記連続変数対の前記相関の大きさとして検出する、
請求項1に記載のデータ処理装置。
【請求項3】
前記情報は、前記複数の連続変数のうち、第1の連続変数と第2の連続変数の間の重み係数と、前記第1の連続変数に対する第1のバイアス係数と、前記第2の連続変数に対する第2のバイアス係数と、を含み、
前記処理部は、前記重み係数と前記第1のバイアス係数と前記第2のバイアス係数との和を、前記第1の連続変数と前記第2の連続変数による前記連続変数対の前記相関の大きさとして検出する、
請求項1に記載のデータ処理装置。
【請求項4】
前記処理部は、前記情報に基づいて行われる、所定期間のマルコフ連鎖モンテカルロ法による探索で得られる前記複数の連続変数の値の時間変化を示す時系列情報に基づいて、前記相関の大きさを検出する、
請求項1に記載のデータ処理装置。
【請求項5】
前記処理部は、前記探索部が出力する前記複数の2値変数の値で表される第1の解を取得し、前記第1の解を、前記対応情報に基づいて、前記複数の連続変数の値で表される第2の解に変換する、
請求項1に記載のデータ処理装置。
【請求項6】
組合せ最適化問題を定式化した、複数の連続変数を含む第1評価関数の情報を記憶部から取得し、
前記情報に基づいて、前記複数の連続変数に含まれる連続変数対の相関の大きさを検出し、
前記複数の連続変数のそれぞれに1または複数の2値変数を割り当てる際に、前記相関が大きいほど、前記連続変数対に多くの共通の2値変数を割り当て、前記複数の連続変数のそれぞれと割り当てられた2値変数との対応関係を表す対応情報を生成し、
前記対応情報に基づいて、前記第1評価関数を、複数の2値変数を含むイジング型の第2評価関数に変換し、
前記第2評価関数の係数情報を、前記第2評価関数を用いて前記組合せ最適化問題の解を探索する探索部に設定する、
処理をコンピュータに実行させるプログラム。
【請求項7】
記憶部が、組合せ最適化問題を定式化した、複数の連続変数を含む第1評価関数の情報を記憶し、
探索部が、前記組合せ最適化問題の解を、複数の2値変数を含むイジング型の第2評価関数を用いて探索し、
処理部が、
前記情報を前記記憶部から取得し、
前記情報に基づいて、前記複数の連続変数に含まれる連続変数対の相関の大きさを検出し、
前記複数の連続変数のそれぞれに1または複数の2値変数を割り当てる際に、前記相関が大きいほど、前記連続変数対に多くの共通の2値変数を割り当て、前記複数の連続変数のそれぞれと割り当てられた2値変数との対応関係を表す対応情報を生成し、
前記対応情報に基づいて、前記第1評価関数を前記第2評価関数に変換し、
前記第2評価関数の係数情報を前記探索部に設定する、
データ処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置、プログラム及びデータ処理方法に関する。
【背景技術】
【0002】
組合せ最適化問題の解を探索する際に、組合せ最適化問題を、磁性体のスピンの振る舞いを表すイジングモデルに変換する手法がある。そして、マルコフ連鎖モンテカルロ法により、イジング型の評価関数の値(イジングモデルのエネルギーに相当する)が極小になるイジングモデルの状態の探索が行われる。評価関数は、複数の状態変数と複数の重み係数を含む。イジング型の評価関数では、状態変数は、0か1(または-1か+1)の値を取る2値変数である。状態変数はビットと表記されてもよい。評価関数の極小値のうちの最小値になる状態が最適解となる。なお、評価関数の符号を変えれば、評価関数の値が極大になる状態を探索することもできる。
【0003】
以下、マルコフ連鎖モンテカルロ法を、MCMC(Markov-Chain Monte Carlo)法と略す。また、MCMC法による処理をMCMC処理と呼ぶ場合もある。MCMC処理では、たとえば、メトロポリス法またはギブス法で規定される状態遷移の受け入れ確率で、その状態遷移が受け入れられる。MCMC法の一種として、疑似焼き鈍し法やレプリカ交換法がある。
【0004】
ところで、組合せ最適化問題には、連続変数を含む評価関数を用いて定式化されるものもある。このような組み合わせ最適化問題を、イジングモデルに変換して計算できるようにするために、2進展開などにより、連続変数を2値変数に変換する手法があった(たとえば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
2進展開などにより単純に連続変数を離散化して2値変数に変換する場合、連続変数の数や求める精度などによって、2値変数の数(ビット数)が非常に多くなり、問題の規模が増大してしまうという可能性がある。なお、単純に各連続変数に割り当てるビット数を少なくした場合、イジングモデルを用いた解探索後に得られた複数の2値変数の値を再度連続変数に変換する際に、得られる解の精度が落ちてしまう。
【0007】
1つの側面では、本発明は、複数の連続変数を含む評価関数をイジング型の評価関数に変換する際のビット数を削減可能なデータ処理装置、プログラム及びデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
1つの実施態様では、組合せ最適化問題を定式化した、複数の連続変数を含む第1評価関数の情報を記憶する記憶部と、前記組合せ最適化問題の解を、複数の2値変数を含むイジング型の第2評価関数を用いて探索する探索部と、前記情報を前記記憶部から取得し、前記情報に基づいて、前記複数の連続変数に含まれる連続変数対の相関の大きさを検出し、前記複数の連続変数のそれぞれに1または複数の2値変数を割り当てる際に、前記相関が大きいほど、前記連続変数対に多くの共通の2値変数を割り当て、前記複数の連続変数のそれぞれと割り当てられた2値変数との対応関係を表す対応情報を生成し、前記対応情報に基づいて、前記第1評価関数を前記第2評価関数に変換し、前記第2評価関数の係数情報を前記探索部に設定する、処理部と、を有するデータ処理装置が提供される。
【0009】
また、1つの実施態様では、プログラムが提供される。
また、1つの実施態様では、データ処理方法が提供される。
【発明の効果】
【0010】
1つの側面では、本発明は、複数の連続変数を含む評価関数をイジング型の評価関数に変換する際のビット数を削減できる。
【図面の簡単な説明】
【0011】
【
図1】第1の実施の形態のデータ処理装置の一例を示す図である。
【
図2】第2の実施の形態のデータ処理装置のハードウェア例を示す図である。
【
図3】第2の実施の形態のデータ処理装置の機能例を示すブロック図である。
【
図4】相関検出部による相関の大きさの検出処理の一例の流れを示すフローチャートである。
【
図7】ビット割り当て部によるビット割り当て処理の一例の流れを示すフローチャートである。
【
図8】連続変数対の相関の大きさと割り当てビット数との関係の一例を示す図である。
【
図11】評価関数変換部による評価関数変換処理の一例の流れを示すフローチャートである。
【
図13】第3の実施の形態のデータ処理装置の機能例を示すブロック図である。
【
図15】系列情報Dに基づく相関検出処理の一例の流れを示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態のデータ処理装置の一例を示す図である。
【0013】
データ処理装置10は、記憶部11、探索部12、処理部13を有する。
記憶部11は、組合せ最適化問題を定式化した評価関数の情報を記憶する。この評価関数は、複数の連続変数(実数変数ということもできる)を含む。
【0014】
複数の連続変数を含む評価関数F(w)は、たとえば、以下の式(1)で表せる。
【0015】
【0016】
右辺の1項目は、N個の連続変数の全組合せについて、漏れと重複なく、2つの連続変数の値と重み係数(2つの連続変数の間の相互作用の強さを表す)との積を積算したものである。wiは、識別番号がiの連続変数、wjは、識別番号がjの連続変数であり、Aijは、識別番号がiとjの連続変数間の相互作用の大きさを示す重み係数である。右辺の2項目は、各識別番号についてのバイアス係数と連続変数との積の総和を求めたものである。Biは、識別番号=iについてのバイアス係数を示している。
【0017】
組合せ最適化問題の解は、N個の連続変数の値により表される。評価関数の値を最小化する解が、組合せ最適化問題の最適解に対応する。以下、評価関数の値を、エネルギーという。なお、エネルギーを最大化する問題の場合には、評価関数の符号を逆にすればよい。
【0018】
記憶部11が記憶する評価関数の情報には、上記のような重み係数、バイアス係数が含まれる。さらに、記憶部11は、各連続変数の範囲(下限値と上限値)や、連続変数を用いた評価関数をイジング型の評価関数に変換する際の目標ビット数を記憶してもよい。
【0019】
なお、評価関数の係数情報、各連続変数の範囲、目標ビット数は、たとえば、ユーザによる図示しない入力デバイスの操作によって入力され、記憶部11に記憶されてもよい。
記憶部11は、たとえば、DRAM(Dynamic Random Access Memory)などの電子回路である揮発性の記憶装置、または、HDD(Hard Disk Drive)やフラッシュメモリなどの電子回路である不揮発性の記憶装置である。記憶部11は、レジスタなどの電子回路を含んでいてもよい。
【0020】
探索部12は、組合せ最適化問題に対する解を、イジング型の評価関数を用いたMCMC法により探索する。イジング型の評価関数は、0または1の値を取る複数の2値変数を含む。2値変数はビットと表記されてもよい。探索部12が出力する組合せ最適化問題の解は、複数の2値変数の値により表される。評価関数の値を最小化する解が、組合せ最適化問題の最適解に対応する。
【0021】
イジング型の評価関数は、たとえば、式(2)で表せる。
【0022】
【0023】
状態ベクトルxは、複数の2値変数を要素とし、イジングモデルの状態を表す。式(1)は、QUBO(Quadratic Unconstrained Binary Optimization)形式で定式化された評価関数である。なお、エネルギーを最大化する問題の場合には、評価関数の符号を逆にすればよい。
【0024】
式(2)の右辺第1項は、全2値変数から選択可能な2つの2値変数の全組合せについて、漏れと重複なく、2つの2値変数の値と重み係数との積を積算したものである。添え字i,jは2値変数のインデックスである。xiは、i番目の2値変数である。xjは、j番目の2値変数である。以下では、2値変数の数は、目標ビット数=Tであるものとする。Wijは、i番目の2値変数とj番目の2値変数との間の相互作用の大きさを示す重み係数である。Wij=Wjiであり、Wii=0である。2値変数の数(ビット数)がT個の場合、Wijの数はT×T個である。
【0025】
式(2)の右辺第2項は、全2値変数の各々のバイアス係数と2値変数の値との積の総和を求めたものである。biは、i番目の2値変数に対するバイアス係数を示している。
2値変数xiの値が変化して1-xiとなると、2値変数xiの変化量は、Δxi=(1-xi)-xi=1-2xiと表せる。したがって、評価関数H(x)に対して、2値変数xiの変化に伴うエネルギーの変化量(ΔHi)は、以下の式(3)で表せる。
【0026】
【0027】
hiは局所場(LF:Local Field)と呼ばれる。xjの値が変化したときのhiの変化量は、Δhi
(j)=WijΔxjと表される。
解の探索において、エネルギーの変化量がΔHiとなる状態遷移、すなわち、2値変数xiの値の変化を受け入れるか否かを決定するためにメトロポリス法やギブス法が用いられる。具体的には、ある状態から当該状態よりもエネルギーの低い他の状態への遷移を探索する近傍探索において、エネルギーが下がる状態だけでなく、エネルギーが上がる状態への遷移が確率的に受け入れられる。たとえば、ΔHiを生じさせる2値変数の値の変化を受け入れる受入確率Aiは、式(4)で表せる。
【0028】
【0029】
βは温度を表すパラメータであるt(t>0)の逆数(β=1/t)であり、逆温度と呼ばれる。以下、βやtを温度値と呼ぶこともある。min演算子は、引数のうちの最小値を取ることを示す。式(4)の右辺上側はメトロポリス法に相当する。式(4)の右辺下側はギブス法に相当する。
【0030】
疑似焼き鈍し法が行われる場合、たとえば、2値変数の値の変化を受け入れるか否かの判定が所定回数、繰り返されるたび、所定の温度パラメータ変更スケジュールにしたがって、tの値が小さくなっていく。そして、探索部12は、上記判定処理が所定の回数繰り返された場合に得られた状態を、探索結果として出力する。なお、探索部12は、これまでの最小エネルギーとなった場合の状態を保持しておいてもよい。その場合、探索部12は、上記判定処理が所定の回数繰り返された後に記憶されている最小エネルギーに対応する状態を、探索結果として出力してもよい。
【0031】
レプリカ交換法が行われる場合、探索部12は、それぞれ異なるtの値が設定された複数のレプリカのそれぞれにおいて、上記の判定処理を繰り返す。そして、探索部12は、上記判定処理が所定回数繰り返されるごとに、レプリカ交換を行う。たとえば、探索部12は、隣り合うtの値をもつレプリカを2つ選択して、選択された2つのレプリカの間で、レプリカ間のエネルギー差やtの値の差に基づいた所定の交換確率で、各2値変数の値を交換する。なお、2つのレプリカの間で、各2値変数の値の代わりにtの値が交換されてもよい。または、探索部12は、これまでの最小エネルギーとなった場合の状態を保持する。そして、探索部12は、各レプリカにおいて上記判定処理が所定の回数繰り返された後に記憶されている最小エネルギーのうち、全レプリカにおいて最小のエネルギーに対応する状態を、探索結果として出力する。
【0032】
以上のような探索部12は、たとえば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を用いて実現できる。また、探索部12は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのハードウェアであるプロセッサがプログラムを実行することによるソフトウェア処理にて実現することもできる。
【0033】
処理部13は、連続変数を含む評価関数をイジング型の評価関数に変換するために、以下のような処理を行う。
図1には、処理部13による処理の流れが示されている。
ステップS1:処理部13は、連続変数を含む評価関数の情報を、記憶部11から取得する(読み出す)。処理部13は、たとえば、式(1)に示した評価関数の情報として、係数情報(A
ij、B
i)を取得する。
【0034】
ステップS2:処理部13は、取得した情報に基づいて複数の連続変数に含まれる連続変数対の相関の大きさを検出する。処理部13は、たとえば、A
ijを、連続変数対w
i、w
jの相関の大きさとして検出する。なお、バイアス係数であるB
iとB
jが大きいほど、w
i、w
jの値の変化がF(w)に与える影響が大きい。このような影響を考慮して、処理部13は、A
ij+B
i+B
jを、相関の大きさとして検出してもよい。さらに、処理部13は、F(w)について比較的短時間のMCMC法による探索を行い、その結果得られる各連続変数の値の時間変化を示す時系列情報に基づいて、複数の連続変数の間の相関の大きさを検出してもよい(後述の
図13~
図15参照)。
【0035】
ステップS3:処理部13は、複数の連続変数のそれぞれに1または複数の2値変数を割り当てる際に、ビット共通化処理を行う。ビット共通化処理において、処理部13は、相関の大きさに基づいて、連続変数対に共通に割り当てる2値変数を決定する。大きい相関を示す連続変数対ほど、似た値をとりやすい。そのため、処理部13は、大きい相関を示す連続変数対ほど、共通に割り当てる2値変数の数を多くする。
【0036】
図1には、連続変数を2進展開する場合に、連続変数対w
1、w
2に対してビット共通化を行う例が示されている。w
1、w
2は、それぞれ、6つの2値変数で表されている。MSB(Most Significant Bit)のx
1から順にx
2、x
3の3つの2値変数が、w
1、w
2の間で共通化されている。LSB(Least Significant Bit)側の3つの2値変数は共通化されていない。
【0037】
なお、ビット共通化処理の、より具体的な例については後述する。
ステップS4:処理部13は、複数の連続変数のそれぞれと割り当てられた2値変数との対応関係を表す対応情報を生成する。対応情報は、たとえば、後述の行列の式で表すことができる(
図12参照)。対応情報を生成するにあたって、たとえば、記憶部11に記憶されている各連続変数の範囲などが用いられる。
【0038】
ステップS5:処理部13は、生成した対応情報に基づいて、たとえば、式(1)に示したような複数の連続変数を含む評価関数を、式(2)に示したようなイジング型の評価関数に変換する。
【0039】
ステップS6:処理部13は、イジング型の評価関数の係数情報を探索部12に設定する。処理部13は、たとえば、式(2)に示したイジング型の評価関数の係数情報として、Wij、biを、探索部12に設定する。
【0040】
ステップS7:処理部13は、探索部12による探索結果である2値変数による解を取得する。
ステップS8:処理部13は、対応情報に基づいて、2値変数による解を、連続変数による解に変換する。
【0041】
ステップS9:処理部13は、連続変数による解を出力する。たとえば、処理部13は、解を、図示しない表示装置に表示させてもよいし、データ処理装置10の外部の装置に送信してもよい。
【0042】
このような処理を行う処理部13は、たとえば、CPU、GPU、DSPなどのハードウェアであるプロセッサがプログラムを実行することによるソフトウェア処理にて実現することができる。なお、処理部13は、ASICやFPGAなどの電子回路を用いて実現することもできる。
【0043】
以上のように第1の実施の形態のデータ処理装置10は、連続変数による評価関数を2値変数による評価関数に変換する際、連続変数間の相関の大きさに基づいて連続変数間で一部の2値変数を共通化する。これにより、2進展開などにより単純に連続変数を離散化して2値変数に変換する場合よりも、変換後のビット数を削減できる。たとえば、
図1に示した例では、それぞれ6ビットの精度で表されるw1、w2を2値化する場合、それぞれ6つ、合計して12個の2値変数を用いなくてもよい。合計して9つの2値変数があればよい。これにより、探索部12で計算される問題規模を抑えることができる。
【0044】
(第2の実施の形態)
図2は、第2の実施の形態のデータ処理装置のハードウェア例を示す図である。
データ処理装置20は、たとえば、コンピュータであり、プロセッサ21、RAM22、HDD23、GPU24、入力インタフェース25、媒体リーダ26及び通信インタフェース27、アクセラレータカード28を有する。上記ユニットは、バスに接続されている。
【0045】
プロセッサ21は、プログラムの命令を実行する演算回路やキャッシュメモリなどの記憶回路を含む、GPUやCPUなどのプロセッサである。プロセッサ21は、HDD23に記憶されたプログラムやデータの少なくとも一部をRAM22にロードし、プログラムを実行する。なお、プロセッサ21は、複数のプロセッサコアを備えてもよい。また、データ処理装置20は複数のプロセッサを備えてもよい。なお、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
【0046】
RAM22は、プロセッサ21が実行するプログラムやプロセッサ21が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、データ処理装置20は、RAM22以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0047】
HDD23は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、組合せ最適化問題の解を探索する処理をデータ処理装置20に実行させるプログラムが含まれる。なお、データ処理装置20は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【0048】
GPU24は、プロセッサ21からの命令にしたがって、データ処理装置20に接続されたディスプレイ24aに画像(たとえば、組合せ最適化問題の計算結果に関する画像)を出力する。ディスプレイ24aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
【0049】
入力インタフェース25は、データ処理装置20に接続された入力デバイス25aから入力信号を取得し、プロセッサ21に出力する。入力デバイス25aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、データ処理装置20に、複数の種類の入力デバイスが接続されていてもよい。
【0050】
媒体リーダ26は、記録媒体26aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体26aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
【0051】
媒体リーダ26は、たとえば、記録媒体26aから読み取ったプログラムやデータを、RAM22やHDD23などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、プロセッサ21によって実行される。なお、記録媒体26aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体26aやHDD23を、コンピュータ読み取り可能な記録媒体ということがある。
【0052】
通信インタフェース27は、ネットワーク27aに接続され、ネットワーク27aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース27は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
【0053】
アクセラレータカード28は、組合せ最適化問題の解を探索するハードウェアアクセラレータである。アクセラレータカード28は、FPGA28a及びDRAM28bを有する。
【0054】
図3は、第2の実施の形態のデータ処理装置の機能例を示すブロック図である。
データ処理装置20は、入力部30、記憶部31、相関検出部32、ビット割り当て部33、評価関数変換部34、係数情報設定部35、探索部36、解変換部37、出力部38を有する。記憶部31は、たとえば、RAM22またはHDD23に確保した記憶領域を用いて実装できる。入力部30、相関検出部32、ビット割り当て部33、評価関数変換部34、係数情報設定部35、解変換部37、出力部38は、たとえば、プロセッサ21が実行するプログラムモジュールを用いて実装できる。探索部36は、たとえば、アクセラレータカード28を用いて実装できる。なお、探索部36は、プロセッサ21が実行するプログラムモジュールを用いて実装することもできる。
【0055】
入力部30は、式(1)に示したような評価関数F(w)の情報や、連続変数の数(N)、目標ビット数(T)、各連続変数の上限値(αi)と下限値(βi)の入力を受け付ける。たとえば、ユーザによる入力デバイス25aの操作によって、上記の各種情報が入力される。
【0056】
なお、連続変数wiは、αiとβiを用いて以下の式(5)で表せる。
【0057】
【0058】
diは、連続変数wiを表す2値変数の数(ビット数)である。diは、連続変数wiを表す精度であるということもできる。kは、連続変数wiを表す2値変数の識別番号であり、k=1~diである。xi,kは、連続変数wiを表す識別番号=kの2値変数である。δw(k)は、識別番号=kの2値変数に対する重み係数であり、2進展開が行われる場合、以下の式(6)で表せる。
【0059】
【0060】
2進展開でなく、冗長性をもたせて、連続変数を複数の2値変数で表す場合、δw(k)は、単に、δw(k)=1/diと設定することができる。
記憶部31は、入力された各種情報を記憶する。
【0061】
相関検出部32は、F(w)の係数情報を記憶部31から取得し、係数情報に基づいて、連続変数間の相関の大きさを検出する。相関検出部32は、検出した相関の大きさを、後述の相関情報Yとして出力する。
【0062】
ビット割り当て部33は、相関情報Yと、記憶部31から読み出したN、Tに基づいて、各連続変数に2値変数を割り当てる。ビット割り当て部33は、割り当てた結果として、後述の共通化情報Zと、各連続変数のビット数(di)を出力する。
【0063】
評価関数変換部34は、記憶部31から読み出したF(w)の情報とαi及びβi、共通化情報Zとdiに基づいて、複数の連続変数のそれぞれと割り当てられた2値変数との対応関係を表す対応情報Uを生成する。そして評価関数変換部34は、対応情報Uに基づいて、F(w)をH(x)に変換する。
【0064】
係数情報設定部35は、H(x)の係数情報(W
ijやb
i)を探索部36に設定する。
探索部36は、
図1に示した探索部12と同様の処理を行う。すなわち、探索部36は、設定された係数情報に基づいて、たとえば、T個の2値変数を含む評価関数の値を最小にする状態(T個の2値変数の値の組合せ)を、MCMC法により探索する。
【0065】
解変換部37は、評価関数変換部34が生成した対応情報Uに基づいて、2値変数による解を、連続変数による解に変換する。
出力部38は、連続変数による解を出力する。たとえば、出力部38は、解を、図示しない表示装置に表示させてもよいし、データ処理装置20の外部の装置に送信してもよい。
【0066】
(相関検出処理例)
図4は、相関検出部による相関の大きさの検出処理の一例の流れを示すフローチャートである。
【0067】
ステップS10:相関検出部32は、F(w)の係数情報を記憶部31から取得する。F(w)の係数情報には、重み係数(Aij)とバイアス係数(Bi、Bj)がある。
ステップS11:相関検出部32は、N個の連続変数から選択可能な連続変数対のそれぞれに対して、相関の大きさを示すMijを、Mij=Aij+Bi+Bjの式により計算する。
【0068】
ステップS12:相関検出部32は、Mijの計算結果に基づいて、リストL(c)=(i,j,Mij)を作成する。cの初期値は1であり、(i,j,Mij)のデータがリストL(c)に記録されるたびにcはカウントアップされる。同じ連続変数wiに対して、複数の連続変数wjが相関をもつ場合、相関検出部32は、たとえば、Mijが一番大きくなる(i,j,Mij)をリストL(c)に記録する。なお、相関検出部32は、同じ連続変数wiに対して、複数の連続変数wjが相関をもつ場合、たとえば、Mijの大きい順に複数の(i,j,Mij)をリストL(c)に記録してもよい。
【0069】
ステップS13:相関検出部32は、リストL(c)をM
ijの大きい順にソートした相関情報Yを出力し、相関の大きさの検出処理を終える。
図5は、リストL(c)の一例を示す図である。
【0070】
リストL(c)には、(i,j,Mij)が記録されている。たとえば、1行目には、w7とw9の相関の大きさM7,9=10が記録されており、2行目には、w8とw19の相関の大きさM8,19=733が記録されている。最後の行には、w16とw24の相関の大きさM16,24=200が記録されている。作成されたリストL(c)は、記憶部31に記憶されてもよい。
【0071】
図6は、相関情報Yの一例を示す図である。
図6には、
図5に示したリストL(c)において、2行目の相関の大きさが最も大きく、最後の行の相関の大きさが2番目に大きく、1行目の相関の大きさが最も小さいときにソートされて得られる相関情報Yの例が示されている。
【0072】
(ビット割り当て処理例)
図7は、ビット割り当て部によるビット割り当て処理の一例の流れを示すフローチャートである。
【0073】
ステップS20:ビット割り当て部33は、相関検出部32が出力する相関情報Yと、記憶部31に記憶されているN(全連続変数の数)とT(目標ビット数)とを取得する。
ステップS21:ビット割り当て部33は、Nに基づいて、連続変数対の相関の大きさと割り当てビット数との関係を決定する。
【0074】
図8は、連続変数対の相関の大きさと割り当てビット数との関係の一例を示す図である。
図8において、横軸は相関の大きい順(1~N/2)を表し、縦軸は割り当てビット数を表す。
【0075】
dは、1つの連続変数に割り当てる基準のビット数であり、たとえば、T/Nなどと決定される。たとえば、ビット割り当て部33は、相関が最大の連続変数対にd/2ビットを割り当て、相関が最小の連続変数対に2dビットを割り当てるような割り当て関係を決定する。最小と最大の間の相関を示す連続変数対には、たとえば、縦軸をy、横軸をxとしたとき、y=ax+bの直線40にしたがって、ビット数が割り当てられる。勾配aは3d/(N-2)、切片bは(N-8)/(2N-4)である。なお、最小と最大の間の相関を示す連続変数対には、たとえば、指数曲線41または対数曲線42などにしたがって、ビット数が割り当てられてもよい。
【0076】
ステップS22:ビット割り当て部33は、相関情報Yに基づいて、相関の大きさ順に、
図8のように決定した相関の大きさと割り当てビット数との関係にしたがって、連続変数対への割り当てビット数gwmを決定する。さらに、ビット割り当て部33は、N/2の連続変数対のそれぞれにおいて計算されたgwmの総和をKとすると、Kが目標ビット数(T)になるように、各gwmを、gwm×T/Kに調整する。
【0077】
ステップS23:ビット割り当て部33は、各連続変数対に対して、相関の大きさに応じてビット共通化を行う。連続変数を2進展開する場合、共通化させるビットの位置は、
図1に示したようにMSB側である。連続変数を、前述のように、冗長性をもたせて、複数の2値変数で表す場合、共通化させるビットの位置は、MSB側に限定されない。
【0078】
たとえば、ビット割り当て部33は、共通化しないビット数を、少なくともgwmの半分とする。そして、ビット割り当て部33は、
図8に示した相関の大きさの順位をkとしたとき、kが大きくなるほど共通化しないビット数をgwm×(1+0.1k)/2の式にしたがって多くしていく。
【0079】
図9は、ビット共通化の一例を示す図である。
図9には、w
8とw
19による連続変数対に対するビット共通化の例が示されている。MSB側の2gw1ビットが共通化されており、LSB側のgw1ビットが非共通化されている。このため、gwm=2gw1+2gw1=4gw1であり、連続変数対において共通化しないビット数=2gw1は、gwmの1/2となっている。
【0080】
ステップS24:ビット割り当て部33は、ビット共通化の結果に基づいて、共通化情報Zを生成する。
図10は、共通化情報Zの一例を示す図である。
【0081】
図10には、
図9に示したw
8とw
19のそれぞれに対して割り当てられるビットのうち、互いに共通化されるビット数=2gw1と、非共通化されるビット数=gw1が記録されている。図示が省略されているが、他の連続変数対に関しても、gwmと相関の大きさに基づいて、互いに共通化されるビット数と非共通化されるビット数が記録される。
【0082】
ステップS25:ビット割り当て部33は、共通化情報Zと、w
iごとのビット数(d
i)を出力し、ビット割り当て処理を終える。d
iは、共通化されるビット数と、非共通化されるビット数との和であり、
図9に示した共通化情報Zの例ではw
8とw
19のd
iは、2gw1+gw1=3gw1である。
【0083】
(評価関数変換処理例)
図11は、評価関数変換部による評価関数変換処理の一例の流れを示すフローチャートである。
【0084】
ステップS30:評価関数変換部34は、ビット割り当て部33が出力する共通化情報Zとdi、記憶部31に記憶されているF(w)の情報とαi及びβiを取得する。
ステップS31:評価関数変換部34は、取得した各種情報に基づいて、連続変数と2値変数との対応情報Uを生成する。
【0085】
図12は、対応情報Uの一例を示す図である。
対応情報Uは、
図12に示されているような行列の式で表すことができる。共通化情報Zに基づいて、連続変数対で共通化されるビット数分、同じ2値変数が割り当てられる。
図12の例では、w
1、w
2による連続変数対の共通化されるビット数は3ビットであり、非共通化されるビット数も3ビットである。このため、w
1、w
2のそれぞれに2値変数であるx
1、x
2、x
3が共通に割り当てられる。さらに、ビット割り当て部33が出力するw
iごとのビット数(d
i)に基づいて、w
1には、x
4、x
5、x
6が割り当てられ、w
2には、x
7、x
8、x
9が割り当てられる。
【0086】
連続変数と2値変数との対応は、重み係数を用いて表される。たとえば、w1は、w1=x1δ1,1+x2δ1,2+x3δ1,3+x4δ1,4+x5δ1,5+x6δ1,6となる。w2は、w2=x1δ1,1+x2δ1,2+x3δ1,3+x7δ1,4+x8δ1,5+x9δ1,6となる。
【0087】
δ1,1~δ1,6は、重み係数であり、式(6)においてdi=6、k=1~6としたときのδw(k)の値と、αi、βiに基づいて計算できる。
ステップS32:評価関数変換部34は、対応情報Uに基づいて、F(w)をH(x)に変換し、評価関数変換処理を終える。評価関数変換部34は、対応情報Uに表されている、上記のような2値変数と重み係数の積和をF(w)の各連続変数に代入することで、F(w)を、たとえば、式(2)に示したようなH(x)に変換することができる。
【0088】
(その後の処理)
係数情報設定部35は、H(x)の係数情報(W
ijやb
i)を探索部36に設定し、探索部36は、H(x)の値を最小にする状態を、MCMC法により探索する。解変換部37は、評価関数変換部34が生成した対応情報Uに基づいて、2値変数による解を、連続変数による解に変換する。解変換部37は、たとえば、
図12に示したような行列の式で表される対応情報Uの、各2値変数に、探索部36で得られた解の値を代入し、各連続変数の値を計算する。出力部38は、連続変数による解を出力する。
【0089】
以上のような第2の実施の形態のデータ処理装置20によれば、連続変数間の相関の大きさを、F(w)の係数情報を用いて検出できる。そして、相関が大きい連続変数対ほど似た値をとりやすいため、共通化する2値変数の数(ビット数)を多くすることができる。このようなビットの共通化を行うことで、目標ビット数(T)を少なくすることができ、2進展開などにより単純に連続変数を離散化して2値変数に変換する場合よりも、H(x)への変換後のビット数を削減できる。
【0090】
(第3の実施の形態)
図13は、第3の実施の形態のデータ処理装置の機能例を示すブロック図である。
図13において、
図3に示した要素と同じ要素については同一符号が付されている。
【0091】
第3の実施の形態のデータ処理装置50は、MCMC処理部51を有している。
MCMC処理部51は、F(w)の情報を記憶部31から取得し、F(w)の情報に基づいて、所定期間、MCMC法による探索を行う。MCMC処理部51で行われる探索は、最適解を探索するものではないため、探索部36で行われる探索よりも短時間でよい。また、疑似焼き鈍し法のように温度パラメータの値を変えていくMCMC処理が行われてもよいし、温度パラメータの値を固定した状態でMCMC処理が行われてもよい。
【0092】
MCMC処理部51は、所定期間の探索で得られる各連続変数の値の時間変化を示す時系列情報Dを出力する。
相関検出部52は、時系列情報Dに基づいて、各連続変数の値の時間変化から、連続変数対の相関の大きさを検出し、相関情報Yを生成して出力する。
【0093】
MCMC処理部51や相関検出部52は、たとえば、プロセッサ21が実行するプログラムモジュールを用いて実装できる。
図14は、時系列情報Dの一例を示す図である。
【0094】
図14において時間は、MCMC処理のモンテカルロステップ(MCS)で表されている。各連続変数は、MCSが進むたびに変化している。
図15は、時系列情報Dに基づく相関検出処理の一例の流れを示すフローチャートである。
【0095】
ステップS40:相関検出部52は、時系列情報DをMCMC処理部51から取得する。
ステップS41:相関検出部52は、時系列方向(
図14では行方向)に並べた各連続変数の値をベクトルとみなし、±1の範囲で正規化する。そして、相関検出部52は、N個の連続変数から選択可能な連続変数対のそれぞれに対して、ベクトル間の2乗誤差を計算する。2乗誤差に負の符号をつけた値が、相関の大きさを示すM
ijである。なお、相関検出部52は、ベクトル間のコサイン類似度をM
ijとしてもよい。
【0096】
ステップS42:相関検出部52は、Mijの計算結果に基づいて、リストL(c)=(i,j,Mij)を作成する。cの初期値は1であり、(i,j,Mij)のデータがリストL(c)に記録されるたびにcはカウントアップされる。同じ連続変数wiに対して、複数の連続変数wjが相関をもつ場合、相関検出部52は、たとえば、Mijが一番大きくなる(i,j,Mij)をリストL(c)に記録する。なお、相関検出部52は、同じ連続変数wiに対して、複数の連続変数wjが相関をもつ場合、たとえば、Mijの大きい順に複数の(i,j,Mij)をリストL(c)に記録してもよい。
【0097】
ステップS43:相関検出部52は、リストL(c)をMijの大きい順にソートした相関情報Yを出力し、相関の大きさの検出処理を終える。
以降の処理は、第2の実施の形態のデータ処理装置20と同様である。
【0098】
このような第3の実施の形態のデータ処理装置50は、実際にMCMC処理を行った結果に基づいて、連続変数対の相関の大きさを検出するため、より適切に相関の大きさを検出できる可能性がある。
【0099】
ところで、上記各実施の形態のデータ処理装置10,20,50が行う処理内容は、データ処理装置10,20,50にプログラムを実行させることでソフトウェアにて実現することもできる。
【0100】
プログラムは、コンピュータ読み取り可能な記録媒体に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)及びHDDが含まれる。光ディスクには、CD(Compact Disc)、CD-R(Recordable)/RW(Rewritable)、DVD(Digital Versatile Disc)及びDVD-R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体にプログラムをコピーして実行してもよい。
【0101】
以上、実施の形態に基づき、本発明のデータ処理装置、プログラム及びデータ処理方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【0102】
10 データ処理装置
11 記憶部
12 探索部
13 処理部