JP2023177389A - 計算プログラム、計算方法および情報処理装置 - Google Patents

計算プログラム、計算方法および情報処理装置 Download PDF

Info

Publication number
JP2023177389A
JP2023177389A JP2022090013A JP2022090013A JP2023177389A JP 2023177389 A JP2023177389 A JP 2023177389A JP 2022090013 A JP2022090013 A JP 2022090013A JP 2022090013 A JP2022090013 A JP 2022090013A JP 2023177389 A JP2023177389 A JP 2023177389A
Authority
JP
Japan
Prior art keywords
value
parameter
matrix
graph
data
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.)
Pending
Application number
JP2022090013A
Other languages
English (en)
Inventor
アミル ハデルバシュ
Haderbache Amir
マチュー パリジ
Matthew Parisi
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 JP2022090013A priority Critical patent/JP2023177389A/ja
Priority to EP23156926.0A priority patent/EP4287079A1/en
Priority to US18/169,230 priority patent/US20230394106A1/en
Publication of JP2023177389A publication Critical patent/JP2023177389A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/20Models of quantum computing, e.g. quantum circuits or universal quantum computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/80Quantum programming, e.g. interfaces, languages or software-development kits for creating or handling programs capable of running on quantum computers; Platforms for simulating or accessing quantum computers, e.g. cloud-based quantum computing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Operations Research (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】組み合わせ最適化処理を行うソルバ装置のパラメータ値の調整を高速化する。【解決手段】コンピュータは、離散値をとる複数の変数を含む解ベクトルと複数の変数に対応する行および列をもつ係数行列とから算出される評価値に基づいて、解ベクトルの最適値を探索する組み合わせ最適化処理に対して、係数行列から特徴データを生成する。コンピュータは、アニーリング法によって組み合わせ最適化処理を行うソルバ装置の探索方法を制御するパラメータの複数の候補値のうち、1つの候補値を示すパラメータデータを生成する。コンピュータは、特徴データとパラメータデータとを、訓練済みの機械学習モデルに入力することで、1つの候補値に対応する評価値の予測を示す予測値を算出する。コンピュータは、パラメータデータの生成と予測値の算出とを繰り返すことで、ソルバ装置のパラメータに設定するパラメータ値を決定する。【選択図】図5

Description

本発明は計算プログラム、計算方法および情報処理装置に関する。
情報処理システムは、計算量の大きい組み合わせ最適化問題を高速に解きたいことがある。組み合わせ最適化問題の例として、巡回セールスマン問題やナップザック問題などがある。情報処理システムは、アニーリング法によって最適解を探索するソルバ装置を使用することがある。ソルバ装置は、量子アニーリングを実行する量子コンピュータであることがある。また、ソルバ装置は、電子回路を用いて量子アニーリングをシミュレートするシミュレーテッドアニーリングを実行する電子コンピュータであることがある。
ソルバ装置を使用する場合、情報処理システムは、組み合わせ最適化問題を二次制約なし二値最適化(QUBO:Quadratic Unconstrained Binary Optimization)行列を用いて表現することがある。ソルバ装置は、QUBO行列および解ベクトルから目的関数によって算出される評価値が改善するように(例えば、評価値が最小化または最大化するように)、解ベクトルの最適値を探索することがある。
なお、量子デバイスを用いて、パラメータ化標的ハミルトニアンによって規定される自由エネルギーの最小値を推定するサンプリング装置が提案されている。サンプリング装置は、確率的勾配降下法、最急降下法、ベイズ最適化、ランダム探索、局所探索などの複数の最適化プロトコルの中から選択される何れか1つの最適化プロトコルを実行する。
また、画像認識用のニューラルネットワークの機械学習を制御するハイパーパラメータの値を、複数の最適化アルゴリズムの中から選択される何れか1つの最適化アルゴリズムを用いて最適化する演算装置が提案されている。また、グラフニューラルネットワーク(GNN:Graph Neural Network)を用いて入力データのカテゴリを判定するシステムが提案されている。また、訓練用のグラフデータを取得してグラフニューラルネットワークのパラメータ値を反復的に更新するシステムが提案されている。
米国特許出願公開第2021/0334606号明細書 特開2020-123270号公報 特開2021-152892号公報 米国特許第11227190号明細書
ソルバ装置は、解ベクトルの最適解を探索する探索方法を制御するためのパラメータをもつことがある。ソルバ装置は、設定されるパラメータ値が異なると、最適解に到達しないことがあり、異なる評価値をもつ解ベクトルを算出することがある。情報処理システムは、より良好な評価値を達成できるようにパラメータ値を調整したいことがある。しかし、パラメータ値を変えながらソルバ装置を反復的に呼び出すことは、長時間を要することがある。そこで、1つの側面では、本発明は、組み合わせ最適化処理を行うソルバ装置のパラメータ値の調整を高速化することを目的とする。
1つの態様では、コンピュータに以下の処理を実行させる計算プログラムが提供される。離散値をとる複数の変数を含む解ベクトルと複数の変数に対応する行および列をもつ係数行列とから算出される評価値に基づいて、解ベクトルの最適値を探索する組み合わせ最適化処理に対して、係数行列から特徴データを生成する。アニーリング法によって組み合わせ最適化処理を行うソルバ装置の探索方法を制御するパラメータの複数の候補値のうち、1つの候補値を示すパラメータデータを生成する。特徴データとパラメータデータとを、訓練済みの機械学習モデルに入力することで、1つの候補値に対応する評価値の予測を示す予測値を算出する。パラメータデータの生成と予測値の算出とを繰り返すことで、ソルバ装置のパラメータに設定するパラメータ値を決定する。
また、1つの態様では、コンピュータが実行する計算方法が提供される。また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
1つの側面では、組み合わせ最適化処理を行うソルバ装置のパラメータ値の調整を高速化できる。
第1の実施の形態の情報処理装置を説明するための図である。 第2の実施の形態の情報処理装置のハードウェア例を示す図である。 QUBO行列とコスト関数の例を示す図である。 パラメータ値に対するベイズ最適化の例を示す図である。 パラメータ探索におけるデータフロー例を示す図である。 グラフニューラルネットワークの構造例を示す図である。 グラフ畳み込み演算の例を示す図である。 訓練データテーブルの例を示す図である。 ソルバパラメータ値の分布例を示すグラフである。 コスト関数値と正規化コスト関数値の分布例を示すグラフである。 コスト関数値の予測例を示すグラフである。 情報処理装置の機能例を示すブロック図である。 機械学習の手順例を示すフローチャートである。 パラメータ探索の手順例を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理装置を説明するための図である。
第1の実施の形態の情報処理装置10は、ソルバ装置20がもつパラメータ21に設定するパラメータ値を決定するパラメータ探索を行う。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10が、コンピュータ、古典コンピュータ、機械学習装置またはパラメータ探索装置と呼ばれてもよい。
ソルバ装置20は、アニーリング法によって、組み合わせ最適化問題における解ベクトルの最適値を探索する組み合わせ最適化処理を行う。組み合わせ最適化問題の例として、巡回セールスマン問題やナップザック問題などがある。パラメータ21は、ソルバ装置20の探索方法を制御するパラメータである。ソルバ装置20は、パラメータ21に設定されるパラメータ値に応じた探索方法によって、解ベクトルの最適値を探索する。
ソルバ装置20は、量子ビットを用いて量子アニーリングを実行する量子コンピュータでもよい。また、ソルバ装置20は、電子回路を用いて量子アニーリングをシミュレートするシミュレーテッドアニーリングを実行する電子コンピュータでもよい。量子アニーリングは、量子ゆらぎを徐々に小さくすることで、解ベクトルの探索空間の中から、目的関数によって算出される評価値が最小化または最大化される最適解を探索する。目的関数は、コスト関数またはエネルギー関数と呼ばれることがある。量子アニーリングは、探索空間に複数の局所解が存在する組み合わせ最適化問題に好適である。
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12が、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。プロセッサは、例えば、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
記憶部11は、係数行列14を記憶する。組み合わせ最適化処理は、解ベクトル13と係数行列14とから算出される評価値に基づいて、解ベクトル13の最適値を探索する。組み合わせ最適化処理は、例えば、評価値が最小化または最大化されるような解ベクトル13を探索する。解ベクトル13は、離散値(例えば、0または1の二値)をそれぞれとる複数の変数を含む。係数行列14は、それら複数の変数に対応する行および列をもつ。係数行列14は、正方行列でもよく対称行列でもよい。解ベクトル13をxと表し、係数行列14をQと表すと、評価値はx×Q×xであってもよい。xはxの転置である。評価値が、コストまたはエネルギーと呼ばれてもよい。
係数行列14は、組み合わせ最適化問題の定義から導出される。係数行列14は、いわゆるQUBO行列であってもよい。係数行列14には、ゼロ要素と非ゼロ要素とが混在していることがある。係数行列14は、コスト行列と制約行列とを含んでもよい。コスト行列は、複数の変数の間の制約を考慮しない組み合わせ最適化問題の本質を表す係数を含む。制約行列は、複数の変数の間の制約を表す係数を含む。制約行列が、ペナルティ行列と呼ばれてもよい。制約行列は、制約を満たさない解ベクトル13から算出される評価値に対して、大きいペナルティを付加する。コスト行列と制約行列とは分離されていてもよい。また、係数行列14は、コスト行列と制約行列とを加算した行列でもよい。
また、記憶部11は、訓練済みの機械学習モデル17を記憶する。後述するように、機械学習モデル17は、特徴データ15およびパラメータデータ16から予測値18を算出する。情報処理装置10は、複数の係数行列と複数のパラメータ値と複数の評価値とを対応付けた訓練データを用いて、機械学習モデル17を訓練してもよい。機械学習モデル17は、ニューラルネットワークでもよいし、畳み込み演算を行う畳み込みニューラルネットワークでもよい。また、機械学習モデル17は、グラフデータに対して畳み込み演算を行うグラフニューラルネットワーク(GNN)でもよい。
処理部12は、ある組み合わせ最適化問題を示す係数行列14から、ソルバ装置20のパラメータ21に設定するパラメータ値を決定するパラメータ探索を行う。ソルバ装置20は、パラメータ21に設定されるパラメータ値によっては、解ベクトル13の最適解に到達しないことがあり、異なる評価値をもつ解ベクトル13を算出することがある。そこで、処理部12は、良好な評価値が得られるパラメータ値を探索する。このとき、処理部12は、ソルバ装置20を実際に呼び出さなくてもよい。
処理部12は、対象の組み合わせ最適化処理に対して、係数行列14から特徴データ15を生成する。特徴データ15は、複数の変数に対応する複数のノードを含むグラフデータと、それら複数のノードに対応付けられる複数の特徴ベクトルとを含んでもよい。例えば、処理部12は、係数行列14のi行j列が非ゼロ要素である場合、ノードiとノードjとの間にエッジを付与し、係数行列14のi行j列がゼロ要素である場合、ノードiとノードjとの間にエッジを付与しない。また、例えば、処理部12は、係数行列14のi行目またはi列目を、ノードiに特徴ベクトルとして付与する。なお、係数行列14が対称行列である場合、i行目とj列目は同じ数値列を含む。
処理部12は、パラメータ21がとり得る複数の候補値のうち、選択された1つの候補値を示すパラメータデータ16を生成する。パラメータデータ16は、選択された候補値そのものでもよく、選択された候補値を変換した値でもよい。なお、ソルバ装置20が、複数のパラメータをもっていてもよい。その場合、処理部12は、パラメータ毎に1つの候補値を選択することで、パラメータセットに対応する候補値セットを生成する。
処理部12は、特徴データ15およびパラメータデータ16を機械学習モデル17に入力することで、予測値18を算出する。予測値18は、選択された候補値のもとで達成される評価値の予測を示す。達成される評価値は、ソルバ装置20が組み合わせ最適化処理によって到達する解ベクトル13に対応する評価値である。このとき、処理部12は、評価値を算出するためにソルバ装置20を実際に呼び出さなくてよい。
処理部12は、選択する候補値を変えながらパラメータデータ16の生成と予測値18の算出とを繰り返すことで、パラメータ21に設定するパラメータ値を決定する。例えば、処理部12は、予測値18が最小化または最大化されるパラメータ値を探索する。処理部12は、決定したパラメータ値と係数行列14とを用いてソルバ装置20を呼び出すことで、ソルバ装置20から解ベクトル13の最適解を取得してもよい。また、処理部12は、決定したパラメータ値を表示装置に表示してもよいし、不揮発性ストレージに保存してもよいし、他の情報処理装置に送信してもよい。
パラメータ値の決定では、処理部12は、ベイズ最適化を実行してもよい。例えば、処理部12は、試行済みの1以上の候補値と算出された1以上の予測値とから、回帰分析などの統計分析によって、未試行の候補値に対応する予測値の期待値および分散を推定する。処理部12は、分散を考慮して、現時点よりも良好な予測値が算出される可能性のある候補値を、次に試行する候補値として選択する。処理部12は、期待値および分散から95%信頼区間の端点を算出し、算出した端点が最小または最大となる候補値を選択してもよい。良好な予測値が算出された試行済みの候補値の近傍にある候補値や、試行済みの候補値から離れた候補値が、次に選択されやすい。
以上説明したように、第1の実施の形態の情報処理装置10は、解ベクトル13と係数行列14とから算出される評価値に基づいて解ベクトル13の最適値を探索する組み合わせ最適化処理に対して、係数行列14から特徴データ15を生成する。情報処理装置10は、ソルバ装置20の探索方法を制御するパラメータ21の複数の候補値のうち、1つの候補値を示すパラメータデータ16を生成する。情報処理装置10は、特徴データ15とパラメータデータ16とを機械学習モデル17に入力することで、評価値の予測を示す予測値18を算出する。情報処理装置10は、パラメータデータ16の生成と予測値18の算出とを繰り返すことで、パラメータ21に設定するパラメータ値を決定する。
これにより、情報処理装置10は、ソルバ装置20が解ベクトル13の最適値に到達するようにパラメータ値を調整することができ、組み合わせ最適化処理の精度が向上する。また、ソルバ装置20を繰り返し呼び出す場合と比べて、情報処理装置10は、ソルバ装置20のパラメータ値の調整を高速化することができる。
なお、特徴データ15は、変数に対応するノードを含むグラフデータとノードに対応付けられる特徴ベクトルとを含んでもよく、機械学習モデル17は、ノード間の接続関係に応じて特徴ベクトルの畳み込み演算を行うグラフ畳み込みモデルであってもよい。これにより、機械学習モデル17は、変数のペアの関係を示す係数行列14から適切な特徴量を抽出することができ、評価値の予測精度が向上する。
また、情報処理装置10は、加算前のコスト行列と制約行列それぞれからグラフデータを生成してもよく、機械学習モデル17は、2つのグラフデータそれぞれに対してグラフ畳み込み演算を行ってもよい。これにより、情報処理装置10は、コスト行列に含まれる係数の分布と制約行列に含まれる係数の分布の間の傾向の違いを考慮して、コスト行列と制約行列から適切な特徴量を抽出することができ、評価値の予測精度が向上する。
また、情報処理装置10は、試行済みの1以上の候補値と算出された1以上の予測値とから、ベイズ最適化によって最適なパラメータ値を決定してもよい。これにより、情報処理装置10は、少ない試行回数で効率的に最適なパラメータ値を探索できる。また、情報処理装置10は、複数の係数行列と複数のパラメータ値と複数の評価値とを対応付けた訓練データを用いて、機械学習モデル17を訓練してもよい。これにより、予測精度の高い機械学習モデル17を生成することができる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
第2の実施の形態の情報処理装置100は、アニーリング法を実行するQUBOソルバ装置30を呼び出すことでQUBO問題の解を算出する。また、情報処理装置100は、QUBOソルバ装置30がもつパラメータの最適値を探索するパラメータ探索を行う。また、情報処理装置100は、パラメータ探索に用いられる機械学習モデルを訓練する機械学習を行う。ただし、機械学習、パラメータ探索およびQUBO問題の求解が、異なる情報処理装置によって実行されてもよい。情報処理装置100は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置100が、コンピュータ、古典コンピュータ、機械学習装置またはパラメータ探索装置と呼ばれてもよい。情報処理装置100は、第1の実施の形態の情報処理装置10に対応する。QUBOソルバ装置30は、第1の実施の形態のソルバ装置20に対応する。
図2は、第2の実施の形態の情報処理装置のハードウェア例を示す図である。
情報処理装置100は、CPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。CPU101またはGPU104は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムおよびデータをRAM102にロードし、プログラムを実行する。情報処理装置100は、複数のプロセッサを有してもよい。
RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。情報処理装置100は、RAM以外の種類の揮発性メモリを有してもよい。
HDD103は、オペレーティングシステム(OS:Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムと、データとを記憶する不揮発性ストレージである。情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。
GPU104は、CPU101と連携して画像処理を行い、情報処理装置100に接続された表示装置111に画像を出力する。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。情報処理装置100に、プリンタなどの他の種類の出力デバイスが接続されてもよい。また、GPU104は、GPGPU(General Purpose Computing on Graphics Processing Unit)として使用されてもよい。GPU104は、CPU101からの指示に応じてプログラムを実行する。情報処理装置100は、RAM102以外の揮発性半導体メモリをGPUメモリとして有してもよい。
入力インタフェース105は、情報処理装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。情報処理装置100に複数の入力デバイスが接続されてもよい。
媒体リーダ106は、記録媒体113に記録されたプログラムおよびデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。
記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。
通信インタフェース107は、ネットワーク114を介して他の情報処理装置やQUBOソルバ装置30と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
QUBOソルバ装置30は、アニーリング法によって、組み合わせ最適化問題を示すQUBO問題を解くコンピュータである。QUBOソルバ装置30は、量子アニーリングを実行する量子コンピュータでもよいし、電子回路を用いて量子アニーリングをシミュレートするシミュレーテッドアニーリングを実行する電子コンピュータでもよい。
QUBOソルバ装置30は、量子ビット群31および制御部32を有する。量子ビット群31は、複数の量子ビットを含む。ただし、QUBOソルバ装置30は、電子回路を用いて量子ビットの挙動をシミュレートしてもよい。制御部32は、情報処理装置100から、QUBO問題を示すQUBO行列と、最適解の探索方法を制御するパラメータ値とを含む要求メッセージを受信する。制御部32は、パラメータ値に応じた探索方法に従って、量子ビット群31を用いて、QUBO行列から最適解を示す解ベクトルを算出する。制御部32は、コスト関数値が改善するように(例えば、コスト関数値が最小化または最大化するように)解ベクトルを算出する。制御部32は、解ベクトルと、その解ベクトルに対応するコスト関数値とを情報処理装置100に送信する。
図3は、QUBO行列とコスト関数の例を示す図である。
組み合わせ最適化問題は、QUBO行列42によって表現される。コスト関数E(x)は、数式(1)に示すように、最適化対象の解ベクトル41と所与のQUBO行列42とからコスト関数値を算出する。解ベクトル41は、複数の変数を含むベクトルである。各変数は、0または1の二値をとる。QUBO行列42は、複数の変数に対応する行および列をもつ対称行列である。QUBO行列42に含まれる各要素は実数である。数式(1)において、xは解ベクトルであり、QはQUBO行列であり、xはi番目の変数であり、qijはQUBO行列の中のi行j列の要素である。
Figure 2023177389000002
コスト関数E(x)は、目的関数、評価関数またはエネルギー関数と呼ばれることがある。コスト関数値は、評価値、コストまたはエネルギーと呼ばれることがある。QUBOソルバ装置30は、コスト関数値が最小または最大になる解ベクトル41を探索する。
QUBO行列42は、コスト行列43と制約行列44とを合成することで生成される。QUBO行列42は、コスト行列43に制約行列44のα倍を加算したものである。αは、制約行列44のコスト関数値への影響度を調整するためのQUBO倍率である。
コスト行列43は、制約以外の組み合わせ最適化問題の定義から導出される係数行列であり、変数のペアの間の関係を示す。制約行列44は、複数の変数がとる値に対する制約条件を示す。制約行列44は、ペナルティ行列と呼ばれることがある。制約行列44は、制約条件を満たさない解ベクトル41に対応するコスト関数値に、大きなペナルティを付与する。情報処理装置100は、組み合わせ最適化問題の定義から、コスト行列43と制約行列44とを分けて生成することができる。
ここでは、組み合わせ最適化問題の一例として、二次ナップザック問題(QKP:Quadratic Knapsack Problem)を説明する。この二次ナップザック問題は、数式(2)に示すコスト関数によって定義される。容量Cのナップザックに、複数の荷物のうちの一部の荷物が詰め込まれる。i番目の荷物は、属性として価値vと重さwをもつ。この二次ナップザック問題は、詰め込まれる荷物の重さの合計が容量Cを超えない範囲で、詰め込まれる荷物の価値の合計が最大になるように、ナップザックに詰め込む荷物を選択する。
Figure 2023177389000003
数式(2)において、pijは、i番目の荷物とj番目の荷物の両方が詰め込まれる場合の価値を示す。例えば、pijはvとvの和である。また、xは、i番目の荷物をナップザックに詰め込むか否かを示す変数であり、0または1の二値をとる。数式(2)の右辺第1項は、コスト行列43に対応する。pijは、コスト行列43のi行j列の係数に相当する。数式(2)の右辺第2項は、制約行列44に対応する。右辺第2項を展開することで、制約行列44に含まれる係数が算出される。
ここで、QUBOソルバ装置30は、解ベクトル41の最適解を探索する探索方法を制御するためのソルバパラメータを含む。ソルバパラメータの具体例については後述する。QUBOソルバ装置30は、ソルバパラメータのパラメータ値によっては、一定時間内に最適解に到達しないことがあり、異なるコスト関数値をもつ解ベクトル41を探索結果として出力し得る。そこで、情報処理装置100は、ベイズ最適化によって、コスト関数値が最小化または最大化するようなパラメータ値を探索する。なお、コスト関数値を最小化するか最大化するかは、組み合わせ最適化問題の定義から決まる。
図4は、パラメータ値に対するベイズ最適化の例を示す図である。
ベイズ最適化は、これまでに試行されたパラメータ値に対応するコスト関数値を、測定点としてパラメータ空間にプロットする。ベイズ最適化は、プロットされた測定点に基づいて、パラメータ空間におけるコスト関数値の分布を推定する。このとき、ベイズ最適化は、コスト関数値の期待値に加えて、推定誤差を示す分散も算出する。ベイズ最適化は、分散も考慮して、現時点の何れの測定点よりも良好なコスト関数値(例えば、小さなコスト関数値または大きなコスト関数値)が得られる可能性があるパラメータ値を選択する。
例えば、ベイズ最適化は、複数の測定点から、コスト関数値の期待値の分布を示す曲線51を算出する。また、ベイズ最適化は、95%信頼区間の上限を示す曲線52や、95%信頼区間の下限を示す曲線53を算出する。測定点における分散は、ゼロであるか十分に小さい。測定点に近いパラメータ値における分散は、比較的小さい。一方、測定点から遠いパラメータ値における分散は、比較的大きい。よって、良好なコスト関数が得られた測定点の近傍にあるパラメータ値や、測定点から離れたパラメータ値が選択されやすい。
コスト関数値の最小化が目的である場合、ベイズ最適化は、例えば、95%信頼区間の下限が最小であるパラメータ値を、次に試行するパラメータ値として選択する。コスト関数値の最大化が目的である場合、ベイズ最適化は、例えば、95%信頼区間の上限が最大であるパラメータ値を、次に試行するパラメータ値として選択する。
このように、情報処理装置100は、ベイズ最適化によってQUBOソルバ装置30のパラメータ値を最適化することができる。ただし、あるパラメータ値に対応するコスト関数値を測定するために、QUBOソルバ装置30を実際に反復的に呼び出すと、パラメータ探索に長時間を要することがある。そこで、情報処理装置100は、機械学習モデルを用いて、パラメータ値に対応するコスト関数値を予測する。
図5は、パラメータ探索におけるデータフロー例を示す図である。
情報処理装置100は、QUBO問題131に対して好適なQUBOソルバ装置30のパラメータ値を探索する。まず、情報処理装置100は、グラフ生成器を用いて、QUBO問題131からコストグラフ132、コスト特徴データ133、制約グラフ134および制約特徴データ135を生成する。
コストグラフ132は、複数の変数に対応する複数ノードを含む無向グラフである。コストグラフ132は、ノード間のエッジとして、コスト行列43に含まれる非ゼロ要素の分布に応じたエッジを含む。コストグラフ132は、コスト行列43から生成される。コスト行列43のi行j列がゼロでない場合、コストグラフ132は、ノードiとノードjとを接続するエッジを含む。コスト行列43のi行j列がゼロである場合、コストグラフ132は、ノードiとノードjとを接続するエッジを含まない。
コスト特徴データ133は、コストグラフ132の複数のノードに対応付けられる複数の特徴ベクトルを含む。コスト特徴データ133は、コスト行列43から生成される。ノードiの特徴ベクトルは、コスト行列43のi行目の要素を列挙したものである。よって、特徴ベクトルの次元数は、コスト行列43の一辺の長さと同じであり、解ベクトル41の次元数と同じである。ただし、コスト行列43は対称行列であるため、ノードiの特徴ベクトルは、コスト行列43のi列目の要素を列挙したものと同じである。
制約グラフ134は、コストグラフ132と同様に、複数の変数に対応する複数ノードを含む無向グラフである。ただし、制約グラフ134は、ノード間のエッジとして、制約行列44に含まれる非ゼロ要素の分布に応じたエッジを含む。制約グラフ134は、制約行列44から生成される。制約行列44のi行j列がゼロでない場合、制約グラフ134は、ノードiとノードjとを接続するエッジを含む。制約行列44のi行j列がゼロである場合、制約グラフ134は、ノードiとノードjとを接続するエッジを含まない。
制約特徴データ135は、制約グラフ134の複数のノードに対応付けられる複数の特徴ベクトルを含む。制約特徴データ135は、制約行列44から生成される。ノードiの特徴ベクトルは、制約行列44のi行目の要素を列挙したものである。よって、特徴ベクトルの次元数は、制約行列44の一辺の長さと同じであり、解ベクトル41の次元数と同じである。ただし、制約行列44は対称行列であるため、ノードiの特徴ベクトルは、制約行列44のi列目の要素を列挙したものと同じである。
ここで、コスト行列43と制約行列44とでは、非ゼロ要素の分布の傾向が異なる。コスト行列43は、比較的浅い負数(絶対値が比較的小さい負数)を多く含む。一方、制約行列44は、正数と比較的深い負数(絶対値が比較的大きい負数)とを混在して含む。よって、コストグラフ132と制約グラフ134とを分離し、コスト特徴データ133と制約特徴データ135とを分離することで、機械学習モデルの予測精度が向上する。
情報処理装置100は、次に試行するパラメータ値136を選択する。情報処理装置100は、コストグラフ132、コスト特徴データ133、制約グラフ134、制約特徴データ135およびパラメータ値136を、訓練済みのグラフニューラルネットワークに入力する。グラフニューラルネットワークは、これらの入力データから正規化コスト関数値137を算出する。正規化コスト関数値137は、コスト関数値を0以上1以下の範囲に正規化したものである。グラフニューラルネットワークの訓練および予測が適切に行われるよう、グラフニューラルネットワークの出力は正規化されている。
情報処理装置100は、スケール変換器を用いて、正規化コスト関数値137をコスト関数値138に変換する。例えば、情報処理装置100は、0以上1以下の正規化コスト関数値137を、-2000万以上0以下のコスト関数値138に変換する。スケール変換は、例えば、Min-Max法による線形変換である。情報処理装置100は、ベイズ最適化器を用いて、これまでに算出されたコスト関数値138に基づいて、次にグラフニューラルネットワークに入力するパラメータ値136を選択する。情報処理装置100は、コスト関数値138を最小化または最大化するパラメータ値136が見つかったと判断した場合、すなわち、より良好なコスト関数値138が得られる可能性のあるパラメータ値136がないと判断した場合、ベイズ最適化を停止する。
グラフニューラルネットワークを用いたコスト関数値138の予測は、GPU104を用いて実行することが可能である。QUBOソルバ装置30の呼び出しは、1回当たり数秒(例えば、3秒)程度を要することがある。一方、GPU104を用いたコスト関数値138の予測は、1回当たり数十ミリ秒(例えば、46ミリ秒)程度で実行され得る。よって、パラメータ探索の実行時間が短縮される。
図6は、グラフニューラルネットワークの構造例を示す図である。
グラフニューラルネットワークは、パラメータ値136に関して、全結合層140および活性化層141を含む。全結合層140は、1以上のパラメータ値を受け付ける。例えば、全結合層140は、QUBOソルバ装置30がもつ4つのソルバパラメータのパラメータ値を列挙した4次元ベクトルを受け付ける。全結合層140は、受け付けた1以上のパラメータ値をそれぞれ変換して特徴ベクトルを出力する。全結合層140の出力の次元数は、入力の次元数と同じでもよいし入力の次元数と異なってもよい。活性化層141は、全結合層140が出力する特徴ベクトルの各要素を活性化関数に通す。活性化関数は、例えば、tanhまたはシグモイド関数である。例えば、活性化層141は、ソルバパラメータの個数に相当する次元数をもつ特徴ベクトルを出力する。
また、グラフニューラルネットワークは、コストグラフ132に関して、グラフ畳み込み層142-1,144-1などの複数のグラフ畳み込み層、活性化層143-1,145-1などの複数の活性化層および全結合層146-1を含む。複数のグラフ畳み込み層と複数の活性化層とは交互に配置される。
グラフ畳み込み層142-1は、コストグラフ132およびコスト特徴データ133を受け付ける。グラフ畳み込み層142-1は、コストグラフ132が示すノード間エッジに従って、コスト特徴データ133に含まれる各ノードの特徴ベクトルを更新するグラフ畳み込み演算を行う。グラフ畳み込み演算については後述する。更新後の特徴ベクトルの次元数は、更新前と同じでもよいし更新前と異なってもよい。活性化層143-1は、グラフ畳み込み層142-1が出力する特徴ベクトルの各要素を活性化関数に通す。
グラフ畳み込み層144-1は、コストグラフ132が示すノード間エッジに従って、前段の活性化層から受け付けた各ノードの特徴ベクトルを更新するグラフ畳み込み演算を行う。活性化層145-1は、グラフ畳み込み層144-1が出力する特徴ベクトルの各要素を活性化関数に通す。全結合層146-1は、活性化層145-1が出力する複数のノードの特徴ベクトルを合成して、単一の特徴ベクトルを出力する。全結合層146-1の出力の次元数は、グラフ畳み込み層142-1が受け付ける特徴ベクトルの次元数と同じでもよいし異なってもよい。例えば、全結合層146-1は、組み合わせ最適化問題の変数の個数に相当する次元数をもつ特徴ベクトルを出力する。
また、グラフニューラルネットワークは、制約グラフ134に関して、グラフ畳み込み層142-2,144-2などの複数のグラフ畳み込み層、活性化層143-2,145-2などの複数の活性化層および全結合層146-2を含む。複数のグラフ畳み込み層と複数の活性化層とは交互に配置される。
グラフ畳み込み層142-2は、制約グラフ134および制約特徴データ135を受け付ける。グラフ畳み込み層142-2は、制約グラフ134が示すノード間エッジに従って、制約特徴データ135に含まれる各ノードの特徴ベクトルを更新するグラフ畳み込み演算を行う。グラフ畳み込み演算の手順はグラフ畳み込み層142-1と同じであるものの、演算対象データがグラフ畳み込み層142-1と異なる。更新後の特徴ベクトルの次元数は、更新前と同じでもよいし更新前と異なってもよい。活性化層143-2は、グラフ畳み込み層142-2が出力する特徴ベクトルの各要素を活性化関数に通す。
グラフ畳み込み層144-2は、制約グラフ134が示すノード間エッジに従って、前段の活性化層から受け付けた各ノードの特徴ベクトルを更新するグラフ畳み込み演算を行う。活性化層145-2は、グラフ畳み込み層144-2が出力する特徴ベクトルの各要素を活性化関数に通す。全結合層146-2は、活性化層145-2が出力する複数のノードの特徴ベクトルを合成して、単一の特徴ベクトルを出力する。全結合層146-2の出力の次元数は、グラフ畳み込み層142-2が受け付ける特徴ベクトルの次元数と同じでもよいし異なってもよい。例えば、全結合層146-2は、組み合わせ最適化問題の変数の個数に相当する次元数をもつ特徴ベクトルを出力する。
更に、グラフニューラルネットワークは、全結合層147,149および活性化層148を含む。全結合層147は、活性化層141および全結合層146-1,146-2が出力する特徴ベクトルを連結する。全結合層147の入力の次元数は、活性化層141および全結合層146-1,146-2の出力の次元数の合計である。全結合層147は、連結された特徴ベクトルの各要素を変換して別の特徴ベクトルを出力する。全結合層147の出力の次元数は、入力の次元数と同じでもよいし入力の次元数と異なってもよい。
活性化層148は、全結合層147が出力する特徴ベクトルの各要素を活性化関数に通す。全結合層149は、活性化層148が出力する特徴ベクトルから正規化コスト関数値を算出する。正規化コスト関数値は、0以上1以下のスカラ値である。
図7は、グラフ畳み込み演算の例を示す図である。
変数#0に対応するノード60は、変数#1に対応するノード61および変数#2に対応するノード62との間にエッジをもつ。ノード60には、特徴ベクトル63が対応付けられている。ノード61には、特徴ベクトル64が対応付けられている。ノード62には、特徴ベクトル65が対応付けられている。ここでは、ノード60の特徴ベクトル63を、周辺ノードの特徴ベクトルに基づいて更新する場合について説明する。
グラフニューラルネットワークは、特徴ベクトル63に係数行列66を乗じて特徴ベクトル67を算出する。同様に、グラフニューラルネットワークは、特徴ベクトル64に係数行列66を乗じて特徴ベクトル68を算出し、特徴ベクトル65に係数行列66を乗じて特徴ベクトル69を算出する。特徴ベクトル67,68,69の次元数は同じである。特徴ベクトル67,68,69の次元数は、特徴ベクトル63,64,65と同じでもよいし異なってもよい。係数行列66は、機械学習を通じて決定される。
グラフニューラルネットワークは、特徴ベクトル67に、ノード60と隣接するノード61,62の特徴ベクトル68,69を合成することで、ノード60の更新後の特徴ベクトルを算出する。例えば、グラフニューラルネットワークは、特徴ベクトル67に特徴ベクトル68,69を加算する。グラフ畳み込み演算においては、ノード60と隣接しないノードの特徴ベクトルは、特徴ベクトル67と合成されない。
次に、グラフニューラルネットワークの機械学習について説明する。
図8は、訓練データテーブルの例を示す図である。
情報処理装置100は、訓練データを用いて前述のグラフニューラルネットワークを訓練する。訓練データは、入力データと教師データとを対応付けた複数のサンプルを含む。例えば、訓練データは、20000個のサンプルを含む。情報処理装置100は、訓練データが登録された訓練データテーブル128を記憶する。
訓練データのサンプルは、サンプルID、QUBOタイプ、ソルバパラメータ、メタパラメータおよびコスト関数値を含む。サンプルIDは、サンプルを識別する識別子である。QUBOタイプは、QUBO行列を生成するためのパラメータである。情報処理装置100は、QUBOタイプに応じたQUBO行列をランダムに生成する。ソルバパラメータは、QUBOソルバ装置30がもつパラメータのうち前述のパラメータ探索の対象となるパラメータである。メタパラメータは、QUBOソルバ装置30がもつパラメータのうち前述のパラメータ探索の対象外のパラメータである。コスト関数値は、グラフニューラルネットワークの出力の正解を示す教師データに相当する。
QUBOタイプは、QUBOサイズ、QUBO密度(Density)、QUBO倍率(Factor)およびQUBOシード(Seed)を含む。QUBOサイズは、QUBO行列の一辺の長さを調整するためのパラメータである。QUBOサイズ+50が、QUBO行列の一辺の長さである。例えば、QUBOサイズは950に固定される。
QUBO密度は、QUBO行列に含まれる非ゼロ要素の割合を示す。例えば、QUBO密度の候補は、25%、50%、75%および100%の4通りである。QUBO倍率は、制約行列の重みαを示す。例えば、QUBO倍率は100に固定される。QUBOシードは、QUBO行列の要素をランダムに生成するための乱数調整値である。例えば、QUBOシードの候補は、1以上25以下の範囲の25通りである。情報処理装置100は、QUBOタイプに従って、コスト行列と制約行列とを分けて生成する。
ソルバパラメータは、グローバル探索レベル(gs_level)、カットオフレベル(gs_cutoff)、試行回数(num_run)およびグループ数(num_group)を含む。グローバル探索レベルは、ローカル探索の開始点を繰り返し選択するグローバル探索の強度を示す。例えば、グローバル探索レベルの候補は、0以上100以下の範囲の101通りである。カットオフレベルは、グローバル探索における収束判定に用いられる閾値である。例えば、カットオフレベルの候補は、0以上8000以下の範囲の4873通りである。試行回数は、グループ毎の並列試行回数である。試行回数の候補は、0以上1000以下の範囲の1004通りである。グループ数×試行回数が、全体の並列試行回数である。グループ数の候補は、1以上16以下の範囲の16通りである。
メタパラメータは、実行時間(time_runner)を含む。実行時間は、QUBOソルバ装置30による1回当たりの解探索の最大実行時間である。設定された実行時間を経過すると解探索が打ち切られる。例えば、実行時間は3秒に固定される。コスト関数値は、探索された解ベクトルに対応するコスト関数値である。例えば、コスト関数の候補は、-2000万以上0以下の範囲の20000通りである。ただし、訓練データテーブル128に登録されるコスト関数値は、0以上1以下の範囲に正規化されていてもよい。訓練データテーブル128を作成するにあたり、情報処理装置100は、QUBOソルバ装置30を呼び出すことでコスト関数値を測定する。
情報処理装置100は、訓練データテーブル128に基づいてグラフニューラルネットワークを訓練する。情報処理装置100は、サンプル毎に、QUBOタイプを満たすコスト行列および制約行列をランダムに生成する。情報処理装置100は、サンプル毎に、生成されたコスト行列からコストグラフおよびコスト特徴データを生成し、生成された制約行列から制約グラフおよび制約特徴データを生成する。
情報処理装置100は、サンプル毎に、グラフニューラルネットワークにソルバパラメータ、コストグラフ、コスト特徴データ、制約グラフおよび制約特徴データを入力する。情報処理装置100は、グラフニューラルネットワークが出力する予測値と正解のコスト関数値とを比較して誤差を算出する。情報処理装置100は、一定数のサンプルを含むミニバッチ単位で、誤差逆伝播法によって、グラフニューラルネットワークに含まれる重みそれぞれの誤差勾配を算出し、算出された誤差勾配に基づいて重みを更新する。
図9は、ソルバパラメータ値の分布例を示すグラフである。
グラフ71は、20000個のサンプルに含まれるグローバル探索レベルの分布の例を示す。グラフ71の横軸はグローバル探索レベルの値を示し、グラフ71の縦軸はサンプル数を示す。グラフ72は、20000個のサンプルに含まれるカットオフレベルの分布の例を示す。グラフ72の横軸はカットオフレベルの値を示し、グラフ72の縦軸はサンプル数を示す。グラフ73は、20000個のサンプルに含まれる試行回数の分布の例を示す。グラフ73の横軸は試行回数の値を示し、グラフ73の縦軸はサンプル数を示す。グラフ74は、20000個のサンプルに含まれるグループ数の分布の例を示す。グラフ74の横軸はグループ数の値を示し、グラフ74の縦軸はサンプル数を示す。
図10は、コスト関数値と正規化コスト関数値の分布例を示すグラフである。
グラフ75は、20000個のサンプルに含まれる正規化前のコスト関数値の分布の例を示す。グラフ75の横軸はコスト関数値を示し、グラフ75の縦軸はサンプル数を示す。グラフ76は、グラフ75に対応する正規化コスト関数値の分布の例を示す。グラフ76の横軸は正規化コスト関数値を示し、グラフ76の縦軸はサンプル数を示す。このように、コスト関数値の正規化は、Min-Max法による線形変換である。
図11は、コスト関数値の予測例を示すグラフである。
グラフ77は、上記の訓練データを用いて訓練されたグラフニューラルネットワークが、あるQUBO問題に対して予測するコスト関数値の例を示す。グラフ77の横軸はソルバパラメータのパラメータ値に対応し、グラフ77は正規化されていないコスト関数値の予測を示す。グラフ77に示すように、グラフニューラルネットワークは、パラメータ値によって異なるコスト関数値を予測する。情報処理装置100は、全てのパラメータ値に対応するコスト関数値を予測しなくても、ベイズ最適化によって、最も良好なコスト関数値(例えば、最小のコスト関数値)が得られるパラメータ値を特定する。
次に、情報処理装置100の機能および処理手順について説明する。
図12は、情報処理装置の機能例を示すブロック図である。
情報処理装置100は、訓練データ記憶部121およびモデル記憶部122を有する。これらの記憶部は、例えば、RAM102またはHDD103を用いて実装される。また、情報処理装置100は、QUBO行列生成部123、グラフ生成部124、モデル訓練部125、パラメータ探索部126およびソルバ呼出部127を有する。これらの処理部は、例えば、CPU101またはGPU104とプログラムとを用いて実装される。
訓練データ記憶部121は、前述の訓練データテーブル128を記憶する。QUBOタイプ、ソルバパラメータおよびメタパラメータの値は、ユーザから指定されてもよいし、自動サンプリングアルゴリズムを用いて算出されてもよい。コスト関数値は、ソルバ呼出部127によって記録される。また、訓練データ記憶部121は、QUBO行列生成部123によって生成されるQUBO行列を記憶する。モデル記憶部122は、モデル訓練部125によって訓練されるグラフニューラルネットワークを記憶する。
QUBO行列生成部123は、訓練データテーブル128に含まれる各サンプルのQUBOタイプから、そのQUBOタイプの条件に合致するQUBO行列をランダムに生成する。このとき、QUBO行列は、コスト行列と制約行列とに分けて生成される。
グラフ生成部124は、訓練データ記憶部121に記憶された各サンプルのQUBO行列をグラフデータに変換する。グラフ生成部124は、コスト行列からコストグラフおよびコスト特徴データを生成し、制約行列から制約グラフおよび制約特徴データを生成する。また、グラフ生成部124は、グラフニューラルネットワークが訓練された後、解きたいQUBO問題を示すQUBO行列を受け付ける。このQUBO行列は、ユーザによって作成されてもよいし、QUBO問題の定義から自動的に生成されてもよい。グラフ生成部124は、上記と同様に、このQUBO行列をグラフデータに変換する。
モデル訓練部125は、訓練データを用いてグラフニューラルネットワークを訓練する。モデル訓練部125は、サンプル毎に、ソルバパラメータのパラメータ値、コストグラフ、コスト特徴データ、制約グラフおよび制約特徴データをグラフニューラルネットワークに入力し、正規化コスト関数値の予測値を算出する。モデル訓練部125は、予測値と正解の正規化コスト関数値との間の誤差を算出する。モデル訓練部125は、ミニバッチ毎単位で、誤差が小さくなるようにグラフニューラルネットワークの重みを更新する。
パラメータ探索部126は、訓練されたグラフニューラルネットワークを用いて、解きたいQUBO問題にとって最適なソルバパラメータのパラメータ値を推定する。パラメータ探索部126は、パラメータ値を選択し、選択したパラメータ値、コストグラフ、コスト特徴データ、制約グラフおよび制約特徴データをグラフニューラルネットワークに入力し、正規化コスト関数値の予測値を算出する。パラメータ探索部126は、正規化コスト関数値の予測値を、正規化されていないコスト関数値の予測値に変化する。パラメータ探索部126は、ベイズ最適化によって、次に試行するパラメータ値を選択する。パラメータ探索部126は、上記を繰り返すことで最適なパラメータ値を推定する。
ソルバ呼出部127は、QUBOソルバ装置30を呼び出して、QUBOソルバ装置30にQUBO問題を解かせる。ソルバ呼出部127は、訓練データテーブル128に含まれるサンプル毎に、QUBO行列生成部123によって生成されたQUBO行列とソルバパラメータのパラメータ値とを、QUBOソルバ装置30に対して指定する。このとき、コスト行列と制約行列とは合算されて指定される。ソルバ呼出部127は、QUBOソルバ装置30が算出した解ベクトルに対応するコスト関数値を訓練データテーブル128に記録する。コスト関数値の測定値は、QUBOソルバ装置30から取得したものであってもよいし、解ベクトルからソルバ呼出部127が算出するものであってもよい。
また、ソルバ呼出部127は、パラメータ探索部126が推定した最適なパラメータ値を取得する。ソルバ呼出部127は、解きたいQUBO問題を示すQUBO行列と推定されたパラメータ値とを指定してQUBOソルバ装置30を呼び出す。ソルバ呼出部127は、算出された解ベクトルとコスト関数値とを取得する。なお、パラメータ探索部126は、解きたいQUBO問題に対して2以上のパラメータ値の候補を挙げてもよく、ソルバ呼出部127は、QUBOソルバ装置30を2回以上呼び出してもよい。
図13は、機械学習の手順例を示すフローチャートである。
(S10)QUBO行列生成部123は、各サンプルのQUBOタイプの値からQUBO行列をランダムに生成する。ここでは、コスト行列と制約行列とが分かれている。
(S11)ソルバ呼出部127は、各サンプルのQUBO行列とソルバパラメータの値とから、QUBOソルバ装置30を呼び出してコスト関数値を測定する。
(S12)グラフ生成部124は、各サンプルのQUBO行列からグラフデータを生成する。グラフ生成部124は、コスト行列からコストグラフおよびコスト特徴データを生成し、制約行列から制約グラフおよび制約特徴データを生成する。
(S13)モデル訓練部125は、ミニバッチサイズのサンプルを抽出し、各サンプルのグラフデータとソルバパラメータの値とをグラフニューラルネットワークに入力する。
(S14)モデル訓練部125は、グラフニューラルネットワークが出力する予測値と正解の正規化コスト関数値との間の誤差を算出する。モデル訓練部125は、誤差逆伝播法によって、誤差が小さくなるようにグラフニューラルネットワークを更新する。
(S15)モデル訓練部125は、ステップS13,S14のイテレーション回数が、事前に設定された閾値に達したか判断する。イテレーション回数が閾値に達した場合はステップS16に処理が進み、それ以外の場合はステップS13に処理が戻る。
(S16)モデル訓練部125は、訓練されたグラフニューラルネットワークを保存する。なお、モデル訓練部125は、訓練されたグラフニューラルネットワークを、表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。
図14は、パラメータ探索の手順例を示すフローチャートである。
(S20)グラフ生成部124は、解きたいQUBO問題に対応するQUBO行列を取得する。ここでは、コスト行列と制約行列とが分かれている。
(S21)グラフ生成部124は、取得したQUBO行列からグラフデータを生成する。グラフ生成部124は、コスト行列からコストグラフおよびコスト特徴データを生成し、制約行列から制約グラフおよび制約特徴データを生成する。
(S22)パラメータ探索部126は、ソルバパラメータの値を選択する。
(S23)パラメータ探索部126は、グラフデータと選択したソルバパラメータの値とをグラフニューラルネットワークに入力する。
(S24)パラメータ探索部126は、グラフニューラルネットワークが出力する正規化コスト関数値の予測値を、コスト関数値の予測値にスケール変換する。
(S25)パラメータ探索部126は、これまでに取得されたソルバパラメータの値とコスト関数値の予測値との対応関係を分析する。パラメータ探索部126は、ベイズ最適化によって、これまでに取得された予測値より良好なコスト関数値が得られる可能性のあるソルバパラメータの値を探索する。
(S26)パラメータ探索部126は、ソルバパラメータの最適値が既に見つかったか判断する。ソルバパラメータの最適値が既に見つかったと判断した場合、ステップS27に処理が進む。より良好なコスト関数値が得られる可能性のあるソルバパラメータの値が未試行である場合、ステップS22に処理が戻る。
(S27)ソルバ呼出部127は、QUBO行列とソルバパラメータの最適値とから、QUBOソルバ装置30を呼び出して解ベクトルおよびコスト関数値を取得する。
(S28)ソルバ呼出部127は、取得した解ベクトルおよびコスト関数値を出力する。ソルバ呼出部127は、解ベクトルおよびコスト関数値を不揮発性ストレージに保存してもよいし、表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。
以上説明したように、第2の実施の形態の情報処理装置100は、量子アニーリングやシミュレーテッドアニーリングなどのアニーリング法によってQUBO問題を解くQUBOソルバ装置30を使用する。これにより、情報処理装置100は、計算量の大きい組み合わせ最適化問題を高速に解くことができる。
また、情報処理装置100は、QUBO問題に合わせて、QUBOソルバ装置30の探索方法を制御するパラメータの値を最適化する。これにより、QUBOソルバ装置30が算出する解ベクトルの精度が向上する。また、情報処理装置100は、ベイズ最適化によってソルバパラメータの最適値を探索する。これにより、ソルバパラメータの値に対応するコスト関数値を算出する試行回数が削減される。
また、情報処理装置100は、訓練済みの機械学習モデルを用いて、ソルバパラメータの値に応じたコスト関数値を予測する。これにより、QUBOソルバ装置30を繰り返し呼び出す場合と比べて、ソルバパラメータの値を最適化するパラメータ探索が高速化される。また、GPU104を用いて機械学習モデルによる予測を実行することで、パラメータ探索の実行時間が短縮する。また、情報処理装置100は、機械学習モデルとしてグラフニューラルネットワークを使用する。これにより、QUBO行列上での変数の並び方の影響を受けずに適切な特徴量が抽出され、コスト関数値の予測精度が向上する。
また、情報処理装置100は、係数の分布傾向が異なるコスト行列と制約行列とを分離し、コスト行列と制約行列それぞれからグラフデータを生成する。そして、情報処理装置100は、コスト行列に関するグラフデータと制約行列に関するグラフデータとを、機械学習モデルに入力する。これにより、コスト関数値の予測精度が向上する。また、情報処理装置100は、機械学習モデルが0以上1以下の数値を予測するようにコスト関数値を正規化する。これにより、情報処理装置100は、機械学習モデルを効率的に訓練することができると共に、機械学習モデルの予測精度が向上する。
10 情報処理装置
11 記憶部
12 処理部
13 解ベクトル
14 係数行列
15 特徴データ
16 パラメータデータ
17 機械学習モデル
18 予測値
20 ソルバ装置
21 パラメータ

Claims (7)

  1. 離散値をとる複数の変数を含む解ベクトルと前記複数の変数に対応する行および列をもつ係数行列とから算出される評価値に基づいて、前記解ベクトルの最適値を探索する組み合わせ最適化処理に対して、前記係数行列から特徴データを生成し、
    アニーリング法によって前記組み合わせ最適化処理を行うソルバ装置の探索方法を制御するパラメータの複数の候補値のうち、1つの候補値を示すパラメータデータを生成し、
    前記特徴データと前記パラメータデータとを、訓練済みの機械学習モデルに入力することで、前記1つの候補値に対応する前記評価値の予測を示す予測値を算出し、
    前記パラメータデータの生成と前記予測値の算出とを繰り返すことで、前記ソルバ装置の前記パラメータに設定するパラメータ値を決定する、
    処理をコンピュータに実行させる計算プログラム。
  2. 前記特徴データは、前記複数の変数に対応する複数のノードを含むグラフデータと、前記複数のノードに対応付けられる複数の特徴ベクトルとを含み、
    前記機械学習モデルは、前記グラフデータが示す前記複数のノードの接続関係に基づいて、前記複数の特徴ベクトルの間で畳み込み演算を行う、
    請求項1記載の計算プログラム。
  3. 前記係数行列は、前記複数の変数がとる前記離散値の制約を示す制約行列と、前記制約以外の前記複数の変数の間の関係を示すコスト行列とを含み、
    前記特徴データは、前記コスト行列から生成される第1のグラフデータと、前記制約行列から生成される第2のグラフデータとを含む、
    請求項2記載の計算プログラム。
  4. 前記パラメータ値の決定では、試行済みの1以上の候補値と算出された1以上の予測値とから、次に試行する候補値を選択するベイズ最適化処理を行う、
    請求項1記載の計算プログラム。
  5. 複数の係数行列と複数のパラメータ値と複数の評価値とを対応付けた訓練データを用いて、前記機械学習モデルを訓練する処理を前記コンピュータに更に実行させる、
    請求項1記載の計算プログラム。
  6. 離散値をとる複数の変数を含む解ベクトルと前記複数の変数に対応する行および列をもつ係数行列とから算出される評価値に基づいて、前記解ベクトルの最適値を探索する組み合わせ最適化処理に対して、前記係数行列から特徴データを生成し、
    アニーリング法によって前記組み合わせ最適化処理を行うソルバ装置の探索方法を制御するパラメータの複数の候補値のうち、1つの候補値を示すパラメータデータを生成し、
    前記特徴データと前記パラメータデータとを、訓練済みの機械学習モデルに入力することで、前記1つの候補値に対応する前記評価値の予測を示す予測値を算出し、
    前記パラメータデータの生成と前記予測値の算出とを繰り返すことで、前記ソルバ装置の前記パラメータに設定するパラメータ値を決定する、
    処理をコンピュータが実行する計算方法。
  7. 離散値をとる複数の変数に対応する行および列をもつ係数行列と、訓練済みの機械学習モデルとを記憶する記憶部と、
    前記複数の変数を含む解ベクトルと前記係数行列とから算出される評価値に基づいて、前記解ベクトルの最適値を探索する組み合わせ最適化処理に対して、前記係数行列から特徴データを生成し、アニーリング法によって前記組み合わせ最適化処理を行うソルバ装置の探索方法を制御するパラメータの複数の候補値のうち、1つの候補値を示すパラメータデータを生成し、前記特徴データと前記パラメータデータとを前記機械学習モデルに入力することで、前記1つの候補値に対応する前記評価値の予測を示す予測値を算出し、前記パラメータデータの生成と前記予測値の算出とを繰り返すことで、前記ソルバ装置の前記パラメータに設定するパラメータ値を決定する処理部と、
    を有する情報処理装置。
JP2022090013A 2022-06-02 2022-06-02 計算プログラム、計算方法および情報処理装置 Pending JP2023177389A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2022090013A JP2023177389A (ja) 2022-06-02 2022-06-02 計算プログラム、計算方法および情報処理装置
EP23156926.0A EP4287079A1 (en) 2022-06-02 2023-02-15 Program, calculation method, and information processing apparatus
US18/169,230 US20230394106A1 (en) 2022-06-02 2023-02-15 Calculation method and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022090013A JP2023177389A (ja) 2022-06-02 2022-06-02 計算プログラム、計算方法および情報処理装置

Publications (1)

Publication Number Publication Date
JP2023177389A true JP2023177389A (ja) 2023-12-14

Family

ID=85251758

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022090013A Pending JP2023177389A (ja) 2022-06-02 2022-06-02 計算プログラム、計算方法および情報処理装置

Country Status (3)

Country Link
US (1) US20230394106A1 (ja)
EP (1) EP4287079A1 (ja)
JP (1) JP2023177389A (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7059214B2 (ja) 2019-01-31 2022-04-25 株式会社日立製作所 演算装置
US20210287124A1 (en) 2020-03-10 2021-09-16 1Qb Information Technologies Inc. Method and system for estimating physical quantities of a plurality of models using a sampling device
US11551039B2 (en) 2020-04-28 2023-01-10 Microsoft Technology Licensing, Llc Neural network categorization accuracy with categorical graph neural networks
US11227190B1 (en) 2021-06-29 2022-01-18 Alipay (Hangzhou) Information Technology Co., Ltd. Graph neural network training methods and systems

Also Published As

Publication number Publication date
EP4287079A1 (en) 2023-12-06
US20230394106A1 (en) 2023-12-07

Similar Documents

Publication Publication Date Title
US20220035878A1 (en) Framework for optimization of machine learning architectures
US11556850B2 (en) Resource-aware automatic machine learning system
US8700548B2 (en) Optimization technique using evolutionary algorithms
US20160034840A1 (en) Adaptive Task Assignment
JP6509717B2 (ja) 事例選択装置、分類装置、方法、及びプログラム
US10963802B1 (en) Distributed decision variable tuning system for machine learning
US20210158212A1 (en) Learning method and learning apparatus
Kalita et al. A dynamic framework for tuning SVM hyper parameters based on Moth-Flame Optimization and knowledge-based-search
Mehrizi et al. A Bayesian Poisson–Gaussian process model for popularity learning in edge-caching networks
Bi et al. A genetic algorithm-assisted deep learning approach for crop yield prediction
KR20190141581A (ko) 데이터 예측을 위한 인공신경망을 학습하는 방법 및 장치
Raymond et al. Genetic programming with rademacher complexity for symbolic regression
CN116861957A (zh) 一种基于强化学习的算子自动调优方法及相关装置
US11914672B2 (en) Method of neural architecture search using continuous action reinforcement learning
Fan et al. Surrogate-assisted evolutionary neural architecture search with network embedding
US20210397948A1 (en) Learning method and information processing apparatus
Litzinger et al. Compute-efficient neural network architecture optimization by a genetic algorithm
Voke et al. A Framework for Feature Selection using Data Value Metric and Genetic Algorithm
Zhang et al. Reinforcement learning with actor-critic for knowledge graph reasoning
Mills et al. L2nas: Learning to optimize neural architectures via continuous-action reinforcement learning
CN113448821B (zh) 一种识别工程缺陷的方法和装置
JP2023177389A (ja) 計算プログラム、計算方法および情報処理装置
Pacchiano et al. Neural design for genetic perturbation experiments
Chen et al. Towards efficient multiobjective hyperparameter optimization: a multiobjective multi-fidelity bayesian optimization and hyperband algorithm
US20220083913A1 (en) Learning apparatus, learning method, and a non-transitory computer-readable storage medium