【文献】
Hartmut Neven et al.,"QBoost: Large Scale Classifier Training with Adiabatic Quantum Optimization",Proceedings of the Asian Conference on Machine Learning, PMLR 25,[online],2012年,pp.333-348,[2018年6月12日検索], インターネット<URL: http://proceedings.mlr.press/v25/neven12/neven12.pdf>
【文献】
日野 英逸 外1名,「スパース表現の数理とその応用」,情報処理学会研究報告 2012 October [CD−ROM],一般社団法人情報処理学会,2012年10月15日,pp.1−10
(58)【調査した分野】(Int.Cl.,DB名)
前記正則化項は、正則化パラメータを含み、および目的関数を定式化するステップは、前記目的関数のスパーシティを制御する前記正則化パラメータに対する値を選択するステップを含む、請求項1に記載の方法。
前記目的関数を最小化するために、前記非量子プロセッサによって、前記量子プロセッサと相互作用するステップは、前記辞書に対する前記第1の組の値に基づいて、前記目的関数における前記重みに対する前記第1の組の値の前記目的関数を最適化するステップを含む、請求項1に記載の方法。
前記重みに対する第1の組の値の前記目的関数を最適化するステップは、前記目的関数を第1の二次制約なし二値最適化(「QUBO」)問題にマッピングし、および前記第1のQUBO問題を少なくともおおよそ最小化するために前記量子プロセッサを使用するステップを含み、前記第1のQUBO問題を少なくともおおよそ最小化するために前記量子プロセッサを使用するステップは、断熱的量子計算または量子アニーリングのうちの少なくとも1つを実行するために前記量子プロセッサを使用するステップを含む、請求項6に記載の方法。
前記目的関数を最小化するために、前記非量子プロセッサによって、前記量子プロセッサと相互作用するステップはさらに、前記辞書に対する第2の組の値に基づいて、前記重みに対する第2の組の値の前記目的関数を最適化するステップを含み、前記重みに対する第2の組の値の前記目的関数を最適化するステップは、前記目的関数を第2のQUBO問題にマッピングし、および前記第2のQUBO問題を少なくともおおよそ最小化するために前記量子プロセッサを使用するステップを含む、請求項6に記載の方法。
前記目的関数を最小化するために、前記非量子プロセッサによって、前記量子プロセッサと相互作用するステップはさらに、前記重みに対する前記第1の組の値に基づいて、前記辞書に対する第2の組の値の前記目的関数を最適化するステップを含み、前記辞書に対する第2の組の値の前記目的関数を最適化するステップは、前記辞書に対する前記値の少なくとも一部を更新するために前記非量子プロセッサを使用するステップを含む、請求項6に記載の方法。
前記目的関数を最小化するために、前記非量子プロセッサによって、前記量子プロセッサと相互作用するステップはさらに、前記重みに対する前記第2の組の値に基づいて、前記辞書に対する第3の組の値の前記目的関数を最適化するステップを含み、前記辞書に対する第3の組の値の前記目的関数を最適化するステップは、前記辞書に対する前記値の少なくとも一部を更新するために前記非量子プロセッサを使用するステップを含む、請求項9に記載の方法。
前記重みに対するt番目の組の値の前記目的関数を最適化するステップであって、tは、前記辞書に対する前記第3の組の値に基づく、2より大きい整数であり、前記重みに対するt番目の組の値の前記目的関数を最適化するステップは、前記目的関数をt番目のQUBO問題にマッピングし、および前記t番目のQUBO問題を少なくともおおよそ最小化するために前記量子プロセッサを使用するステップを含む、ステップと、
前記重みに対する前記t番目の組の値に基づいて、前記辞書に対する(t+1)番目の組の値の前記目的関数を最適化するステップであって、前記辞書に対する(t+1)番目の組の値の前記目的関数を最適化するステップは、前記辞書に対する前記値の少なくとも一部を更新するために前記非量子プロセッサを使用するステップを含む、ステップと
をさらに含む、請求項10に記載の方法。
前記辞書に対する前記(t+1)番目の組の値に基づいて、前記重みに対する(t+1)番目の組の値の前記目的関数を最適化するステップをさらに含み、前記重みに対する(t+1)番目の組の値の前記目的関数を最適化するステップは、前記目的関数を(t+1)番目のQUBO問題にマッピングし、および前記(t+1)番目のQUBO問題を少なくともおおよそ最小化するために前記量子プロセッサを使用するステップを含む、請求項11に記載の方法。
前記重みに対する前記t番目の組の値に基づいて、前記辞書に対する(t+1)番目の組の値の前記目的関数を最適化するステップ、および前記辞書に対する前記(t+1)番目の組の値に基づいて、前記重みに対する(t+1)番目の組の値の前記目的関数を最適化するステップは、少なくとも1つの解判定基準が満たされるまで、tの増分値にわたり繰り返される、請求項11に記載の方法。
学習問題における特徴を生成することは、パターン認識問題、人工ニューラルネットワーク問題のトレーニング、ならびにソフトウェア証明および検証問題のうちの少なくとも1つにおける特徴を生成することを含む、請求項15に記載の方法。
前記非量子プロセッサを使用して前記目的関数における第1の組の重みを変数として型変換するステップは、前記非量子プロセッサを使用して第1の組の重みをブール変数として型変換するステップを含む、請求項1に記載の方法。
少なくとも1つのラベル要素からなる少なくとも1つのラベルを前記データセットに組み込むステップをさらに含み、前記少なくとも1つのラベルは、少なくとも抽象的レベルで前記データセットにおいて表される対象を論理的に識別するラベル情報、または前記データの組において表される前記対象が属するカテゴリを表す、請求項1に記載の方法。
少なくとも1つのラベルを組み込むステップは、前記データセットにおいて表される前記対象を、定義された組の人間に属する英数字、自動車の製造および/もしくはモデル、定義された組の物体、定義された外部もしくは被疑物体、または解剖学的特徴のタイプのうちの少なくとも1つとして論理的に識別するラベル情報を表す少なくとも1つのラベルを組み込むステップを含む、請求項21に記載の方法。
少なくとも1つのラベルを組み込むステップは、ラベル情報を表す少なくとも1つのラベルを組み込むステップを含み、および前記ラベル情報は、対応するデータ要素と同一のタイプである、請求項21に記載の方法。
非量子プロセッサにおいてデータ要素のデータセットを受信するステップは、画像データとして表されるデータセットを受信するステップを含み、前記組み込まれた少なくとも1つのラベル要素は、画像データを含む、請求項21に記載の方法。
少なくとも1つのラベル要素からなる少なくとも1つのラベルを前記データセットに組み込むステップは、少なくとも1つのラベル要素からなる少なくとも1つのラベルを組み込むステップを含み、前記少なくとも1つのラベル要素は、画像データを含み、および前記ラベル要素の空間位置は、前記ラベル情報を少なくとも部分的に符号化する、請求項24に記載の方法。
目的関数を定式化するステップは、前記データセットおよび前記組み込まれた少なくとも1つのラベルの両方に基づいて、目的関数を定式化するステップを含む、請求項21に記載の方法。
非量子プロセッサにおいてデータ要素のデータセットを受信するステップは、異なるタイプまたはフォーマットのデータとして表されるデータセットを受信するステップを含む、請求項1に記載の方法。
前記ブール重みに対する第1の組の値の前記目的関数を最適化するステップは、前記目的関数を第1の二次制約なし二値最適化(「QUBO」)問題にマッピングし、および前記第1のQUBO問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップを含み、前記第1のQUBO問題を少なくともおおよそ最小化するために前記量子プロセッサを使用するステップは、断熱的量子計算または量子アニーリングのうちの少なくとも1つを実行するために前記量子プロセッサを使用するステップを含む、請求項30に記載の方法。
前記ブール重みに対する前記第1の組の値に基づいて、前記辞書に対する第2の組の値の前記目的関数を最適化するステップをさらに含み、前記辞書に対する第2の組の値の前記目的関数を最適化するステップは、前記辞書に対する前記値の少なくとも一部を更新するために前記デジタルプロセッサを使用するステップを含む、請求項31に記載の方法。
前記辞書に対する前記第2の組の値に基づいて、前記ブール重みに対する第2の組の値の前記目的関数を最適化するステップをさらに含み、前記ブール重みに対する第2の組の値の前記目的関数を最適化するステップは、前記目的関数を第2のQUBO問題にマッピングし、および前記第2のQUBO問題を少なくともおおよそ最小化するために前記量子プロセッサを使用するステップを含む、請求項32に記載の方法。
前記ブール重みに対する前記第2の組の値に基づいて、前記辞書に対する第3の組の値の前記目的関数を最適化するステップをさらに含み、前記辞書に対する第3の組の値の前記目的関数を最適化するステップは、前記辞書に対する前記値の少なくとも一部を更新するために前記デジタルプロセッサを使用するステップを含む、請求項33に記載の方法。
データ要素の前記データセットは、画像データ要素の画像データセットを含み、およびデータ要素の前記データセットを事前処理するステップは、前記画像データセットの前記画像データ要素のコントラストまたは輝度のうちの少なくとも1つを正規化するステップを含む、請求項36に記載の方法。
データ要素の前記データセットを事前処理するステップは、前記画像データセットの前記正規化された画像データ要素をホワイトニングするステップを含む、請求項37に記載の方法。
前記画像データセットの前記正規化された画像データ要素をホワイトニングするステップは、零相成分分析(ZCA)ホワイトニングを前記画像データセットの前記正規化されたデータ要素に適用するステップを含む、請求項38に記載の方法。
データ要素の前記データセットを事前処理するステップは、前記画像データセットの前記正規化された画像データ要素の次元を削減するステップを含む、請求項37に記載の方法。
前記画像データセットの前記正規化された画像データ要素の次元を削減するステップは、主成分分析(PCA)を前記画像データセットの前記正規化されたデータ要素に適用するステップを含む、請求項40に記載の方法。
データ要素の前記データセットを事前処理するステップは、前記画像データセットの前記正規化された画像データ要素の次元を削減するステップと、前記画像データセットの前記正規化された画像データ要素をホワイトニングするステップとを含む、請求項37に記載の方法。
データ要素の前記データセットは、画像データ要素の画像データセットを含み、前記方法は、前記画像データ要素の各々を1つ以上の分解領域に区分化するステップをさらに含む、請求項36に記載の方法。
前記非量子プロセッサによって、区分特性を示す区分化パラメータを受信するステップをさらに含み、前記画像データ要素の各々を1つ以上の分解領域に区分化する前記ステップは、前記受信された区分化パラメータに少なくとも部分的に基づく、請求項43に記載の方法。
【発明を実施するための形態】
【0054】
以下の発明の詳細な説明では、種々の開示される実施形態の完全な理解を提供するために、いくつかの特定の詳細が含まれる。しかしながら、当業者は、1つ以上のそれらの特定の詳細なしで、または他の方法、構成要素、素材などで実施形態が実施されてもよいことを理解するであろう。他の例では、量子デバイス、結合デバイスならびにマイクロプロセッサおよび駆動回路を含む制御システムなどの、量子プロセッサと関連付けられた公知の構造は、本方法の実施形態の説明を不必要に曖昧にすることを避けるために詳細に示されず、かつ説明されない。本明細書および添付の特許請求の範囲の全体を通じて、用語「要素」は、量子プロセッサと関連付けられた全てのそのような構造、システムおよびデバイスと共に、それらの関連するプログラム可能パラメータを包含するように使用されるが、それらに限定されない。
【0055】
文脈上他の意味に解すべき場合を除き、以下の明細書および特許請求の範囲の全体を通じて、用語「含む(comprise)」、ならびに「含む(comprises)」および「含んでいる(comprising)」などのその変形は、「含むが、限定しない」という意味で、開かれた包括的な意味と解釈されることになる。
【0056】
本明細書全体を参照して、「一実施形態」、「実施形態」、または「別の実施形態」への言及は、実施形態と共に説明される特定の対象の特徴、構造、または特性が、少なくとも1つの実施形態に含まれることを意味する。よって、本明細書全体を通じて様々な箇所で現れる句「一実施形態では」、「実施形態では」、または「別の実施形態では」は、必ずしも全てが同一の実施形態を指すものではない。さらに、特定の特徴、構造、または特性は、1つ以上の実施形態における任意の適切な方式で組み合わされてもよい。本明細書および添付の特許請求の範囲で使用されるように、単数形「1つの(a)」、「1つの(an)」および「その(the)」は、文脈上他の意味に解すべき場合を除き、複数の対象を含むことに留意すべきである。よって、例えば、「量子プロセッサ」を含む問題解決システムへの言及は、単一の量子プロセッサ、または2つ以上の量子プロセッサを含む。用語「または(or)」は概して、文脈上他の意味に解すべき場合を除き、「および/または(and/or)」を含む意味で使用されることに留意すべきである。
【0057】
本明細書で提供される表題は、便宜のみを目的としており、実施形態の範囲または意味と解釈しない。
【0058】
本明細書で説明される種々の実施形態は、圧縮検知(compressed sensing)または処理の技術を採用することによって計算問題を解決するために量子プロセッサを使用する方法を提供する。そのような方法は、画像データ、例えば、文字もしくは数字、人、解剖構造、自動車、外部もしくは被疑物体などによって表される画像における種々の物体を、プロセッサベースデバイスが自動的に認識することを可能にする、例えば、半教師あり特徴学習において有利に採用されることがある。例えば、圧縮検知技術で通常最小化される物体は、断熱的量子プロセッサ、および/または量子アニーリングを実装するために設計されたプロセッサなどの、量子プロセッサを使用して解決されることになる公知な二次制約なし二値最適化(「QUBO」)問題として再型変換される。
【0059】
圧縮検知技術で一般的に最小化されるオブジェクトは、「スパース最小二乗問題」として知られる。
【数7】
【0060】
スパース最小二乗問題は、任意の所与のy
iがいくつかの基底ベクトルの線形集合として表すことが可能な、N次元の実数値信号{y
i|1≦i≦S}の集合に対する基底を探索する。この問題は、例えば、データ圧縮、機械学習における特徴抽出、可視化のための次元削減、高速情報取り出しのための意味的(semantic)ハッシング、および多くの他の領域における適用を発見する。
【0061】
行列Dは、各列が基底ベクトルを表す、N×Kの次元を有する。Kの基底要素は時に、「アトム」と称され、および過剰完全(over−complete)となることがある。各々の重みw
iは、K×1である。行列Dは、「辞書」と称され、スパース最小二乗問題の目標は、w
iおよび辞書Dの基底ベクトルの両方に関して式1のオブジェクトを最小化することである。最小化は、通常、オブジェクトがwおよびDの個別にあるが共同ではなく凸(convex)であるため、ブロック座標降下法を使用するステップで行われる。本方法に従って、最小化の少なくとも一部は、重みw
iを、例えば、0または1のブール値に制限することによって、QUBO問題にマッピングされてもよい。次いで、オブジェクトの例は以下のようになる。
【数8】
【0062】
式2のオブジェクトは、各々のブール値ベクトルw
iおよびDに記憶された実数値基底要素に関して最小化されることである。いくつかの例では、重みw
iをブール値として型変換することは、0ノルムスパーシティペナルティのようなものを実現する。多くの問題に対し、0ノルムのバージョンの問題は、1ノルムの変形よりもよりスパース(sparser)であることが予想される。歴史的に、0ノルムの変形は、解決がより困難であるため、あまり研究されてこなかった。
【0063】
上述したように、QUBO問題は一般的に、以下の形式で記述されてもよく、
【数9】
ここで、オブジェクトは、例えば、Eを最小化することである。本方法に従って、式2で与えられるブールバージョンのスパース最小二乗問題は、式3で与えられるQUBO問題にマッピングされてもよく、それによって、QUBO問題のQの項は、D
TDによって与えられる。より詳細には、式3のQ
ij要素(i≠j)は、(D
TD)
ijd
iTd
jによって与えられる。
【0064】
式2によって与えられるブールオブジェクトは、例えば、辞書Dの基底要素に対する初期値を推測し、Dの初期の推測された要素に対応するブール重みw
iの値を最適化し、次いで、最初に最適化されたW
iの値に対応する要素Dを最適化し、次いで最初に最適化された辞書Dに対応するブール重みw
iの値を再正規化し、およびいくつかの解判定基準が満たされるまで、または最適化が収束するまで、前後(back−and−forth)最適化手順を継続することによって、最適化されてもよい。最適化手順は、例えば、ブール重みw
iに対する推測された値を使用し、最初にDの要素の値を推測するのではなく、辞書Dを最初に最適化し、およびブール重みw
iを最適化することによって、開始してもよい。
【0065】
いくつかの例では、辞書Dは連続的であってもよい。そのような例では、量子プロセッサを使用してDを最適化することは非実用的であることがある。逆に、ブール重みw
iは、離散的であることがあり、および量子プロセッサを使用して最適化されるのに非常に適切であることがある。よって、本方法に従って、上述した前後最適化手順は、量子プロセッサおよび非量子プロセッサ(例えば、デジタルプロセッサまたは古典的アナログプロセッサ)の両方を使用して実行されてもよく、量子プロセッサは、任意の所与の辞書Dに対応するブール重みw
iに対する式2を最適化する(すなわち、最小化する)ために使用され、非量子プロセッサは、ブール重みw
iの任意の所与の割り当てに対応する辞書Dに対する式2を最適化する(すなわち、最小化する)ために使用される。
【0066】
例えば、所与のDに対し、各々のw
i(1≦i≦S)をQUBOとして別個に最適化することができ
【数10】
全ての構成要素αに対し、w
i(α)∈{0,1}である。また、本方法に従って、最適化は、断熱的量子プロセッサ、または量子アニーリングを実装するために設計されたプロセッサなどの、量子プロセッサを使用して実行されてもよい。
【0067】
w
iの所与の設定に対するD上の最適化は、例えば、非量子プロセッサを使用して、d=D(:)を記述する(すなわち、ベクトルにおけるDの列を積む(stack))ように達成されてもよく、それによって、任意のK×1ベクトルwに対して
【数11】
となる。dを判定する最適化オブジェクトは、最小
【数12】
を有する
【数13】
である。
【0068】
次いで、Kのトレーニング例よりも少ないものが存在する場合、
【数14】
は、完全ランク(full rank)を有さないことがある。そのようなケースでは、
【数15】
を分解する単一値は、最小ノルム||d||
2での解を発見するために使用されてもよい。ブール値重みw
iへの制限は、例えば、辞書アトムの負の寄与(negative contributions)の可能性を排除することができる。しかしながら、辞書学習において考慮されることがあるため、重みが負であることを許容する明確な必要性が存在しないことがある。例えば、w変数の数を2倍にすること、およびブール値であるw
i+およびw
i−の両方を有するy
i=D(w
i+−w
i−)を記述することは、単純に、辞書のサイズを2倍にし、それによって、
【数16】
となる。
【0069】
スパーシティペナルティλは、例えば、トレーニングデータをトレーニンググループD
trainおよびテストグループD
testに区分化することによって設定されてもよい。トレーニンググループD
trainでは、辞書D(λ)は、λの所与の値で学習されてもよい。テストグループD
testでは、再構築誤りが測定されてもよい。
【数17】
【0070】
よって、error(λ)を最小化するλを選択することが有利であることがある。実際に、error(λ)は、この単一の箇所(single fold)を上回って推定されてもよい。
【0071】
式4によって定義されるQUBOの連結度は、D
TDによって判定されてもよく、および概して、完全に連結されてもよい。しかしながら、追加構造を課すことは、QUBO最適化を簡易化することができる。本方法は、結果として起こるQUBOを、近接行列Aによって指定される量子ビット連結度C
nを有する量子プロセッサハードウェア上で最適化することができるように、それらの追加的な制約に関して辞書をどのように学習するかを説明し、C
nは、完全には連結されないことがある。上述したように、典型的なQUBO式(すなわち、式3)のQij要素は、(D
TD)ij=di
Tdjによって与えられてもよい。不完全な連結度Cnを有する量子プロセッサへのマッピング(例えば、式4)では、結合されていない量子ビットiおよびjのペアは、di
Tdj=0であることを必要とし、またはdiおよびdjが直交していることを必要とする。入力信号Nの次元および辞書要素Kの数に応じて、D
TDがC
n連結度を有するようにDを定義する方法が存在しないことがある。そのようなケースでは、圧縮機構が修正されてもよい。
【0072】
しかしながら、N>>Kであること、および任意の連結度C
nに対する辞書Dを構築することが可能であることを仮定すると、D
TDの(α、α’)要素(ブール変数w
i(α)とw
i(α’)との間の連結度を判定する)は、<d
(α),d
(α’)>であり、D=[d
(1)…d
(K)]でありd
(α)およびd
(α’)は、Dの列である。よって、K×K行列D
TDに対する連結度C
nを指定することは、連結されていない頂点のベクトルが直交するようにベクトルをKの頂点のグラフに関連付けることに等しい。所与のグラフ構造G=(V,E)に対してこれを行うことができるか否かは、連結度E、およびアトムd
(α)の次元の両方に依存する。概して、ベクトルの次元がK=|V|に等しい場合に、連結されていない頂点のベクトルが直交するようにベクトルをKの頂点のグラフに関連付けることを達成することができる。しかしながら、本開示に従って、最小次数ノード(minimum degree node)が少なくとも|V|−dの隣接ノードを有する、d≧1の次元における特徴を発見することによってこれを改善することができる。例えば、5の最小次数を有する連結度を有する量子プロセッサアーキテクチャは、少なくともK−5の次元を必要とすることがある。
【0073】
上述したように、所与の辞書Dに対し、式2および/または4における重みw
iは、量子プロセッサ、例えば、断熱的量子計算および/または量子アニーリングを実装する量子プロセッサを使用して最適化されてもよい。反対に、ブール変数w
iの所与の割り当てに対し、辞書Dは、古典的デジタルプロセッサまたは古典的アナログプロセッサなどの非量子プロセッサを使用して最適化されてもよい。
【0074】
Nが十分に大きいことを仮定して、D
TDの連結度制約に考慮しながら辞書が適合されてもよい。ブロック座標降下法は、要求される直交性制約を満たすいくつかの初期辞書D(0)から開始して適用されてもよい。例えば、Lovasz直交性構築(L.Lovasz,M.Saks,and A.Schrijver,A correction:Orthogonal representations and connectivity of graphs.Linear Alg.Appl.,pages 101−105,(pages 439−454も参照)2000)を使用して、N≧Kのときに初期辞書が発見されてもよい。辞書D
(0)の最初から、重みをw
(1)←w(D
(0))に更新するために(例えば、式4を使用して)量子プロセッサが使用されてもよい。例えば、初期の重みw
(1)を更新するために量子プロセッサが使用されてもよい。辞書D
(0)の最初から重みが更新されると、辞書をD(1)←D(w
(1))に更新するためにプロセッサが使用されてもよく、D=[d
(1)…d
(K)]であり、および
【数18】
である。
【0075】
原則として、本方法は、任意の隣接行列A
α,α’に適合することができる。辞書の相互作用(dictionary interactions)は、問題の任意の態様、または問題を解決するために使用されるプロセッサの任意の態様に適合するためにカスタマイズされてもよい。よって、いくつかの適用では、結果として起こるQUBO問題が、量子プロセッサの連結度に一致する連結度、または少なくとも量子プロセッサにマッピングされるように従順な連結度を有するように、隣接行列A
α,α’を意図的に作成することが有利であることがある。本方法に従って、辞書の相互作用から生じるQUBO問題は、量子プロセッサの連結度に一致するように辞書を制限することによって、量子プロセッサによって解決されるように特に良好に適合されてもよい。
【0076】
例えば、辞書をD
(1)に更新するために、デジタルプロセッサまたは古典的アナログプロセッサなどの非量子プロセッサが使用されてもよい。この手順に続いて、更新式w
(t+1)←w(D
(t))およびD
(t+1)←D(w
(t+1))は、大域的最小または局所的最小などの、式2の最小に収束するまで繰り返されてもよい。
【0077】
上述したように、w(D)に対するQUBO最小化は、例えば、断熱的量子計算または量子アニーリングを実装する量子プロセッサを使用して実行されてもよい。しかしながら、辞書最適化問題は、非量子プロセッサを使用して対処されてもよく、なぜならば、例えば、Dが連続的となることがあるからである。例えば、局所探索アプローチが実装されてもよく、それによって、辞書の小さなサブセットが改善される。localModification(D)が局所的に改善された辞書を生み出す場合、最適化の全体的な構造は、アルゴリズム1において与えられる。
【0079】
wの更新の間で使用される局所的修正の数は、アルゴリズムのパラメータである。よって、そのような局所探索アプローチは、単一の列修正、2つの列修正、および3つ以上の列修正を含む、種々のlocalModification(D)修正に分解されてもよい。
【0080】
単一の列修正のための例示的な手順がここで説明される。単一の列(例えば、列1)を更新することを考慮し、および
【数19】
を記述すると、d
(1)は、それらがノード1に隣接していないそれらの列の直交補空間に存在することがあり、Dのゼロ空間は、直交するはずであるDの非隣接列を参照することがある。次いで、d
(1)=N
(1)t
(1)であり、N
(1)の列は、
【数20】
のゼロ空間に対する基底を定義する。よって、最も一般的に、
【数21】
である。全てのパラメータを最適化するために、ブロック座標降下法が適用されてもよい。{w
i}ブロック座標最小化が、前の式4のQUBO最小化を使用して実行されてもよい。所与の{w
i}に対するd
(1)を判定するために、再構築誤りを最小化し、
【数22】
ここで、
【数23】
である。
【0081】
t上での最小化は、
【数24】
となるように
【数25】
を生み出す。この更新ルールは、列1が使用されないとき、すなわち、
【数26】
のときに適用可能でないことがある。このケースでは、列1が後続の繰り返しにおいて使用される可能性が高くなるように、d
(1)を設定することを試みることが有利となることがある。単一ビットが1つのトレーニング例で反転される場合(すなわち、
【数27】
となるように)、新たな列を利用する可能性が最も高いトレーニング例が
【数28】
となるように、
【数29】
における再構築誤りに留意されたい。この選択で、
【数30】
となる。
【0082】
2つの列修正に対する例示的な手順がここで説明される。Dの2つの列d
(1)およびd
(2)は、例えば、同時に最適化されてもよい。最適化アプローチは、列がAにおいて隣接しているか、または隣接していないかに応じて分岐してもよい。
【0083】
d
(1)とd
(2)との間に追加の直交性制約が存在しないように列d
(1)およびd
(2)が隣接ノードに対応する例では、
【数31】
である。最適な線形結合は、
【数32】
として取得されてもよく、ここで、
【数33】
であり、r
(1)およびr
(2)は、重み付け誤り残余である。次いで、t
(1)およびt
(2)を結合する行列が、
【数34】
として反転されてもよく、
【数35】
であり、それによって、
【数36】
となる。
【0084】
【数37】
であるケースでは、行列は単数であり、その疑似逆が使用されてもよい。
【数38】
または
【数39】
のいずれかがゼロである場合、最大誤りを有する例の再構築誤りを最小化するために、同一の反事実引数(counterfactual argument)が列を設定するのに適用されてもよい。
【0085】
2つの列d
(1)およびd
(2)が非隣接する例では、
【数40】
であることが要求されることがあり、ここで、
【数41】
である。
【0086】
二次直交性制約および実現可能な組の非凸特性によってこの問題を困難にすることがある。局所的最小を発見するために、KKT式が直交性制約に対して解決されてもよい。Lagrangianは、
【数42】
であり、μは、直交性制約に対するLagrange乗算器である。KKT条件は、μが直交性制約に対するLagrange乗算器である場合である。KKT条件は、
【数43】
であり、
【数44】
を定義する。KKT式は、M(μ)t=vとして記述されてもよく、およびt
TAt=0であり、M(μ)t=I+μAである。それらの式に対する解は、以下のように発見されてもよい。
【0087】
M(μ)が単数でない場合、t=M
−1(μ)vが直交性制約<M
−1(μ)v,AM
−1(μ)v≧0を満たす可能性は低い。よって、KKT式を解決するために、t=M(μ)
+v+VτとなるようにM(μ)を単数とするためにμを設定する必要があることがあり、M
+は、MのMoore−Penrose逆であり、Vは、M(μ)のゼロ空間に対する基底である。このようにして、直交性を維持するためにτを設定する自由度が十分である可能性が高い。
【数45】
が
【数46】
としてM(μ)を単数とし、ここで、
【数47】
であることに留意されたい。いくつかの例では、t=v
μ*+Vτであり、v
μ*=M
+(μ
*)vであり、Vは、ゼロ空間に対する基底である。係数τは、最後の直交性式が解決されることを要求することによって設定されてもよく、
【数48】
であるが、AV=(M(μ
*)V−IV)/μ
*=IV/μ
*であり、それによって、
【数49】
となる。
【0088】
この最後の式は、楕円体(ellipsoid)
【数50】
上でベクトルrを発見し、およびτ=V
T(r−v
μ*)を設定することによって解決されてもよい。tに代わってt=(I−VV
T)v
μ*+VV
Trに従う。
【0089】
3つ以上の列更新に対する例示的な手順がここで説明される。これは、例えば、より多数の列を最適化するKKT条件に基づいて、2つの列更新を拡張することによって達成されてもよい。例として、その2つの隣接が中心変数である3列(変数)のKKT式を考慮する。中心変数の2つの隣接が相互に隣接していない場合、単一の乗算器が導入される必要となることがある。このケースでは、KKT式は、
【数51】
であり、(2)は、中心スピン(central spin)を表し、(1)および(3)は、相互に隣接しない(2)の隣接である。このケースでは、
【数52】
であり、それによって、M(μ)t=vであり、t
TAt=0であり、このケースでは、M(μ)が単数であるようにμを判定することは、より直接的でないことがある。しかしながら、
【数53】
を定義することによって、
【数54】
に従う。同様に、
【数55】
を定義することによって、
【数56】
の場合に、
【数57】
につながる。
【0090】
よって、例えば、選択
【数58】
で行うことができる、上記式を解決するようにμを設定することによって、M(μ)を単数にすることができ、ここで、
【数59】
および
【数60】
である。
【0091】
上記2つの式を満たす、
【数61】
に対するいずれかの選択を仮定すると、
【数62】
を設定することによってM(μ*)を単数とすることができる。μ*を認識することで単数値の分解
【数63】
(これからM(μ*)=VS
TSV
Tである)
【数64】
(これからM(μ*)=νS
TSν
Tである)
が、ゼロ空間を判定するために使用されてもよく、t=V
μ*+Vτであり、次いで、V
μ*=M
+(μ*)v.τが2つの列非隣接のケースにあったものとして判定されてもよい。
【0092】
ニュートンの方法が使用されてもよい。ν(μ)は、0に最も近いM(μ)の固有値を与える関数である(これは、良好な開始点を仮定して瞬時に収束することができる、反復Lanczos方法で取得されてもよい。良好な開始点は、例えば、最後のニュートンステップにおいて取得される近隣のμにおける固有ベクトルを使用して利用可能である)。ニュートンの方法を使用してν(μ)=0を解決することは、例えば、導関数δ
λν(μ)を<a,Aa>として供給することによって加速されてもよく、aは、0に最も近い固有値に対応する固有ベクトルである。ν(μ*)=0を満たすμ*を認識することで、VSV
T=M(μ*)の単数値の分解が実行されてt=v
μ*+Vτを提供してもよく、v
μ*=M
+(μ*)v.τは、上述した2つの列更新非隣接のケースにあったものとして厳密に判定されてもよい。
【0093】
改善された再構築は、より多数の辞書アトム(すなわち、より大きいK)で取得されてもよい。N<Kの構築された辞書を学習するときの直交性制約を満たすために、入力信号は、少なくともKの次元を有する空間にマッピングされてもよい。このマッピングは、線形であってもよく、および別に与えられてもよい。次いで、辞書は、
【数65】
を最小化することによってマッピングされたy
iをスパースに表すように学習されてもよく、BのFrobeniusノルムは、B=0、D=0、および{w
i}=0の解を防止するために固定されてもよい。ブロック座標降下法は、B、Dおよび{w
i}に関してオブジェクトを最小化するために使用されてもよい。B最小化は比較的直線的となることがあり、なぜならば、オブジェクトが二次的でありおよび制約が単純であるからである。全てのパラメータ学習させることによって、既知のwからの再構築がy=(B
TB)
−1B
TDwによって達成されてもよい。
【0094】
本方法に従って、QUBO問題を解決することは、量子アニーリングまたは断熱的量子計算の実装を含んでもよい。上述したように、典型的な断熱的進化は、式5によって表されてもよく、
H
e=(1−s)H
In+sH
f (5)
H
Inは、初期ハミルトニアンであり、H
fは、最終または「問題」ハミルトニアンであり、H
eは、進化または瞬時ハミルトニアンであり、sは、進化の速度を制御する進化係数である。概して、sは、s(t)としての時間tで0から1へと変化することがある。例えば、Amin,M.H.S.,“Effect of local minima on quantum adiabatic optimization”,PRL 100,130503(2008)で説明される、断熱的量子計算(「AQC」)に対する共通のアプローチは、式6に示される形式の初期ハミルトニアンで開始することであり、
【数66】
nは、量子ビットの数を表し、
【数67】
は、i番目の量子ビットに対するPauli x行列であり、Δ
iは、i番目の量子ビットにおいて帰納される単一の量子ビットトンネル分割(tunnel splitting)である。ここで、
【数68】
項は、「非対角」項の例である。この形式の初期ハミルトニアンは、例えば、以下の形式の最終ハミルトニアンに進化してもよく、
【数69】
ここで、nは、量子ビットの数を表し、
【数70】
は、i番目の量子ビットに対するPauli z行列であり、h
iおよびJ
i、jは、各量子ビットに結合される次元なし局所場であり、εは、H
fに対するいくつかの特有のエネルギースケールである。ここで、
【数71】
および
【数72】
の項は、「対角」項の例である。本明細書および添付の特許請求の範囲の全体を通じて、用語「最終ハミルトニアン」および「問題ハミルトニアン」は、交換可能に使用される。本方法の種々の実施形態では、最小化問題は、QUBOに変換され、QUBOは、プロセッサハードウェアにおける問題ハミルトニアンに直接マッピングされる。式6および7それぞれにおけるH
InおよびH
fなどのハミルトニアンは、種々の異なる方法で物理的に実現されてもよい。特定の例は、超伝導量子ビットの実装によって実現される。
【0095】
図1は、AQC(および/または量子アニーリング)に対して設計された超伝導量子プロセッサ100の一部の概略図である。
図1に示される超伝導量子プロセッサ100の一部は、2つの超伝導量子ビット101、102、およびそれらの間で情報を連結する調節可能ZZ−カプラ111を含む。
図1に示される量子プロセッサ100の一部は、2つの量子ビット101、102、および1つのカプラ111のみを含むが、当業者は、量子プロセッサ100が任意の数の量子ビット、およびそれらの間で情報を連結する任意の数の連結デバイスを含んでもよいことを理解するであろう。
【0096】
図1に示される量子プロセッサ100の一部は、式6によって説明されたハミルトニアンでシステムを初期化し、および式5によって説明された進化に従って、式7によって説明されたハミルトニアンにシステムを進化させることによって、AQCを物理的に実現するように実装されてもよい。本方法の種々の実施形態では、式7によって説明されたハミルトニアンの、基底状態などの低エネルギー状態を判定することは、QUBO問題に直接マッピングしてもよく、QUBO問題は、スパース最小二乗問題などの最小化問題を符号化する。QUBOと問題ハミルトニアンとの間のこのマッピングは、少なくとも部分的に、式7によって説明されたハミルトニアンにおけるパラメータへのプログラム可能な割り当てによって達成される。したがって、式7によって説明されたハミルトニアンの基底状態を判定するように量子プロセッサ100を進化させることは、QUBO問題を解決し、それは、最小化問題を効率的に解決する。量子プロセッサ100は、量子プロセッサ100の状態を構成および制御するために使用される複数のプログラミングインタフェース121〜125を含む。プログラミングインタフェース121〜125の各々は、示されるように、プログラミングシステム(図示せず)と通信する、それぞれの誘導結合構造によって実現されてもよい。そのようなプログラミングシステムは、量子プロセッサ100とは別個であってもよく、またはそれは、米国特許第7,876,248号明細書(米国特許出願公開第2008−0215850号明細書に対応する)および米国特許第8,035,540号明細書に説明されるように局所的に含まれてもよい(すなわち、量子プロセッサ100を有するチップ上で)。
【0097】
量子プロセッサ100の動作では、プログラミングインタフェース121および124は各々、磁束信号を、量子ビット101および102のそれぞれの複合ジョセフソン接合131および132にそれぞれ結合するために使用されてもよく、それによって、システムハミルトニアンにおけるΔ
iの項を実現する。この結合は、式6によって説明されたハミルトニアンの非対角σ
x項を提供し、それらの磁束信号は、「無秩序信号」の例である。同様に、プログラミングインタフェース122および123は各々、磁束信号を量子ビット101および102のそれぞれの量子ビットループに結合するために使用されてもよく、それによって、システムハミルトニアンにおけるh
i項を実現する。この結合は、式7の対角σ
z項を提供する。さらに、プログラミングインタフェース125は、磁束信号をカプラ111に結合するために使用されてもよく、それによって、システムハミルトニアンにおけるJ
ij項を実現する。この結合は、式7の対角σ
ziσ
zj項を提供する。
図1では、プログラミングインタフェース121〜125の各々のシステムハミルトニアンに対する寄与は、ボックス121a〜125aにおいてそれぞれ示される。
【0098】
本明細書および添付の特許請求の範囲の全体を通じて、用語「量子プロセッサ」は概して、量子ビットの集合(例えば、量子ビット101および102)ならびにカプラ(例えば、カプラ111)を説明するために使用される。量子ビット101および102ならびにカプラ111は、量子プロセッサ100の「計算要素」と称される。量子プロセッサに関連して、用語「プログラミングサブシステム」は概して、量子プロセッサ(例えば、プロセッサ100)に含まれるプログラミング要素(例えば、プログラミングインタフェース122、123、および125)、ならびに他の関連する制御回路または命令を説明するために使用される。上述したように、オペレーショナルサブシステムのプログラミング要素は、量子プロセッサとは別個であってもよく、またはプロセッサ上に局所的に含めることができるプログラミングシステムと通信してもよい。同様に、量子プロセッサに関連して、用語「進化サブシステム」は概して、量子プロセッサ100の計算要素を進化させるために使用される、進化要素121、124を説明するために使用される。例えば、進化サブシステムは、アニーリング信号線、および量子ビット(101、102)へのそれらの対応するインタフェース(121、124)を含んでもよい。
【0099】
図1で説明される例示的な量子プロセッサは、式4のQUBO問題を最小化して、所与の辞書D
0に対するブール重みw
1の値を判定するために使用されてもよい。判定されたブール重みw
1の値を使用して、非量子プロセッサは、辞書Dに対する式2を最適化して、新たな辞書D
1を作成するために使用されてもよい。次いで、
図1で説明される例示的な量子プロセッサは、式4のQUBO問題を最小化して、新たな辞書D
1に対するブール重みw
2の値を判定するために使用されてもよく、次いで、非量子プロセッサは、式2を最適化して、新たな辞書D
2を作成するために新たなブール重みw
2を使用してもよい。この処理は、重みw
iおよび/または辞書Dの収束など、いくつかの解判定基準が満たされるまで継続してもよい。
【0100】
本明細書で説明される種々の実施形態は、圧縮検知の技術を採用することによって、計算問題を解決するために量子プロセッサを使用する方法を提供する。概して、それらの方法は、オブジェクト(例えば、式2)を連続して最適化することを含み、各々の連続した最適化は、第1のパラメータ(例えば、辞書D)および第2のパラメータ(例えば、ブール重みw
i)の最適化の間で交互に入れ替わる。
【0101】
図2は、式1で与えられたオブジェクトを最小化する方法200を示すフローチャートである。方法200は、7つの動作201〜207を含み、当業者は、代替的な実施形態では、一定の動作が省略されてもよく、および/または追加の動作が追加されてもよいことを理解するであろう。当業者は、示された順序の動作が例示のみを目的に示されており、代替的な実施形態では変更されてもよいことを理解するであろう。201では、式1のスパース最小二乗問題における重みw
iは、ブール変数として再型変換され、それによって、式1は式2にマッピングされる。重みw
iをブール変数として再型変換することによって、量子プロセッサを使用して最適化されるのに良好に適合されたQUBO問題に式1がマッピングされることが可能になる。このマッピングは、例えば、デジタルプロセッサなどの非量子プロセッサを使用して実行されてもよい。202では、式2における辞書Dに対する初期値が設定される。辞書Dに対する初期値は、D
0に対応する。辞書D
0に対する初期値は、例えば、ランダムに、またはいくつかの知識もしくは基準に基づいて推測することによって設定されてもよい。203では、式2は、辞書D
0に対する初期値に対応するブール重みw
iの値に対して最適化される。この最適化は、処理w
1←w(D
0)に対応するw
1によって与えられるブール重みに対する初期値を生成し、および例えば、式4によって与えられるQUBO問題を最小化するために量子プロセッサを使用することによって達成されてもよい。204では、式2は、ブール重みw
1に対する初期値に対応する辞書Dに対して最適化される。この最適化は、処理D
1←D(w
1)に対応するD
1によって与えられる辞書に対する第2の組の値を生成し、ならびに例えば、上述した単一の列更新、2つの列更新、および/または3つ以上の列更新に対する手順に従って、辞書の列を更新するために非量子プロセッサを使用することによって達成されてもよい。
【0102】
205では、式2は、辞書D
1に対する第2の組の値に対応するブール重みw
iの値に対して最適化される。この最適化は、処理w
2←w(D
1)に対応するw
2によって与えられるブール重みに対する第2の組の値を生成し、および例えば、式4によって与えられるQUBO問題を最小化するために量子プロセッサを使用することによって達成されてもよい。206では、式2は、ブール重みw
2に対する第2の組の値に対応する辞書Dに対して最適化される。この最適化は、処理D
2←D(w
2)に対応するD
2によって与えられる辞書に対する第3の組の値を生成し、ならびに例えば、上述した単一の列更新、2つの列更新、および/または3つ以上の列更新に対する手順に従って、辞書の列を更新するために非量子プロセッサを使用することによって達成されてもよい。
【0103】
207では、動作203〜206で説明された前後最適化は、いくつかの解判定基準が満たされるまで繰り返される。すなわち、式2は、例えば、式4を最小化するために量子プロセッサを使用して処理w
t+1←w(D
t)に対応する各々の辞書D
tを考慮してブール重みw
t+1の値に対して最適化され、および例えば、辞書D
t+1の列を更新するために非量子プロセッサを使用して、処理D
t+1←D(w
t+1)に対応するブール重みw
t+1の各々の組を考慮して辞書D
t+1に対して最適化される。この処理が、いくつかの解判定基準が満たされるまで、例えば、辞書D、またはブール重みw
iに対する値の組のうちの少なくとも1つが収束するまで、続いてもよい。
【0104】
方法200における202では、最適化手順は、辞書D
0に対する初期値を設定し、およびそれらの値を使用することによって効率的に開始し、203では、ブール重みw
1の値を最適化する。しかしながら、最適化手順はまた、ブール重みw
1に対する初期値を設定し、および辞書D
1を最適化するためにそれらの値を使用することによって開始してもよい。
【0105】
図3は、式1で与えられたオブジェクトを最小化する方法300のフローチャートである。方法300は、7つの動作301〜307を含み、当業者は、代替的な実施形態では、一定の動作が省略されてもよく、および/または追加の動作が追加されてもよいことを理解するであろう。当業者は、示された順序の動作が例示のみを目的に示されており、代替的な実施形態では変更されてもよいことを理解するであろう。方法300は、方法300の302では、ブール重みw
1に対する初期値が設定され、方法200の202では、辞書D
0に対する初期値が設定されることを除いて、
図2からの方法200と実質的に同様である。302では、ブール重みw
1に対する初期値はランダムに設定されてもよく、またはいくつかの知識もしくは基準に基づいて推測することによって設定されてもよい。次いで、方法300は、動作303〜307に進んで、いくつかの解判定基準が満たされるまで、処理D
t←D(w
t)に従ってブール重みw
tに基づいて辞書D
tに対する式2を連続して最適化してもよく(例えば、辞書の列を更新するために非量子プロセッサを使用して)、および処理w
t+1←w(D
t)に従って辞書D
tに基づいてブール重みw
t+1を連続して最適化してもよい(例えば、式4のQUBOを最小化するために量子プロセッサを使用して)。例示的な解判定基準は、辞書Dおよびブール重みw
iのうちの少なくとも1つの収束である。
【0106】
本明細書全体を通じて、オブジェクト、例えば、スパース最小二乗問題における辞書に対する値の少なくとも一部を更新するために非量子プロセッサが使用される、本方法の種々の実施形態が説明される。しかしながら、本方法に従って、量子プロセッサは、オブジェクト、例えば、スパース最小二乗問題における辞書に対する値の少なくとも一部を更新するために採用されてもよい。例えば、本方法は、2011年7月6日に出願され、「Applications of Hardware Boltzmann Fits」と題する米国仮特許出願第61/505,044号明細書、2011年8月5日に出願され、「Applications of Hardware Boltzmann Fits」と題する米国仮特許出願第61/515,742号明細書、2011年9月28日に出願され、「Applications of Hardware Boltzmann Fits」と題する米国仮特許出願第61/540,208号明細書、2011年10月21日に出願され、「Systems and Methods for Minimizing an Objective Function」と題する米国仮特許出願第61/550,275号明細書、および2011年11月9日に出願され、「Systems and Methods for Minimizing an Objective Function」と題する米国仮特許出願第61/557,783号明細書で説明されるシステムおよび方法を適用することによって、ブール重みに対する値の(n−1)番目の組に基づいて辞書に対する値のn番目の組に対するオブジェクトを最適化するために量子プロセッサを採用することを含んでもよい(すなわち、動作204、206、207、303、305、および307は、辞書を最適化するために量子プロセッサを採用してもよい)。本方法に従って、量子プロセッサはまた、2011年7月6日に出願され、「Applications of Hardware Boltzmann Fits」と題する米国仮特許出願第61/505,044号明細書、2011年8月5日に出願され、「Applications of Hardware Boltzmann Fits」と題する米国仮特許出願第61/515,742号明細書、2011年9月28日に出願され、「Applications of Hardware Boltzmann Fits」と題する米国仮特許出願第61/540,208号明細書、2011年10月21日に出願され、「Systems and Methods for Minimizing an Objective Function」と題する米国仮特許出願第61/550,275号明細書、および2011年11月9日に出願され、「Systems and Methods for Minimizing an Objective Function」と題する米国仮特許出願第61/557,783号明細書で教示されるシステムおよび方法を適用することによって、辞書に対する値の(n−1)番目の組に基づいてブール重みに対する値のn番目の組に対するオブジェクト(例えば、オブジェクトの非QUBO定式化)を最適化するために採用されてもよい(すなわち、動作203、205、207、304、306、および307は、ブール重みを最適化するために量子プロセッサを採用してもよい)。
【0107】
本明細書および添付の特許請求の範囲の全体を通じて、用語「非量子プロセッサ」は、計算処理において、重ね合わせおよび/またはもつれなどの、量子現象を直接利用しない、任意の形式のプロセッサまたは処理システムを表すために使用される。非量子プロセッサの例は、古典的デジタルマイクロプロセッサ(例えば、Intel i7 quad core(登録商標)プロセッサなどのIntel Pentium(登録商標)プロセッサ、Intel Atom(登録商標)プロセッサ、ARM Cortex(登録商標)CPU)、フィールドプログラマブルゲート配列(FPGA)、特定用途向け集積回路(ASIC)またはグラフィカルプロセッサユニット(GPU、例えばNvidia GPU)、および古典的アナログプロセッサを含む。
【0108】
図4は、本方法で説明されるデジタル処理タスクを実行するために使用することができるデジタルプロセッサ406を含む例示的なデジタルコンピューティングシステム400を示す。当業者は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能家庭用電化製品、パーソナルコンピュータ(「PC」)、ネットワークPC、ミニコンピュータ、およびメインフレームコンピュータなどを含む、他のデジタルコンピューティングシステム構成で本方法を実施することができることを理解するであろう。本方法はまた、分散コンピューティング環境で実施されてもよく、そこでは、タスクもしくはモジュールは、通信ネットワークを通じてリンクされるリモート処理デバイスによって実行される。分散コンピューティング環境では、プログラムモジュールは、ローカルおよびリモートメモリ記憶デバイスの両方に位置してもよい。
【0109】
デジタルコンピューティングシステム400は、少なくとも1つのプロセシングユニット406(すなわち、デジタルプロセッサ)、少なくとも1つのシステムメモリ408、およびシステムメモリ408を含む種々のシステムコンポーネントをデジタルプロセッサ406に結合する少なくとも1つのシステムバス410を含んでもよい。デジタルコンピューティングシステム400は時に、本明細書では単数を意味してもよいが、これは、単一のデジタルコンピューティングシステム400への適用に限定することを意図するものではない。例えば、本方法の全体を通じて含まれる2つ以上のデジタルコンピューティングシステム400または他の古典的コンピューティングデバイスが存在してもよい。
【0110】
デジタルプロセッサ406は、1つ以上の中央処理装置(「CPU」)、デジタルシグナルプロセッサ(「DSP」)、特定用途向け集積回路(「ASIC」)などの、任意の論理プロセシングユニットであってもよい。他に説明がない限り、
図4に示される種々のブロックの構造および動作は、従来の設計のものである。結果として、そのようなブロックは、当業者によって理解されるため、本明細書ではさらに詳細に説明される必要はない。
【0111】
システムバス410は、メモリコントローラ、周辺バス、およびローカルバスを有するメモリバスを含む、任意の既知のバス構造またはアーキテクチャを採用することができる。システムメモリ408は、リードオンリメモリ(「ROM」)およびランダムアクセスメモリ(「RAM」)(図示せず)を含んでもよい。ROMの一部を形成することができる、基本入出力システム(「BIOS」)412は、起動の間など、デジタルコンピューティングシステム400内の要素間で情報を転送することを支援する基本ルーチンを含む。
【0112】
デジタルコンピューティングシステム400はまた、不揮発性メモリ414を含んでもよい。不揮発性メモリ414は、ハードディスクから読み取り、およびハードディスクに書き込むハードディスクドライブ、着脱可能光ディスクから読み取り、および着脱可能光ディスクに書き込む光ディスクドライブ、ならびに/または磁気ディスクから読み取り、および磁気ディスクに書き込む磁気ディスクドライブを含む、種々の形式をとってもよい。光ディスクは、CD−ROMまたはDVDとすることができ、磁気ディスクは、磁気フロッピーディスクまたはディスケットとすることができる。不揮発性メモリ414は、システムバス410を介してデジタルプロセッサ406と通信してもよく、および不揮発性メモリ414とシステムバス410との間で結合された適切なインタフェースまたはコントローラ416を含んでもよい。不揮発性メモリ414は、コンピュータ可読命令、データ構造、ログラムモジュールおよびデジタルコンピューティングシステム400に対する他のデータのための長期間の記憶としての役割を果たしてもよい。デジタルコンピューティングシステム400は、ハードディスク、光ディスクおよび/または磁気ディスクを採用するものとして説明されているが、当業者は、磁気カセット、フラッシュメモリカード、Bernoulliカートリッジ、RAM、ROM、スマートカードなどの、他のタイプの不揮発性コンピュータ可読媒体が採用されてもよいことを理解するであろう。
【0113】
種々のプログラムモジュール、アプリケーションプログラムおよび/またはデータをシステムメモリ408に記憶することができる。例えば、システムメモリ408は、オペレーティングシステム418、エンドユーザアプリケーションインタフェース420、サーバアプリケーション422、少なくとも1つのソルバモジュール424、および変換モジュール428を記憶してもよい。加えて、システムメモリ408は、少なくとも1つの量子プロセッサインタフェースモジュール432を記憶してもよい。それらのモジュールの動作および機能は、以下でより詳細に論述される。
【0114】
システムメモリ408はまた、1つ以上のネットワークアプリケーション434、例えば、ウェブサーバアプリケーション、および/またはデジタルコンピューティングシステム400がインターネット、協調イントラネット、もしくは他のネットワークを介してソースと共にサーバコンピュータで実行する他のサーバアプリケーションとデータを交換することを可能にする、ウェブクライアントもしくはブラウザアプリケーションを含んでもよい。示される実施形態におけるネットワークアプリケーション434は、ハイパーテキストマークアップ言語(「HTML」)、拡張可能ハイパーテキストマークアップ言語(「XHTML」)、拡張可能マークアップ言語(「XML」)またはワイヤレスマークアップ言語(「WML」)などの、マークアップ言語ベースであってもよく、ならびに文書の構造を表すために文書のデータに追加される区切り文字を構文的に使用するマークアップ言語で動作してもよい。いくつかのウェブサーバアプリケーション、およびウェブクライアントもしくはブラウザアプリケーションは、MozillaおよびMicrosoftから利用可能なように、商業的に利用可能である。
【0115】
図4では、システムメモリ408に記憶されているとして示されているが、オペレーティングシステム418、ならびに種々のアプリケーション/モジュール420、422、424、428、432、434および他のデータはまた、不揮発性メモリ414に記憶されてもよい。
【0116】
デジタルコンピューティングシステム400は、少なくとも1つのクライアントコンピューティングシステム436および少なくとも1つのデータベースシステム470への論理接続を使用して、ネットワーク環境において動作することができる。それらの論理接続は、デジタル通信の任意の手段を使用して、例えば、ローカルエリアネットワーク(「LAN」)、または例えば、インターネットを含むワイドエリアネットワーク(「WAN」)などの、ネットワーク438を通じて形成されてもよい。ネットワーク環境は、有線もしくは無線企業ワイドコンピュータネットワーク、イントラネット、エクストラネット、および/またはインターネットを含んでもよい。他の実施形態は、電気通信ネットワーク、セルラネットワーク、ページングネットワーク、および他のモバイルネットワークなどの他のタイプの通信ネットワークを含んでもよい。論理接続を介して送信または受信される情報は、暗号化されてもよく、または暗号化されてなくてもよい。LANネットワーク環境で使用されるとき、デジタルコンピューティングシステム400は、アダプタまたはネットワークインタフェースカード(「NIC」)440(システムバス410に通信可能にリンクされる)を通じてLANに接続されてもよい。WANネットワーク環境で使用されるとき、デジタルコンピューティングシステム400は、WAN上で通信を確立するために、インタフェースおよびモデム(図示せず)、またはNIC440などのデバイスを含んでもよい。加えて、または代わりに、非ネットワーク通信が採用されてもよい。
【0117】
ネットワーク環境では、プログラムモジュール、アプリケーションプログラム、データ、またはそれらの一部を、デジタルコンピューティングシステム400の外部に記憶することができる。当業者は、
図4に示される論理接続がコンピュータ間で通信を確立するいくつかの例であるにすぎず、他の接続も使用されてもよいことを理解するであろう。
【0118】
デジタルコンピューティングシステム400は概して、自動で動作してもよいが、エンドユーザアプリケーションインタフェース420はまた、オペレータがモニタ442などの出力デバイス、ならびにキーボード444およびポインティングデバイス(例えば、マウス446)などの入力デバイスを含む、異なるユーザインタフェース448を通じてデジタルコンピューティングシステム400と対話することができるように設けられてもよい。モニタ442は、ビデオアダプタ(図示せず)などのビデオインタフェースを介してシステムバス410に結合されてもよい。デジタルコンピューティングシステム400はまた、スピーカ、プリンタなどの他の出力デバイスを含むことができる。マイクロフォン、ジョイスティック、スキャナなどを含む他の入力デバイスも使用することができる。それらの入力デバイスは、システムバス410に結合するシリアルポートインタフェース、パラレルポート、ゲームポート、無線インタフェース、ユニバーサルシリアルバス(「USB」)、または他のインタフェースを介して、デジタルプロセッサ406に結合されてもよい。
【0119】
NIC440は、量子ビット(例えば、
図1からの量子ビット101および102)とインタフェースし、ならびに量子プロセッサ(例えば、量子プロセッサ100)におけるデバイス(例えば、
図1からのカプラ111)を結合する適切なハードウェアおよび/またはソフトウェアを含んでもよい。他の実施形態では、異なるハードウェアは、デジタルコンピューティングシステム400と量子プロセッサとの間で通信を促進するために使用されてもよい。
【0120】
デジタルコンピューティングシステム400の量子プロセッサインタフェースモジュール432は、量子プロセッサ(例えば、量子プロセッサ100)を使用して計算上の複合問題の解を調整するためのランタイム命令を含んでもよい。例えば、量子プロセッサインタフェースモジュール432は、サーバアプリケーション422によって受信されるスパース最小二乗問題の一部を表し、またはそれと等しいQUBO問題を解決することを開始させてもよい。これは、例えば、カプラ(例えば、111)および量子ビット(例えば、101、102)それぞれに対する初期結合値および局所バイアス値を設定することを含んでもよい。
【0121】
クライアントコンピューティングシステム436は、デジタルコンピューティングシステム400に通信可能に結合する種々のコンピューティングデバイスのいずれを含んでもよく、ならびに問題を適切にフォーマットし、および問題をサーバアプリケーション422に直接的または間接的に送信するように構成されたクライアントプログラム490を含んでもよい。デジタルコンピューティングシステム400が解を判定すると、サーバアプリケーション422は、この解を示す情報をクライアントプログラム490に送信し返すように構成されてもよい。
【0122】
本明細書全体を通じて、用語「連結度(connectivity)」は、仲介量子ビットを使用せずに、量子プロセッサにおける個々の量子ビットの間で通信可能に結合するのに物理的に利用可能な(例えば、アクティブであるか否か)、考えられる通信結合経路の最大数を説明するために使用される。例えば、3の連結度を有する量子ビットは、仲介量子ビットなしに、最大で3つの他の量子ビットに通信可能に結合することが可能である。言い換えると、任意の特定の適用例では、全てではないそれらの通信経路を採用し得るにも関わらず、3つの他の量子ビットに利用可能な通信経路が存在する。量子ビット間で結合デバイスを採用する量子プロセッサでは、これは、3の連結度を有する量子ビットが3つの結合デバイスを介して通信可能に結合可能であることを意味する。従来から、量子プロセッサにおける量子ビットの数は、解決することができる問題のサイズを制限し、および量子プロセッサにおける量子ビット間の連結度は、解決することができる問題の複雑度を制限する。
【0123】
計算問題を解決するために量子プロセッサを使用する圧縮検知の技術を採用する種々の実施形態は、広範囲の応用で適用されてもよい。例えば、式2の最小化(式1を表す)は、パターン認識、画像認識、人工知能の適用、ソフトウェア証明および検証、ならびに人工ニューラルネットワークのトレーニングを含む、機械学習アプリケーションなどの任意の学習問題における特徴を生成するために使用されてもよい。さらに、圧縮検知技術は、画像圧縮、音声圧縮、データファイル圧縮、およびビデオ圧縮などの、データ圧縮に向けられる適用で使用されてもよい。よって、本明細書で説明される種々の実施形態は、データ圧縮に量子プロセッサを採用する方法を提供する。
【0124】
例えば、ビデオ圧縮の適用では、y
iデータセット(式1で導入され、および本明細書全体を通じて使用される)は、ビデオシーケンスからのフレームの組(例えば、ピクセル値、RGB値など)を表してもよい。言い換えると、y
1は、ビデオシーケンスの第1のフレームに対するピクセル値を含んでもよく、y
2は、ビデオシーケンスの第2のフレームに対するピクセル値を含んでもよく、最大でy
nであり、ビデオシーケンスは、nのフレームを含む。対応する辞書要素が学習されると(例えば、本明細書で説明されるような量子プロセッサを介して)、辞書自体が送信されてもよく、完全な(および、一般的には大規模の)ビデオデータの送信は、どの基底要素がフレームごとにアクティブであるかを示す単純ビットの送信に減少されることがある。
【0125】
本明細書で説明されるような圧縮検知または処理を実行するために量子プロセッサを使用する技術は、データセット、例えば、画像データの組、または画像データセットを使用して採用されてもよい。例えば、収集されたデータは、y
iデータセット(式1および2から)として型変換されてもよく、ならびに本明細書で説明される圧縮検知または処理技術を採用する量子プロセッサを使用して分析されてもよい。よって、y
iは、例えば、1つ以上のオブジェクトを含むシーン(scene)を示す画像データを含んでもよく、あるいは他の有体構造もしくは無体構造(例えば、文字および数字などの英数字)、または物理的活動もしくは値を表してもよい。次いで、本明細書全体を通じて説明されるスパース最小二乗問題を解決する技術は、例えば、データセットから特徴を抽出し(例えば、辞書値Dおよび/またはその対応する重みw
i)、ならびにデータセットにおけるパターンを効果的に「学習」し、およびそれらのパターンを一定の要因(stimuli)にどのように相関付けるかを「学習」するために採用されてもよい。このようにして、分類器が発展されてもよい。当業者は、デジタルコンピュータが、機械またはロボットシステムなどのシステムに組み込まれてもよく、そのようにして本システムおよび方法は、量子プロセッサを介して、機械またはロボットデバイス上で強化思考制御を有効にすることができる、スパース最小二乗問題への改善された解を判定する技術を提供する。
【0126】
図5は、本システムおよび方法に従って、データセットを分析するために量子プロセッサを使用する方法500を示すフローチャートである。方法500は、5つの動作501〜505を含むが、当業者は、代替的な実施形態では、一定の動作が省略されてもよく、および/または追加の動作が追加されてもよいことを理解するであろう。当業者は、示された順序の動作が例示のみを目的に示されており、代替的な実施形態では変更されてもよいことを理解するであろう。501では、データセットが収集される。502では、データセットが、例えば、
図4からのデジタルコンピューティングシステム400などのデジタルコンピュータに送信される。少なくとも1つのパラメータは、物理オブジェクトもしくは特徴、または非物理的オブジェクト、活動もしくは信号を表す特定のパターンなどの、データセットにおける特定の特徴を示してもよい。503では、デジタルコンピュータは、データセットに基づいて目的関数を定式化するために使用され、目的関数は、目的関数が最小化されるときのデータセットに特有な値を採用する、少なくとも1つの変数パラメータを含む。例えば、目的関数は、スパース最小二乗オブジェクト(例えば、式1または式2)を含んでもよく、少なくとも1つのパラメータは、辞書D、辞書Dの構成要素、または対応する重み付けwを含んでもよい。504では、デジタルコンピュータは、量子プロセッサ(
図1からの量子プロセッサ100など)と相互作用して、目的関数を最小化し、およびデータセットに特有な少なくとも1つのパラメータの値を判定するために使用される。目的関数を最小化するためにデジタルコンピュータを介して量子プロセッサと相互作用することは、例えば、
図2および3の方法200および/または300をそれぞれ含むがそれらに限定されない、本明細書で説明される圧縮検知の種々の技術を採用してもよい。505では、データセットに特有の少なくとも1つのパラメータの値が返される。データセットに特有な少なくとも1つのパラメータの値は、例えば、単一辞書要素/ベクトル、またはデータセットからの有用な情報の抽出を促進する要素/ベクトルの完全な辞書を含んでもよい。例えば、本システムおよび方法に従ったスパース最小二乗オブジェクトの最小化は、データセットからユーザ指定命令を抽出することが可能な辞書を学習するために使用されてもよい。辞書は、方法500の505において返されてもよく、その後、いくつかの適用において使用される。例えば、スパース最小二乗オブジェクトを最小化するために量子プロセッサを採用することによって学習される辞書は、機械システムまたはロボットシステムなどの任意の適切なシステムに送信されて、システムがデータセットからユーザ指定命令を抽出することを可能にしてもよい。よって、量子プロセッサが辞書を学習するために採用されると、辞書自体が送信されてもよく、他のシステムは、量子プロセッサをさらに採用する必要なく、ユーザ指定命令を直接解釈し、およびそれに応答するために辞書を使用してもよい。
【0127】
図6は、本システムおよび方法に従った、システム600の例示的な図である。システム600は、デジタルコンピュータ603と通信する画像カメラ602を含み、デジタルコンピュータ603も量子プロセッサ604と通信する。画像カメラ602は、木601の1つ以上の画像を撮ってもよく、それらの画像の1つ以上は、データセットに対する基底を形成してもよい。データセットは、無線、Bluetooth、USB、シリアル、または通信接続の任意の他の既知の手段を含む通信リンクによってデジタルコンピュータ603に送信されてもよい。デジタルコンピュータ603は、例えば、
図4からのデジタルコンピュータシステム400と実質的に同一であってもよい。デジタルコンピュータ603は、通信接続の任意の既知の手段を介して量子プロセッサ604に通信可能に結合される。量子プロセッサ604は、例えば、
図1からの量子プロセッサ100と同様であってもよいが、好ましくは、数十、数百、または数千の量子ビットおよび対応する結合デバイスなどの、より多数の量子ビットおよび対応する結合デバイスを採用する。
【0128】
上述した(ならびに、
図5および6で示された)データを取得および分析するシステムおよび方法は、機械学習の適用を強化するために量子プロセッサを採用する例を表す。本システムおよび方法に従って、媒体または画像データを含む、他の形式のデータを使用して、同様の技術が採用されてもよい。
【0129】
1.0 階層型深層学習(HDL)ソフトウェアフレームワーク
HDLソフトウェアフレームワークは、最新式階層型深層学習(HDL)アルゴリズムの組を実装するPythonベースのソフトウェアフレームワークである。これらのタイプのアルゴリズムは、人間型認識および知識を機械に吹き込む新たな波のアプローチに根拠をなす。
【0130】
エンジニアシステムにおいて人間型認識および知識が望ましい任意のコンテキストで、HDLソフトウェアフレームワークを使用することができる。例は、
− 画像またはビデオにおけるオブジェクトまたはイベントの検出
− 会話認識および変換
− エンターテインメントおよびゲームにおける知的エージェント
− 自然言語処理および会話
− 異常、不正およびネットワーク侵入検出
− 新規な医療的診断テストの進歩
− ロボットシステムに対する新たなタイプの自立性の進化
を含む。
【0131】
仮想的に、人間によって良好に固有に現在行われている任意のタスクは、HDLソフトウェアフレームワークに対する潜在的な適用である。
【0132】
HDLアルゴリズムは、大量のラベル付けされていない未加工(raw)データにおける少数の繰り返しパターンを発見することを試みている。次いで、それらの繰り返しパターンは、アルゴリズムがデータを理解するのに使用する「基礎的要素(building blocks)」になる。未加工データを扱い、および処理する代わりに、アルゴリズムは、それが学習したパターンを組み合わせることによって、それが組み立てられた表現を扱い、および処理する。再構築と称される、この表現は、元の未加工データストリームにおけるオブジェクトを「模倣する」が、何度も再発する未加工データにおけるパターンに焦点を絞る(したがって、暗黙的に重要であると想定される)。
【0133】
この手順は、生物学システム(人間を含む)が、絶え間なく公開される情報の流れをどのようにして理解することが可能であるかを理解する機構を提供する。虎を示す画像、写真または他の媒体において何を見ているかを人間が質問される場合、人間は、虎を見ていると数秒内で回答することが可能である。これは、驚くべき偉業であり、毎秒10
17の光子は、人間の網膜を打ち付け、および、いずれかの方法でこの情報の膨大な海から、画像の主となる特徴を瞬時に抽出する。
【0134】
人間は、その誕生から長年にわたり、その環境から複数の「最大限の繰り返しパターン」を学習したと想定することによって、このタイプの視覚データの理解をHDLフレームワーク内で説明することができる。それらの一部は、非常に低レベルであり、エッジ検出器に類似しており、および一部は、より低レベルの概念から「組み立てられた」虎などの抽象的概念でさえ、非常に高レベルである。
【0135】
このフレームワークでは、人間が「見ている」のは、(人間にとって圧倒的な量であり、およびその大部分が人間にとって関心のない)未加工の写真データでないが、世界を理解するためにパターンを共につなぎ合わせることによって、精神において再構築される。「実際にそこにある」ことを人間が認識している人間の直感は、このフレームワークでは偽である。人間の精神内で展開する写真は、既に見たデータにおいて再発することが多いパターンを共につなぎ合わせることに基づいた再構築である。次いで、人間は、検知に影響するデータの「現実性」ではなく、それらの再構築に基づいて推論する。
【0136】
それらのアルゴリズムの興味深い態様は、それらが供給されるタイプの未加工データに対して不確かとし得ることである。よって、任意のデータタイプ、またはデータタイプの混在に等しく手順を適用することができる。画像およびビデオデータに加え、音声、触覚、EEG、遺伝子、テキスト、または任意の他のタイプのデータを、同様の方法で処理することができる。
【0137】
1.1 HDLソフトウェアフレームワーク
HDLソフトウェアフレームワークは、階層型半教師あり深層特徴学習のためのPythonフレームワークである。フレームワークは、視覚、聴覚、触覚、EEG、fMRI、遺伝子配列、および/またはテキストラベルを含むがそれらに限定されない、多様なデータを扱う能力を有する。具体化されるアルゴリズムは、階層において上位である特徴が、データにおけるより抽象的なパターンを表すことが可能である、半教師あり設定において階層型の組の特徴を学習する。階層の各々の階級で特徴を学習するのに使用される手順は、スパースコーディングと称される。
【0138】
階層型学習手順は、階層における後続の階級にスパースコーディング手順を再帰的に適用することに基づいている(スパースコーディング手順をn番目のレベルにおいて学習された特徴に適用することによって、n+1番目のレベルが構築される)。ソフトウェアフレームワークによって、ユーザは、2つの異なるタイプのスパースコーディングアルゴリズムの間で選択することが可能になる。
− L1ノルムスパースコーディング。このバージョンは、特徴の実数値で重み付けされた組み合わせから再構築を組み立てることができ、および正則化がL1ノルム形式の正則化であることを想定する。このケースにおけるアルゴリズムは効率的である。フレームワークによって、並列化することができるアルゴリズムの態様が多数の(典型的には、数万の)従来型プロセッサにサブミットされる、クラウドコンピューティング環境でユーザが実行することが可能になる。
− L0ノルムスパースコーディング。このバージョンによって、重みが0/1変数であり、および正則化がL0ノルム形式の正則化である、特徴の組み合わせである再構築が可能になる。それらの制限は、アルゴリズムのこの変形によって学習される異なる特徴につながる。変化は、実変数上での解決可能な凸最適化問題から内在する最適化問題を、二値変数上のNP困難非凸(NP−hard non−convex)最適化問題に変換する。フレームワークは、主要なアルゴリズムを区分化し、それによって、従来型コンピュータによって最良に提供される態様を、ローカルに、またはクラウドコンピューティング環境のいずれかで実行することができ、および主要な組み合わせ最適化問題を、ソフトウェアソルバを使用してローカルに、ソフトウェアソルバを使用してクラウド上で実行することができ、または量子ハードウェア上で実行することができる。
【0139】
HDLソフトウェアフレームワークは、機械知能が、それが示された入力データをどのように「理解する」ことを理解するために、システムを通じて情報の流れをユーザが理解することを支援する視覚化およびユーザインタフェースツールを含む。
【0140】
2.0 L0ノルムスパースコーディングの議論
L0ノルムスパースコーディングの困難さを、以下の式の多数のQUBOの解に減少させることができ、
【数73】
を最小化する
【数74】
を発見する。
【0141】
この式は、より典型的なL1ノルムのバージョンのスパースコーディング上で利点を有する(例えば、MNISTの最大限のスパースエンコーディングを得るために)。
【0142】
タブー検索の変形が、それらのQUBOを解決するために使用されてきた。以下は、タブー上の改良のための2つのハードウェア集中戦略である。
【0143】
変数jおよびmを連結するQUBOにおける項は、j番目およびm番目の辞書アトム
【数75】
および
【数76】
のドット積に比例する。それらのアトムがそのように見える必要があるものに制限は追加されていないため、それらのドット積は全て、非ゼロとすることができる(辞書アトムは直交する必要はなく、概して、直交しない)。これは、手順によって生じる全ての問題が完全に連結され、各々の変数が一つおきの変数によって影響されることを意味する。
【0144】
残念ながら、物理量子コンピューティングチップが組み立てられるとき、この完全な連結度が達成されないことがあり、または達成することが困難である。量子コンピューティングチップは、任意の所与の変数を、比較的少数の他の変数のみと連結されてもよい。
【0145】
解決する問題の連結度、およびハードウェアの連結度の不一致を克服する少なくとも2つの方法が存在する。一つ目は、埋め込み(embedding)と称され、二つ目は、本明細書では「BlackBox」と称される混合アルゴリズムの構成要素として大規模隣接局所検索(large neighborhood local search)のタイプを実行するためにハードウェアを使用することによるものである。
【0146】
埋め込みによる問題の解決
量子コンピュータでは、量子ビットが物理的に他の量子ビットの一部のみに連結される。例えば、いくつかの実装形態では、各々の量子ビットが、本明細書ではChimeraグラフと称される特定のパターンで、最大で6つの他の量子ビットに連結される。D−WaveのRainierチップ(D−Wave Systems Inc.)では、128の量子ビットが存在した。Vesuviusと言う別のD−Waveプロセッサでは、512の量子ビットが存在する。
【0147】
Chimeraグラフは、プロセッサをタイル状に並べる(tile out)ために標準の繰り返しパターンを使用する方法である。上述したRainierチップでは、プロセッサグラフは、4×4のタイル状の8量子ビット単位セルであった。Vesuviusでは、同一の単位セルが使用されていたが、8×8のタイル状であった。
【0148】
埋め込みは、解決されることになる問題の変形からプロセッサにおける物理量子ビットへのマッピングであり、マッピングは、1対多とすることができる(各々の変数を多くの物理量子ビットにマッピングすることができる)。問題の構造を保存するために、同一の変数に対応する量子ビットはより強く「共に固定される」。
【0149】
ここで、Kの頂点を有する完全連結されたグラフを、(K−1)
2/2の物理量子ビットを有するChimeraグラフに埋め込むことができるような完全に連結されたQUBOのケースでは、128量子ビット量子プロセッサは、完全連結された17の変数グラフを埋め込むことができ、512量子ビット量子プロセッサは、完全連結された33の変数グラフを埋め込むことができる。
図34に示されるのは、Ramsey数を計算する問題を解決するための128量子ビットプロセッサへの埋め込みである。量子ビットが同一に色付けされるプロセッサグラフは、同一の計算変数を表す。
【0150】
よって、スパースコーディングQUBOを解決するために512量子ビット量子プロセッサを使用する一つの方法は、Kを33またはそれ以下に制限することであり、およびそれらの問題を埋め込むことである。しかしながら、これは、2つの(関連する)理由により満足できるものではない。1つ目は、33の辞書アトムは一般的に、大きなデータセット上ではスパースコーディングに対して十分ではないことである。2つ目は、上述した手順によって生じるQUBOは、実際にはそのスケールではタブー検索に容易であることである。問題に対し、この小さな、タブーは、約10ミリ秒の問題のタイムアウト(512量子ビット量子プロセッサ上では単一の問題に対する実行時間とほぼ同一の)ごとに優れた性能を与え、それは、クラウドで実行することができるため、タブーアプローチは、大規模な並列処理をうまく利用することもできる。よって、問題ごとを基準とする場合でさえ、512量子ビット量子プロセッサは、例えば、それに対して1,000のコアをまとめるときに、このスケールでは競争力があり、512量子ビット量子プロセッサは、処理に対して1,000の量子プロセッサを利用することができないために負ける。
【0151】
BlackBoxを使用したスパースコーディングQUBOの解決
BlackBoxは、D−Wave Systems Inc.において開発されたアルゴリズムである。以下は、それがどのように機能するかの高レベルの導入である。BlackBoxは、与えられる全てが、二値最適化問題への考えられる回答を、それらの考えられる回答がどのようであるかを表す実数に変換するブラックボックスであり、問題を解決するために設計される。例えば、航空機翼の構成は、ビット列として指定され、およびその構成がどの程度「良好」であったかを知るために、実際にその例を構築し、および測定のために風洞にそれを置くことを必要とする。または、大規模スケールのスパーコンピュータのシミュレーションを単に実行することが十分であり得る。しかしながら、二値変数の設定と、これのような問題における回答の品質との間の関係は、スパースコーディングQUBOで可能なような、閉形式では容易に指定されない。
【0152】
BlackBoxはタブー検索に基づいているが、単一ビットフリップを超えて次に移動する可能性を拡大する各々の検索点の周辺で目的関数のモデルを生成するためにハードウェアを使用する。各々のタブーステップにおけるハードウェアからのこのモデル化およびサンプリングは、ステップごとの時間を増加させるが、目的関数のいくつかの目標値に到達するのに必要なステップの数を減少させる。目的関数を評価するコストが増大するにつれ、各々のタブーステップもおいてより良好に移動することによって「ステップ」を少なくする利得が増大する。しかしながら、目的関数を非常に迅速に評価することができる場合、タブーはBlackBoxのモデル化およびハードウェアサンプリングステップの追加コストに起因して単位時間ごとにさらに多くの推測を生じさせることがあるため、タブーは概して、BlackBoxよりも性能で上回る。
【0153】
BlackBoxは、任意のサイズの完全に連結されたQUBOに適用されてもよく、なぜならば、少数の辞書アトムへの制限が取り除かれるため、埋め込みよりもこれはより良好であるからである。BlackBoxで、任意のサイズの問題を試すことができる。
【0154】
512量子ビット量子プロセッサ上のBlackBoxは、試される問題のサイズ(確かに、いまだに非常に小さく、最大で50の変数)のいずれかに対してクラウド対応タブー検索では競争的でない。これは、それらの問題がどんなに大きくても、以下の問題により持続し続ける。
1.スパースコーディング問題(Sの独立したQUBO)の本質的に並列した性質は、複数のコアと少数の512量子ビット量子プロセッサとの間の比較を意味する。この因子は、数百万のデータオブジェクトを有する大きな問題に対し重要となることがあり、この因子は、容易に数千または数百万になることがある。
2.BlackBoxは、実際にブラックボックスである目的関数に対して設計され、それによって、問題の構造に直接的に取り組む明確な方法が存在せず、そこでは、目的関数を評価することに非常にコストがかかる。これは、それらの問題、それらがQUBOであり、およびこの既知の事実に基づいて取り組みを直接行うことができることを意味するケースではない。それらの問題に対し、確かに使用することができる、現在のバージョンのBlackBoxは、その最も効率的なスイートスポット(sweet spot)にない(すなわち、概して、クラウドにおいてタブーとの競争力を有するとは予想されない。
【0155】
また、これは厳密に発見されるものであり、512量子ビット量子プロセッサ上のBlackBoxは、試される問題サイズのいずれかに対して、クラウド上ではタブーとの競争力を有しない。ここでは、小さな警告(caveat)が存在し、非常に多数のアトム(例えば、数千の)に対し、これが変化する可能性があり、BlackBoxがさらに競争力を有することに留意されたい。
【0156】
それらがハードウェアに厳密に適合するようにスパースコーディングによって生じる問題を制限することが可能であり、それによってハードウェアグラフに厳密に一致するように生じる問題を必要となる場合、量子プロセッサは、512量子ビット量子プロセッサが、それが解決している自然問題に対し地球上で存在する何よりも何倍も高速であるため、古典的プロセッサを上回ることが可能である。
【0157】
クラウド上でタブーとの競争のために量子ハードウェアを使用する内在する問題は、問題スパースコーディングが生じさせる連結度(完全に連結された)、および量子ハードウェアの連結度の不一致であった。
【0158】
この不一致の源は、j番目およびm番目の変数が
【数77】
に比例する、目的関数における二次式の項である。結合項は、辞書アトムのドット積に比例する。
【0159】
要求されるいくつかの実装形態では、
【数78】
が、ハードウェアにおいて連結されていない変数jおよびmの全てのペアに対してゼロである必要がある。辞書におけるこの構造を達成する場合、非常に関心のある結果が得られる。完全に連結されることに代えて、この制限を有するQUBOを、ハードウェアが解決する内在する問題に厳密に一致するように設計することができる。これを行うことができる場合、量子ハードウェアの全電力を使用することにより近づくことになる。
【0160】
構造化辞書を有するL0ノルムスパースコーディング
1.各々の
【数79】
がNの構成要素を有する実数ベクトルである、Sのデータオブジェクト
【数80】
の組と、
2.Kが、選択され、およびベクトル
【数81】
になるそのk番目の列が定義される辞書アトム数である、N×Kの実数値行列
【数82】
と、
3.K×Sの二値行列
【数83】
と、
4.正則化パラメータと称される、使用されている量子チップにおいて連結されていない全てのペアj、mに対して
【数84】
である制約の影響を受ける
【数85】
を最小化する
【数86】
および
【数87】
を発見する、実数λと、を仮定する。
【0161】
ここでの差は、追加される辞書アトム上の制約の組である。
【0162】
ブロック座標降下法を使用したスパースコーディング問題の解決
態様および実施形態において、以下の戦略を使用することが望ましいことがある。
1.最初に、辞書アトム上で課される直交性制約を満たすことの影響を受ける、ランダム辞書
【数88】
を生成すること。
2.辞書アトム
【数89】
に対する最適化問題を解決する、それらの固定された辞書を想定すること。ここで、それらの最適化問題は、構築によってハードウェア上で厳密に適合される、Chimera構造化QUBOである。
3.ここで、重みをそれらの値に固定し、および再度、制約の影響を受ける最適辞書
【数90】
を発見すること。
【0163】
Gが最小に収束するまで、動作2および3を繰り返す。
【0164】
これは、動作2が、多数のchimera構造化QUBO、完全に連結されないQUBOの解を必要とする前に、異なる領域に入る。よって、それによって、それらの問題がより良好に量子ハードウェアに適合される。しかしながら、ここで、動作1および3の両方を可能とするためにいくつかの新たな事項が必要となり、それらは最初にいくつかのコストを有する。
【0165】
制約に従う初期ランダム辞書の組み立て
L.Lovasz,M.Saks,and A.Schrijver,Orthogonal representations and connectivity of graphs.Linear Algebra and its Applications,114:439−454,1989と題する論文に興味深い結果が存在する。以下は、その結果の簡潔な説明である。
【0166】
Vの頂点上のグラフを想像する。そのグラフでは、各頂点は、他の束に連結される。グラフにおける最小の連結された変数の連結度に対応する数pを想定されたい。上述した論文は、次元V−pにおける実ベクトルの組を定義することができ、そこでは、グラフにおける非隣接ノードに直交ベクトルを割り当てることができることを証明している。
【0167】
よって、目標(ランダム辞書
【数91】
を発見して、それによって、量子ハードウェアにおいて連結されていない全てのk、mに対し
【数92】
となる)を、ベクトル
【数93】
の長さがV−pよりも大きい場合に行うことができる。
【0168】
512量子ビット量子プロセッサに対し、数Vは512であり、Chimeraグラフにおける最小連結度ノードは、p=5である。よって、辞書アトムの次元が512−5=507である限り、上記ステップ1を常に実行することができる。
【0169】
ここでは、この非常に興味深い結果に関するさらなる側面(color)がある。直交する2つのベクトル
【数94】
および
【数95】
(すなわち、ドット積
【数96】
はゼロである)を識別することを想像されたい。これを行うことができるように、それらのベクトルがあるべきである最小次元は何であるか?それらの両方が1次元にあり、それらは一列の番号にすぎないことを想像されたい。次いで、それを明確に行うことができない。しかしながら、2次元を有する場合、それが可能になる。ここで、例は、
【数97】
および
【数98】
である。2次元を上回るものが存在する場合、それを行うことがまた可能であり、このケースで行われる選択が唯一ではない。
【0170】
より一般的に、質問「V次元空間に何個の直交ベクトルを描くことができるか?」が尋ねられる場合、答えは、次元ごとに1つのベクトルである。よって、それは、上記結果の鍵となる要素(key piece)である。任意の他に連結された頂点がない(最小頂点連結度p=0)、Vの頂点を有するグラフを有し、およびそれらのベクトルの全てが他の全てに直交するように各頂点にベクトルを割り当てることを望む場合、それは、「V次元空間を仮定すると、ベクトルが全て相互に直交するように、何がベクトルの組の最小次元であるか?」を質問することに等しく、答えは、Vである。
【0171】
ここで、グラフにおける頂点の一部の間のエッジを描くこと、およびそれらの頂点にあるベクトルが直交することを必要としないことを想像されたい。概念的に、これは、一部の制約を緩和し、および要求される組のベクトルを発見するのを「容易」にするものと考えられてもよく、よって、これが作用するように必要とされるベクトルの最小次元は、グラフがさらに連結されるにつれて減少する。ここでの注目すべき結果は、これが作用する非常に簡単な方法である。まさに、グラフにおける最小連結度ノードを発見し、その連結度pを要求し、および「最小連結度頂点が連結度pを有する、Vの頂点上のグラフを仮定すると、グラフにおける連結されていない頂点が全て直交ベクトルを割り当てられるように、何がベクトルの組の最小次元であるか?」と質問されたい。答えは、V−pである。
【0172】
ゼロ空間
以下は、ステップ1を行うための構築手順の例である。
1.全てのエントリが+1と−1との間の乱数である、行列
【数99】
を生成する。
2.各列のノルムが1になるように各列を再正規化する。
3.最も左から最も右への順序で、
【数100】
における各列に対し、その列のゼロ空間を計算し、次いで、その列をゼロ空間基底で記述されたランダムな列に置き換える。
【0173】
この処理は、新たな手順で必要とされる初期のランダムな直交基底を生み出す。
【0174】
以下は、行列
【数101】
に対するゼロ空間基底を計算するためのいくつかのPythonコードである。
import numpy
fromscipy.linalg import qr
def nullspace_qr(A):
A=numpy.atleast_2d(A)
Q、R=qr(A.T)
ns=Q[:,R.shape[1]:].conj()
return ns
【0175】
上述したように、量子プロセッサアーキテクチャを効率的に使用して問題が発生することがあり、解決が要求される問題の連結度と、量子ハードウェアの連結度との間の不一致である。
【0176】
1.各々の
【数102】
がNの構成要素を有する実数ベクトルである、Sのデータオブジェクト
【数103】
の組と、
2.Kが、選択され、およびベクトル
【数104】
になるそのk番目の列が定義される辞書アトムの数である、N×Kの実数値行列
【数105】
と、
3.その行列要素がw
ksである、K×Sの二値行列
【数106】
と、
4.正則化パラメータと称される実数λと、を仮定すると、
使用されている量子チップにおいて連結されていない全てのペアj、mに対する
【数107】
の制約の影響を受ける
【数108】
を最小化する
【数109】
および
【数110】
を発見する。
【0177】
この問題を解決するために、このように機能する、ブロック座標降下法が使用され、
1.最初に、辞書アトム上で課される直交性制約を満たすことの影響を受ける、ランダム辞書
【数111】
を生成する。
2.辞書アトム
【数112】
に対する最適化問題を解決する、それらの固定された辞書を想定する。ここで、それらの最適化問題は、構築によって量子ハードウェア上で厳密に適合される、Chimera構造化QUBOである。
3.ここで、重みをそれらの値に固定し、および再度、制約の影響を受ける最適辞書
【数113】
を発見する。
【0178】
この問題は、共に凸でなく、および最小は局所的最小であることを考慮して、Gが最小(または、いくつかの基準)に収束するまで、ステップ2および3が繰り返される。新たな立点(standing point)からの全体アルゴリズムの各々の再始動は、異なる局所的最小につながり、よって、この手順を数回実行することによって、より良好な回答を得ることができる。
【0179】
ステップ3:固定重みが与えられた最適構造化辞書の発見
困難な問題は上記ステップ3である。ここで、重み
【数114】
は固定され、目標は最適構造化辞書を発見することである。ここに、問題の公式の見解がある。
【0180】
1.Sがデータオブジェクトの数であり、s番目の列がs番目のデータオブジェクト
【数115】
であると定義され、各々の
【数116】
は、Nの構成要素を有する実数値ベクトルであり、
【数117】
の行列要素は、z
nsである、N×Sの実数値行列
【数118】
と、
2.Kが、辞書アトムの数であり、そのk番目の列がベクトル
【数119】
であると定義され、
【数120】
の行列要素は、d
nkである、N×Kの実数値行列
【数121】
と、
3.行列要素w
ksを有する、K×Sの二値行列
【数122】
と、を仮定すると、
【数123】
を最小化する
【数124】
を発見し、
【数125】
であり、それは、使用されている量子チップにおいて連結されていない全てのペアj、mに対して
【数126】
の制約の影響を受ける。
【0181】
この問題を困難にするのは、辞書アトム上の制約が非線形的であり、多数のそれらが存在することである(変数のペアごとに1つがハードウェアにおいて連結されていない)。
【0182】
【数127】
がスパースである領域で動作することが有利となることがある。この制限では、w
ksのほとんどがゼロである。結合項が
【数128】
の行列要素では二次式であるため、全てのL0ノルムスパースコーディング問題に対し、結合項のほとんどがゼロになる。これは、二次項がゼロであり、および次に初期の開始点としてこれを使用することを想定して、
【数129】
を最初に解決する可能な戦略を提案する。
【0183】
辞書の構造を破壊(botch−up)しない、いくつかのタイプの行列動作が存在するが、許容空間内で変更のパラメータ化を可能にする。次いで、それらのパラメータ上で最適化する場合、それらを実施する作業を行う必要なしに、制約に対処する。
【0184】
他の列を固定に保つ間、収束するまで単に繰り返すために(上述したゼロ空間の考えを使用する間に、直交性が維持されることを保証するためにいくつかの再配置を行うことが必要となる)、k=1からk=Kまで移動する各辞書アトム
【数130】
を最適化する、局所探索発見的解決法が存在する。これは単独で、理想的な戦略になくてもよく、および、局所的な最適条件にあってもよい。
【0185】
以下は、教師なし特徴学習、スパースコーディング、マルチクラス分類、および複数のラベル割り当てのために量子および非量子プロセッサの使用を議論する。この目的のために、以下を実装するPythonソフトウェアフレームワークが開発されている。
(a)教師なし設定における低レベルの特徴の学習辞書に対するL
0ノルムおよびL
1ノルムスパースコーディング
(b)教師ありマルチクラス分類器および複数ラベル割り当てプロトコルを構築するための自己教示学習フレームワーク
(c)複数のタイプのデータ(画像、音声およびラベルなど)上で定義された特徴の辞書を同時に構築する、半教師あり特徴学習アルゴリズム(「修復(inpainting)」)。特徴が学習された後、今まで認識されていないデータが部分情報と共に提示される。次いで、今まで認識されていないデータに存在するデータ区域は、学習された特徴を使用して最適に再構築され、次いで、「不明(missing)」区域(ラベル情報および不明のデータ区域を含むことができる)は、再構築によって予想される。異常検出、クラスタリング、退行(regression)マルチクラス分類、複数のラベル割り当て、または他のタスクのために、修復が使用されてもよい。
(d)量子ハードウェアで実行するように設計された、教師あり量子複数ラベル割り当て(「QMLA」)アルゴリズム
(e)MNIST手書き数字データセットを使用して構築された教師マルチクラス分類器テスト一式
(f)SCENE自然画像データセットを使用して構築された教師複数ラベル割り当てテスト一式
【0186】
このフレームワークによって、ユーザは、データから特徴を学習し、および、その後、マルチクラス分類器または複数ラベル割り当てプロトコルを構築するために、ハードウェアの組からアルゴリズムおよび最適化ソルバオプションを選択することが可能になる。ソフトウェアフレームワークによって、量子ハードウェアを使用するアプローチを含む、スパースコーディング、分類および複数ラベル割り当てに対する異なるアルゴリズムおよびハードウェアアプローチの間での比較を命令することが可能になる。
【0187】
フレームワークは、MNIST手書き数字データセット(マルチクラス分類の例)およびSCENE自然画像データセット(複数ラベル割り当ての例)上の経験を実行および視覚化するための2つのテスト一式を含む。
【0188】
活動の説明
活動は3つのカテゴリに分かれる。
【0189】
2つのスパースコーディングアルゴリズムの実装
1つ目は、2つの異なるタイプのスパースコーディングアルゴリズムの実装である。スパースコーディングは、データにおける最大限の繰り返しパターン(辞書アトムとも称される)を発見し、およびデータオブジェクトをそれらのパターンの線形結合として表現するための手順である。それらのパターンがデータにおいて著しく特徴付ける場合、少数のそれらのパターンのみを使用してデータオブジェクトのほとんどを再構築することができる領域を発見することが可能になる。
【0190】
実装される2つのタイプのスパースコーディングアルゴリズムが存在する。
(a)L
1ノルムスパースコーディング。このバージョンは、特徴の実数値の重み付けされた組み合わせから再構築を組み立てることができ、および正則化は、L
1ノルム形式の正則化である。このケースにおけるアルゴリズムは効率的である。フレームワークによって、並列化することができるアルゴリズムの態様が大多数の(一般的に数千の)従来型プロセッサにサブミットされる、クラウドコンピューティング環境においてユーザが実行することが可能になる。
(b)L
0ノルムスパースコーディング。このバージョンは、重みが0/1変数である、特徴の組み合わせである再構築を可能にし、および正則化は、L
0ノルム形式の正則化である。それらの制限は、アルゴリズムのこの変形によって学習された異なる特徴につながることがある。変化は、実変数上での効率的に解決可能な凸最適化問題からの内在する最適化問題を、二値変数上のNP困難非凸最適化問題に変換する。従来型コンピュータによって良好に提供される態様をローカルに、またはクラウドコンピューティング環境のいずれかで実行することができるように、フレームワークが主要なアルゴリズムを区分化し、主要な組み合わせの最適化問題を、ソフトウェアソルバを使用してローカルに、ソフトウェアソルバを使用してクラウド上で実行し、またはD−Waveハードウェア上で実行することができる。
【0191】
ここで考慮される2つの異なるタイプのスパースコーディングは異なる。第1のタイプの(L
1ノルム)データオブジェクトは、実数値重みを有する辞書アトムの線形結合を使用して再構築される。第2のタイプ(L
0ノルム)では、データオブジェクトは、二値重みを有する辞書アトムの線形結合を使用して再構築される。
図7Aおよび7Bに示されるのは、Feature Sign Search(実数値最適化)およびタブー(二値)最適化をそれぞれ使用してMNIST6000トレーニングに対するMNISTデータセットからの手書き数字画像を使用した、それらのタイプの再構築の例である。
【0192】
図7Aおよび7Bでは、スパースコーディングは、データの組において「最大限繰り返す」小さな組のパターン(辞書アトムと称される)を発見することを試みる。それらのパターンが発見されると、それらのパターンのレンズを通じてデータオブジェクトが認識される。
図7Aは、再構築に使用される上位3つの最高の大きさの重みアトムを示す、L
1ノルムスパースコーディングを使用して形成される再構築を示す。
図7Bは
図7Aと同一の事項を示すが、L
0ノルムスパースコーディングを有する。このケースでは、含まれる全ての辞書アトムは、定義により1の重みを有し、それらのうちの3つが明示的に示される。それらの再構築のスパーシティ(使用されるアトムの数)は低く、アトムの20%〜40%の間が使用されている。このスパーシティは、正則化パラメータλによって制御される。このパラメータが高いと、解がよりスパースになる。
【0193】
それらの各々を、最適化ソルバおよびハードウェアの種々の異なる組み合わせを使用して実行することができる。表1に示されるのは、実装される組み合わせである。
【0195】
表1。フレームワークによって、種々の最適化アルゴリズムおよびハードウェアを使用して両方のタイプのスパースコーディングを実行することが可能になる。特に、ここでの興味は、L
1ノルムに対するL
0ノルムのバージョンの相対的性能、およびL
0ノルムスパースコーディングを実行するための他のオプションに対するハードウェア上で実行されるBlackBoxの相対的性能である。
【0196】
マルチクラス分類器および複数ラベル割り当てプロトコルの実装
第2の活動は、ラベルをオブジェクトに自動的に割り当てる種々の方法を構築およびテストすることを含む。画像に対し、それらのラベルは、画像におけるオブジェクトのタイプである(例えば、画像に猫が存在する/しない)。音声に対し、それらは、特定の人間の話者が存在し、または存在しない。ビデオに対し、ある種の行為(走ること、手を振ることなど)が存在し、または存在しない。各々のケースでは、このタイプの認識は典型的には、人間には容易であるが、合成システムで実装することは困難である。
【0197】
使用される戦略は、最初にスパースコーディングを使用してアトムの辞書を学習することに基づいている(このステップは、教師なしであり、このステップで使用されるデータは全てがラベル付けされていない)。このステップが完了すると、ラベル付けされたデータは、それらの辞書を使用して符号化され、次いで、教師あり学習アルゴリズムの組が、符号化された、ラベル付けされたデータ上で実行される。それらは、いくつかの標準的なアプローチ、および2つの新たなアルゴリズム、1つ目は本明細書では修復と称され、2つ目はQMLA(量子複数ラベル割り当て)と称される、を含む。QMLAアルゴリズムは、複数ラベル割り当てに特に設計され、およびマルチクラス分類に対して使用されないことがあり、修復は、いずれかで使用することができる。明白に、1つ以上の実施形態で実装される3つのステップが存在する。
(a)辞書は、ラベル付けされていないデータ上でスパースコーディングアルゴリズム使用して学習される
(b)次いで、ラベル付けされたデータの組は、この辞書を使用して再構築される
(c)次いで、この符号化されたラベル付けされたデータは、望ましい分類器またはラベルアサイナを生成するために教師あり学習設定で使用される。実装される手順は、修復、QMLA、感知、k近傍法(kNN)、ならびにL1およびL2損失(loss)を有する線形サポートベクトルマシン(SVM)を含む。
【0198】
実験計画
第3の活動は、公知のMNISTおよびSCENEデータセットを使用して2つの教師レベルテスト一式を構築すること、それらのデータセットにおいてラベルをオブジェクトに割り当てるための多数の異なる戦略の性能を比較する体系的実験を実行すること、ならびに行われた作業および到達した結論の完全な説明を含むレポートを作成することを、を含む。
【0199】
MNIST手書き数字
このテスト一式は、マルチクラス分類器を構築するための種々の異なるアプローチを比較するために使用されている。MNISTテスト一式は、実験的にテストされることになる、量子コンピュータの使用を含む、異なる戦略の実行を可能にする多数の実験を実行する「ボックス外の(out of the box)」機能を提供する。
【0200】
MNISTが小さく、良好に特徴付けられ、および新たなアイデアの実行を体系的に探索する良好な方法を提供する。MNISTは、手書き数字(全て数字が0から9までである10が存在する)合計70,000、28×28ピクセルのグレースケール画像を含む。典型的には、タスクは、それらの60,000を使用して、マルチクラス分類器を構築し(画像が表現するいずれかの数字を分類するために)、次いで、10,000画像のテストセット上で結果として得られる分類器をテストすることである。
【0201】
テスト一式によって、ユーザが、表1で上記示された10の組み合わせの中から選択すること、利用可能な画像(没却ラベル)の選択されたサブセット上でそれらを実行すること、ならびに各々によって達成される、結果として得られる辞書アトム、再構築、および再構築誤りを視覚化することが可能になる。
【0202】
この動作の後、ユーザは次いで、ラベル付けされたトレーニングデータの選択されたサブセット上で教師学習あり学習手順(複数ラベル割り当てに対して設計された、QMLAを除いて)を実行してもよい。
【0203】
次いで、ユーザは、テストセット上で試される方法の実行を評価し、ならびに精度、取り消し、F1スコア、および分類器スパーシティを含む、性能値の組を受信することができる。
【0204】
SCENE自然画像
このテスト一式は、複数ラベル割り当て(MLA)プロトコルを構築するための種々の異なるアプローチを比較するために使用される。MLAは、オブジェクト内で多くのラベルが同時に存在することができるという点で、マルチクラス分類とは異なる。SCENEデータセットでは、オブジェクトは自然画像であり、ラベルは、6つのカテゴリ(「都会」、「山」、「紅葉」、「海辺」、「夕日」、および「野原」)が存在するかしないかを示す。
図8に示すのは、SCENEデータセットからの例示的な画像である。
【0205】
SCENEテスト一式は、実験的にテストされることになる、修復およびQMLAの両方の使用を含む、異なるMLA戦略の実行を可能にする多数の実験を実行する「ボックス外の」機能を提供する。
【0206】
SCENEデータセットは、自然シーンの2,407の画像を含む。それらの1,211は典型的には、トレーニングのために使用され、1,196はテストのために使用される。各々の画像は、6つの異なるカテゴリ(紅葉、都会、海辺、夕日、山、および野原)が存在するかしないかを示すラベルを伴う。
図8では、SCENEデータセットは、6つの異なるカテゴリ(「都会」、「山」、「紅葉」、「海辺」、「夕日」、および「野原」)が存在するかしないかを示すラベルを伴う、自然シーンの1,211のトレーニングおよび1,196のテスト画像を含む。この画像では、ラベル付けは、「紅葉」および「野原」の存在、ならびに他の4つのカテゴリが存在しないことを示す[001001]である。
【0207】
議論の実装
半教師あり特徴学習コードは、複数のデータタイプを取り扱うために再記述されている。学習コードに対するソフトウェアアーキテクチャは、クラウドコンピューティングサービスと効率的に統合するために開発されている。結果として得られるPythonモジュールは、従来型および量子ハードウェアリソースの両方を呼び出す。
【0208】
ユーザが分類器を構築することを可能にするPythonモジュールが記述されている。分類器に対するソフトウェアアーキテクチャは、クラウドコンピューティングサービスと効率的に統合するために開発されている。従来型ソルバによって最良に提供される態様がそれに応じて命令され、および主要な組み合わせ最適化問題が量子ハードウェア上で実行されたように、実行されたベンチマーキング作業の結果は、ユーザが主要な特徴学習アルゴリズムを区分化することを可能にしている。
【0209】
記述されたモジュールは、2つの異なるデータセットにおいてラベルをオブジェクトに割り当てるための多数の異なる戦略の実行を比較する体系的な実験をユーザが実行および視覚化することを可能にする、2つのプロトタイプテスト一式を使用して証明されている。1つのテスト一式は、マルチクラス分類を証明するMNIST手書き数字データセットを使用する。他のテスト一式は、複数ラベル割り当てを証明するために、Canadian Institute for Advanced Research(CIFAR)自然画像データセットを使用する。
【0210】
HDLソフトウェアフレームワークプロジェクト
機械学習は人工知能の部門である。その中心となる前提は、機械がデータ、例えば、電子メール、ビデオ、音楽ファイル、テキスト、地震データ、天候データ、医療情報および/または画像を有することができ、ならびにデータオブジェクト間の差異が感知、およびある意味では理解されることを可能にする方法で、このデータを表現するように学習することができることである。例えば、多数の電子メールを提示される機械は、スパムが高尤度で発生する一定の属性を有することを学習し、したがって、ルールが何であるかを事前に明白に教えられることなく、何がそれらのスパムを構成するかに関するルールを学習することができる。
【0211】
教師なし特徴学習および深層学習
最も飛躍的な変化のうちの1つは、スパムフィルタなどの、非常に狭い適用性を有する特殊目的ツールから、人間が行うように、1つのトピックから別へ一般化することが可能なアーキテクチャへの推移である。それらの新たなアーキテクチャは、深層学習システムと称される。
【0212】
深層学習はいまだに、機械学習エコシステム内でそれが最終的にどのように適合されるかが完全に理解されていないことで十分に新しい。前に示したのは、深層学習によって、そうでなければ構築するのが困難または不可能である新たな能力が有効になり、および高性能機械学習システムの開発のための標準的技法になることである。会話認識および合成、推奨システム、画像および音声認識、創薬、ならびにコンピュータ広告を含む、広範囲の適用領域で進歩が見られている。
【0213】
別の重要な変化は、教師ありから教師なし方法への推移である。教師なし特徴学習は、どのように人間の脳が機能するかの最新の理解によって引き起こされる方法で、機械知覚および認知に人間が関与することになる必要を削減または除去することを目的としている。
【0214】
機械の知能を進歩させることを進める最大の障壁は、オブジェクトの内容を示すために人間によってラベル付けされている多数のデータオブジェクトを提供する必要性である。スパム検出器の例のケースでは、これは、「スパム」または「非スパム」とラベル付けされている多数の電子メールを有する学習システムを提供することを意味する。教師なし学習システムは、入ってくるデータオブジェクトの特徴を、それらが何であるかを明白に教えてもらうことなく学習することを目的とする。これは、大量のデータ上で学習するときに、人間が教師あり方法を実現可能にするために十分な例をラベル付けする多くのケースでそれが簡単には可能でないため、必須の要件となる。
【0215】
教師なし特徴学習は、深層学習パラダイムを有する潜在的な相乗効果を有する。
【0216】
教師なし特徴学習および深層学習のための量子ハードウェアの使用
量子コンピュータは、特定の種類の困難な最適化問題を解決するにおいて優れており、いくつかのケースでは、それは、他に利用可能な何よりも優れている。量子コンピューティングマシンが解決するタイプの問題は、基本的なレベルで種々の機械学習アルゴリズムにおいて生じることがある。量子コンピューティングシステムが良好に行うことと、機械学習における困難なコンピューティング問題との間の連結は、重要な機会を表す。量子ハードウェアが主要な学習問題上での主たる性能利得を提供することができることを示すことができる場合、これは、技術の商業利用を推進する。
【0217】
本明細書で説明されるHDLソフトウェアフレームワークは、少なくとも2つの目的、(1)量子ハードウェアを含む最も見込みのある機械学習アイデアのテスト、および(2)それらの新たなアイデアに直接対抗する最も知られた従来型アプローチの実装、を有する。両方での成功を仮定すると、従来型アプローチを使用して非常に最も知られた機械学習手順を、量子ハードウェア対応バージョンと直接比較する。
【0218】
HDLソフトウェアフレームワークは、機械学習のために量子ハードウェアをどのように使用するかのアイデアにわたる両方の目的を達成することが可能なように設計される。
【0219】
HDLソフトウェアフレームワークのスパースコーディング構成要素
HDLソフトウェアフレームワークのスパースコーディング構成要素は、量子ハードウェアを使用するための特定のアイデアに対する両方の目的を達成するために設計されている。このアイデアは、L0ノルムスパースコーディングと称される。
【0220】
スパースコーディングは、非常に興味深いタイプの教師なし特徴学習である。スパースコーディングは、データにおける最大限の繰り返しパターンを発見し、これは、わずかな人間の介入、限定された人間の介入、または人間の介入なしで、達成されてもよい。次いで、元のデータを表すためにそれらのパターンを使用することができる(この処理は、スパース自動符号化(autoencoding)と称される)。スパースコーディングを、より複合的な機械学習アルゴリズムのための構築ブロックとして考えることができる。例えば、それは、データにおける複数のスケールにおける特徴の階層、深層学習アーキテクチャの例を学習するために自然に使用されてもよい。
【0221】
HDLソフトウェアフレームワークの目的の両方を達成するために、本発明者らは、目的(2)、最良の従来からの競争相手を実装することから開始している。テストされるアイデアは、1つはアルゴリズム的、1つは独自の量子ハードウェアに起因した2つの非標準的な項目を組み合わせ、それらを分離することが重要である。
【0222】
1つ目は、スパースコーディング手順内での一定の数を二値にさせる、L0ノルム部分である。これは、問題を量子ハードウェアにマッピングすることを要求される。概して、スパースコーディングを使用する機械学習の実行者は、この形式のアルゴリズムを、それが困難なコンピューティング問題を生じさせるため、使用しない。代わりに、それらは、L1ノルムスパースコーディングと称される異なるバージョンを使用する。L1ノルムバージョンは、学習手順の効率性を潜在的に減少させる犠牲を払って、計算的により良好に振舞う。新たなアイデアのこの態様をテストするために、最新型L1ノルムスパースコーディングシステムが、Amazon EC2クラウドを使用して実行することが可能なように実装および設計されている。
【0223】
このバージョンのスパースコーディングが生じさせる困難な最適化問題を解決するための従来型ソフトウェアソルバの組を有する、L0ノルムバージョンを使用した同様のシステムが実装されている。このバージョンはまた、クラウド上で実行されてもよい。
【0224】
それらの2つのシステムをスパースコーディング構成要素内で実行させることによって、L0ノルムをL1ノルムスパースコーディングと直接比較することが可能になり、それは、L1からL0へのどのような効果をアルゴリズム的に有するかの質問の区分化を可能にする(量子ハードウェアの実用性の質問とは独立して)。L0ノルムバージョンは、L1ノルムに対して重要な利点を有し、特に、表現の望ましいスパーシティが非常に高いときに(少なくとも今までテストされた画像データセットに対して)著しい性能向上をもたらすことが発見されている。よって、L1からL0に行くにおいて重要なアルゴリズム的な成功が存在する。この発見は、それが、機械学習に対する非常に重要なワークホースアルゴリズムを、L0ノルム形式においてそれを再型変換することによって改善することができるため、それ自体が非常に興味深いものである。
【0225】
2つ目の質問は、量子ハードウェア上で実行する効果である。
【0226】
これを行うための2つの戦略が存在する。1つ目は、本明細書では、BlackBoxと称される介入ソフトウェア変換器を使用して、スパースコーディングによって生じる困難な最適化問題を解決することである。BlackBoxは、量子ハードウェアを使用して任意の離散的最適化問題が解決されることを可能にするように設計される。スパースコーディング最適化問題は、量子ハードウェアが自然に解決する厳密な問題タイプではないため、量子ハードウェアまでの変換ステップが必要となる。特に、スパースコーディング最適化問題は完全に連結されたQUBOであり、量子ハードウェアは、Chimera連結QUBOを自然に解決する。BlackBoxは、全体のために性能を取り換え(trade)、任意の離散的最適化問題に関してそれを使用することができるが、その性能は比較的低いことがある。
【0227】
2つ目の戦略は、スパースコーディングを修正することによってBlackBoxを通じたコストを回避し、それによって、それが単に量子ハードウェアによって自然に解決することができる問題を生じさせることである。この2つ目の戦略は、本明細書では構造化辞書を有するL0ノルムスパースコーディングと称される。ここで、その最も効果的な形式でハードウェアを直接使用することによって多大な加速が得られる。アイデアは、スパースコーディングが学習する「最大限の繰り返しパターン」を構造化し、それによってそれらの多くが直交するようになることである。(スパースコーディングによって生じるQUBOにおける結合項は、各量子ビットと関連付けられた辞書アトムのドット積に比例する。構造化辞書のアイデアは、ハードウェアにおいて物理的に連結されていない量子ビットと関連付けられたアトムが直交するべきであるという追加的な制約を実施する。このアルゴリズムは、標準的なL0ノルムバージョンとは異なる性能特性を有すること可能性がある。
【0228】
1つ目の戦略はスパースコーディング構成要素において実装されており、512量子ビット量子プロセッサ上でBlackBoxを使用して通常のL0ノルムバージョンを使用して生じる問題を解決し、および予想されるように、これは、クラウド上で実行されるタブー検索であった、最良の従来型ソルバを使用することと競争力がなかったことが発見されている。
【0229】
この理由は、ハードウェアとは無関係であり、問題は、BlackBoxにおける変換を行うためのオーバーヘッドが、最適化問題を解決するためにクラウド上でタブー検索に要する時間よりもはるかに大きいことであることに留意されたい。ハードウェア時間を要しない場合でさえ、この戦略は競争力を有しない。
【0230】
2つ目の戦略は、スパースコーディング構成要素内で実装されている。構造化辞書アプローチが従来型ソルバを使用して実行しているとき、従来型ソルバを使用したこのアプローチの結果は、512量子ビット量子プロセッサ上でこれを実行することによって得られる結果と比較される。
【0231】
スパースコーディングの概論
スパース自動符号化の例が
図9に示される。
図9は、左から右へ、(a)元のデータオブジェクト、このケースではMNISTデータセットからの手書き数字の小型画像、(b)少数の辞書アトムを使用したこの画像の再構築、このケースでは、512の学習されたアトムの合計からの26、(c)〜(e)上記画像上で重みとして示されるそれらが含まれる「量」を有する、この再構築で使用される3つの最重要なアトム。ここで、画像を、共に組み合わされる(例えば、追加される)より単純な部分で構成されるものと考えることができる。スパースコーディングは、異なる組み合わせで組み立てるときにそれらの部分の単純な組が、ユーザに関心のあるタイプのより多数の画像を表すことが可能であることを発見することを試みる。
【0232】
用語「スパース」は、理想的には、小数の部分のみが任意の1つの画像を構成する必要があることを意味する。スパースコーディングによって発見されるそれらの部分の集合は、辞書と称されることが多く、その部分は辞書アトムと称される。
【0233】
実装される2つのアルゴリズムは、L0ノルムおよびL1ノルムスパースコーディングと称される。L1バージョンは、スパースコーディングに対する標準的なアプローチであり、そこでは、データが辞書アトムの任意の線形結合となることが可能となり、正則化はL1の形式の正則化である。L0バージョンも同様であるが、重みが0または1のいずれかである必要があり、アトムが再構築の中または再構築の外のいずれかにあり、正則化がL0の形式の正則化である、辞書アトムの線形結合からデータオブジェクトが形成されるという点で異なる。ユーザは、10のハードウェアおよび表2に示されるアルゴリズムの組み合わせのいずれかを選択することができる。
【0235】
スパースコーディング構成要素は、2つのテスト一式を含み、それによって、10の許可されたハードウェア/ソルバアルゴリズムの組み合わせのいずれかで実行する、両方のタイプのスパースコーディングをユーザが適用することが可能になる。テスト一式は、MNIST手書き数字画像データセットおよびCIFAR自然画像データセット(両方は以下で説明される)を使用する。
【0236】
HDLソフトウェアフレームワーク機能リストのスパースコーディング構成要素
以下は、スパースコーディング構成要素に含まれる特徴のリストである。
− L0ノルムおよびL1ノルムスパースコーディングを介した教師なし特徴学習
− 探索する2つの異なる組み込みデータセット
− 5つの異なるソルバアルゴリズム
− 5つの異なる視覚化ルーチン
− 3つの異なる画像カテゴリ分類一式
− クラウドおよび量子ハードウェアサポート
− 単純かつロバストなコマンドライン式ユーザインタフェース
− 前の実行を保存し、および後日に結果を調査する能力
【0237】
ここで、それらの機能のいくつかがより詳細に説明される。
【0238】
MNISTデータセット
スパースコーディング構成要素は、MNIST手書き画像データセットに基づくテスト一式を含む。これは、70,000の手書き数字のラベル付けされたデータセットである。各画像は、0〜9の数字を表す白黒数字(white−on−black digit)である。各画像は、28×28ピクセル(各画像で合計784ピクセル)を有し、およびグレースケールカラーフォーマットにある。各画像は、正確なカテゴリのラベル(0、1、2、3、4、5、6、7、8、および9)を伴う。MNIST画像の例が
図10に示される。
【0239】
CIFAR−10データセット
スパースコーディング構成要素と共に含まれる第2のテスト一式は、CIFAR−10データセット(CIFARと称される)である。これは、2つの主要なタイプ、車両および動物の70,000のラベル付けされたデータセットである。CIFARトレーニングセットからの例は、
図11に示される。各画像は、32×32ピクセルであり、およびRGBカラーフォーマットにある。カテゴリは(飛行機、自動車、鳥、猫、鹿、犬、カエル、馬、船、トラック)である。
【0240】
CIFARおよびMNISTの両方におけるカテゴリは、相互に排他的であり、それは、任意のトレーニングまたはテスト画像に単に1つのラベルが割り当てられていることを意味する。
【0241】
最新式専門機械学習技術は、MNISTに対して約99%、およびCIFAR−10に対して約91%の分類精度を得ることが可能である。
【0242】
ソルバ
いくつかの実装形態では、システムはユーザに利用可能な5つの異なるソルバアルゴリズムを有する。
【0243】
L1ノルムスパースコーディングが選択される場合、使用されるアルゴリズムは、本開示にその全体が参照によって組み込まれる、Honglak Lee et.al.,Efficient Sparse Coding Algorithms,NIPS,pages 801−808,2007において説明される。重みを発見するために使用されるアルゴリズムは、Feature Sign Search(FSS)と称される。
【0244】
L0ノルムスパースコーディングが選択される場合、重みが与えられた辞書を発見するためのアルゴリズムは、L1バージョンに対して使用されるのと同一である。しかしながら、重みを発見することは、NP困難最適化問題となる。スパースコーディング構成要素は、それらに対処するために4つの異なるソルバを実装する。CPLEXは、IBMからの主要な商業的最適化パッケージであり、それを、発見的解決法として、または全体的な最適性を証明するために実行することができる。
【0245】
タブー検索は、概して、スパースコーディングによって生じる性質の完全に連結されたQUBOのための最良のソルバである、別の発見的解決法である。Akmaxsatは、発見的解決法として、または全体的な最適性を証明するために実行することができる、受賞された分岐限定に基づくソルバである。BlackBoxは、タブー検索に基づく大規模近隣局所検索アルゴリズムを意識しない構造であり、それは、その現在点において関数のChimera構造化モデルを作成することによって、各タブー反復において検索された近隣のサイズを増加させる。
【0246】
ハードウェア
スパースコーディング構成要素は、ローカル、クラウドまたは量子コンピューティングハードウェアリソースにアクセスすることができる。ローカルな実行は、スパースコーディング構成要素コードを実行するシステム上で実行され、および概して、システムがどのように振舞うかを感じ取るためにユーザがスパースコーディング構成要素を使用するときに推奨される。クラウドの実行は、例えば、PiCloudクラウドコンピューティングシステムを使用して、Amazon elasticクラウド上で実行されてもよい。効率的に並列化することができるスパースコーディング手順のいくつかの態様が存在する。教師なし特徴学習手順におけるいくつかのデータオブジェクトがおおよそ50,000のデータオブジェクトよりも大きい場合、クラウドを使用することが推奨される。ユーザが量子ハードウェア上で実行する場合に使用されるソルバアルゴリズムは、上述したBlackBoxである。
【0247】
バイオラベル修復
スパースコーディング構成要素は、「バイオラベル修復(biolabel inpainting)」と称される特殊機能を有する。これは、アルゴリズムが、それが示される画像のクラスへのさらなる見識を有するように、辞書学習手順への追加(教師あり)情報を追加する形式である。この手順は、以下のように機能する。
【0248】
シーケンスデータオブジェクトが作成されるとき、それは、画像だけでなく、ラベル情報を含む付加画像をも含む。画像としてラベルを符号化する背後にあるアイデアは、元の画像データと同一の形式でラベルを表すことができる場合に、学習をより容易になすことができることである。それらの画像は、バイオ学習(bio−inspired)ラベル(短縮してバイオラベル)と称され、なぜならば、ラベルを表すために画像を使用するアイデアは、バイオ学習設計選択(ラベル自体が画像であり、およびシステムが示されているカテゴリの「規範例(canonical example)」として扱われる。スパースコーディング構成要素では、バイオラベルは、QRコードに対し同様の精神で、ラベルカテゴリごとに異なる位置での黒正方形上で白である(CIFARに対しては黄色)。それらの付加バイオラベルを有するデータオブジェクトの例が
図12に示される。
【0249】
このケースでは、辞書が、画像およびそれらのバイオラベル上で共に学習される。そのような辞書を使用して新たなテスト画像を再構築するとき、ラベルにおける「推測」(入力テストデータには存在しない)は、HDLソフトウェアフレームワークによって修復される。
【0250】
「バイオラベル」および「修復」の観点で議論がされてきたが、それらは単純に、出願人によって説明された内在する技術を表すための用語である。バイオラベルを、分析されているデータに組み込まれるラベルと考えることができる。例えば、分析されることになるデータが画像データである場合、ラベルは、ピクセルの組(1つ以上の)として画像データに組み込まれる。画像におけるラベルの空間位置(例えば、ピクセルの組)は情報を符号化する。これは、2次元機械可読シンボルが、シンボルを含むシンボル文字の相対的位置合わせにおいて情報を符号化する方法と同様のいくつかの態様にあるが、しかしながら、有利なことに、オブジェクトの画像表現、アルファベットもしくは数字、または他の文字、データオブジェクトもしくはその再構築などの、分析されているデータ(例えば、画像ファイル)に、または少なくとも分析されているデータと同一のフォーマットで、ラベルまたは機械可読シンボルを組み込む。データ(例えば、画像データ)に組み込まれ、または追加される、この追加または修復されたラベルは概して、画像表現(例えば、ピクセルごとの明度および/または色を表すピクセルの組)と同一の形式のラベルである。上述したように、それらのラベルは、画像表現のさらなる論理的関連付けをもたらす。すなわち、ラベルは、学習のためのさらなるデータポイントをもたらし、なぜならば、ラベルおよびオブジェクト、構造もしくは他の情報、または対応するデータ(例えば、画像データ)において表すそれらの再構築の間の関連付け、相関、または対応が存在することがあるからである。
【0251】
よって、画像および画像データに関連して「バイオラベル」および「修復」を議論するために、ラベルは、データオブジェクトの画像またはその再構築を表す画像データに組み込まれ、追加され、または取り付けられてもよい。このラベルは、画像データ、例えば、ピクセルの組と同一の形式のラベルであってもよい。しかしながら、もちろん、ラベルは、本明細書で議論される学習をそれに適用することができる任意の他の形式であってもよい。ラベルは、データオブジェクトの表現の記述(例えば、アルファベットもしくは数字の文字、顔特徴、画像特徴、解剖学的構造)またはそれが取り付けられるその再構築をもたらし、表し、またはそれらにマッピングされてもよい。よって、ラベルと、データオブジェクトの対応する表現、またはラベルが組み込まれ、追加され、または取り付けられるその再構築との間での論理関連付け、相関または対応が存在する。よって、本明細書で議論される学習アルゴリズムを目的として、いくつかの学習アルゴリズムは、ラベルおよびデータオブジェクトの表現またはその再構築の両方にわたって学習するために修正されてもよい。よって、修復は、ラベルを組み込み、追加し、または取り付けると考えられてもよく、そのラベルにおいて、1つ以上のラベルもしくは1つ以上の要素を構成するラベル、または文字が、表現に組み込まれ、追加され、または付加され、およびラベルが表現によって表されるデータオブジェクトもしくはその再構築との論理的な関連付けを有する。これによって、ラベルおよび対応する表現の両方にわたって学習が可能になる。
【0252】
視覚化ルーチン
システムは、ユーザに利用可能な5つの異なる視覚化ルーチンを有する。
【0253】
それらのうちの1つ目によって、ユーザは、学習アルゴリズムがこのデータ上で実行される前に、sequence_dataにおける元のデータを見ることが可能になる。シーケンスデータオブジェクトは、どの学習を実行するかをユーザが選択したトレーニング画像の数に等しいいくつかの列から構成される。各列は、トレーニングセットにおける1つの画像を表す。画像は、2D、マルチチャネルカラーピクセル配列から1次元配列へと解かれる。
【0254】
配列はさらに、特異値分解(SVD)として知られる数学的変換を実行することによって事前処理される。これは、各基底(またはモード)に記憶された情報の量によって順序付けられる基底セットに画像を変換する。このフォーマットにあるとき、したがって、単にそれらのモードのうちの最初のNを保持することによって画像を圧縮することができる。例は、SVDが使用されるときに、非常に多くの画像情報を失うことなく、CIFAR画像(32×32ピクセル×3カラーチャネル=3,072の要素の長さ)を300要素の長さの配列に圧縮することができることである。
【0255】
シーケンスデータオブジェクトは、HDLソフトウェアフレームワーク学習アルゴリズムによって受け付けられる特殊データフォーマットである。任意のタイプのデータを適切なエンコーダ(MNISTおよびCIFARエンコーダがHDLソフトウェアフレームワークと共に供給される)でこのフォーマットに符号化することができる。HDLソフトウェアフレームワーク視覚化一式における第1の視覚化ルーチンは、sequence_data行列のフォーマットをユーザが理解することを支援する。これは
図13に示される。
【0256】
第2の視覚化ルーチンによって、学習された多数の辞書アトムをユーザが合理的に見ることが可能になる。それはまた、再構築処理がどのように行われるかを目測で評価する、この辞書を使用した元のデータ、および元の(グラウンドトルス(ground truths))それら自体の再構築を示す。これは
図14に示される。
【0257】
バイオラベル情報を含む辞書が選択される場合、バイオラベルがまたこの図に表示される。再構築の上に表示された数字は、使用されるアトムのインジケーション(数字が四角カッコにある場合)、または再構築ごとに4つ以上のアトムが存在する場合(シンボル>>#がこのケースの場合の数字の前に表示される)に使用されるアトムの数を表す。平均スパーシティ(再構築ごとに使用される、平均のアトムの数)がまた、使用された辞書ファイルの名前に従って、プロットの表題に表示される。
【0258】
第3の視覚化によって、ユーザは、再構築に使用された元の、かつ最大3つのアトムに沿って、再構築のうちの3つを近くで見ることが可能になる。
図15は、動作中のこの視覚化ルーチンの例を示す。再構築を形成するために結合するアトムは、最高絶対等級重みを有する1つが図で示されるように順序付けられる。アトムおよび重みのインデックスがアトム自体の上に示される。
【0259】
第4の視覚化は、学習処理の間の目的関数降下法を示す。これは、ユーザにアルゴリズムがどのように最小の解をカバーするかのアイデアを与える。目的関数降下法の関数形式は、異なるソルバおよびデータタイプに対して非常に異なることがあり、ならびに調査の観点から探索することに関心がある。このプロットの別の使用は、多少の侵略的な終了閾値(aggressive exit threshold)が必要とされるかをユーザが判定することを支援するために、目的関数降下法が収束するのにどの程度高速であるかを判定することである。この視覚化出力の例は
図16に示される。
【0260】
第5の視覚化によって、ユーザは、ラベルカテゴリによってソートされたWの行列を視覚化することが可能になる。これは、データの「フィンガープリント」を与え、および分析するのに関心がある。肉眼で相関を見ることができる場合、分類器は良好に行われるはずである。この視覚化ルーチンの例は
図17に示される。
【0261】
分類一式
HDLソフトウェアフレームワークのスパースコーディング構成要素は3つの組み込み分類器のタイプを有する。
− 標準分類:Wの行列値が多様な分類器の一式に供給される
− ピクセルの大きさを使用したバイオラベル修復
− 多様な分類器の一式への入力としてのバイオラベル修復
【0262】
ここで、それらの分類ルーチンの各々がさらに詳細に説明される。
【0263】
Wの行列を使用した標準分類
Wの行列は、各々の特定の入力画像を表すために使用される辞書アトムの重みである。1つは、スパースな基底(辞書)に関する入力画像の表現としてWの配列を考えることができる。このWの配列はまた、時に特徴ベクトルと称される。各入力画像は、学習処理の間に発見されるWの配列を有する。このWの配列は、入力画像を伴うカテゴリラベルと共に、分類器を訓練するための入力データとして使用されてもよい。訓練された分類器をテストするために、テスト画像は、スパースな基底を使用して再構築され(このステップは、圧縮検知としても知られる)、結果として得られるWのテスト配列は、トレーニングデータ上で学習された分類器モデルに従って分類器予測ルーチンに送信される。
【0264】
ピクセルの大きさを使用したバイオラベル修復
スパースコーディング構成要素は、特殊「ラベル修復」手順を伴う。バイオラベル構成要素を含む学習辞書を使用してテスト画像が再構築されたとき、バイオラベルは、結果として得られる再構築に修復される。スパースコーディング構成要素で使用されるバイオラベルが、ピクセルがクラスごとに強力に色付けされる(かつ、重ならない)特殊エリアを有するため、ラベルカテゴリに対応する各々の修復されたエリアのピクセルの大きさを見ることによって、直接分類器としてバイオラベルの再構築を使用することができる。最高のピクセルの大きさを有するエリアは、そのテスト画像に対する予測されたラベルである。MNISTテストセット上での修復されたバイオラベルの例は、
図18に示される。入力テストデータが定義によるバイオラベルを有さないことに留意されたい。
【0265】
多様な分類器の一式への入力としてのバイオラベル修復
上記のように抽出されたピクセルの大きさはまた、標準分類器モデル(これは、第1の分類技術と同様であるが、Wの行列を使用することとは反対にバイオラベルピクセル情報を使用する)を訓練するために使用することができるデータを形成することができる。このケースでは、各「ラベルエリア」からのピクセルは、その大きさを判定するために問い合わされ、結果として得られる10の長さの(10−long)ベクトルは、入力トレーニングデータとして分類器に送信される。分類器の予測をテストするために、テストバイオラベル再構築におけるピクセルの大きさからの10の長さのベクトルが供給され、分類器は、この情報からラベル予測を生成する。
【0266】
バイオラベル修復方法は自然に、複数ラベル割り当てをサポートすることに留意するべきである。しかしながら、上記分類方法は、相互に排他的であるラベルカテゴリをデータが有するか、またはそれらの相関を有する複数のラベルカテゴリをデータが有するか、に応じて異なって振舞うことがある。
【0267】
実験結果
フレームワークの作成の背後の1つの動機づけは、L1ノルムからL0ノルムに行く何の効果がスパースコーディング上で有するかの公開の研究の質問であった。研究された2つのデータセットに関する発見は、再構築がスパースである(再構築に使用されるときの少数のアトム)制限において、L0ノルムスパースコーディングが、CIFARおよびMNISTデータセットの両方(MNISTおよびCIFAR上の結果が類似することに対して
図19を参照)に対するL1ノルムスパースコーディングと同一の再構築誤りを得るために約半分のアトムを必要とすることである。これは、実質的な改善である。
【0268】
MNISTおよびCIFAR上の既知の最新式のL1ノルム分類結果は、スパースコーディング単一レイヤネットを使用して再作成されている。
図20A〜20Dに示されるのは、StanfordにおけるAndrew NgのグループからのMNISTに対する正則化パラメータに応じた分類結果、およびHDLソフトウェアフレームワークを使用して得られた結果、スパースコーディング構成要素である。分類手順の絶対値における差異は、画像データが事前処理される方法における差異から生じ、本技術は、やや分類精度を減少させる、初期トレーニングデータをかなりの程度に圧縮する。
図20Bでは、スパースコーディング構成要素が画像ごとに50のアトムの最大値において飽和し、Ng結果(
図20D)が画像ごとに約260のアトムにおいて飽和することを見ることができる。ここでの主要な結果は、
図20Aにおける曲線の形状(スパースコーディング構成要素結果)および
図20Cにおける曲線の形状(Ng結果)が、ほぼ同一の最大分類精度(97.1%対96.5%)を有して同一であることである。
【0269】
2つのバージョンのスパースコーディングが実装されており、1つは、共用であり(L1ノルム)、および分類(sort)量子ハードウェアの問題を解決することが必要な1つは、解決する(L0ノルム)ために設計される。そのようにするために、それらのアルゴリズムの両方の最新式の実装形態が生成されており、最先端の教師なし学習方法における能力を提供する。それらの方法の実行は、2つの学問的データセット、MNISTおよびCIFAR−10上で分析されており、L0ノルムバージョンが再構築誤りに応じて重要な基準スパーシティ(key metric−sparsity)において優れていたことが発見されている。
【0270】
HDLソフトウェアフレームワークユーザインタフェース
本明細書のこの章は、上述したHDLソフトウェアフレームワークを使用してデータ分析をインストールすること、構成すること、および実行することを導入する。
図21〜32は、ユーザインタフェースの態様を示す。
【0271】
Pythonインストール
最初にPython(例えば、Python2.7)をインストールする。Python IDEはまた、このコードで使用するために推奨されるが、IDEが利用可能でない場合に、Windowsコマンドラインからコードを実行することができる。
【0272】
インストール必須パッケージ
いくつかの第三者ライブラリはまた、動作するスパースコーディング構成要素に使用される。ここで、パッケージのリストが存在する。各パッケージは、ユーザのマシン上にダウンロードおよびインストールされるべきである。全てのそれらのパッケージは、通常、HDLソフトウェアフレームワークソースコードで出荷する、「パッケージ」フォルダに含まれる。
Python2.7Akmaxsat Solver−1.0.0
Python2.7 cloud−2.7.1
Python2.7cvxopt−1.1.5(64ビット)
Python2.7D−Wave One Solver API client 1.5.0−alpha(64ビット)
Python2.7matplotlib−1.2.0(64ビット)
Python2.7Metslib Tabu Solver−1.0.0
Python2.7numpy−1.6.2MKL(64ビット)
Python2.7opencv − 2.4.2(64ビット)
Python2.7PIL(pillow)1.1.7(64ビット)
Python2.7scikit−learn−0.13(64ビット)
Python2.7scipy−0.11.0(64ビット)
Python2.7wxPython2.8.12.1(64ビット)
CPLEX(ライセンス必須)
【0273】
HDLソフトウェアフレームワークCLIの導入
スパースコーディング構成要素を実行するために、butterfly_cli.pyを実行する。これは、Python IDEの中から、または
図21に示されるコマンドラインから実行されてもよい。バー(bars)は、自身のローカルファイルパスを表示するはずである。このPythonファイルが実行されると、HDLソフトウェアフレームワークスパースコーディング構成要素コマンドラインインタフェース(CLI)が提示される。いくつかのオプションは、ユーザが選択するためにプリントされる。これは
図22に示される。HDLソフトウェアフレームワークコマンドの全ては、実行する手順に対する簡易表記がそれに続く、形式「−」(ダッシュ記号)のキーワードである。オプションは、
− 「−i」:HDLソフトウェアフレームワークシステムの初期化
− 「−v」:自身の現在の設定の確認
− 「−reset」parameters.txtファイルの工場出荷時のデフォルトへのリセット
− 「−en」選択されたデータセット(MNISTまたはCIFAR)トレーニングデータのシーケンスデータオブジェクトへの符号化
− 「−sc」スパースコーディングの実行
− 「−rs」:スパーシティ、再構築誤りおよび実際の経過時間の結果テーブルのプリント
− 「−v1」:符号化されたシーケンスデータの視覚化
− 「−v2」:多数の辞書アトムおよび再構築の視覚化
− 「−v3」:少数のグラウンドトルス、それらの再構築、およびそれらがそこから作成される辞書アトムの視覚化
− 「−v4」:特定の辞書学習の実行のための目的関数の降下法の視覚化
− 「−v5」:ラベルカテゴリによってソートされたWの行列の視覚化
− 「−rsts」:テストセット上での再構築誤りの計算およびプリント
− 「−v2ts」:テストセットの辞書アトムおよび再構築の視覚化
− 「−clf」:スパースにコーディングされたMNISTまたはCIFARデータセット上での分類の実行
− 「−clfbio」:特殊目的バイオラベル分類器の実行
− 「−h」:ヘルプのプリント
− 「−e」:終了
【0274】
コマンドを実行するためにキーワードの周辺でクオート(quotes)をタイプする必要がないことに留意されたい。
【0275】
HDLソフトウェアフレームワークのスパースコーディング構成要素の初期化
ユーザがCLIをロードしたとき、タイプする最初のコマンドは、−iである。これは、システムを初期化する。フォルダ構造は、ソースコードが位置するルートディレクトリで作成され、トレーニングデータは、トレーニングをする状態になってインターネットからダウンロードおよびアンパックされる。MNIST画像データおよびCIFARデータは自動的に取り出される。
【0276】
CIFARソースからのデータは、手動で2回zip解凍(unzipped)される必要があり(それは、gzipおよびtarの両方で圧縮される)、未加工ファイルは、CIFAR_dataフォルダに移動される必要があることに留意されたい。加えて、bio_labels_2_mnistおよびbio_labels_2_cifarフォルダは、パッケージフォルダからMNISTおよびCIFARデータフォルダにそれぞれ移動または複製される必要があることがある。
図23は、この処理が完了すると、CIFAR_dataフォルダがどのように見えるはずかを示す。
【0277】
デフォルトのparameters.txtファイルは、それらのデフォルト値に初期化された全てのパラメータで作成される。任意のポイントにおいて、ユーザは、スパースコーディング構成要素インタフェースからコマンド−resetを使用してデフォルト値にparameters.txtをリセットすることを選択することができる。ユーザはまた、helpファイルを提示するためにいずれかの時に−hをタイプすることができる。
【0278】
parameter.txtファイルの導入
ユーザがHDLソフトウェアフレームワークシステムと対話する主要な方法は、いくつかのパラメータを指定し、次いで、CLIにおいてオプションのうちの1つを実行することによるものである。パラメータを調節するために、ユーザは、
図24に示すテキストエディタにおいてparameters.txtファイルを開く必要がある。次に、ファイルを変更、次いで保存するために、パラメータと関連付けられた値を修正する。
図24にリスト化されたパラメータは以下のように説明される。
K
このパラメータは、辞書を形成するために使用されるアトムの数を指定する。50〜500の範囲にある値が一般的である。
【0279】
lambda_value
これは、正則化パラメータである。より高いlambdaが設定されると、再構築に含まれるアトムごとにさらなるペナルティがあり、および再構築がさらにスパースになる。lambdaの効果は、データセットのサイズ、辞書アトムの数、および使用されているソルバタイプに依存する。MNISTに対し、0.001〜0.1の範囲にある値が一般的である。
【0280】
unlabeled_solver_flag
使用するソルバを選択する。オプションは、
2:「BLACKBOX+VESUVIUS」(すなわち、BlackBoxおよび量子コンピュータ)
4:「METSTABU」
5:「CPLEX」
6:「AKMAXSAT」
9:「BLACKBOX+EMULATOR」
10:「FSS」
である。
【0281】
FSSとは別の全てのソルバは、L0正則化を使用する(二値重みは辞書アトムを増加させる)。FSSは、L1正則化を使用する(実数値重みは辞書アトムを増加させる)。オプション4(L0に対し)およびまたはオプション10(L1に対し)のいずれかを使用することが推奨される。
【0282】
use_cloud
Picloudインタフェースを介して、ジョブがローカルに(use_cloud=False)またはクラウド上で(use_cloud=True)実行されるかを設定する。ユーザがジョブをクラウド上で実行することを要求する場合、ユーザは、クラウドアカウントを設定する必要がある。ユーザがクラウド上でジョブを実行する場合、ユーザは未だに、データをローカルにアクセスすることが可能であることに留意されたい。
【0283】
データセット
どのデータを調査するかを選択する。現在のオプションは、「mnist」または「cifar」であるが、他のデータが使用されてもよい。
【0284】
バイオラベル
このフラグは、バイオラベルを入力トレーニングデータに付加することを通知する。許容値は、「True」または「False」である。
【0285】
local_verbose
これは、ユーザが符号化および学習処理としてより厳密に実行を監視することを要求する場合、コマンドラインインタフェースへの追加的な任意選択のプリントアウトを作成するフラグである。許容値は、「True」または「False」である。
【0286】
blackbox_num_reads
各タブーステップにおいて量子コンピューティングハードウェアからの読み取り値の数を指定する。値が高いと、最適化がさらに良好になるが、実行にさらに長い時間を要する。この数をゼロ(0)に設定することによって、大規模近隣局所検索機構が除去され、BlackBoxがタブー検索のタイプと同等になる。デフォルト値は1,000である。100〜10,000の範囲にある値が一般的である。
【0287】
cplex_to_global_optimality
このブールがTrueであり、ユーザがCPLEXをインストールしている場合、ソルバは、学習ルーチンを通じて実行し、各ステップにおいて、全体的な最適化(最高の考えられる回答)が達成されたことを証明する。これは、それと発見的解決法ソルバを比較する基準値を有することが要求される場合に有効である。全体的な最適性に対しCPLEXを実行することは、特に、Kが大きい場合に長い時間を要することがあることに留意されたい。この変数がFalseに設定される場合、CPLEXは、unlabeled_solver_timeoutがタイムアウトした後に終了する(以下を参照)。
【0288】
unlabeled_solver_timeout
METSLIB TABU、CPLEXおよびAKMAXSATソルバは全て、ソルバタイムアウトが与えられてもよい。これは、ミリ秒の時間であり、その時間の後にそれらが発見した最良の回答をそれらは返すはずである。これは、問題的解決法ソルバが最適な回答を返したか否かをチェックする方法がないため、必要となる。5〜100ミリ秒の範囲にある値がここでは一般的である。タイムアウトが長いと、大規模な実行に対して最適化がより良好となるが、しかしながら、それはまた、実行に要する時間を増大させる。
【0289】
time_by_iterations_for_tabu
これは、Trueの場合にミリ秒の特定のタイムアウトの後に終了する代わりに、一定の数のタブー反復が実行された後に終了することをタブー検索アルゴリズムに依頼するブールである。
【0290】
tabu_random_tie_breaking
これは、タイ(ties)をランダムに中断するか否かをタブー検索アルゴリズムに通知するブールである。これがTrueのときにタブー最適化が良好であるように見える。
【0291】
tabu_iterations_in_roll
これは、初期降下法段階の間にQUBO最適化ごとにタブー検索が実行する反復の最大数である。
【0292】
tabu_iterations_after_roll
これは、初期降下法段階の後にタブー検索が実行する反復の最大数である。
【0293】
search_depth
タブー類似のソルバは、初期段階を有し、そこでは、それらは、主要な学習アルゴリズムを実行する最良の位置上に落ち着く前に、多くの異なるランダムな開始点を試すことができる。検索深度は、それらの初期テスト(ロールとして知られる)を実行する反復の数である。L1ノルムバージョンを使用する場合、これを1に設定する。
【0294】
number_of_rolls
search_depthに関連して、ユーザは、主要な実行の開始の前に解決法が見込みのあるように見える領域を発見するために、アルゴリズムが調査する異なるランダムな開始点の数を指定することができる。1〜20の範囲にある値が一般的である。L1バージョンに対し、number_of_rollsは常に、L1アルゴリズムが常に同一の回答に収束するため、1に設定されるべきである。
【0295】
exit_threshold
反復において、目的関数がこの値未満に減少するときアルゴリズムは停止し、結果が保存される。終了閾値をより高く設定することは、アルゴリズムがより早く終了することを意味するが、発見される回答が良好でないことがある。0.01〜10の範囲にある値は、MNISTに対して一般的であるが、このパラメータは、画像の数、lambda、および使用されるソルバのタイプに高度に依存する。実際に、ユーザは、exit_thresholdが何であるべきかを感じ取るために目的関数降下法を実行および観察する。
【0296】
環境
このパラメータは、HDLソフトウェアフレームワークが使用するクラウド上の環境(Pythonパッケージがインストールされる)を指定する。環境名は、クラウドアカウント設定の間に設定されるべきであり、通常はその後変更されない。
【0297】
map_jobs_bundle_size
クラウド上で実行するとき、このパラメータは、何個のジョブを「共にバンドルするか」を指定する。それらのジョブは、相互に1つおきにシリアルに実行する。各々の個々のジョブがどの程度困難であるかに応じて、主要部を設定するのに関連するオーバーヘッド時間よりもジョブがさらに迅速に完了することが多いため、各ジョブをクラウド上の別の主要部に送信するのに不十分であることがある。そのようにして、ジョブは、クラウド上の主要部の使用が最大に効率的となるように共にバンドルされる。一般的な値は、500〜5,000の範囲にあるが、これは、K、トレーニングセットにおけるオブジェクトの数、実行することが望まれる主要部の数、および使用されるソルバに高度に依存する。
【0298】
number_of_training_images_to_grab
これは、トレーニングデータのどのサブセットが実行に使用することが要求されるかを指定する。いくつかの実装形態では、MNISTは、トレーニングセットにおいて59,999のデータオブジェクトの最大値を有し、よって、ユーザは、データセットが「mnist」である場合に、1〜59,999の値を設定することができる。現在実装されているように、CIFARは、10,000の画像の最大値を有し、よって、ユーザは、データセットが「cifar」である場合に、1〜10,000からのこの値を設定することができる。ユーザがHDLソフトウェアフレームワークを使用することに慣れてくると共に、少数のデータポイントが種々の特徴(100が適正に妥当である)を試すために使用されることが示唆されることに留意されたい。しかしながら、ユーザが学問的かつ業界標準の結果を作成することを望むときは、完全なデータセットを使用することが必要となる。
【0299】
number_of_svd_modes_to_keep
いずれかのタイプのスパースコーディングを実行する前、特異値分解(SVD)を実行することによって、最初に未加工データの次元を削減する。保持されるSVDモードの数を、MNISTのケースでは1〜784、CIFARのケースでは1〜3,072に設定することができるが、number_of_training_images_to_grabよりも大きく設定することはできず、またはSVD処理が機能しないことに留意されたい。MNIST未加工画像の良好な再作成を25〜50SVDモードで得ることができる。CIFARデータセットの良好な再作成を250〜400SVDモードで得ることができる。
【0300】
run_name
これは、実行を区別するためにユーザが追加することができる名前(moniker)であり、それによって、どのデータセットがどれであるかをそれらが容易に想起することが可能になる。例えば、ユーザはこの名前が実行の現在の日付および時刻、または現在のユーザの名前になるように設定してもよい。HDLソフトウェアフレームワークが実行の結果を保存するとき、ファイル名の最初のいくつかの文字は、実行時のparameters.txtにあったrun_nameに設定される。
【0301】
パラメータ設定の確認
ユーザがparameters.txtファイルを正確に設定したことをチェックするために、ファイルを保存し、次いで、HDLソフトウェアフレームワークCLIにおいて−vコマンドを実行する。これは、パラメータ設定上での一連のチェックを通じて実行される。パラメータの組み合わせに関して一定の制約が存在し、例えば、number_of_training_images_to_grabよりも大きいnumber_of_svd_modes_to_keepを有することができない。インタフェースが誤りを発見した場合、それは、何が誤って実行されたかを示すリストをプリントする。
【0302】
各々の誤りが個別にリスト化される。ユーザは、それらの誤りを解決し、ファイルを保存し、および−vを再度実行することを試みるために、parameters.txtを修正する必要があることがある。全ての誤りが修正された場合、CLIは、代わりに、実行パラメータに関するいくつかの情報をプリントアウトする。
【0303】
データ符号化
MNISTおよびCIFARデータセットを、HDLソフトウェアフレームワークによって認識可能な形式に変換するために、画像は、sequence_dataオブジェクトに符号化される必要がある。この処理は、符号化として知られ、および任意の機械学習を試みる前にユーザがデータに対して最初に行うことである。符号化は、データを種々の異なるファイルフォーマットにさせ、およびそれらを、HDLソフトウェアフレームワーク内で使用される標準行列フォーマットに変換する方法である。データセットが選択されるとき、追加の圧縮ステップが符号化の前に実行される。これは、より小さなファイルサイズでビットマップをJPEGフォーマットに変換することができる方法と同様に、さらなる品質を損なうことなく、未加工のピクセルデータを圧縮することができることが多いからである。MNISTデータの未加工の大きさは、圧縮前は784(およびCIFARに対しては3,072)である(カラーチャネルの画像xの数におけるピクセルの数)。HDLソフトウェアフレームワークのスパースコーディング構成要素によって実行される圧縮は、SVD(特異値分解)として知られ、ユーザは、パラメータnumber_of_svd_modes_to_keepを設定することによって使用する圧縮比を選択することができる。
【0304】
MNISTまたはCIFARデータがSVD表現に変換されたとき、それは、HDLソフトウェアフレームワークによって、学習アルゴリズムに送信される準備がされた値の2D行列に符号化される。ユーザは、データを符号化するために−enをタイプする。
【0305】
sequence_data(また、seq_data)オブジェクトは、ユーザのlearning_data/MNIST_trainingまたはlearning_data/CIFAR_trainingディレクトリに記憶される。SVDステップからの追加のファイルも保存される。
【0306】
ローカルなスパースコーディングの実行
デフォルトで、ユーザがエンコーダおよびスパースコーディングを実行するときに、全てのファイルがローカルに保存される。しかしながら、ユーザがuse_cloudをTrueに設定する場合、ファイルはまた、クラウドに複製される。ユーザが全てをテストするためにローカルで実行することを開始することは、より大きな実行のためのクラウドを使用する前に、より小さなnumber_of_training_images_to_grabで機能することが示唆される。ユーザが−enを実行した後、スパースコーディングをローカルに実行するために、単純に−scをタイプし、enterを押す。ユーザが−enを実行することを忘れた場合、CLIは、有効なシーケンスデータファイルを発見することができないことをユーザに通知し、およびエンコーダを実行することをユーザに促す。
【0307】
スパースコーディングは時間を要する処理であるため、スパースコーディング構成要素はこのコマンドを実行することを試みる前に、設定を自動的にチェックする。実際に、それは、誤りがないことをチェックするためにスパースコーディングを実行する前に、−vをサイレントに実行する(前に説明した同一の証明スクリプト)。それが誤りを発見した場合、それは、−vを再度実行し、および誤りを最初に修正することをユーザに促す(
図25参照)。
【0308】
スパースコーディングが実行されるとき、ユーザは、反復を実行するコードを確認する。この処理は、設定に応じて完了するのに長時間かかることがあるが、文言「At column#0」をプリントアウトすることは、スパースコーディングが正確に実行されていることを意味する。
図26は、ユーザが−scを実行するときに何が予想されるかを示す。例えば、アルゴリズムは、多数の反復(>150)で実行しているように見える場合、ユーザは、目的関数がその都度減少する量をチェックすることを望むことがあり、アルゴリズムは、差異がexit_thresholdを下回るまで終了しない。
【0309】
スパースコーディングルーチンが終了するとき、プログラムは、メインメニュープロンプトに戻るはずである。プログラムは、学習された辞書(プレフィックスD_)および重みの組(プレフィックスW_)として実行を保存している。それらを、learning_data/mnist(またはcifar)_training/フォルダで発見することができる。HDLソフトウェアフレームワークはまた、目的関数降下法ファイル(プレフィックスobj_func_val_)および実際の経過時間ファイル(プレフィックスwallclock_time_)を保存する。
【0310】
視覚化ルーチンの実行
スパースコーディングが実行されたとき、ユーザは、視覚化ツールの一式へのアクセスを有する。それらを実行するために、ユーザは、−v1、−v2、−v3、−v4または−v5をタイプする。ユーザは、現在の設定を使用することを望むか否かを促される。ユーザが「y」をタイプする場合、parameters.txtファイルにおける値が使用される。これは、実行された最後のスパースコーディングの実行が、視覚化される1つであることを意味する。parameters.txtを変更し、次いで、それらの現在のパラメータを使用して視覚化を再実行することを試みる場合、システムは、エンコーダおよびスパースコーディングを最初に再実行することを促す。
【0311】
ユーザが「n」を選択する場合、システムは、プロットするデータに対するオプションのリストをロードする。前の実行を使用して学習されたデータセットが存在する。ユーザは、それに関連付けられた番号(各オプションの左に示される)をタイプすることによって前のデータセットを選択することができる。
【0312】
視覚化はまた、それから実行されるどのデータが来るかをさらに明確にするために、画面(figure)のタイトルにおけるファイル名を有する。
【0313】
番号が選択されると(または、現在の設定を使用する場合は「y」)、しばらくして、視覚化がポップアップウインドウに現れる。ユーザは、画面ウインドウメニューオプションを使用することを望む場合に、画面を画像として保存することができる。画面は自動では保存しない。視覚化の後にHDLソフトウェアフレームワークCLIに戻るために、画面ウインドウを閉じる。
【0314】
実行からの重要な結果のプリントアウト
視覚化一式に加え、ユーザは、実行からの結果のハンディテーブル(handy table)をプリントアウトするために−rsをタイプすることができる。これは、ユーザが多くの実験を実行しており、ならびにパラメータが変更され、および学習が再実行される都度、一定の値に注意することを望む場合に有効となることがある。結果リストの例は、
図27に示される。
【0315】
テストセット上での再構築の実行
辞書学習手順を実行した後、ユーザは、テストセット上で再構築処理を実行することを選択することができる。これは、その辞書の基底においてテスト画像を記述するために、発見された辞書を使用する。この処理はまた、圧縮検知として知られる。テストセットの再構築は、分類ルーチンを実行することができる前に必要とされる。テストセット上で再構築を実行するために、ユーザは、−rstsをタイプするべきである。このルーチンは、テストセット上で再構築誤りをプリントアウトし、またWtest行列をlearning_data/MNIST(またはCIFAR)_trainingフォルダに保存する。再構築が最適化問題の解を必要とするため、再構築処理は、ユーザの設定に応じて実行するのに一定の時間を要することがある。
【0316】
コードを実行する前に、parameters.txtにおけるlambdaが、再構築に使用することを望まれる保存された辞書からのlambdaと一致することをチェックすることを促される。
【0317】
テストセット再構築の視覚化の実行
−rstsが実行されたとき、テストセット視覚化ルーチンが利用可能になる。−v2tsまたは−v3tsのいずれかを実行することは、v2およびv3のプロットを生成するが、トレーニングデータの代わりにテストデータを使用する。再構築がバイオラベルに含まれる場合、これは画面に自動的に示される。テスト画像自体がバイオラベルを伝達せず、よってグラウンドトルス画像の下のエリア(バイオラベルがトレーニングセット画像に対して発見される)は、−v2tsおよび−v3tsにおいて意図的にブランクのままとされることに留意されたい。
【0318】
分類ルーチンの実行
標準分類ルーチンを実行するために、ユーザは、−clfをタイプするべきである。分類器を実行するために、システムは、Wtest行列へのアクセスを有するべきであり、すなわち、ユーザは、テストセット上で再構築を最初に実行するべきである(−rsts)。HDLソフトウェアフレームワークは、Wの行列、Wtest行列、ならびにトレーニングおよびテストラベルを自動的に検出し、それらの入力上で様々な範囲の分類器を実行する。
【0319】
特殊バイオラベル分類器を実行するために、ユーザは、−clfbioをタイプするべきである。バイオラベルピクセル大きさ分類器(1つの分類結果を返す)と様々な分類器(標準分類器のケースにあるようにいくつかの分類結果を返す)の一式への入力としてのバイオラベル修復との間の選択が存在する。このオプションは、ユーザが、有効とされたバイオラベルで辞書を学習した場合にのみ利用可能となることに留意されたい。
【0320】
クラウド上での実行
ユーザがクラウド上での実行を望む場合、ユーザは、Picloudアカウントを最初に設定してもよい。クラウドにジョブをサブミットするために、parameters.txtにおいて単純にuse_cloudフラグをTrueに等しく設定する。ここで、ジョブは、−sc(スパースコーディング)を実行するときにクラウドに送信される。進行を監視するために、ユーザは、picloudジョブページに訪問する必要がある。現在のジョブを参照するために、インタフェースパネル(
図28)の左側上のジョブタブをクリックする。
【0321】
ジョブを実行することは視認可能であるべきである。クラウド上でのPythonのプリントアウトを参照するために、メインジョブをクリックする。これは、状態列における(
図29に示される)些細なジョブを有する1つである。
【0322】
そのジョブに対応するページにアクセスするために、ジョブID(
図29で強調表示される)をクリックする。ここで、プリントアウトは、「標準出力」と命名されたエリア(
図30に示される)をスクロールダウンすることによって参照されてもよい。プリントアウトは、ジョブがローカルに実行されているときにコマンドラインインタフェース上で見られるプリントアウトと類似するはずである。
【0323】
map_jobs_bundle_sizeが正確に設定されることをチェックするために、cloud.mapサブミッションの下のプリントアウトにスクロールダウンする。ここで、ユーザは、クラウド上で実行に要する各ジョブの時間を示すプリントアウトを発見する。これは、
図30で強調表示される。この数は、クラウドの主要部を最大に効率的に使用するために、約10であるはずである(例えば、ジョブごとに10秒)。ユーザは、この値が10に近くない場合にmap_jobs_bundle_sizeを変更する必要があることがある。ここで、値は2.4であり、よって、map_jobs_bundle_sizeは、最適なクラウドの使用のために非常に低く設定されている。
【0324】
クラウドジョブが継続するにつれ、ユーザは、ジョブがさらに発生することを確認する。これは、
図31に示される。完了したジョブは、マップごとにジョブの総数の一部として示される。発生するロール(前に説明された)は、メイン学習ルーチンとは別個に処理する。発生する異なるタイプのジョブの中断は、
図32に示される。完了したジョブは、それらの隣のチェックマークで表示される。
【0325】
ユーザが大きなジョブ(例えば、10,000を上回るトレーニング画像)を実行している場合、ユーザは、ジョブを効率的に実行するためのリアルタイムコアを予約することを推奨される。リアルタイムコアを予約するために、「リアルタイムコア」タブをクリックし、および「コアタイプ:f2」、次いで、その間にリアルタイムコアを予約することを望む時間数を選択する(
図33)。
【0326】
留意点:ユーザが、リアルタイムコアを予約する期間がどのくらいかが確かでない場合、ユーザは全てが的確に機能することをテストするために、それらを1時間予約してもよい。ジョブを実行しているときにさらなる時間を追加することが可能である。リアルタイムコアがアクティブであるとき、Trueに設定された「use_cloud」で、標準的に実行されるのと厳密に同一の方法でコードを実行する。Picloudは、ユーザが利用可能なリアルタイムコアを有し、およびそれらを優先的に使用することを自動的に検出する。
【0327】
現代の機械学習における1つの変化は、スパムフィルタなどの限られた適用性を有する特殊目的ツールから、人間が行うような、1つのトピックから別に一般化することが可能なことがあるアーキテクチャへの推移である。この変化を引き起こす革新の1つは、本質的に階層的である学習システムへの動きである。それらのシステムでは、複雑な概念が、より単純な概念から構築される。例えば、コンピュータビジョンタスクでは、接線(edges)などの単純な視覚的特徴を再使用して、接線から形成されるより複雑なオブジェクトを表現することが可能となることがあるが、意味的に全く異なることがある(人間の顔および車のホイールなど)。それらは、深層学習システムと称される。
【0328】
スパースコーディングは、関連するアプローチのファミリーであり、そのアプローチの目的は、データを正確に表現する方法を発見することである。教師なし設定では、特に重要であるデータにおける特殊パターンを発見するために、スパースコーディングを使用することができる。スパースコーディングはまた、圧縮された方法で、データを表現または符号化する方法を発見するために使用されてもよい。スパースコーディングは、データにおける複数のスケールで特徴の階層を学習するために自然に使用されてもよい。
【0329】
スパースコーディングアルゴリズムは、ローカルに、クラウドコンピューティングシステム上で、または量子プロセッサを使用してのいずれかで従来型コンピュータ(すなわち、デジタルコンピュータ)上で実行されてもよい。スパースコーディングアルゴリズムは、従来型および/または量子プロセッサの任意の組み合わせ上で実行されてもよい。本システムおよび方法に従って実装されるスパースコーディングアルゴリズムのいくつかの変形は、L1規制化スパースコーディング、二値スパースコーディングおよび構造化辞書を有する二値スパースコーディングを含む。
【0330】
二値スパースコーディングは、スパースコーディング手順において、重みを実数から二値に変更してもよい。構造化辞書を有する二値スパースコーディングは、アルゴリズムにより生じる二値最適化問題の全てが所与の量子プロセッサの厳格な連結構造を有するそのような方法で、スパースコーディングが学習するパターンを制約する。二値スパースコーディングは、完全に連結されたQUBOを生成してもよく、および仲介変換器は、量子ハードウェアにおいて自然に解決することができる問題にそれらをマッピングするために使用されてもよい。そのような変換器は、例えば、PCT特許出願公開国際公開第2013/006836号パンフレットで説明される。構造化辞書を有する二値スパースコーディングは、二値スパースコーディングを修正してもよく、それによって、それは単に、量子ハードウェアによって自然に解決することができる問題を生成する。ここで、有利点は、その最大に効率的な形式である量子ハードウェアを直接使用することによって得られる。アイデアは、パターン(それらの多くが直交するようにスパースコーディングが学習する)を構造化することである。
【0331】
スパースコーディングは、多くの異なるタイプのデータに適用されてもよい。以下で提示される議論では、焦点は、3つの異なるソース、MNIST、CIFAR−10および独立して開発された自然画像データセットからの画像データにあてられる。スパースコーディングは、多くの異なるデータタイプに適用されてもよい。焦点は、例示的な目的のために本開示における画像データにあてられるが、いくつかの他のデータタイプ(特に音声およびビデオ)も使用されてもよい。
【0332】
スパースコーディングを実行する前に、未加工画像が事前処理されてもよい。本システムおよび方法に従った未加工画像を事前処理するためのいくつかの非限定的なオプションは、以下の通りであってもよい。
オプション#1:輝度およびコントラスト正規化での未加工ピクセル値。各画像パッチにおけるピクセル値の平均および標準偏差が計算され、平均を減算し(輝度正規化)および標準偏差で除算(コントラスト正規化)するためにピクセル値が修正される。それらの動作の各々は、RGB画像に対する各カラーチャネル上で別個に実行される。
オプション#2:ZCAホワイトニング。このオプションは、輝度およびコントラスト正規化を経たデータをとり、およびZCAホワイトニング操作をそれに適用する。ZCAホワイトニングは、データオブジェクト内のピクセル値の相関関係を解除し、共分散行列を恒等行列に等しくする。概念的に、相関関係のこの除去によって、スパースコーディング手順が、処理されたデータオブジェクト内の明確さに劣る特徴を学習することに焦点をあてることが可能になる。ZCA上のさらなる情報は、零相成分分析(ZCA)において与えられ、Bell and Sejnowski,1997“The‘independent components’of natural scenes are edge filters”Vision Research,Vol 37,No.23,pp.3327−3338を参照されたい。
オプション#3:PCAを使用した次元削減。主成分分析(PCA)、既知の数学的技術。このオプションは、特異値分解を使用したデータの主要な成分(後の輝度およびコントラスト正規化)を判定する。次いで、オプションによって、ユーザが、それらの主要な成分のいくつを保持するかを選択することが可能になる。この手順によって、損失を犠牲にして、入力データベクトルの次元の削減が可能になる。それにも関わらず、画像に対し、主要成分の重要な部分が無駄にされるときでさえ、概して良好な忠実性を維持することができる。
オプション#4:ホワイトニングを有するPCA。このオプションは、データオブジェクトのエントリの相関関係を解除するホワイトニング操作の追加を有する、オプション#3と同一である。
【0333】
j番目のデータオブジェクト
【数131】
は、前に説明された事前処理動作の1つの適用後の単一の画像または画像パッチに対応する、実数のN×1列のベクトルである。使用されるデータオブジェクトの総数は、Sとして定義されてもよく、およびそれらの全てを、そのj番目の列が
【数132】
である、データ行列と称することができる単一のN×Sの行列Xに連結させてもよい。
【0334】
j番目の辞書アトム
【数133】
は、(最初は知られていない)実数のN×1列のベクトルであってもよい。辞書アトムの総数は、Kとして定義されてもよく、およびそれらの全てを、そのj番目の列が
【数134】
である、辞書と称することができる単一のN×K行列Dに連結させてもよい。
【0335】
j番目の重みベクトル
【数135】
は、実行されているスパースコーディングの変形に応じて、実数または二値のいずれかで構成することができる、(最初は知られていない)K×1列のベクトルである。Sの重みベクトルの合計が存在してもよい。それらの全てを、そのj番目の列を
【数136】
とすることができる、重み行列と称することができる単一のS×Kの行列Wに連結する。
【0336】
Lambda(λ)は、正則化パラメータと称される正の実数であってもよい。lambda(λ)がより大きいと、より少ない辞書アトムが各データオブジェクトの再構築に含まれることがある。
【0337】
ここで、前に説明されたスパースコーディングの変形をさらに説明することができる。
【0338】
変形#1:L1正則化スパースコーディング。第1のスパースコーディングの変形は、L1ノルム正則化を使用して実装される。解決されることになる問題は、
【数137】
となることがある。
【0339】
このケースでは、重みWが実数である。「c」も実数である(例えば、この実装形態では、c=1に設定される)。辞書アトムおよび重みの両方が実数であり、正則化項(regularization term)が重みのサイズを最小にすることを試みるため、辞書サイズ上のこの上限が使用されてもよい。上限なしで、最適化は、補償する辞書の大きさを増大させることを継続する間に重みをゼロにさせる。
【0340】
この最小化問題を解決するために実装される1つの手順、およびそのためのアルゴリズムがまた、上述したHonglak Lee et al.によって適切に説明される。以下のアルゴリズム1は、手順を要約する。
アルゴリズム1:
1.ランダムな初期開始辞書Dを選択する。
2.その辞書を仮定して、feature sign search(FSS)アルゴリズムを使用して最適な重みWを発見する。
3.それらの重みを仮定して、Lagrangianデュアルを使用した最適な辞書を発見する。
4.収束するまで動作2〜3を繰り返す。
【0341】
固定される最適化変数のいくつかを保持する間に問題のサブセット上での反復する一連の最適化へ完全最適化を分離するこのアプローチは、座標ブロック降下法と称されてもよい。スパースコーディングの変形の全ては、この技術を使用してもよい。このケースでは、元の完全最適化問題は、非凸であり、上記アプローチにおける動作2および3の両方は凸である。
【0342】
本システムおよび方法に従って、ユーザは、ローカルに、またはクラウド上のいずれかでこの手順を実行するオプションを有することができる。上記手順の動作2では、データオブジェクトごとに1つの、Sの独立した最適化問題の合計が存在する。数Sが大きいことがあるため(ここで使用される小さな画像セットに対してでさえ、S〜50,000が使用されてもよい)、それらの最適化は、クラウドバージョンを使用することによって並列化されてもよい。ユーザは、反復の間にプロセッサコアに送信されることになる問題の番号を選択することができる。
【0343】
変形#2:二値スパースコーディング:
第2の変形は、以下の問題を解決することができる。
【数138】
重みWは二値である。このケースでは、非ゼロの重みは、1に等しく固定される大きさを有するため、辞書の値上の上限は必要とされない。二値の重みを使用することは、L0の形式の正則化項を自然に作成し、同一の量によって再構築に使用される各アトムにペナルティを課す。
【0344】
最適化を実行するために使用される手順は、アルゴリズム2で説明される。これは、変形#1で使用される手順と同様である。しかしながら、いくつかの重要な差異が存在する。
【0345】
第1に、この手順における目的関数の最終値は、初期開始点に強く依存することがある。これに対する理由は、座標ブロック降下法手順の各段階が全体的に最適である場合でさえ、最終結果が同時最適化問題において局所的最小であり、それらの局所的最小を同時問題の全体的な最適からかけ離れたものとすることができることである。同じことは、変形#1に対して予期され、経験的に、変形#1のための開始位置は、最終結果に著しく影響しないように見える。
【0346】
初期開始点への依存を理由に、異なる開始点からの手順のいくつかの初期の反復(動作2)が実行されてもよい。それらは、クラウドのオプションが使用される場合に並列に実行されてもよい。それらの初期降下法動作が完了すると、今まで発見された最良の結果が保持されてもよく、収束するまでその結果が反復処理を継続してもよい。
アルゴリズム2:
1.初期開始点の総数、および検索深度Pを選択する。
2.各初期開始点に対し、
a.ランダムな初期開始重み行列Wを選択する。
b.それらの重みを仮定して、Lagrangianデュアルを使用して最適辞書を発見する。
c.その辞書を仮定して、タブー検索を使用して最適重みを発見する。
d.Pの動作に対し動作2b〜2cを繰り返す。
3.各初期開始点に対し動作2が完了すると、
a.初期段階の間に発見された目的関数の最小値に対応するペアW、Dを選択する。
b.それらの重みを仮定して、Lagrangianデュアルを使用して最適辞書を発見する。
c.その辞書を仮定して、タブー検索を使用して最適重みを発見する。
d.収束するまで動作3b〜3cを繰り返す。
【0347】
2bおよび3bにおける辞書最適化は、変形#1で使用されるそれらと同様であってもよい。
【0348】
動作2cおよび3cでは、独立して完全に連結されたQUBOが生成される。概念的には、初期降下法段階における重みに関する比較的劣る最適化は、多くの尽力が回答を最適化するのに費やされる場合でさえも、同時問題の不良な局所的最適にはまり込むときに受け入れられることがある。実際に、多くのケースでは、初期降下法における重みに関する最適化に費やされる尽力を削減することは、より良好な全体的な最適化をもたらすことがある。
【0349】
変形#3:構造化辞書を有する二値スパースコーディング:
実装される第3の変形は、以下の問題を解決することができる。全てのペアi、j
【数139】
に対し、
【数140】
に従う、
【数141】
ここで、Gは、ユーザ特有連結度を表す隣接グラフである。重みWは二値である。
【0350】
それらの制約は、アルゴリズムによって生じる最適化問題の全てに所与の量子プロセッサの厳格な連結構造を有させる。最適化を実行するために使用される手順は、アルゴリズム3で説明される。
アルゴリズム3
1.初期開始点の総数、および検索深度Pを選択する。
2.各初期開始点に対し、
a.ランダムな初期開始重み行列Wを選択する。
b.要求される直交性制約を満たすランダムな初期開始辞書Dを選択する。
c.現在の重みおよび辞書を仮定して、アルゴリズム4を使用して最適辞書を発見する。
d.その辞書を仮定して、タブー検索または量子ハードウェアのいずれかを使用して最適重みWを発見する。
e.Pの動作に対し動作2c〜2dを繰り返す。
3.各初期開始点に対し動作2が完了すると、
a.初期段階の間に発見された目的関数の最小値に対応するペアW、Dを選択する。
b.現在の重みおよび辞書を仮定して、アルゴリズム4(以下を参照)を使用して最適辞書を発見する。
c.その辞書を仮定して、タブー検索または量子ハードウェアのいずれかを使用して最適重みを発見する。
d.収束するまで動作3b〜3cを繰り返す。
【0351】
これは、3つの重要な相違を有するアルゴリズム2と同様である。
【0352】
1つ目は、ここで辞書が制限されることである。ここで、最適辞書を発見すること(動作2cおよび3b)は、非凸最適化問題である。ハードウェアの連結度に一致させるために動作2dおよび3dにおいて最適化問題を構造化することによって、何かが得られる間に、これの副産物として、ここでは潜在的に困難である1つにすることが容易になるように使用される動作がなされている。
【0353】
この最適化を実行することを試みるために、いくつかの戦略が実装されている。本システムおよび方法に従った実装形態は、アルゴリズム4(以下を参照)で示される。
【0354】
2つ目の相違は、辞書制約が、学習されているデータベクトルの長さNに関する下限を置くことである。Nは、K、例えば、量子ハードウェア上で実行されるこのアルゴリズムに対しては502、以上になるように選択されてもよい。
【0355】
実際に、この制限は、選択することができるそれぞれのフィールドのサイズ(例えば、少なくとも23×23ピクセルのグレースケールに対し、および少なくとも13×13ピクセルのRGBに対し、受容的フィールド(receptive field)は、非常に大きい必要がある)、および事前処理動作において実行することができる次元削減の量に影響する。
【0356】
アルゴリズム4
1.初期重み行列Wおよび辞書Dを仮定して、以下の動作を実行する。
a.Cayley変換を使用してDを最適化する。
b.Dの各列を最適に再スケーリングする。
c.Dの各列に対し、その列において最適エントリを発見し、全ての他の列を固定したままとする。
【0357】
3つ目の相違は、動作2dおよび3cでは、隣接グラフG(使用されている量子プロセッサの隣接グラフになるように設定することができる)と同一連結構造を有するSのQUBOが生成される。ユーザは、タブー検索を使用して、または量子プロセッサを使用して、それらを解決するオプションを有することができる。
【0358】
分類アルゴリズムがオブジェクト間の差異をよりよく確認することを可能にする表現を学習することによって、分類タスクに関する性能を増大させるためにスパースコーディングを使用することができる。画像データに対し、規範例は、それらの意味内容(semantic content)に応じたカテゴリへの画像の分類である。MNISTに対し、カテゴリは、画像が表す10の数字である。CIFAR−10に対し、飛行機、自動車、鳥、猫、鹿、犬、カエル、馬、船およびトラックの10のカテゴリも存在する。
【0359】
いくつかの実装形態では、本システムおよび方法は、多くの分類手順の実装形態を含む、scikit学習Python分類パッケージを使用する。本システムおよび方法はまた、分類のために使用することができる、半教師あり修復アルゴリズム(「意味修復(semantic inpainting」)を実装してもよい。
【0360】
MNISTおよびCIFAR−10データセットの両方がラベル付けされる。したがって、分類精度の計算をすることになるパイプラインの一部として両方を使用することができる。本システムおよび方法に従った例示的なパイプラインは、以下のように与えられる。
1.ユーザは、データセット、例えば、MNIST、CIFAR−10などを選択する。
2.ユーザは、事前処理オプション、例えば、受容的フィールド、および事前処理オプションを選択する。
a.事前処理オプションは、非輝度およびコントラスト正規化、ZCAホワイトニング、次元を削減するN成分を保持するPCA、次元削減・ホワイトニングを含む。
3.次いで、システムはデータ行列Xを計算する。
4.次いで、ユーザは、X上で辞書を学習するためにどのスパースコーディングアルゴリズムおよび関連するハイパーパラメータを使用するかを選択する。
a.オプションは、L1正則化スパースコーディング、二値スパースコーディング、構造化辞書を有する二値スパースコーディング、ソフトウェアで実行する構造化辞書を有する二値スパースコーディング、ハードウェアで実行する構造化辞書を有する二値スパースコーディングを含む。
b.ハイパーパラメータは、タブーパラメータ、正則化パラメータ(l)、辞書アトムの総数(K)を含む。
5.次いで、システムは、画像パッチ上で辞書を学習する。
6.ユーザは、辞書を使用して、選択されたデータセットのトレーニングまたはテストセットを符号化するためにどのスパースコーディングアルゴリズムおよび関連するハイパーパラメータを使用するかを選択する。
a.オプションは、L1正則化スパースコーディング、二値スパースコーディング、構造化辞書を有する二値スパースコーディング、ソフトウェアで実行する構造化辞書を有する二値スパースコーディング、ハードウェアで実行する構造化辞書を有する二値スパースコーディングを含む。
b.ハイパーパラメータは、タブーパラメータ、正則化パラメータ(l)、辞書アトムの総数(K)を含む。
7.次いで、システムは、トレーニング画像、一部の実施形態では、トレーニングおよびテスト画像を符号化する。
8.ユーザは、分類アルゴリズムおよびそのハイパーパラメータを符号化する。
a.オプションは、scikit学習において分類器に対するオプションのうちの1つを使用すること、または修復ベースの分類器を使用することを含む。
9.システムは、符号化されたデータ上で分類器を学習する。
【0361】
システムは、分類、ならびに、一部の実施形態では、1つ以上の分類器および分類の性能を返す。
【0362】
スパースコーディング構成要素では、スパースコーディングはこのパイプラインにおいて2つの重要な役割を果たす。1つ目は、辞書、画像パッチを表すための基底を学習するためにそれが使用されることである。2つ目は、前に学習された辞書を使用して、まだ確認されていないデータを符号化するためにそれが使用されることである。
【0363】
スパースコーディング構成要素画像符号化手順:
スパースコーディング構成要素によって、ユーザは、任意の受容的フィールドを選択することが可能になる(それにも関わらず、BSDアルゴリズムに対し、受容的フィールドは、辞書アトムの数と少なくとも同じの大きさのデータオブジェクトを生成するのに十分な大きさとなる必要があることに留意されたい)。受容的フィールドが、分類される画像のサイズよりも小さい場合、画像内に多くの異なる画像パッチが存在し、各々が符号化を有する。それらの符号化された画像パッチは、それらがそこからである画像を表すために使用されてもよい。どのようにそれを行うかの選択は、結果として得られる分類器の品質に影響を与える。
【0364】
原型(monarch)は、データセットにおいて画像をどのように区分化するかを選択することをユーザに最初に求める符号化スキームを実装する。この区分化は、画像を同一のサイズのいくつかの分解領域に「刻む」。最も粒度の細かい許容された区分化は、画像を受容的フィールドと同一のサイズの重ならない領域に分割する。最も粗い許容された区分化は、元のサイズの画像である。例えば、画像は4つの領域に区分化されてもよい。
【0365】
この選択がされた後、各領域内の受容的フィールドのサイズの各サブ領域は、前に学習された辞書を使用して符号化される。例えば、1つのそのような符号化は、パッチが受容的フィールドのサイズである場合である。受容的フィールドは、1ピクセルステップを有する全体領域上でスキャンされる(これは、領域と共にエンコーダの畳み込みである)。
【0366】
これが完了すると、スパースコーディング構成要素は、各領域内での符号化からのベクトルの全てをとり、およびそれらを、領域を表す単一のベクトルにそれらをマッピングする、プーリング手順を実装する。このプーリングを行うために実装される4つのオプションが存在する。それらは、
1.プーリングしない。このケースでは、領域における符号化されたベクトルの全てが連結される。
2.平均プーリング。領域を表す符号化されたベクトルは、サブ領域ベクトルの成分を平均化することによって計算される実数成分を有する。
3.最大プーリング。領域を表す符号化されたベクトルは、サブ領域ベクトルの各々の最大の大きさの値に対応する実数成分を有する。
4.二値プーリング。領域を表す符号化されたベクトルは、サブ領域ベクトルの各々の多数値(majority values)に対応する二値成分を有する。
【0367】
上記オプション4は、L1正則化変形に利用可能でなく、オプション2および3は、二値変形に利用可能でないことに留意されたい。
【0368】
画像の最後に符号化された表現は、領域の各々からベクトルを連結することによって得られる。次いで、この最後に符号化された表現は、分類アルゴリズムをそれに適用する、パイプラインにおける次の動作に供給される。
【0369】
分類アルゴリズム:
スパースコーディング構成要素は、scikit学習パッケージにおいて分類アルゴリズムの全てに対するアクセスを有する。加えて、scikit学習分類器に対する異なる方法で動作する、修復ベースの分類器が実装されている。以下で説明されるのは、異なる分類器への入力であるデータタイプである。
【0370】
Scikit学習分類入力:
Scikit学習における分類アルゴリズムの全てに対し、画像を表す入力ベクトルは、前の章で説明された手順を使用して得られたベクトルである。それらのアルゴリズムに提示される学習は、MNISTおよびCIFAR−10の両方に対して(0、9)の範囲にある整数である。
【0371】
意味修復手順:
スパースコーディング構成要素は、修復意味情報に基づいて分類アルゴリズムを実装する。現在、この手順は、受容的フィールドは全体画像のサイズであるときのみ使用可能であるが、この概念を、受容的フィールドが元の画像よりも小さいケースに拡張するのが可能であることがある。
【0372】
カテゴリラベルの代わりにその意味カテゴリを表す画像を、トレーニングセットにおける各画像に付加することによって、手順が機能する。すなわち、画像のカテゴリを表す意味的表現(例えば、整数5)を使用する代わりに、画像の意味内容の規範バージョンを表す実画像が画像に付加される。スパースコーディング構成要素では、QRコードと同様の考えで、それらの意味画像は、MNISTに対しては白色正方形を有し、CIFAR−10に対しては黄色正方形を有する、その位置がカテゴリを表す色付けされた正方形である。
【0373】
次いで、辞書学習手順は、その意味内容を表す画像と連結された元の画像を含むトレーニングセットにおける画像上の特徴の辞書を学習する。
【0374】
次いで、テスト画像は、元の画像上で学習された辞書の区画を使用して符号化され、ラベル区画を表す区画が修復される。スパースコーディング構成要素におけるMNISTおよびCIFAR−10に対する意味内容を表す画像は、各クラスに対して強く色付けされる(および、重ならない)特殊エリアを有してもよい。修復された意味区画は、ラベルカテゴリに対応する各々の修復されたエリアのピクセルの大きさを参照することによって、直接分類器として使用されてもよい。いくつかの実装形態では、最大のピクセルの大きさを有するエリアは、そのテスト画像に対する予測されたラベルである。
【0375】
上記説明された、抽出されたピクセルの大きさはまた、標準scikit学習分類器モデルを訓練するために使用することができる表現を形成することができる。これは、第1の分類技術と同様であるが、意味画像区画からのピクセル値を使用する。このケースでは、各「ラベルエリア」からのピクセルは、その大きさを判定するために問い合わされ、結果として得られるベクトルは、画像のカテゴリのシンボル的表現と共に、入力トレーニングデータとして分類器に送信される。
【0376】
それらの修復方法は、複数ラベル割り当てを自然にサポートする。しかしながら、上記分類方法は、相互に排他的なラベルカテゴリをデータが有するか、またはそれらの間で相関を有する複数のラベルカテゴリをデータが有するかに応じて異なって振舞うことがある。
【0377】
スパースコーディング構成要素は、ユーザに利用可能な5つの異なる視覚化ルーチンを有する。
【0378】
視覚化1:
それらのうちの1つ目によって、入力画像データ上で使用される事前処理オプションの効果をユーザが確認することが可能になる。これによって、事前処理動作においてなされる選択が、達成するためにユーザが何を要求しているか仮定して気付いていることの即時視覚的チェックが可能になる。
【0379】
視覚化2:
第2の視覚化ルーチンによって、学習された適度に多数の辞書アトムをユーザが見ることが可能になる。それはまた、再構築処理がどの程度に良好に行われているかを目測で評価するために、この辞書を使用した元のデータ、および原本(グラウンドトルス)の再構築を示す。意味画像情報を含む辞書が選択される場合、画像および意味内容が、この図にも表示される。再構築の上に表示される数は、使用されるアトムのインジケーション(数が四角カッコにある場合)、または再構築ごとに4つ以上のアトムが存在する場合に使用されるアトムの数(シンボル>>#が、このケースの場合の数の前に表示される)のいずれかを表す。平均スパーシティ(再構築ごとに使用される平均のアトムの数)はまた、使用された辞書ファイルの名前に従って、プロットのタイトルに表示される。
【0380】
視覚化3:
第3の視覚化によって、ユーザは、再構築において使用された、元の、かつ最大3つのアトムと共に、再構築のうちの3つを厳密に見ることが可能になる。再構築を形成するために組み合わせるアトムは、最大の絶対的大きさの重みを有するものが画面に表示されるように順序付けされる。アトムおよび重みのインデックスは、アトム自体の上に表示される。
【0381】
視覚化4:
第4の視覚化は、学習処理の間の目的関数降下法を示す。これは、最良の解に関してアルゴリズムがどのように収束するかのアイデアをユーザに与える。目的関数降下法の関数形式は、異なるソルバおよびデータタイプに対して異なってもよい。この情報は、多少の侵略的な終了閾値が必要とされるかをユーザが判定することを支援するために、目的関数降下法がどの程度早く収束するかを判定するために使用されてもよい。
【0382】
視覚化5:
第5の視覚化によって、ユーザは、ラベルカテゴリによって記憶された、符号化された画像を表すベクトルを視覚化することが可能になる。これは、データの「フィンガープリント」を与える。肉眼で相関関係を見ることができる場合、分類器が良好に行うはずである。
【0383】
1つの目的は、他の代替物に対して、スパースコーディング変形が量子コンピューティングハードウェア上で実行することをテストすることである。スパースコーディング構成要素のアルゴリズムは、その設定が、どのような品質が測定されているかに大きく影響を与えることがある、多くのハイパーパラメータを含む。いくつかの実装では、ハイパーパラメータは、
1.画像事前処理オプション
2.辞書アトムの数
3.正則化パラメータ
4.受容的フィールドサイズ
5.タブー検索パラメータ
6.トレーニングおよびテスト画像符号化スキーム
7.分類アルゴリズム
を含む。
【0384】
それらに関して最適化するアプローチは、各々上でのグリッド検索(grid searches)を行うこと、および発見された最良の結果を報告することであった。全ての実行では、厳密に同一のスパースコーディングアルゴリズムおよびハイパーパラメータ選択は、辞書学習で使用されたような符号化動作のために使用されている。多数の辞書アトムが、実行される全てのテストに対して常に良好であったことが発見されている。
【0385】
二値構造化辞書アルゴリズムは、512ビット量子コンピュータおよび重み上で最適化するためのタブー検索の両方を使用して実装および実行されている。以下の3つの結果が発見されている。
【0386】
1.重み上で最適化するために、極小詞として使用される最良の1つを有する、問題例ごとに10のサンプルがとられたモードにおいて量子プロセッサが実行されている。これは、問題例ごとに約55ミリ秒を要している。50,000のデータオブジェクトを使用した典型的な実行に対して、固定された辞書が与えられた、重みを解決するためのアルゴリズムの反復ごとの総時間は、約2,750秒であった。タブーのタイムアウトは、中間最適化品質が、このモードで実行する量子コンピュータで達成されたタイムアウトと同様であり、問題例ごとの800ミリ秒のタイムアウトがこの性能を与えたことが発見されている。これは、例ごとに約15×の高速化の利得であると共に、タブー検索アプローチが並列可能である。実際に、500のタブー例の100のバッチがクラウド上で実行されてもよく、各バッチは、異なるプロセッサコアに送信され、反復の実行時間ごとに約410秒およびそれらのジョブを分散するオーバーヘッドを与える。よって、高レベルな単一スレッドの高速化が存在するが、量子コンピュータは、スパースコーディングのために利用することができる、並列化をサポートしないことになる。
【0387】
2.固定されたハイパーパラメータ選択に対し、二値構造化辞書(BSD)アルゴリズムに対する結果の品質が、制約がない二値スパースコーディング結果よりも体系的に劣っていた。(a)準最適な基底につながる辞書に関する制約、(b)固定された重みが与えられた最適辞書を発見することが、使用されるアルゴリズムが著しく改善される可能性がある困難な非凸最適化問題であること、(c)直交性要件が、受容的フィールドサイズに下限を定めること、および少なくともCIFAR−10に対し、より小さい受容的フィールドサイズが、分類精度を増加させること(それにも関わらず、これは、実際の自然画像を有する問題ではなく、この問題は、非常に小さいCIFAR−10画像であることを理由に生じる可能性があることに留意されたい)を含むいくつかの関連する問題を理由に、この性能劣化が生じる可能性がある。
【0388】
3.固定されたハイパーパラメータ選択に対し、分類の全体的な品質は、タブー検索の実行時間を増加させるために手順が実装された後でさえ、タブー検索を使用したBSDに対してよりも、量子コンピュータを使用したBSDに対して体系的に優れていた。これに対する理由は明確ではないが、中間品質を同一にするためのタブー検索に対する実行時間を増加させることは、同等のソルバを有することと同一のことではないことに留意されたい。中間性能が同一である場合でさえ、例ごとの量子コンピュータの性能が、競合するアルゴリズムとは異なることがあることが、ベンチマーク調査から知られている。量子コンピュータは、性能強化をもたらすことがある、困難な例に対するより良好な極小詞を提供することができる。それは、量子コンピュータによって提供されるより良好な最適化が、符号化動作において優れた符号化性能を与えていることがあり、および符号化が、分類器の性能、場合によっては辞書自体よりも重要な、重要な役割を果たすことが科学文献から証明されている。
【0389】
分類精度:
ソフトウェアで実行される3つの変形は、K=512の辞書アトムを使用しており、ハードウェアバージョンは、K=502(使用される量子チップ上で利用可能な量子ビットの数に等しい)を使用している。テストセットに関する分類精度を最大化するために全ての他のハイパーパラメータを変更することによって得られる最良の結果が存在する。
【0390】
CIFAR−10上の最新型性能は、ここで使用されるよりもさらに多くの辞書アトムを必要とし、典型的には約2,000が使用される。3つのテストの目的は、最新型性能(さらに多くのアトムを必要とする)を達成することではなかったが、それらのアルゴリズムの相対的性能をテストすることであった。
【0391】
符号化効率性:
再構築がスパースである(少数のアトムが再構築に使用される)制限では、CIFAR−10、MNISTおよびスパースコーディング構成要素の自然画像データセットに対するL1正則化スパースコーディングと同一の再構築誤りを得るために、二値スパースコーディングが約半分のアトムを体系的に必要とすることが発見されている。これは、画像を表すためにアトムの使用を少なくすることができるのみでなく、重みが実数ではなく二値であるため、表現力(representational power)における実質的な改善である。実数値重みが8ビットの数字として表される場合(それにも関わらず、現在それらは64ビットの数字として記憶されているが、8ビットに切り詰めることは、再構築にさらに悪影響を与えない)、再構築された画像を表すために必要とされる情報の量は、約k*8から(k/2)に減少し、kは、再構築におけるアトムの数である。これは、それらの2つの異なるアプローチを使用して同一の再構築誤りを得るために必要とされる情報の量における一桁の削減である。
【0392】
BSDアルゴリズムは、同一の画像パッチサイズに対して同一の再構築誤りを得るために、他の変形よりも多いアトムを必要とするが、符号化されたベクトルのビット深度における削減を理由に、L1アルゴリズム上で利得を得る。
【0393】
リソース消費:
時間が著しく増加すること、および量子コンピューティングシステムへのアクセスを有するための要件を著しく犠牲にして、ハードウェアにおいてBSDを使用して同様のエンド分類性能に対するエネルギー消費の劇的な削減が発見されている。ハードウェア上のBSDに対するコストの削減は、量子コンピューティングシステム上の時間のコストにおける要因ではない。ここでは、量子コンピューティングシステムを使用することから利益が存在するため、それらの結果は有望である。それにも関わらず、より低いコストおよびさらなるプロセッサの利用可能性(実際の経過時間を減少させるための)の観点から、明白に優れた成熟性が必要とされることがあることが明らかである。
【0394】
スパースコーディングの適用、ハードウェアを使用した実行:
ハードウェアで実行するBSDアルゴリズムを使用して、一連の概念実装(POC:proof of concept)アプリケーションが実装されている。それらの全てに対し、辞書学習および符号化の両方が、量子プロセッサの502の量子ビット上で実行するBSDを使用して排他的に実行されている。前の章で説明されたテストとは異なり、BSDの性能の体系的な比較は、それらに関して行われておらず、それらのアプリケーションに特有なハイパーパラメータ上での最適化は行われていない。
【0395】
単一画像超分解能:
スパースコーディング構成要素の自然画像データセットは、各々が自然に640×480ピクセルのサイズである、5,000の画像を含む。それらの1つが選択されている。次いで、40×30ピクセルのサイズの50,000のランダムにサンプリングされた画像パッチが選択されている。「低鮮明度」バージョンの画像パッチは、高鮮明度パッチへのぼけ変換を適用することによって得られる、それらの画像パッチの各々に付加されている。それらの複合画像は、意味修復分類手順で使用される画像と同様である。
【0396】
次いで、それらの複合画像上で辞書が学習されている。辞書が学習された後、辞書の低鮮明度区画を使用して、低鮮明度バージョンの画像を再構築することができ、高鮮明度区画が修復される。
【0397】
単一画像修復および異常検出:
修復は、本明細書で説明されるシステムおよび方法で使用される能力である。このPOCに対し、単一の画像から異常な特徴を検出および除去するアプリケーションが実装されている。前の例にあるように、スパースコーディング構成要素の画像データセットから単一画像が選択されている。次いで、この画像から、40×30ピクセルのサイズの50,000のランダムにサンプリングされた画像パッチ上で辞書が学習されている。
【0398】
次いで、異常内容を生じさせる画像が修正されている。これは、赤字によって目立たなくされたカモメの画像を使用する既知の修復例と同様の考えで、画像に赤字を追加することによって行われている。
【0399】
次いで、元の画像上で学習された辞書を使用して、修正された画像が再構築されている。前の例にあるように、重複する再構築からのピクセル値が平均化される。この再構築は、学習された辞書を使用してそれを再構築することができないため、異常内容の一部の除去をするのに成功する。この手順が、異常の検出および除去の両方に使用されてもよく、画像がどの程度異常であるかを測定することを、入力画像とその再構築との間の差異を発見することによって得ることができる。これはまた、画像の異常の位置を与える。
【0400】
画像のノイズ除去:
異常検出および除去に密接に関連するアプリケーションは、画像のノイズ除去である。このPOCでは、スパースコーディング構成要素の自然画像データセットから画像が選択されており、40×30ピクセルのサイズの50,000のランダムにサンプリングされたパッチ上で辞書が学習されている。ランダムなノイズが画像に追加されており、元の画像上で学習された辞書を使用して、ノイズ画像が再構築されている。
【0401】
他の可能なアプリケーション:
量子ハードウェア上でスパースコーディングを使用して構築される、種々の他の可能なPOCが存在する。それらは、圧縮(スパースコーディングが提供する圧縮された表現を使用する)および画像における境界検出を含む。
【0402】
本明細書で説明される種々の実施形態はデータ、例えば、画像データ、音声データなどのデータの量子処理のためのシステムおよび方法を提供する。本明細書で説明される種々の実施形態では、デジタルコンピュータ(例えば、古典的またはデジタルコンピュータ400)は、量子プロセッサと相互作用するために使用されてもよい。量子プロセッサは、いくつかのプログラム可能要素を含んでもよく、量子プロセッサと相互作用することは、それらのプログラム可能要素に特定の値を割り当てることによって、特定の問題定式化および/またはプログラム可能パラメータの構成で、量子プロセッサをプログラミングすることを含んでもよい。量子プロセッサと相互作用することはまた、特定の問題への解を判定するように量子プロセッサを進化させること(例えば、断熱的量子計算および/または量子アニーリングを実行すること)、ならびに量子プロセッサから解を読み出すことを含んでもよい。
【0403】
上述した詳細な説明は、ブロック図、概略図、および例の使用を介してデバイスおよび/または処理の種々の実施形態を示す。ブロック図、概略図、および例自体が1つ以上の機能および/または動作を含む限り、そのようなブロック図、フローチャート、または例の中の各機能および/または動作を、広範囲のハードウェア、ソフトウェア、ファームウェア、またはそれらの実質的に任意の組み合わせによって、個々におよび/または集合的に実装することができることを当業者は理解するであろう。一実施形態では、本主題は、特定用途向け集積回路(ASIC)を介して実装されてもよい。しかしながら、当業者は、本明細書で開示される実施形態が、全体として、または部分的に、1つ以上のコンピュータ上で実行する1つ以上のコンピュータプログラムとして(例えば、1つ以上のコンピュータシステム上で実行する1つ以上のプログラム)、1つ以上のコントローラ(例えば、マイクロコントローラ)上で実行する1つ以上のプログラムとして、1つ以上のプロセッサ(例えば、マイクロプロセッサ)上で実行する1つ以上のプログラムとして、ファームウェアとして、またはそれらの実質的に任意の組み合わせとして、標準集積回路で実装されてもよく、回路を設計し、ならびに/またはソフトウェアおよび/もしくはファームウェアに対するコードを記述することは、本開示を考慮して、当技術分野における通常の知識の範囲で良好になされることを当業者は認識するであろう。
【0404】
当業者は、本明細書で示される方法またはアルゴリズムの多くが、追加の動作を愛用してもよく、いくつかの動作を省略してもよく、および/または指定されるのと異なる順序で動作を実行してもよいことを認識するであろう。
【0405】
加えて、当業者は、本明細書で教示される機構が、種々の形式であるプログラム製品として頒布されることが可能であり、例示的な実施形態は、頒布を実際に実行するために使用される媒体を有する特定のタイプの非一時的信号に関わらず、等しく適用することを理解するであろう。媒体を有する非一時的信号の例は、フロッピーディスク、ハードディスクドライブ、CD ROM、デジタルテープ、およびコンピュータメモリなどの記憶可能なタイプの媒体を含むが、それらに限定されない。
【0406】
上記説明された種々の実施形態は、さらなる実施形態を提供するために組み合わされてもよい。本明細書における特定の教示および定義との一致する程度で、米国特許、米国特許出願公開、米国特許出願、外国の特許、および外国の特許出願の全ては、本明細書において参照されており、ならびに/または出願データシートでリスト化されており、それらは、本明細書においてその全体が参照によって組み込まれている、2013年6月28日に出願された米国仮特許出願第61/841,129号明細書、および2013年9月3日に出願された米国仮特許出願第61/873,303号明細書を含むが、それらに限定されない。実施形態の態様は、必要に応じて、システム、回路ならびに種々の特許、出願および公開の概念を採用して、さらなる実施形態を提供するように修正されてもよい。
【0407】
上記詳細な説明を考慮して実施形態に対する上記および他の変更形態がなされてもよい。概して、以下の特許請求の範囲では、使用される用語は、本明細書および特許請求の範囲で開示される特定の実施形態に特許請求の範囲を限定するものと解釈されるべきではなく、そのような特許請求の範囲に付与される均等物の全範囲に従って、全ての考えられる実施形態を含むものと解釈されるべきである。したがって、特許請求の範囲は本開示によって限定されない。