(57)【特許請求の範囲】
【請求項１】
階層型深層学習（ＨＤＬ）によってデータにおける最大限の繰り返しパターンを識別するための量子プロセッサを使用する方法であって、
非量子プロセッサにおいてデータ要素のデータセットを受信するステップと、
前記非量子プロセッサによって前記データセットに基づいて目的関数を定式化するステップであって、前記目的関数は、前記データセットの第１の表現と前記データセットの第２の表現との間の差を最小化する損失項を含み、および前記目的関数における任意の複雑度を最小化する正則化項を含む、ステップと、
前記非量子プロセッサを使用して前記目的関数における第１の組の重みを変数として型変換するステップと、
前記非量子プロセッサを使用して前記目的関数の辞書に対する第１の組の値を設定するステップであって、前記辞書に対する前記第１の組の値は、各々が前記量子プロセッサにおける量子ビットに対応するベクトルを定義するいくつかの列を有する実数値の行列を含み、前記量子プロセッサにおける連結されていない量子ビットに対応する前記ベクトルのいずれかは、相互に直交する、ステップと、
前記目的関数を最小化するために、前記非量子プロセッサによって、前記量子プロセッサと相互作用するステップと
を含む、方法。
【請求項２】
目的関数を定式化するステップは、前記正則化項がＬ０ノルム形式によって規制される前記目的関数を定式化するステップを含む、請求項１に記載の方法。
【請求項３】
目的関数を定式化するステップは、前記正則化項がＬ１ノルム形式によって規制される前記目的関数を定式化するステップを含む、請求項１に記載の方法。
【請求項４】
前記正則化項は、正則化パラメータを含み、および目的関数を定式化するステップは、前記目的関数のスパーシティを制御する前記正則化パラメータに対する値を選択するステップを含む、請求項１に記載の方法。
【請求項５】
非量子プロセッサにおいてデータ要素のデータセットを受信するステップは、画像データおよび音声データを受信するステップを含む、請求項１に記載の方法。
【請求項６】
前記目的関数を最小化するために、前記非量子プロセッサによって、前記量子プロセッサと相互作用するステップは、前記辞書に対する前記第１の組の値に基づいて、前記目的関数における前記重みに対する前記第１の組の値の前記目的関数を最適化するステップを含む、請求項１に記載の方法。
【請求項７】
前記重みに対する第１の組の値の前記目的関数を最適化するステップは、前記目的関数を第１の二次制約なし二値最適化（「ＱＵＢＯ」）問題にマッピングし、および前記第１のＱＵＢＯ問題を少なくともおおよそ最小化するために前記量子プロセッサを使用するステップを含み、前記第１のＱＵＢＯ問題を少なくともおおよそ最小化するために前記量子プロセッサを使用するステップは、断熱的量子計算または量子アニーリングのうちの少なくとも１つを実行するために前記量子プロセッサを使用するステップを含む、請求項６に記載の方法。
【請求項８】
前記目的関数を最小化するために、前記非量子プロセッサによって、前記量子プロセッサと相互作用するステップはさらに、前記辞書に対する第２の組の値に基づいて、前記重みに対する第２の組の値の前記目的関数を最適化するステップを含み、前記重みに対する第２の組の値の前記目的関数を最適化するステップは、前記目的関数を第２のＱＵＢＯ問題にマッピングし、および前記第２のＱＵＢＯ問題を少なくともおおよそ最小化するために前記量子プロセッサを使用するステップを含む、請求項６に記載の方法。
【請求項９】
前記目的関数を最小化するために、前記非量子プロセッサによって、前記量子プロセッサと相互作用するステップはさらに、前記重みに対する前記第１の組の値に基づいて、前記辞書に対する第２の組の値の前記目的関数を最適化するステップを含み、前記辞書に対する第２の組の値の前記目的関数を最適化するステップは、前記辞書に対する前記値の少なくとも一部を更新するために前記非量子プロセッサを使用するステップを含む、請求項６に記載の方法。
【請求項１０】
前記目的関数を最小化するために、前記非量子プロセッサによって、前記量子プロセッサと相互作用するステップはさらに、前記重みに対する前記第２の組の値に基づいて、前記辞書に対する第３の組の値の前記目的関数を最適化するステップを含み、前記辞書に対する第３の組の値の前記目的関数を最適化するステップは、前記辞書に対する前記値の少なくとも一部を更新するために前記非量子プロセッサを使用するステップを含む、請求項９に記載の方法。
【請求項１１】
前記重みに対するｔ番目の組の値の前記目的関数を最適化するステップであって、ｔは、前記辞書に対する前記第３の組の値に基づく、２より大きい整数であり、前記重みに対するｔ番目の組の値の前記目的関数を最適化するステップは、前記目的関数をｔ番目のＱＵＢＯ問題にマッピングし、および前記ｔ番目のＱＵＢＯ問題を少なくともおおよそ最小化するために前記量子プロセッサを使用するステップを含む、ステップと、
前記重みに対する前記ｔ番目の組の値に基づいて、前記辞書に対する（ｔ＋１）番目の組の値の前記目的関数を最適化するステップであって、前記辞書に対する（ｔ＋１）番目の組の値の前記目的関数を最適化するステップは、前記辞書に対する前記値の少なくとも一部を更新するために前記非量子プロセッサを使用するステップを含む、ステップと
をさらに含む、請求項１０に記載の方法。
【請求項１２】
前記辞書に対する前記（ｔ＋１）番目の組の値に基づいて、前記重みに対する（ｔ＋１）番目の組の値の前記目的関数を最適化するステップをさらに含み、前記重みに対する（ｔ＋１）番目の組の値の前記目的関数を最適化するステップは、前記目的関数を（ｔ＋１）番目のＱＵＢＯ問題にマッピングし、および前記（ｔ＋１）番目のＱＵＢＯ問題を少なくともおおよそ最小化するために前記量子プロセッサを使用するステップを含む、請求項１１に記載の方法。
【請求項１３】
前記重みに対する前記ｔ番目の組の値に基づいて、前記辞書に対する（ｔ＋１）番目の組の値の前記目的関数を最適化するステップ、および前記辞書に対する前記（ｔ＋１）番目の組の値に基づいて、前記重みに対する（ｔ＋１）番目の組の値の前記目的関数を最適化するステップは、少なくとも１つの解判定基準が満たされるまで、ｔの増分値にわたり繰り返される、請求項１１に記載の方法。
【請求項１４】
前記少なくとも１つの解判定基準は、前記重みに対する前記値の組の収束、または前記辞書に対する前記値の組の収束のいずれかを含む、請求項１３に記載の方法。
【請求項１５】
前記目的関数を最小化することは、学習問題における特徴を生成することを含む、請求項１に記載の方法。
【請求項１６】
学習問題における特徴を生成することは、パターン認識問題、人工ニューラルネットワーク問題のトレーニング、ならびにソフトウェア証明および検証問題のうちの少なくとも１つにおける特徴を生成することを含む、請求項１５に記載の方法。
【請求項１７】
学習問題における特徴を生成することは、機械学習問題または人工知能の適用のうちの少なくとも１つにおける特徴を生成することを含む、請求項１５に記載の方法。
【請求項１８】
前記目的関数を最小化することは、スパース最小二乗問題を解決することを含む、請求項１に記載の方法。
【請求項１９】
前記目的関数の前記辞書に対する第１の組の値を設定するステップは、
実数値の行列を生成するステップであって、前記行列の各エントリが正数と負数との間の乱数である、ステップと、
各列に対するノルムが１に対して等しいように前記行列の各列を再正規化するステップと、
前記行列の各列に対し、
前記列のゼロ空間を計算するステップと、
前記列を、前記列のゼロ空間基底にあるランダムエントリの列と置き換えるステップと
を含む、請求項１に記載の方法。
【請求項２０】
前記非量子プロセッサを使用して前記目的関数における第１の組の重みを変数として型変換するステップは、前記非量子プロセッサを使用して第１の組の重みをブール変数として型変換するステップを含む、請求項１に記載の方法。
【請求項２１】
少なくとも１つのラベル要素からなる少なくとも１つのラベルを前記データセットに組み込むステップをさらに含み、前記少なくとも１つのラベルは、少なくとも抽象的レベルで前記データセットにおいて表される対象を論理的に識別するラベル情報、または前記データの組において表される前記対象が属するカテゴリを表す、請求項１に記載の方法。
【請求項２２】
少なくとも１つのラベルを組み込むステップは、前記データセットにおいて表される前記対象を、定義された組の人間に属する英数字、自動車の製造および／もしくはモデル、定義された組の物体、定義された外部もしくは被疑物体、または解剖学的特徴のタイプのうちの少なくとも１つとして論理的に識別するラベル情報を表す少なくとも１つのラベルを組み込むステップを含む、請求項２１に記載の方法。
【請求項２３】
少なくとも１つのラベルを組み込むステップは、ラベル情報を表す少なくとも１つのラベルを組み込むステップを含み、および前記ラベル情報は、対応するデータ要素と同一のタイプである、請求項２１に記載の方法。
【請求項２４】
非量子プロセッサにおいてデータ要素のデータセットを受信するステップは、画像データとして表されるデータセットを受信するステップを含み、前記組み込まれた少なくとも１つのラベル要素は、画像データを含む、請求項２１に記載の方法。
【請求項２５】
少なくとも１つのラベル要素からなる少なくとも１つのラベルを前記データセットに組み込むステップは、少なくとも１つのラベル要素からなる少なくとも１つのラベルを組み込むステップを含み、前記少なくとも１つのラベル要素は、画像データを含み、および前記ラベル要素の空間位置は、前記ラベル情報を少なくとも部分的に符号化する、請求項２４に記載の方法。
【請求項２６】
目的関数を定式化するステップは、前記データセットおよび前記組み込まれた少なくとも１つのラベルの両方に基づいて、目的関数を定式化するステップを含む、請求項２１に記載の方法。
【請求項２７】
非量子プロセッサにおいてデータ要素のデータセットを受信するステップは、異なるタイプまたはフォーマットのデータとして表されるデータセットを受信するステップを含む、請求項１に記載の方法。
【請求項２８】
前記目的関数は、
【数１】
0006465876.tif 000146
の形式である、請求項１に記載の方法。
【請求項２９】
階層型深層学習（ＨＤＬ）によってデータにおける最大限の繰り返しパターンを識別するシステムであって、
量子プロセッサと、
前記量子プロセッサと通信可能に結合されたデジタルプロセッサと、
プロセッサ可読記憶媒体であって、
非量子プロセッサにおいてデータ要素のデータセットを受信することと、
前記非量子プロセッサによって前記データセットに基づいて目的関数を定式化することであって、前記目的関数は、前記データセットの第１の表現と前記データセットの第２の表現との間の差を最小化する損失項を含み、および前記目的関数における任意の複雑度を最小化する正則化項を含む、定式化することと、
前記非量子プロセッサを使用して前記目的関数における第１の組の重みを変数として型変換することと、
前記非量子プロセッサを使用して前記目的関数の辞書に対する第１の組の値を設定することであって、前記辞書に対する前記第１の組の値は、各々が前記量子プロセッサにおける量子ビットに対応するベクトルを定義するいくつかの列を有する実数値の行列を含み、前記量子プロセッサにおける連結されていない量子ビットに対応する前記ベクトルのいずれかは、相互に直交する、設定することと、
前記目的関数を最小化するために、前記非量子プロセッサによって、前記量子プロセッサと相互作用することと
を行うためのプロセッサ実行可能命令を含むプロセッサ可読記憶媒体と
を含む、システム。
【請求項３０】
階層型深層学習（ＨＤＬ）によって、データにおける最大限の繰り返しパターンを識別する方法であって、
デジタルプロセッサにおいてラベル付けされたデータ要素のラベル付けされたデータセットを受信するステップであって、少なくとも１つのラベルを組み込む、各々のラベル付けされたデータ要素は、少なくとも１つのラベル要素からなる、ステップと、
前記デジタルプロセッサによって、前記ラベル付けされたデータセットに基づいて目的関数を定式化するステップと、
前記デジタルプロセッサを使用して、前記目的関数における重みの組をブール変数として型変換し、
前記デジタルプロセッサを使用して、辞書に対する第１の組の値を設定し、および
前記辞書に対する前記第１の組の値に基づいて、ブール重みに対する第１の組の値の前記目的関数を最適化する
ことによって、前記目的関数を最小化するために前記デジタルプロセッサによって、量子プロセッサと相互作用するステップと
を含む、方法。
【請求項３１】
前記ブール重みに対する第１の組の値の前記目的関数を最適化するステップは、前記目的関数を第１の二次制約なし二値最適化（「ＱＵＢＯ」）問題にマッピングし、および前記第１のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップを含み、前記第１のＱＵＢＯ問題を少なくともおおよそ最小化するために前記量子プロセッサを使用するステップは、断熱的量子計算または量子アニーリングのうちの少なくとも１つを実行するために前記量子プロセッサを使用するステップを含む、請求項３０に記載の方法。
【請求項３２】
前記ブール重みに対する前記第１の組の値に基づいて、前記辞書に対する第２の組の値の前記目的関数を最適化するステップをさらに含み、前記辞書に対する第２の組の値の前記目的関数を最適化するステップは、前記辞書に対する前記値の少なくとも一部を更新するために前記デジタルプロセッサを使用するステップを含む、請求項３１に記載の方法。
【請求項３３】
前記辞書に対する前記第２の組の値に基づいて、前記ブール重みに対する第２の組の値の前記目的関数を最適化するステップをさらに含み、前記ブール重みに対する第２の組の値の前記目的関数を最適化するステップは、前記目的関数を第２のＱＵＢＯ問題にマッピングし、および前記第２のＱＵＢＯ問題を少なくともおおよそ最小化するために前記量子プロセッサを使用するステップを含む、請求項３２に記載の方法。
【請求項３４】
前記ブール重みに対する前記第２の組の値に基づいて、前記辞書に対する第３の組の値の前記目的関数を最適化するステップをさらに含み、前記辞書に対する第３の組の値の前記目的関数を最適化するステップは、前記辞書に対する前記値の少なくとも一部を更新するために前記デジタルプロセッサを使用するステップを含む、請求項３３に記載の方法。
【請求項３５】
非量子プロセッサにおいてデータ要素のデータセットを受信することと、
前記非量子プロセッサによって前記データセットに基づいて目的関数を定式化することであって、前記目的関数は、前記データセットの第１の表現と前記データセットの第２の表現との間の差を最小化する損失項を含み、および前記目的関数における任意の複雑度を最小化する正則化項を含む、定式化することと、
前記非量子プロセッサを使用して、前記目的関数における第１の組の重みを変数として型変換することと、
前記非量子プロセッサを使用して前記目的関数の辞書に対する第１の組の値を設定することであって、前記辞書に対する前記第１の組の値は、各々が量子プロセッサにおける量子ビットに対応するベクトルを定義するいくつかの列を有する実数値の行列を含み、前記量子プロセッサにおける連結されていない量子ビットに対応する前記ベクトルのいずれかは、相互に直交する、設定することと、
前記目的関数を最小化するために、前記非量子プロセッサによって、前記量子プロセッサと相互作用することと
を行うためのプロセッサ実行可能命令を含む、プロセッサ可読記憶媒体。
【請求項３６】
階層型深層学習（ＨＤＬ）によってデータにおける最大限の繰り返しパターンを識別するために量子プロセッサを使用する方法であって、
非量子プロセッサにおいてデータ要素のデータセットを受信するステップと、
データ要素の前記データセットを事前処理して、事前処理されたデータセットを生成するステップと、
前記非量子プロセッサによって、前記事前処理されたデータセットに基づいて目的関数を定式化するステップであって、前記目的関数は、前記事前処理されたデータセットの第１の表現と前記事前処理されたデータセットの第２の表現との間の差を最小化する損失項を含み、および前記目的関数における任意の複雑度を最小化する正則化項を含む、ステップと、
前記非量子プロセッサを使用して前記目的関数における第１の組の重みを変数として型変換するステップと、
前記非量子プロセッサを使用して前記目的関数の辞書に対する第１の組の値を設定するステップであって、前記辞書に対する前記第１の組の値は、前記目的関数が前記量子プロセッサの連結構造と一致するように制約される、ステップと、
前記目的関数を最小化するために、前記非量子プロセッサによって、前記量子プロセッサと相互作用するステップと、
を含む、方法。
【請求項３７】
データ要素の前記データセットは、画像データ要素の画像データセットを含み、およびデータ要素の前記データセットを事前処理するステップは、前記画像データセットの前記画像データ要素のコントラストまたは輝度のうちの少なくとも１つを正規化するステップを含む、請求項３６に記載の方法。
【請求項３８】
データ要素の前記データセットを事前処理するステップは、前記画像データセットの前記正規化された画像データ要素をホワイトニングするステップを含む、請求項３７に記載の方法。
【請求項３９】
前記画像データセットの前記正規化された画像データ要素をホワイトニングするステップは、零相成分分析（ＺＣＡ）ホワイトニングを前記画像データセットの前記正規化されたデータ要素に適用するステップを含む、請求項３８に記載の方法。
【請求項４０】
データ要素の前記データセットを事前処理するステップは、前記画像データセットの前記正規化された画像データ要素の次元を削減するステップを含む、請求項３７に記載の方法。
【請求項４１】
前記画像データセットの前記正規化された画像データ要素の次元を削減するステップは、主成分分析（ＰＣＡ）を前記画像データセットの前記正規化されたデータ要素に適用するステップを含む、請求項４０に記載の方法。
【請求項４２】
データ要素の前記データセットを事前処理するステップは、前記画像データセットの前記正規化された画像データ要素の次元を削減するステップと、前記画像データセットの前記正規化された画像データ要素をホワイトニングするステップとを含む、請求項３７に記載の方法。
【請求項４３】
データ要素の前記データセットは、画像データ要素の画像データセットを含み、前記方法は、前記画像データ要素の各々を１つ以上の分解領域に区分化するステップをさらに含む、請求項３６に記載の方法。
【請求項４４】
前記非量子プロセッサによって、区分特性を示す区分化パラメータを受信するステップをさらに含み、前記画像データ要素の各々を１つ以上の分解領域に区分化する前記ステップは、前記受信された区分化パラメータに少なくとも部分的に基づく、請求項４３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概して、データ分析、例えば、量子プロセッサを使用した教師なしまたは半教師あり特徴学習に関する。
【背景技術】
【０００２】
超伝導量子ビット
量子コンピュータでの使用において検討されている多くの異なるハードウェアおよびソフトウェアアプローチが存在する。１つのハードウェアのアプローチは、超伝導量子ビットを定めるための、アルミニウムおよび／またはニオビウムなどの超伝導体からなる集積回路を採用する。情報を符号化するために使用される物理的特性に応じて、超伝導量子ビットをいくつかのカテゴリに分離することができる。例えば、それらは、電荷素子、磁束素子および相素子に分離されることがある。電荷素子は、素子の荷電状態で情報を記憶および操作し、磁束素子は、素子の一部を通じて磁束に関連した可変状態で情報を記憶および操作し、および相素子は、相素子の２つの領域の間の超伝導相の差に関連した可変状態で情報を記憶および操作する。
【０００３】
当技術分野では、多くの異なる形式の超伝導磁束量子ビットが実装されてきたが、全ての成功した実装形態は概して、少なくとも１つのジョセフソン接合によって遮断される超伝導ループ（すなわち、「量子ビットループ」）を含む。一部の実施形態は、直接または並列（すなわち、複合ジョセフソン接合）のいずれかで接続された複数のジョセフソン接合を実装し、および一部の実施形態は、複数の超伝導ループを実装する。
【０００４】
量子プロセッサ
量子プロセッサは、超伝導量子プロセッサの形式をとることがある。超伝導量子プロセッサは、いくつかの量子ビットおよび関連する局所バイアス素子、例えば、２つ以上の超伝導量子ビットを含むことがある。超伝導量子プロセッサはまた、量子ビットの間で通信結合を提供する結合素子（すなわち、「カプラ」）を採用することがある。本方法と共に使用することができる例示的な量子プロセッサの更なる詳細および実施形態は、米国特許第７，５３３，０６８号明細書、米国特許第８，００８，９４２号明細書、米国特許出願公開第２００８−０１７６７５０号明細書、米国特許出願公開第２００９−０１２１２１５号明細書、およびＰＣＴ特許出願公開国際公開第２００９−１２０６３８号パンフレット（ここでは、米国特許出願公開第２０１１−００２２８２０号明細書）において説明される。
【０００５】
断熱的量子計算
断熱的量子計算は一般的に、ハミルトニアンを徐々に変化させることによって、既知の初期ハミルトニアン（その固有値がシステムの許容エネルギーである演算子であるハミルトニアン）から最終ハミルトニアンにシステムを進化させることを含む。断熱的進化の簡単な例は、
Ｈｅ＝（１−ｓ）Ｈｉ＋ｓＨｆ
であり、ここで、Ｈｉは初期ハミルトニアンであり、Ｈｆは最終ハミルトニアンであり、Ｈｅは進化または瞬時ハミルトニアンであり、およびｓは、進化の速度を制御する進化係数である。システムが進化するにつれ、ｓ係数ｓが０から１になり、それによって、最初に（すなわち、ｓ＝０）進化ハミルトニアンＨｅが初期ハミルトニアンＨｉと等しく、最後に（すなわち、ｓ＝１）進化ハミルトニアンＨｅが最終ハミルトニアンＨｆと等しい。進化が始まる前、システムは一般的に、初期ハミルトニアンＨｉの基底状態で初期化され、および目標は、システムが進化の最後に最終ハミルトニアンＨｆの基底状態になる方法でシステムを進化させることである。進化が非常に高速である場合、第１の励起状態などのより高いエネルギー状態にシステムを励起することができる。本方法では、「断熱的」進化は、断熱的条件
【数１】
0006465876.tif 000002
を満たす進化であるとみなされ、ここで、
【数２】
0006465876.tif 000003
は、ｓの時間導関数であり、ｇ（ｓ）は、ｓに応じたシステムの基底状態と第１の励起状態との間の差（本明細書では「ギャップサイズ」とも称される）であり、およびδは、１よりも大幅に低い係数である。
【０００６】
断熱的量子計算における進化処理は時に、アニーリングと称されることがある。進化またはアニーリングスケジュールと時に称されるｓが変化する速度は、通常、システムが進化の間に常に進化ハミルトニアンの瞬時基底状態にあり、および反交差（ａｎｔｉ−ｃｒｏｓｓｉｎｇｓ）における遷移（すなわち、ギャップサイズが最小であるとき）が回避されるのに十分に低速である。断熱的量子コンピューティングシステム、方法、および装置に関するさらなる詳細は、米国特許第７，１３５，７０１号明細書および米国特許第７，４１８，２８３号明細書において説明される。
【０００７】
量子アニーリング
量子アニーリングは、システムの低エネルギー状態、一般的に好ましくは基底状態を発見するのに使用することができる計算方法である。古典的アニーリングと同様の概念では、方法は、低エネルギー状態がより安定しているため、自然システムが低エネルギー状態に向かう傾向にある基本原理に依存する。しかしながら、古典的アニーリングは、システムをその全体的エネルギー最小に案内する古典的熱変動を使用し、量子アニーリングは、全体的エネルギー最小に古典的アニーリングよりもより正確かつより迅速に到達するために、量子トンネリングなどの量子効果を使用することがある。組み合わせ最適化問題などの難題への解が、システムハミルトニアンの基底状態において符号化されることがあり、したがって、そのような難題への解を発見するために量子アニーリングが使用されることがあることが知られている。断熱的量子計算は、理想的にシステムが断熱的進化を通じてその基底状態において開始し、およびその基底状態に残る量子アニーリングの特殊なケースである。よって、当業者は、量子アニーリング方法が概して、断熱的量子コンピュータ上で実装されてもよく、逆もまたそうであることを理解するであろう。本明細書および添付の特許請求の範囲の全体を通じて、量子アニーリングに対するいずれかの言及は、文脈上他の意味に解すべき場合を除き、断熱的量子計算を包含することが意図される。
【０００８】
量子アニーリングは、アニーリング処理の間の無秩序の源として量子メカニズムを使用するアルゴリズムである。最適化問題は、ハミルトニアンＨＰにおいて符号化され、およびアルゴリズムは、ＨＰとやり取りしない無秩序化ハミルトニアン（ｄｉｓｏｒｄｅｒｉｎｇ  Ｈａｍｉｌｔｏｎｉａｎ）ＨＤを追加することによって、強い量子変動を生じさせる。例示的なケースは、
ＨＥ＝ＨＰ＋ΓＨＤ
であり、ここで、Γは、進化の間、大きい値から実質的にゼロに変化し、ＨＥは、上記断熱的量子計算に関連して説明されたＨｅと同様の進化ハミルトニアンとして考えられることがある。ＨＤを取り除くことによって（すなわち、Γを減少させることによって）無秩序が低速に取り除かれる。よって、量子アニーリングは、システムが初期ハミルトニアンで開始し、および進化ハミルトニアンを通じて最終「問題」ハミルトニアンＨＰに進化し、その基底状態が問題への解を符号化するという点で、断熱的量子計算と同様である。進化が十分に低速な場合、システムは一般的に、厳密解に近い局所的最小に落ち着くことになる。計算の性能は、残余エネルギー（目的関数を使用した厳密解からの距離）対進化時間を介して評価されることがある。計算時間は、いくつかの許容閾値未満の残余エネルギーを生成するのに必要とされる時間である。量子アニーリングでは、ＨＰは、最適化問題を符号化することがあり、したがって、ＨＰは、解を符号化する量子ビットの部分空間において対角であることがあるが、システムは必ずしも常に基底状態にない。ＨＰのエネルギー景観（ｅｎｅｒｇｙ  ｌａｎｄｓｃａｐｅ）は、その全体的最小が、解決されることになる問題に対する回答であり、および低位局所的最小（ｌｏｗ−ｌｙｉｎｇ  ｌｏｃａｌ  ｍｉｎｉｍａ）が良好な近似となるように作られることがある。
【０００９】
量子アニーリングにおけるΓの段階的な減少は、アニーリングスケジュールとして知られる定義されたスケジュールに従うことがある。進化の全体を通じてシステムがその基底状態において開始し、およびその基底状態に残る古典的な形式の断熱的量子計算とは異なり、量子アニーリングでは、システムは、全アニーリングスケジュールの全体を通じてその基底状態に残らないことがある。このようにして、量子アニーリングは、発見的方法として実装されることがあり、そこでは、基底状態のエネルギーに近いエネルギーを有する低エネルギー状態が、問題への近似解を提供することがある。
【００１０】
二次制約なし二値最適化問題
二次制約なし二値最適化（「ＱＵＢＯ」：ｑｕａｄｒａｔｉｃ  ｕｎｃｏｎｓｔｒａｉｎｅｄ  ｂｉｎａｒｙ  ｏｐｔｉｍｉｚａｔｉｏｎ）問題は、式
【数３】
0006465876.tif 000004
の目的関数を最小化するＮの二値変数｛ｘｉ｝の組を発見することを含む離散最適化問題の形式であり、Ｑは一般的に、研究されている特定の問題例に典型的な実数上三角行列（ｒｅａｌ−ｖａｌｕｅｄ  ｕｐｐｅｒ  ｔｒｉａｎｇｕｌａｒ  ｍａｔｒｉｘ）である。ＱＵＢＯ問題は当技術分野で既知であり、および応用例が、多くの異なる分野、例えば、多少の例を挙げると、機械学習、パターンマッチング、経済および財務、ならびに統計力学において存在する。
【発明の概要】
【課題を解決するための手段】
【００１１】
階層型深層学習（ＨＤＬ）によってデータにおける最大限の繰り返しパターンを識別するための量子プロセッサを使用する方法が要約され、方法は、非量子プロセッサにおいてデータ要素のデータセットを受信するステップと、非量子プロセッサによってデータセットに基づいて目的関数を定式化するステップであって、目的関数は、データセットの第１の表現とデータセットの第２の表現との間の差を最小化する損失項を含み、および目的関数における任意の複雑度を最小化する正則化項を含む、ステップと、非量子プロセッサを使用して目的関数における第１の組の重みを変数として型変換する（ｃａｓｔ）ステップと、非量子プロセッサを使用して目的関数の辞書に対する第１の組の値を設定するステップであって、辞書に対する第１の組の値は、各々が量子プロセッサにおける量子ビットに対応するベクトルを定義するいくつかの列を有する実数値の行列を含み、量子プロセッサにおける接続されていない量子ビットに対応するベクトルのいずれかは、相互に直交する、ステップと、目的関数を最小化するために、非量子プロセッサによって、量子プロセッサと相互作用するステップとを含む。目的関数を定式化するステップは、正則化項がＬ０ノルム形式によって規制される目的関数を定式化するステップを含んでもよい。目的関数を定式化するステップは、正則化項がＬ１ノルム形式によって規制される目的関数を定式化するステップを含んでもよい。正則化項は、正則化パラメータを含んでもよく、および目的関数を定式化するステップは、目的関数のスパーシティ（ｓｐａｒｓｉｔｙ）を制御する正則化パラメータに対する値を選択するステップを含んでもよい。非量子プロセッサにおいてデータ要素のデータセットを受信するステップは、画像データおよび音声データを受信するステップを含んでもよい。
【００１２】
目的関数を最小化するために、非量子プロセッサによって、量子プロセッサと相互作用するステップはさらに、辞書に対する第１の組の値に基づいて、目的関数における重みに対する第１の組の値の目的関数を最適化するステップを含んでもよい。重みに対する第１の組の値の目的関数を最適化するステップは、目的関数を第１の二次制約なし二値最適化（「ＱＵＢＯ」）問題にマッピングし、および第１のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップを含んでもよく、第１のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップは、断熱的量子計算または量子アニーリングのうちの少なくとも１つを実行するために量子プロセッサを使用するステップを含んでもよい。
【００１３】
目的関数を最小化するために、非量子プロセッサによって、量子プロセッサと相互作用するステップはさらに、辞書に対する第２の組の値に基づいて、重みに対する第２の組の値の目的関数を最適化するステップを含んでもよく、重みに対する第２の組の値の目的関数を最適化するステップは、目的関数を第２のＱＵＢＯ問題にマッピングし、および第２のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップを含む。
【００１４】
目的関数を最小化するために、非量子プロセッサによって、量子プロセッサと相互作用するステップはさらに、重みに対する第１の組の値に基づいて、辞書に対する第２の組の値の目的関数を最適化するステップを含んでもよく、辞書に対する第２の組の値の目的関数を最適化するステップは、辞書に対する値の少なくとも一部を更新するために非量子プロセッサを使用するステップを含む。
【００１５】
目的関数を最小化するために、非量子プロセッサによって、量子プロセッサと相互作用するステップはさらに、重みに対する第２の組の値に基づいて、辞書に対する第３の組の値の目的関数を最適化するステップを含んでもよく、辞書に対する第３の組の値の目的関数を最適化するステップは、辞書に対する値の少なくとも一部を更新するために非量子プロセッサを使用するステップを含む。
【００１６】
方法は、重みに対するｔ番目の組の値の目的関数を最適化するステップであって、ｔは、辞書に対する第３の組の値に基づく、２より大きい整数であり、重みに対するｔ番目の組の値の目的関数を最適化するステップは、目的関数をｔ番目のＱＵＢＯ問題にマッピングし、およびｔ番目のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップを含む、ステップと、重みに対するｔ番目の組の値に基づいて、辞書に対する（ｔ＋１）番目の組の値の目的関数を最適化するステップであって、辞書に対する（ｔ＋１）番目の組の値の目的関数を最適化するステップは、辞書に対する値の少なくとも一部を更新するために非量子プロセッサを使用するステップを含む、ステップとをさらに含んでもよい。
【００１７】
方法は、辞書に対する（ｔ＋１）番目の組の値に基づいて、重みに対する（ｔ＋１）番目の組の値の目的関数を最適化するステップをさらに含んでもよく、重みに対する（ｔ＋１）番目の組の値の目的関数を最適化するステップは、目的関数を（ｔ＋１）番目のＱＵＢＯ問題にマッピングし、および（ｔ＋１）番目のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップを含む。重みに対するｔ番目の組の値に基づいて、辞書に対する（ｔ＋１）番目の組の値の目的関数を最適化するステップ、および辞書に対する（ｔ＋１）番目の組の値に基づいて、重みに対する（ｔ＋１）番目の組の値の目的関数を最適化するステップは、少なくとも１つの解判定基準が満たされるまで、ｔの増分値にわたり繰り返されてもよい。少なくとも１つの解判定基準は、重みに対する値の組の収束（ｃｏｎｖｅｒｇｅｎｃｅ）、または辞書に対する値の組の収束のいずれかを含んでもよい。目的関数を最小化することは、学習問題における特徴を生成することを含んでもよい。学習問題における特徴を生成することは、パターン認識問題、人工ニューラルネットワーク問題のトレーニング、ならびにソフトウェア証明および検証問題のうちの少なくとも１つにおける特徴を生成することを含んでもよい。学習問題における特徴を生成することは、機械学習問題または人工知能の適用のうちの少なくとも１つにおける特徴を生成することを含んでもよい。目的関数を最小化することは、スパース最小二乗問題を解決することを含んでもよい。
【００１８】
目的関数の辞書に対する第１の組の値を設定するステップはさらに、実数値の行列を生成するステップであって、行列の各エントリが正数と負数との間の乱数である、ステップと、各列に対するノルムが１に対して等しいように行列の各列を再正規化するステップと、行列の各列に対し、列のゼロ空間を計算するステップと、列を、列のゼロ空間基底にあるランダムエントリの列と置き換えるステップとを含んでもよい。非量子プロセッサを使用して目的関数における第１の組の重みを変数として型変換するステップは、非量子プロセッサを使用して第１の組の重みをブール変数として型変換するステップを含んでもよい。
【００１９】
方法は、少なくとも１つのラベル要素からなる少なくとも１つのラベルをデータセットに組み込むステップをさらに含んでもよく、少なくとも１つのラベルは、少なくとも抽象的レベルでデータセットにおいて表される対象（ｓｕｂｊｅｃｔ）を論理的に識別するラベル情報、またはデータの組において表される対象が属するカテゴリを表す。少なくとも１つのラベルをデータセットに組み込むステップは、データセットにおいて表される対象を、定義された組の人間に属する英数字、自動車の製造および／もしくはモデル、定義された組の物体（ｏｂｊｅｃｔｓ）、定義された外部もしくは被疑物体、または解剖学的特徴のタイプのうちの少なくとも１つとして論理的に識別するラベル情報を表す少なくとも１つのラベルを組み込むステップを含んでもよい。少なくとも１つのラベルを組み込むステップは、ラベル情報を表す少なくとも１つのラベルを組み込むステップを含んでもよく、およびラベル情報は、対応するデータ要素と同一のタイプであってもよい。非量子プロセッサにおいてデータ要素のデータセットを受信するステップは、画像データとして表されるデータセットを受信するステップを含んでもよく、組み込まれた少なくとも１つのラベル要素は、画像データを含んでもよい。少なくとも１つのラベル要素からなる少なくとも１つのラベルをデータセットに組み込むステップは、少なくとも１つのラベル要素からなる少なくとも１つのラベルを組み込むステップを含んでもよく、少なくとも１つのラベル要素は、画像データを含み、およびラベル要素の空間位置は、ラベル情報を少なくとも部分的に符号化してもよい。目的関数を定式化するステップは、データセットおよび組み込まれた少なくとも１つのラベルの両方に基づいて、目的関数を定式化するステップを含んでもよい。非量子プロセッサにおいてデータ要素のデータセットを受信するステップは、異なるタイプまたはフォーマットのデータとして表されるデータセットを受信するステップを含んでもよい。目的関数は、
【数４】
0006465876.tif 000005
の形式であってもよい。
【００２０】
階層型深層学習（ＨＤＬ）によってデータにおける最大限の繰り返しパターンを識別するシステムが要約されてもよく、システムは、量子プロセッサと、量子プロセッサと通信可能に結合された非量子プロセッサと、プロセッサ可読記憶媒体であって、非量子プロセッサにおいてデータ要素のデータセットを受信することと、非量子プロセッサによってデータセットに基づいて目的関数を定式化することであって、目的関数は、データセットの第１の表現とデータセットの第２の表現との間の差を最小化する損失項を含み、および目的関数における任意の複雑度を最小化する正則化項を含む、定式化することと、非量子プロセッサを使用して目的関数における第１の組の重みを変数として型変換することと、非量子プロセッサを使用して目的関数の辞書に対する第１の組の値を設定することであって、辞書に対する第１の組の値は、各々が量子プロセッサにおける量子ビットに対応するベクトルを定義するいくつかの列を有する実数値の行列を含み、量子プロセッサにおける連結されていない量子ビットに対応するベクトルのいずれかは、相互に直交する、設定することと、目的関数を最小化するために、非量子プロセッサによって、量子プロセッサと相互作用することとを行うためのプロセッサ実行可能命令を含むプロセッサ可読記憶媒体とを含む。
【００２１】
階層型深層学習（ＨＤＬ）によって、データにおける最大限の繰り返しパターンを識別する方法が要約されてもよく、方法は、非量子プロセッサにおいてラベル付けされたデータ要素のラベル付けされたデータセットを受信するステップであって、少なくとも１つのラベルを組み込む、各々のラベル付けされたデータ要素は、少なくとも１つのラベル要素からなる、ステップと、非量子プロセッサによって、ラベル付けされたデータセットに基づいて目的関数を定式化するステップと、非量子プロセッサを使用して、目的関数における重みの組をブール変数として型変換し、非量子プロセッサを使用して、辞書に対する第１の組の値を設定し、および辞書に対する第１の組の値に基づいて、ブール重みに対する第１の組の値の目的関数を最適化することによって、目的関数を最小化するために非量子プロセッサによって、量子プロセッサと相互作用するステップとを含む。ブール重みに対する第１の組の値の目的関数を最適化するステップは、目的関数を第１の二次制約なし二値最適化（「ＱＵＢＯ」）問題にマッピングし、および第１のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップを含んでもよく、第１のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップは、断熱的量子計算または量子アニーリングのうちの少なくとも１つを実行するために量子プロセッサを使用するステップを含む。
【００２２】
方法は、ブール重みに対する第１の組の値に基づいて、辞書に対する第２の組の値の目的関数を最適化するステップをさらに含んでもよく、辞書に対する第２の組の値の目的関数を最適化するステップは、辞書に対する値の少なくとも一部を更新するために非量子プロセッサを使用するステップを含む。
【００２３】
方法は、辞書に対する第２の組の値に基づいて、ブール重みに対する第２の組の値の目的関数を最適化するステップをさらに含んでもよく、ブール重みに対する第２の組の値の目的関数を最適化するステップは、目的関数を第２のＱＵＢＯ問題にマッピングし、および第２のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップを含む。
【００２４】
方法は、ブール重みに対する第２の組の値に基づいて、辞書に対する第３の組の値の目的関数を最適化するステップをさらに含んでもよく、辞書に対する第３の組の値の目的関数を最適化するステップは、辞書に対する値の少なくとも一部を更新するために非量子プロセッサを使用するステップを含む。
【００２５】
プロセッサ可読記憶媒体は、非量子プロセッサにおいてデータ要素のデータセットを受信することと、非量子プロセッサによってデータセットに基づいて目的関数を定式化することであって、目的関数は、データセットの第１の表現とデータセットの第２の表現との間の差を最小化する損失項を含み、および目的関数における任意の複雑度を最小化する正則化項を含む、定式化することと、非量子プロセッサを使用して、目的関数における第１の組の重みを変数として型変換することと、非量子プロセッサを使用して目的関数の辞書に対する第１の組の値を設定することであって、辞書に対する第１の組の値は、各々が量子プロセッサにおける量子ビットに対応するベクトルを定義するいくつかの列を有する実数値の行列を含み、量子プロセッサにおける連結されていない量子ビットに対応するベクトルのいずれかは、相互に直交する、設定することと、目的関数を最小化するために、非量子プロセッサによって、量子プロセッサと相互作用することとを行うためのプロセッサ実行可能命令を含んでもよい。
【００２６】
データを自動的にラベル付けする方法が要約されてもよく、方法は、少なくとも１つのプロセッサ可読記憶媒体において、ラベル付けされていないデータを受信するステップと、少なくとも１つのプロセッサによって、受信されたラベル付けされていないデータ上でスパースコーディングを使用して辞書アトムの辞書を学習するステップと、少なくとも１つのプロセッサ可読記憶媒体においてラベル付けされたデータ要素を受信するステップであって、各々のラベル付けされたデータ要素は、少なくとも１つのそれぞれのラベル要素からなる少なくとも１つのそれぞれのラベルを組み込む、ステップと、少なくとも１つのプロセッサによって、辞書を使用してラベル付けされたデータを再構築して、符号化されたラベル付けされたデータ要素を生成するステップと、少なくとも１つのプロセッサによって、符号化されたラベル付けされたデータ要素を使用して、教師あり学習処理を実行して、分類器またはラベルアサイナ（ａｓｓｉｇｎｅｒ）のうちの少なくとも１つを生成するステップと、生成された少なくとも１つの分類器またはラベルアサイナを少なくとも１つのプロセッサ可読記憶媒体に記憶するステップとを含む。少なくとも１つのプロセッサによって、教師あり学習処理を実行するステップは、感知アルゴリズム、ｋ近傍法（ｋＮＮ）アルゴリズム、またはＬ１およびＬ２損失アルゴリズムを有する線形サポートベクトルマシン（ＳＶＭ）のうちの少なくとも１つを実行するステップを含んでもよい。少なくとも１つのプロセッサ可読記憶媒体においてラベル付けされたデータ要素を受信するステップは、ラベル付けされた画像データ要素を受信するステップを含んでもよく、各々のラベル付けされた画像データ要素は、少なくとも１つのそれぞれの画像ラベル要素からなる少なくとも１つのそれぞれのラベルを組み込む。少なくとも１つのプロセッサ可読記憶媒体においてラベル付けされたデータ要素を受信するステップは、各々が特定のタイプまたはフォーマットのデータのラベル付けされたデータ要素を受信するステップを含んでもよく、および各々のラベル付けされたデータ要素は、受信されたそれぞれのラベル要素と同一の特定のタイプまたはフォーマットのデータのものであってもよい。
【００２７】
階層型深層学習（ＨＤＬ）によってデータにおける最大限の繰り返しパターンを識別するために量子プロセッサを使用する方法が要約されてもよく、方法は、非量子プロセッサにおいてデータ要素のデータセットを受信するステップと、非量子プロセッサによって、事前処理されたデータセットに基づいて目的関数を定式化するステップであって、目的関数は、事前処理されたデータセットの第１の表現と事前処理されたデータセットの第２の表現との間の差を最小化する損失項を含み、および目的関数における任意の複雑度を最小化する正則化項を含む、ステップと、非量子プロセッサを使用して目的関数における第１の組の重みを変数として型変換するステップと、非量子プロセッサを使用して目的関数の辞書に対する第１の組の値を設定するステップであって、辞書に対する第１の組の値は、目的関数が量子プロセッサの連結構造と一致するように制約される、ステップと、目的関数を最小化するために、非量子プロセッサによって、量子プロセッサと相互作用するステップとを含む。目的関数を定式化するステップは、正則化項がＬ０ノルム形式によって規制される目的関数を定式化するステップを含んでもよい。目的関数を定式化するステップは、正則化項がＬ１ノルム形式によって規制される目的関数を定式化するステップを含んでもよい。正則化項は、正則化パラメータを含んでもよく、および目的関数を定式化するステップは、目的関数のスパーシティを制御する正則化パラメータに対する値を選択するステップを含んでもよい。非量子プロセッサにおいてデータ要素のデータセットを受信するステップは、画像データおよび音声データを受信するステップを含んでもよい。目的関数を最小化するために、非量子プロセッサによって、量子プロセッサと相互作用するステップはさらに、辞書に対する第１の組の値に基づいて、目的関数における重みに対する第１の組の値の目的関数を最適化するステップを含んでもよい。重みに対する第１の組の値の目的関数を最適化するステップは、目的関数を第１の二次制約なし二値最適化（「ＱＵＢＯ」）問題にマッピングし、および第１のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップを含んでもよく、第１のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップは、断熱的量子計算または量子アニーリングのうちの少なくとも１つを実行するために量子プロセッサを使用するステップを含んでもよい。
【００２８】
目的関数を最小化するために、非量子プロセッサによって、量子プロセッサと相互作用するステップは、辞書に対する第２の組の値に基づいて、重みに対する第２の組の値の目的関数を最適化するステップをさらに含んでもよく、重みに対する第２の組の値の目的関数を最適化するステップは、目的関数を第２のＱＵＢＯ問題にマッピングし、および第２のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップを含む。
【００２９】
目的関数を最小化するために、非量子プロセッサによって、量子プロセッサと相互作用するステップは、重みに対する第１の組の値に基づいて、辞書に対する第２の組の値の目的関数を最適化するステップをさらに含んでもよく、辞書に対する第２の組の値の目的関数を最適化するステップは、辞書に対する値の少なくとも一部を更新するために非量子プロセッサを使用するステップを含む。
【００３０】
目的関数を最小化するために、非量子プロセッサによって、量子プロセッサと相互作用するステップはさらに、重みに対する第２の組の値に基づいて、辞書に対する第３の組の値の目的関数を最適化するステップを含んでもよく、辞書に対する第３の組の値の目的関数を最適化するステップは、辞書に対する値の少なくとも一部を更新するために非量子プロセッサを使用するステップを含む。
【００３１】
方法は、重みに対するｔ番目の組の値の目的関数を最適化するステップであって、ｔは、辞書に対する第３の組の値に基づく、２より大きい整数であり、重みに対するｔ番目の組の値の目的関数を最適化するステップは、目的関数をｔ番目のＱＵＢＯ問題にマッピングし、およびｔ番目のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップを含む、ステップと、重みに対するｔ番目の組の値に基づいて、辞書に対する（ｔ＋１）番目の組の値の目的関数を最適化するステップであって、辞書に対する（ｔ＋１）番目の組の値の目的関数を最適化するステップは、辞書に対する値の少なくとも一部を更新するために非量子プロセッサを使用するステップを含む、ステップとをさらに含む。
【００３２】
方法は、辞書に対する（ｔ＋１）番目の組の値に基づいて、重みに対する（ｔ＋１）番目の組の値の目的関数を最適化するステップをさらに含んでもよく、重みに対する（ｔ＋１）番目の組の値の目的関数を最適化するステップは、目的関数を（ｔ＋１）番目のＱＵＢＯ問題にマッピングし、および（ｔ＋１）番目のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップを含む。
【００３３】
重みに対するｔ番目の組の値に基づいて、辞書に対する（ｔ＋１）番目の組の値の目的関数を最適化するステップ、および辞書に対する（ｔ＋１）番目の組の値に基づいて、重みに対する（ｔ＋１）番目の組の値の目的関数を最適化するステップは、少なくとも１つの解判定基準が満たされるまで、ｔの増分値にわたり繰り返されてもよい。少なくとも１つの解判定基準は、重みに対する値の組の収束、または辞書に対する値の組の収束のいずれかを含んでもよい。目的関数を最小化することは、学習問題における特徴を生成することを含んでもよい。学習問題における特徴を生成することは、パターン認識問題、人工ニューラルネットワーク問題のトレーニング、ならびにソフトウェア証明および検証問題のうちの少なくとも１つにおける特徴を生成することを含んでもよい。学習問題における特徴を生成することは、機械学習問題または人工知能の適用のうちの少なくとも１つにおける特徴を生成することを含んでもよい。目的関数を最小化することは、スパース最小二乗問題を解決することを含んでもよい。目的関数の辞書に対する第１の組の値を設定するステップは、実数値の行列を生成するステップであって、行列の各エントリが正数と負数との間の乱数である、ステップと、各列に対するノルムが１に対して等しいように行列の各列を再正規化するステップと、行列の各列に対し、列のゼロ空間を計算するステップと、列を、列のゼロ空間基底にあるランダムエントリの列と置き換えるステップとを含んでもよい。非量子プロセッサを使用して目的関数における第１の組の重みを変数として型変換するステップは、非量子プロセッサを使用して第１の組の重みをブール変数として型変換するステップを含んでもよい。
【００３４】
方法は、少なくとも１つのラベル要素からなる少なくとも１つのラベルをデータセットに組み込むステップをさらに含んでもよく、少なくとも１つのラベルは、少なくとも抽象的レベルでデータセットにおいて表される対象を論理的に識別するラベル情報、またはデータの組において表される対象が属するカテゴリを表す。少なくとも１つのラベルをデータセットに組み込むステップは、データセットにおいて表される対象を、定義された組の人間に属する英数字、自動車の製造および／もしくはモデル、定義された組の物体、定義された外部もしくは被疑物体、または解剖学的特徴のタイプのうちの少なくとも１つとして論理的に識別するラベル情報を表す少なくとも１つのラベルを組み込むステップを含んでもよい。少なくとも１つのラベルを組み込むステップは、ラベル情報を表す少なくとも１つのラベルを組み込むステップを含んでもよく、およびラベル情報は、対応するデータ要素と同一のタイプであってもよい。非量子プロセッサにおいてデータ要素のデータセットを受信するステップは、画像データとして表されるデータセットを受信するステップを含んでもよく、および組み込まれた少なくとも１つのラベル要素は、画像データを含んでもよい。少なくとも１つのラベル要素からなる少なくとも１つのラベルをデータセットに組み込むステップは、少なくとも１つのラベル要素からなる少なくとも１つのラベルを組み込むステップを含んでもよく、少なくとも１つのラベル要素は、画像データを含み、およびラベル要素の空間位置は、ラベル情報を少なくとも部分的に符号化してもよい。目的関数を定式化するステップは、データセットおよび組み込まれた少なくとも１つのラベルの両方に基づいて、目的関数を定式化するステップを含んでもよい。非量子プロセッサにおいてデータ要素のデータセットを受信するステップは、異なるタイプまたはフォーマットのデータとして表されるデータセットを受信するステップを含んでもよい。目的関数は、
【数５】
0006465876.tif 000006
の形式であってもよい。
【００３５】
方法は、データ要素のデータセットを事前処理して、事前処理されたデータセットを生成するステップをさらに含んでもよい。データ要素のデータセットは、画像データ要素の画像データセットを含んでもよく、およびデータ要素のデータセットを事前処理するステップは、画像データセットの画像データ要素のコントラストまたは輝度のうちの少なくとも１つを正規化するステップを含んでもよい。データ要素のデータセットを事前処理するステップは、画像データセットの正規化された画像データ要素をホワイトニングするステップを含んでもよい。画像データセットの正規化された画像データ要素をホワイトニングするステップは、零相成分分析（ＺＣＡ）ホワイトニングを画像データセットの正規化されたデータ要素に適用するステップを含んでもよい。データ要素のデータセットを事前処理するステップは、画像データセットの正規化された画像データ要素の次元を削減するステップを含んでもよい。画像データセットの正規化された画像データ要素の次元を削減するステップは、主成分分析（ＰＣＡ）を画像データセットの正規化されたデータ要素に適用するステップを含んでもよい。データ要素のデータセットを事前処理するステップは、画像データセットの正規化された画像データ要素の次元を削減するステップと、画像データセットの正規化された画像データ要素をホワイトニングするステップとを含んでもよい。
【００３６】
データ要素のデータセットが画像データ要素の画像データセットを含む方法は、画像データ要素の各々を１つ以上の分解領域に区分化するステップを含んでもよい。
【００３７】
方法は、非量子プロセッサによって、区分特性を示す区分化パラメータを受信するステップをさらに含んでもよく、画像データ要素の各々を１つ以上の分解領域に区分化するステップは、受信された区分化パラメータに少なくとも部分的に基づく。
【００３８】
階層型深層学習（ＨＤＬ）によって、データにおける最大限の繰り返しパターンを識別する方法が要約されてもよく、方法は、非量子プロセッサにおいてラベル付けされたデータ要素のラベル付けされたデータセットを受信するステップであって、少なくとも１つのラベルを組み込む、各々のラベル付けされたデータ要素は、少なくとも１つのラベル要素からなる、ステップと、非量子プロセッサにおいてラベル付けされたデータ要素のラベル付けされたデータセットを事前処理して、事前処理されたラベル付けされたデータセットを生成するステップと、非量子プロセッサによって、事前処理されたラベル付けされたデータセットに基づいて目的関数を定式化するステップと、非量子プロセッサを使用して、目的関数における重みの組をブール変数として型変換し、非量子プロセッサを使用して、辞書に対する第１の組の値を設定し、および辞書に対する第１の組の値に基づいて、ブール重みに対する第１の組の値の目的関数を最適化することによって、目的関数を最小化するために非量子プロセッサによって、量子プロセッサと相互作用するステップとを含む。ブール重みに対する第１の組の値の目的関数を最適化するステップは、目的関数を第１の二次制約なし二値最適化（「ＱＵＢＯ」）問題にマッピングし、および第１のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップを含んでもよく、第１のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップは、断熱的量子計算または量子アニーリングのうちの少なくとも１つを実行するために量子プロセッサを使用するステップを含む。
【００３９】
方法は、ブール重みに対する第１の組の値に基づいて、辞書に対する第２の組の値の目的関数を最適化するステップをさらに含んでもよく、辞書に対する第２の組の値の目的関数を最適化するステップは、辞書に対する値の少なくとも一部を更新するために非量子プロセッサを使用するステップを含む。
【００４０】
方法は、辞書に対する第２の組の値に基づいて、ブール重みに対する第２の組の値の目的関数を最適化するステップをさらに含んでもよく、ブール重みに対する第２の組の値の目的関数を最適化するステップは、目的関数を第２のＱＵＢＯ問題にマッピングし、および第２のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するステップを含む。
【００４１】
方法は、ブール重みに対する第２の組の値に基づいて、辞書に対する第３の組の値の目的関数を最適化するステップをさらに含んでもよく、辞書に対する第３の組の値の目的関数を最適化するステップは、辞書に対する値の少なくとも一部を更新するために非量子プロセッサを使用するステップを含む。
【００４２】
プロセッサ可読記憶媒体が要約されてもよく、プロセッサ可読記憶媒体は、非量子プロセッサにおいて画像データ要素の画像データセットを受信することと、画像データ要素の画像データセットを正規化して、正規化された画像データセットを生成することと、非量子プロセッサによって、正規化されたデータセットに基づいて目的関数を定式化することであって、目的関数は、データセットの第１の表現とデータセットの第２の表現との間の差を最小化する損失項を含み、および目的関数における任意の複雑度を最小化する正則化項を含む、定式化することと、非量子プロセッサを使用して目的関数における第１の組の重みを変数として型変換することと、非量子プロセッサを使用して目的関数の辞書に対する第１の組の値を設定することであって、辞書に対する第１の組の値は、各々が量子プロセッサにおける量子ビットに対応するベクトルを定義するいくつかの列を有する実数値の行列を含み、量子プロセッサにおける連結されていない量子ビットに対応するベクトルのいずれかは、相互に直交する、設定することと、目的関数を最小化するために、非量子プロセッサによって、量子プロセッサと相互作用することとを行うためのプロセッサ実行可能命令を含む。
【００４３】
データを自動的にラベル付けする方法が要約されてもよく、方法は、少なくとも１つのプロセッサ可読記憶媒体において、ラベル付けされていないデータを受信するステップと、少なくとも１つのプロセッサによって、受信されたラベル付けされていないデータ上でスパースコーディングを使用して辞書アトムの辞書を学習するステップと、少なくとも１つのプロセッサ可読記憶媒体においてラベル付けされたデータ要素を受信するステップであって、少なくとも１つのそれぞれのラベルを組み込む、各々のラベル付けされたデータ要素は、少なくとも１つのそれぞれのラベル要素からなる、ステップと、ラベル付けされたデータ要素を事前処理して、事前処理されたラベル付けされたデータ要素を生成するステップと、少なくとも１つのプロセッサによって、辞書を使用して事前処理されたラベル付けされたデータ要素を再構築して、符号化されたラベル付けされたデータ要素を生成するステップと、少なくとも１つのプロセッサによって、符号化されたラベル付けされたデータ要素を使用して、教師あり学習処理を実行して、分類器またはラベルアサイナのうちの少なくとも１つを生成するステップと、生成された少なくとも１つの分類器またはラベルアサイナを少なくとも１つのプロセッサ可読記憶媒体に記憶するステップとを含む。ラベル付けされたデータ要素は、ラベル付けされた画像データ要素を含んでもよく、およびラベル付けされたデータ要素を事前処理して、事前処理されたラベル付けされたデータ要素を生成するステップは、画像データ要素のコントラストもしくは輝度のうちの少なくとも１つを正規化するステップ、画像データ要素をホワイトニングするステップ、零相成分分析（ＺＣＡ）ホワイトニングを画像データ要素に適用するステップ、または画像データ要素の次元を削減するステップのうちの少なくとも１つを含んでもよい。少なくとも１つのプロセッサによって、教師あり学習処理を実行するステップは、感知アルゴリズム、ｋ近傍法（ｋＮＮ）アルゴリズム、またはＬ１およびＬ２損失アルゴリズムを有する線形サポートベクトルマシン（ＳＶＭ）のうちの少なくとも１つを実行するステップを含んでもよい。少なくとも１つのプロセッサ可読記憶媒体においてラベル付けされたデータ要素を受信するステップは、ラベル付けされた画像データ要素を受信するステップを含んでもよく、各々のラベル付けされた画像データ要素は、少なくとも１つのそれぞれの画像ラベル要素からなる少なくとも１つのそれぞれのラベルを組み込む。少なくとも１つのプロセッサ可読記憶媒体においてラベル付けされたデータ要素を受信するステップは、各々が特定のタイプまたはフォーマットのデータのラベル付けされたデータ要素を受信するステップを含んでもよく、および各々のラベル付けされたデータ要素は、受信されたそれぞれのラベル要素と同一の特定のタイプまたはフォーマットのデータのものであってもよい。
【００４４】
階層型深層学習（ＨＤＬ）によってデータにおける最大限の繰り返しパターンを識別するシステムが要約されてもよく、システムは、量子プロセッサと、量子プロセッサと通信可能に結合された非量子プロセッサと、プロセッサ可読記憶媒体であって、非量子プロセッサにおいてデータ要素のデータセットを受信することと、非量子プロセッサによってデータセットに基づいて目的関数を定式化することであって、目的関数は、データセットの第１の表現とデータセットの第２の表現との間の差を最小化する損失項を含み、および目的関数における任意の複雑度を最小化する正則化項を含む、定式化することと、非量子プロセッサを使用して目的関数における第１の組の重みを変数として型変換することと、非量子プロセッサを使用して目的関数の辞書に対する第１の組の値を設定することと、目的関数を最小化するために、非量子プロセッサによって、量子プロセッサと相互作用することとを行うためのプロセッサ実行可能命令を含むプロセッサ可読記憶媒体とを含む。
【００４５】
プロセッサ可読記憶媒体は、正則化項がＬ０ノルム形式によって規制される目的関数を定式化するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、正則化項がＬ１ノルム形式によって規制される目的関数を定式化するためのプロセッサ実行可能命令を含んでもよい。正則化項は、正則化パラメータを含んでもよく、およびプロセッサ可読記憶媒体は、目的関数のスパーシティを制御する正則化パラメータに対する値を選択するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、画像データおよび音声データを受信するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、辞書に対する第１の組の値に基づいて、目的関数における重みに対する第１の組の値の目的関数を最適化するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、目的関数を第１の二次制約なし二値最適化（「ＱＵＢＯ」）問題にマッピングし、および第１のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用し、および断熱的量子計算または量子アニーリングのうちの少なくとも１つを実行するために量子プロセッサを使用するためのプロセッサ実行可能命令を含んでもよい。
【００４６】
プロセッサ可読記憶媒体は、辞書に対する第２の組の値に基づいて、重みに対する第２の組の値の目的関数を最適化し、目的関数を第２のＱＵＢＯ問題にマッピングし、および第２のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、重みに対する第１の組の値に基づいて、辞書に対する第２の組の値の目的関数を最適化し、および辞書に対する値の少なくとも一部を更新するために非量子プロセッサを使用するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、重みに対する第２の組の値に基づいて、辞書に対する第３の組の値の目的関数を最適化し、および辞書に対する値の少なくとも一部を更新するために非量子プロセッサを使用するためのプロセッサ実行可能命令を含んでもよい。
【００４７】
プロセッサ可読記憶媒体は、重みに対するｔ番目の組の値の目的関数を最適化することであって、ｔは、辞書に対する第３の組の値に基づく、２より大きい整数である、最適化すること、および目的関数をｔ番目のＱＵＢＯ問題にマッピングすること、およびｔ番目のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用することと、重みに対するｔ番目の組の値に基づいて、辞書に対する（ｔ＋１）番目の組の値の目的関数を最適化すること、および辞書に対する値の少なくとも一部を更新するために非量子プロセッサを使用することとを行うためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、辞書に対する（ｔ＋１）番目の組の値に基づいて、重みに対する（ｔ＋１）番目の組の値の目的関数を最適化し、および目的関数を（ｔ＋１）番目のＱＵＢＯ問題にマッピングし、および（ｔ＋１）番目のＱＵＢＯ問題を少なくともおおよそ最小化するために量子プロセッサを使用するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、少なくとも１つの解判定基準が満たされるまで、ｔの増分値にわたり、重みに対するｔ番目の組の値に基づいて、辞書に対する（ｔ＋１）番目の組の値の目的関数を繰り返し最適化し、および辞書に対する（ｔ＋１）番目の組の値に基づいて重みに対する（ｔ＋１）番目の組の値の目的関数を最適化するためのプロセッサ実行可能命令を含んでもよい。少なくとも１つの解判定基準は、重みに対する値の組の収束、または辞書に対する値の組の収束のいずれかを含んでもよい。プロセッサ可読記憶媒体は、学習問題における特徴を生成するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、パターン認識問題、人工ニューラルネットワーク問題のトレーニング、ならびにソフトウェア証明および検証問題のうちの少なくとも１つにおける特徴を生成するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、機械学習問題または人工知能の適用のうちの少なくとも１つにおける特徴を生成するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、スパース最小二乗問題を解決するためのプロセッサ実行可能命令を含んでもよい。
【００４８】
プロセッサ可読記憶媒体は、実数値の行列を生成することであって、行列の各エントリが正数と負数との間の乱数である、生成することと、各列に対するノルムが１に対して等しいように行列の各列を再正規化することと、行列の各列に対し、列のゼロ空間を計算し、および列を、列のゼロ空間基底にあるランダムエントリの列と置き換えることとを行うためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、非量子プロセッサを使用して第１の組の重みをブール変数として型変換するためのプロセッサ実行可能命令を含んでもよい。
【００４９】
プロセッサ可読記憶媒体は、少なくとも１つのラベル要素からなる少なくとも１つのラベルをデータセットに組み込むためのプロセッサ実行可能命令を含んでもよく、少なくとも１つのラベルは、少なくとも抽象的レベルでデータセットにおいて表される対象を論理的に識別するラベル情報、またはデータの組において表される対象が属するカテゴリを表す。
【００５０】
プロセッサ可読記憶媒体は、データセットにおいて表される対象を、定義された組の人間に属する英数字、自動車の製造および／もしくはモデル、定義された組の物体、定義された外部もしくは被疑物体、または解剖学的特徴のタイプのうちの少なくとも１つとして論理的に識別するラベル情報を表す少なくとも１つのラベルを組み込むためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、ラベル情報を表す少なくとも１つのラベルを組み込むためのプロセッサ実行可能命令を含んでもよく、およびラベル情報は、対応するデータ要素と同一のタイプである。プロセッサ可読記憶媒体は、画像データとして表されるデータセットを受信するためのプロセッサ実行可能命令を含んでもよく、および組み込まれた少なくとも１つのラベル要素は、画像データを含む。プロセッサ可読記憶媒体は、少なくとも１つのラベル要素からなる少なくとも１つのラベルを組み込むためのプロセッサ実行可能命令を含んでもよく、少なくとも１つのラベル要素は、画像データを含み、およびラベル要素の空間位置は、ラベル情報を少なくとも部分的に符号化する。プロセッサ可読記憶媒体は、データセットおよび組み込まれた少なくとも１つのラベルの両方に基づいて、目的関数を定式化するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、異なるタイプまたはフォーマットのデータとして表されるデータセットを受信するためのプロセッサ実行可能命令を含んでもよい。目的関数は、
【数６】
0006465876.tif 000007
の形式であってもよい。
【００５１】
プロセッサ可読記憶媒体は、非量子プロセッサにおいてデータ要素のデータセットを事前処理して、事前処理されたデータセットを生成するためのプロセッサ実行可能命令を含んでもよい。データ要素のデータセットは、画像データ要素の画像データセットを含んでもよく、およびプロセッサ可読記憶媒体は、画像データセットの画像データ要素のコントラストまたは輝度のうちの少なくとも１つを正規化するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、画像データセットの正規化された画像データ要素をホワイトニングするためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、零相成分分析（ＺＣＡ）ホワイトニングを画像データセットの正規化されたデータ要素に適用するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、画像データセットの正規化された画像データ要素の次元を削減するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、主成分分析（ＰＣＡ）を画像データセットの正規化されたデータ要素に適用するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、画像データセットの正規化された画像データ要素の次元を削減し、および画像データセットの正規化された画像データ要素をホワイトニングするためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、非量子プロセッサを使用して、画像データ要素の各々を１つ以上の分解領域に区分化するためのプロセッサ実行可能命令を含んでもよい。プロセッサ可読記憶媒体は、区分特性を示す区分化パラメータを受信するためのプロセッサ実行可能命令を含んでもよく、１つ以上の分解領域は、受信された区分化パラメータに少なくとも部分的に基づく。
【００５２】
図面では、同一の参照符号は、同一の要素または動作を識別する。図面における要素のサイズおよび相対位置は、必ずしも正確な縮尺ではない。例えば、種々の要素の形状および角度は、正確な縮尺ではなく、かつそれらの要素の一部は、図面の視認性を改善するために、適宜、拡大および位置合わせされる。さらに、描かれる要素の特定の形状は、特定の要素の実際の形状に関する情報を伝えることを意図するものではなく、図面の認識を容易にするために選択されるにすぎない。
【図面の簡単な説明】
【００５３】
【図１】少なくとも１つの実施形態に従った、断熱的量子計算および／または量子アニーリングのために設計された超伝導量子プロセッサの一部の概略図である。
【図２】少なくとも１つの実施形態に従った、対象を最小化する方法を示すフローチャートである。
【図３】少なくとも１つの実施形態に従った、オブジェクトを最小化する方法を示すフローチャートである。
【図４】少なくとも１つの実施形態に従った、デジタル処理タスクを実行するために使用することができるデジタルプロセッサを含む例示的なデジタルコンピューティングシステムの概略図である。
【図５】少なくとも１つの実施形態に従った、脳波データを分析するために量子プロセッサを使用する方法を示すフローチャートである。
【図６】少なくとも１つの実施形態に従った、システムの例示的な図である。
【図７Ａ】少なくとも１つの実施形態に従った、Ｆｅａｔｕｒｅ  Ｓｉｇｎ  Ｓｅａｒｃｈ（ＦＳＳ）最適化を使用したトレーニングに基づいて第１の組が再構築される、実画像および対応する再構築された画像を含む第１の組の画像を示すスクリーン印刷である。
【図７Ｂ】少なくとも１つの実施形態に従った、タブー（二進値）を使用したトレーニングに基づいて第２の組が再構築される、実画像および対応する再構築された画像を含む第２の組の画像を示すスクリーン印刷である。
【図８】少なくとも１つの実施形態に従った、半教師あり学習が実行される画像である。
【図９】少なくとも１つの実施形態に従った、再構築に使用される元の画像および再構築された画像を示す。
【図１０】少なくとも１つの実施形態に従った、制御画像およびトレーニング画像の組を示す。
【図１１】少なくとも１つの実施形態に従った、制御画像およびトレーニング画像の別の組を示す。
【図１２】少なくとも１つの実施形態に従った、添付ラベルまたは機械可読シンボルを有するトレーニングセットの例を示す。
【図１３】少なくとも１つの実施形態に従った、Ｍｉｘｅｄ  Ｎａｔｉｏｎａｌ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｓｔａｎｄａｒｄｓ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ（ＭＮＩＳＴ）画像の後続データオブジェクト（ｐｏｓｔ−ｓｕｂｓｅｑｕｅｎｃｅ  ｄａｔａ  ｏｂｊｅｃｔ）に対するモードの数対トレーニング例の数を示すグラフである。
【図１４】少なくとも１つの実施形態に従った、辞書ファイルを示す。
【図１５】少なくとも１つの実施形態に従った、辞書ファイルを示す。
【図１６】少なくとも１つの実施形態に従った、時間に関する目的関数値のグラフである。
【図１７】少なくとも１つの実施形態に従った、カテゴリによってソートされたＷ行列のグラフである。
【図１８】少なくとも１つの実施形態に従った、再構築された画像およびアトムが各々、例えば、画像においてラベルの相対的空間位置において符号化された画像の内容に関する情報を提供する、付加ラベルまたは彩色ラベルを含む、３つの異なる画像の各々に対する、元の画像、再構築された画像、および３つの異なるアトムを示す。
【図１９】少なくとも１つの実施形態に従った、トレーニングおよびテスト運転の２つのそれぞれのペアに対して採用される、再構築誤り対平均数のアトムを示すグラフである。
【図２０Ａ】少なくとも１つの実施形態に従った、いくつかのアプローチに対する分類精度およびスパーシティ規制パラメータ（ｌａｍｂｄａ）を比較したグラフである。
【図２０Ｂ】少なくとも１つの実施形態に従った、平均数のアトムおよびスパーシティ規制パラメータ（ｌａｍｂｄａ）を比較したグラフである。
【図２０Ｃ】少なくとも１つの実施形態に従った、分類精度を示すグラフである。
【図２０Ｄ】少なくとも１つの実施形態に従った、スパーシティ規制パラメータ（ｌａｍｂｄａ）を示すグラフである。
【図２１】少なくとも１つの実施形態に従った、ＨＤＬフレームワークの関連するユーザインタフェースの態様を示す。
【図２２】少なくとも１つの実施形態に従った、ＨＤＬフレームワークの関連するユーザインタフェースの態様を示す。
【図２３】少なくとも１つの実施形態に従った、ＨＤＬフレームワークの関連するユーザインタフェースの態様を示す。
【図２４】少なくとも１つの実施形態に従った、ＨＤＬフレームワークの関連するユーザインタフェースの態様を示す。
【図２５】少なくとも１つの実施形態に従った、ＨＤＬフレームワークの関連するユーザインタフェースの態様を示す。
【図２６】少なくとも１つの実施形態に従った、ＨＤＬフレームワークの関連するユーザインタフェースの態様を示す。
【図２７】少なくとも１つの実施形態に従った、ＨＤＬフレームワークの関連するユーザインタフェースの態様を示す。
【図２８】少なくとも１つの実施形態に従った、ＨＤＬフレームワークの関連するユーザインタフェースの態様を示す。
【図２９】少なくとも１つの実施形態に従った、ＨＤＬフレームワークの関連するユーザインタフェースの態様を示す。
【図３０】少なくとも１つの実施形態に従った、ＨＤＬフレームワークの関連するユーザインタフェースの態様を示す。
【図３１】少なくとも１つの実施形態に従った、ＨＤＬフレームワークの関連するユーザインタフェースの態様を示す。
【図３２】少なくとも１つの実施形態に従った、ＨＤＬフレームワークの関連するユーザインタフェースの態様を示す。
【図３３】少なくとも１つの実施形態に従った、ＨＤＬフレームワークの関連するユーザインタフェースの態様を示す。
【図３４】少なくとも１つの実施形態に従った、ラムゼー数を計算する問題を解決するための量子プロセッサに組み込むことを示すプロセッサグラフを示す。
【発明を実施するための形態】
【００５４】
以下の発明の詳細な説明では、種々の開示される実施形態の完全な理解を提供するために、いくつかの特定の詳細が含まれる。しかしながら、当業者は、１つ以上のそれらの特定の詳細なしで、または他の方法、構成要素、素材などで実施形態が実施されてもよいことを理解するであろう。他の例では、量子デバイス、結合デバイスならびにマイクロプロセッサおよび駆動回路を含む制御システムなどの、量子プロセッサと関連付けられた公知の構造は、本方法の実施形態の説明を不必要に曖昧にすることを避けるために詳細に示されず、かつ説明されない。本明細書および添付の特許請求の範囲の全体を通じて、用語「要素」は、量子プロセッサと関連付けられた全てのそのような構造、システムおよびデバイスと共に、それらの関連するプログラム可能パラメータを包含するように使用されるが、それらに限定されない。
【００５５】
文脈上他の意味に解すべき場合を除き、以下の明細書および特許請求の範囲の全体を通じて、用語「含む（ｃｏｍｐｒｉｓｅ）」、ならびに「含む（ｃｏｍｐｒｉｓｅｓ）」および「含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」などのその変形は、「含むが、限定しない」という意味で、開かれた包括的な意味と解釈されることになる。
【００５６】
本明細書全体を参照して、「一実施形態」、「実施形態」、または「別の実施形態」への言及は、実施形態と共に説明される特定の対象の特徴、構造、または特性が、少なくとも１つの実施形態に含まれることを意味する。よって、本明細書全体を通じて様々な箇所で現れる句「一実施形態では」、「実施形態では」、または「別の実施形態では」は、必ずしも全てが同一の実施形態を指すものではない。さらに、特定の特徴、構造、または特性は、１つ以上の実施形態における任意の適切な方式で組み合わされてもよい。本明細書および添付の特許請求の範囲で使用されるように、単数形「１つの（ａ）」、「１つの（ａｎ）」および「その（ｔｈｅ）」は、文脈上他の意味に解すべき場合を除き、複数の対象を含むことに留意すべきである。よって、例えば、「量子プロセッサ」を含む問題解決システムへの言及は、単一の量子プロセッサ、または２つ以上の量子プロセッサを含む。用語「または（ｏｒ）」は概して、文脈上他の意味に解すべき場合を除き、「および／または（ａｎｄ／ｏｒ）」を含む意味で使用されることに留意すべきである。
【００５７】
本明細書で提供される表題は、便宜のみを目的としており、実施形態の範囲または意味と解釈しない。
【００５８】
本明細書で説明される種々の実施形態は、圧縮検知（ｃｏｍｐｒｅｓｓｅｄ  ｓｅｎｓｉｎｇ）または処理の技術を採用することによって計算問題を解決するために量子プロセッサを使用する方法を提供する。そのような方法は、画像データ、例えば、文字もしくは数字、人、解剖構造、自動車、外部もしくは被疑物体などによって表される画像における種々の物体を、プロセッサベースデバイスが自動的に認識することを可能にする、例えば、半教師あり特徴学習において有利に採用されることがある。例えば、圧縮検知技術で通常最小化される物体は、断熱的量子プロセッサ、および／または量子アニーリングを実装するために設計されたプロセッサなどの、量子プロセッサを使用して解決されることになる公知な二次制約なし二値最適化（「ＱＵＢＯ」）問題として再型変換される。
【００５９】
圧縮検知技術で一般的に最小化されるオブジェクトは、「スパース最小二乗問題」として知られる。
【数７】
0006465876.tif 000008
【００６０】
スパース最小二乗問題は、任意の所与のｙｉがいくつかの基底ベクトルの線形集合として表すことが可能な、Ｎ次元の実数値信号｛ｙｉ｜１≦ｉ≦Ｓ｝の集合に対する基底を探索する。この問題は、例えば、データ圧縮、機械学習における特徴抽出、可視化のための次元削減、高速情報取り出しのための意味的（ｓｅｍａｎｔｉｃ）ハッシング、および多くの他の領域における適用を発見する。
【００６１】
行列Ｄは、各列が基底ベクトルを表す、Ｎ×Ｋの次元を有する。Ｋの基底要素は時に、「アトム」と称され、および過剰完全（ｏｖｅｒ−ｃｏｍｐｌｅｔｅ）となることがある。各々の重みｗｉは、Ｋ×１である。行列Ｄは、「辞書」と称され、スパース最小二乗問題の目標は、ｗｉおよび辞書Ｄの基底ベクトルの両方に関して式１のオブジェクトを最小化することである。最小化は、通常、オブジェクトがｗおよびＤの個別にあるが共同ではなく凸（ｃｏｎｖｅｘ）であるため、ブロック座標降下法を使用するステップで行われる。本方法に従って、最小化の少なくとも一部は、重みｗｉを、例えば、０または１のブール値に制限することによって、ＱＵＢＯ問題にマッピングされてもよい。次いで、オブジェクトの例は以下のようになる。
【数８】
0006465876.tif 000009
【００６２】
式２のオブジェクトは、各々のブール値ベクトルｗｉおよびＤに記憶された実数値基底要素に関して最小化されることである。いくつかの例では、重みｗｉをブール値として型変換することは、０ノルムスパーシティペナルティのようなものを実現する。多くの問題に対し、０ノルムのバージョンの問題は、１ノルムの変形よりもよりスパース（ｓｐａｒｓｅｒ）であることが予想される。歴史的に、０ノルムの変形は、解決がより困難であるため、あまり研究されてこなかった。
【００６３】
上述したように、ＱＵＢＯ問題は一般的に、以下の形式で記述されてもよく、
【数９】
0006465876.tif 000010
ここで、オブジェクトは、例えば、Ｅを最小化することである。本方法に従って、式２で与えられるブールバージョンのスパース最小二乗問題は、式３で与えられるＱＵＢＯ問題にマッピングされてもよく、それによって、ＱＵＢＯ問題のＱの項は、ＤＴＤによって与えられる。より詳細には、式３のＱｉｊ要素（ｉ≠ｊ）は、（ＤＴＤ）ｉｊｄｉＴｄｊによって与えられる。
【００６４】
式２によって与えられるブールオブジェクトは、例えば、辞書Ｄの基底要素に対する初期値を推測し、Ｄの初期の推測された要素に対応するブール重みｗｉの値を最適化し、次いで、最初に最適化されたＷｉの値に対応する要素Ｄを最適化し、次いで最初に最適化された辞書Ｄに対応するブール重みｗｉの値を再正規化し、およびいくつかの解判定基準が満たされるまで、または最適化が収束するまで、前後（ｂａｃｋ−ａｎｄ−ｆｏｒｔｈ）最適化手順を継続することによって、最適化されてもよい。最適化手順は、例えば、ブール重みｗｉに対する推測された値を使用し、最初にＤの要素の値を推測するのではなく、辞書Ｄを最初に最適化し、およびブール重みｗｉを最適化することによって、開始してもよい。
【００６５】
いくつかの例では、辞書Ｄは連続的であってもよい。そのような例では、量子プロセッサを使用してＤを最適化することは非実用的であることがある。逆に、ブール重みｗｉは、離散的であることがあり、および量子プロセッサを使用して最適化されるのに非常に適切であることがある。よって、本方法に従って、上述した前後最適化手順は、量子プロセッサおよび非量子プロセッサ（例えば、デジタルプロセッサまたは古典的アナログプロセッサ）の両方を使用して実行されてもよく、量子プロセッサは、任意の所与の辞書Ｄに対応するブール重みｗｉに対する式２を最適化する（すなわち、最小化する）ために使用され、非量子プロセッサは、ブール重みｗｉの任意の所与の割り当てに対応する辞書Ｄに対する式２を最適化する（すなわち、最小化する）ために使用される。
【００６６】
例えば、所与のＤに対し、各々のｗｉ（１≦ｉ≦Ｓ）をＱＵＢＯとして別個に最適化することができ
【数１０】
0006465876.tif 000011
全ての構成要素αに対し、ｗｉ（α）∈｛０，１｝である。また、本方法に従って、最適化は、断熱的量子プロセッサ、または量子アニーリングを実装するために設計されたプロセッサなどの、量子プロセッサを使用して実行されてもよい。
【００６７】
ｗｉの所与の設定に対するＤ上の最適化は、例えば、非量子プロセッサを使用して、ｄ＝Ｄ（：）を記述する（すなわち、ベクトルにおけるＤの列を積む（ｓｔａｃｋ））ように達成されてもよく、それによって、任意のＫ×１ベクトルｗに対して
【数１１】
0006465876.tif 000012
となる。ｄを判定する最適化オブジェクトは、最小
【数１２】
0006465876.tif 000013
を有する
【数１３】
0006465876.tif 000014
である。
【００６８】
次いで、Ｋのトレーニング例よりも少ないものが存在する場合、
【数１４】
0006465876.tif 000015
は、完全ランク（ｆｕｌｌ  ｒａｎｋ）を有さないことがある。そのようなケースでは、
【数１５】
0006465876.tif 000016
を分解する単一値は、最小ノルム｜｜ｄ｜｜２での解を発見するために使用されてもよい。ブール値重みｗｉへの制限は、例えば、辞書アトムの負の寄与（ｎｅｇａｔｉｖｅ  ｃｏｎｔｒｉｂｕｔｉｏｎｓ）の可能性を排除することができる。しかしながら、辞書学習において考慮されることがあるため、重みが負であることを許容する明確な必要性が存在しないことがある。例えば、ｗ変数の数を２倍にすること、およびブール値であるｗｉ＋およびｗｉ−の両方を有するｙｉ＝Ｄ（ｗｉ＋−ｗｉ−）を記述することは、単純に、辞書のサイズを２倍にし、それによって、
【数１６】
0006465876.tif 000017
となる。
【００６９】
スパーシティペナルティλは、例えば、トレーニングデータをトレーニンググループＤｔｒａｉｎおよびテストグループＤｔｅｓｔに区分化することによって設定されてもよい。トレーニンググループＤｔｒａｉｎでは、辞書Ｄ（λ）は、λの所与の値で学習されてもよい。テストグループＤｔｅｓｔでは、再構築誤りが測定されてもよい。
【数１７】
0006465876.tif 000018
【００７０】
よって、ｅｒｒｏｒ（λ）を最小化するλを選択することが有利であることがある。実際に、ｅｒｒｏｒ（λ）は、この単一の箇所（ｓｉｎｇｌｅ  ｆｏｌｄ）を上回って推定されてもよい。
【００７１】
式４によって定義されるＱＵＢＯの連結度は、ＤＴＤによって判定されてもよく、および概して、完全に連結されてもよい。しかしながら、追加構造を課すことは、ＱＵＢＯ最適化を簡易化することができる。本方法は、結果として起こるＱＵＢＯを、近接行列Ａによって指定される量子ビット連結度Ｃｎを有する量子プロセッサハードウェア上で最適化することができるように、それらの追加的な制約に関して辞書をどのように学習するかを説明し、Ｃｎは、完全には連結されないことがある。上述したように、典型的なＱＵＢＯ式（すなわち、式３）のＱｉｊ要素は、（ＤＴＤ）ｉｊ＝ｄｉＴｄｊによって与えられてもよい。不完全な連結度Ｃｎを有する量子プロセッサへのマッピング（例えば、式４）では、結合されていない量子ビットｉおよびｊのペアは、ｄｉＴｄｊ＝０であることを必要とし、またはｄｉおよびｄｊが直交していることを必要とする。入力信号Ｎの次元および辞書要素Ｋの数に応じて、ＤＴＤがＣｎ連結度を有するようにＤを定義する方法が存在しないことがある。そのようなケースでは、圧縮機構が修正されてもよい。
【００７２】
しかしながら、Ｎ＞＞Ｋであること、および任意の連結度Ｃｎに対する辞書Ｄを構築することが可能であることを仮定すると、ＤＴＤの（α、α’）要素（ブール変数ｗｉ（α）とｗｉ（α’）との間の連結度を判定する）は、＜ｄ（α），ｄ（α’）＞であり、Ｄ＝［ｄ（１）…ｄ（Ｋ）］でありｄ（α）およびｄ（α’）は、Ｄの列である。よって、Ｋ×Ｋ行列ＤＴＤに対する連結度Ｃｎを指定することは、連結されていない頂点のベクトルが直交するようにベクトルをＫの頂点のグラフに関連付けることに等しい。所与のグラフ構造Ｇ＝（Ｖ，Ｅ）に対してこれを行うことができるか否かは、連結度Ｅ、およびアトムｄ（α）の次元の両方に依存する。概して、ベクトルの次元がＫ＝｜Ｖ｜に等しい場合に、連結されていない頂点のベクトルが直交するようにベクトルをＫの頂点のグラフに関連付けることを達成することができる。しかしながら、本開示に従って、最小次数ノード（ｍｉｎｉｍｕｍ  ｄｅｇｒｅｅ  ｎｏｄｅ）が少なくとも｜Ｖ｜−ｄの隣接ノードを有する、ｄ≧１の次元における特徴を発見することによってこれを改善することができる。例えば、５の最小次数を有する連結度を有する量子プロセッサアーキテクチャは、少なくともＫ−５の次元を必要とすることがある。
【００７３】
上述したように、所与の辞書Ｄに対し、式２および／または４における重みｗｉは、量子プロセッサ、例えば、断熱的量子計算および／または量子アニーリングを実装する量子プロセッサを使用して最適化されてもよい。反対に、ブール変数ｗｉの所与の割り当てに対し、辞書Ｄは、古典的デジタルプロセッサまたは古典的アナログプロセッサなどの非量子プロセッサを使用して最適化されてもよい。
【００７４】
Ｎが十分に大きいことを仮定して、ＤＴＤの連結度制約に考慮しながら辞書が適合されてもよい。ブロック座標降下法は、要求される直交性制約を満たすいくつかの初期辞書Ｄ（０）から開始して適用されてもよい。例えば、Ｌｏｖａｓｚ直交性構築（Ｌ．Ｌｏｖａｓｚ，Ｍ．Ｓａｋｓ，ａｎｄ  Ａ．Ｓｃｈｒｉｊｖｅｒ，Ａ  ｃｏｒｒｅｃｔｉｏｎ：Ｏｒｔｈｏｇｏｎａｌ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ  ａｎｄ  ｃｏｎｎｅｃｔｉｖｉｔｙ  ｏｆ  ｇｒａｐｈｓ．Ｌｉｎｅａｒ  Ａｌｇ．Ａｐｐｌ．，ｐａｇｅｓ  １０１−１０５，（ｐａｇｅｓ  ４３９−４５４も参照）２０００）を使用して、Ｎ≧Ｋのときに初期辞書が発見されてもよい。辞書Ｄ（０）の最初から、重みをｗ（１）←ｗ（Ｄ（０））に更新するために（例えば、式４を使用して）量子プロセッサが使用されてもよい。例えば、初期の重みｗ（１）を更新するために量子プロセッサが使用されてもよい。辞書Ｄ（０）の最初から重みが更新されると、辞書をＤ（１）←Ｄ（ｗ（１））に更新するためにプロセッサが使用されてもよく、Ｄ＝［ｄ（１）…ｄ（Ｋ）］であり、および
【数１８】
0006465876.tif 000019
である。
【００７５】
原則として、本方法は、任意の隣接行列Ａα，α’に適合することができる。辞書の相互作用（ｄｉｃｔｉｏｎａｒｙ  ｉｎｔｅｒａｃｔｉｏｎｓ）は、問題の任意の態様、または問題を解決するために使用されるプロセッサの任意の態様に適合するためにカスタマイズされてもよい。よって、いくつかの適用では、結果として起こるＱＵＢＯ問題が、量子プロセッサの連結度に一致する連結度、または少なくとも量子プロセッサにマッピングされるように従順な連結度を有するように、隣接行列Ａα，α’を意図的に作成することが有利であることがある。本方法に従って、辞書の相互作用から生じるＱＵＢＯ問題は、量子プロセッサの連結度に一致するように辞書を制限することによって、量子プロセッサによって解決されるように特に良好に適合されてもよい。
【００７６】
例えば、辞書をＤ（１）に更新するために、デジタルプロセッサまたは古典的アナログプロセッサなどの非量子プロセッサが使用されてもよい。この手順に続いて、更新式ｗ（ｔ＋１）←ｗ（Ｄ（ｔ））およびＤ（ｔ＋１）←Ｄ（ｗ（ｔ＋１））は、大域的最小または局所的最小などの、式２の最小に収束するまで繰り返されてもよい。
【００７７】
上述したように、ｗ（Ｄ）に対するＱＵＢＯ最小化は、例えば、断熱的量子計算または量子アニーリングを実装する量子プロセッサを使用して実行されてもよい。しかしながら、辞書最適化問題は、非量子プロセッサを使用して対処されてもよく、なぜならば、例えば、Ｄが連続的となることがあるからである。例えば、局所探索アプローチが実装されてもよく、それによって、辞書の小さなサブセットが改善される。ｌｏｃａｌＭｏｄｉｆｉｃａｔｉｏｎ（Ｄ）が局所的に改善された辞書を生み出す場合、最適化の全体的な構造は、アルゴリズム１において与えられる。
【００７８】
【表１】
0006465876.tif 000020
【００７９】
ｗの更新の間で使用される局所的修正の数は、アルゴリズムのパラメータである。よって、そのような局所探索アプローチは、単一の列修正、２つの列修正、および３つ以上の列修正を含む、種々のｌｏｃａｌＭｏｄｉｆｉｃａｔｉｏｎ（Ｄ）修正に分解されてもよい。
【００８０】
単一の列修正のための例示的な手順がここで説明される。単一の列（例えば、列１）を更新することを考慮し、および
【数１９】
0006465876.tif 000021
を記述すると、ｄ（１）は、それらがノード１に隣接していないそれらの列の直交補空間に存在することがあり、Ｄのゼロ空間は、直交するはずであるＤの非隣接列を参照することがある。次いで、ｄ（１）＝Ｎ（１）ｔ（１）であり、Ｎ（１）の列は、
【数２０】
0006465876.tif 000022
のゼロ空間に対する基底を定義する。よって、最も一般的に、
【数２１】
0006465876.tif 000023
である。全てのパラメータを最適化するために、ブロック座標降下法が適用されてもよい。｛ｗｉ｝ブロック座標最小化が、前の式４のＱＵＢＯ最小化を使用して実行されてもよい。所与の｛ｗｉ｝に対するｄ（１）を判定するために、再構築誤りを最小化し、
【数２２】
0006465876.tif 000024
ここで、
【数２３】
0006465876.tif 000025
である。
【００８１】
ｔ上での最小化は、
【数２４】
0006465876.tif 000026
となるように
【数２５】
0006465876.tif 000027
を生み出す。この更新ルールは、列１が使用されないとき、すなわち、
【数２６】
0006465876.tif 000028
のときに適用可能でないことがある。このケースでは、列１が後続の繰り返しにおいて使用される可能性が高くなるように、ｄ（１）を設定することを試みることが有利となることがある。単一ビットが１つのトレーニング例で反転される場合（すなわち、
【数２７】
0006465876.tif 000029
となるように）、新たな列を利用する可能性が最も高いトレーニング例が
【数２８】
0006465876.tif 000030
となるように、
【数２９】
0006465876.tif 000031
における再構築誤りに留意されたい。この選択で、
【数３０】
0006465876.tif 000032
となる。
【００８２】
２つの列修正に対する例示的な手順がここで説明される。Ｄの２つの列ｄ（１）およびｄ（２）は、例えば、同時に最適化されてもよい。最適化アプローチは、列がＡにおいて隣接しているか、または隣接していないかに応じて分岐してもよい。
【００８３】
ｄ（１）とｄ（２）との間に追加の直交性制約が存在しないように列ｄ（１）およびｄ（２）が隣接ノードに対応する例では、
【数３１】
0006465876.tif 000033
である。最適な線形結合は、
【数３２】
0006465876.tif 000034
として取得されてもよく、ここで、
【数３３】
0006465876.tif 000035
であり、ｒ（１）およびｒ（２）は、重み付け誤り残余である。次いで、ｔ（１）およびｔ（２）を結合する行列が、
【数３４】
0006465876.tif 000036
として反転されてもよく、
【数３５】
0006465876.tif 000037
であり、それによって、
【数３６】
0006465876.tif 000038
となる。
【００８４】
【数３７】
0006465876.tif 000039
であるケースでは、行列は単数であり、その疑似逆が使用されてもよい。
【数３８】
0006465876.tif 000040
または
【数３９】
0006465876.tif 000041
のいずれかがゼロである場合、最大誤りを有する例の再構築誤りを最小化するために、同一の反事実引数（ｃｏｕｎｔｅｒｆａｃｔｕａｌ  ａｒｇｕｍｅｎｔ）が列を設定するのに適用されてもよい。
【００８５】
２つの列ｄ（１）およびｄ（２）が非隣接する例では、
【数４０】
0006465876.tif 000042
であることが要求されることがあり、ここで、
【数４１】
0006465876.tif 000043
である。
【００８６】
二次直交性制約および実現可能な組の非凸特性によってこの問題を困難にすることがある。局所的最小を発見するために、ＫＫＴ式が直交性制約に対して解決されてもよい。Ｌａｇｒａｎｇｉａｎは、
【数４２】
0006465876.tif 000044
であり、μは、直交性制約に対するＬａｇｒａｎｇｅ乗算器である。ＫＫＴ条件は、μが直交性制約に対するＬａｇｒａｎｇｅ乗算器である場合である。ＫＫＴ条件は、
【数４３】
0006465876.tif 000045
であり、
【数４４】
0006465876.tif 000046
を定義する。ＫＫＴ式は、Ｍ（μ）ｔ＝ｖとして記述されてもよく、およびｔＴＡｔ＝０であり、Ｍ（μ）ｔ＝Ｉ＋μＡである。それらの式に対する解は、以下のように発見されてもよい。
【００８７】
Ｍ（μ）が単数でない場合、ｔ＝Ｍ−１（μ）ｖが直交性制約＜Ｍ−１（μ）ｖ，ＡＭ−１（μ）ｖ≧０を満たす可能性は低い。よって、ＫＫＴ式を解決するために、ｔ＝Ｍ（μ）＋ｖ＋ＶτとなるようにＭ（μ）を単数とするためにμを設定する必要があることがあり、Ｍ＋は、ＭのＭｏｏｒｅ−Ｐｅｎｒｏｓｅ逆であり、Ｖは、Ｍ（μ）のゼロ空間に対する基底である。このようにして、直交性を維持するためにτを設定する自由度が十分である可能性が高い。
【数４５】
0006465876.tif 000047
が
【数４６】
0006465876.tif 000048
としてＭ（μ）を単数とし、ここで、
【数４７】
0006465876.tif 000049
であることに留意されたい。いくつかの例では、ｔ＝ｖμ＊＋Ｖτであり、ｖμ＊＝Ｍ＋（μ＊）ｖであり、Ｖは、ゼロ空間に対する基底である。係数τは、最後の直交性式が解決されることを要求することによって設定されてもよく、
【数４８】
0006465876.tif 000050
であるが、ＡＶ＝（Ｍ（μ＊）Ｖ−ＩＶ）／μ＊＝ＩＶ／μ＊であり、それによって、
【数４９】
0006465876.tif 000051
となる。
【００８８】
この最後の式は、楕円体（ｅｌｌｉｐｓｏｉｄ）
【数５０】
0006465876.tif 000052
上でベクトルｒを発見し、およびτ＝ＶＴ（ｒ−ｖμ＊）を設定することによって解決されてもよい。ｔに代わってｔ＝（Ｉ−ＶＶＴ）ｖμ＊＋ＶＶＴｒに従う。
【００８９】
３つ以上の列更新に対する例示的な手順がここで説明される。これは、例えば、より多数の列を最適化するＫＫＴ条件に基づいて、２つの列更新を拡張することによって達成されてもよい。例として、その２つの隣接が中心変数である３列（変数）のＫＫＴ式を考慮する。中心変数の２つの隣接が相互に隣接していない場合、単一の乗算器が導入される必要となることがある。このケースでは、ＫＫＴ式は、
【数５１】
0006465876.tif 000053
であり、（２）は、中心スピン（ｃｅｎｔｒａｌ  ｓｐｉｎ）を表し、（１）および（３）は、相互に隣接しない（２）の隣接である。このケースでは、
【数５２】
0006465876.tif 000054
であり、それによって、Ｍ（μ）ｔ＝ｖであり、ｔＴＡｔ＝０であり、このケースでは、Ｍ（μ）が単数であるようにμを判定することは、より直接的でないことがある。しかしながら、
【数５３】
0006465876.tif 000055
を定義することによって、
【数５４】
0006465876.tif 000056
に従う。同様に、
【数５５】
0006465876.tif 000057
を定義することによって、
【数５６】
0006465876.tif 000058
の場合に、
【数５７】
0006465876.tif 000059
につながる。
【００９０】
よって、例えば、選択
【数５８】
0006465876.tif 000060
で行うことができる、上記式を解決するようにμを設定することによって、Ｍ（μ）を単数にすることができ、ここで、
【数５９】
0006465876.tif 000061
および
【数６０】
0006465876.tif 000062
である。
【００９１】
上記２つの式を満たす、
【数６１】
0006465876.tif 000063
に対するいずれかの選択を仮定すると、
【数６２】
0006465876.tif 000064
を設定することによってＭ（μ＊）を単数とすることができる。μ＊を認識することで単数値の分解
【数６３】
0006465876.tif 000065
（これからＭ（μ＊）＝ＶＳＴＳＶＴである）
【数６４】
0006465876.tif 000066
（これからＭ（μ＊）＝νＳＴＳνＴである）
が、ゼロ空間を判定するために使用されてもよく、ｔ＝Ｖμ＊＋Ｖτであり、次いで、Ｖμ＊＝Ｍ＋（μ＊）ｖ．τが２つの列非隣接のケースにあったものとして判定されてもよい。
【００９２】
ニュートンの方法が使用されてもよい。ν（μ）は、０に最も近いＭ（μ）の固有値を与える関数である（これは、良好な開始点を仮定して瞬時に収束することができる、反復Ｌａｎｃｚｏｓ方法で取得されてもよい。良好な開始点は、例えば、最後のニュートンステップにおいて取得される近隣のμにおける固有ベクトルを使用して利用可能である）。ニュートンの方法を使用してν（μ）＝０を解決することは、例えば、導関数δλν（μ）を＜ａ，Ａａ＞として供給することによって加速されてもよく、ａは、０に最も近い固有値に対応する固有ベクトルである。ν（μ＊）＝０を満たすμ＊を認識することで、ＶＳＶＴ＝Ｍ（μ＊）の単数値の分解が実行されてｔ＝ｖμ＊＋Ｖτを提供してもよく、ｖμ＊＝Ｍ＋（μ＊）ｖ．τは、上述した２つの列更新非隣接のケースにあったものとして厳密に判定されてもよい。
【００９３】
改善された再構築は、より多数の辞書アトム（すなわち、より大きいＫ）で取得されてもよい。Ｎ＜Ｋの構築された辞書を学習するときの直交性制約を満たすために、入力信号は、少なくともＫの次元を有する空間にマッピングされてもよい。このマッピングは、線形であってもよく、および別に与えられてもよい。次いで、辞書は、
【数６５】
0006465876.tif 000067
を最小化することによってマッピングされたｙｉをスパースに表すように学習されてもよく、ＢのＦｒｏｂｅｎｉｕｓノルムは、Ｂ＝０、Ｄ＝０、および｛ｗｉ｝＝０の解を防止するために固定されてもよい。ブロック座標降下法は、Ｂ、Ｄおよび｛ｗｉ｝に関してオブジェクトを最小化するために使用されてもよい。Ｂ最小化は比較的直線的となることがあり、なぜならば、オブジェクトが二次的でありおよび制約が単純であるからである。全てのパラメータ学習させることによって、既知のｗからの再構築がｙ＝（ＢＴＢ）−１ＢＴＤｗによって達成されてもよい。
【００９４】
本方法に従って、ＱＵＢＯ問題を解決することは、量子アニーリングまたは断熱的量子計算の実装を含んでもよい。上述したように、典型的な断熱的進化は、式５によって表されてもよく、
Ｈｅ＝（１−ｓ）ＨＩｎ＋ｓＨｆ      （５）
ＨＩｎは、初期ハミルトニアンであり、Ｈｆは、最終または「問題」ハミルトニアンであり、Ｈｅは、進化または瞬時ハミルトニアンであり、ｓは、進化の速度を制御する進化係数である。概して、ｓは、ｓ（ｔ）としての時間ｔで０から１へと変化することがある。例えば、Ａｍｉｎ，Ｍ．Ｈ．Ｓ．，“Ｅｆｆｅｃｔ  ｏｆ  ｌｏｃａｌ  ｍｉｎｉｍａ  ｏｎ  ｑｕａｎｔｕｍ  ａｄｉａｂａｔｉｃ  ｏｐｔｉｍｉｚａｔｉｏｎ”，ＰＲＬ  １００，１３０５０３（２００８）で説明される、断熱的量子計算（「ＡＱＣ」）に対する共通のアプローチは、式６に示される形式の初期ハミルトニアンで開始することであり、
【数６６】
0006465876.tif 000068
ｎは、量子ビットの数を表し、
【数６７】
0006465876.tif 000069
は、ｉ番目の量子ビットに対するＰａｕｌｉ  ｘ行列であり、Δｉは、ｉ番目の量子ビットにおいて帰納される単一の量子ビットトンネル分割（ｔｕｎｎｅｌ  ｓｐｌｉｔｔｉｎｇ）である。ここで、
【数６８】
0006465876.tif 000070
項は、「非対角」項の例である。この形式の初期ハミルトニアンは、例えば、以下の形式の最終ハミルトニアンに進化してもよく、
【数６９】
0006465876.tif 000071
ここで、ｎは、量子ビットの数を表し、
【数７０】
0006465876.tif 000072
は、ｉ番目の量子ビットに対するＰａｕｌｉ  ｚ行列であり、ｈｉおよびＪｉ、ｊは、各量子ビットに結合される次元なし局所場であり、εは、Ｈｆに対するいくつかの特有のエネルギースケールである。ここで、
【数７１】
0006465876.tif 000073
および
【数７２】
0006465876.tif 000074
の項は、「対角」項の例である。本明細書および添付の特許請求の範囲の全体を通じて、用語「最終ハミルトニアン」および「問題ハミルトニアン」は、交換可能に使用される。本方法の種々の実施形態では、最小化問題は、ＱＵＢＯに変換され、ＱＵＢＯは、プロセッサハードウェアにおける問題ハミルトニアンに直接マッピングされる。式６および７それぞれにおけるＨＩｎおよびＨｆなどのハミルトニアンは、種々の異なる方法で物理的に実現されてもよい。特定の例は、超伝導量子ビットの実装によって実現される。
【００９５】
図１は、ＡＱＣ（および／または量子アニーリング）に対して設計された超伝導量子プロセッサ１００の一部の概略図である。図１に示される超伝導量子プロセッサ１００の一部は、２つの超伝導量子ビット１０１、１０２、およびそれらの間で情報を連結する調節可能ＺＺ−カプラ１１１を含む。図１に示される量子プロセッサ１００の一部は、２つの量子ビット１０１、１０２、および１つのカプラ１１１のみを含むが、当業者は、量子プロセッサ１００が任意の数の量子ビット、およびそれらの間で情報を連結する任意の数の連結デバイスを含んでもよいことを理解するであろう。
【００９６】
図１に示される量子プロセッサ１００の一部は、式６によって説明されたハミルトニアンでシステムを初期化し、および式５によって説明された進化に従って、式７によって説明されたハミルトニアンにシステムを進化させることによって、ＡＱＣを物理的に実現するように実装されてもよい。本方法の種々の実施形態では、式７によって説明されたハミルトニアンの、基底状態などの低エネルギー状態を判定することは、ＱＵＢＯ問題に直接マッピングしてもよく、ＱＵＢＯ問題は、スパース最小二乗問題などの最小化問題を符号化する。ＱＵＢＯと問題ハミルトニアンとの間のこのマッピングは、少なくとも部分的に、式７によって説明されたハミルトニアンにおけるパラメータへのプログラム可能な割り当てによって達成される。したがって、式７によって説明されたハミルトニアンの基底状態を判定するように量子プロセッサ１００を進化させることは、ＱＵＢＯ問題を解決し、それは、最小化問題を効率的に解決する。量子プロセッサ１００は、量子プロセッサ１００の状態を構成および制御するために使用される複数のプログラミングインタフェース１２１〜１２５を含む。プログラミングインタフェース１２１〜１２５の各々は、示されるように、プログラミングシステム（図示せず）と通信する、それぞれの誘導結合構造によって実現されてもよい。そのようなプログラミングシステムは、量子プロセッサ１００とは別個であってもよく、またはそれは、米国特許第７，８７６，２４８号明細書（米国特許出願公開第２００８−０２１５８５０号明細書に対応する）および米国特許第８，０３５，５４０号明細書に説明されるように局所的に含まれてもよい（すなわち、量子プロセッサ１００を有するチップ上で）。
【００９７】
量子プロセッサ１００の動作では、プログラミングインタフェース１２１および１２４は各々、磁束信号を、量子ビット１０１および１０２のそれぞれの複合ジョセフソン接合１３１および１３２にそれぞれ結合するために使用されてもよく、それによって、システムハミルトニアンにおけるΔｉの項を実現する。この結合は、式６によって説明されたハミルトニアンの非対角σｘ項を提供し、それらの磁束信号は、「無秩序信号」の例である。同様に、プログラミングインタフェース１２２および１２３は各々、磁束信号を量子ビット１０１および１０２のそれぞれの量子ビットループに結合するために使用されてもよく、それによって、システムハミルトニアンにおけるｈｉ項を実現する。この結合は、式７の対角σｚ項を提供する。さらに、プログラミングインタフェース１２５は、磁束信号をカプラ１１１に結合するために使用されてもよく、それによって、システムハミルトニアンにおけるＪｉｊ項を実現する。この結合は、式７の対角σｚｉσｚｊ項を提供する。図１では、プログラミングインタフェース１２１〜１２５の各々のシステムハミルトニアンに対する寄与は、ボックス１２１ａ〜１２５ａにおいてそれぞれ示される。
【００９８】
本明細書および添付の特許請求の範囲の全体を通じて、用語「量子プロセッサ」は概して、量子ビットの集合（例えば、量子ビット１０１および１０２）ならびにカプラ（例えば、カプラ１１１）を説明するために使用される。量子ビット１０１および１０２ならびにカプラ１１１は、量子プロセッサ１００の「計算要素」と称される。量子プロセッサに関連して、用語「プログラミングサブシステム」は概して、量子プロセッサ（例えば、プロセッサ１００）に含まれるプログラミング要素（例えば、プログラミングインタフェース１２２、１２３、および１２５）、ならびに他の関連する制御回路または命令を説明するために使用される。上述したように、オペレーショナルサブシステムのプログラミング要素は、量子プロセッサとは別個であってもよく、またはプロセッサ上に局所的に含めることができるプログラミングシステムと通信してもよい。同様に、量子プロセッサに関連して、用語「進化サブシステム」は概して、量子プロセッサ１００の計算要素を進化させるために使用される、進化要素１２１、１２４を説明するために使用される。例えば、進化サブシステムは、アニーリング信号線、および量子ビット（１０１、１０２）へのそれらの対応するインタフェース（１２１、１２４）を含んでもよい。
【００９９】
図１で説明される例示的な量子プロセッサは、式４のＱＵＢＯ問題を最小化して、所与の辞書Ｄ０に対するブール重みｗ１の値を判定するために使用されてもよい。判定されたブール重みｗ１の値を使用して、非量子プロセッサは、辞書Ｄに対する式２を最適化して、新たな辞書Ｄ１を作成するために使用されてもよい。次いで、図１で説明される例示的な量子プロセッサは、式４のＱＵＢＯ問題を最小化して、新たな辞書Ｄ１に対するブール重みｗ２の値を判定するために使用されてもよく、次いで、非量子プロセッサは、式２を最適化して、新たな辞書Ｄ２を作成するために新たなブール重みｗ２を使用してもよい。この処理は、重みｗｉおよび／または辞書Ｄの収束など、いくつかの解判定基準が満たされるまで継続してもよい。
【０１００】
本明細書で説明される種々の実施形態は、圧縮検知の技術を採用することによって、計算問題を解決するために量子プロセッサを使用する方法を提供する。概して、それらの方法は、オブジェクト（例えば、式２）を連続して最適化することを含み、各々の連続した最適化は、第１のパラメータ（例えば、辞書Ｄ）および第２のパラメータ（例えば、ブール重みｗｉ）の最適化の間で交互に入れ替わる。
【０１０１】
図２は、式１で与えられたオブジェクトを最小化する方法２００を示すフローチャートである。方法２００は、７つの動作２０１〜２０７を含み、当業者は、代替的な実施形態では、一定の動作が省略されてもよく、および／または追加の動作が追加されてもよいことを理解するであろう。当業者は、示された順序の動作が例示のみを目的に示されており、代替的な実施形態では変更されてもよいことを理解するであろう。２０１では、式１のスパース最小二乗問題における重みｗｉは、ブール変数として再型変換され、それによって、式１は式２にマッピングされる。重みｗｉをブール変数として再型変換することによって、量子プロセッサを使用して最適化されるのに良好に適合されたＱＵＢＯ問題に式１がマッピングされることが可能になる。このマッピングは、例えば、デジタルプロセッサなどの非量子プロセッサを使用して実行されてもよい。２０２では、式２における辞書Ｄに対する初期値が設定される。辞書Ｄに対する初期値は、Ｄ０に対応する。辞書Ｄ０に対する初期値は、例えば、ランダムに、またはいくつかの知識もしくは基準に基づいて推測することによって設定されてもよい。２０３では、式２は、辞書Ｄ０に対する初期値に対応するブール重みｗｉの値に対して最適化される。この最適化は、処理ｗ１←ｗ（Ｄ０）に対応するｗ１によって与えられるブール重みに対する初期値を生成し、および例えば、式４によって与えられるＱＵＢＯ問題を最小化するために量子プロセッサを使用することによって達成されてもよい。２０４では、式２は、ブール重みｗ１に対する初期値に対応する辞書Ｄに対して最適化される。この最適化は、処理Ｄ１←Ｄ（ｗ１）に対応するＤ１によって与えられる辞書に対する第２の組の値を生成し、ならびに例えば、上述した単一の列更新、２つの列更新、および／または３つ以上の列更新に対する手順に従って、辞書の列を更新するために非量子プロセッサを使用することによって達成されてもよい。
【０１０２】
２０５では、式２は、辞書Ｄ１に対する第２の組の値に対応するブール重みｗｉの値に対して最適化される。この最適化は、処理ｗ２←ｗ（Ｄ１）に対応するｗ２によって与えられるブール重みに対する第２の組の値を生成し、および例えば、式４によって与えられるＱＵＢＯ問題を最小化するために量子プロセッサを使用することによって達成されてもよい。２０６では、式２は、ブール重みｗ２に対する第２の組の値に対応する辞書Ｄに対して最適化される。この最適化は、処理Ｄ２←Ｄ（ｗ２）に対応するＤ２によって与えられる辞書に対する第３の組の値を生成し、ならびに例えば、上述した単一の列更新、２つの列更新、および／または３つ以上の列更新に対する手順に従って、辞書の列を更新するために非量子プロセッサを使用することによって達成されてもよい。
【０１０３】
２０７では、動作２０３〜２０６で説明された前後最適化は、いくつかの解判定基準が満たされるまで繰り返される。すなわち、式２は、例えば、式４を最小化するために量子プロセッサを使用して処理ｗｔ＋１←ｗ（Ｄｔ）に対応する各々の辞書Ｄｔを考慮してブール重みｗｔ＋１の値に対して最適化され、および例えば、辞書Ｄｔ＋１の列を更新するために非量子プロセッサを使用して、処理Ｄｔ＋１←Ｄ（ｗｔ＋１）に対応するブール重みｗｔ＋１の各々の組を考慮して辞書Ｄｔ＋１に対して最適化される。この処理が、いくつかの解判定基準が満たされるまで、例えば、辞書Ｄ、またはブール重みｗｉに対する値の組のうちの少なくとも１つが収束するまで、続いてもよい。
【０１０４】
方法２００における２０２では、最適化手順は、辞書Ｄ０に対する初期値を設定し、およびそれらの値を使用することによって効率的に開始し、２０３では、ブール重みｗ１の値を最適化する。しかしながら、最適化手順はまた、ブール重みｗ１に対する初期値を設定し、および辞書Ｄ１を最適化するためにそれらの値を使用することによって開始してもよい。
【０１０５】
図３は、式１で与えられたオブジェクトを最小化する方法３００のフローチャートである。方法３００は、７つの動作３０１〜３０７を含み、当業者は、代替的な実施形態では、一定の動作が省略されてもよく、および／または追加の動作が追加されてもよいことを理解するであろう。当業者は、示された順序の動作が例示のみを目的に示されており、代替的な実施形態では変更されてもよいことを理解するであろう。方法３００は、方法３００の３０２では、ブール重みｗ１に対する初期値が設定され、方法２００の２０２では、辞書Ｄ０に対する初期値が設定されることを除いて、図２からの方法２００と実質的に同様である。３０２では、ブール重みｗ１に対する初期値はランダムに設定されてもよく、またはいくつかの知識もしくは基準に基づいて推測することによって設定されてもよい。次いで、方法３００は、動作３０３〜３０７に進んで、いくつかの解判定基準が満たされるまで、処理Ｄｔ←Ｄ（ｗｔ）に従ってブール重みｗｔに基づいて辞書Ｄｔに対する式２を連続して最適化してもよく（例えば、辞書の列を更新するために非量子プロセッサを使用して）、および処理ｗｔ＋１←ｗ（Ｄｔ）に従って辞書Ｄｔに基づいてブール重みｗｔ＋１を連続して最適化してもよい（例えば、式４のＱＵＢＯを最小化するために量子プロセッサを使用して）。例示的な解判定基準は、辞書Ｄおよびブール重みｗｉのうちの少なくとも１つの収束である。
【０１０６】
本明細書全体を通じて、オブジェクト、例えば、スパース最小二乗問題における辞書に対する値の少なくとも一部を更新するために非量子プロセッサが使用される、本方法の種々の実施形態が説明される。しかしながら、本方法に従って、量子プロセッサは、オブジェクト、例えば、スパース最小二乗問題における辞書に対する値の少なくとも一部を更新するために採用されてもよい。例えば、本方法は、２０１１年７月６日に出願され、「Ａｐｐｌｉｃａｔｉｏｎｓ  ｏｆ  Ｈａｒｄｗａｒｅ  Ｂｏｌｔｚｍａｎｎ  Ｆｉｔｓ」と題する米国仮特許出願第６１／５０５，０４４号明細書、２０１１年８月５日に出願され、「Ａｐｐｌｉｃａｔｉｏｎｓ  ｏｆ  Ｈａｒｄｗａｒｅ  Ｂｏｌｔｚｍａｎｎ  Ｆｉｔｓ」と題する米国仮特許出願第６１／５１５，７４２号明細書、２０１１年９月２８日に出願され、「Ａｐｐｌｉｃａｔｉｏｎｓ  ｏｆ  Ｈａｒｄｗａｒｅ  Ｂｏｌｔｚｍａｎｎ  Ｆｉｔｓ」と題する米国仮特許出願第６１／５４０，２０８号明細書、２０１１年１０月２１日に出願され、「Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｍｉｎｉｍｉｚｉｎｇ  ａｎ  Ｏｂｊｅｃｔｉｖｅ  Ｆｕｎｃｔｉｏｎ」と題する米国仮特許出願第６１／５５０，２７５号明細書、および２０１１年１１月９日に出願され、「Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｍｉｎｉｍｉｚｉｎｇ  ａｎ  Ｏｂｊｅｃｔｉｖｅ  Ｆｕｎｃｔｉｏｎ」と題する米国仮特許出願第６１／５５７，７８３号明細書で説明されるシステムおよび方法を適用することによって、ブール重みに対する値の（ｎ−１）番目の組に基づいて辞書に対する値のｎ番目の組に対するオブジェクトを最適化するために量子プロセッサを採用することを含んでもよい（すなわち、動作２０４、２０６、２０７、３０３、３０５、および３０７は、辞書を最適化するために量子プロセッサを採用してもよい）。本方法に従って、量子プロセッサはまた、２０１１年７月６日に出願され、「Ａｐｐｌｉｃａｔｉｏｎｓ  ｏｆ  Ｈａｒｄｗａｒｅ  Ｂｏｌｔｚｍａｎｎ  Ｆｉｔｓ」と題する米国仮特許出願第６１／５０５，０４４号明細書、２０１１年８月５日に出願され、「Ａｐｐｌｉｃａｔｉｏｎｓ  ｏｆ  Ｈａｒｄｗａｒｅ  Ｂｏｌｔｚｍａｎｎ  Ｆｉｔｓ」と題する米国仮特許出願第６１／５１５，７４２号明細書、２０１１年９月２８日に出願され、「Ａｐｐｌｉｃａｔｉｏｎｓ  ｏｆ  Ｈａｒｄｗａｒｅ  Ｂｏｌｔｚｍａｎｎ  Ｆｉｔｓ」と題する米国仮特許出願第６１／５４０，２０８号明細書、２０１１年１０月２１日に出願され、「Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｍｉｎｉｍｉｚｉｎｇ  ａｎ  Ｏｂｊｅｃｔｉｖｅ  Ｆｕｎｃｔｉｏｎ」と題する米国仮特許出願第６１／５５０，２７５号明細書、および２０１１年１１月９日に出願され、「Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｍｉｎｉｍｉｚｉｎｇ  ａｎ  Ｏｂｊｅｃｔｉｖｅ  Ｆｕｎｃｔｉｏｎ」と題する米国仮特許出願第６１／５５７，７８３号明細書で教示されるシステムおよび方法を適用することによって、辞書に対する値の（ｎ−１）番目の組に基づいてブール重みに対する値のｎ番目の組に対するオブジェクト（例えば、オブジェクトの非ＱＵＢＯ定式化）を最適化する���めに採用されてもよい（すなわち、動作２０３、２０５、２０７、３０４、３０６、および３０７は、ブール重みを最適化するために量子プロセッサを採用してもよい）。
【０１０７】
本明細書および添付の特許請求の範囲の全体を通じて、用語「非量子プロセッサ」は、計算処理において、重ね合わせおよび／またはもつれなどの、量子現象を直接利用しない、任意の形式のプロセッサまたは処理システムを表すために使用される。非量子プロセッサの例は、古典的デジタルマイクロプロセッサ（例えば、Ｉｎｔｅｌ  ｉ７  ｑｕａｄ  ｃｏｒｅ（登録商標）プロセッサなどのＩｎｔｅｌ  Ｐｅｎｔｉｕｍ（登録商標）プロセッサ、Ｉｎｔｅｌ  Ａｔｏｍ（登録商標）プロセッサ、ＡＲＭ  Ｃｏｒｔｅｘ（登録商標）ＣＰＵ）、フィールドプログラマブルゲート配列（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）またはグラフィカルプロセッサユニット（ＧＰＵ、例えばＮｖｉｄｉａ  ＧＰＵ）、および古典的アナログプロセッサを含む。
【０１０８】
図４は、本方法で説明されるデジタル処理タスクを実行するために使用することができるデジタルプロセッサ４０６を含む例示的なデジタルコンピューティングシステム４００を示す。当業者は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能家庭用電化製品、パーソナルコンピュータ（「ＰＣ」）、ネットワークＰＣ、ミニコンピュータ、およびメインフレームコンピュータなどを含む、他のデジタルコンピューティングシステム構成で本方法を実施することができることを理解するであろう。本方法はまた、分散コンピューティング環境で実施されてもよく、そこでは、タスクもしくはモジュールは、通信ネットワークを通じてリンクされるリモート処理デバイスによって実行される。分散コンピューティング環境では、プログラムモジュールは、ローカルおよびリモートメモリ記憶デバイスの両方に位置してもよい。
【０１０９】
デジタルコンピューティングシステム４００は、少なくとも１つのプロセシングユニット４０６（すなわち、デジタルプロセッサ）、少なくとも１つのシステムメモリ４０８、およびシステムメモリ４０８を含む種々のシステムコンポーネントをデジタルプロセッサ４０６に結合する少なくとも１つのシステムバス４１０を含んでもよい。デジタルコンピューティングシステム４００は時に、本明細書では単数を意味してもよいが、これは、単一のデジタルコンピューティングシステム４００への適用に限定することを意図するものではない。例えば、本方法の全体を通じて含まれる２つ以上のデジタルコンピューティングシステム４００または他の古典的コンピューティングデバイスが存在してもよい。
【０１１０】
デジタルプロセッサ４０６は、１つ以上の中央処理装置（「ＣＰＵ」）、デジタルシグナルプロセッサ（「ＤＳＰ」）、特定用途向け集積回路（「ＡＳＩＣ」）などの、任意の論理プロセシングユニットであってもよい。他に説明がない限り、図４に示される種々のブロックの構造および動作は、従来の設計のものである。結果として、そのようなブロックは、当業者によって理解されるため、本明細書ではさらに詳細に説明される必要はない。
【０１１１】
システムバス４１０は、メモリコントローラ、周辺バス、およびローカルバスを有するメモリバスを含む、任意の既知のバス構造またはアーキテクチャを採用することができる。システムメモリ４０８は、リードオンリメモリ（「ＲＯＭ」）およびランダムアクセスメモリ（「ＲＡＭ」）（図示せず）を含んでもよい。ＲＯＭの一部を形成することができる、基本入出力システム（「ＢＩＯＳ」）４１２は、起動の間など、デジタルコンピューティングシステム４００内の要素間で情報を転送することを支援する基本ルーチンを含む。
【０１１２】
デジタルコンピューティングシステム４００はまた、不揮発性メモリ４１４を含んでもよい。不揮発性メモリ４１４は、ハードディスクから読み取り、およびハードディスクに書き込むハードディスクドライブ、着脱可能光ディスクから読み取り、および着脱可能光ディスクに書き込む光ディスクドライブ、ならびに／または磁気ディスクから読み取り、および磁気ディスクに書き込む磁気ディスクドライブを含む、種々の形式をとってもよい。光ディスクは、ＣＤ−ＲＯＭまたはＤＶＤとすることができ、磁気ディスクは、磁気フロッピーディスクまたはディスケットとすることができる。不揮発性メモリ４１４は、システムバス４１０を介してデジタルプロセッサ４０６と通信してもよく、および不揮発性メモリ４１４とシステムバス４１０との間で結合された適切なインタフェースまたはコントローラ４１６を含んでもよい。不揮発性メモリ４１４は、コンピュータ可読命令、データ構造、ログラムモジュールおよびデジタルコンピューティングシステム４００に対する他のデータのための長期間の記憶としての役割を果たしてもよい。デジタルコンピューティングシステム４００は、ハードディスク、光ディスクおよび／または磁気ディスクを採用するものとして説明されているが、当業者は、磁気カセット、フラッシュメモリカード、Ｂｅｒｎｏｕｌｌｉカートリッジ、ＲＡＭ、ＲＯＭ、スマートカードなどの、他のタイプの不揮発性コンピュータ可読媒体が採用されてもよいことを理解するであろう。
【０１１３】
種々のプログラムモジュール、アプリケーションプログラムおよび／またはデータをシステムメモリ４０８に記憶することができる。例えば、システムメモリ４０８は、オペレーティングシステム４１８、エンドユーザアプリケーションインタフェース４２０、サーバアプリケーション４２２、少なくとも１つのソルバモジュール４２４、および変換モジュール４２８を記憶してもよい。加えて、システムメモリ４０８は、少なくとも１つの量子プロセッサインタフェースモジュール４３２を記憶してもよい。それらのモジュールの動作および機能は、以下でより詳細に論述される。
【０１１４】
システムメモリ４０８はまた、１つ以上のネットワークアプリケーション４３４、例えば、ウェブサーバアプリケーション、および／またはデジタルコンピューティングシステム４００がインターネット、協調イントラネット、もしくは他のネットワークを介してソースと共にサーバコンピュータで実行する他のサーバアプリケーションとデータを交換することを可能にする、ウェブクライアントもしくはブラウザアプリケーションを含んでもよい。示される実施形態におけるネットワークアプリケーション４３４は、ハイパーテキストマークアップ言語（「ＨＴＭＬ」）、拡張可能ハイパーテキストマークアップ言語（「ＸＨＴＭＬ」）、拡張可能マークアップ言語（「ＸＭＬ」）またはワイヤレスマークアップ言語（「ＷＭＬ」）などの、マークアップ言語ベースであってもよく、ならびに文書の構造を表すために文書のデータに追加される区切り文字を構文的に使用するマークアップ言語で動作してもよい。いくつかのウェブサーバアプリケーション、およびウェブクライアントもしくはブラウザアプリケーションは、ＭｏｚｉｌｌａおよびＭｉｃｒｏｓｏｆｔから利用可能なように、商業的に利用可能である。
【０１１５】
図４では、システムメモリ４０８に記憶されているとして示されているが、オペレーティングシステム４１８、ならびに種々のアプリケーション／モジュール４２０、４２２、４２４、４２８、４３２、４３４および他のデータはまた、不揮発性メモリ４１４に記憶されてもよい。
【０１１６】
デジタルコンピューティングシステム４００は、少なくとも１つのクライアントコンピューティングシステム４３６および少なくとも１つのデータベースシステム４７０への論理接続を使用して、ネットワーク環境において動作することができる。それらの論理接続は、デジタル通信の任意の手段を使用して、例えば、ローカルエリアネットワーク（「ＬＡＮ」）、または例えば、インターネットを含むワイドエリアネットワーク（「ＷＡＮ」）などの、ネットワーク４３８を通じて形成されてもよい。ネットワーク環境は、有線もしくは無線企業ワイドコンピュータネットワーク、イントラネット、エクストラネット、および／またはインターネットを含んでもよい。他の実施形態は、電気通信ネットワーク、セルラネットワーク、ページングネットワーク、および他のモバイルネットワークなどの他のタイプの通信ネットワークを含んでもよい。論理接続を介して送信または受信される情報は、暗号化されてもよく、または暗号化されてなくてもよい。ＬＡＮネットワーク環境で使用されるとき、デジタルコンピューティングシステム４００は、アダプタまたはネットワークインタフェースカード（「ＮＩＣ」）４４０（システムバス４１０に通信可能にリンクされる）を通じてＬＡＮに接続されてもよい。ＷＡＮネットワーク環境で使用されるとき、デジタルコンピューティングシステム４００は、ＷＡＮ上で通信を確立するために、インタフェースおよびモデム（図示せず）、またはＮＩＣ４４０などのデバイスを含んでもよい。加えて、または代わりに、非ネットワーク通信が採用されてもよい。
【０１１７】
ネットワーク環境では、プログラムモジュール、アプリケーションプログラム、データ、またはそれらの一部を、デジタルコンピューティングシステム４００の外部に記憶することができる。当業者は、図４に示される論理接続がコンピュータ間で通信を確立するいくつかの例であるにすぎず、他の接続も使用されてもよいことを理解するであろう。
【０１１８】
デジタルコンピューティングシステム４００は概して、自動で動作してもよいが、エンドユーザアプリケーションインタフェース４２０はまた、オペレータがモニタ４４２などの出力デバイス、ならびにキーボード４４４およびポインティングデバイス（例えば、マウス４４６）などの入力デバイスを含む、異なるユーザインタフェース４４８を通じてデジタルコンピューティングシステム４００と対話することができるように設けられてもよい。モニタ４４２は、ビデオアダプタ（図示せず）などのビデオインタフェースを介してシステムバス４１０に結合されてもよい。デジタルコンピューティングシステム４００はまた、スピーカ、プリンタなどの他の出力デバイスを含むことができる。マイクロフォン、ジョイスティック、スキャナなどを含む他の入力デバイスも使用することができる。それらの入力デバイスは、システムバス４１０に結合するシリアルポートインタフェース、パラレルポート、ゲームポート、無線インタフェース、ユニバーサルシリアルバス（「ＵＳＢ」）、または他のインタフェースを介して、デジタルプロセッサ４０６に結合されてもよい。
【０１１９】
ＮＩＣ４４０は、量子ビット（例えば、図１からの量子ビット１０１および１０２）とインタフェースし、ならびに量子プロセッサ（例えば、量子プロセッサ１００）におけるデバイス（例えば、図１からのカプラ１１１）を結合する適切なハードウェアおよび／またはソフトウェアを含んでもよい。他の実施形態では、異なるハードウェアは、デジタルコンピューティングシステム４００と量子プロセッサとの間で通信を促進するために使用されてもよい。
【０１２０】
デジタルコンピューティングシステム４００の量子プロセッサインタフェースモジュール４３２は、量子プロセッサ（例えば、量子プロセッサ１００）を使用して計算上の複合問題の解を調整するためのランタイム命令を含んでもよい。例えば、量子プロセッサインタフェースモジュール４３２は、サーバアプリケーション４２２によって受信されるスパース最小二乗問題の一部を表し、またはそれと等しいＱＵＢＯ問題を解決することを開始させてもよい。これは、例えば、カプラ（例えば、１１１）および量子ビット（例えば、１０１、１０２）それぞれに対する初期結合値および局所バイアス値を設定することを含んでもよい。
【０１２１】
クライアントコンピューティングシステム４３６は、デジタルコンピューティングシステム４００に通信可能に結合する種々のコンピューティングデバイスのいずれを含んでもよく、ならびに問題を適切にフォーマットし、および問題をサーバアプリケーション４２２に直接的または間接的に送信するように構成されたクライアントプログラム４９０を含んでもよい。デジタルコンピューティングシステム４００が解を判定すると、サーバアプリケーション４２２は、この解を示す情報をクライアントプログラム４９０に送信し返すように構成されてもよい。
【０１２２】
本明細書全体を通じて、用語「連結度（ｃｏｎｎｅｃｔｉｖｉｔｙ）」は、仲介量子ビットを使用せずに、量子プロセッサにおける個々の量子ビットの間で通信可能に結合するのに物理的に利用可能な（例えば、アクティブであるか否か）、考えられる通信結合経路の最大数を説明するために使用される。例えば、３の連結度を有する量子ビットは、仲介量子ビットなしに、最大で３つの他の量子ビットに通信可能に結合することが可能である。言い換えると、任意の特定の適用例では、全てではないそれらの通信経路を採用し得るにも関わらず、３つの他の量子ビットに利用可能な通信経路が存在する。量子ビット間で結合デバイスを採用する量子プロセッサでは、これは、３の連結度を有する量子ビットが３つの結合デバイスを介して通信可能に結合可能であることを意味する。従来から、量子プロセッサにおける量子ビットの数は、解決することができる問題のサイズを制限し、および量子プロセッサにおける量子ビット間の連結度は、解決することができる問題の複雑度を制限する。
【０１２３】
計算問題を解決するために量子プロセッサを使用する圧縮検知の技術を採用する種々の実施形態は、広範囲の応用で適用されてもよい。例えば、式２の最小化（式１を表す）は、パターン認識、画像認識、人工知能の適用、ソフトウェア証明および検証、ならびに人工ニューラルネットワークのトレーニングを含む、機械学習アプリケーションなどの任意の学習問題における特徴を生成するために使用されてもよい。さらに、圧縮検知技術は、画像圧縮、音声圧縮、データファイル圧縮、およびビデオ圧縮などの、データ圧縮に向けられる適用で使用されてもよい。よって、本明細書で説明される種々の実施形態は、データ圧縮に量子プロセッサを採用する方法を提供する。
【０１２４】
例えば、ビデオ圧縮の適用では、ｙｉデータセット（式１で導入され、および本明細書全体を通じて使用される）は、ビデオシーケンスからのフレームの組（例えば、ピクセル値、ＲＧＢ値など）を表してもよい。言い換えると、ｙ１は、ビデオシーケンスの第１のフレームに対するピクセル値を含んでもよく、ｙ２は、ビデオシーケンスの第２のフレームに対するピクセル値を含んでもよく、最大でｙｎであり、ビデオシーケンスは、ｎのフレームを含む。対応する辞書要素が学習されると（例えば、本明細書で説明されるような量子プロセッサを介して）、辞書自体が送信されてもよく、完全な（および、一般的には大規模の）ビデオデータの送信は、どの基底要素がフレームごとにアクティブであるかを示す単純ビットの送信に減少されることがある。
【０１２５】
本明細書で説明されるような圧縮検知または処理を実行するために量子プロセッサを使用する技術は、データセット、例えば、画像データの組、または画像データセットを使用して採用されてもよい。例えば、収集されたデータは、ｙｉデータセット（式１および２から）として型変換されてもよく、ならびに本明細書で説明される圧縮検知または処理技術を採用する量子プロセッサを使用して分析されてもよい。よって、ｙｉは、例えば、１つ以上のオブジェクトを含むシーン（ｓｃｅｎｅ）を示す画像データを含んでもよく、あるいは他の有体構造もしくは無体構造（例えば、文字および数字などの英数字）、または物理的活動もしくは値を表してもよい。次いで、本明細書全体を通じて説明されるスパース最小二乗問題を解決する技術は、例えば、データセットから特徴を抽出し（例えば、辞書値Ｄおよび／またはその対応する重みｗｉ）、ならびにデータセットにおけるパターンを効果的に「学習」し、およびそれらのパターンを一定の要因（ｓｔｉｍｕｌｉ）にどのように相関付けるかを「学習」するために採用されてもよい。このようにして、分類器が発展されてもよい。当業者は、デジタルコンピュータが、機械またはロボットシステムなどのシステムに組み込まれてもよく、そのようにして本システムおよび方法は、量子プロセッサを介して、機械またはロボットデバイス上で強化思考制御を有効にすることができる、スパース最小二乗問題への改善された解を判定する技術を提供する。
【０１２６】
図５は、本システムおよび方法に従って、データセットを分析するために量子プロセッサを使用する方法５００を示すフローチャートである。方法５００は、５つの動作５０１〜５０５を含むが、当業者は、代替的な実施形態では、一定の動作が省略されてもよく、および／または追加の動作が追加されてもよいことを理解するであろう。当業者は、示された順序の動作が例示のみを目的に示されており、代替的な実施形態では変更されてもよいことを理解するであろう。５０１では、データセットが収集される。５０２では、データセットが、例えば、図４からのデジタルコンピューティングシステム４００などのデジタルコンピュータに送信される。少なくとも１つのパラメータは、物理オブジェクトもしくは特徴、または非物理的オブジェクト、活動もしくは信号を表す特定のパターンなどの、データセットにおける特定の特徴を示してもよい。５０３では、デジタルコンピュータは、データセットに基づいて目的関数を定式化するために使用され、目的関数は、目的関数が最小化されるときのデータセットに特有な値を採用する、少なくとも１つの変数パラメータを含む。例えば、目的関数は、スパース最小二乗オブジェクト（例えば、式１または式２）を含んでもよく、少なくとも１つのパラメータは、辞書Ｄ、辞書Ｄの構成要素、または対応する重み付けｗを含んでもよい。５０４では、デジタルコンピュータは、量子プロセッサ（図１からの量子プロセッサ１００など）と相互作用して、目的関数を最小化し、およびデータセットに特有な少なくとも１つのパラメータの値を判定するために使用される。目的関数を最小化するためにデジタルコンピュータを介して量子プロセッサと相互作用することは、例えば、図２および３の方法２００および／または３００をそれぞれ含むがそれらに限定されない、本明細書で説明される圧縮検知の種々の技術を採用してもよい。５０５では、データセットに特有の少なくとも１つのパラメータの値が返される。データセットに特有な少なくとも１つのパラメータの値は、例えば、単一辞書要素／ベクトル、またはデータセットからの有用な情報の抽出を促進する要素／ベクトルの完全な辞書を含んでもよい。例えば、本システムおよび方法に従ったスパース最小二乗オブジェクトの最小化は、データセットからユーザ指定命令を抽出することが可能な辞書を学習するために使用されてもよい。辞書は、方法５００の５０５において返されてもよく、その後、いくつかの適用において使用される。例えば、スパース最小二乗オブジェクトを最小化するために量子プロセッサを採用することによって学習される辞書は、機械システムまたはロボットシステムなどの任意の適切なシステムに送信されて、システムがデータセットからユーザ指定命令を抽出することを可能にしてもよい。よって、量子プロセッサが辞書を学習するために採用されると、辞書自体が送信されてもよく、他のシステムは、量子プロセッサをさらに採用する必要なく、ユーザ指定命令を直接解釈し、およびそれに応答するために辞書を使用してもよい。
【０１２７】
図６は、本システムおよび方法に従った、システム６００の例示的な図である。システム６００は、デジタルコンピュータ６０３と通信する画像カメラ６０２を含み、デジタルコンピュータ６０３も量子プロセッサ６０４と通信する。画像カメラ６０２は、木６０１の１つ以上の画像を撮ってもよく、それらの画像の１つ以上は、データセットに対する基底を形成してもよい。データセットは、無線、Ｂｌｕｅｔｏｏｔｈ、ＵＳＢ、シリアル、または通信接続の任意の他の既知の手段を含む通信リンクによってデジタルコンピュータ６０３に送信されてもよい。デジタルコンピュータ６０３は、例えば、図４からのデジタルコンピュータシステム４００と実質的に同一であってもよい。デジタルコンピュータ６０３は、通信接続の任意の既知の手段を介して量子プロセッサ６０４に通信可能に結合される。量子プロセッサ６０４は、例えば、図１からの量子プロセッサ１００と同様であってもよいが、好ましくは、数十、数百、または数千の量子ビットおよび対応する結合デバイスなどの、より多数の量子ビットおよび対応する結合デバイスを採用する。
【０１２８】
上述した（ならびに、図５および６で示された）データを取得および分析するシステムおよび方法は、機械学習の適用を強化するために量子プロセッサを採用する例を表す。本システムおよび方法に従って、媒体または画像データを含む、他の形式のデータを使用して、同様の技術が採用されてもよい。
【０１２９】
１．０  階層型深層学習（ＨＤＬ）ソフトウェアフレームワーク
ＨＤＬソフトウェアフレームワークは、最新式階層型深層学習（ＨＤＬ）アルゴリズムの組を実装するＰｙｔｈｏｎベースのソフトウェアフレームワークである。これらのタイプのアルゴリズムは、人間型認識および知識を機械に吹き込む新たな波のアプローチに根拠をなす。
【０１３０】
エンジニアシステムにおいて人間型認識および知識が望ましい任意のコンテキストで、ＨＤＬソフトウェアフレームワークを使用することができる。例は、
−  画像またはビデオにおけるオブジェクトまたはイベントの検出
−  会話認識および変換
−  エンターテインメントおよびゲームにおける知的エージェント
−  自然言語処理および会話
−  異常、不正およびネットワーク侵入検出
−  新規な医療的診断テストの進歩
−  ロボットシステムに対する新たなタイプの自立性の進化
を含む。
【０１３１】
仮想的に、人間によって良好に固有に現在行われている任意のタスクは、ＨＤＬソフトウェアフレームワークに対する潜在的な適用である。
【０１３２】
ＨＤＬアルゴリズムは、大量のラベル付けされていない未加工（ｒａｗ）データにおける少数の繰り返しパターンを発見することを試みている。次いで、それらの繰り返しパターンは、アルゴリズムがデータを理解するのに使用する「基礎的要素（ｂｕｉｌｄｉｎｇ  ｂｌｏｃｋｓ）」になる。未加工データを扱い、および処理する代わりに、アルゴリズムは、それが学習したパターンを組み合わせることによって、それが組み立てられた表現を扱い、および処理する。再構築と称される、この表現は、元の未加工データストリームにおけるオブジェクトを「模倣する」が、何度も再発する未加工データにおけるパターンに焦点を絞る（したがって、暗黙的に重要であると想定される）。
【０１３３】
この手順は、生物学システム（人間を含む）が、絶え間なく公開される情報の流れをどのようにして理解することが可能であるかを理解する機構を提供する。虎を示す画像、写真または他の媒体において何を見ているかを人間が質問される場合、人間は、虎を見ていると数秒内で回答することが可能である。これは、驚くべき偉業であり、毎秒１０１７の光子は、人間の網膜を打ち付け、および、いずれかの方法でこの情報の膨大な海から、画像の主となる特徴を瞬時に抽出する。
【０１３４】
人間は、その誕生から長年にわたり、その環境から複数の「最大限の繰り返しパターン」を学習したと想定することによって、このタイプの視覚データの理解をＨＤＬフレームワーク内で説明することができる。それらの一部は、非常に低レベルであり、エッジ検出器に類似しており、および一部は、より低レベルの概念から「組み立てられた」虎などの抽象的概念でさえ、非常に高レベルである。
【０１３５】
このフレームワークでは、人間が「見ている」のは、（人間にとって圧倒的な量であり、およびその大部分が人間にとって関心のない）未加工の写真データでないが、世界を理解するためにパターンを共につなぎ合わせることによって、精神において再構築される。「実際にそこにある」ことを人間が認識している人間の直感は、このフレームワークでは偽である。人間の精神内で展開する写真は、既に見たデータにおいて再発することが多いパターンを共につなぎ合わせることに基づいた再構築である。次いで、人間は、検知に影響するデータの「現実性」ではなく、それらの再構築に基づいて推論する。
【０１３６】
それらのアルゴリズムの興味深い態様は、それらが供給されるタイプの未加工データに対して不確かとし得ることである。よって、任意のデータタイプ、またはデータタイプの混在に等しく手順を適用することができる。画像およびビデオデータに加え、音声、触覚、ＥＥＧ、遺伝子、テキスト、または任意の他のタイプのデータを、同様の方法で処理することができる。
【０１３７】
１．１  ＨＤＬソフトウェアフレームワーク
ＨＤＬソフトウェアフレームワークは、階層型半教師あり深層特徴学習のためのＰｙｔｈｏｎフレームワークである。フレームワークは、視覚、聴覚、触覚、ＥＥＧ、ｆＭＲＩ、遺伝子配列、および／またはテキストラベルを含むがそれらに限定されない、多様なデータを扱う能力を有する。具体化されるアルゴリズムは、階層において上位である特徴が、データにおけるより抽象的なパターンを表すことが可能である、半教師あり設定において階層型の組の特徴を学習する。階層の各々の階級で特徴を学習するのに使用される手順は、スパースコーディングと称される。
【０１３８】
階層型学習手順は、階層における後続の階級にスパースコーディング手順を再帰的に適用することに基づいている（スパースコーディング手順をｎ番目のレベルにおいて学習された特徴に適用することによって、ｎ＋１番目のレベルが構築される）。ソフトウェアフレームワークによって、ユーザは、２つの異なるタイプのスパースコーディングアルゴリズムの間で選択することが可能になる。
−  Ｌ１ノルムスパースコーディング。このバージョンは、特徴の実数値で重み付けされた組み合わせから再構築を組み立てることができ、および正則化がＬ１ノルム形式の正則化であることを想定する。このケースにおけるアルゴリズムは効率的である。フレームワークによって、並列化することができるアルゴリズムの態様が多数の（典型的には、数万の）従来型プロセッサにサブミットされる、クラウドコンピューティング環境でユーザが実行することが可能になる。
−  Ｌ０ノルムスパースコーディング。このバージョンによって、重みが０／１変数であり、および正則化がＬ０ノルム形式の正則化である、特徴の組み合わせである再構築が可能になる。それらの制限は、アルゴリズムのこの変形によって学習される異なる特徴につながる。変化は、実変数上での解決可能な凸最適化問題から内在する最適化問題を、二値変数上のＮＰ困難非凸（ＮＰ−ｈａｒｄ  ｎｏｎ−ｃｏｎｖｅｘ）最適化問題に変換する。フレームワークは、主要なアルゴリズムを区分化し、それによって、従来型コンピュータによって最良に提供される態様を、ローカルに、またはクラウドコンピューティング環境のいずれかで実行することができ、および主要な組み合わせ最適化問題を、ソフトウェアソルバを使用してローカルに、ソフトウェアソルバを使用してクラウド上で実行することができ、または量子ハードウェア上で実行することができる。
【０１３９】
ＨＤＬソフトウェアフレームワークは、機械知能が、それが示された入力データをどのように「理解する」ことを理解するために、システムを通じて情報の流れをユーザが理解することを支援する視覚化およびユーザインタフェースツールを含む。
【０１４０】
２．０  Ｌ０ノルムスパースコーディングの議論
Ｌ０ノルムスパースコーディングの困難さを、以下の式の多数のＱＵＢＯの解に減少させることができ、
【数７３】
0006465876.tif 000075
を最小化する
【数７４】
0006465876.tif 000076
を発見する。
【０１４１】
この式は、より典型的なＬ１ノルムのバージョンのスパースコーディング上で利点を有する（例えば、ＭＮＩＳＴの最大限のスパースエンコーディングを得るために）。
【０１４２】
タブー検索の変形が、それらのＱＵＢＯを解決するために使用されてきた。以下は、タブー上の改良のための２つのハードウェア集中戦略である。
【０１４３】
変数ｊおよびｍを連結するＱＵＢＯにおける項は、ｊ番目およびｍ番目の辞書アトム
【数７５】
0006465876.tif 000077
および
【数７６】
0006465876.tif 000078
のドット積に比例する。それらのアトムがそのように見える必要があるものに制限は追加されていないため、それらのドット積は全て、非ゼロとすることができる（辞書アトムは直交する必要はなく、概して、直交しない）。これは、手順によって生じる全ての問題が完全に連結され、各々の変数が一つおきの変数によって影響されることを意味する。
【０１４４】
残念ながら、物理量子コンピューティングチップが組み立てられるとき、この完全な連結度が達成されないことがあり、または達成することが困難である。量子コンピューティングチップは、任意の所与の変数を、比較的少数の他の変数のみと連結されてもよい。
【０１４５】
解決する問題の連結度、およびハードウェアの連結度の不一致を克服する少なくとも２つの方法が存在する。一つ目は、埋め込み（ｅｍｂｅｄｄｉｎｇ）と称され、二つ目は、本明細書では「ＢｌａｃｋＢｏｘ」と称される混合アルゴリズムの構成要素として大規模隣接局所検索（ｌａｒｇｅ  ｎｅｉｇｈｂｏｒｈｏｏｄ  ｌｏｃａｌ  ｓｅａｒｃｈ）のタイプを実行するためにハードウェアを使用することによるものである。
【０１４６】
埋め込みによる問題の解決
量子コンピュータでは、量子ビットが物理的に他の量子ビットの一部のみに連結される。例えば、いくつかの実装形態では、各々の量子ビットが、本明細書ではＣｈｉｍｅｒａグラフと称される特定のパターンで、最大で６つの他の量子ビットに連結される。Ｄ−ＷａｖｅのＲａｉｎｉｅｒチップ（Ｄ−Ｗａｖｅ  Ｓｙｓｔｅｍｓ  Ｉｎｃ．）では、１２８の量子ビットが存在した。Ｖｅｓｕｖｉｕｓと言う別のＤ−Ｗａｖｅプロセッサでは、５１２の量子ビットが存在する。
【０１４７】
Ｃｈｉｍｅｒａグラフは、プロセッサをタイル状に並べる（ｔｉｌｅ  ｏｕｔ）ために標準の繰り返しパターンを使用する方法である。上述したＲａｉｎｉｅｒチップでは、プロセッサグラフは、４×４のタイル状の８量子ビット単位セルであった。Ｖｅｓｕｖｉｕｓでは、同一の単位セルが使用されていたが、８×８のタイル状であった。
【０１４８】
埋め込みは、解決されることになる問題の変形からプロセッサにおける物理量子ビットへのマッピングであり、マッピングは、１対多とすることができる（各々の変数を多くの物理量子ビットにマッピングすることができる）。問題の構造を保存するために、同一の変数に対応する量子ビットはより強く「共に固定される」。
【０１４９】
ここで、Ｋの頂点を有する完全連結されたグラフを、（Ｋ−１）２／２の物理量子ビットを有するＣｈｉｍｅｒａグラフに埋め込むことができるような完全に連結されたＱＵＢＯのケースでは、１２８量子ビット量子プロセッサは、完全連結された１７の変数グラフを埋め込むことができ、５１２量子ビット量子プロセッサは、完全連結された３３の変数グラフを埋め込むことができる。図３４に示されるのは、Ｒａｍｓｅｙ数を計算する問題を解決するための１２８量子ビットプロセッサへの埋め込みである。量子ビットが同一に色付けされるプロセッサグラフは、同一の計算変数を表す。
【０１５０】
よって、スパースコーディングＱＵＢＯを解決するために５１２量子ビット量子プロセッサを使用する一つの方法は、Ｋを３３またはそれ以下に制限することであり、およびそれらの問題を埋め込むことである。しかしながら、これは、２つの（関連する）理由により満足できるものではない。１つ目は、３３の辞書アトムは一般的に、大きなデータセット上ではスパースコーディングに対して十分ではないことである。２つ目は、上述した手順によって生じるＱＵＢＯは、実際にはそのスケールではタブー検索に容易であることである。問題に対し、この小さな、タブーは、約１０ミリ秒の問題のタイムアウト（５１２量子ビット量子プロセッサ上では単一の問題に対する実行時間とほぼ同一の）ごとに優れた性能を与え、それは、クラウドで実行することができるため、タブーアプローチは、大規模な並列処理をうまく利用することもできる。よって、問題ごとを基準とする場合でさえ、５１２量子ビット量子プロセッサは、例えば、それに対して１，０００のコアをまとめるときに、このスケールでは競争力があり、５１２量子ビット量子プロセッサは、処理に対して１，０００の量子プロセッサを利用することができないために負ける。
【０１５１】
ＢｌａｃｋＢｏｘを使用したスパースコーディングＱＵＢＯの解決
ＢｌａｃｋＢｏｘは、Ｄ−Ｗａｖｅ  Ｓｙｓｔｅｍｓ  Ｉｎｃ．において開発されたアルゴリズムである。以下は、それがどのように機能するかの高レベルの導入である。ＢｌａｃｋＢｏｘは、与えられる全てが、二値最適化問題への考えられる回答を、それらの考えられる回答がどのようであるかを表す実数に変換するブラックボックスであり、問題を解決するために設計される。例えば、航空機翼の構成は、ビット列として指定され、およびその構成がどの程度「良好」であったかを知るために、実際にその例を構築し、および測定のために風洞にそれを置くことを必要とする。または、大規模スケールのスパーコンピュータのシミュレーションを単に実行することが十分であり得る。しかしながら、二値変数の設定と、これのような問題における回答の品質との間の関係は、スパースコーディングＱＵＢＯで可能なような、閉形式では容易に指定されない。
【０１５２】
ＢｌａｃｋＢｏｘはタブー検索に基づいているが、単一ビットフリップを超えて次に移動する可能性を拡大する各々の検索点の周辺で目的関数のモデルを生成するためにハードウェアを使用する。各々のタブーステップにおけるハードウェアからのこのモデル化およびサンプリングは、ステップごとの時間を増加させるが、目的関数のいくつかの目標値に到達するのに必要なステップの数を減少させる。目的関数を評価するコストが増大するにつれ、各々のタブーステップもおいてより良好に移動することによって「ステップ」を少なくする利得が増大する。しかしながら、目的関数を非常に迅速に評価することができる場合、タブーはＢｌａｃｋＢｏｘのモデル化およびハードウェアサンプリングステップの追加コストに起因して単位時間ごとにさらに多くの推測を生じさせることがあるため、タブーは概して、ＢｌａｃｋＢｏｘよりも性能で上回る。
【０１５３】
ＢｌａｃｋＢｏｘは、任意のサイズの完全に連結されたＱＵＢＯに適用されてもよく、なぜならば、少数の辞書アトムへの制限が取り除かれるため、埋め込みよりもこれはより良好であるからである。ＢｌａｃｋＢｏｘで、任意のサイズの問題を試すことができる。
【０１５４】
５１２量子ビット量子プロセッサ上のＢｌａｃｋＢｏｘは、試される問題のサイズ（確かに、いまだに非常に小さく、最大で５０の変数）のいずれかに対してクラウド対応タブー検索では競争的でない。これは、それらの問題がどんなに大きくても、以下の問題により持続し続ける。
１．スパースコーディング問題（Ｓの独立したＱＵＢＯ）の本質的に並列した性質は、複数のコアと少数の５１２量子ビット量子プロセッサとの間の比較を意味する。この因子は、数百万のデータオブジェクトを有する大きな問題に対し重要となることがあり、この因子は、容易に数千または数百万になることがある。
２．ＢｌａｃｋＢｏｘは、実際にブラックボックスである目的関数に対して設計され、それによって、問題の構造に直接的に取り組む明確な方法が存在せず、そこでは、目的関数を評価することに非常にコストがかかる。これは、それらの問題、それらがＱＵＢＯであり、およびこの既知の事実に基づいて取り組みを直接行うことができることを意味するケースではない。それらの問題に対し、確かに使用することができる、現在のバージョンのＢｌａｃｋＢｏｘは、その最も効率的なスイートスポット（ｓｗｅｅｔ  ｓｐｏｔ）にない（すなわち、概して、クラウドにおいてタブーとの競争力を有するとは予想されない。
【０１５５】
また、これは厳密に発見されるものであり、５１２量子ビット量子プロセッサ上のＢｌａｃｋＢｏｘは、試される問題サイズのいずれかに対して、クラウド上ではタブーとの競争力を有しない。ここでは、小さな警告（ｃａｖｅａｔ）が存在し、非常に多数のアトム（例えば、数千の）に対し、これが変化する可能性があり、ＢｌａｃｋＢｏｘがさらに競争力を有することに留意されたい。
【０１５６】
それらがハードウェアに厳密に適合するようにスパースコーディングによって生じる問題を制限することが可能であり、それによってハードウェアグラフに厳密に一致するように生じる問題を必要となる場合、量子プロセッサは、５１２量子ビット量子プロセッサが、それが解決している自然問題に対し地球上で存在する何よりも何倍も高速であるため、古典的プロセッサを上回ることが可能である。
【０１５７】
クラウド上でタブーとの競争のために量子ハードウェアを使用する内在する問題は、問題スパースコーディングが生じさせる連結度（完全に連結された）、および量子ハードウェアの連結度の不一致であった。
【０１５８】
この不一致の源は、ｊ番目およびｍ番目の変数が
【数７７】
0006465876.tif 000079
に比例する、目的関数における二次式の項である。結合項は、辞書アトムのドット積に比例する。
【０１５９】
要求されるいくつかの実装形態では、
【数７８】
0006465876.tif 000080
が、ハードウェアにおいて連結されていない変数ｊおよびｍの全てのペアに対してゼロである必要がある。辞書におけるこの構造を達成する場合、非常に関心のある結果が得られる。完全に連結されることに代えて、この制限を有するＱＵＢＯを、ハードウェアが解決する内在する問題に厳密に一致するように設計することができる。これを行うことができる場合、量子ハードウェアの全電力を使用することにより近づくことになる。
【０１６０】
構造化辞書を有するＬ０ノルムスパースコーディング
１．各々の
【数７９】
0006465876.tif 000081
がＮの構成要素を有する実数ベクトルである、Ｓのデータオブジェクト
【数８０】
0006465876.tif 000082
の組と、
２．Ｋが、選択され、およびベクトル
【数８１】
0006465876.tif 000083
になるそのｋ番目の列が定義される辞書アトム数である、Ｎ×Ｋの実数値行列
【数８２】
0006465876.tif 000084
と、
３．Ｋ×Ｓの二値行列
【数８３】
0006465876.tif 000085
と、
４．正則化パラメータと称される、使用されている量子チップにおいて連結されていない全てのペアｊ、ｍに対して
【数８４】
0006465876.tif 000086
である制約の影響を受ける
【数８５】
0006465876.tif 000087
を最小化する
【数８６】
0006465876.tif 000088
および
【数８７】
0006465876.tif 000089
を発見する、実数λと、を仮定する。
【０１６１】
ここでの差は、追加される辞書アトム上の制約の組である。
【０１６２】
ブロック座標降下法を使用したスパースコーディング問題の解決
態様および実施形態において、以下の戦略を使用することが望ましいことがある。
１．最初に、辞書アトム上で課される直交性制約を満たすことの影響を受ける、ランダム辞書
【数８８】
0006465876.tif 000090
を生成すること。
２．辞書アトム
【数８９】
0006465876.tif 000091
に対する最適化問題を解決する、それらの固定された辞書を想定すること。ここで、それらの最適化問題は、構築によってハードウェア上で厳密に適合される、Ｃｈｉｍｅｒａ構造化ＱＵＢＯである。
３．ここで、重みをそれらの値に固定し、および再度、制約の影響を受ける最適辞書
【数９０】
0006465876.tif 000092
を発見すること。
【０１６３】
Ｇが最小に収束するまで、動作２および３を繰り返す。
【０１６４】
これは、動作２が、多数のｃｈｉｍｅｒａ構造化ＱＵＢＯ、完全に連結されないＱＵＢＯの解を必要とする前に、異なる領域に入る。よって、それによって、それらの問題がより良好に量子ハードウェアに適合される。しかしながら、ここで、動作１および３の両方を可能とするためにいくつかの新たな事項が必要となり、それらは最初にいくつかのコストを有する。
【０１６５】
制約に従う初期ランダム辞書の組み立て
Ｌ．Ｌｏｖａｓｚ，Ｍ．Ｓａｋｓ，ａｎｄ  Ａ．Ｓｃｈｒｉｊｖｅｒ，Ｏｒｔｈｏｇｏｎａｌ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ  ａｎｄ  ｃｏｎｎｅｃｔｉｖｉｔｙ  ｏｆ  ｇｒａｐｈｓ．Ｌｉｎｅａｒ  Ａｌｇｅｂｒａ  ａｎｄ  ｉｔｓ  Ａｐｐｌｉｃａｔｉｏｎｓ，１１４：４３９−４５４，１９８９と題する論文に興味深い結果が存在する。以下は、その結果の簡潔な説明である。
【０１６６】
Ｖの頂点上のグラフを想像する。そのグラフでは、各頂点は、他の束に連結される。グラフにおける最小の連結された変数の連結度に対応する数ｐを想定されたい。上述した論文は、次元Ｖ−ｐにおける実ベクトルの組を定義することができ、そこでは、グラフにおける非隣接ノードに直交ベクトルを割り当てることができることを証明している。
【０１６７】
よって、目標（ランダム辞書
【数９１】
0006465876.tif 000093
を発見して、それによって、量子ハードウェアにおいて連結されていない全てのｋ、ｍに対し
【数９２】
0006465876.tif 000094
となる）を、ベクトル
【数９３】
0006465876.tif 000095
の長さがＶ−ｐよりも大きい場合に行うことができる。
【０１６８】
５１２量子ビット量子プロセッサに対し、数Ｖは５１２であり、Ｃｈｉｍｅｒａグラフにおける最小連結度ノードは、ｐ＝５である。よって、辞書アトムの次元が５１２−５＝５０７である限り、上記ステップ１を常に実行することができる。
【０１６９】
ここでは、この非常に興味深い結果に関するさらなる側面（ｃｏｌｏｒ）がある。直交する２つのベクトル
【数９４】
0006465876.tif 000096
および
【数９５】
0006465876.tif 000097
（すなわち、ドット積
【数９６】
0006465876.tif 000098
はゼロである）を識別することを想像されたい。これを行うことができるように、それらのベクトルがあるべきである最小次元は何であるか？それらの両方が１次元にあり、それらは一列の番号にすぎないことを想像されたい。次いで、それを明確に行うことができない。しかしながら、２次元を有する場合、それが可能になる。ここで、例は、
【数９７】
0006465876.tif 000099
および
【数９８】
0006465876.tif 000100
である。２次元を上回るものが存在する場合、それを行うことがまた可能であり、このケースで行われる選択が唯一ではない。
【０１７０】
より一般的に、質問「Ｖ次元空間に何個の直交ベクトルを描くことができるか？」が尋ねられる場合、答えは、次元ごとに１つのベクトルである。よって、それは、上記結果の鍵となる要素（ｋｅｙ  ｐｉｅｃｅ）である。任意の他に連結された頂点がない（最小頂点連結度ｐ＝０）、Ｖの頂点を有するグラフを有し、およびそれらのベクトルの全てが他の全てに直交するように各頂点にベクトルを割り当てることを望む場合、それは、「Ｖ次元空間を仮定すると、ベクトルが全て相互に直交するように、何がベクトルの組の最小次元であるか？」を質問することに等しく、答えは、Ｖである。
【０１７１】
ここで、グラフにおける頂点の一部の間のエッジを描くこと、およびそれらの頂点にあるベクトルが直交することを必要としないことを想像されたい。概念的に、これは、一部の制約を緩和し、および要求される組のベクトルを発見するのを「容易」にするものと考えられてもよく、よって、これが作用するように必要とされるベクトルの最小次元は、グラフがさらに連結されるにつれて減少する。ここでの注目すべき結果は、これが作用する非常に簡単な方法である。まさに、グラフにおける最小連結度ノードを発見し、その連結度ｐを要求し、および「最小連結度頂点が連結度ｐを有する、Ｖの頂点上のグラフを仮定すると、グラフにおける連結されていない頂点が全て直交ベクトルを割り当てられるように、何がベクトルの組の最小次元であるか？」と質問されたい。答えは、Ｖ−ｐである。
【０１７２】
ゼロ空間
以下は、ステップ１を行うための構築手順の例である。
１．全てのエントリが＋１と−１との間の乱数である、行列
【数９９】
0006465876.tif 000101
を生成する。
２．各列のノルムが１になるように各列を再正規化する。
３．最も左から最も右への順序で、
【数１００】
0006465876.tif 000102
における各列に対し、その列のゼロ空間を計算し、次いで、その列をゼロ空間基底で記述されたランダムな列に置き換える。
【０１７３】
この処理は、新たな手順で必要とされる初期のランダムな直交基底を生み出す。
【０１７４】
以下は、行列
【数１０１】
0006465876.tif 000103
に対するゼロ空間基底を計算するためのいくつかのＰｙｔｈｏｎコードである。
ｉｍｐｏｒｔ  ｎｕｍｐｙ
ｆｒｏｍｓｃｉｐｙ．ｌｉｎａｌｇ  ｉｍｐｏｒｔ  ｑｒ
ｄｅｆ  ｎｕｌｌｓｐａｃｅ＿ｑｒ（Ａ）：
Ａ＝ｎｕｍｐｙ．ａｔｌｅａｓｔ＿２ｄ（Ａ）
Ｑ、Ｒ＝ｑｒ（Ａ．Ｔ）
ｎｓ＝Ｑ［：，Ｒ．ｓｈａｐｅ［１］：］．ｃｏｎｊ（）
ｒｅｔｕｒｎ  ｎｓ
【０１７５】
上述したように、量子プロセッサアーキテクチャを効率的に使用して問題が発生することがあり、解決が要求される問題の連結度と、量子ハードウェアの連結度との間の不一致である。
【０１７６】
１．各々の
【数１０２】
0006465876.tif 000104
がＮの構成要素を有する実数ベクトルである、Ｓのデータオブジェクト
【数１０３】
0006465876.tif 000105
の組と、
２．Ｋが、選択され、およびベクトル
【数１０４】
0006465876.tif 000106
になるそのｋ番目の列が定義される辞書アトムの数である、Ｎ×Ｋの実数値行列
【数１０５】
0006465876.tif 000107
と、
３．その行列要素がｗｋｓである、Ｋ×Ｓの二値行列
【数１０６】
0006465876.tif 000108
と、
４．正則化パラメータと称される実数λと、を仮定すると、
使用されている量子チップにおいて連結されていない全てのペアｊ、ｍに対する
【数１０７】
0006465876.tif 000109
の制約の影響を受ける
【数１０８】
0006465876.tif 000110
を最小化する
【数１０９】
0006465876.tif 000111
および
【数１１０】
0006465876.tif 000112
を発見する。
【０１７７】
この問題を解決するために、このように機能する、ブロック座標降下法が使用され、
１．最初に、辞書アトム上で課される直交性制約を満たすことの影響を受ける、ランダム辞書
【数１１１】
0006465876.tif 000113
を生成する。
２．辞書アトム
【数１１２】
0006465876.tif 000114
に対する最適化問題を解決する、それらの固定された辞書を想定する。ここで、それらの最適化問題は、構築によって量子ハードウェア上で厳密に適合される、Ｃｈｉｍｅｒａ構造化ＱＵＢＯである。
３．ここで、重みをそれらの値に固定し、および再度、制約の影響を受ける最適辞書
【数１１３】
0006465876.tif 000115
を発見する。
【０１７８】
この問題は、共に凸でなく、および最小は局所的最小であることを考慮して、Ｇが最小（または、いくつかの基準）に収束するまで、ステップ２および３が繰り返される。新たな立点（ｓｔａｎｄｉｎｇ  ｐｏｉｎｔ）からの全体アルゴリズムの各々の再始動は、異なる局所的最小につながり、よって、この手順を数回実行することによって、より良好な回答を得ることができる。
【０１７９】
ステップ３：固定重みが与えられた最適構造化辞書の発見
困難な問題は上記ステップ３である。ここで、重み
【数１１４】
0006465876.tif 000116
は固定され、目標は最適構造化辞書を発見することである。ここに、問題の公式の見解がある。
【０１８０】
１．Ｓがデータオブジェクトの数であり、ｓ番目の列がｓ番目のデータオブジェクト
【数１１５】
0006465876.tif 000117
であると定義され、各々の
【数１１６】
0006465876.tif 000118
は、Ｎの構成要素を有する実数値ベクトルであり、
【数１１７】
0006465876.tif 000119
の行列要素は、ｚｎｓである、Ｎ×Ｓの実数値行列
【数１１８】
0006465876.tif 000120
と、
２．Ｋが、辞書アトムの数であり、そのｋ番目の列がベクトル
【数１１９】
0006465876.tif 000121
であると定義され、
【数１２０】
0006465876.tif 000122
の行列要素は、ｄｎｋである、Ｎ×Ｋの実数値行列
【数１２１】
0006465876.tif 000123
と、
３．行列要素ｗｋｓを有する、Ｋ×Ｓの二値行列
【数１２２】
0006465876.tif 000124
と、を仮定すると、
【数１２３】
0006465876.tif 000125
を最小化する
【数１２４】
0006465876.tif 000126
を発見し、
【数１２５】
0006465876.tif 000127
であり、それは、使用されている量子チップにおいて連結されていない全てのペアｊ、ｍに対して
【数１２６】
0006465876.tif 000128
の制約の影響を受ける。
【０１８１】
この問題を困難にするのは、辞書アトム上の制約が非線形的であり、多数のそれらが存在することである（変数のペアごとに１つがハードウェアにおいて連結されていない）。
【０１８２】
【数１２７】
0006465876.tif 000129
がスパースである領域で動作することが有利となることがある。この制限では、ｗｋｓのほとんどがゼロである。結合項が
【数１２８】
0006465876.tif 000130
の行列要素では二次式であるため、全てのＬ０ノルムスパースコーディング問題に対し、結合項のほとんどがゼロになる。これは、二次項がゼロであり、および次に初期の開始点としてこれを使用することを想定して、
【数１２９】
0006465876.tif 000131
を最初に解決する可能な戦略を提案する。
【０１８３】
辞書の構造を破壊（ｂｏｔｃｈ−ｕｐ）しない、いくつかのタイプの行列動作が存在するが、許容空間内で変更のパラメータ化を可能にする。次いで、それらのパラメータ上で最適化する場合、それらを実施する作業を行う必要なしに、制約に対処する。
【０１８４】
他の列を固定に保つ間、収束するまで単に繰り返すために（上述したゼロ空間の考えを使用する間に、直交性が維持されることを保証するためにいくつかの再配置を行うことが必要となる）、ｋ＝１からｋ＝Ｋまで移動する各辞書アトム
【数１３０】
0006465876.tif 000132
を最適化する、局所探索発見的解決法が存在する。これは単独で、理想的な戦略になくてもよく、および、局所的な最適条件にあってもよい。
【０１８５】
以下は、教師なし特徴学習、スパースコーディング、マルチクラス分類、および複数のラベル割り当てのために量子および非量子プロセッサの使用を議論する。この目的のために、以下を実装するＰｙｔｈｏｎソフトウェアフレームワークが開発されている。
（ａ）教師なし設定における低レベルの特徴の学習辞書に対するＬ０ノルムおよびＬ１ノルムスパースコーディング
（ｂ）教師ありマルチクラス分類器および複数ラベル割り当てプロトコルを構築するための自己教示学習フレームワーク
（ｃ）複数のタイプのデータ（画像、音声およびラベルなど）上で定義された特徴の辞書を同時に構築する、半教師あり特徴学習アルゴリズム（「修復（ｉｎｐａｉｎｔｉｎｇ）」）。特徴が学習された後、今まで認識されていないデータが部分情報と共に提示される。次いで、今まで認識されていないデータに存在するデータ区域は、学習された特徴を使用して最適に再構築され、次いで、「不明（ｍｉｓｓｉｎｇ）」区域（ラベル情報および不明のデータ区域を含むことができる）は、再構築によって予想される。異常検出、クラスタリング、退行（ｒｅｇｒｅｓｓｉｏｎ）マルチクラス分類、複数のラベル割り当て、または他のタスクのために、修復が使用されてもよい。
（ｄ）量子ハードウェアで実行するように設計された、教師あり量子複数ラベル割り当て（「ＱＭＬＡ」）アルゴリズム
（ｅ）ＭＮＩＳＴ手書き数字データセットを使用して構築された教師マルチクラス分類器テスト一式
（ｆ）ＳＣＥＮＥ自然画像データセットを使用して構築された教師複数ラベル割り当てテスト一式
【０１８６】
このフレームワークによって、ユーザは、データから特徴を学習し、および、その後、マルチクラス分類器または複数ラベル割り当てプロトコルを構築するために、ハードウェアの組からアルゴリズムおよび最適化ソルバオプションを選択することが可能になる。ソフトウェアフレームワークによって、量子ハードウェアを使用するアプローチを含む、スパースコーディング、分類および複数ラベル割り当てに対する異なるアルゴリズムおよびハードウェアアプローチの間での比較を命令することが可能になる。
【０１８７】
フレームワークは、ＭＮＩＳＴ手書き数字データセット（マルチクラス分類の例）およびＳＣＥＮＥ自然画像データセット（複数ラベル割り当ての例）上の経験を実行および視覚化するための２つのテスト一式を含む。
【０１８８】
活動の説明
活動は３つのカテゴリに分かれる。
【０１８９】
２つのスパースコーディングアルゴリズムの実装
１つ目は、２つの異なるタイプのスパースコーディングアルゴリズムの実装である。スパースコーディングは、データにおける最大限の繰り返しパターン（辞書アトムとも称される）を発見し、およびデータオブジェクトをそれらのパターンの線形結合として表現するための手順である。それらのパターンがデータにおいて著しく特徴付ける場合、少数のそれらのパターンのみを使用してデータオブジェクトのほとんどを再構築することができる領域を発見することが可能になる。
【０１９０】
実装される２つのタイプのスパースコーディングアルゴリズムが存在する。
（ａ）Ｌ１ノルムスパースコーディング。このバージョンは、特徴の実数値の重み付けされた組み合わせから再構築を組み立てることができ、および正則化は、Ｌ１ノルム形式の正則化である。このケースにおけるアルゴリズムは効率的である。フレームワークによって、並列化することができるアルゴリズムの態様が大多数の（一般的に数千の）従来型プロセッサにサブミットされる、クラウドコンピューティング環境においてユーザが実行することが可能になる。
（ｂ）Ｌ０ノルムスパースコーディング。このバージョンは、重みが０／１変数である、特徴の組み合わせである再構築を可能にし、および正則化は、Ｌ０ノルム形式の正則化である。それらの制限は、アルゴリズムのこの変形によって学習された異なる特徴につながることがある。変化は、実変数上での効率的に解決可能な凸最適化問題からの内在する最適化問題を、二値変数上のＮＰ困難非凸最適化問題に変換する。従来型コンピュータによって良好に提供される態様をローカルに、またはクラウドコンピューティング環境のいずれかで実行することができるように、フレームワークが主要なアルゴリズムを区分化し、主要な組み合わせの最適化問題を、ソフトウェアソルバを使用してローカルに、ソフトウェアソルバを使用してクラウド上で実行し、またはＤ−Ｗａｖｅハードウェア上で実行することができる。
【０１９１】
ここで考慮される２つの異なるタイプのスパースコーディングは異なる。第１のタイプの（Ｌ１ノルム）データオブジェクトは、実数値重みを有する辞書アトムの線形結合を使用して再構築される。第２のタイプ（Ｌ０ノルム）では、データオブジェクトは、二値重みを有する辞書アトムの線形結合を使用して再構築される。図７Ａおよび７Ｂに示されるのは、Ｆｅａｔｕｒｅ  Ｓｉｇｎ  Ｓｅａｒｃｈ（実数値最適化）およびタブー（二値）最適化をそれぞれ使用してＭＮＩＳＴ６０００トレーニングに対するＭＮＩＳＴデータセットからの手書き数字画像を使用した、それらのタイプの再構築の例である。
【０１９２】
図７Ａおよび７Ｂでは、スパースコーディングは、データの組において「最大限繰り返す」小さな組のパターン（辞書アトムと称される）を発見することを試みる。それらのパターンが発見されると、それらのパターンのレンズを通じてデータオブジェクトが認識される。図７Ａは、再構築に使用される上位３つの最高の大きさの重みアトムを示す、Ｌ１ノルムスパースコーディングを使用して形成される再構築を示す。図７Ｂは図７Ａと同一の事項を示すが、Ｌ０ノルムスパースコーディングを有する。このケースでは、含まれる全ての辞書アトムは、定義により１の重みを有し、それらのうちの３つが明示的に示される。それらの再構築のスパーシティ（使用されるアトムの数）は低く、アトムの２０％〜４０％の間が使用されている。このスパーシティは、正則化パラメータλによって制御される。このパラメータが高いと、解がよりスパースになる。
【０１９３】
それらの各々を、最適化ソルバおよびハードウェアの種々の異なる組み合わせを使用して実行することができる。表１に示されるのは、実装される組み合わせである。
【０１９４】
【表２】
0006465876.tif 000133
【０１９５】
表１。フレームワークによって、種々の最適化アルゴリズムおよびハードウェアを使用して両方のタイプのスパースコーディングを実行することが可能になる。特に、ここでの興味は、Ｌ１ノルムに対するＬ０ノルムのバージョンの相対的性能、およびＬ０ノルムスパースコーディングを実行するための他のオプションに対するハードウェア上で実行されるＢｌａｃｋＢｏｘの相対的性能である。
【０１９６】
マルチクラス分類器および複数ラベル割り当てプロトコルの実装
第２の活動は、ラベルをオブジェクトに自動的に割り当てる種々の方法を構築およびテストすることを含む。画像に対し、それらのラベルは、画像におけるオブジェクトのタイプである（例えば、画像に猫が存在する／しない）。音声に対し、それらは、特定の人間の話者が存在し、または存在しない。ビデオに対し、ある種の行為（走ること、手を振ることなど）が存在し、または存在しない。各々のケースでは、このタイプの認識は典型的には、人間には容易であるが、合成システムで実装することは困難である。
【０１９７】
使用される戦略は、最初にスパースコーディングを使用してアトムの辞書を学習することに基づいている（このステップは、教師なしであり、このステップで使用されるデータは全てがラベル付けされていない）。このステップが完了すると、ラベル付けされたデータは、それらの辞書を使用して符号化され、次いで、教師あり学習アルゴリズムの組が、符号化された、ラベル付けされたデータ上で実行される。それらは、いくつかの標準的なアプローチ、および２つの新たなアルゴリズム、１つ目は本明細書では修復と称され、２つ目はＱＭＬＡ（量子複数ラベル割り当て）と称される、を含む。ＱＭＬＡアルゴリズムは、複数ラベル割り当てに特に設計され、およびマルチクラス分類に対して使用されないことがあり、修復は、いずれかで使用することができる。明白に、１つ以上の実施形態で実装される３つのステップが存在する。
（ａ）辞書は、ラベル付けされていないデータ上でスパースコーディングアルゴリズム使用して学習される
（ｂ）次いで、ラベル付けされたデータの組は、この辞書を使用して再構築される
（ｃ）次いで、この符号化されたラベル付けされたデータは、望ましい分類器またはラベルアサイナを生成するために教師あり学習設定で使用される。実装される手順は、修復、ＱＭＬＡ、感知、ｋ近傍法（ｋＮＮ）、ならびにＬ１およびＬ２損失（ｌｏｓｓ）を有する線形サポートベクトルマシン（ＳＶＭ）を含む。
【０１９８】
実験計画
第３の活動は、公知のＭＮＩＳＴおよびＳＣＥＮＥデータセットを使用して２つの教師レベルテスト一式を構築すること、それらのデータセットにおいてラベルをオブジェクトに割り当てるための多数の異なる戦略の性能を比較する体系的実験を実行すること、ならびに行われた作業および到達した結論の完全な説明を含むレポートを作成することを、を含む。
【０１９９】
ＭＮＩＳＴ手書き数字
このテスト一式は、マルチクラス分類器を構築するための種々の異なるアプローチを比較するために使用されている。ＭＮＩＳＴテスト一式は、実験的にテストされることになる、量子コンピュータの使用を含む、異なる戦略の実行を可能にする多数の実験を実行する「ボックス外の（ｏｕｔ  ｏｆ  ｔｈｅ  ｂｏｘ）」機能を提供する。
【０２００】
ＭＮＩＳＴが小さく、良好に特徴付けられ、および新たなアイデアの実行を体系的に探索する良好な方法を提供する。ＭＮＩＳＴは、手書き数字（全て数字が０から９までである１０が存在する）合計７０，０００、２８×２８ピクセルのグレースケール画像を含む。典型的には、タスクは、それらの６０，０００を使用して、マルチクラス分類器を構築し（画像が表現するいずれかの数字を分類するために）、次いで、１０，０００画像のテストセット上で結果として得られる分類器をテストすることである。
【０２０１】
テスト一式によって、ユーザが、表１で上記示された１０の組み合わせの中から選択すること、利用可能な画像（没却ラベル）の選択されたサブセット上でそれらを実行すること、ならびに各々によって達成される、結果として得られる辞書アトム、再構築、および再構築誤りを視覚化することが可能になる。
【０２０２】
この動作の後、ユーザは次いで、ラベル付けされたトレーニングデータの選択されたサブセット上で教師学習あり学習手順（複数ラベル割り当てに対して設計された、ＱＭＬＡを除いて）を実行してもよい。
【０２０３】
次いで、ユーザは、テストセット上で試される方法の実行を評価し、ならびに精度、取り消し、Ｆ１スコア、および分類器スパーシティを含む、性能値の組を受信することができる。
【０２０４】
ＳＣＥＮＥ自然画像
このテスト一式は、複数ラベル割り当て（ＭＬＡ）プロトコルを構築するための種々の異なるアプローチを比較するために使用される。ＭＬＡは、オブジェクト内で多くのラベルが同時に存在することができるという点で、マルチクラス分類とは異なる。ＳＣＥＮＥデータセットでは、オブジェクトは自然画像であり、ラベルは、６つのカテゴリ（「都会」、「山」、「紅葉」、「海辺」、「夕日」、および「野原」）が存在するかしないかを示す。図８に示すのは、ＳＣＥＮＥデータセットからの例示的な画像である。
【０２０５】
ＳＣＥＮＥテスト一式は、実験的にテストされることになる、修復およびＱＭＬＡの両方の使用を含む、異なるＭＬＡ戦略の実行を可能にする多数の実験を実行する「ボックス外の」機能を提供する。
【０２０６】
ＳＣＥＮＥデータセットは、自然シーンの２，４０７の画像を含む。それらの１，２１１は典型的には、トレーニングのために使用され、１，１９６はテストのために使用される。各々の画像は、６つの異なるカテゴリ（紅葉、都会、海辺、夕日、山、および野原）が存在するかしないかを示すラベルを伴う。図８では、ＳＣＥＮＥデータセットは、６つの異なるカテゴリ（「都会」、「山」、「紅葉」、「海辺」、「夕日」、および「野原」）が存在するかしないかを示すラベルを伴う、自然シーンの１，２１１のトレーニングおよび１，１９６のテスト画像を含む。この画像では、ラベル付けは、「紅葉」および「野原」の存在、ならびに他の４つのカテゴリが存在しないことを示す［００１００１］である。
【０２０７】
議論の実装
半教師あり特徴学習コードは、複数のデータタイプを取り扱うために再記述されている。学習コードに対するソフトウェアアーキテクチャは、クラウドコンピューティングサービスと効率的に統合するために開発されている。結果として得られるＰｙｔｈｏｎモジュールは、従来型および量子ハードウェアリソースの両方を呼び出す。
【０２０８】
ユーザが分類器を構築することを可能にするＰｙｔｈｏｎモジュールが記述されている。分類器に対するソフトウェアアーキテクチャは、クラウドコンピューティングサービスと効率的に統合するために開発されている。従来型ソルバによって最良に提供される態様がそれに応じて命令され、および主要な組み合わせ最適化問題が量子ハードウェア上で実行されたように、実行されたベンチマーキング作業の結果は、ユーザが主要な特徴学習アルゴリズムを区分化することを可能にしている。
【０２０９】
記述されたモジュールは、２つの異なるデータセットにおいてラベルをオブジェクトに割り当てるための多数の異なる戦略の実行を比較する体系的な実験をユーザが実行および視覚化することを可能にする、２つのプロトタイプテスト一式を使用して証明されている。１つのテスト一式は、マルチクラス分類を証明するＭＮＩＳＴ手書き数字データセットを使用する。他のテスト一式は、複数ラベル割り当てを証明するために、Ｃａｎａｄｉａｎ  Ｉｎｓｔｉｔｕｔｅ  ｆｏｒ  Ａｄｖａｎｃｅｄ  Ｒｅｓｅａｒｃｈ（ＣＩＦＡＲ）自然画像データセットを使用する。
【０２１０】
ＨＤＬソフトウェアフレームワークプロジェクト
機械学習は人工知能の部門である。その中心となる前提は、機械がデータ、例えば、電子メール、ビデオ、音楽ファイル、テキスト、地震データ、天候データ、医療情報および／または画像を有することができ、ならびにデータオブジェクト間の差異が感知、およびある意味では理解されることを可能にする方法で、このデータを表現するように学習することができることである。例えば、多数の電子メールを提示される機械は、スパムが高尤度で発生する一定の属性を有することを学習し、したがって、ルールが何であるかを事前に明白に教えられることなく、何がそれらのスパムを構成するかに関するルールを学習することができる。
【０２１１】
教師なし特徴学習および深層学習
最も飛躍的な変化のうちの１つは、スパムフィルタなどの、非常に狭い適用性を有する特殊目的ツールから、人間が行うように、１つのトピックから別へ一般化することが可能なアーキテクチャへの推移である。それらの新たなアーキテクチャは、深層学習システムと称される。
【０２１２】
深層学習はいまだに、機械学習エコシステム内でそれが最終的にどのように適合されるかが完全に理解されていないことで十分に新しい。前に示したのは、深層学習によって、そうでなければ構築するのが困難または不可能である新たな能力が有効になり、および高性能機械学習システムの開発のための標準的技法になることである。会話認識および合成、推奨システム、画像および音声認識、創薬、ならびにコンピュータ広告を含む、広範囲の適用領域で進歩が見られている。
【０２１３】
別の重要な変化は、教師ありから教師なし方法への推移である。教師なし特徴学習は、どのように人間の脳が機能するかの最新の理解によって引き起こされる方法で、機械知覚および認知に人間が関与することになる必要を削減または除去することを目的としている。
【０２１４】
機械の知能を進歩させることを進める最大の障壁は、オブジェクトの内容を示すために人間によってラベル付けされている多数のデータオブジェクトを提供する必要性である。スパム検出器の例のケースでは、これは、「スパム」または「非スパム」とラベル付けされている多数の電子メールを有する学習システムを提供することを意味する。教師なし学習システムは、入ってくるデータオブジェクトの特徴を、それらが何であるかを明白に教えてもらうことなく学習することを目的とする。これは、大量のデータ上で学習するときに、人間が教師あり方法を実現可能にするために十分な例をラベル付けする多くのケースでそれが簡単には可能でないため、必須の要件となる。
【０２１５】
教師なし特徴学習は、深層学習パラダイムを有する潜在的な相乗効果を有する。
【０２１６】
教師なし特徴学習および深層学習のための量子ハードウェアの使用
量子コンピュータは、特定の種類の困難な最適化問題を解決するにおいて優れており、いくつかのケースでは、それは、他に利用可能な何よりも優れている。量子コンピューティングマシンが解決するタイプの問題は、基本的なレベルで種々の機械学習アルゴリズムにおいて生じることがある。量子コンピューティングシステムが良好に行うことと、機械学習における困難なコンピューティング問題との間の連結は、重要な機会を表す。量子ハードウェアが主要な学習問題上での主たる性能利得を提供することができることを示すことができる場合、これは、技術の商業利用を推進する。
【０２１７】
本明細書で説明されるＨＤＬソフトウェアフレームワークは、少なくとも２つの目的、（１）量子ハードウェアを含む最も見込みのある機械学習アイデアのテスト、および（２）それらの新たなアイデアに直接対抗する最も知られた従来型アプローチの実装、を有する。両方での成功を仮定すると、従来型アプローチを使用して非常に最も知られた機械学習手順を、量子ハードウェア対応バージョンと直接比較する。
【０２１８】
ＨＤＬソフトウェアフレームワークは、機械学習のために量子ハードウェアをどのように使用するかのアイデアにわたる両方の目的を達成することが可能なように設計される。
【０２１９】
ＨＤＬソフトウェアフレームワークのスパースコーディング構成要素
ＨＤＬソフトウェアフレームワークのスパースコーディング構成要素は、量子ハードウェアを使用するための特定のアイデアに対する両方の目的を達成するために設計されている。このアイデアは、Ｌ０ノルムスパースコーディングと称される。
【０２２０】
スパースコーディングは、非常に興味深いタイプの教師なし特徴学習である。スパースコーディングは、データにおける最大限の繰り返しパターンを発見し、これは、わずかな人間の介入、限定された人間の介入、または人間の介入なしで、達成されてもよい。次いで、元のデータを表すためにそれらのパターンを使用することができる（この処理は、スパース自動符号化（ａｕｔｏｅｎｃｏｄｉｎｇ）と称される）。スパースコーディングを、より複合的な機械学習アルゴリズムのための構築ブロックとして考えることができる。例えば、それは、データにおける複数のスケールにおける特徴の階層、深層学習アーキテクチャの例を学習するために自然に使用されてもよい。
【０２２１】
ＨＤＬソフトウェアフレームワークの目的の両方を達成するために、本発明者らは、目的（２）、最良の従来からの競争相手を実装することから開始している。テストされるアイデアは、１つはアルゴリズム的、１つは独自の量子ハードウェアに起因した２つの非標準的な項目を組み合わせ、それらを分離することが重要である。
【０２２２】
１つ目は、スパースコーディング手順内での一定の数を二値にさせる、Ｌ０ノルム部分である。これは、問題を量子ハードウェアにマッピングすることを要求される。概して、スパースコーディングを使用する機械学習の実行者は、この形式のアルゴリズムを、それが困難なコンピューティング問題を生じさせるため、使用しない。代わりに、それらは、Ｌ１ノルムスパースコーディングと称される異なるバージョンを使用する。Ｌ１ノルムバージョンは、学習手順の効率性を潜在的に減少させる犠牲を払って、計算的により良好に振舞う。新たなアイデアのこの態様をテストするために、最新型Ｌ１ノルムスパースコーディングシステムが、Ａｍａｚｏｎ  ＥＣ２クラウドを使用して実行することが可能なように実装および設計されている。
【０２２３】
このバージョンのスパースコーディングが生じさせる困難な最適化問題を解決するための従来型ソフトウェアソルバの組を有する、Ｌ０ノルムバージョンを使用した同様のシステムが実装されている。このバージョンはまた、クラウド上で実行されてもよい。
【０２２４】
それらの２つのシステムをスパースコーディング構成要素内で実行させることによって、Ｌ０ノルムをＬ１ノルムスパースコーディングと直接比較することが可能になり、それは、Ｌ１からＬ０へのどのような効果をアルゴリズム的に有するかの質問の区分化を可能にする（量子ハードウェアの実用性の質問とは独立して）。Ｌ０ノルムバージョンは、Ｌ１ノルムに対して重要な利点を有し、特に、表現の望ましいスパーシティが非常に高いときに（少なくとも今までテストされた画像データセットに対して）著しい性能向上をもたらすことが発見されている。よって、Ｌ１からＬ０に行くにおいて重要なアルゴリズム的な成功が存在する。この発見は、それが、機械学習に対する非常に重要なワークホースアルゴリズムを、Ｌ０ノルム形式においてそれを再型変換することによって改善することができるため、それ自体が非常に興味深いものである。
【０２２５】
２つ目の質問は、量子ハードウェア上で実行する効果である。
【０２２６】
これを行うための２つの戦略が存在する。１つ目は、本明細書では、ＢｌａｃｋＢｏｘと称される介入ソフトウェア変換器を使用して、スパースコーディングによって生じる困難な最適化問題を解決することである。ＢｌａｃｋＢｏｘは、量子ハードウェアを使用して任意の離散的最適化問題が解決されることを可能にするように設計される。スパースコーディング最適化問題は、量子ハードウェアが自然に解決する厳密な問題タイプではないため、量子ハードウェアまでの変換ステップが必要となる。特に、スパースコーディング最適化問題は完全に連結されたＱＵＢＯであり、量子ハードウェアは、Ｃｈｉｍｅｒａ連結ＱＵＢＯを自然に解決する。ＢｌａｃｋＢｏｘは、全体のために性能を取り換え（ｔｒａｄｅ）、任意の離散的最適化問題に関してそれを使用することができるが、その性能は比較的低いことがある。
【０２２７】
２つ目の戦略は、スパースコーディングを修正することによってＢｌａｃｋＢｏｘを通じたコストを回避し、それによって、それが単に量子ハードウェアによって自然に解決することができる問題を生じさせることである。この２つ目の戦略は、本明細書では構造化辞書を有するＬ０ノルムスパースコーディングと称される。ここで、その最も効果的な形式でハードウェアを直接使用することによって多大な加速が得られる。アイデアは、スパースコーディングが学習する「最大限の繰り返しパターン」を構造化し、それによってそれらの多くが直交するようになることである。（スパースコーディングによって生じるＱＵＢＯにおける結合項は、各量子ビットと関連付けられた辞書アトムのドット積に比例する。構造化辞書のアイデアは、ハードウェアにおいて物理的に連結されていない量子ビットと関連付けられたアトムが直交するべきであるという追加的な制約を実施する。このアルゴリズムは、標準的なＬ０ノルムバージョンとは異なる性能特性を有すること可能性がある。
【０２２８】
１つ目の戦略はスパースコーディング構成要素において実装されており、５１２量子ビット量子プロセッサ上でＢｌａｃｋＢｏｘを使用して通常のＬ０ノルムバージョンを使用して生じる問題を解決し、および予想されるように、これは、クラウド上で実行されるタブー検索であった、最良の従来型ソルバを使用することと競争力がなかったことが発見されている。
【０２２９】
この理由は、ハードウェアとは無関係であり、問題は、ＢｌａｃｋＢｏｘにおける変換を行うためのオーバーヘッドが、最適化問題を解決するためにクラウド上でタブー検索に要する時間よりもはるかに大きいことであることに留意されたい。ハードウェア時間を要しない場合でさえ、この戦略は競争力を有しない。
【０２３０】
２つ目の戦略は、スパースコーディング構成要素内で実装されている。構造化辞書アプローチが従来型ソルバを使用して実行しているとき、従来型ソルバを使用したこのアプローチの結果は、５１２量子ビット量子プロセッサ上でこれを実行することによって得られる結果と比較される。
【０２３１】
スパースコーディングの概論
スパース自動符号化の例が図９に示される。図９は、左から右へ、（ａ）元のデータオブジェクト、このケースではＭＮＩＳＴデータセットからの手書き数字の小型画像、（ｂ）少数の辞書アトムを使用したこの画像の再構築、このケースでは、５１２の学習されたアトムの合計からの２６、（ｃ）〜（ｅ）上記画像上で重みとして示されるそれらが含まれる「量」を有する、この再構築で使用される３つの最重要なアトム。ここで、画像を、共に組み合わされる（例えば、追加される）より単純な部分で構成されるものと考えることができる。スパースコーディングは、異なる組み合わせで組み立てるときにそれらの部分の単純な組が、ユーザに関心のあるタイプのより多数の画像を表すことが可能であることを発見することを試みる。
【０２３２】
用語「スパース」は、理想的には、小数の部分のみが任意の１つの画像を構成する必要があることを意味する。スパースコーディングによって発見されるそれらの部分の集合は、辞書と称されることが多く、その部分は辞書アトムと称される。
【０２３３】
実装される２つのアルゴリズムは、Ｌ０ノルムおよびＬ１ノルムスパースコーディングと称される。Ｌ１バージョンは、スパースコーディングに対する標準的なアプローチであり、そこでは、データが辞書アトムの任意の線形結合となることが可能となり、正則化はＬ１の形式の正則化である。Ｌ０バージョンも同様であるが、重みが０または１のいずれかである必要があり、アトムが再構築の中または再構築の外のいずれかにあり、正則化がＬ０の形式の正則化である、辞書アトムの線形結合からデータオブジェクトが形成されるという点で異なる。ユーザは、１０のハードウェアおよび表２に示されるアルゴリズムの組み合わせのいずれかを選択することができる。
【０２３４】
【表３】
0006465876.tif 000134
【０２３５】
スパースコーディング構成要素は、２つのテスト一式を含み、それによって、１０の許可されたハードウェア／ソルバアルゴリズムの組み合わせのいずれかで実行する、両方のタイプのスパースコーディングをユーザが適用することが可能になる。テスト一式は、ＭＮＩＳＴ手書き数字画像データセットおよびＣＩＦＡＲ自然画像データセット（両方は以下で説明される）を使用する。
【０２３６】
ＨＤＬソフトウェアフレームワーク機能リストのスパースコーディング構成要素
以下は、スパースコーディング構成要素に含まれる特徴のリストである。
−  Ｌ０ノルムおよびＬ１ノルムスパースコーディングを介した教師なし特徴学習
−  探索する２つの異なる組み込みデータセット
−  ５つの異なるソルバアルゴリズム
−  ５つの異なる視覚化ルーチン
−  ３つの異なる画像カテゴリ分類一式
−  クラウドおよび量子ハードウェアサポート
−  単純かつロバストなコマンドライン式ユーザインタフェース
−  前の実行を保存し、および後日に結果を調査する能力
【０２３７】
ここで、それらの機能のいくつかがより詳細に説明される。
【０２３８】
ＭＮＩＳＴデータセット
スパースコーディング構成要素は、ＭＮＩＳＴ手書き画像データセットに基づくテスト一式を含む。これは、７０，０００の手書き数字のラベル付けされたデータセットである。各画像は、０〜９の数字を表す白黒数字（ｗｈｉｔｅ−ｏｎ−ｂｌａｃｋ  ｄｉｇｉｔ）である。各画像は、２８×２８ピクセル（各画像で合計７８４ピクセル）を有し、およびグレースケールカラーフォーマットにある。各画像は、正確なカテゴリのラベル（０、１、２、３、４、５、６、７、８、および９）を伴う。ＭＮＩＳＴ画像の例が図１０に示される。
【０２３９】
ＣＩＦＡＲ−１０データセット
スパースコーディング構成要素と共に含まれる第２のテスト一式は、ＣＩＦＡＲ−１０データセット（ＣＩＦＡＲと称される）である。これは、２つの主要なタイプ、車両および動物の７０，０００のラベル付けされたデータセットである。ＣＩＦＡＲトレーニングセットからの例は、図１１に示される。各画像は、３２×３２ピクセルであり、およびＲＧＢカラーフォーマットにある。カテゴリは（飛行機、自動車、鳥、猫、鹿、犬、カエル、馬、船、トラック）である。
【０２４０】
ＣＩＦＡＲおよびＭＮＩＳＴの両方におけるカテゴリは、相互に排他的であり、それは、任意のトレーニングまたはテスト画像に単に１つのラベルが割り当てられていることを意味する。
【０２４１】
最新式専門機械学習技術は、ＭＮＩＳＴに対して約９９％、およびＣＩＦＡＲ−１０に対して約９１％の分類精度を得ることが可能である。
【０２４２】
ソルバ
いくつかの実装形態では、システムはユーザに利用可能な５つの異なるソルバアルゴリズムを有する。
【０２４３】
Ｌ１ノルムスパースコーディングが選択される場合、使用されるアルゴリズムは、本開示にその全体が参照によって組み込まれる、Ｈｏｎｇｌａｋ  Ｌｅｅ  ｅｔ．ａｌ．，Ｅｆｆｉｃｉｅｎｔ  Ｓｐａｒｓｅ  Ｃｏｄｉｎｇ  Ａｌｇｏｒｉｔｈｍｓ，ＮＩＰＳ，ｐａｇｅｓ  ８０１−８０８，２００７において説明される。重みを発見するために使用されるアルゴリズムは、Ｆｅａｔｕｒｅ  Ｓｉｇｎ  Ｓｅａｒｃｈ（ＦＳＳ）と称される。
【０２４４】
Ｌ０ノルムスパースコーディングが選択される場合、重みが与えられた辞書を発見するためのアルゴリズムは、Ｌ１バージョンに対して使用されるのと同一である。しかしながら、重みを発見することは、ＮＰ困難最適化問題となる。スパースコーディング構成要素は、それらに対処するために４つの異なるソルバを実装する。ＣＰＬＥＸは、ＩＢＭからの主要な商業的最適化パッケージであり、それを、発見的解決法として、または全体的な最適性を証明するために実行することができる。
【０２４５】
タブー検索は、概して、スパースコーディングによって生じる性質の完全に連結されたＱＵＢＯのための最良のソルバである、別の発見的解決法である。Ａｋｍａｘｓａｔは、発見的解決法として、または全体的な最適性を証明するために実行することができる、受賞された分岐限定に基づくソルバである。ＢｌａｃｋＢｏｘは、タブー検索に基づく大規模近隣局所検索アルゴリズムを意識しない構造であり、それは、その現在点において関数のＣｈｉｍｅｒａ構造化モデルを作成することによって、各タブー反復において検索された近隣のサイズを増加させる。
【０２４６】
ハードウェア
スパースコーディング構成要素は、ローカル、クラウドまたは量子コンピューティングハードウェアリソースにアクセスすることができる。ローカルな実行は、スパースコーディング構成要素コードを実行するシステム上で実行され、および概して、システムがどのように振舞うかを感じ取るためにユーザがスパースコーディング構成要素を使用するときに推奨される。クラウドの実行は、例えば、ＰｉＣｌｏｕｄクラウドコンピューティングシステムを使用して、Ａｍａｚｏｎ  ｅｌａｓｔｉｃクラウド上で実行されてもよい。効率的に並列化することができるスパースコーディング手順のいくつかの態様が存在する。教師なし特徴学習手順におけるいくつかのデータオブジェクトがおおよそ５０，０００のデータオブジェクトよりも大きい場合、クラウドを使用することが推奨される。ユーザが量子ハードウェア上で実行する場合に使用されるソルバアルゴリズムは、上述したＢｌａｃｋＢｏｘである。
【０２４７】
バイオラベル修復
スパースコーディング構成要素は、「バイオラベル修復（ｂｉｏｌａｂｅｌ  ｉｎｐａｉｎｔｉｎｇ）」と称される特殊機能を有する。これは、アルゴリズムが、それが示される画像のクラスへのさらなる見識を有するように、辞書学習手順への追加（教師あり）情報を追加する形式である。この手順は、以下のように機能する。
【０２４８】
シーケンスデータオブジェクトが作成されるとき、それは、画像だけでなく、ラベル情報を含む付加画像をも含む。画像としてラベルを符号化する背後にあるアイデアは、元の画像データと同一の形式でラベルを表すことができる場合に、学習をより容易になすことができることである。それらの画像は、バイオ学習（ｂｉｏ−ｉｎｓｐｉｒｅｄ）ラベル（短縮してバイオラベル）と称され、なぜならば、ラベルを表すために画像を使用するアイデアは、バイオ学習設計選択（ラベル自体が画像であり、およびシステムが示されているカテゴリの「規範例（ｃａｎｏｎｉｃａｌ  ｅｘａｍｐｌｅ）」として扱われる。スパースコーディング構成要素では、バイオラベルは、ＱＲコードに対し同様の精神で、ラベルカテゴリごとに異なる位置での黒正方形上で白である（ＣＩＦＡＲに対しては黄色）。それらの付加バイオラベルを有するデータオブジェクトの例が図１２に示される。
【０２４９】
このケースでは、辞書が、画像およびそれらのバイオラベル上で共に学習される。そのような辞書を使用して新たなテスト画像を再構築するとき、ラベルにおける「推測」（入力テストデータには存在しない）は、ＨＤＬソフトウェアフレームワークによって修復される。
【０２５０】
「バイオラベル」および「修復」の観点で議論がされてきたが、それらは単純に、出願人によって説明された内在する技術を表すための用語である。バイオラベルを、分析されているデータに組み込まれるラベルと考えることができる。例えば、分析されることになるデータが画像データである場合、ラベルは、ピクセルの組（１つ以上の）として画像データに組み込まれる。画像におけるラベルの空間位置（例えば、ピクセルの組）は情報を符号化する。これは、２次元機械可読シンボルが、シンボルを含むシンボル文字の相対的位置合わせにおいて情報を符号化する方法と同様のいくつかの態様にあるが、しかしながら、有利なことに、オブジェクトの画像表現、アルファベットもしくは数字、または他の文字、データオブジェクトもしくはその再構築などの、分析されているデータ（例えば、画像ファイル）に、または少なくとも分析されているデータと同一のフォーマットで、ラベルまたは機械可読シンボルを組み込む。データ（例えば、画像データ）に組み込まれ、または追加される、この追加または修復されたラベルは概して、画像表現（例えば、ピクセルごとの明度および／または色を表すピクセルの組）と同一の形式のラベルである。上述したように、それらのラベルは、画像表現のさらなる論理的関連付けをもたらす。すなわち、ラベルは、学習のためのさらなるデータポイントをもたらし、なぜならば、ラベルおよびオブジェクト、構造もしくは他の情報、または対応するデータ（例えば、画像データ）において表すそれらの再構築の間の関連付け、相関、または対応が存在することがあるからである。
【０２５１】
よって、画像および画像データに関連して「バイオラベル」および「修復」を議論するために、ラベルは、データオブジェクトの画像またはその再構築を表す画像データに組み込まれ、追加され、または取り付けられてもよい。このラベルは、画像データ、例えば、ピクセルの組と同一の形式のラベルであってもよい。しかしながら、もちろん、ラベルは、本明細書で議論される学習をそれに適用することができる任意の他の形式であってもよい。ラベルは、データオブジェクトの表現の記述（例えば、アルファベットもしくは数字の文字、顔特徴、画像特徴、解剖学的構造）またはそれが取り付けられるその再構築をもたらし、表し、またはそれらにマッピングされてもよい。よって、ラベルと、データオブジェクトの対応する表現、またはラベルが組み込まれ、追加され、または取り付けられるその再構築との間での論理関連付け、相関または対応が存在する。よって、本明細書で議論される学習アルゴリズムを目的として、いくつかの学習アルゴリズムは、ラベルおよびデータオブジェクトの表現またはその再構築の両方にわたって学習するために修正されてもよい。よって、修復は、ラベルを組み込み、追加し、または取り付けると考えられてもよく、そのラベルにおいて、１つ以上のラベルもしくは１つ以上の要素を構成するラベル、または文字が、表現に組み込まれ、追加され、または付加され、およびラベルが表現によって表されるデータオブジェクトもしくはその再構築との論理的な関連付けを有する。これによって、ラベルおよび対応する表現の両方にわたって学習が可能になる。
【０２５２】
視覚化ルーチン
システムは、ユーザに利用可能な５つの異なる視覚化ルーチンを有する。
【０２５３】
それらのうちの１つ目によって、ユーザは、学習アルゴリズムがこのデータ上で実行される前に、ｓｅｑｕｅｎｃｅ＿ｄａｔａにおける元のデータを見ることが可能になる。シーケンスデータオブジェクトは、どの学習を実行するかをユーザが選択したトレーニング画像の数に等しいいくつかの列から構成される。各列は、トレーニングセットにおける１つの画像を表す。画像は、２Ｄ、マルチチャネルカラーピクセル配列から１次元配列へと解かれる。
【０２５４】
配列はさらに、特異値分解（ＳＶＤ）として知られる数学的変換を実行することによって事前処理される。これは、各基底（またはモード）に記憶された情報の量によって順序付けられる基底セットに画像を変換する。このフォーマットにあるとき、したがって、単にそれらのモードのうちの最初のＮを保持することによって画像を圧縮することができる。例は、ＳＶＤが使用されるときに、非常に多くの画像情報を失うことなく、ＣＩＦＡＲ画像（３２×３２ピクセル×３カラーチャネル＝３，０７２の要素の長さ）を３００要素の長さの配列に圧縮することができることである。
【０２５５】
シーケンスデータオブジェクトは、ＨＤＬソフトウェアフレームワーク学習アルゴリズムによって受け付けられる特殊データフォーマットである。任意のタイプのデータを適切なエンコーダ（ＭＮＩＳＴおよびＣＩＦＡＲエンコーダがＨＤＬソフトウェアフレームワークと共に供給される）でこのフォーマットに符号化することができる。ＨＤＬソフトウェアフレームワーク視覚化一式における第１の視覚化ルーチンは、ｓｅｑｕｅｎｃｅ＿ｄａｔａ行列のフォーマットをユーザが理解することを支援する。これは図１３に示される。
【０２５６】
第２の視覚化ルーチンによって、学習された多数の辞書アトムをユーザが合理的に見ることが可能になる。それはまた、再構築処理がどのように行われるかを目測で評価する、この辞書を使用した元のデータ、および元の（グラウンドトルス（ｇｒｏｕｎｄ  ｔｒｕｔｈｓ））それら自体の再構築を示す。これは図１４に示される。
【０２５７】
バイオラベル情報を含む辞書が選択される場合、バイオラベルがまたこの図に表示される。再構築の上に表示された数字は、使用されるアトムのインジケーション（数字が四角カッコにある場合）、または再構築ごとに４つ以上のアトムが存在する場合（シンボル＞＞＃がこのケースの場合の数字の前に表示される）に使用されるアトムの数を表す。平均スパーシティ（再構築ごとに使用される、平均のアトムの数）がまた、使用された辞書ファイルの名前に従って、プロットの表題に表示される。
【０２５８】
第３の視覚化によって、ユーザは、再構築に使用された元の、かつ最大３つのアトムに沿って、再構築のうちの３つを近くで見ることが可能になる。図１５は、動作中のこの視覚化ルーチンの例を示す。再構築を形成するために結合するアトムは、最高絶対等級重みを有する１つが図で示されるように順序付けられる。アトムおよび重みのインデックスがアトム自体の上に示される。
【０２５９】
第４の視覚化は、学習処理の間の目的関数降下法を示す。これは、ユーザにアルゴリズムがどのように最小の解をカバーするかのアイデアを与える。目的関数降下法の関数形式は、異なるソルバおよびデータタイプに対して非常に異なることがあり、ならびに調査の観点から探索することに関心がある。このプロットの別の使用は、多少の侵略的な終了閾値（ａｇｇｒｅｓｓｉｖｅ  ｅｘｉｔ  ｔｈｒｅｓｈｏｌｄ）が必要とされるかをユーザが判定することを支援するために、目的関数降下法が収束するのにどの程度高速であるかを判定することである。この視覚化出力の例は図１６に示される。
【０２６０】
第５の視覚化によって、ユーザは、ラベルカテゴリによってソートされたＷの行列を視覚化することが可能になる。これは、データの「フィンガープリント」を与え、および分析するのに関心がある。肉眼で相関を見ることができる場合、分類器は良好に行われるはずである。この視覚化ルーチンの例は図１７に示される。
【０２６１】
分類一式
ＨＤＬソフトウェアフレームワークのスパースコーディング構成要素は３つの組み込み分類器のタイプを有する。
−  標準分類：Ｗの行列値が多様な分類器の一式に供給される
−  ピクセルの大きさを使用したバイオラベル修復
−  多様な分類器の一式への入力としてのバイオラベル修復
【０２６２】
ここで、それらの分類ルーチンの各々がさらに詳細に説明される。
【０２６３】
Ｗの行列を使用した標準分類
Ｗの行列は、各々の特定の入力画像を表すために使用される辞書アトムの重みである。１つは、スパースな基底（辞書）に関する入力画像の表現としてＷの配列を考えることができる。このＷの配列はまた、時に特徴ベクトルと称される。各入力画像は、学習処理の間に発見されるＷの配列を有する。このＷの配列は、入力画像を伴うカテゴリラベルと共に、分類器を訓練するための入力データとして使用されてもよい。訓練された分類器をテストするために、テスト画像は、スパースな基底を使用して再構築され（このステップは、圧縮検知としても知られる）、結果として得られるＷのテスト配列は、トレーニングデータ上で学習された分類器モデルに従って分類器予測ルーチンに送信される。
【０２６４】
ピクセルの大きさを使用したバイオラベル修復
スパースコーディング構成要素は、特殊「ラベル修復」手順を伴う。バイオラベル構成要素を含む学習辞書を使用してテスト画像が再構築されたとき、バイオラベルは、結果として得られる再構築に修復される。スパースコーディング構成要素で使用されるバイオラベルが、ピクセルがクラスごとに強力に色付けされる（かつ、重ならない）特殊エリアを有するため、ラベルカテゴリに対応する各々の修復されたエリアのピクセルの大きさを見ることによって、直接分類器としてバイオラベルの再構築を使用することができる。最高のピクセルの大きさを有するエリアは、そのテスト画像に対する予測されたラベルである。ＭＮＩＳＴテストセット上での修復されたバイオラベルの例は、図１８に示される。入力テストデータが定義によるバイオラベルを有さないことに留意されたい。
【０２６５】
多様な分類器の一式への入力としてのバイオラベル修復
上記のように抽出されたピクセルの大きさはまた、標準分類器モデル（これは、第１の分類技術と同様であるが、Ｗの行列を使用することとは反対にバイオラベルピクセル情報を使用する）を訓練するために使用することができるデータを形成することができる。このケースでは、各「ラベルエリア」からのピクセルは、その大きさを判定するために問い合わされ、結果として得られる１０の長さの（１０−ｌｏｎｇ）ベクトルは、入力トレーニングデータとして分類器に送信される。分類器の予測をテストするために、テストバイオラベル再構築におけるピクセルの大きさからの１０の長さのベクトルが供給され、分類器は、この情報からラベル予測を生成する。
【０２６６】
バイオラベル修復方法は自然に、複数ラベル割り当てをサポートすることに留意するべきである。しかしながら、上記分類方法は、相互に排他的であるラベルカテゴリをデータが有するか、またはそれらの相関を有する複数のラベルカテゴリをデータが有するか、に応じて異なって振舞うことがある。
【０２６７】
実験結果
フレームワークの作成の背後の１つの動機づけは、Ｌ１ノルムからＬ０ノルムに行く何の効果がスパースコーディング上で有するかの公開の研究の質問であった。研究された２つのデータセットに関する発見は、再構築がスパースである（再構築に使用されるときの少数のアトム）制限において、Ｌ０ノルムスパースコーディングが、ＣＩＦＡＲおよびＭＮＩＳＴデータセットの両方（ＭＮＩＳＴおよびＣＩＦＡＲ上の結果が類似することに対して図１９を参照）に対するＬ１ノルムスパースコーディングと同一の再構築誤りを得るために約半分のアトムを必要とすることである。これは、実質的な改善である。
【０２６８】
ＭＮＩＳＴおよびＣＩＦＡＲ上の既知の最新式のＬ１ノルム分類結果は、スパースコーディング単一レイヤネットを使用して再作成されている。図２０Ａ〜２０Ｄに示されるのは、ＳｔａｎｆｏｒｄにおけるＡｎｄｒｅｗ  ＮｇのグループからのＭＮＩＳＴに対する正則化パラメータに応じた分類結果、およびＨＤＬソフトウェアフレームワークを使用して得られた結果、スパースコーディング構成要素である。分類手順の絶対値における差異は、画像データが事前処理される方法における差異から生じ、本技術は、やや分類精度を減少させる、初期トレーニングデータをかなりの程度に圧縮する。図２０Ｂでは、スパースコーディング構成要素が画像ごとに５０のアトムの最大値において飽和し、Ｎｇ結果（図２０Ｄ）が画像ごとに約２６０のアトムにおいて飽和することを見ることができる。ここでの主要な結果は、図２０Ａにおける曲線の形状（スパースコーディング構成要素結果）および図２０Ｃにおける曲線の形状（Ｎｇ結果）が、ほぼ同一の最大分類精度（９７．１％対９６．５％）を有して同一であることである。
【０２６９】
２つのバージョンのスパースコーディングが実装されており、１つは、共用であり（Ｌ１ノルム）、および分類（ｓｏｒｔ）量子ハードウェアの問題を解決することが必要な１つは、解決する（Ｌ０ノルム）ために設計される。そのようにするために、それらのアルゴリズムの両方の最新式の実装形態が生成されており、最先端の教師なし学習方法における能力を提供する。それらの方法の実行は、２つの学問的データセット、ＭＮＩＳＴおよびＣＩＦＡＲ−１０上で分析されており、Ｌ０ノルムバージョンが再構築誤りに応じて重要な基準スパーシティ（ｋｅｙ  ｍｅｔｒｉｃ−ｓｐａｒｓｉｔｙ）において優れていたことが発見されている。
【０２７０】
ＨＤＬソフトウェアフレームワークユーザインタフェース
本明細書のこの章は、上述したＨＤＬソフトウェアフレームワークを使用してデータ分析をインストールすること、構成すること、および実行することを導入する。図２１〜３２は、ユーザインタフェースの態様を示す。
【０２７１】
Ｐｙｔｈｏｎインストール
最初にＰｙｔｈｏｎ（例えば、Ｐｙｔｈｏｎ２．７）をインストールする。Ｐｙｔｈｏｎ  ＩＤＥはまた、このコードで使用するために推奨されるが、ＩＤＥが利用可能でない場合に、Ｗｉｎｄｏｗｓコマンドラインからコードを実行することができる。
【０２７２】
インストール必須パッケージ
いくつかの第三者ライブラリはまた、動作するスパースコーディング構成要素に使用される。ここで、パッケージのリストが存在する。各パッケージは、ユーザのマシン上にダウンロードおよびインストールされるべきである。全てのそれらのパッケージは、通常、ＨＤＬソフトウェアフレームワークソースコードで出荷する、「パッケージ」フォルダに含まれる。
Ｐｙｔｈｏｎ２．７Ａｋｍａｘｓａｔ  Ｓｏｌｖｅｒ−１．０．０
Ｐｙｔｈｏｎ２．７  ｃｌｏｕｄ−２．７．１
Ｐｙｔｈｏｎ２．７ｃｖｘｏｐｔ−１．１．５（６４ビット）
Ｐｙｔｈｏｎ２．７Ｄ−Ｗａｖｅ  Ｏｎｅ  Ｓｏｌｖｅｒ  ＡＰＩ  ｃｌｉｅｎｔ  １．５．０−ａｌｐｈａ（６４ビット）
Ｐｙｔｈｏｎ２．７ｍａｔｐｌｏｔｌｉｂ−１．２．０（６４ビット）
Ｐｙｔｈｏｎ２．７Ｍｅｔｓｌｉｂ  Ｔａｂｕ  Ｓｏｌｖｅｒ−１．０．０
Ｐｙｔｈｏｎ２．７ｎｕｍｐｙ−１．６．２ＭＫＬ（６４ビット）
Ｐｙｔｈｏｎ２．７ｏｐｅｎｃｖ  −  ２．４．２（６４ビット）
Ｐｙｔｈｏｎ２．７ＰＩＬ（ｐｉｌｌｏｗ）１．１．７（６４ビット）
Ｐｙｔｈｏｎ２．７ｓｃｉｋｉｔ−ｌｅａｒｎ−０．１３（６４ビット）
Ｐｙｔｈｏｎ２．７ｓｃｉｐｙ−０．１１．０（６４ビット）
Ｐｙｔｈｏｎ２．７ｗｘＰｙｔｈｏｎ２．８．１２．１（６４ビット）
ＣＰＬＥＸ（ライセンス必須）
【０２７３】
ＨＤＬソフトウェアフレームワークＣＬＩの導入
スパースコーディング構成要素を実行するために、ｂｕｔｔｅｒｆｌｙ＿ｃｌｉ．ｐｙを実行する。これは、Ｐｙｔｈｏｎ  ＩＤＥの中から、または図２１に示されるコマンドラインから実行されてもよい。バー（ｂａｒｓ）は、自身のローカルファイルパスを表示するはずである。このＰｙｔｈｏｎファイルが実行されると、ＨＤＬソフトウェアフレームワークスパースコーディング構成要素コマンドラインインタフェース（ＣＬＩ）が提示される。いくつかのオプションは、ユーザが選択するためにプリントされる。これは図２２に示される。ＨＤＬソフトウェアフレームワークコマンドの全ては、実行する手順に対する簡易表記がそれに続く、形式「−」（ダッシュ記号）のキーワードである。オプションは、
−  「−ｉ」：ＨＤＬソフトウェアフレームワークシステムの初期化
−  「−ｖ」：自身の現在の設定の確認
−  「−ｒｅｓｅｔ」ｐａｒａｍｅｔｅｒｓ．ｔｘｔファイルの工場出荷時のデフォルトへのリセット
−  「−ｅｎ」選択されたデータセット（ＭＮＩＳＴまたはＣＩＦＡＲ）トレーニングデータのシーケンスデータオブジェクトへの符号化
−  「−ｓｃ」スパースコーディングの実行
−  「−ｒｓ」：スパーシティ、再構築誤りおよび実際の経過時間の結果テーブルのプリント
−  「−ｖ１」：符号化されたシーケンスデータの視覚化
−  「−ｖ２」：多数の辞書アトムおよび再構築の視覚化
−  「−ｖ３」：少数のグラウンドトルス、それらの再構築、およびそれらがそこから作成される辞書アトムの視覚化
−  「−ｖ４」：特定の辞書学習の実行のための目的関数の降下法の視覚化
−  「−ｖ５」：ラベルカテゴリによってソートされたＷの行列の視覚化
−  「−ｒｓｔｓ」：テストセット上での再構築誤りの計算およびプリント
−  「−ｖ２ｔｓ」：テストセットの辞書アトムおよび再構築の視覚化
−  「−ｃｌｆ」：スパースにコーディングされたＭＮＩＳＴまたはＣＩＦＡＲデータセット上での分類の実行
−  「−ｃｌｆｂｉｏ」：特殊目的バイオラベル分類器の実行
−  「−ｈ」：ヘルプのプリント
−  「−ｅ」：終了
【０２７４】
コマンドを実行するためにキーワードの周辺でクオート（ｑｕｏｔｅｓ）をタイプする必要がないことに留意されたい。
【０２７５】
ＨＤＬソフトウェアフレームワークのスパースコーディング構成要素の初期化
ユーザがＣＬＩをロードしたとき、タイプする最初のコマンドは、−ｉである。これは、システムを初期化する。フォルダ構造は、ソースコードが位置するルートディレクトリで作成され、トレーニングデータは、トレーニングをする状態になってインターネットからダウンロードおよびアンパックされる。ＭＮＩＳＴ画像データおよびＣＩＦＡＲデータは自動的に取り出される。
【０２７６】
ＣＩＦＡＲソースからのデータは、手動で２回ｚｉｐ解凍（ｕｎｚｉｐｐｅｄ）される必要があり（それは、ｇｚｉｐおよびｔａｒの両方で圧縮される）、未加工ファイルは、ＣＩＦＡＲ＿ｄａｔａフォルダに移動される必要があることに留意されたい。加えて、ｂｉｏ＿ｌａｂｅｌｓ＿２＿ｍｎｉｓｔおよびｂｉｏ＿ｌａｂｅｌｓ＿２＿ｃｉｆａｒフォルダは、パッケージフォルダからＭＮＩＳＴおよびＣＩＦＡＲデータフォルダにそれぞれ移動または複製される必要があることがある。図２３は、この処理が完了すると、ＣＩＦＡＲ＿ｄａｔａフォルダがどのように見えるはずかを示す。
【０２７７】
デフォルトのｐａｒａｍｅｔｅｒｓ．ｔｘｔファイルは、それらのデフォルト値に初期化された全てのパラメータで作成される。任意のポイントにおいて、ユーザは、スパースコーディング構成要素インタフェースからコマンド−ｒｅｓｅｔを使用してデフォルト値にｐａｒａｍｅｔｅｒｓ．ｔｘｔをリセットすることを選択することができる。ユーザはまた、ｈｅｌｐファイルを提示するためにいずれかの時に−ｈをタイプすることができる。
【０２７８】
ｐａｒａｍｅｔｅｒ．ｔｘｔファイルの導入
ユーザがＨＤＬソフトウェアフレームワークシステムと対話する主要な方法は、いくつかのパラメータを指定し、次いで、ＣＬＩにおいてオプションのうちの１つを実行することによるものである。パラメータを調節するために、ユーザは、図２４に示すテキストエディタにおいてｐａｒａｍｅｔｅｒｓ．ｔｘｔファイルを開く必要がある。次に、ファイルを変更、次いで保存するために、パラメータと関連付けられた値を修正する。図２４にリスト化されたパラメータは以下のように説明される。
Ｋ
このパラメータは、辞書を形成するために使用されるアトムの数を指定する。５０〜５００の範囲にある値が一般的である。
【０２７９】
ｌａｍｂｄａ＿ｖａｌｕｅ
これは、正則化パラメータである。より高いｌａｍｂｄａが設定されると、再構築に含まれるアトムごとにさらなるペナルティがあり、および再構築がさらにスパースになる。ｌａｍｂｄａの効果は、データセットのサイズ、辞書アトムの数、および使用されているソルバタイプに依存する。ＭＮＩＳＴに対し、０．００１〜０．１の範囲にある値が一般的である。
【０２８０】
ｕｎｌａｂｅｌｅｄ＿ｓｏｌｖｅｒ＿ｆｌａｇ
使用するソルバを選択する。オプションは、
２：「ＢＬＡＣＫＢＯＸ＋ＶＥＳＵＶＩＵＳ」（すなわち、ＢｌａｃｋＢｏｘおよび量子コンピュータ）
４：「ＭＥＴＳＴＡＢＵ」
５：「ＣＰＬＥＸ」
６：「ＡＫＭＡＸＳＡＴ」
９：「ＢＬＡＣＫＢＯＸ＋ＥＭＵＬＡＴＯＲ」
１０：「ＦＳＳ」
である。
【０２８１】
ＦＳＳとは別の全てのソルバは、Ｌ０正則化を使用する（二値重みは辞書アトムを増加させる）。ＦＳＳは、Ｌ１正則化を使用する（実数値重みは辞書アトムを増加させる）。オプション４（Ｌ０に対し）およびまたはオプション１０（Ｌ１に対し）のいずれかを使用することが推奨される。
【０２８２】
ｕｓｅ＿ｃｌｏｕｄ
Ｐｉｃｌｏｕｄインタフェースを介して、ジョブがローカルに（ｕｓｅ＿ｃｌｏｕｄ＝Ｆａｌｓｅ）またはクラウド上で（ｕｓｅ＿ｃｌｏｕｄ＝Ｔｒｕｅ）実行されるかを設定する。ユーザがジョブをクラウド上で実行することを要求する場合、ユーザは、クラウドアカウントを設定する必要がある。ユーザがクラウド上でジョブを実行する場合、ユーザは未だに、データをローカルにアクセスすることが可能であることに留意されたい。
【０２８３】
データセット
どのデータを調査するかを選択する。現在のオプションは、「ｍｎｉｓｔ」または「ｃｉｆａｒ」であるが、他のデータが使用されてもよい。
【０２８４】
バイオラベル
このフラグは、バイオラベルを入力トレーニングデータに付加することを通知する。許容値は、「Ｔｒｕｅ」または「Ｆａｌｓｅ」である。
【０２８５】
ｌｏｃａｌ＿ｖｅｒｂｏｓｅ
これは、ユーザが符号化および学習処理としてより厳密に実行を監視することを要求する場合、コマンドラインインタフェースへの追加的な任意選択のプリントアウトを作成するフラグである。許容値は、「Ｔｒｕｅ」または「Ｆａｌｓｅ」である。
【０２８６】
ｂｌａｃｋｂｏｘ＿ｎｕｍ＿ｒｅａｄｓ
各タブーステップにおいて量子コンピューティングハードウェアからの読み取り値の数を指定する。値が高いと、最適化がさらに良好になるが、実行にさらに長い時間を要する。この数をゼロ（０）に設定することによって、大規模近隣局所検索機構が除去され、ＢｌａｃｋＢｏｘがタブー検索のタイプと同等になる。デフォルト値は１，０００である。１００〜１０，０００の範囲にある値が一般的である。
【０２８７】
ｃｐｌｅｘ＿ｔｏ＿ｇｌｏｂａｌ＿ｏｐｔｉｍａｌｉｔｙ
このブールがＴｒｕｅであり、ユーザがＣＰＬＥＸをインストールしている場合、ソルバは、学習ルーチンを通じて実行し、各ステップにおいて、全体的な最適化（最高の考えられる回答）が達成されたことを証明する。これは、それと発見的解決法ソルバを比較する基準値を有することが要求される場合に有効である。全体的な最適性に対しＣＰＬＥＸを実行することは、特に、Ｋが大きい場合に長い時間を要することがあることに留意されたい。この変数がＦａｌｓｅに設定される場合、ＣＰＬＥＸは、ｕｎｌａｂｅｌｅｄ＿ｓｏｌｖｅｒ＿ｔｉｍｅｏｕｔがタイムアウトした後に終了する（以下を参照）。
【０２８８】
ｕｎｌａｂｅｌｅｄ＿ｓｏｌｖｅｒ＿ｔｉｍｅｏｕｔ
ＭＥＴＳＬＩＢ  ＴＡＢＵ、ＣＰＬＥＸおよびＡＫＭＡＸＳＡＴソルバは全て、ソルバタイムアウトが与えられてもよい。これは、ミリ秒の時間であり、その時間の後にそれらが発見した最良の回答をそれらは返すはずである。これは、問題的解決法ソルバが最適な回答を返したか否かをチェックする方法がないため、必要となる。５〜１００ミリ秒の範囲にある値がここでは一般的である。タイムアウトが長いと、大規模な実行に対して最適化がより良好となるが、しかしながら、それはまた、実行に要する時間を増大させる。
【０２８９】
ｔｉｍｅ＿ｂｙ＿ｉｔｅｒａｔｉｏｎｓ＿ｆｏｒ＿ｔａｂｕ
これは、Ｔｒｕｅの場合にミリ秒の特定のタイムアウトの後に終了する代わりに、一定の数のタブー反復が実行された後に終了することをタブー検索アルゴリズムに依頼するブールである。
【０２９０】
ｔａｂｕ＿ｒａｎｄｏｍ＿ｔｉｅ＿ｂｒｅａｋｉｎｇ
これは、タイ（ｔｉｅｓ）をランダムに中断するか否かをタブー検索アルゴリズムに通知するブールである。これがＴｒｕｅのときにタブー最適化が良好であるように見える。
【０２９１】
ｔａｂｕ＿ｉｔｅｒａｔｉｏｎｓ＿ｉｎ＿ｒｏｌｌ
これは、初期降下法段階の間にＱＵＢＯ最適化ごとにタブー検索が実行する反復の最大数である。
【０２９２】
ｔａｂｕ＿ｉｔｅｒａｔｉｏｎｓ＿ａｆｔｅｒ＿ｒｏｌｌ
これは、初期降下法段階の後にタブー検索が実行する反復の最大数である。
【０２９３】
ｓｅａｒｃｈ＿ｄｅｐｔｈ
タブー類似のソルバは、初期段階を有し、そこでは、それらは、主要な学習アルゴリズムを実行する最良の位置上に落ち着く前に、多くの異なるランダムな開始点を試すことができる。検索深度は、それらの初期テスト（ロールとして知られる）を実行する反復の数である。Ｌ１ノルムバージョンを使用する場合、これを１に設定する。
【０２９４】
ｎｕｍｂｅｒ＿ｏｆ＿ｒｏｌｌｓ
ｓｅａｒｃｈ＿ｄｅｐｔｈに関連して、ユーザは、主要な実行の開始の前に解決法が見込みのあるように見える領域を発見するために、アルゴリズムが調査する異なるランダムな開始点の数を指定することができる。１〜２０の範囲にある値が一般的である。Ｌ１バージョンに対し、ｎｕｍｂｅｒ＿ｏｆ＿ｒｏｌｌｓは常に、Ｌ１アルゴリズムが常に同一の回答に収束するため、１に設定されるべきである。
【０２９５】
ｅｘｉｔ＿ｔｈｒｅｓｈｏｌｄ
反復において、目的関数がこの値未満に減少するときアルゴリズムは停止し、結果が保存される。終了閾値をより高く設定することは、アルゴリズムがより早く終了することを意味するが、発見される回答が良好でないことがある。０．０１〜１０の範囲にある値は、ＭＮＩＳＴに対して一般的であるが、このパラメータは、画像の数、ｌａｍｂｄａ、および使用されるソルバのタイプに高度に依存する。実際に、ユーザは、ｅｘｉｔ＿ｔｈｒｅｓｈｏｌｄが何であるべきかを感じ取るために目的関数降下法を実行および観察する。
【０２９６】
環境
このパラメータは、ＨＤＬソフトウェアフレームワークが使用するクラウド上の環境（Ｐｙｔｈｏｎパッケージがインストールされる）を指定する。環境名は、クラウドアカウント設定の間に設定されるべきであり、通常はその後変更されない。
【０２９７】
ｍａｐ＿ｊｏｂｓ＿ｂｕｎｄｌｅ＿ｓｉｚｅ
クラウド上で実行するとき、このパラメータは、何個のジョブを「共にバンドルするか」を指定する。それらのジョブは、相互に１つおきにシリアルに実行する。各々の個々のジョブがどの程度困難であるかに応じて、主要部を設定するのに関連するオーバーヘッド時間よりもジョブがさらに迅速に完了することが多いため、各ジョブをクラウド上の別の主要部に送信するのに不十分であることがある。そのようにして、ジョブは、クラウド上の主要部の使用が最大に効率的となるように共にバンドルされる。一般的な値は、５００〜５，０００の範囲にあるが、これは、Ｋ、トレーニングセットにおけるオブジェクトの数、実行することが望まれる主要部の数、および使用されるソルバに高度に依存する。
【０２９８】
ｎｕｍｂｅｒ＿ｏｆ＿ｔｒａｉｎｉｎｇ＿ｉｍａｇｅｓ＿ｔｏ＿ｇｒａｂ
これは、トレーニングデータのどのサブセットが実行に使用することが要求されるかを指定する。いくつかの実装形態では、ＭＮＩＳＴは、トレーニングセットにおいて５９，９９９のデータオブジェクトの最大値を有し、よって、ユーザは、データセットが「ｍｎｉｓｔ」である場合に、１〜５９，９９９の値を設定することができる。現在実装されているように、ＣＩＦＡＲは、１０，０００の画像の最大値を有し、よって、ユーザは、データセットが「ｃｉｆａｒ」である場合に、１〜１０，０００からのこの値を設定することができる。ユーザがＨＤＬソフトウェアフレームワークを使用することに慣れてくると共に、少数のデータポイントが種々の特徴（１００が適正に妥当である）を試すために使用されることが示唆されることに留意されたい。しかしながら、ユーザが学問的かつ業界標準の結果を作成することを望むときは、完全なデータセットを使用することが必要となる。
【０２９９】
ｎｕｍｂｅｒ＿ｏｆ＿ｓｖｄ＿ｍｏｄｅｓ＿ｔｏ＿ｋｅｅｐ
いずれかのタイプのスパースコーディングを実行する前、特異値分解（ＳＶＤ）を実行することによって、最初に未加工データの次元を削減する。保持されるＳＶＤモードの数を、ＭＮＩＳＴのケースでは１〜７８４、ＣＩＦＡＲのケースでは１〜３，０７２に設定することができるが、ｎｕｍｂｅｒ＿ｏｆ＿ｔｒａｉｎｉｎｇ＿ｉｍａｇｅｓ＿ｔｏ＿ｇｒａｂよりも大きく設定することはできず、またはＳＶＤ処理が機能しないことに留意されたい。ＭＮＩＳＴ未加工画像の良好な再作成を２５〜５０ＳＶＤモードで得ることができる。ＣＩＦＡＲデータセットの良好な再作成を２５０〜４００ＳＶＤモードで得ることができる。
【０３００】
ｒｕｎ＿ｎａｍｅ
これは、実行を区別するためにユーザが追加することができる名前（ｍｏｎｉｋｅｒ）であり、それによって、どのデータセットがどれであるかをそれらが容易に想起することが可能になる。例えば、ユーザはこの名前が実行の現在の日付および時刻、または現在のユーザの名前になるように設定してもよい。ＨＤＬソフトウェアフレームワークが実行の結果を保存するとき、ファイル名の最初のいくつかの文字は、実行時のｐａｒａｍｅｔｅｒｓ．ｔｘｔにあったｒｕｎ＿ｎａｍｅに設定される。
【０３０１】
パラメータ設定の確認
ユーザがｐａｒａｍｅｔｅｒｓ．ｔｘｔファイルを正確に設定したことをチェックするために、ファイルを保存し、次いで、ＨＤＬソフトウェアフレームワークＣＬＩにおいて−ｖコマンドを実行する。これは、パラメータ設定上での一連のチェックを通じて実行される。パラメータの組み合わせに関して一定の制約が存在し、例えば、ｎｕｍｂｅｒ＿ｏｆ＿ｔｒａｉｎｉｎｇ＿ｉｍａｇｅｓ＿ｔｏ＿ｇｒａｂよりも大きいｎｕｍｂｅｒ＿ｏｆ＿ｓｖｄ＿ｍｏｄｅｓ＿ｔｏ＿ｋｅｅｐを有することができない。インタフェースが誤りを発見した場合、それは、何が誤って実行されたかを示すリストをプリントする。
【０３０２】
各々の誤りが個別にリスト化される。ユーザは、それらの誤りを解決し、ファイルを保存し、および−ｖを再度実行することを試みるために、ｐａｒａｍｅｔｅｒｓ．ｔｘｔを修正する必要があることがある。全ての誤りが修正された場合、ＣＬＩは、代わりに、実行パラメータに関するいくつかの情報をプリントアウトする。
【０３０３】
データ符号化
ＭＮＩＳＴおよびＣＩＦＡＲデータセットを、ＨＤＬソフトウェアフレームワークによって認識可能な形式に変換するために、画像は、ｓｅｑｕｅｎｃｅ＿ｄａｔａオブジェクトに符号化される必要がある。この処理は、符号化として知られ、および任意の機械学習を試みる前にユーザがデータに対して最初に行うことである。符号化は、データを種々の異なるファイルフォーマットにさせ、およびそれらを、ＨＤＬソフトウェアフレームワーク内で使用される標準行列フォーマットに変換する方法である。データセットが選択されるとき、追加の圧縮ステップが符号化の前に実行される。これは、より小さなファイルサイズでビットマップをＪＰＥＧフォーマットに変換することができる方法と同様に、さらなる品質を損なうことなく、未加工のピクセルデータを圧縮することができることが多いからである。ＭＮＩＳＴデータの未加工の大きさは、圧縮前は７８４（およびＣＩＦＡＲに対しては３，０７２）である（カラーチャネルの画像ｘの数におけるピクセルの数）。ＨＤＬソフトウェアフレームワークのスパースコーディング構成要素によって実行される圧縮は、ＳＶＤ（特異値分解）として知られ、ユーザは、パラメータｎｕｍｂｅｒ＿ｏｆ＿ｓｖｄ＿ｍｏｄｅｓ＿ｔｏ＿ｋｅｅｐを設定することによって使用する圧縮比を選択することができる。
【０３０４】
ＭＮＩＳＴまたはＣＩＦＡＲデータがＳＶＤ表現に変換されたとき、それは、ＨＤＬソフトウェアフレームワークによって、学習アルゴリズムに送信される準備がされた値の２Ｄ行列に符号化される。ユーザは、データを符号化するために−ｅｎをタイプする。
【０３０５】
ｓｅｑｕｅｎｃｅ＿ｄａｔａ（また、ｓｅｑ＿ｄａｔａ）オブジェクトは、ユーザのｌｅａｒｎｉｎｇ＿ｄａｔａ／ＭＮＩＳＴ＿ｔｒａｉｎｉｎｇまたはｌｅａｒｎｉｎｇ＿ｄａｔａ／ＣＩＦＡＲ＿ｔｒａｉｎｉｎｇディレクトリに記憶される。ＳＶＤステップからの追加のファイルも保存される。
【０３０６】
ローカルなスパースコーディングの実行
デフォルトで、ユーザがエンコーダおよびスパースコーディングを実行するときに、全てのファイルがローカルに保存される。しかしながら、ユーザがｕｓｅ＿ｃｌｏｕｄをＴｒｕｅに設定する場合、ファイルはまた、クラウドに複製される。ユーザが全てをテストするためにローカルで実行することを開始することは、より大きな実行のためのクラウドを使用する前に、より小さなｎｕｍｂｅｒ＿ｏｆ＿ｔｒａｉｎｉｎｇ＿ｉｍａｇｅｓ＿ｔｏ＿ｇｒａｂで機能することが示唆される。ユーザが−ｅｎを実行した後、スパースコーディングをローカルに実行するために、単純に−ｓｃをタイプし、ｅｎｔｅｒを押す。ユーザが−ｅｎを実行することを忘れた場合、ＣＬＩは、有効なシーケンスデータファイルを発見することができないことをユーザに通知し、およびエンコーダを実行することをユーザに促す。
【０３０７】
スパースコーディングは時間を要する処理であるため、スパースコーディング構成要素はこのコマンドを実行することを試みる前に、設定を自動的にチェックする。実際に、それは、誤りがないことをチェックするためにスパースコーディングを実行する前に、−ｖをサイレントに実行する（前に説明した同一の証明スクリプト）。それが誤りを発見した場合、それは、−ｖを再度実行し、および誤りを最初に修正することをユーザに促す（図２５参照）。
【０３０８】
スパースコーディングが実行されるとき、ユーザは、反復を実行するコードを確認する。この処理は、設定に応じて完了するのに長時間かかることがあるが、文言「Ａｔ  ｃｏｌｕｍｎ＃０」をプリントアウトすることは、スパースコーディングが正確に実行されていることを意味する。図２６は、ユーザが−ｓｃを実行するときに何が予想されるかを示す。例えば、アルゴリズムは、多数の反復（＞１５０）で実行しているように見える場合、ユーザは、目的関数がその都度減少する量をチェックすることを望むことがあり、アルゴリズムは、差異がｅｘｉｔ＿ｔｈｒｅｓｈｏｌｄを下回るまで終了しない。
【０３０９】
スパースコーディングルーチンが終了するとき、プログラムは、メインメニュープロンプトに戻るはずである。プログラムは、学習された辞書（プレフィックスＤ＿）および重みの組（プレフィックスＷ＿）として実行を保存している。それらを、ｌｅａｒｎｉｎｇ＿ｄａｔａ／ｍｎｉｓｔ（またはｃｉｆａｒ）＿ｔｒａｉｎｉｎｇ／フォルダで発見することができる。ＨＤＬソフトウェアフレームワークはまた、目的関数降下法ファイル（プレフィックスｏｂｊ＿ｆｕｎｃ＿ｖａｌ＿）および実際の経過時間ファイル（プレフィックスｗａｌｌｃｌｏｃｋ＿ｔｉｍｅ＿）を保存する。
【０３１０】
視覚化ルーチンの実行
スパースコーディングが実行されたとき、ユーザは、視覚化ツールの一式へのアクセスを有する。それらを実行するために、ユーザは、−ｖ１、−ｖ２、−ｖ３、−ｖ４または−ｖ５をタイプする。ユーザは、現在の設定を使用することを望むか否かを促される。ユーザが「ｙ」をタイプする場合、ｐａｒａｍｅｔｅｒｓ．ｔｘｔファイルにおける値が使用される。これは、実行された最後のスパースコーディングの実行が、視覚化される１つであることを意味する。ｐａｒａｍｅｔｅｒｓ．ｔｘｔを変更し、次いで、それらの現在のパラメータを使用して視覚化を再実行することを試みる場合、システムは、エンコーダおよびスパースコーディングを最初に再実行することを促す。
【０３１１】
ユーザが「ｎ」を選択する場合、システムは、プロットするデータに対するオプションのリストをロードする。前の実行を使用して学習されたデータセットが存在する。ユーザは、それに関連付けられた番号（各オプションの左に示される）をタイプすることによって前のデータセットを選択することができる。
【０３１２】
視覚化はまた、それから実行されるどのデータが来るかをさらに明確にするために、画面（ｆｉｇｕｒｅ）のタイトルにおけるファイル名を有する。
【０３１３】
番号が選択されると（または、現在の設定を使用する場合は「ｙ」）、しばらくして、視覚化がポップアップウインドウに現れる。ユーザは、画面ウインドウメニューオプションを使用することを望む場合に、画面を画像として保存することができる。画面は自動では保存しない。視覚化の後にＨＤＬソフトウェアフレームワークＣＬＩに戻るために、画面ウインドウを閉じる。
【０３１４】
実行からの重要な結果のプリントアウト
視覚化一式に加え、ユーザは、実行からの結果のハンディテーブル（ｈａｎｄｙ  ｔａｂｌｅ）をプリントアウトするために−ｒｓをタイプすることができる。これは、ユーザが多くの実験を実行しており、ならびにパラメータが変更され、および学習が再実行される都度、一定の値に注意することを望む場合に有効となることがある。結果リストの例は、図２７に示される。
【０３１５】
テストセット上での再構築の実行
辞書学習手順を実行した後、ユーザは、テストセット上で再構築処理を実行することを選択することができる。これは、その辞書の基底においてテスト画像を記述するために、発見された辞書を使用する。この処理はまた、圧縮検知として知られる。テストセットの再構築は、分類ルーチンを実行することができる前に必要とされる。テストセット上で再構築を実行するために、ユーザは、−ｒｓｔｓをタイプするべきである。このルーチンは、テストセット上で再構築誤りをプリントアウトし、またＷｔｅｓｔ行列をｌｅａｒｎｉｎｇ＿ｄａｔａ／ＭＮＩＳＴ（またはＣＩＦＡＲ）＿ｔｒａｉｎｉｎｇフォルダに保存する。再構築が最適化問題の解を必要とするため、再構築処理は、ユーザの設定に応じて実行するのに一定の時間を要することがある。
【０３１６】
コードを実行する前に、ｐａｒａｍｅｔｅｒｓ．ｔｘｔにおけるｌａｍｂｄａが、再構築に使用することを望まれる保存された辞書からのｌａｍｂｄａと一致することをチェックすることを促される。
【０３１７】
テストセット再構築の視覚化の実行
−ｒｓｔｓが実行されたとき、テストセット視覚化ルーチンが利用可能になる。−ｖ２ｔｓまたは−ｖ３ｔｓのいずれかを実行することは、ｖ２およびｖ３のプロットを生成するが、トレーニングデータの代わりにテストデータを使用する。再構築がバイオラベルに含まれる場合、これは画面に自動的に示される。テスト画像自体がバイオラベルを伝達せず、よってグラウンドトルス画像の下のエリア（バイオラベルがトレーニングセット画像に対して発見される）は、−ｖ２ｔｓおよび−ｖ３ｔｓにおいて意図的にブランクのままとされることに留意されたい。
【０３１８】
分類ルーチンの実行
標準分類ルーチンを実行するために、ユーザは、−ｃｌｆをタイプするべきである。分類器を実行するために、システムは、Ｗｔｅｓｔ行列へのアクセスを有するべきであり、すなわち、ユーザは、テストセット上で再構築を最初に実行するべきである（−ｒｓｔｓ）。ＨＤＬソフトウェアフレームワークは、Ｗの行列、Ｗｔｅｓｔ行列、ならびにトレーニングおよびテストラベルを自動的に検出し、それらの入力上で様々な範囲の分類器を実行する。
【０３１９】
特殊バイオラベル分類器を実行するために、ユーザは、−ｃｌｆｂｉｏをタイプするべきである。バイオラベルピクセル大きさ分類器（１つの分類結果を返す）と様々な分類器（標準分類器のケースにあるようにいくつかの分類結果を返す）の一式への入力としてのバイオラベル修復との間の選択が存在する。このオプションは、ユーザが、有効とされたバイオラベルで辞書を学習した場合にのみ利用可能となることに留意されたい。
【０３２０】
クラウド上での実行
ユーザがクラウド上での実行を望む場合、ユーザは、Ｐｉｃｌｏｕｄアカウントを最初に設定してもよい。クラウドにジョブをサブミットするために、ｐａｒａｍｅｔｅｒｓ．ｔｘｔにおいて単純にｕｓｅ＿ｃｌｏｕｄフラグをＴｒｕｅに等しく設定する。ここで、ジョブは、−ｓｃ（スパースコーディング）を実行するときにクラウドに送信される。進行を監視するために、ユーザは、ｐｉｃｌｏｕｄジョブページに訪問する必要がある。現在のジョブを参照するために、インタフェースパネル（図２８）の左側上のジョブタブをクリックする。
【０３２１】
ジョブを実行することは視認可能であるべきである。クラウド上でのＰｙｔｈｏｎのプリントアウトを参照するために、メインジョブをクリックする。これは、状態列における（図２９に示される）些細なジョブを有する１つである。
【０３２２】
そのジョブに対応するページにアクセスするために、ジョブＩＤ（図２９で強調表示される）をクリックする。ここで、プリントアウトは、「標準出力」と命名されたエリア（図３０に示される）をスクロールダウンすることによって参照されてもよい。プリントアウトは、ジョブがローカルに実行されているときにコマンドラインインタフェース上で見られるプリントアウトと類似するはずである。
【０３２３】
ｍａｐ＿ｊｏｂｓ＿ｂｕｎｄｌｅ＿ｓｉｚｅが正確に設定されることをチェックするために、ｃｌｏｕｄ．ｍａｐサブミッションの下のプリントアウトにスクロールダウンする。ここで、ユーザは、クラウド上で実行に要する各ジョブの時間を示すプリントアウトを発見する。これは、図３０で強調表示される。この数は、クラウドの主要部を最大に効率的に使用するために、約１０であるはずである（例えば、ジョブごとに１０秒）。ユーザは、この値が１０に近くない場合にｍａｐ＿ｊｏｂｓ＿ｂｕｎｄｌｅ＿ｓｉｚｅを変更する必要があることがある。ここで、値は２．４であり、よって、ｍａｐ＿ｊｏｂｓ＿ｂｕｎｄｌｅ＿ｓｉｚｅは、最適なクラウドの使用のために非常に低く設定されている。
【０３２４】
クラウドジョブが継続するにつれ、ユーザは、ジョブがさらに発生することを確認する。これは、図３１に示される。完了したジョブは、マップごとにジョブの総数の一部として示される。発生するロール（前に説明された）は、メイン学習ルーチンとは別個に処理する。発生する異なるタイプのジョブの中断は、図３２に示される。完了したジョブは、それらの隣のチェックマークで表示される。
【０３２５】
ユーザが大きなジョブ（例えば、１０，０００を上回るトレーニング画像）を実行している場合、ユーザは、ジョブを効率的に実行するためのリアルタイムコアを予約することを推奨される。リアルタイムコアを予約するために、「リアルタイムコア」タブをクリックし、および「コアタイプ：ｆ２」、次いで、その間にリアルタイムコアを予約することを望む時間数を選択する（図３３）。
【０３２６】
留意点：ユーザが、リアルタイムコアを予約する期間がどのくらいかが確かでない場合、ユーザは全てが的確に機能することをテストするために、それらを１時間予約してもよい。ジョブを実行しているときにさらなる時間を追加することが可能である。リアルタイムコアがアクティブであるとき、Ｔｒｕｅに設定された「ｕｓｅ＿ｃｌｏｕｄ」で、標準的に実行されるのと厳密に同一の方法でコードを実行する。Ｐｉｃｌｏｕｄは、ユーザが利用可能なリアルタイムコアを有し、およびそれらを優先的に使用することを自動的に検出する。
【０３２７】
現代の機械学習における１つの変化は、スパムフィルタなどの限られた適用性を有する特殊目的ツールから、人間が行うような、１つのトピックから別に一般化することが可能なことがあるアーキテクチャへの推移である。この変化を引き起こす革新の１つは、本質的に階層的である学習システムへの動きである。それらのシステムでは、複雑な概念が、より単純な概念から構築される。例えば、コンピュータビジョンタスクでは、接線（ｅｄｇｅｓ）などの単純な視覚的特徴を再使用して、接線から形成されるより複雑なオブジェクトを表現することが可能となることがあるが、意味的に全く異なることがある（人間の顔および車のホイールなど）。それらは、深層学習システムと称される。
【０３２８】
スパースコーディングは、関連するアプローチのファミリーであり、そのアプローチの目的は、データを正確に表現する方法を発見することである。教師なし設定では、特に重要であるデータにおける特殊パターンを発見するために、スパースコーディングを使用することができる。スパースコーディングはまた、圧縮された方法で、データを表現または符号化する方法を発見するために使用されてもよい。スパースコーディングは、データにおける複数のスケールで特徴の階層を学習するために自然に使用されてもよい。
【０３２９】
スパースコーディングアルゴリズムは、ローカルに、クラウドコンピューティングシステム上で、または量子プロセッサを使用してのいずれかで従来型コンピュータ（すなわち、デジタルコンピュータ）上で実行されてもよい。スパースコーディングアルゴリズムは、従来型および／または量子プロセッサの任意の組み合わせ上で実行されてもよい。本システムおよび方法に従って実装されるスパースコーディングアルゴリズムのいくつかの変形は、Ｌ１規制化スパースコーディング、二値スパースコーディングおよび構造化辞書を有する二値スパースコーディングを含む。
【０３３０】
二値スパースコーディングは、スパースコーディング手順において、重みを実数から二値に変更してもよい。構造化辞書を有する二値スパースコーディングは、アルゴリズムにより生じる二値最適化問題の全てが所与の量子プロセッサの厳格な連結構造を有するそのような方法で、スパースコーディングが学習するパターンを制約する。二値スパースコーディングは、完全に連結されたＱＵＢＯを生成してもよく、および仲介変換器は、量子ハードウェアにおいて自然に解決することができる問題にそれらをマッピングするために使用されてもよい。そのような変換器は、例えば、ＰＣＴ特許出願公開国際公開第２０１３／００６８３６号パンフレットで説明される。構造化辞書を有する二値スパースコーディングは、二値スパースコーディングを修正してもよく、それによって、それは単に、量子ハードウェアによって自然に解決することができる問題を生成する。ここで、有利点は、その最大に効率的な形式である量子ハードウェアを直接使用することによって得られる。アイデアは、パターン（それらの多くが直交するようにスパースコーディングが学習する）を構造化することである。
【０３３１】
スパースコーディングは、多くの異なるタイプのデータに適用されてもよい。以下で提示される議論では、焦点は、３つの異なるソース、ＭＮＩＳＴ、ＣＩＦＡＲ−１０および独立して開発された自然画像データセットからの画像データにあてられる。スパースコーディングは、多くの異なるデータタイプに適用されてもよい。焦点は、例示的な目的のために本開示における画像データにあてられるが、いくつかの他のデータタイプ（特に音声およびビデオ）も使用されてもよい。
【０３３２】
スパースコーディングを実行する前に、未加工画像が事前処理されてもよい。本システムおよび方法に従った未加工画像を事前処理するためのいくつかの非限定的なオプションは、以下の通りであってもよい。
オプション＃１：輝度およびコントラスト正規化での未加工ピクセル値。各画像パッチにおけるピクセル値の平均および標準偏差が計算され、平均を減算し（輝度正規化）および標準偏差で除算（コントラスト正規化）するためにピクセル値が修正される。それらの動作の各々は、ＲＧＢ画像に対する各カラーチャネル上で別個に実行される。
オプション＃２：ＺＣＡホワイトニング。このオプションは、輝度およびコントラスト正規化を経たデータをとり、およびＺＣＡホワイトニング操作をそれに適用する。ＺＣＡホワイトニングは、データオブジェクト内のピクセル値の相関関係を解除し、共分散行列を恒等行列に等しくする。概念的に、相関関係のこの除去によって、スパースコーディング手順が、処理されたデータオブジェクト内の明確さに劣る特徴を学習することに焦点をあてることが可能になる。ＺＣＡ上のさらなる情報は、零相成分分析（ＺＣＡ）において与えられ、Ｂｅｌｌ  ａｎｄ  Ｓｅｊｎｏｗｓｋｉ，１９９７“Ｔｈｅ‘ｉｎｄｅｐｅｎｄｅｎｔ  ｃｏｍｐｏｎｅｎｔｓ’ｏｆ  ｎａｔｕｒａｌ  ｓｃｅｎｅｓ  ａｒｅ  ｅｄｇｅ  ｆｉｌｔｅｒｓ”Ｖｉｓｉｏｎ  Ｒｅｓｅａｒｃｈ，Ｖｏｌ  ３７，Ｎｏ．２３，ｐｐ．３３２７−３３３８を参照されたい。
オプション＃３：ＰＣＡを使用した次元削減。主成分分析（ＰＣＡ）、既知の数学的技術。このオプションは、特異値分解を使用したデータの主要な成分（後の輝度およびコントラスト正規化）を判定する。次いで、オプションによって、ユーザが、それらの主要な成分のいくつを保持するかを選択することが可能になる。この手順によって、損失を犠牲にして、入力データベクトルの次元の削減が可能になる。それにも関わらず、画像に対し、主要成分の重要な部分が無駄にされるときでさえ、概して良好な忠実性を維持することができる。
オプション＃４：ホワイトニングを有するＰＣＡ。このオプションは、データオブジェクトのエントリの相関関係を解除するホワイトニング操作の追加を有する、オプション＃３と同一である。
【０３３３】
ｊ番目のデータオブジェクト
【数１３１】
0006465876.tif 000135
は、前に説明された事前処理動作の１つの適用後の単一の画像または画像パッチに対応する、実数のＮ×１列のベクトルである。使用されるデータオブジェクトの総数は、Ｓとして定義されてもよく、およびそれらの全てを、そのｊ番目の列が
【数１３２】
0006465876.tif 000136
である、データ行列と称することができる単一のＮ×Ｓの行列Ｘに連結させてもよい。
【０３３４】
ｊ番目の辞書アトム
【数１３３】
0006465876.tif 000137
は、（最初は知られていない）実数のＮ×１列のベクトルであってもよい。辞書アトムの総数は、Ｋとして定義されてもよく、およびそれらの全てを、そのｊ番目の列が
【数１３４】
0006465876.tif 000138
である、辞書と称することができる単一のＮ×Ｋ行列Ｄに連結させてもよい。
【０３３５】
ｊ番目の重みベクトル
【数１３５】
0006465876.tif 000139
は、実行されているスパースコーディングの変形に応じて、実数または二値のいずれかで構成することができる、（最初は知られていない）Ｋ×１列のベクトルである。Ｓの重みベクトルの合計が存在してもよい。それらの全てを、そのｊ番目の列を
【数１３６】
0006465876.tif 000140
とすることができる、重み行列と称することができる単一のＳ×Ｋの行列Ｗに連結する。
【０３３６】
Ｌａｍｂｄａ（λ）は、正則化パラメータと称される正の実数であってもよい。ｌａｍｂｄａ（λ）がより大きいと、より少ない辞書アトムが各データオブジェクトの再構築に含まれることがある。
【０３３７】
ここで、前に説明されたスパースコーディングの変形をさらに説明することができる。
【０３３８】
変形＃１：Ｌ１正則化スパースコーディング。第１のスパースコーディングの変形は、Ｌ１ノルム正則化を使用して実装される。解決されることになる問題は、
【数１３７】
0006465876.tif 000141
となることがある。
【０３３９】
このケースでは、重みＷが実数である。「ｃ」も実数である（例えば、この実装形態では、ｃ＝１に設定される）。辞書アトムおよび重みの両方が実数であり、正則化項（ｒｅｇｕｌａｒｉｚａｔｉｏｎ  ｔｅｒｍ）が重みのサイズを最小にすることを試みるため、辞書サイズ上のこの上限が使用されてもよい。上限なしで、最適化は、補償する辞書の大きさを増大させることを継続する間に重みをゼロにさせる。
【０３４０】
この最小化問題を解決するために実装される１つの手順、およびそのためのアルゴリズムがまた、上述したＨｏｎｇｌａｋ  Ｌｅｅ  ｅｔ  ａｌ．によって適切に説明される。以下のアルゴリズム１は、手順を要約する。
アルゴリズム１：
１．ランダムな初期開始辞書Ｄを選択する。
２．その辞書を仮定して、ｆｅａｔｕｒｅ  ｓｉｇｎ  ｓｅａｒｃｈ（ＦＳＳ）アルゴリズムを使用して最適な重みＷを発見する。
３．それらの重みを仮定して、Ｌａｇｒａｎｇｉａｎデュアルを使用した最適な辞書を発見する。
４．収束するまで動作２〜３を繰り返す。
【０３４１】
固定される最適化変数のいくつかを保持する間に問題のサブセット上での反復する一連の最適化へ完全最適化を分離するこのアプローチは、座標ブロック降下法と称されてもよい。スパースコーディングの変形の全ては、この技術を使用してもよい。このケースでは、元の完全最適化問題は、非凸であり、上記アプローチにおける動作２および３の両方は凸である。
【０３４２】
本システムおよび方法に従って、ユーザは、ローカルに、またはクラウド上のいずれかでこの手順を実行するオプションを有することができる。上記手順の動作２では、データオブジェクトごとに１つの、Ｓの独立した最適化問題の合計が存在する。数Ｓが大きいことがあるため（ここで使用される小さな画像セットに対してでさえ、Ｓ〜５０，０００が使用されてもよい）、それらの最適化は、クラウドバージョンを使用することによって並列化されてもよい。ユーザは、反復の間にプロセッサコアに送信されることになる問題の番号を選択することができる。
【０３４３】
変形＃２：二値スパースコーディング：
第２の変形は、以下の問題を解決することができる。
【数１３８】
0006465876.tif 000142
重みＷは二値である。このケースでは、非ゼロの重みは、１に等しく固定される大きさを有するため、辞書の値上の上限は必要とされない。二値の重みを使用することは、Ｌ０の形式の正則化項を自然に作成し、同一の量によって再構築に使用される各アトムにペナルティを課す。
【０３４４】
最適化を実行するために使用される手順は、アルゴリズム２で説明される。これは、変形＃１で使用される手順と同様である。しかしながら、いくつかの重要な差異が存在する。
【０３４５】
第１に、この手順における目的関数の最終値は、初期開始点に強く依存することがある。これに対する理由は、座標ブロック降下法手順の各段階が全体的に最適である場合でさえ、最終結果が同時最適化問題において局所的最小であり、それらの局所的最小を同時問題の全体的な最適からかけ離れたものとすることができることである。同じことは、変形＃１に対して予期され、経験的に、変形＃１のための開始位置は、最終結果に著しく影響しないように見える。
【０３４６】
初期開始点への依存を理由に、異なる開始点からの手順のいくつかの初期の反復（動作２）が実行されてもよい。それらは、クラウドのオプションが使用される場合に並列に実行されてもよい。それらの初期降下法動作が完了すると、今まで発見された最良の結果が保持されてもよく、収束するまでその結果が反復処理を継続してもよい。
アルゴリズム２：
１．初期開始点の総数、および検索深度Ｐを選択する。
２．各初期開始点に対し、
ａ．ランダムな初期開始重み行列Ｗを選択する。
ｂ．それらの重みを仮定して、Ｌａｇｒａｎｇｉａｎデュアルを使用して最適辞書を発見する。
ｃ．その辞書を仮定して、タブー検索を使用して最適重みを発見する。
ｄ．Ｐの動作に対し動作２ｂ〜２ｃを繰り返す。
３．各初期開始点に対し動作２が完了すると、
ａ．初期段階の間に発見された目的関数の最小値に対応するペアＷ、Ｄを選択する。
ｂ．それらの重みを仮定して、Ｌａｇｒａｎｇｉａｎデュアルを使用して最適辞書を発見する。
ｃ．その辞書を仮定して、タブー検索を使用して最適重みを発見する。
ｄ．収束するまで動作３ｂ〜３ｃを繰り返す。
【０３４７】
２ｂおよび３ｂにおける辞書最適化は、変形＃１で使用されるそれらと同様であってもよい。
【０３４８】
動作２ｃおよび３ｃでは、独立して完全に連結されたＱＵＢＯが生成される。概念的には、初期降下法段階における重みに関する比較的劣る最適化は、多くの尽力が回答を最適化するのに費やされる場合でさえも、同時問題の不良な局所的最適にはまり込むときに受け入れられることがある。実際に、多くのケースでは、初期降下法における重みに関する最適化に費やされる尽力を削減することは、より良好な全体的な最適化をもたらすことがある。
【０３４９】
変形＃３：構造化辞書を有する二値スパースコーディング：
実装される第３の変形は、以下の問題を解決することができる。全てのペアｉ、ｊ
【数１３９】
0006465876.tif 000143
に対し、
【数１４０】
0006465876.tif 000144
に従う、
【数１４１】
0006465876.tif 000145
ここで、Ｇは、ユーザ特有連結度を表す隣接グラフである。重みＷは二値である。
【０３５０】
それらの制約は、アルゴリズムによって生じる最適化問題の全てに所与の量子プロセッサの厳格な連結構造を有させる。最適化を実行するために使用される手順は、アルゴリズム３で説明される。
アルゴリズム３
１．初期開始点の総数、および検索深度Ｐを選択する。
２．各初期開始点に対し、
ａ．ランダムな初期開始重み行列Ｗを選択する。
ｂ．要求される直交性制約を満たすランダムな初期開始辞書Ｄを選択する。
ｃ．現在の重みおよび辞書を仮定して、アルゴリズム４を使用して最適辞書を発見する。
ｄ．その辞書を仮定して、タブー検索または量子ハードウェアのいずれかを使用して最適重みＷを発見する。
ｅ．Ｐの動作に対し動作２ｃ〜２ｄを繰り返す。
３．各初期開始点に対し動作２が完了すると、
ａ．初期段階の間に発見された目的関数の最小値に対応するペアＷ、Ｄを選択する。
ｂ．現在の重みおよび辞書を仮定して、アルゴリズム４（以下を参照）を使用して最適辞書を発見する。
ｃ．その辞書を仮定して、タブー検索または量子ハードウェアのいずれかを使用して最適重みを発見する。
ｄ．収束するまで動作３ｂ〜３ｃを繰り返す。
【０３５１】
これは、３つの重要な相違を有するアルゴリズム２と同様である。
【０３５２】
１つ目は、ここで辞書が制限されることである。ここで、最適辞書を発見すること（動作２ｃおよび３ｂ）は、非凸最適化問題である。ハードウェアの連結度に一致させるために動作２ｄおよび３ｄにおいて最適化問題を構造化することによって、何かが得られる間に、これの副産物として、ここでは潜在的に困難である１つにすることが容易になるように使用される動作がなされている。
【０３５３】
この最適化を実行することを試みるために、いくつかの戦略が実装されている。本システムおよび方法に従った実装形態は、アルゴリズム４（以下を参照）で示される。
【０３５４】
２つ目の相違は、辞書制約が、学習されているデータベクトルの長さＮに関する下限を置くことである。Ｎは、Ｋ、例えば、量子ハードウェア上で実行されるこのアルゴリズムに対しては５０２、以上になるように選択されてもよい。
【０３５５】
実際に、この制限は、選択することができるそれぞれのフィールドのサイズ（例えば、少なくとも２３×２３ピクセルのグレースケールに対し、および少なくとも１３×１３ピクセルのＲＧＢに対し、受容的フィールド（ｒｅｃｅｐｔｉｖｅ  ｆｉｅｌｄ）は、非常に大きい必要がある）、および事前処理動作において実行することができる次元削減の量に影響する。
【０３５６】
アルゴリズム４
１．初期重み行列Ｗおよび辞書Ｄを仮定して、以下の動作を実行する。
ａ．Ｃａｙｌｅｙ変換を使用してＤを最適化する。
ｂ．Ｄの各列を最適に再スケーリングする。
ｃ．Ｄの各列に対し、その列において最適エントリを発見し、全ての他の列を固定したままとする。
【０３５７】
３つ目の相違は、動作２ｄおよび３ｃでは、隣接グラフＧ（使用されている量子プロセッサの隣接グラフになるように設定することができる）と同一連結構造を有するＳのＱＵＢＯが生成される。ユーザは、タブー検索を使用して、または量子プロセッサを使用して、それらを解決するオプションを有することができる。
【０３５８】
分類アルゴリズムがオブジェクト間の差異をよりよく確認することを可能にする表現を学習することによって、分類タスクに関する性能を増大させるためにスパースコーディングを使用することができる。画像データに対し、規範例は、それらの意味内容（ｓｅｍａｎｔｉｃ  ｃｏｎｔｅｎｔ）に応じたカテゴリへの画像の分類である。ＭＮＩＳＴに対し、カテゴリは、画像が表す１０の数字である。ＣＩＦＡＲ−１０に対し、飛行機、自動車、鳥、猫、鹿、犬、カエル、馬、船およびトラックの１０のカテゴリも存在する。
【０３５９】
いくつかの実装形態では、本システムおよび方法は、多くの分類手順の実装形態を含む、ｓｃｉｋｉｔ学習Ｐｙｔｈｏｎ分類パッケージを使用する。本システムおよび方法はまた、分類のために使用することができる、半教師あり修復アルゴリズム（「意味修復（ｓｅｍａｎｔｉｃ  ｉｎｐａｉｎｔｉｎｇ」）を実装してもよい。
【０３６０】
ＭＮＩＳＴおよびＣＩＦＡＲ−１０データセットの両方がラベル付けされる。したがって、分類精度の計算をすることになるパイプラインの一部として両方を使用することができる。本システムおよび方法に従った例示的なパイプラインは、以下のように与えられる。
１．ユーザは、データセット、例えば、ＭＮＩＳＴ、ＣＩＦＡＲ−１０などを選択する。
２．ユーザは、事前処理オプション、例えば、受容的フィールド、および事前処理オプションを選択する。
ａ．事前処理オプションは、非輝度およびコントラスト正規化、ＺＣＡホワイトニング、次元を削減するＮ成分を保持するＰＣＡ、次元削減・ホワイトニングを含む。
３．次いで、システムはデータ行列Ｘを計算する。
４．次いで、ユーザは、Ｘ上で辞書を学習するためにどのスパースコーディングアルゴリズムおよび関連するハイパーパラメータを使用するかを選択する。
ａ．オプションは、Ｌ１正則化スパースコーディング、二値スパースコーディング、構造化辞書を有する二値スパースコーディング、ソフトウェアで実行する構造化辞書を有する二値スパースコーディング、ハードウェアで実行する構造化辞書を有する二値スパースコーディングを含む。
ｂ．ハイパーパラメータは、タブーパラメータ、正則化パラメータ（ｌ）、辞書アトムの総数（Ｋ）を含む。
５．次いで、システムは、画像パッチ上で辞書を学習する。
６．ユーザは、辞書を使用して、選択されたデータセットのトレーニングまたはテストセットを符号化するためにどのスパースコーディングアルゴリズムおよび関連するハイパーパラメータを使用するかを選択する。
ａ．オプションは、Ｌ１正則化スパースコーディング、二値スパースコーディング、構造化辞書を有する二値スパースコーディング、ソフトウェアで実行する構造化辞書を有する二値スパースコーディング、ハードウェアで実行する構造化辞書を有する二値スパースコーディングを含む。
ｂ．ハイパーパラメータは、タブーパラメータ、正則化パラメータ（ｌ）、辞書アトムの総数（Ｋ）を含む。
７．次いで、システムは、トレーニング画像、一部の実施形態では、トレーニングおよびテスト画像を符号化する。
８．ユーザは、分類アルゴリズムおよびそのハイパーパラメータを符号化する。
ａ．オプションは、ｓｃｉｋｉｔ学習において分類器に対するオプションのうちの１つを使用すること、または修復ベースの分類器を使用することを含む。
９．システムは、符号化されたデータ上で分類器を学習する。
【０３６１】
システムは、分類、ならびに、一部の実施形態では、１つ以上の分類器および分類の性能を返す。
【０３６２】
スパースコーディング構成要素では、スパースコーディングはこのパイプラインにおいて２つの重要な役割を果たす。１つ目は、辞書、画像パッチを表すための基底を学習するためにそれが使用されることである。２つ目は、前に学習された辞書を使用して、まだ確認されていないデータを符号化するためにそれが使用されることである。
【０３６３】
スパースコーディング構成要素画像符号化手順：
スパースコーディング構成要素によって、ユーザは、任意の受容的フィールドを選択することが可能になる（それにも関わらず、ＢＳＤアルゴリズムに対し、受容的フィールドは、辞書アトムの数と少なくとも同じの大きさのデータオブジェクトを生成するのに十分な大きさとなる必要があることに留意されたい）。受容的フィールドが、分類される画像のサイズよりも小さい場合、画像内に多くの異なる画像パッチが存在し、各々が符号化を有する。それらの符号化された画像パッチは、それらがそこからである画像を表すために使用されてもよい。どのようにそれを行うかの選択は、結果として得られる分類器の品質に影響を与える。
【０３６４】
原型（ｍｏｎａｒｃｈ）は、データセットにおいて画像をどのように区分化するかを選択することをユーザに最初に求める符号化スキームを実装する。この区分化は、画像を同一のサイズのいくつかの分解領域に「刻む」。最も粒度の細かい許容された区分化は、画像を受容的フィールドと同一のサイズの重ならない領域に分割する。最も粗い許容された区分化は、元のサイズの画像である。例えば、画像は４つの領域に区分化されてもよい。
【０３６５】
この選択がされた後、各領域内の受容的フィールドのサイズの各サブ領域は、前に学習された辞書を使用して符号化される。例えば、１つのそのような符号化は、パッチが受容的フィールドのサイズである場合である。受容的フィールドは、１ピクセルステップを有する全体領域上でスキャンされる（これは、領域と共にエンコーダの畳み込みである）。
【０３６６】
これが完了すると、スパースコーディング構成要素は、各領域内での符号化からのベクトルの全てをとり、およびそれらを、領域を表す単一のベクトルにそれらをマッピングする、プーリング手順を実装する。このプーリングを行うために実装される４つのオプションが存在する。それらは、
１．プーリングしない。このケースでは、領域における符号化されたベクトルの全てが連結される。
２．平均プーリング。領域を表す符号化されたベクトルは、サブ領域ベクトルの成分を平均化することによって計算される実数成分を有する。
３．最大プーリング。領域を表す符号化されたベクトルは、サブ領域ベクトルの各々の最大の大きさの値に対応する実数成分を有する。
４．二値プーリング。領域を表す符号化されたベクトルは、サブ領域ベクトルの各々の多数値（ｍａｊｏｒｉｔｙ  ｖａｌｕｅｓ）に対応する二値成分を有する。
【０３６７】
上記オプション４は、Ｌ１正則化変形に利用可能でなく、オプション２および３は、二値変形に利用可能でないことに留意されたい。
【０３６８】
画像の最後に符号化された表現は、領域の各々からベクトルを連結することによって得られる。次いで、この最後に符号化された表現は、分類アルゴリズムをそれに適用する、パイプラインにおける次の動作に供給される。
【０３６９】
分類アルゴリズム：
スパースコーディング構成要素は、ｓｃｉｋｉｔ学習パッケージにおいて分類アルゴリズムの全てに対するアクセスを有する。加えて、ｓｃｉｋｉｔ学習分類器に対する異なる方法で動作する、修復ベースの分類器が実装されている。以下で説明されるのは、異なる分類器への入力であるデータタイプである。
【０３７０】
Ｓｃｉｋｉｔ学習分類入力：
Ｓｃｉｋｉｔ学習における分類アルゴリズムの全てに対し、画像を表す入力ベクトルは、前の章で説明された手順を使用して得られたベクトルである。それらのアルゴリズムに提示される学習は、ＭＮＩＳＴおよびＣＩＦＡＲ−１０の両方に対して（０、９）の範囲にある整数である。
【０３７１】
意味修復手順：
スパースコーディング構成要素は、修復意味情報に基づいて分類アルゴリズムを実装する。現在、この手順は、受容的フィールドは全体画像のサイズであるときのみ使用可能であるが、この概念を、受容的フィールドが元の画像よりも小さいケースに拡張するのが可能であることがある。
【０３７２】
カテゴリラベルの代わりにその意味カテゴリを表す画像を、トレーニングセットにおける各画像に付加することによって、手順が機能する。すなわち、画像のカテゴリを表す意味的表現（例えば、整数５）を使用する代わりに、画像の意味内容の規範バージョンを表す実画像が画像に付加される。スパースコーディング構成要素では、ＱＲコードと同様の考えで、それらの意味画像は、ＭＮＩＳＴに対しては白色正方形を有し、ＣＩＦＡＲ−１０に対しては黄色正方形を有する、その位置がカテゴリを表す色付けされた正方形である。
【０３７３】
次いで、辞書学習手順は、その意味内容を表す画像と連結された元の画像を含むトレーニングセットにおける画像上の特徴の辞書を学習する。
【０３７４】
次いで、テスト画像は、元の画像上で学習された辞書の区画を使用して符号化され、ラベル区画を表す区画が修復される。スパースコーディング構成要素におけるＭＮＩＳＴおよびＣＩＦＡＲ−１０に対する意味内容を表す画像は、各クラスに対して強く色付けされる（および、重ならない）特殊エリアを有してもよい。修復された意味区画は、ラベルカテゴリに対応する各々の修復されたエリアのピクセルの大きさを参照することによって、直接分類器として使用されてもよい。いくつかの実装形態では、最大のピクセルの大きさを有するエリアは、そのテスト画像に対する予測されたラベルである。
【０３７５】
上記説明された、抽出されたピクセルの大きさはまた、標準ｓｃｉｋｉｔ学習分類器モデルを訓練するために使用することができる表現を形成することができる。これは、第１の分類技術と同様であるが、意味画像区画からのピクセル値を使用する。このケースでは、各「ラベルエリア」からのピクセルは、その大きさを判定するために問い合わされ、結果として得られるベクトルは、画像のカテゴリのシンボル的表現と共に、入力トレーニングデータとして分類器に送信される。
【０３７６】
それらの修復方法は、複数ラベル割り当てを自然にサポートする。しかしながら、上記分類方法は、相互に排他的なラベルカテゴリをデータが有するか、またはそれらの間で相関を有する複数のラベルカテゴリをデータが有するかに応じて異なって振舞うことがある。
【０３７７】
スパースコーディング構成要素は、ユーザに利用可能な５つの異なる視覚化ルーチンを有する。
【０３７８】
視覚化１：
それらのうちの１つ目によって、入力画像データ上で使用される事前処理オプションの効果をユーザが確認することが可能になる。これによって、事前処理動作においてなされる選択が、達成するためにユーザが何を要求しているか仮定して気付いていることの即時視覚的チェックが可能になる。
【０３７９】
視覚化２：
第２の視覚化ルーチンによって、学習された適度に多数の辞書アトムをユーザが見ることが可能になる。それはまた、再構築処理がどの程度に良好に行われているかを目測で評価するために、この辞書を使用した元のデータ、および原本（グラウンドトルス）の再構築を示す。意味画像情報を含む辞書が選択される場合、画像および意味内容が、この図にも表示される。再構築の上に表示される数は、使用されるアトムのインジケーション（数が四角カッコにある場合）、または再構築ごとに４つ以上のアトムが存在する場合に使用されるアトムの数（シンボル＞＞＃が、このケースの場合の数の前に表示される）のいずれかを表す。平均スパーシティ（再構築ごとに使用される平均のアトムの数）はまた、使用された辞書ファイルの名前に従って、プロットのタイトルに表示される。
【０３８０】
視覚化３：
第３の視覚化によって、ユーザは、再構築において使用された、元の、かつ最大３つのアトムと共に、再構築のうちの３つを厳密に見ることが可能になる。再構築を形成するために組み合わせるアトムは、最大の絶対的大きさの重みを有するものが画面に表示されるように順序付けされる。アトムおよび重みのインデックスは、アトム自体の上に表示される。
【０３８１】
視覚化４：
第４の視覚化は、学習処理の間の目的関数降下法を示す。これは、最良の解に関してアルゴリズムがどのように収束するかのアイデアをユーザに与える。目的関数降下法の関数形式は、異なるソルバおよびデータタイプに対して異なってもよい。この情報は、多少の侵略的な終了閾値が必要とされるかをユーザが判定することを支援するために、目的関数降下法がどの程度早く収束するかを判定するために使用されてもよい。
【０３８２】
視覚化５：
第５の視覚化によって、ユーザは、ラベルカテゴリによって記憶された、符号化された画像を表すベクトルを視覚化することが可能になる。これは、データの「フィンガープリント」を与える。肉眼で相関関係を見ることができる場合、分類器が良好に行うはずである。
【０３８３】
１つの目的は、他の代替物に対して、スパースコーディング変形が量子コンピューティングハードウェア上で実行することをテストすることである。スパースコーディング構成要素のアルゴリズムは、その設定が、どのような品質が測定されているかに大きく影響を与えることがある、多くのハイパーパラメータを含む。いくつかの実装では、ハイパーパラメータは、
１．画像事前処理オプション
２．辞書アトムの数
３．正則化パラメータ
４．受容的フィールドサイズ
５．タブー検索パラメータ
６．トレーニングおよびテスト画像符号化スキーム
７．分類アルゴリズム
を含む。
【０３８４】
それらに関して最適化するアプローチは、各々上でのグリッド検索（ｇｒｉｄ  ｓｅａｒｃｈｅｓ）を行うこと、および発見された最良の結果を報告することであった。全ての実行では、厳密に同一のスパースコーディングアルゴリズムおよびハイパーパラメータ選択は、辞書学習で使用されたような符号化動作のために使用されている。多数の辞書アトムが、実行される全てのテストに対して常に良好であったことが発見されている。
【０３８５】
二値構造化辞書アルゴリズムは、５１２ビット量子コンピュータおよび重み上で最適化するためのタブー検索の両方を使用して実装および実行されている。以下の３つの結果が発見されている。
【０３８６】
１．重み上で最適化するために、極小詞として使用される最良の１つを有する、問題例ごとに１０のサンプルがとられたモードにおいて量子プロセッサが実行されている。これは、問題例ごとに約５５ミリ秒を要している。５０，０００のデータオブジェクトを使用した典型的な実行に対して、固定された辞書が与えられた、重みを解決するためのアルゴリズムの反復ごとの総時間は、約２，７５０秒であった。タブーのタイムアウトは、中間最適化品質が、このモードで実行する量子コンピュータで達成されたタイムアウトと同様であり、問題例ごとの８００ミリ秒のタイムアウトがこの性能を与えたことが発見されている。これは、例ごとに約１５×の高速化の利得であると共に、タブー検索アプローチが並列可能である。実際に、５００のタブー例の１００のバッチがクラウド上で実行されてもよく、各バッチは、異なるプロセッサコアに送信され、反復の実行時間ごとに約４１０秒およびそれらのジョブを分散するオーバーヘッドを与える。よって、高レベルな単一スレッドの高速化が存在するが、量子コンピュータは、スパースコーディングのために利用することができる、並列化をサポートしないことになる。
【０３８７】
２．固定されたハイパーパラメータ選択に対し、二値構造化辞書（ＢＳＤ）アルゴリズムに対する結果の品質が、制約がない二値スパースコーディング結果よりも体系的に劣っていた。（ａ）準最適な基底につながる辞書に関する制約、（ｂ）固定された重みが与えられた最適辞書を発見することが、使用されるアルゴリズムが著しく改善される可能性がある困難な非凸最適化問題であること、（ｃ）直交性要件が、受容的フィールドサイズに下限を定めること、および少なくともＣＩＦＡＲ−１０に対し、より小さい受容的フィールドサイズが、分類精度を増加させること（それにも関わらず、これは、実際の自然画像を有する問題ではなく、この問題は、非常に小さいＣＩＦＡＲ−１０画像であることを理由に生じる可能性があることに留意されたい）を含むいくつかの関連する問題を理由に、この性能劣化が生じる可能性がある。
【０３８８】
３．固定されたハイパーパラメータ選択に対し、分類の全体的な品質は、タブー検索の実行時間を増加させるために手順が実装された後でさえ、タブー検索を使用したＢＳＤに対してよりも、量子コンピュータを使用したＢＳＤに対して体系的に優れていた。これに対する理由は明確ではないが、中間品質を同一にするためのタブー検索に対する実行時間を増加させることは、同等のソルバを有することと同一のことではないことに留意されたい。中間性能が同一である場合でさえ、例ごとの量子コンピュータの性能が、競合するアルゴリズムとは異なることがあることが、ベンチマーク調査から知られている。量子コンピュータは、性能強化をもたらすことがある、困難な例に対するより良好な極小詞を提供することができる。それは、量子コンピュータによって提供されるより良好な最適化が、符号化動作において優れた符号化性能を与えていることがあり、および符号化が、分類器の性能、場合によっては辞書自体よりも重要な、重要な役割を果たすことが科学文献から証明されている。
【０３８９】
分類精度：
ソフトウェアで実行される３つの変形は、Ｋ＝５１２の辞書アトムを使用しており、ハードウェアバージョンは、Ｋ＝５０２（使用される量子チップ上で利用可能な量子ビットの数に等しい）を使用している。テストセットに関する分類精度を最大化するために全ての他のハイパーパラメータを変更することによって得られる最良の結果が存在する。
【０３９０】
ＣＩＦＡＲ−１０上の最新型性能は、ここで使用されるよりもさらに多くの辞書アトムを必要とし、典型的には約２，０００が使用される。３つのテストの目的は、最新型性能（さらに多くのアトムを必要とする）を達成することではなかったが、それらのアルゴリズムの相対的性能をテストすることであった。
【０３９１】
符号化効率性：
再構築がスパースである（少数のアトムが再構築に使用される）制限では、ＣＩＦＡＲ−１０、ＭＮＩＳＴおよびスパースコーディング構成要素の自然画像データセットに対するＬ１正則化スパースコーディングと同一の再構築誤りを得るために、二値スパースコーディングが約半分のアトムを体系的に必要とすることが発見されている。これは、画像を表すためにアトムの使用を少なくすることができるのみでなく、重みが実数ではなく二値であるため、表現力（ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  ｐｏｗｅｒ）における実質的な改善である。実数値重みが８ビットの数字として表される場合（それにも関わらず、現在それらは６４ビットの数字として記憶されているが、８ビットに切り詰めることは、再構築にさらに悪影響を与えない）、再構築された画像を表すために必要とされる情報の量は、約ｋ＊８から（ｋ／２）に減少し、ｋは、再構築におけるアトムの数である。これは、それらの２つの異なるアプローチを使用して同一の再構築誤りを得るために必要とされる情報の量における一桁の削減である。
【０３９２】
ＢＳＤアルゴリズムは、同一の画像パッチサイズに対して同一の再構築誤りを得るために、他の変形よりも多いアトムを必要とするが、符号化されたベクトルのビット深度における削減を理由に、Ｌ１アルゴリズム上で利得を得る。
【０３９３】
リソース消費：
時間が著しく増加すること、および量子コンピューティングシステムへのアクセスを有するための要件を著しく犠牲にして、ハードウェアにおいてＢＳＤを使用して同様のエンド分類性能に対するエネルギー消費の劇的な削減が発見されている。ハードウェア上のＢＳＤに対するコストの削減は、量子コンピューティングシステム上の時間のコストにおける要因ではない。ここでは、量子コンピューティングシステムを使用することから利益が存在するため、それらの結果は有望である。それにも関わらず、より低いコストおよびさらなるプロセッサの利用可能性（実際の経過時間を減少させるための）の観点から、明白に優れた成熟性が必要とされることがあることが明らかである。
【０３９４】
スパースコーディングの適用、ハードウェアを使用した実行：
ハードウェアで実行するＢＳＤアルゴリズムを使用して、一連の概念実装（ＰＯＣ：ｐｒｏｏｆ  ｏｆ  ｃｏｎｃｅｐｔ）アプリケーションが実装されている。それらの全てに対し、辞書学習および符号化の両方が、量子プロセッサの５０２の量子ビット上で実行するＢＳＤを使用して排他的に実行されている。前の章で説明されたテストとは異なり、ＢＳＤの性能の体系的な比較は、それらに関して行われておらず、それらのアプリケーションに特有なハイパーパラメータ上での最適化は行われていない。
【０３９５】
単一画像超分解能：
スパースコーディング構成要素の自然画像データセットは、各々が自然に６４０×４８０ピクセルのサイズである、５，０００の画像を含む。それらの１つが選択されている。次いで、４０×３０ピクセルのサイズの５０，０００のランダムにサンプリングされた画像パッチが選択されている。「低鮮明度」バージョンの画像パッチは、高鮮明度パッチへのぼけ変換を適用することによって得られる、それらの画像パッチの各々に付加されている。それらの複合画像は、意味修復分類手順で使用される画像と同様である。
【０３９６】
次いで、それらの複合画像上で辞書が学習されている。辞書が学習された後、辞書の低鮮明度区画を使用して、低鮮明度バージョンの画像を再構築することができ、高鮮明度区画が修復される。
【０３９７】
単一画像修復および異常検出：
修復は、本明細書で説明されるシステムおよび方法で使用される能力である。このＰＯＣに対し、単一の画像から異常な特徴を検出および除去するアプリケーションが実装されている。前の例にあるように、スパースコーディング構成要素の画像データセットから単一画像が選択されている。次いで、この画像から、４０×３０ピクセルのサイズの５０，０００のランダムにサンプリングされた画像パッチ上で辞書が学習されている。
【０３９８】
次いで、異常内容を生じさせる画像が修正されている。これは、赤字によって目立たなくされたカモメの画像を使用する既知の修復例と同様の考えで、画像に赤字を追加することによって行われている。
【０３９９】
次いで、元の画像上で学習された辞書を使用して、修正された画像が再構築されている。前の例にあるように、重複する再構築からのピクセル値が平均化される。この再構築は、学習された辞書を使用してそれを再構築することができないため、異常内容の一部の除去をするのに成功する。この手順が、異常の検出および除去の両方に使用されてもよく、画像がどの程度異常であるかを測定することを、入力画像とその再構築との間の差異を発見することによって得ることができる。これはまた、画像の異常の位置を与える。
【０４００】
画像のノイズ除去：
異常検出および除去に密接に関連するアプリケーションは、画像のノイズ除去である。このＰＯＣでは、スパースコーディング構成要素の自然画像データセットから画像が選択されており、４０×３０ピクセルのサイズの５０，０００のランダムにサンプリングされたパッチ上で辞書が学習されている。ランダムなノイズが画像に追加されており、元の画像上で学習された辞書を使用して、ノイズ画像が再構築されている。
【０４０１】
他の可能なアプリケーション：
量子ハードウェア上でスパースコーディングを使用して構築される、種々の他の可能なＰＯＣが存在する。それらは、圧縮（スパースコーディングが提供する圧縮された表現を使用する）および画像における境界検出を含む。
【０４０２】
本明細書で説明される種々の実施形態はデータ、例えば、画像データ、音声データなどのデータの量子処理のためのシステムおよび方法を提供する。本明細書で説明される種々の実施形態では、デジタルコンピュータ（例えば、古典的またはデジタルコンピュータ４００）は、量子プロセッサと相互作用するために使用されてもよい。量子プロセッサは、いくつかのプログラム可能要素を含んでもよく、量子プロセッサと相互作用することは、それらのプログラム可能要素に特定の値を割り当てることによって、特定の問題定式化および／またはプログラム可能パラメータの構成で、量子プロセッサをプログラミングすることを含んでもよい。量子プロセッサと相互作用することはまた、特定の問題への解を判定するように量子プロセッサを進化させること（例えば、断熱的量子計算および／または量子アニーリングを実行すること）、ならびに量子プロセッサから解を読み出すことを含んでもよい。
【０４０３】
上述した詳細な説明は、ブロック図、概略図、および例の使用を介してデバイスおよび／または処理の種々の実施形態を示す。ブロック図、概略図、および例自体が１つ以上の機能および／または動作を含む限り、そのようなブロック図、フローチャート、または例の中の各機能および／または動作を、広範囲のハードウェア、ソフトウェア、ファームウェア、またはそれらの実質的に任意の組み合わせによって、個々におよび／または集合的に実装することができることを当業者は理解するであろう。一実施形態では、本主題は、特定用途向け集積回路（ＡＳＩＣ）を介して実装されてもよい。しかしながら、当業者は、本明細書で開示される実施形態が、全体として、または部分的に、１つ以上のコンピュータ上で実行する１つ以上のコンピュータプログラムとして（例えば、１つ以上のコンピュータシステム上で実行する１つ以上のプログラム）、１つ以上のコントローラ（例えば、マイクロコントローラ）上で実行する１つ以上のプログラムとして、１つ以上のプロセッサ（例えば、マイクロプロセッサ）上で実行する１つ以上のプログラムとして、ファームウェアとして、またはそれらの実質的に任意の組み合わせとして、標準集積回路で実装されてもよく、回路を設計し、ならびに／またはソフトウェアおよび／もしくはファームウェアに対するコードを記述することは、本開示を考慮して、当技術分野における通常の知識の範囲で良好になされることを当業者は認識するであろう。
【０４０４】
当業者は、本明細書で示される方法またはアルゴリズムの多くが、追加の動作を愛用してもよく、いくつかの動作を省略してもよく、および／または指定されるのと異なる順序で動作を実行してもよいことを認識するであろう。
【０４０５】
加えて、当業者は、本明細書で教示される機構が、種々の形式であるプログラム製品として頒布されることが可能であり、例示的な実施形態は、頒布を実際に実行するために使用される媒体を有する特定のタイプの非一時的信号に関わらず、等しく適用することを理解するであろう。媒体を有する非一時的信号の例は、フロッピーディスク、ハードディスクドライブ、ＣＤ  ＲＯＭ、デジタルテープ、およびコンピュータメモリなどの記憶可能なタイプの媒体を含むが、それらに限定されない。
【０４０６】
上記説明された種々の実施形態は、さらなる実施形態を提供するために組み合わされてもよい。本明細書における特定の教示および定義との一致する程度で、米国特許、米国特許出願公開、米国特許出願、外国の特許、および外国の特許出願の全ては、本明細書において参照されており、ならびに／または出願データシートでリスト化されており、それらは、本明細書においてその全体が参照によって組み込まれている、２０１３年６月２８日に出願された米国仮特許出願第６１／８４１，１２９号明細書、および２０１３年９月３日に出願された米国仮特許出願第６１／８７３，３０３号明細書を含むが、それらに限定されない。実施形態の態様は、必要に応じて、システム、回路ならびに種々の特許、出願および公開の概念を採用して、さらなる実施形態を提供するように修正されてもよい。
【０４０７】
上記詳細な説明を考慮して実施形態に対する上記および他の変更形態がなされてもよい。概して、以下の特許請求の範囲では、使用される用語は、本明細書および特許請求の範囲で開示される特定の実施形態に特許請求の範囲を限定するものと解釈されるべきではなく、そのような特許請求の範囲に付与される均等物の全範囲に従って、全ての考えられる実施形態を含むものと解釈されるべきである。したがって、特許請求の範囲は本開示によって限定されない。
【図１】
0006465876.tif 000147
【図２】
0006465876.tif 000148
【図３】
0006465876.tif 000149
【図４】
0006465876.tif 000150
【図５】
0006465876.tif 000151
【図６】
0006465876.tif 000152
【図７Ａ】
0006465876.tif 000153
【図７Ｂ】
0006465876.tif 000154
【図８】
0006465876.tif 000155
【図９】
0006465876.tif 000156
【図１０】
0006465876.tif 000157
【図１１】
0006465876.tif 000158
【図１２】
0006465876.tif 000159
【図１３】
0006465876.tif 000160
【図１４】
0006465876.tif 000161
【図１５】
0006465876.tif 000162
【図１６】
0006465876.tif 000163
【図１７】
0006465876.tif 000164
【図１８】
0006465876.tif 000165
【図１９】
0006465876.tif 000166
【図２０Ａ】
0006465876.tif 000167
【図２０Ｂ】
0006465876.tif 000168
【図２０Ｃ】
0006465876.tif 000169
【図２０Ｄ】
0006465876.tif 000170
【図２１】
0006465876.tif 000171
【図２２】
0006465876.tif 000172
【図２３】
0006465876.tif 000173
【図２４】
0006465876.tif 000174
【図２５】
0006465876.tif 000175
【図２６】
0006465876.tif 000176
【図２７】
0006465876.tif 000177
【図２８】
0006465876.tif 000178
【図２９】
0006465876.tif 000179
【図３０】
0006465876.tif 000180
【図３１】
0006465876.tif 000181
【図３２】
0006465876.tif 000182
【図３３】
0006465876.tif 000183
【図３４Ａ】
0006465876.tif 000184
【図３４Ｂ】
0006465876.tif 000185