(57)【特許請求の範囲】
【請求項１】
入力されたデータに応じた演算結果を出力するノードが１つ以上含まれる層を多段に接続した学習器であって、異なる層に含まれるノード間を接続する接続経路が設定されている学習器の最適化を行う最適化装置であって、
前記学習器に含まれる全ての接続経路に対して設定される係数の値の組み合わせを格子モデルの格子点にあてはめ、入力データと出力データとが示す特徴に基づいて、格子モデルの格子点を連結する重みの値を入力値とした格子モデルの特定関数を生成し、
量子揺らぎを用いて特性関数の値が最小値となる格子モデルの基底状態を求める量子計算装置に、前記生成された特性関数の基底状態における格子点の値を算出させ、
前記格子点の値に対応する前記係数の値を出力する
ことを特徴とする最適化装置。
【請求項２】
前記最適化装置は、
前記係数の値の組み合わせをあてはめた格子点のうち、前記入力データが入力された場合に前記出力データと同一又は類似するデータを出力する学習器の各接続経路に対して設定された係数の値をあてはめた格子点の値が所定の値に近づくように、各格子点を連結する重みの値を設定する
ことを特徴とする請求項１に記載の最適化装置。 
【請求項３】
入力されたデータに応じた演算結果を出力するノードが１つ以上含まれる層を多段に接続した学習器であって、異なる層に含まれるノード間を接続する接続経路が設定されている学習器の最適化を行う最適化装置が、
前記学習器に入力する入力データと、当該入力データを入力した際に前記学習器に出力させる出力データとを受付けし、
前記学習器に含まれる全ての接続経路に対して設定される係数の値の組み合わせを格子モデルの格子点にあてはめ、入力データと出力データとが示す特徴に基づいて、格子モデルの格子点を連結する重みの値を入力値とした格子モデルの特定関数を生成し、
量子揺らぎを用いて特性関数の値が最小値となる格子モデルの基底状態を求める量子計算装置に、前記生成された特性関数の基底状態における格子点の値を算出させ、
前記格子点の値に対応する前記係数の値を出力する
ことを特徴とする最適化方法。 
【請求項４】
入力されたデータに応じた演算結果を出力するノードが１つ以上含まれる層を多段に接続した学習器であって、異なる層に含まれるノード間を接続する接続経路が設定されている学習器の最適化を行う最適化装置が有するコンピュータに、
前記学習器に入力する入力データと、当該入力データを入力した際に前記学習器に出力させる出力データとを受付けし、
前記学習器に含まれる全ての接続経路に対して設定される係数の値の組み合わせを格子モデルの格子点にあてはめ、入力データと出力データとが示す特徴に基づいて、格子モデルの格子点を連結する重みの値を入力値とした格子モデルの特定関数を生成し、
量子揺らぎを用いて特性関数の値が最小値となる格子モデルの基底状態を求める量子計算装置に、前記生成された特性関数の基底状態における格子点の値を算出させ、
前記格子点の値に対応する前記係数の値を出力する
処理を実行させることを特徴とする最適化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、最適化装置、最適化方法および最適化プログラムに関する。
【背景技術】
【０００２】
近年、多層に接続されたニューロン（以下、ノードと記載する場合がある。）を有するＤＮＮ（Deep  Neural  Network）を利用して言語認識や画像認識の学習を行うディープラーニングに関する技術が知られている。このようなＤＮＮでは、所定の重み係数がそれぞれ個別に設定された接続経路を介して、異なる層のノード同士が接続されており、あるノードが出力した値を、接続経路に設定された重み係数で補正した値が、他の層のノードへと伝達されている。
【０００３】
このようなＤＮＮに言語や画像等の特徴を学習させるため、バックプロパゲーション法などを用いて、ＤＮＮが入力データの特徴を適切に抽出できるように、各接続経路に設定された重み係数を試行錯誤的に設定する手法が用いられている。しかしながら、このような手法では、ノードの数や層の数が増加するに従って計算量が増大するため、入力データの特徴を適切に抽出できるように各接続経路の重み係数を最適化する処理が困難となる。
【０００４】
一方で、量子力学的な状態の重ね合わせを用いることで、従来の計算装置では実現できない規模の並列性を実現する量子計算の技術が研究されている。例えば、このような量子計算の技術として、複数の入力を重ね合わせ状態とすることで、所定の条件に対する最適解や入力された情報が有する周期等を従来の計算装置よりも高速に求める技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５３５４２３３号公報
【非特許文献】
【０００６】
【非特許文献１】「量子力学を使った情報処理」、加藤  豪、人工知能  2014年  05月号
【非特許文献２】「Quantum  Deep  Learning」,  Nathan  Wiebe,  Ashish  Kapoor,  and  Krysta  M.  Svore,Microsoft  Research,  Redmond,  WA  (USA),  インターネット<http://arxiv.org/pdf/1412.3489v1.pdf>、平成２７年８月１８日検索
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＤＮＮの各接続経路の重み係数を最適化するための量子計算の手法については、これまで提案されていなかった。このため、ＤＮＮの学習には、多くの時間や計算資源が必要である。
【０００８】
本願は、上記に鑑みてなされたものであって、ＤＮＮの各接続経路の重み係数を最適化する最適化装置、最適化方法および最適化プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願に係る最適化装置は、入力されたデータに応じた演算結果を出力するノードが１つ以上含まれる層を多段に接続した学習器の最適化を行う最適化装置であって、異なる層に含まれるノード間の接続経路に対して設定される係数の値を格子モデルの格子点にあてはめ、入力データと出力データとが示す特徴に基づいて、格子モデルの格子点を連結する重みの値を入力値とした格子モデルの特定関数を生成し、量子揺らぎを用いて特性関数の値が最小値となる格子モデルの基底状態を求める量子計算装置に、前記生成された特性関数の基底状態における格子点の値を算出させ、前記格子点の値に対応する前記係数の値を出力することを特徴とする。
【発明の効果】
【００１０】
実施形態の一態様によれば、ＤＮＮの各接続経路の重み係数を最適化できるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施形態に係る最適化処理の一例を示す図である。
【図２】図２は、学習器の一例を説明する図である。
【図３】図３は、学習器が有するノードの入力と出力とを説明する図である。
【図４】図４は、実施形態に係る最適化装置が有する機能構成の一例を示す図である。
【図５】図５は、実施形態にかかる最適化装置が生成するイジングモデルの一例を説明するための図である。
【図６】図６は、実施形態にかかる量子計算装置が実行する処理の一例を説明するための図である。
【図７】図７は、実施形態に係る最適化装置が実行する処理の一例を説明するための図である。
【発明を実施するための形態】
【００１２】
以下に、本願に係る最適化装置、最適化方法および最適化プログラムを実施するための形態（以下、「実施形態」と記載する。）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る最適化装置、最適化方法および最適化プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１３】
〔１．最適化処理〕
まず、図１を用いて、実施形態に係る最適化処理の一例について説明する。図１は、実施形態に係る最適化処理の一例を示す図である。図１では、入力された入力データに対して所定の演算を行い、出力データを出力する学習器Ｌｅを最適化する最適化装置１０を例に挙げ、入力データが有する特徴を適切に抽出することができるように学習器Ｌｅを最適化する最適化処理の一例について説明する。
【００１４】
まず、最適化装置１０が最適化する学習器Ｌｅについて説明する。例えば、図２は、学習器の一例を説明する図である。例えば、学習器Ｌｅは、図２中（Ａ）に示すように、入力されたデータに対する演算結果を出力する複数のノードｎ（例えば、ニューロン）を多段に接続したＤＮＮである。具体的には、学習器Ｌｅは、入力データを入力する入力層ＩＬ、入力データの特徴を抽出する１つ又は複数の中間層ＭＬ、入力データに対応する出力データを出力する出力層ＯＬとを有する。
【００１５】
入力層ＩＬ、中間層ＭＬ及び出力層ＯＬは、それぞれ１つ以上のノードｎを有する。各ノードｎは、入力層ＩＬに含まれるノードｎから中間層ＭＬに含まれるノードｎを介して、出力層ＯＬに含まれるノードｎへと順次接続される。例えば、図２中（Ｂ）に示すように、入力層ＩＬの各ノードｎは、中間層ＭＬに含まれるノードｎのうち１つ以上のノードと接続されており、中間層ＭＬに含まれるノードｎは、出力層ＯＬに含まれるノードｎのうち１つ以上のノードと接続されている。すなわち、学習器Ｌｅは、図２中（Ｃ）に示すように、入力装置ＩＬから出力層ＯＬまで多段にノードｎを接続した構成を有する。
【００１６】
ここで、ノードｎ同士を接続する各接続経路には、結合係数（すなわち、重みの値）が設定されており、あるノードｎが出力した演算結果が、結合係数の値に基づいて他のノードｎに伝達される。例えば、入力層ＩＬのノードｎと中間層ＭＬのノードｎとを接続する接続経路に結合係数「ω」が設定されている場合、中間層ＭＬのノードには、入力層ＩＬのノードｎが出力した演算結果に結合係数「ω」を積算した値が入力される。そして、中間層ＭＬのノードｎは、入力された値に基づく演算結果を出力する。
【００１７】
例えば、図３は、学習器が有するノードの入力と出力とを説明する図である。例えば、図３中（Ａ）に示すように、あるノードｎに入力される値をｘｊとし、値ｘｊが入力された際にノードｎが出力する値をｙｊとすると、ｙｊは、図３中（Ｂ）に示すように、以下の式（１）で表すことができる。
【００１８】
【数１】
0006378150.tif 000002
【００１９】
ここで、ｆ（ｘｊ）は、値ｘｊに応じた値を出力する関数であり、例えば、以下の式（２）で示すロジスティックシグモイド関数、式（３）で示す双曲線正接関数、以下の式（４）で示すＲｅＬＵ（Rectified  Liner  Unit）等である。
【００２０】
【数２】
0006378150.tif 000003
【００２１】
【数３】
0006378150.tif 000004
【００２２】
【数４】
0006378150.tif 000005
【００２３】
ここで、図３中（Ｃ）に示すように、各ノードｎを多段に接続した場合、ノードｎｊに入力されるデータｘｊは、下位の層に含まれる各ノードの出力に、各接続経路に設定された結合係数を積算した値の総和となる。より具体的には、ノードｎｊに入力されるデータｘｊは、図３中（Ｄ）に示すように、以下の式（５）で示す値となる。ここで、式（５）に記載されたｂｊは、所定の定数であり、ｙｉは、下位のノードｎ１〜ｎｉが出力した値であり、ωｉｊは、ノードｎｉからノードｎｊへの接続経路に設定された結合係数の値である。なお、以下の説明で明らかとなるように、最適化装置１０は、結合係数の値を重ね合わせ状態にして、最適な結合係数の値を算出するため、式（５）では、ωｉｊをブラケット表記で囲んだ。
【００２４】
【数５】
0006378150.tif 000006
【００２５】
このような学習器Ｌｅは、画像、文章、映像、音声等の特徴を学習することができる。例えば、学習器Ｌｅは、猫の特徴を学習することで、入力データとして入力された画像の一部に猫が撮影されている場合は、入力された画像のうち猫の部分を強調した画像を出力データとして出力することができる。なお、学習器Ｌｅが出力する出力データは、上述した形態に限定されるものではなく、例えば、猫が画像に含まれるか否かを示すデータが出力されてもよい。すなわち、学習器Ｌｅは、入力データに含まれる特徴を示す情報であれば、任意の情報を出力することができる。
【００２６】
ここで、学習器Ｌｅの学習手法としては、例えば、バックプロパゲーション法等が知られている。例えば、バックプロパゲーション法では、所定の入力データ１０１を学習器Ｌｅに入力した際に学習器Ｌｅに出力させたいデータと実際に出力した出力データ１０２との誤差が解消されるように、出力層ＯＬ側から各接続経路の結合係数を修正する。しかしながら、このような学習手法では、ノードの数や層の数が増えるに従い、結合係数の修正が困難となる。
【００２７】
そこで、最適化装置１０は、入力データの特徴を適切に学習した学習器Ｌｅの結合係数の値を出力する。具体的には、最適化装置１０は、学習器Ｌｅに入力する入力データと、入力データの特徴を学習した学習器Ｌｅが出力するであろう出力データとを受付ける。また、最適化装置１０は、各接続経路に設定される結合係数の値を格子モデルの各格子点にあてはめ、受付けた入力データと出力データとが示す特徴に基づいて、格子モデルの格子点間の相互作用を示す係数、すなわち、格子点を連結する重みの値を設定した格子モデルの特定関数を生成する。そして、最適化装置１０は、量子揺らぎを用いて特性関数の値が最小値となる格子モデルの基底状態を求める量子計算装置に、生成された特性関数の基底状態における格子点の値を算出させ、算出された格子点の値を結合係数の値として出力する。
【００２８】
すなわち、最適化装置１０は、イジングモデルにおける格子点に学習器Ｌｅの結合係数をマッピングする。また、最適化装置１０は、取得された入力データから、取得された出力データを出力するような学習器Ｌｅの結合係数の条件に基づいて、格子点間の相互作用を示す係数を設定する。そして、最適化装置１０は、量子アニーリング等、量子揺らぎの特性を用いて計算を行う量子計算装置に、生成した格子モデルの特性関数、すなわちハミルトニアンの値が最小値となる状態、すなわちイジングモデルの基底状態を算出させる。
【００２９】
その後、最適化装置１０は、量子計算装置に算出させたイジングモデルの基底状態から結合係数の値を逆マッピングし、再生した結合係数の値を、取得した入力データと出力データとに対して最適化された結合係数、すなわち、入力データの特徴を学習した学習器Ｌ３の結合係数として出力する。なお、最適化装置１０は、必ずしも学習器Ｌｅそのものを保持する必要はない。すなわち、最適化装置１０は、学習器Ｌｅの接続係数を最適化させればよく、学習器Ｌｅとして動作する情報処理装置でなくともよい。
【００３０】
図１に戻り、最適化装置１０による最適化処理の一例を流れに沿って説明する。まず、図１に示した例において、最適化装置１０は、入力されたデータに応じた演算結果を出力するノードが１つ以上含まれる層を多段に接続した学習器Ｌｅの最適化を行う装置である。例えば、最適化装置１００は、特徴データ１００を取得する。特徴データ１００は、学習器Ｌｅに学習させる特徴を含むデータである。例えば、図１に示す例では、特徴データ１００には、入力データ１０１と出力データ１０２とが含まれる。入力データ１０１および出力データ１０２は、例えば、猫を含む動物や果物等が撮影された画像である。
【００３１】
ここで、出力データ１０２は、入力データ１０１を学習器Ｌｅに入力した際に出力させたい画像として、あらかじめ作成された画像である。例えば、学習器Ｌｅに猫の外見的特徴を学習させ、入力された画像のうち猫が撮影された範囲のコントラストを強調させる場合、オペレータは、入力データ１０１に含まれる被写体のうち、猫のコントラストを強調した画像を出力データ１０２として生成する。なお、特徴データ１００には、入力データ１０１および出力データ１０２以外にも、複数の入力データおよび出力データの組が含まれているものとする。
【００３２】
かかる場合、最適化装置１０は、特徴データ１００として、入力データ１０１と出力データ１０２とを取得する（ステップＳ１）。かかる場合、最適化装置１０は、学習器Ｌｅの結合係数を、入力データ１０１が入力された場合に出力データ１０２を出力するよう最適化する最適化処理を実行する。より具体的には、最適化装置１０は、学習器Ｌｅのノード間の結合係数を各ノードにマッピングし、入力データと出力データとに基づいて、ノード間を接続する重みの値を設定する（ステップＳ２）。すなわち、最適化装置１０は、入力データ１０１と出力データ１０２が示す特徴、すなわち、学習器Ｌｅに学習させる特徴に基づいて、イジングモデルの特性関数であるハミルトニアンを生成する。
【００３３】
以下、最適化装置１０がイジングモデルのハミルトニアンを生成する処理の一例について説明する。なお、以下の説明では、イジングモデルに学習器Ｌｅの結合係数をマッピングする処理の一例について説明するが、最適化装置１０は、ハイゼンベルクモデルやＸＹモデル等、任意の次元の格子モデル（すなわち、ｎ次元ベクトルモデル）に学習器Ｌｅの結合係数をマッピングしたハミルトニアンを生成してもよい。
【００３４】
例えば、イジングモデルのハミルトニアンは、以下の式（６）によって示される。ここで、式（６）に示すＨとは、イジングモデルの全エネルギーを示すハミルトニアンであり、Ｓｉは、格子点ｉの値であり、Ｓｊは格子点ｊの値であり、Ｊは格子点間の相互作用を示す係数である。なお、ＳｉとＳｊとは、±１の値を取る。
【００３５】
【数６】
0006378150.tif 000007
【００３６】
ここで、Ｊの値が格子点間によって異なるとすると、ハミルトニアンは、以下の式（７）で表すことができる。
【００３７】
【数７】
0006378150.tif 000008
【００３８】
ここで、最適化装置１０は、ノード間の結合係数をイジングモデルにおける各格子点の値「１」または「−１」にマッピングする。例えば、最適化装置１０は、学習器Ｌｅに含まれる全ての接続経路に設定される結合係数の値の組み合わせを、それぞれ異なる格子点にあてはめる。このようなマッピングを行った場合、最適化装置１０は、学習器Ｌｅに含まれる全ての結合係数の値の組み合わせをそれぞれω１〜ωｎで表すと、ω１を格子点Ｓ１にマッピングし、ω２を格子点Ｓ２にマッピングし、他の組み合わせについても同様に、それぞれ個別の格子点Ｓ１〜Ｓｎにマッピングする。
【００３９】
また、最適化装置１０は、入力データ１０１と出力データ１０２とに基づいて、各格子点間の相互作用を示す係数の値Ｊを設定する。例えば、最適化装置１０は、入力データ１０１が入力された際に、出力データ１０２を出力する学習器Ｌｅにおいて、２つの格子点にマッピングした結合係数の値を同一の値とする場合は、この２つの格子点間の相互作用を示す係数の値Ｊを負の値に設定する。一方、最適化装置１０は、入力データ１０１が入力された際に、出力データ１０２を出力する学習器Ｌｅにおいて、２つの格子点にマッピングした結合係数の値を異なる値とする場合は、この２つの格子点間の相互作用を示す係数の値Ｊを正の値に設定する。
【００４０】
また、最適化装置１０は、各結合係数の値が同一であるか異なる値であるかの条件の相対的な強さに応じて、係数の値Ｊの絶対値の値を変更する。例えば、最適化装置１０は、ある２つの格子点にマッピングした結合係数の値を同一にするという条件を、他の条件よりも強くしたい場合は、この２つの格子点間の相互作用を示す係数の値Ｊとして、他の格子点間の相互作用を示す係数の値の絶対値よりも、絶対値が小さい値を設定する。
【００４１】
より具体的な例について説明する。例えば、最適化装置１０は、結合係数の組ごとに、かかる結合係数の組を有する学習器Ｌｅを準備し、入力データ１０１を各学習器Ｌｅに入力する。また、最適化装置１０は、各学習器Ｌｅのうち、出力したデータが出力データ１０２と同一または類似する学習器Ｌｅを特定する。そして、最適化装置１０は、特定した学習器Ｌｅに含まれる結合係数の組をマッピングした格子点の値の絶対値が大きな値となるように、各格子点間の相互作用を示す係数の値をする。
【００４２】
また、最適化装置１０は、特徴データ１００に含まれる他の入力データおよび出力データについても同様に、出力データ１０２と同一または類似するデータを出力する学習器Ｌｅの結合係数の組を特定し、特定した結合係数の組がマッピングされた格子点の値の絶対値の値が大きな値となるように、各格子点間の相互作用を示す係数の値を変更する。この結果、最適化装置１０は、特徴データ１００に含まれる入力データ１０１および出力データ１０２が示す特徴を再現する結合係数の組の値が、他の結合係数の組の値よりも大きくなるように、各格子点間の相互作用を示す係数の値を設定することとなる。
【００４３】
ここで、最適化装置１０が生成したハミルトニアンを有するイジングモデルには、系全体のエネルギーを最小化する基底状態が存在する。かかる基底状態においては、各格子点の値が、各格子点間の相互作用として設定された条件を可能な限り実現する値、すなわち最適化の条件に対して最適化された値となる。しかしながら、かかる基底状態を古典的な計算により算出するには、時間がかかる。
【００４４】
そこで、最適化装置１０は、量子揺らぎを用いた量子計算を行う量子計算装置に、生成したハミルトニアンを有するイジングモデルの基底状態を検索させる。例えば、最適化装置１０は、任意の接続関係を再現可能な複数の量子ビットからなる量子計算装置を有する。そして、最適化装置１０は、量子計算装置の各量子ビットにイジングモデルの各格子点をマッピングさせ、各量子ビット間の相互作用に、イジングモデルの各格子点間の相互作用を示す係数をマッピングさせる。そして、最適化装置１０は、量子アニーリングの技術を用いて、イジングモデルをマッピングした系の基底状態を検索させる。
【００４５】
例えば、量子計算装置は、各量子ビットの値が一様な重ね合わせ状態から、生成したハミルトニアンが示すイジングモデルへと時間発展させることで、かかるイジングモデルの基底状態を検索する（ステップＳ３）。ここで、最適化装置１０が生成するイジングモデルの基底状態は、特徴データ１００が示す特徴を適切に抽出可能な結合係数の組がマッピングされた格子点の値が、他の格子点の値よりも大きくなる。このため、最適化装置１０は、量子計算装置の計算結果から、最も値が大きい格子点を特定し、特定した格子点にマッピングした結合係数の組を出力する。例えば、最適化装置１０は、特定した格子点にマッピングした結合係数の値ω１１〜ωｊｊの値を示す結合係数リストを出力する（ステップＳ４）。
【００４６】
なお、最適化装置１０が生成したイジングモデルの基底状態を検索する処理は、上述した説明に限定されるものではない。例えば、量子計算においては、格子モデル等の断熱モデルと、任意の量子回路を用いた回路モデルとは等価である。このため、量子アニーリングを用いた量子計算は、連続的に量子ゲートを作用させる量子回路と等価であるため、最適化装置１０は、生成したハミルトニアンが示すイジングモデルを、量子ゲートを組み合わせた量子回路を再現する任意のハードウェアによって最適化すればよい。例えば、最適化装置１０は、核磁気共鳴、量子ドット、ジョセフソン素子、イオントラップ、光子等を用いて量子計算を行う量子計算装置を用いて、生成したイジングモデルの基底状態を検索すればよい。
【００４７】
また、最適化装置１０は、特徴データ１００が示す特徴を適切に抽出する結合係数の組がマッピングされた格子点の値を最大化することができるのであれば、任意の態様で、各格子点間の相互作用を示す係数を設定してよい。例えば、最適化装置１０は、入力データ１０１と出力データ１０２との差分を算出し、算出した差分を再現する学習器Ｌｅの結合係数の組を特定する。そして、最適化装置１０は、特定した組がマッピングされた更新店の値の絶対値が、他の格子点の値よりも大きくなるように、各格子点間の相互作用を示す係数を設定してもよい。
【００４８】
また、上述した説明では、最適化装置１０は、学習器Ｌｅの全ての結合係数の値の組をそれぞれ格子点にマッピングした。しかしながら、実施形態は、これに限定されるものではなく、最適化装置１０は、任意の粒度で、結合係数の値の組を格子点にマッピングして良い。例えば、最適化装置１０は、学習器Ｌｅが有する層ごとに、結合係数の値の組を格子点にマッピングする。また、最適化装置１０は、各層の接続関係に従って、結合係数の値の組をマッピングした格子点の接続関係を設定する。例えば、最適化装置１０は、出力層の結合係数の値の組がマッピングされた格子点と、中間層の結合係数の組の値がマッピングされた格子点とを接続する。
【００４９】
そして、最適化装置１０は、入力データ１０１が入力された場合に出力データ１０２と同一又は類似するデータを出力する学習器Ｌｅの結合係数を再現するように、各層の結合係数の組がマッピングされた格子点の値が他の格子点よりも大きくなるように、各格子点間の相互作用を示す係数を設定する。
【００５０】
例えば、最適化装置１０は、学習器Ｌｅに含まれる層をＬ１〜Ｌｎとし、層Ｌｉに含まれるノードと層Ｌｉ＋１に含まれるノードとの結合係数の値の組み合わせをωＬｉ，１〜ωＬｉ、ｎで表すと、ωＬｉ，１を格子点ＳＬｉ，１にマッピングし、ωＬｉ，２を格子点ＳＬｉ，２にマッピングし、他の組み合わせについても同様に、それぞれ個別の格子点ＳＬｉ，１〜ＳＬｉ，ｎにマッピングする。また、最適化装置１０は、層Ｌｉ＋１に含まれるノードと層Ｌｉ＋２に含まれるノードとの結合係数の値の組み合わせをωＬ＋１，１〜ωＬ＋１，ｎで表すと、ωＬｉ＋１，１を格子点ＳＬｉ＋１，１にマッピングし、ωＬｉ＋１，２を格子点ＳＬｉ＋１，２にマッピングし、他の組み合わせについても同様に、それぞれ個別の格子点ＳＬｉ＋１，１〜ＳＬｉ＋１，ｎにマッピングする。
【００５１】
また、最適化装置１０は、層ごとの接続関係に従って、各格子点の接続を設定する。例えば、最適化装置１０は、層Ｌｉの結合係数がマッピングされた格子点ＳＬｉ，１〜ＳＬｉ，ｎと、層Ｌｉ＋１の結合係数がマッピングされた格子点ＳＬｉ＋１，１〜ＳＬｉ＋１，ｎとが相互に接続されたイジングモデルを生成する。そして、最適化装置１０は、格子点ＳＬｉ，１〜ＳＬｉ，ｎと、格子点ＳＬｉ＋１，１〜ＳＬｉ＋１，ｎとの間の相互作用を示す係数を所定の値に設定する。かかる係数の値は、定数であってもよく、式（１）に示すようなノードの関数に応じた値であってもよい。
【００５２】
また、最適化装置１０は、入力データ１０１が入力された際に出力データ１０２と同一若しくは類似の出力データを出力する学習器Ｌｅに含まれる格子点の組がマッピングされた格子点の値が他の格子点の値よりも大きくなるように、各格子点間の相互作用を示す係数を操作する。例えば、最適化装置１０は、入力データ１０１が入力された際に出力データ１０２と同一若しくは類似の出力データを出力する学習器Ｌｅに、ωＬｉ，ｘとωＬｉ＋１，ｙとが含まれる場合は、ωＬｉ，ｘがマッピングされた格子点ＳＬｉ，ｘの値と、ωＬｉ＋１，ｙがマッピングされた格子点ＳＬｉ＋１，ｙとの値が大きくなるように、格子点間の相互作用を示す係数を操作する。
【００５３】
上述した処理の結果生成されるハミルトニアンの基底状態は、特徴データ１００が示す特徴を最も適切に学習した学習器Ｌｅに含まれる各層の結合係数の組がマッピングされた複数の格子点の値が他の格子点の値よりも大きな値となる。この結果、最適化装置１０は、各層ごとに、結合係数の組をマッピングした格子点のうち基底状態において最も値が大きい格子点を特定し、特定した各格子点が示す結合係数の組を含む結合係数リストを出力できる。
【００５４】
このように、最適化装置１０は、結合係数の組を格子点にマッピングし、学習する特徴に応じて、格子点間の相互作用を示す係数の値を設定したイジングモデルのハミルトニアンを生成する。そして、最適化装置１０は、生成したハミルトニアンの基底状態を、量子計算装置に算出させ、算出させた基底状態における各格子点の値に基づいて、結合係数の組を出力する。この結果、最適化装置１０は、学習器Ｌｅに多くのノードが含まれる場合にも、量子計算を用いて結合係数の最適化を行うことができるので、学習器Ｌｅの学習に要する時間を短縮することができる。
【００５５】
すなわち、最適化装置１０は、ノード間の接続経路に設定された結合係数の組を重ね合わせ状態にし、学習する特徴に応じて、重ね合わせ状態となった各結合係数の組の観測確率を変化させる。より具体的には、式（５）のブラケット表記に示したように、最適化装置１０は、結合係数ωｉｊの値を重ね合わせ状態にして計算を行う。そして、最適化装置１０は、最終的に観測された結合係数の組を出力する。このため、最適化装置１０は、バックプロパゲーション法等を用いて、試行錯誤的に結合係数を求めずとも、量子計算を用いて結合係数を最適化することができる。
【００５６】
また、最適化装置１０は、結合係数の組を重ね合わせ状態にし、特徴に応じて観測確率を変化させ、最終的に観測された結合係数の組を出力する。この結果、最適化装置１０は、各結合係数の組について特徴を上手く抽出できているかを同時に判定することとなるので、出力する結合係数の組が、いわゆる局所解に陥いるのを防ぐことができる。また、最適化装置１０は、学習器Ｌｅの過学習を防ぐことができる。
【００５７】
ここで、層ごとの学習やプレトレーニング等により学習器Ｌｅに特徴を学習させた場合、学習器Ｌｅ全体での性能が低下する恐れがある。しかしながら、最適化装置１０は、学習器Ｌｅに含まれる全ての結合係数の組を重ね合わせ状態にする。このため、最適化装置１０は、層ごとの学習やプレトレーニング等によって最適化された学習器Ｌｅよりも、学習器Ｌｅ全体でより最適化された学習器Ｌｅの結合係数を求めることができる。
【００５８】
〔２．最適化装置の構成〕
次に、図４を用いて、実施形態に係る最適化装置１０の構成について説明する。図４は、実施形態に係る最適化装置が有する機能構成の一例を示す図である。図４に示すように、最適化装置１０は、入力装置２０および出力装置３０と接続されている。また、最適化装置１０は、取得部１１、生成部１２、量子計算装置１３、出力部１７を有する。また、量子計算装置１３は、状態再現部１４、操作部１５、観測部１６を有する。また、状態再現部１４は、複数の量子ビット１４ａ〜１４ｄを有する。
【００５９】
入力装置２０は、最適化装置１０に特徴データ１０の入力を行うための入力デバイスであり、例えば、ＨＤＤ（Hard  Disk  Drive）やフラッシュメモリ等の記録媒体から特徴データ１００を読み出すことができる読出装置である。例えば、入力装置２０は、フラッシュメモリ等の記録媒体から特徴データ１００を読み出すと、読み出した特徴データを最適化装置１０に出力する。
【００６０】
出力装置３０は、例えば、モニタやプリンタ等によって実現され、特徴データ１００が示す特徴に対して最適化装置１０が最適化した学習器Ｌｅの各結合係数の値を含む結合係数リストを受信すると、受信した結合係数リストを表示若しくは印刷する出力装置である。
【００６１】
取得部１１は、入力装置２０から特徴データ１００を取得すると、特徴データ１００に含まれる入力データ１０１と、入力データ１０１に対応する出力データ１０２とを抽出し、抽出した入力データ１０１と出力データ１０２とを生成部１２に出力する。
【００６２】
生成部１２は、学習器Ｌｅに含まれるノード間の各結合係数の値の組をイジングモデルの格子点にあてはめ、入力データ１０１と出力データ１０２とが示す特徴に基づいて、イジングモデルの各格子点間の相互作用を示す係数の値を設定したハミルトニアンを生成する。例えば、生成部１２は、学習器Ｌｅに含まれるノードの数に応じて、結合係数の値の組を全てマッピング可能な数の格子を有するイジングモデルを生成する。また、生成部１２は、層ごとに結合係数の組をマッピングする場合は、各層に含まれるノードの数や、層の間の接続関係に応じた次元数を有するイジングモデルを生成する。そして、生成部１２は、生成したイジングモデルの各格子点に、結合係数の値の組をマッピングする。
【００６３】
また、生成部１２は、取得部１１から受付けた入力データ１０１と出力データ１０２との特徴に基づいて、各格子点間の相互作用を示す係数の値を設定する。例えば、生成部１２は、取得部１１から受付けた入力データ１０１を入力した際に、出力データ１０２と同一または類似のデータを出力する学習器Ｌｅに含まれる結合係数の値の組を特定し、特定した組をマッピングした格子点の値が他の格子点の値よりも大きい値となるように、各格子点間の相互作用を示す係数の値を設定する。
【００６４】
例えば、図５は、実施形態にかかる最適化装置が生成するイジングモデルの一例を説明するための図である。なお、図５に示す例では、３つの結合係数の組を、格子点Ｓｉ、Ｓｊ、Ｓｋにマッピングする処理の一例について記載した。例えば、生成部１２は、格子点Ｓｉに結合係数の組ｉをマッピングし、Ｓｊに結合係数の組ｊをマッピングし、Ｓｋに結合係数の組ｋをマッピングする。
【００６５】
続いて、生成部１２は、結合係数の組ｉ〜ｋを有する学習器Ｌｅをそれぞれ準備し、入力データ１０１を各学習器Ｌｅに入力する。そして、生成部１２は、各学習器Ｌｅが出力するデータと取得部１１から受付けた出力データ１０２とを比較し、同一または類似のデータを出力した学習器Ｌｅの結合係数の組を特定する。そして、生成部１２は、特定した学習器Ｌｅの結合係数の組をマッピングした格子点同士の値が同じになるように格子点間の相互作用を示す係数の値を設定する。
【００６６】
例えば、生成部１２は、入力データ１０１を各学習器Ｌｅに入力した際に、結合係数の組ｉを有する学習器Ｌｅと、結合係数の組ｊを有する学習器Ｌｅとが、出力データ１０２と同一または類似のデータを出力した場合は、以下の処理を実行する。まず、生成部１２は、結合係数の組ｉがマッピングされた格子点Ｓｉと結合係数の組ｋがマッピングされた格子点Ｓｋとの間の相互作用を示す係数の値Ｊｉｋの値を減少させる。また、生成部１２は、結合係数の組ｊがマッピングされた格子点Ｓｊと他の格子点との間の相互作用を示す係数Ｊｉｊ、Ｊｋｊの値を増加させる。
【００６７】
また、生成部１２は、特徴データ１００に含まれる入力データ１０１と出力データ１０２との組ごとに、上述した処理を実行する。そして、生成部１２は、上述した処理の結果生成したイジングモデルを量子計算装置１３に出力する。
【００６８】
図４に戻り、説明を続ける。量子計算装置１３は、量子計算を用いて、生成部１２が生成したハミルトニアンが示すイジングモデルの基底状態を検索する装置であり、いわゆる量子コンピュータである。例えば、量子計算装置１３は、複数の値を重ね合わせ状態で保持することができる複数の量子ビット１４ａ〜１４ｄを有し、各量子ビット１４ａ〜１４ｄを用いてイジングモデルの状態を再現可能な状態再現部１４を有する。
【００６９】
このような量子計算装置１３の操作部１５は、生成部１２が生成したハミルトニアンを受付けると、状態再現部１４が有する各量子ビット１４ａ〜１４ｄと、各量子ビット１４ａ〜１４ｄ間の結合係数とを制御することにより、生成部１２から受付けたハミルトニアンが示すイジングモデルの基底状態を量子的に算出する。
【００７０】
例えば、量子ビットは、以下の式（８）で示される状態に設定されうる。式（８）に示す状態の量子ビットを観測した場合、値「０」を観測する確率は、αの絶対値の累乗であり、値「１」を観測する確率は、βの絶対値の累乗となる。
【００７１】
【数８】
0006378150.tif 000009
【００７２】
ここで、式（８）に示すαとβとは、以下の式（９）を満たす複素数である。
【００７３】
【数９】
0006378150.tif 000010
【００７４】
まず、操作部１５は、初期状態として、各量子ビット１４ａ〜１４ｄに対して一様な状態を設定する。例えば、操作部１５は、各量子ビット１４ａ〜１４ｄに対し、以下の式（１０）に示す状態を設定する。式（１０）に示す状態が設定された場合、各量子ビット１４ａ〜１４ｄをそれぞれ個別に観測すると、０または１が同じ確率で観測されることとなる。
【００７５】
【数１０】
0006378150.tif 000011
【００７６】
そして、操作部１５は、初期状態から、生成部１２が生成したハミルトニアンが示す状態へと各量子ビット１４ａ〜１４ｄの状態を時間発展させることで、生成部１２が生成したハミルトニアンが示すイジングモデルの基底状態を検索する。
【００７７】
例えば、操作部１５は、Ｊｉｊの値に基づいて、各量子ビット間の相互作用を設定する。そして、操作部１５は、量子ビット１４ａの状態を時間発展させる。上述した時間発展が十分に行われた場合、各量子ビット１４ａ〜１４ｄの状態は、生成部１２が生成したハミルトニアンが示すイジングモデルの基底状態となる。例えば、量子ビット１４ａの状態が式（３）で示される場合、時間発展によりαとβとの値が、Ｊｉｊの値に基づいて徐々に変化する。そして、観測部１６は、時間発展された各量子ビット１４ａ〜１４ｄの状態を観測することで、イジングモデルの基底状態を観測できる。そして、観測部１６は、特定したイジングモデルの基底状態、すなわち、観測した際における各量子ビット１４ａ〜１４ｄの値を出力部１７に出力する。
【００７８】
ここで、図６を用いて、量子計算装置１３が実行する処理の概念を説明する。図６は、実施形態にかかる量子計算装置が実行する処理の一例を説明するための図である。なお、図６に示す例では、ハミルトニアンの値を縦軸とし、各格子点の値の組み合わせを横軸とした上で、生成部１２が生成したイジングモデルにおけるハミルトニアンの値を、各格子点の値の組み合わせ毎に、実線で示した。
【００７９】
例えば、量子計算装置１３は、各量子ビット１４ａ〜１４ｄの値を取りうる値の重ね合わせ状態とする。この結果、量子計算装置１３は、図６中の点線丸印に示すように、イジングモデルにおける各格子点の値の全組み合わせを再現する。そして、量子計算装置１３は、図６中の点線矢印に示すように、各量子ビット１４ａ〜１４ｄの状態を、生成部１２が生成したイジングモデルのハミルトニアンが示す状態へと時間発展させることで、格子点間の値の各組み合わせにおけるハミルトニアンの値を再現する。かかる処理は、各量子ビット１４ａ〜１４ｄを量子状態に保ったままで行われる。
【００８０】
ここで、ハミルトニアンの値が最小の値を取る状態は、系の中で最も安定した状態である。このため、量子状態を保ったままで十分に時間発展させた各量子ビット１４ａ〜１４ｄを観測した場合、図６に示すように、ハミルトニアンの値が最小の値となる状態ωが観測される可能性が高い。そこで、量子計算装置１３は、量子状態を保ったままで十分に時間発展させた各量子ビット１４ａ〜１４ｄの値を観測することで、ハミルトニアンの値が極小値に陥ることなく、最小となるイジングモデルの各格子点の値を特定する。
【００８１】
図４に戻り、説明を続ける。出力部１７は、観測部１６が観測した各量子ビット１４ａ〜１４ｄの値を受付けると、かかる値に基づいて、最適化された結合係数を含む結合係数リストを出力装置３０に出力する。例えば、出力部１７は、各量子ビット１４ａ〜１４ｄの値を、各量子ビット１４ａ〜１４ｄと対応するイジングモデルの格子点の値とする。そして、出力部１７は、イジングモデルの各格子点から出力データを逆マッピングすることで、最適化されたデータを取得し、取得したデータに対応する結合係数の組を含む結合係数リストを出力装置３０に出力する。例えば、出力部１７は、ある格子点の値が「１」であり、他の格子点の値が「−１」である場合は、値が「１」の格子点にマッピングした結合係数の組を含む結合係数リストを出力装置３０に出力する。
【００８２】
〔３．最適化装置が実行する処理の流れ〕
次に、図７を用いて、実施形態に係る最適化装置１０が実行する処理の流れについて説明する。図７は、実施形態に係る最適化装置が実行する処理の一例を説明するための図である。まず、最適化装置１０は、入力データ１０１と出力データ１０２とを取得する（ステップＳ１０１）。また、最適化装置１０は、各ノード間の結合係数の組をイジングモデルの各格子点にマッピングする（ステップＳ１０２）。また、最適化装置１０は、入力データ１０１と出力データ１０２とが示す特徴に基づいて、イジングモデルの各格子点間の相互作用を示す係数の値を設定する（ステップＳ１０３）。
【００８３】
そして、最適化装置１０は、量子計算機１３の量子ビットをイジングモデルの基底状態に時間発展させる（ステップＳ１０４）。また、最適化装置１０は、時間発展させた量子ビットを観測することで、イジングモデルの基底状態を取得する（ステップＳ１０５）。そして、最適化装置１０は、観測結果を逆マッピングしたデータ、すなわち、値が最も大きい格子点にマッピングした結合係数の組を含む結合係数リストを最適化結果として出力し（ステップＳ１０６）、処理を終了する。
【００８４】
〔４．変形例〕
上述した実施形態に係る最適化装置１０は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、上記の最適化装置１０の他の実施形態について説明する。
【００８５】
〔４−１．イジングモデルについて〕
なお、上述した最適化装置１０は、イジングモデルの各格子点に、結合係数の組をマッピングし、入力データ１０１と出力データ１０２とが示す特徴に基づいて各格子点間を連結する重みの値を設定した。しかしながら、実施形態は、これに限定されるものではない。例えば、最適化装置１０は、イジングモデル以外のモデルに結合係数の組をマッピングしてもよい。このような処理を実行した場合は、最適化装置１０は、「＋１」や「−１」といった２値の値ではなく、連続値を求めることができる。
【００８６】
〔４−２．１層のみの算出〕
また、上述した最適化装置１０は、学習器Ｌｅが有する全ての接続経路について結合係数を算出した。しかしながら、実施形態は、これに限定されるものではない。例えば、最適化装置１０は、いずれか１つの層と他の層との間の接続経路についての結合係数を算出してもよい。
【００８７】
〔４−３．その他〕
ここで、最適化装置１０は、学習器Ｌｅを実際に稼働させる際には使用させないダミー経路を考慮した処理を行ってもよい。例えば、最適化装置１０は、ダミー経路を含むすべての接続経路に設定された結合係数の組を重ね合わせ状態にし、最適な結合係数の組を量子計算により算出してもよい。
【００８８】
また、最適化装置１０は、畳み込みを考慮した処理を行ってもよい。例えば、最適化装置１０は、接続経路に設定される結合係数の値を変化させた結合係数の組だけではなく、それぞれ異なるノード間での畳み込みが行われた結合係数の組についても重ね合わせ状態にすればよい。すなわち、最適化装置１０は、畳み込みの態様ごとに、全ての接続経路に設定される結合係数の値の組み合わせを求め、全ての畳み込みの態様について、求められた全ての結合係数の組の組み合わせを重ね合わせ状態にしてもよい。
【００８９】
〔４−４．ハードウェア構成について〕
上述した最適化装置１０は、ハミルトニアンが示すイジングモデルの基底状態を検索する量子計算装置１３を有していた。しかしながら、実施形態は、これに限定されるものではない。例えば、最適化装置１０は、取得部１１、生成部１２、出力部１７のみを有し、外部に設置された量子計算装置１３に基底状態を検索させてもよい。
【００９０】
また、最適化装置１０が有する各機能構成のうち、取得部１１、生成部１２、出力部１７が発揮する処理は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されてもよい。また、取得部１１、生成部１２、出力部１７が発揮する処理は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等のプロセッサによって、最適化装置１０内部の記憶装置に記憶されている最適化プログラムがＲＡＭ（Random  Access  Memory)を作業領域として実行されることにより実現されてもよい。
【００９１】
〔５．効果〕
このように、最適化装置１０は、入力されたデータに応じた演算結果を出力するノードが１つ以上含まれる層を多段に接続した学習器Ｌｅの最適化を行う装置であって、ノードｎ間の接続経路に対して設定される結合係数の値を格子モデルの格子点にあてはめ、入力データと出力データとが示す特徴に基づいて、格子モデルの格子点間の相互作用を示す係数の値を設定した格子モデルの特定関数を生成する。また、最適化装置１０は、量子揺らぎを用いて特性関数の値が最小値となる格子モデルの基底状態を求める量子計算装置１３に、生成した特性関数の基底状態における格子点の値を算出させる。そして、最適化装置１０は、格子点の値に対応する結合係数の値を出力する。
【００９２】
この結果、最適化装置１０は、学習器Ｌｅに多くのノードが含まれる場合にも、量子計算を用いて結合係数の最適化を行うことができるので、学習器Ｌｅの学習に要する時間を短縮することができる。また、最適化装置１０は、量子揺らぎを用いて特性関数の値が最小値となる格子モデルの基底状態を求める量子計算装置１３に、生成した特性関数の基底状態における格子点の値を算出させるので、結合係数の値が局所解に陥るのを防ぐことができる。すなわち、最適化装置１０は、学習器Ｌｅの過学習を防ぐことができる。
【００９３】
また、最適化装置１０は、学習器に含まれる全ての接続経路に設定された結合係数の値の組み合わせを格子モデルの格子点にあてはめる。このため、最適化装置１０は、最適化された学習器Ｌｅの結合係数の値を求めることができる。
【００９４】
また、最適化装置１０は、所定の層に含まれるノードと他のノードとの接続経路に設定された結合係数の値の組み合わせを格子モデルの格子点にあてはめる。このため、最適化装置１０は、層ごとに、最適化された結合係数の値を求めることができる。
【００９５】
また、最適化装置１０は、所定の層に含まれるノードと他のノードとの接続経路に設定された結合係数の値の組み合わせを、所定の層と接続された他の層に含まれるノードと他のノードとの接続経路に設定された係数の値の組み合わせをあてはめた格子点と連結された格子点にあてはめる。このため、最適化装置１０は、学習器Ｌｅ全体での性能を考慮しつつ、層ごとに最適化された結合係数の値を求めることができるので、過学習を防ぐことができる。
【００９６】
また、最適化装置１０は、結合係数の値の組み合わせをあてはめた格子点のうち、入力データ１０１が入力された場合に出力データ１０２と同一又は類似するデータを出力する学習器Ｌｅの各接続経路に対して設定された結合係数の値をあてはめた格子点の値が所定の値に近づくように、各格子点を連結する重みの値を設定する。このため、最適化装置１０は、入力データ１０１と出力データ１０２とが示す特徴を適切に学習した学習器Ｌｅの結合係数を求めることができる。
【００９７】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【００９８】
また、上記してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、生成部は、生成手段や生成回路に読み替えることができる。
【符号の説明】
【００９９】
１  制御システム
１０  最適化装置
１１  取得部
１２  生成部
１３  量子計算装置
１４  状態再現部
１４ａ〜１４ｄ  量子ビット
１５  操作部
１６  観測部
１７  出力部
２０  入力装置
３０  出力装置
【図１】
0006378150.tif 000012
【図２】
0006378150.tif 000013
【図３】
0006378150.tif 000014
【図４】
0006378150.tif 000015
【図５】
0006378150.tif 000016
【図６】
0006378150.tif 000017
【図７】
0006378150.tif 000018