JP2021168096A - サンプリング装置、サンプリング方法及びサンプリングプログラム - Google Patents

サンプリング装置、サンプリング方法及びサンプリングプログラム Download PDF

Info

Publication number
JP2021168096A
JP2021168096A JP2020071934A JP2020071934A JP2021168096A JP 2021168096 A JP2021168096 A JP 2021168096A JP 2020071934 A JP2020071934 A JP 2020071934A JP 2020071934 A JP2020071934 A JP 2020071934A JP 2021168096 A JP2021168096 A JP 2021168096A
Authority
JP
Japan
Prior art keywords
state
temperature value
value
variable group
replica
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.)
Withdrawn
Application number
JP2020071934A
Other languages
English (en)
Inventor
暁 土手
Akira Tsuchide
泰孝 田村
Yasutaka Tamura
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020071934A priority Critical patent/JP2021168096A/ja
Priority to EP21153205.6A priority patent/EP3896622A1/en
Priority to US17/164,866 priority patent/US20210319154A1/en
Priority to CN202110171666.3A priority patent/CN113536229A/zh
Publication of JP2021168096A publication Critical patent/JP2021168096A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/08Computing arrangements based on specific mathematical models using chaos models or non-linear system models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/08Thermal analysis or thermal optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Artificial Intelligence (AREA)
  • Nonlinear Science (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Probability & Statistics with Applications (AREA)
  • Databases & Information Systems (AREA)
  • Feedback Control In General (AREA)

Abstract

【課題】サンプルの確率分布と目標分布とのずれを抑制する。
【解決手段】状態更新部11aは、各試行において状態遷移を発生させる。繰返し回数計算部11bは、各試行において確率的に状態遷移を許容する場合の、温度Tが対応付けられた第1の状態変数群と温度T’が対応付けられた第2の状態変数群のそれぞれにおいて許容される状態遷移の数(N(x;β),N(x’;β’))を計数するとともに、第1の状態変数群に温度T’を対応付け、第2の状態変数群に温度Tを対応付けた場合に各状態変数群において許容される状態遷移の数(N(x;β’),N(x’;β))を計数する。レプリカ交換制御部12は、計数結果に基づいて、各状態変数群に対応付ける温度Tと温度T’の交換前後の状態遷移の発生確率の比を計算し、その比により補正したレプリカ交換の交換確率にしたがって、温度Tと温度T’とを交換する。
【選択図】図1

Description

本発明は、サンプリング装置、サンプリング方法及びサンプリングプログラムに関する。
ノイマン型コンピュータが不得意とする大規模な離散最適化問題を計算する装置として、イジング型の評価関数(エネルギー関数などとも呼ばれる)を用いたイジング装置(ボルツマンマシンとも呼ばれる)がある。
イジング装置による計算では、計算対象の問題は磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えられる。そして、マルコフ連鎖モンテカルロ法により、イジング型の評価関数の値(イジングモデルのエネルギーに相当する)が最小となる状態の探索が行われる。以下、マルコフ連鎖モンテカルロ法を、MCMC(Markov-Chain Monte Carlo)法と略す。MCMC法では、たとえば、メトロポリス法またはギブス法で規定される状態遷移の受け入れ確率で、その状態遷移が受け入れられる。
MCMC法の一種として、レプリカ交換法(交換モンテカルロ法とも呼ばれる)がある。レプリカ交換法は複数の温度を用いたMCMC処理を互いに独立に行い、ある試行回数ごとに、各MCMC処理で得られるエネルギーを比較し、適切な確率で2つの温度に対する状態を交換するという操作を行う方法である。レプリカ交換によれば、温度を徐々に下げていく疑似焼き鈍し法と比べて、局所解に拘束される可能性が抑えられ、全探索空間を効率よく探索できる。
ところで、MCMC法では、平衡状態における各状態の占有確率を示す確率分布は、目標分布(たとえば、ボルツマン分布)となる。そのため、一定温度でのMCMC法、あるいは複数温度間で状態を交換するレプリカ交換法により、状態遷移を繰り返す過程で得られた状態または状態に基づいた値をサンプルとして出力することで、目標分布にしたがうサンプルが得られる。発生したサンプルは、たとえば、機械学習などでの期待値の計算に用いられる。
ただ、MCMC法では、上記の受け入れ確率が、温度が低いときの状態遷移や、エネルギーの変化量が正に大きくなる状態遷移については非常に小さくなり、同じ状態が多数回繰り返されるため、サンプリング効率が悪くなる。
従来、試行ごとに異なる状態に遷移するサンプル列を発生させるとともに、MCMC法を適用した場合に各状態に留まる試行回数を算出し、その回数によりサンプルに重み付けを行うことで目標分布を得る手法が提案されている(たとえば、非特許文献1参照)。
また、従来、デジタル回路を用いてレプリカ交換法を実現することで、エネルギーが最小となる状態を高速に探索する最適化装置がある(たとえば、特許文献1参照)。
特開2019−71119号公報
Jeffrey S. Rosenthal et al., "Jump Markov Chains and Rejection-Free Metropolis Algorithms", [online], November 4, 2019, arXiv:1910.13316v2 [math.ST], [令和2年3月16日検索],インターネット<https://arxiv.org/pdf/1910.13316.pdf>
しかし、上記のように試行ごとに状態を変化させる手法においてレプリカ交換法を適用した場合、サンプルの確率分布と目標分布とのずれが生じる場合がある。つまり、得られるサンプルが目標分布にしたがわなくなる可能性がある。
1つの側面では、本発明は、サンプルの確率分布と目標分布とのずれを抑制可能なサンプリング装置、サンプリング方法及びサンプリングプログラムを提供することを目的とする。
1つの実施態様では、イジングモデルのエネルギーを表す評価関数に含まれる複数の状態変数をそれぞれ含む複数の状態変数群の値を保持し、前記複数の状態変数群のそれぞれに対して異なる値が対応付けられた温度値と、前記複数の状態変数の何れかの値が変化することに伴う前記エネルギーの変化量とに基づいて、各試行において前記複数の状態変数の何れかの値を変えることで状態遷移を発生させる状態更新部と、前記温度値と前記変化量とに基づいて、前記各試行において確率的に前記状態遷移を許容する場合に前記状態遷移が発生するまでの繰返し回数の期待値を計算し、前記複数の状態変数群のうち、第1の温度値が対応付けられた第1の状態変数群と第2の温度値が対応付けられた第2の状態変数群のそれぞれにおいて許容される前記状態遷移の数と、前記第1の状態変数群に前記第2の温度値を対応付け、前記第2の状態変数群に前記第1の温度値を対応付けた場合に前記第1の状態変数群及び前記第2の状態変数群のそれぞれにおいて許容される前記状態遷移の数と、をそれぞれ計数する繰返し回数計算部と、前記繰返し回数計算部が計数した計数結果に基づいて、前記第1の状態変数群と前記第2の状態変数群に対応付ける前記第1の温度値と前記第2の温度値の交換前後の前記状態遷移の発生確率の比を計算し、前記比により補正したレプリカ交換の交換確率にしたがって、前記第1の温度値と前記第2の温度値とを交換する交換制御部と、前記複数の状態変数の値と前記期待値とを、所定の間隔で出力する出力部と、を有するサンプリング装置が提供される。
また、1つの実施態様では、サンプリング方法が提供される。
また、1つの実施態様では、サンプリングプログラムが提供される。
1つの側面では、本発明は、サンプルの確率分布と目標分布とのずれを抑制できる。
第1の実施の形態のサンプリング装置の一例を示す図である。 第2の実施の形態のサンプリング装置の一例を示す図である。 レプリカ処理部の一例を示す図である。 繰返し回数計算部の一例を示す図である。 あるレプリカ処理部の動作の一例の流れを示すフローチャートである。 レプリカ交換コントローラの動作の一例の流れを示すフローチャートである。 情報処理装置のハードウェア例を示すブロック図である。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
なお、以下の例では、ボルツマン分布にしたがうようなサンプルを発生させるサンプリング装置を説明する。つまり、目標分布としてボルツマン分布を用いた場合を説明するが、適用可能な目標分布はボルツマン分布に限られるものではない。
また、サンプリング装置が出力するサンプルは、0または1の値である状態変数群により表される状態であり、ある状態におけるエネルギーは、以下の式(1)で表せるイジング型の評価関数により定義されているものとする。
Figure 2021168096
右辺の1項目は、状態変数群の全状態変数の全組合せについて、漏れと重複なく、2つの状態変数の値(0または1)と重み係数(2つの状態変数の間の相互作用の強さを表す)との積を積算したものである。xは、識別情報(以下インデックスという)がiの状態変数、xは、インデックス=jの状態変数であり、Wijは、インデックス=i,jの状態変数間の相互作用の大きさを示す重み係数である。
右辺の2項目は、各インデックスについてのバイアス係数と状態変数との積の総和を求めたものである。bは、インデックス=iの状態変数についてのバイアス係数を示している。各重み係数やバイアス係数は、サンプリング対象に応じて与えられる。
目標分布であるボルツマン分布は、以下の式(2)で表せる。
Figure 2021168096
式(2)においてxはある状態(式(1)の状態変数群の値により表される)であり、βは、逆温度(温度の逆数)である。
また、ある状態遷移の受入れ確率として、たとえば、以下の式(3)で表せるメトロポリス法またはギブス法で規定される受入れ確率A(ΔE)を用いることができる。
Figure 2021168096
ΔEは、その状態遷移に伴うエネルギーの変化量を表す。
なお、以下では一度の状態遷移においては、1つの状態変数の値が変化(0から1または1から0への反転)するものとし、各状態遷移をそれぞれ識別するインデックスは、1つの状態変数のインデックスと等しいものとして説明を行う。しかし、状態遷移のインデックスと状態遷移に伴い変化する状態遷移のインデックスが一致する形態に限定されるものではない。たとえば、複数の状態変数が一度に変化することによる状態遷移を扱う形態を除外するものではない。
前述のように、試行ごとに状態を変化させる(状態遷移を発生させる)手法においてレプリカ交換法を適用した場合、各状態の占有確率を示す確率分布が目標分布に収束しなくなる理由として、以下の原因が考えられる。
レプリカ交換法では、複数の温度を用いたMCMC処理が互いに独立に行われ、ある試行回数ごとに、各MCMC処理で得られるエネルギーと、各MCMC処理で用いられる温度に基づく交換確率で、2つの温度に対する状態の交換が行われる。以下、各MCMC処理を、レプリカと呼ぶ。なお、レプリカ間での状態の交換と温度の交換とは同じことである。
交換確率(Aswap1)は、上記の式(2)を用いて、以下の式(4)のように表せる。
Figure 2021168096
式(4)において、β,β’はある2つのレプリカにおいて用いられる2つの温度の逆数であり、x,x’は、各レプリカのある試行回数において得られる2つの状態である。E(x),E(x’)は、各状態x,x’におけるエネルギーである。交換確率が1より大きくならないように、min関数が用いられる。
なお、交換確率が小さくなりすぎないように、レプリカ交換の候補となる2つのレプリカは、設定されている温度が近いもの(たとえば、隣接温度が設定されているもの)が選択される。
このようなレプリカ交換法では、上記のように交換確率は、温度差と各状態におけるエネルギー差によって決まる。
一方、試行ごとに状態を変化させる手法では、MCMC法を適用した場合に各状態に留まる試行回数(状態遷移が発生するまでの繰返し回数)の期待値が算出され、その期待値によりサンプルに重み付けが行われる。
上記のような繰返し回数の特性は、各温度間でばらつきがある。たとえば、底が平坦な局所解に状態が存在する場合には、高温の場合でも低温の場合でもエネルギー変化のない状態遷移が高確率で発生するため、繰返し回数は少なくなる。一方、底が平坦ではない局所解に状態が存在する場合には、低温の場合は状態遷移の発生が低確率となるため、繰返し回数は多くなり、高温の場合は状態遷移の発生が低温の場合よりも起こりやすくなるため、繰返し回数は少なくなる。
このため、たとえば、底が平坦な局所解に状態が存在する場合と、底が平坦ではない局所解に状態が存在する場合とで、レプリカ交換により異なる温度が適用された場合の繰返し回数の変化割合が大きく異なる可能性がある。これが、目標分布に収束しなくなる理由として考えられる。
そこで、式(4)に示すような交換確率を以下の式(5)のように補正することが提案されている(たとえば、非特許文献1参照)。
Figure 2021168096
式(5)において、α(x;β)は、逆温度がβであるときに状態xから脱出する脱出確率(状態xにおける状態遷移の発生確率)であり、以下の式(6)で表せる。
Figure 2021168096
式(6)における分母は全状態変数の数であるN、分子は各状態変数の変化の受入れ確率(式(3)で表せる)の総和である。
式(5)のα(x;β’)は、逆温度がβ’であるときに状態xから脱出する脱出確率、α(x’;β)は、逆温度がβであるときに状態x’から脱出する脱出確率、α(x’;β’)は、逆温度がβ’であるときに状態x’から脱出する脱出確率である。これらの脱出確率もそれぞれ、式(6)と同様に表せる。
α(x;β’)α(x’;β)/α(x;β)α(x’;β’)は、状態xが得られているレプリカに設定されているβをβ’に変え、状態x’が得られているレプリカに設定されているβ’をβに変えたときの脱出確率の比を表す。
たとえば、β<β’であり状態xが前述の例のように、底が平坦ではない局所解に存在する場合、温度が高いほど(逆温度が低いほど)脱出確率が高くなるため、α(x;β’)<α(x;β)となる。一方、状態x’が前述の例のように、底が平坦な局所解に存在する場合、温度変化後においても脱出確率はほぼ等しくなる。
したがって、このような場合、α(x;β’)α(x’;β)/α(x;β)α(x’;β’)は1以下となり、AswapはAswap1より小さくなり、交換の発生が抑制される。
このように、異なる温度が適用された場合の繰返し回数の変化割合が大きく異なるような交換の発生する可能性を抑制することで、目標分布への収束性の向上が期待できる。
しかしながら、α(x;β’)α(x’;β)/α(x;β)α(x’;β’)の計算は、式(6)のように、各状態変数の変化の受入れ確率の総和を計算することになるなどの理由により、計算量が多い。
以下に示す第1の実施の形態のサンプリング装置は、この点を考慮して、目標分布にしたがうサンプルを生成できるようにするものである。
(第1の実施の形態)
図1は、第1の実施の形態のサンプリング装置の一例を示す図である。
第1の実施の形態のサンプリング装置10は、レプリカ処理部11、レプリカ交換制御部12を有する。
レプリカ処理部11は、試行ごとに状態を変化させるMCMC処理を実行する。レプリカ処理部11は、互いに異なる温度が設定される複数のMCMC処理(複数のレプリカ)をそれぞれ並列に処理するように複数設けられていてもよいが、第1の実施の形態では、時分割処理または、パイプライン処理により複数のレプリカの処理が行われるものとして説明する。
レプリカ処理部11は、状態更新部11a、繰返し回数計算部11b、サンプル出力部11cを有する。
状態更新部11aは、式(1)に示すような評価関数に含まれる複数の状態変数をそれぞれ含む複数の状態変数群の値を保持する。各状態変数群の値が、前述の各レプリカの状態に相当する。
状態更新部11aは、複数の状態変数群のそれぞれに対して異なる値が対応付けられた温度値(温度または逆温度)と、複数の状態変数の何れかの値が変化することに伴うエネルギーの変化量とに基づいて、各試行において複数の状態変数の何れかの値を変える。すなわち、状態更新部11aは、前述の試行ごとに状態遷移を発生させる手法にしたがった処理を行う。
たとえば、状態更新部11aは、あるレプリカrep1において、複数の状態変数のうちの1つが変化することによるエネルギーの変化量を、複数の状態変数のそれぞれについて計算する。そして、状態更新部11aは、各状態変数について、max(0,ΔE(x))(i=1〜N)を計算する。すなわち、エネルギーの変化量(ΔE(x))が負の場合にはmax(0,ΔE(x))=0となり、ΔE(x)が正の場合にはmax(0,ΔE(x))=ΔE(x)となる。そして、状態更新部11aは、各状態変数についてのmax(0,ΔE(x))のそれぞれに、温度値に応じたそれぞれ独立な乱数値を加算する。状態更新部11aは、値が変化したときに、最小値となる加算結果が得られる状態変数を更新対象とする。これにより、各試行において状態遷移が発生する。
なお、状態更新部11aは、たとえば、各レプリカの状態、または更新対象の状態変数の値を変化させたときのエネルギーの変化量に基づいて、各レプリカについてのエネルギーを計算する。
繰返し回数計算部11bは、温度値とエネルギーの変化量とに基づいて、各試行において確率的に状態遷移を許容する場合に、状態遷移が発生するまでの繰返し回数の期待値を計算する。あるレプリカrep1において、逆温度がβであるときに、状態xから遷移するまでの繰返し回数の期待値〈m〉は、式(6)のα(x;β)の逆数で表すことができる。式(6)のα(x;β)は、各状態遷移の受入れ確率の最大値を1にするためのオフセット値として、Eoff(x)=min[max(0,ΔE(x))]を用いて、以下の式(7)のように近似できる。
Figure 2021168096
式(7)において、N(x;β)は、ある試行において、上記のように確率的に状態遷移を許容する場合に、許容された状態遷移(変化が許容された状態変数)の数(図1では“遷移許容数”と表記されている)である。
繰返し回数計算部11bは、たとえば、以下のようにして、式(7)の逆数である繰返し回数の期待値〈m〉を計算する。
まず、繰返し回数計算部11bは、状態更新部11aから、各状態変数についてのmax(0,ΔE(x))の集合{max(0,ΔE(x))}を取得する。そして、繰返し回数計算部11bは、その中から最小の値、すなわち上記のEoff(x)=min[max(0,ΔE(x))]を計算する。
さらに繰返し回数計算部11bは、各max(0,ΔE(x))からEoff(x)を引いた値に対し、温度値に応じて取り得る値の幅が異なる負の乱数値を加えた加算結果が、0以下であるか否かを判定する。加算結果が0以下であるという判定結果は、その加算結果をもたらす状態遷移が許容されることを示し、加算結果が0より大きいという判定結果は、その加算結果をもたらす状態遷移が許容されないことを示す。そして、繰返し回数計算部11bは、許容された状態遷移の数を計数することで、上記のN(x;β)を得る。
また、繰返し回数計算部11bは、あるレプリカに対して交換先の候補となる別のレプリカの状態x’に対応付けられた温度値を、状態xに対応付けた場合に、状態xにおいて許容される状態遷移の数についても同様に計数する。たとえば、繰返し回数計算部11bは、交換先の候補として、βに対して隣接温度であるβ’が対応付けられているレプリカrep2の状態x’において、許容される状態遷移の数を計数して、N(x;β’)を得る。
繰返し回数計算部11bは、以上のような処理を各レプリカについて、たとえば、時分割処理、またはパイプライン処理で行う。たとえば、レプリカrep2についても同様の処理が行われ、繰返し回数の期待値〈m’〉や、N(x’;β’),N(x’;β)が得られる。
サンプル出力部11cは、所定間隔(サンプリング間隔)ごとに、各レプリカについての状態とエネルギーを状態更新部11aから取得し、繰返し回数の期待値を繰返し回数計算部11bから取得し、それらを出力する。
図1の例では、サンプル出力部11cは、レプリカrep1についての、状態x、エネルギーE(x)、繰返し回数の期待値〈m〉、及びレプリカrep2についての状態x’、エネルギーE(x’)、繰返し回数の期待値〈m’〉を出力している。
レプリカ交換制御部12は、繰返し回数計算部11bが計数した計数結果に基づいて、ある2つのレプリカのそれぞれの状態変数群に対応付ける温度値を交換した場合の状態遷移の発生確率(前述の脱出確率)の比を計算する。また、レプリカ交換制御部12は、状態更新部11aが計算したエネルギーE(x),E(x’)を取得する。そして、レプリカ交換制御部12は、上記の比により式(4)に示した交換確率を補正した交換確率にしたがって、それぞれの状態変数群に対応付ける温度値を交換する。
前述のように、式(4)に示した交換確率を補正した交換確率は、式(5)で表せる。式(5)において、脱出確率の比であるα(x;β’)α(x’;β)/α(x;β)α(x’;β’)は、式(7)を用いて、以下の式(8)のように近似できる。
Figure 2021168096
式(8)からわかるように、脱出確率の比は、繰返し回数計算部11bが計数した計数結果、N(x;β),N(x;β’),N(x’;β’),N(x’;β)を用いて近似できる。これにより、式(8)で表されるN(x;β’)N(x’;β)/N(x;β)N(x’;β’)を補正項として、式(4)に示した交換確率の補正が可能となる。
レプリカ交換制御部12は、たとえば、レプリカrep1,rep2において、上記の交換確率にしたがって温度値の交換を行う。交換が受け入れられたときには、レプリカrep1の状態変数群に対して温度値として、温度T(逆温度β)の代わりに温度T’(逆温度β’)が対応付けられることになる。一方、レプリカrep2の状態変数群に対して温度値として、温度T’(逆温度β’)の代わりに温度T(逆温度β)が対応付けられることになる。
なお、レプリカ交換において、2つのレプリカの間で、温度値を交換することと、状態変数群の値(状態)を交換することとは同じである。
上記のようなレプリカ処理部11や、レプリカ交換制御部12は、たとえば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路により実現可能である。または、レプリカ処理部11や、レプリカ交換制御部12は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などのプロセッサがプログラムを実行することで実現されるようにしてもよい。
以上説明したように、第1の実施の形態のサンプリング装置10では、試行ごとに状態を変化させる手法においてレプリカ交換法が適用されている。試行ごとに状態を変化させるのみでは、サンプリング対象が、格子イジングモデルのように低エネルギーの状態空間が分離しているようにモデル化されている場合には、サンプルの確率分布が目標分布に収束するのに時間がかかる。一方、レプリカ交換法をさらに適用することで、状態が局所解に拘束されることを抑制でき、全探索空間を効率よく探索できるが、式(4)に示すような交換確率を用いた場合、上記の理由により、サンプルが目標分布にしたがわなくなる可能性がある。
第1の実施の形態のサンプリング装置10は、各試行において確率的に状態遷移を許容する場合に許容される状態遷移の数の計数結果を用いて、交換前後の脱出確率の比を計算し、その比を補正項として式(4)の交換確率を補正した交換確率で交換を実施する。
これにより、前述のようなレプリカ交換法を適用した場合の弊害が是正され、サンプルの確率分布の目標分布に対するずれを抑制できる。つまり、目標分布にしたがうサンプルが生成できる。
さらに、第1の実施の形態のサンプリング装置10では、交換前後の脱出確率の比を、式(5)のようにα(x;β)などを用いて計算するのではなく、上記のような計数結果を用いて計算するため、計算量が少なくて済む。このため、計算時間を短縮できるとともに、サンプリング装置10をASICやFPGAなどの電子回路により実現する場合には、回路面積の増大を抑えることができる。
なお、サンプリング装置10によって得られるサンプルと繰返し回数の期待値を用いて、たとえば、以下の式(9)により所望の関数f(x)の期待値〈f(x)〉を推定できる。
Figure 2021168096
式(9)において、〈m(i)〉は、あるレプリカにおいて、i(i=1〜n)回目のサンプリングで得られた繰返し回数の期待値であり、x(i)は、そのレプリカにおいて、i回目のサンプリングで得られたサンプル(状態変数群の値)である。
サンプリング装置10が上記のような期待値〈f(x)〉を計算してもよい。
また、サンプリング装置10は、最適化問題を計算する最適化装置としても機能させることができる。その場合、最適化問題の制約条件などに応じて式(1)に示した重み係数やバイアス係数が設定される。そして、たとえば、サンプル出力部11cが出力する各レプリカにおけるエネルギーに対応した状態のうち、所定回数の試行を行ったなかで最小のエネルギーに対応した状態が、最適化問題の解として出力される。
(第2の実施の形態)
図2は、第2の実施の形態のサンプリング装置の一例を示す図である。
第2の実施の形態のサンプリング装置20は、複数のレプリカ処理部(たとえば、レプリカ処理部21a,21b,21c,21d)、レプリカ交換コントローラ22を有する。
第2の実施の形態のサンプリング装置20では、図1に示した状態更新部11a、繰返し回数計算部11b、サンプル出力部11cのそれぞれが、複数のレプリカ処理部に分割して設けられている。
複数のレプリカ処理部のそれぞれは、複数の状態変数群の何れかについて、図1に示したレプリカ処理部11と同様の処理を行い、この処理は、複数のレプリカ処理部の間で並列に実行される。なお、複数のレプリカ処理部のそれぞれは、レプリカ処理部11と同様に、複数の状態変数群に対しての処理を、時分割処理またはパイプライン処理で行ってもよい。
レプリカ交換コントローラ22は、第1の実施の形態のレプリカ交換制御部12と同様の機能を有する。
図3は、レプリカ処理部の一例を示す図である。図3では、レプリカ処理部21aの例を示したが、他のレプリカ処理部についても同様の構成により実現できる。
レプリカ処理部21aは、状態更新部30、繰返し回数計算部31、サンプル出力部32を有する。
状態更新部30は、状態保持部30a、エネルギー変化計算部30b、max[0,ΔE]計算部30c、乱数生成部30d、加算器30e1,30e2,…,30eN、更新ビット選択部30fを有する。
状態保持部30aは、自身が処理を担当するレプリカの状態変数群の値、すなわち、式(1)に示した評価関数に含まれるN個の状態変数(x〜x)の値と、エネルギーの値を保持する。また、状態保持部30aは、更新ビット選択部30fが出力する更新ビット(更新対象の状態変数)を示すインデックスに基づいて、状態変数の値を変更する機能も有する。さらに、状態保持部30aは、更新ビットのインデックスに対応するエネルギーの変化量(ΔE〜ΔEの何れか)をエネルギー変化計算部30bから取得し、エネルギーを更新する機能も有する。
エネルギー変化計算部30bは、ある状態変数群において発生しうる複数の状態遷移のそれぞれについて、状態遷移に伴うイジングモデルのエネルギーの変化量を計算する。一度の状態遷移において、1つの状態変数の値が変化するものとした場合、エネルギー変化計算部30bは、x〜xのうちの1つが変化したときのエネルギーの変化量(ΔE,ΔE,…,ΔE)を、x〜xのそれぞれについて計算する。
の値が変化することによるエネルギーの変化量であるΔEは以下の式(10)で表せる。
Figure 2021168096
式(10)において、xが1から0に変化するとき、Δxは−1となり、xが0から1に変化するとき、Δxは1となる。なお、hはローカルフィールド(局所場)と呼ばれ、Δxに応じてhに符号(+1または−1)を乗じたものがΔEとなる。
は、更新ビットの示すインデックスに基づいて更新される。たとえば、更新ビットのインデックスがjの場合、hは、h+Wij・Δxに更新される。Wijは、図示しない記憶部に記憶されている。
max[0,ΔE]計算部30cは、ΔE〜ΔEのそれぞれについて、max[0,ΔE]を計算する。すなわち、max[0,ΔE]計算部30cは、ΔE〜ΔEのうち、0以上のものをそのまま維持し、負であるものを0に更新したN個の更新値を出力する。
乱数生成部30dは、レプリカ交換コントローラ22から供給される温度値に基づいて、N個の乱数値を生成する。
乱数生成部30dは、たとえば、メルセンヌツイスタなどを用いて、0<r<1の一様乱数であるrをN個生成するとともに、変換テーブルなどを用いて、log(−logr)を生成する。なお、rは、たとえば1クロックサイクルごとに更新される。そして、乱数生成部30dは、たとえば、供給される温度値である温度Tを用いて、T×log(−logr)を計算することにより、N個の乱数値を生成する。
加算器30e1〜30eNは、max[0,ΔE]計算部30cが出力するN個の更新値のそれぞれに、N個の乱数値の何れかを加算することでN個の加算結果を計算する。
更新ビット選択部30fは、加算器30e1〜30eNが出力するN個の加算結果のうち、最小となる加算結果を検出する。そして、更新ビット選択部30fは、値が変化したときに最小となる加算結果をもたらす状態変数のインデックスを更新ビットのインデックスとして出力する。これにより、その加算結果をもたらす状態遷移が発生する。
このような状態更新部30によって、各試行において状態遷移が発生することになる。
繰返し回数計算部31は、各試行において確率的に状態遷移を許容する場合に、状態遷移が発生するまでの繰返し回数の期待値〈m〉を計算する。また、繰返し回数計算部31は、レプリカ処理部21aが処理を担当するレプリカの状態xにおいて、変化が許容される状態変数の数を計数し、計数値であるN(x;β)を出力する。
また、繰返し回数計算部31は、別のレプリカの状態x’に対応付けられた温度値を、状態xに対応付けた場合に、状態xにおいて変化が許容される状態変数の数についても同様に計数し、計数結果であるN(x;β’)を出力する。
サンプル出力部32は、所定間隔(サンプリング間隔)ごとに、レプリカ処理部21aが処理を担当するレプリカの状態xとエネルギーE(x)を状態保持部30aから取得し、繰返し回数の期待値〈m〉を繰返し回数計算部31から取得し、それらを出力する。
ところで、各試行において状態遷移を発生させる手法では、ある試行における状態aは、次の試行において異なる状態bに遷移するが、さらに次の試行においては、状態aに戻る確率が高い。つまり、状態の変化がたとえば、{a,b,a,c,a,b,a,d…}(a,b,c,dは状態を表す)などとなる可能性がある。この場合、偶数の試行回数だけでサンプリングを行う場合、{a,a,a…}や{b,c,b,d…}などと偏った分布に収束してしまう可能性がある。
これを避けるために、サンプル出力部32は、サンプリング間隔をサンプリングごとに変えてもよい。たとえば、サンプル出力部32は、サンプリングごとに、サンプリング間隔を、偶数試行回数とするか奇数試行回数とするかを切り替えてもよいし、ランダムな試行回数としてもよい。
図4は、繰返し回数計算部の一例を示す図である。
繰返し回数計算部31は、オフセット制御部31a、乱数生成部31b、加算器31c1,31c2,…,31cN、比較部31d、フラグビット計数部31e、期待値計算部31fを有する。
オフセット制御部31aは、max[0,ΔE]計算部30cの出力である複数の更新値を取得する。そして、オフセット制御部31aは、その中から最小の値、すなわちEoff(x)=min[max(0,ΔE(x))]を計算する。さらにオフセット制御部31aは、各max(0,ΔE(x))からEoff(x)を引いた複数の更新値を出力する。
乱数生成部31bは、状態更新部30の乱数生成部30dと同様に、レプリカ交換コントローラ22から供給される温度値に基づいて、N個の乱数値を生成する。
たとえば、乱数生成部31bは、レプリカ交換コントローラ22から供給される温度値である温度Tを用いて、T×logr(i=1〜N)を計算することにより、N個の乱数値を生成する。さらに、乱数生成部31bは、レプリカ交換コントローラ22から、別のレプリカの状態x’に対応付けられた温度値である温度T’が供給された場合には、T’×logr(i=1〜N)を計算する。
加算器31c1〜31cNは、オフセット制御部31aが出力するN個の更新値のそれぞれに、N個の乱数値の何れかを加算したN個の加算結果を出力する。
比較部31dは、N個の加算結果のそれぞれと閾値(以下では0とする)とを比較し、N個の加算結果のそれぞれについて、0以下である場合には1、0より大きい場合には0であるN個のフラグビットを出力する。加算結果が0以下であるという判定結果(フラグビット=1)は、その加算結果をもたらす状態変数の変化が許容されることを示す。加算結果が0より大きいという判定結果(フラグビット=0)は、その加算結果をもたらす状態変数の変化が許容されないことを示す。
フラグビット計数部31eは、N個のフラグビットのうち、値が1であるフラグビットの数を計数した計数値を出力する。フラグビット計数部31eは、繰返し回数計算部31にレプリカ交換コントローラ22から温度値として、温度Tが供給されている場合、計数値として、N(x;β)を出力し、温度T’が供給されている場合、計数値として、N(x;β’)を出力する。
期待値計算部31fは、オフセット制御部31aが計算したEoff(x)と、フラグビット計数部31eが出力するN(x;β)と、レプリカ交換コントローラ22から供給される温度Tとに基づいて、式(7)の逆数である期待値〈m〉を計算する。式(7)において、β=1/Tである。
なお、レプリカ処理部21aは、状態更新部30、繰返し回数計算部31、サンプル出力部32の動作タイミングを制御する制御部や、レプリカ交換コントローラ22などとの間で情報の送受信を行う通信部をさらに有しているが、図示が省略されている。
上記のようなレプリカ処理部21aや、レプリカ交換コントローラ22は、たとえば、ASICやFPGAなどの電子回路により実現可能である。または、レプリカ処理部21aや、レプリカ交換コントローラ22は、CPUやGPUなどのプロセッサがプログラムを実行することで実現されるようにしてもよい。
以下、第2の実施の形態のサンプリング装置の動作例を説明する。
図5は、あるレプリカ処理部の動作の一例の流れを示すフローチャートである。なお、以下では図3に示したレプリカ処理部21aの動作例を示すが、他のレプリカ処理部についても同様の処理が行われる。
まず、初期化やパラメータ設定が行われる(ステップS1)。ステップS1の処理では、たとえば、状態変数(x〜x)の初期値の設定や、設定された状態変数の初期値と重み係数とバイアス係数に基づいたエネルギーE(x)の初期値の計算や、ローカルフィールド(h)の初期値の計算が行われる。これらの処理は、たとえば、レプリカ交換コントローラ22の制御のもとに行われてもよいし、レプリカ処理部21a内の図示しない制御部によって行われるようにしてもよい。また、レプリカ処理部21aは、サンプリング装置20の外部の装置によって計算されたこれらの初期値を取得してもよい。
各状態変数の初期値やエネルギーE(x)の初期値は、状態保持部30aに保持される。さらに、ステップS1の処理では、レプリカ交換コントローラ22による温度Tの設定や、サンプリング間隔を示すNsint、レプリカ交換間隔を示すNrintなどのパラメータの設定が行われる。
また、状態更新部30の図示しないカウンタは、2種類のカウンタ値(Ns,Nr)を0にする(ステップS2)。
そして、エネルギー変化計算部30bによって、式(10)に基づいたΔEの計算が行われる(ステップS3)。
状態更新部30は、Ns≧Nsintであるか否かを判定し(ステップS4)、Ns≧Nsintであると判定した場合、ステップS5の処理が行われる。
ステップS5の処理では、繰返し回数計算部31は、max[0,ΔE]計算部30cの出力と温度T(=1/β)に基づいて、繰返し回数の期待値〈m〉を計算する。なお、期待値〈m〉の計算の途中で得られるN(x;β)は、たとえば、繰返し回数計算部31内のレジスタなどの記憶部に記憶される。
さらに、ステップS5の処理において、サンプル出力部32は、レプリカ処理部21aが処理を担当するレプリカの状態xを状態保持部30aから取得し、サンプルとして出力する。また、サンプル出力部32は、エネルギーE(x)を状態保持部30aから取得し、繰返し回数の期待値〈m〉を繰返し回数計算部31から取得し、それらについても出力する。
また、状態更新部30は、Ns=0にリセットする(ステップS6)。状態更新部30は、Ns≧Nsintではないと判定した場合、またはステップS6の処理後、ステップS7の処理を行う。
なお、ステップS5の処理中、状態更新部30は、繰返し回数計算部31における処理の終了を待たずに、ステップS6以降の処理を実行してもよい。
ステップS7の処理では、状態更新部30は、Nr≧Nrintであるか否かを判定する。状態更新部30がNr≧Nrintであると判定した場合、レプリカ処理部21a内の図示しない通信部によってレプリカ交換コントローラ22にその旨が通知される。そして、その通信部は、レプリカ処理部21aから供給される交換候補の温度T’を受信する(ステップS8)。
繰返し回数計算部31は、max[0,ΔE]計算部30cの出力と、T’=(1/β’)に基づいて、N(x;β’)を計数する(ステップS9)。そして、図示しない通信部は、サンプル出力部32が出力するエネルギーE(x)と、N(x;β),N(x;β’)をレプリカ交換コントローラ22に送信する(ステップS10)。また、状態更新部30は、Nr=0にリセットする(ステップS11)。
その後、レプリカ交換コントローラ22によって、レプリカ処理部21aに設定されている温度Tの更新が行われない場合(ステップS12:NO)、状態更新部30の更新ビット選択部30fは、更新ビットの選択を行う(ステップS13)。
ステップS13の処理では、更新ビット選択部30fは、加算器30e1〜30eNが出力するN個の加算結果に基づいて、更新ビットのインデックスを出力することで、更新ビットの選択を行う。
状態保持部30aは、更新ビットのインデックスに基づいて、状態x(状態変数群の値)と、エネルギーE(x)を更新する(ステップS14)。そして、状態更新部30は、Nr,Nsを1増加させる(ステップS15)。
ステップS15の処理後、または温度Tから温度T’への更新が行われた場合(ステップS12:YES)、レプリカ処理部21aの図示しない制御部は、サンプリング処理の終了条件を満たすか否かを判定する(ステップS16)。たとえば、試行回数が所定の最大試行回数に達した場合、サンプリング回数が所定の最大サンプリング回数に達した場合、またはサンプリング装置20の外部からサンプリングの終了指示があった場合、終了条件が満たされたと判定される。
終了条件が満たされたと判定された場合、レプリカ処理部21aにおけるサンプリング処理が終了し、終了条件が満たされていないと判定された場合、ステップS3からの処理が繰り返される。
図6は、レプリカ交換コントローラの動作の一例の流れを示すフローチャートである。
レプリカ交換コントローラ22は、たとえば、サンプリング装置20に含まれる全レプリカ処理部から、Nr≧Nrintである旨の通知を受けた場合、以下の処理を開始する。なお、レプリカ交換コントローラ22は、割り込み処理により、所定の割り込みタイミングで、以下の処理を開始してもよい。
レプリカ交換コントローラ22は、交換候補の温度T,T’を設定する(ステップS20)。交換確率が小さくなりすぎないように、レプリカ交換の対象となる2つのレプリカは、設定されている温度が近いもの(たとえば、隣接温度が設定されるもの)が選択される。そして、選択された2つのレプリカに設定されている温度T,T’が交換候補として設定される。
以下では、図2に示した複数のレプリカ処理部のうち、レプリカ処理部21aが処理を担当するレプリカに温度Tが設定されており、レプリカ処理部21bが処理を担当するレプリカに温度T’が設定されているものとする。
レプリカ交換コントローラ22は、温度T’を、レプリカ処理部21aに送信し、温度Tを、レプリカ処理部21bに送信する(ステップS21)。
そして、レプリカ交換コントローラ22は、図5に示したような処理により、レプリカ処理部21aが送信するエネルギーE(x)と、N(x;β),N(x;β’)を受信する。また、レプリカ処理部21bからも同様の処理により、エネルギーE(x’)と、N(x’;β’),N(x’;β)を受信する(ステップS22)。
その後、レプリカ交換コントローラ22は、脱出確率の比を式(8)のように表した補正項を用いて、式(5)の交換確率を計算する(ステップS23)。そして、レプリカ交換コントローラ22は、計算した交換確率に基づいて、レプリカ処理部21a,21bに設定する温度を交換するか否かを判定する(ステップS24)。
温度を交換すると判定した場合、レプリカ交換コントローラ22は、レプリカ処理部21aに更新温度として温度T’を送信し、レプリカ処理部21bに更新温度として温度Tを送信する(ステップS25)。なお、レプリカ交換コントローラ22は、更新温度を送信する代わりに、ステップS21で送信した温度を、更新温度として設定するようにレプリカ処理部21a,21bに指示するようにしてもよい。
ステップS24の処理で、温度を交換しないと判定された場合、またはステップS25の処理後、レプリカ処理部21a,21bに対する1回のレプリカ交換処理が終了する。
レプリカ交換コントローラ22は、レプリカ交換の対象とする複数のレプリカ組に対して、上記と同様の処理を並列に行ってもよい。
なお、図5、図6に示した各処理ステップの順序は上記の例に限定されず、適宜順序を入れ替えてもよい。
以上説明したように、第2の実施の形態のサンプリング装置20でも第1の実施の形態のサンプリング装置10と同様に、確率的に状態遷移を許容する場合の許容される状態遷移の数(上記のN(x;β),N(x;β’))を用いて交換確率を補正する。このため、第1の実施の形態のサンプリング装置10と同様の効果が得られる。
さらに、第2の実施の形態のサンプリング装置20では、複数のレプリカ処理部を用いた複数のレプリカについての処理が並列に実行できるため、サンプリング処理を高速化できる。
なお、前述のように、複数のレプリカ処理部やレプリカ交換コントローラ22は、CPUやGPUなどのプロセッサがプログラムを実行することでも実現できる。その場合、サンプリング装置20は、たとえば、以下に示すような情報処理装置(コンピュータ)により実現される。
図7は、情報処理装置のハードウェア例を示すブロック図である。
情報処理装置40は、CPU41、RAM(Random Access Memory)42、HDD(Hard Disk Drive)43、画像信号処理部44、入力信号処理部45、媒体リーダ46及び通信インタフェース47を有する。上記ユニットは、バスに接続されている。
CPU41は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU41は、HDD43に記憶されたプログラムやデータの少なくとも一部をRAM42にロードし、プログラムを実行する。なお、CPU41は複数のプロセッサコアを備えてもよく、情報処理装置40は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
RAM42は、CPU41が実行するプログラムやCPU41が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、情報処理装置40は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD43は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、前述のようなサンプリング処理を情報処理装置40に実行させるサンプリングプログラムが含まれる。HDD43は、データとして、たとえば、前述の式(1)に含まれる重み係数やバイアス係数などを記憶する。なお、情報処理装置40は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部44は、CPU41からの命令にしたがって、情報処理装置40に接続されたディスプレイ44aに画像を出力する。ディスプレイ44aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
入力信号処理部45は、情報処理装置40に接続された入力デバイス45aから入力信号を取得し、CPU41に出力する。入力デバイス45aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、情報処理装置40に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ46は、記録媒体46aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体46aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ46は、たとえば、記録媒体46aから読み取ったプログラムやデータを、RAM42やHDD43などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、CPU41によって実行される。なお、記録媒体46aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体46aやHDD43を、コンピュータ読み取り可能な記録媒体ということがある。
通信インタフェース47は、ネットワーク47aに接続され、ネットワーク47aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース47は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
なお、図2に示したようなレプリカ交換コントローラ22をCPU41などを用いて実現し、複数のレプリカ処理部を複数のASICやGPUなどを用いて実現してもよい。
前述のサンプリング処理は、情報処理装置40にプログラムを実行させることで実現できる。
プログラムは、コンピュータ読み取り可能な記録媒体(たとえば、記録媒体46a)に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FD及びHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVD及びDVD−R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体(たとえば、HDD43)にプログラムをコピーして実行してもよい。
以上、実施の形態に基づき、本発明のサンプリング装置、サンプリング方法及びサンプリングプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
10 サンプリング装置
11 レプリカ処理部
11a 状態更新部
11b 繰返し回数計算部
11c サンプル出力部
12 レプリカ交換制御部

Claims (6)

  1. イジングモデルのエネルギーを表す評価関数に含まれる複数の状態変数をそれぞれ含む複数の状態変数群の値を保持し、前記複数の状態変数群のそれぞれに対して異なる値が対応付けられた温度値と、前記複数の状態変数の何れかの値が変化することに伴う前記エネルギーの変化量とに基づいて、各試行において前記複数の状態変数の何れかの値を変えることで状態遷移を発生させる状態更新部と、
    前記温度値と前記変化量とに基づいて、前記各試行において確率的に前記状態遷移を許容する場合に前記状態遷移が発生するまでの繰返し回数の期待値を計算し、前記複数の状態変数群のうち、第1の温度値が対応付けられた第1の状態変数群と第2の温度値が対応付けられた第2の状態変数群のそれぞれにおいて許容される前記状態遷移の数と、前記第1の状態変数群に前記第2の温度値を対応付け、前記第2の状態変数群に前記第1の温度値を対応付けた場合に前記第1の状態変数群及び前記第2の状態変数群のそれぞれにおいて許容される前記状態遷移の数と、をそれぞれ計数する繰返し回数計算部と、
    前記繰返し回数計算部が計数した計数結果に基づいて、前記第1の状態変数群と前記第2の状態変数群に対応付ける前記第1の温度値と前記第2の温度値の交換前後の前記状態遷移の発生確率の比を計算し、前記比により補正したレプリカ交換の交換確率にしたがって、前記第1の温度値と前記第2の温度値とを交換する交換制御部と、
    前記複数の状態変数の値と前記期待値とを、所定の間隔で出力する出力部と、
    を有するサンプリング装置。
  2. 前記状態更新部は、
    前記第1の状態変数群において発生しうる複数の状態遷移のそれぞれについての前記変化量を計算し、
    負である前記変化量を0に更新し、0以上である前記変化量の値を維持した複数の第1の更新値を計算し、
    前記複数の第1の更新値のそれぞれに対して、前記第1の温度値に基づいて生成される複数の第1の乱数値の何れかを加算することで複数の第1の加算結果を計算し、
    前記複数の第1の加算結果のうち、最小となる第1の加算結果をもたらす前記状態遷移を発生させる、
    請求項1に記載のサンプリング装置。
  3. 前記繰返し回数計算部は、
    前記複数の第1の更新値のうちの最小値であるオフセット値を、前記複数の第1の更新値のそれぞれから引いた複数の第2の更新値を計算し、
    前記複数の第2の更新値のそれぞれに対して、前記第1の温度値に基づいて生成される複数の第2の乱数値の何れかを加算することで複数の第2の加算結果を計算し、
    前記複数の第2の加算結果のそれぞれと閾値との比較結果に基づいて、前記複数の状態遷移のうち許容される前記状態遷移を決定し、
    前記複数の第2の更新値のそれぞれに対して、前記第2の温度値に基づいて生成される複数の第3の乱数値の何れかを加算することで複数の第3の加算結果を計算し、
    前記複数の第3の加算結果のそれぞれと前記閾値との比較結果に基づいて、前記複数の状態遷移のうち許容される前記状態遷移を決定する、
    請求項2に記載のサンプリング装置。
  4. 前記状態更新部と、前記繰返し回数計算部と、前記出力部のそれぞれは、複数のレプリカ処理部に分割して設けられ、
    前記複数のレプリカ処理部のそれぞれは、前記複数の状態変数群の何れかについて、前記各試行において前記状態遷移を発生させ、前記期待値を計算し、許容される前記状態遷移の数を計数し、前記複数の状態変数の値と前記期待値とを前記所定の間隔で出力する処理を行い、
    前記処理は、前記複数のレプリカ処理部の間で並列に実行される、
    請求項1乃至3の何れか一項に記載のサンプリング装置。
  5. 状態更新部が、イジングモデルのエネルギーを表す評価関数に含まれる複数の状態変数をそれぞれ含む複数の状態変数群の値を保持し、前記複数の状態変数群のそれぞれに対して異なる値が対応付けられた温度値と、前記複数の状態変数の何れかの値が変化することに伴う前記エネルギーの変化量とに基づいて、各試行において前記複数の状態変数の何れかの値を変えることで状態遷移を発生させ、
    繰返し計算部が、前記温度値と前記変化量とに基づいて、前記各試行において確率的に前記状態遷移を許容する場合に前記状態遷移が発生するまでの繰返し回数の期待値を計算し、前記複数の状態変数群のうち、第1の温度値が対応付けられた第1の状態変数群と第2の温度値が対応付けられた第2の状態変数群のそれぞれにおいて許容される前記状態遷移の数と、前記第1の状態変数群に前記第2の温度値を対応付け、前記第2の状態変数群に前記第1の温度値を対応付けた場合に前記第1の状態変数群及び前記第2の状態変数群のそれぞれにおいて許容される前記状態遷移の数と、をそれぞれ計数し、
    交換制御部が、前記繰返し回数計算部が計数した計数結果に基づいて、前記第1の状態変数群と前記第2の状態変数群に対応付ける前記第1の温度値と前記第2の温度値の交換前後の前記状態遷移の発生確率の比を計算し、前記比により補正したレプリカ交換の交換確率にしたがって、前記第1の温度値と前記第2の温度値とを交換し、
    出力部が、前記複数の状態変数の値と前記期待値とを、所定の間隔で出力する、
    サンプリング方法。
  6. イジングモデルのエネルギーを表す評価関数に含まれる複数の状態変数をそれぞれ含む複数の状態変数群の値を保持し、
    前記複数の状態変数群のそれぞれに対して異なる値が対応付けられた温度値と、前記複数の状態変数の何れかの値が変化することに伴う前記エネルギーの変化量とに基づいて、各試行において前記複数の状態変数の何れかの値を変えることで状態遷移を発生させ、
    前記温度値と前記変化量とに基づいて、前記各試行において確率的に前記状態遷移を許容する場合に前記状態遷移が発生するまでの繰返し回数の期待値を計算し、
    前記複数の状態変数群のうち、第1の温度値が対応付けられた第1の状態変数群と第2の温度値が対応付けられた第2の状態変数群のそれぞれにおいて許容される前記状態遷移の数と、前記第1の状態変数群に前記第2の温度値を対応付け、前記第2の状態変数群に前記第1の温度値を対応付けた場合に前記第1の状態変数群及び前記第2の状態変数群のそれぞれにおいて許容される前記状態遷移の数と、をそれぞれ計数し、
    計数した計数結果に基づいて、前記第1の状態変数群と前記第2の状態変数群に対応付ける前記第1の温度値と前記第2の温度値の交換前後の前記状態遷移の発生確率の比を計算し、前記比により補正したレプリカ交換の交換確率にしたがって、前記第1の温度値と前記第2の温度値とを交換し、
    前記複数の状態変数の値と前記期待値とを、所定の間隔で出力する、
    処理をコンピュータに実行させるサンプリングプログラム。
JP2020071934A 2020-04-13 2020-04-13 サンプリング装置、サンプリング方法及びサンプリングプログラム Withdrawn JP2021168096A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020071934A JP2021168096A (ja) 2020-04-13 2020-04-13 サンプリング装置、サンプリング方法及びサンプリングプログラム
EP21153205.6A EP3896622A1 (en) 2020-04-13 2021-01-25 Sampling device, sampling method, and sampling program
US17/164,866 US20210319154A1 (en) 2020-04-13 2021-02-02 Sampling device, sampling method, and non-transitory computer-readable storage medium for storing sampling program
CN202110171666.3A CN113536229A (zh) 2020-04-13 2021-02-08 采样装置、采样方法以及用于存储采样程序的存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020071934A JP2021168096A (ja) 2020-04-13 2020-04-13 サンプリング装置、サンプリング方法及びサンプリングプログラム

Publications (1)

Publication Number Publication Date
JP2021168096A true JP2021168096A (ja) 2021-10-21

Family

ID=74236035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020071934A Withdrawn JP2021168096A (ja) 2020-04-13 2020-04-13 サンプリング装置、サンプリング方法及びサンプリングプログラム

Country Status (4)

Country Link
US (1) US20210319154A1 (ja)
EP (1) EP3896622A1 (ja)
JP (1) JP2021168096A (ja)
CN (1) CN113536229A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023162254A1 (ja) * 2022-02-28 2023-08-31 日本電信電話株式会社 イジングモデルの計算装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7206476B2 (ja) * 2018-09-14 2023-01-18 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP2023061477A (ja) * 2021-10-20 2023-05-02 富士通株式会社 プログラム、データ処理方法及びデータ処理装置
JP2024049202A (ja) * 2022-09-28 2024-04-09 富士通株式会社 データ処理装置、プログラム及びデータ処理方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57120157A (en) * 1981-01-16 1982-07-27 Hitachi Ltd Method and device for generation of waste time
US5903477A (en) * 1996-04-10 1999-05-11 Fujitsu Limited Simulation apparatus and simulation method for electromagnetic field intensity using moment method
US6442700B1 (en) * 1999-08-10 2002-08-27 Intel Corporation Thermal control within systems having multiple CPU performance states
US8744185B2 (en) * 2011-06-20 2014-06-03 Massachusetts Institute Of Technology Efficient MCMC sampling with implicit shape representations
US9588940B2 (en) * 2013-12-05 2017-03-07 D-Wave Systems Inc. Sampling from a set of spins with clamping
US10846611B2 (en) * 2014-06-16 2020-11-24 Nokia Technologies Oy Data processing
US20160260013A1 (en) * 2015-03-06 2016-09-08 Nokia Technologies Oy Method and apparatus for optimization
JP6790913B2 (ja) * 2017-02-24 2020-11-25 富士通株式会社 情報処理装置、情報処理方法及びプログラム
JP6841722B2 (ja) * 2017-06-06 2021-03-10 株式会社日立製作所 情報処理装置
JP7093009B2 (ja) * 2018-08-30 2022-06-29 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7206476B2 (ja) * 2018-09-14 2023-01-18 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP2019071119A (ja) 2019-01-11 2019-05-09 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP7185140B2 (ja) * 2019-04-11 2022-12-07 富士通株式会社 最適化装置及び最適化装置の制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023162254A1 (ja) * 2022-02-28 2023-08-31 日本電信電話株式会社 イジングモデルの計算装置

Also Published As

Publication number Publication date
US20210319154A1 (en) 2021-10-14
EP3896622A1 (en) 2021-10-20
CN113536229A (zh) 2021-10-22

Similar Documents

Publication Publication Date Title
JP2021168096A (ja) サンプリング装置、サンプリング方法及びサンプリングプログラム
JP7206476B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
US11475099B2 (en) Optimization apparatus and method for controlling thereof
US11599073B2 (en) Optimization apparatus and control method for optimization apparatus using ising models
JP2020086821A (ja) 最適化装置および最適化装置の制御方法
JP7093009B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7248907B2 (ja) 最適化装置および最適化装置の制御方法
US20210256090A1 (en) Optimization apparatus and optimization method
JP2020204929A (ja) サンプリング装置およびサンプリング方法
JP2020027426A (ja) 最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム
JP7219402B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7201911B2 (ja) 最適化装置および最適化装置の制御方法
JP2020064535A (ja) 最適化装置及び最適化装置の制御方法
JP7181454B2 (ja) 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム
US11514135B2 (en) Optimization apparatus, temperature setting method, and non-transitory computer-readable storage medium
JP7256378B2 (ja) 最適化システムおよび最適化システムの制御方法
US20210365605A1 (en) Optimization device, optimization method, and non-transitory computer-readable storage medium for storing optimization program
CN113128663B (zh) 优化装置、温度设置方法和温度设置程序
US20220366011A1 (en) Non-transitory computer-readable storage medium and information processing apparatus
US20240111833A1 (en) Data processing apparatus and data processing method
JP2022161128A (ja) プログラム、データ処理方法及びデータ処理装置
EP4254271A1 (en) Data processing apparatus, program, and data processing method
US20220092380A1 (en) Optimization device, optimization method, and computer-readable recording medium storing optimization program
JP2024082550A (ja) データ処理装置、プログラム及びデータ処理方法
JP2023149428A (ja) データ処理装置、プログラム及びデータ処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230112

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20240126