(57)【要約】コンピュータ実行可能コンポーネントを記憶するメモリと、コンピュータ実行可能コンポーネントを実行するプロセッサとを有するシステムが、重み行列に対して空間的局所性を利用することと周波数変換および圧縮をもたらすこととによってニューラル・ネットワークを訓練することに関連してデータ・サイズを減少させる。受信コンポーネントは、圧縮された周波数領域重み行列の形態でニューラル・ネットワーク・データを受信する。分割コンポーネントは、初期重み行列を元のサブコンポーネントに分割し、それぞれの元のサブコンポーネントは、空間重みを有する。サンプリング・コンポーネントは、それぞれの正規化サブコンポーネントを生成するために、それぞれの元のサブコンポーネントに一般化された重み分布を適用する。変換コンポーネントは、それぞれの正規化サブコンポーネントに変換を適用する。クロッピング・コンポーネントは、元のサブコンポーネントの圧縮表現を生成するために低周波数正規化サブコンポーネントのセットをもたらすように、それぞれの変換された正規化サブコンポーネントの高周波数重みをクロッピングする。【選択図】図３
2021504837.tif 000002
【特許請求の範囲】
【請求項１】
ニューラル・ネットワーク訓練中にデータを圧縮するためのシステムであって、
コンピュータ実行可能コンポーネントおよびニューラル・ネットワーク・データを記憶するメモリと、
前記メモリ内に記憶されたコンピュータ実行可能コンポーネントを実行するプロセッサと、
を備え、前記コンピュータ実行可能コンポーネントが、
重み行列の形態でニューラル・ネットワーク・データを受信する受信コンポーネントと、
前記重み行列を元のサブコンポーネントに分割する分割コンポーネントであって、それぞれの元のサブコンポーネントが空間重みを有する、前記分割コンポーネントと、
それぞれの正規化サブコンポーネントを生成するために、前記それぞれの元のサブコンポーネントに一般化された重み分布を適用する、サンプリング・コンポーネントと、
前記それぞれの正規化サブコンポーネントに変換を適用する、変換コンポーネントと、
前記元のサブコンポーネントの圧縮表現を生成するために低周波数正規化サブコンポーネントのセットを生成するように、変換された前記それぞれの正規化サブコンポーネントの高周波数重みをクロッピングする、クロッピング・コンポーネントと、を含む、システム。
【請求項２】
前記元のサブコンポーネントの修正版を元に戻すために前記低周波数正規化サブコンポーネントのセットに逆変換を適用する、逆変換コンポーネントをさらに含む、請求項１に記載のシステム。
【請求項３】
前記変換コンポーネントが、離散コサイン変換を適用する、請求項１または２に記載のシステム。
【請求項４】
前記分割コンポーネントが、前記元のサブコンポーネントのコーナー値をサンプリングする、請求項１ないし３のいずれかに記載のシステム。
【請求項５】
前記分割コンポーネントが、前記それぞれの正規化サブコンポーネントについてのそれぞれの値を生成するために補間を行う、請求項１ないし４のいずれかに記載のシステム。
【請求項６】
前記サンプリング・コンポーネントが、バイリニア補間、指数関数補間、またはスプライン補間のうちの少なくとも１つを適用する、請求項５に記載のシステム。
【請求項７】
前記逆変換コンポーネントが、前記低周波数正規化サブコンポーネントのセットを空間領域に変換するために逆離散コサイン変換関数を適用する、請求項２ないし６のいずれかに記載のシステム。
【請求項８】
前記元のサブコンポーネントの前記圧縮表現を送信する通信コンポーネントをさらに含む、請求項１ないし７のいずれかに記載のシステム。
【請求項９】
コンピュータが実施する方法であって、
重み行列の形態でニューラル・ネットワーク・データを受信することと、
前記重み行列を元のサブコンポーネントに分割することであって、それぞれの元のサブコンポーネントが空間重みを有する、前記分割することと、
それぞれの正規化サブコンポーネントを生成するために、前記それぞれの元のサブコンポーネントに一般化された重み分布を適用することと、
前記それぞれの正規化サブコンポーネントに変換を適用することと、
低周波数正規化サブコンポーネントのセットを生成するために、変換された前記それぞれの正規化サブコンポーネントの高周波数重みをクロッピングすることと、
を行うようにコンピュータ実行可能コンポーネントを実行するためにプロセッサおよびメモリを用いることを含む、方法。
【請求項１０】
前記元のサブコンポーネントの近似表現を生成するために低周波数正規化サブコンポーネントのセットに逆変換を適用することをさらに含む、請求項９に記載の方法。
【請求項１１】
前記変換を適用することが、離散コサイン変換を適用することを含む、請求項９または１０に記載の方法。
【請求項１２】
前記一般化された重み分布を適用することが、前記元のサブコンポーネントのコーナー値をサンプリングすることと、前記それぞれの正規化サブコンポーネントについてのそれぞれの値を生成するために、バイリニア補間、指数関数補間、またはスプライン補間のうちの少なくとも１つを適用することと、をさらに含む、請求項９ないし１１のいずれかに記載の方法。
【請求項１３】
前記逆変換を適用することが、前記低周波数正規化サブコンポーネントのセットを空間領域に変換するために逆離散コサイン変換関数を適用することを含む、請求項１０ないし１２のいずれかに記載の方法。
【請求項１４】
前記セットをゼロパディングすることをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記元のサブコンポーネントの前記圧縮表現を送信することをさらに含む、請求項９ないし１４のいずれかに記載の方法。
【請求項１６】
ニューラル・ネットワーク訓練中にデータを圧縮するためのコンピュータ・プログラム製品であって、
処理回路によって読み出し可能であり、請求項９ないし１５のいずれかに記載の方法を実行するための前記処理回路による実行用命令を記憶する、コンピュータ可読記憶媒体を含む、コンピュータ・プログラム製品。
【請求項１７】
コンピュータ可読媒体上に記憶され、デジタル・コンピュータの内部メモリ内にロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で動作されるときに、請求項９ないし１５のいずれかに記載の方法を実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
主題の開示は、一般に、重み行列に空間的局所性を与えることおよび周波数圧縮をもたらすことによりニューラル・ネットワークを訓練することに関連してデータ・サイズを減少させることに関する。
【背景技術】
【０００２】
ニューラル・ネットワークは、物理世界から重要データを収集することおよび移動すること、ならびにデジタル世界においてそのようなデータを処理することに関連して、急速に勢いを増している。この１０年で、ニューラル・ネットワークを用いて、「深層学習（ＤＬ）」は、音声認識、画像認識、自然言語処理、ゲノム配列決定、および多くの他の領域を含む様々な学問分野に変革をもたらしている。これらの領域で大量のラベル付けされたデータが入手可能であることが、高性能グラフィック処理ユニット（ＧＰＵ）によって提供される拡張された計算能力と結びつくことで、この急速な進歩が可能にされている。様々な目覚ましい技術の進歩にもかかわらず、最先端のハードウェア上ですら、分散型ニューラル・ネットワーク（ＤＮＮ）を訓練するために数日から数週間かかることがある。さらに、多数の訓練可能なモデル・パラメータ（重みとしても知られる）を考慮すると、通信帯域幅が分散型学習器の数をしばしば制限し、完全な利用を妨げ得る。ニューラル・ネットワークの訓練が長くかかり得る２つの大きな理由は、ニューラル・ネットワークが、膨大な量であることが多く、最適化されるべき数百万のパラメータ（重みと呼ばれる）を含むということ、ならびに膨大な数のパラメータを考慮すると、ニューラル・ネットワークを訓練するために数十万の例がしばしば必要とされ、かなりの処理、メモリ、および通信リソースを消費し得るということである。
【０００３】
現在のコンピューティング・システムは、典型的には、処理ユニットおよびメモリとともにセットアップされる。非常に効率的かつ高性能なコンピュータ処理ユニット（ＣＰＵ）を用いてでさえ、ＣＰＵとメモリとの間にボトルネックが生じる状況が起こり得る。これは、「プロセッサ・メモリ・ボトルネック」と呼ばれる（フォン・ノイマン・ボトルネックとも呼ばれる）。データは、最適な容量でＣＰＵが動作するように、ＣＰＵに絶えず供給されなければならない。ＣＰＵとメモリとの間、または集中型パラメータ・サーバと複数の分散型コンピューティング・ノードとの間で送信されるデータ量を減少させることは、ニューラル・ネットワークの効率および性能を大いに向上させ得る。典型的なニューラル・ネットワークを訓練するために、概して、乱数を完成させるために重みを初期化し、次いでネットワークが訓練することを可能にする。このようなプロセスを改善するための取り組みにおいて、各ニューラル・ネットワークの層において重みを乱数に初期化する代わりに、初期化において重み行列における空間的局所性（特定領域内の重みが互いに類似する）が強化され、それが周波数圧縮を容易にする。空間的局所性のために、特定領域においてある重みから別の重みへの小さな変更がしばしばあり、周波数変換を通して、少数の低周波数コンポーネントにデータが分離され得る。この状況において、メモリ・フットプリントとその結果として重み行列を移送する帯域幅要件とを減少させるための「深層学習に適した」圧縮技術を開発することが、深層学習のためのソフトウェアおよびハードウェア両方のフレームワークを加速し得る。畳み込みニューラル・ネットワーク（ＣＮＮ）は、概してタスク固有のプログラミングをすることなく例を考察することによってタスクを行うように学習する、生物学的ニューラル・ネットワークから着想を得たコンピューティング・システムをいう。ニューラル・ネットワーク手法の１つの目標は、人間の脳と同じやり方で問題を解決することである。時間が経つにつれて、マッチングに特化した知能に注目が向けられ、逆伝播（例えば、ＣＮＮにおいて重みに関して（例えば、所与の状態に関連付けられたコストを生じる）損失関数の勾配を計算する方法）、即ち情報を逆方向に伝達することおよびそのような情報を反映するようにネットワークを調整することなどの生物学からの逸脱につながっている。例えば、画像認識では、ＣＮＮは、「顔特徴」または「顔特徴なし」として手動でラベル付けされている例としての画像を解析すること、および解析結果を用いて他の画像内の顔を識別することによって、顔特徴を含む画像を識別するように学習し得る。複数の隠れ層を有する人工ネットワークにおいて、初期層は、プリミティブ（例えば、目の瞳孔、虹彩、まつ毛など）を検出し得る。その出力は、最終層が複合物体認識（例えば、顔）を行うまで、より抽象的な一般化（例えば、目、口）などを行う、より深い層にフィード・フォワードされる。ＣＮＮは、ルールベース・プログラミングを用いた従来のコンピュータ・アルゴリズムによって表現するのが困難な適用例において考慮に入れるべき使用を見出している。
【０００４】
人工ニューラル・コンピューティングをよりよく理解するためには、従来の「直列式」コンピュータおよびそのソフトウェアがどのように情報を処理するかを最初に知ることが助けとなる。直列式コンピュータは、データおよび命令が記憶されるメモリ位置のアレイにアドレス付与し得る中央プロセッサを有する。命令およびその命令が要求するデータをメモリ・アドレスから読み出して、プロセッサによって計算が行われ、次いで命令が実行され、結果が、指定されたメモリ位置に保存される。直列式システム（および標準並列式システムも同様に）では、計算ステップが決定論的、逐次的、かつ論理的であり、所与の変数の状態が、１つの動作から別の動作へと追跡され得る。比較すると、ＣＮＮは、逐次的ではなく、または必ずしも決定論的ではない。複雑な中央プロセッサはなく、概して他のプロセッサからの入力の重み付け合計を取るのにすぎない多くの単純なプロセッサが存在する。ＣＮＮは、プログラムされた命令を実行せず、提示される入力のパターンに、並列で（例えば、シミュレーションされた、または実際に）応答する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、当技術分野において前述した問題に対処する必要がある。
【課題を解決するための手段】
【０００６】
第１の態様から見ると、本発明は、ニューラル・ネットワーク訓練中にデータを圧縮するためのシステムであって、コンピュータ実行可能コンポーネントおよびニューラル・ネットワーク・データを記憶するメモリと、メモリ内に記憶されたコンピュータ実行可能コンポーネントを実行するプロセッサと、を備え、コンピュータ実行可能コンポーネントが、重み行列の形態でニューラル・ネットワーク・データを受信する受信コンポーネント、重み行列を元のサブコンポーネントに分割する分割コンポーネント（segmentation component）であって、それぞれの元のサブコンポーネントが空間重みを有する、分割コンポーネント、それぞれの正規化サブコンポーネント（normalized sub-component）を生成するために、それぞれの元のサブコンポーネントに一般化された重み分布を適用する、サンプリング・コンポーネント、それぞれの正規化サブコンポーネントに変換を適用する、変換コンポーネント、および元のサブコンポーネントの圧縮表現を生成するために低周波数正規化サブコンポーネントのセットを生成するように、それぞれの変換された正規化サブコンポーネントの高周波数重み（high-frequency weight）をクロッピングする、クロッピング・コンポーネント（cropping component）を含む、システムを提供する。
【０００７】
さらなる態様から見ると、本発明は、コンピュータが実施する方法であって、重み行列の形態でニューラル・ネットワーク・データを受信することと、重み行列を元のサブコンポーネントに分割することであって、それぞれの元のサブコンポーネントが空間重みを有する、分割することと、それぞれの正規化サブコンポーネントを生成するために、それぞれの元のサブコンポーネントに一般化された重み分布を適用することと、それぞれの正規化サブコンポーネントに変換を適用することと、低周波数正規化サブコンポーネントのセットを生成するためにそれぞれの変換された正規化サブコンポーネントの高周波数重みをクロッピングすることと、を行うようにコンピュータ実行可能コンポーネントを実行するためにプロセッサおよびメモリを使用することを含む、方法を提供する。
【０００８】
さらなる態様から見ると、本発明は、ニューラル・ネットワーク訓練中にデータを圧縮するためのコンピュータ・プログラム製品であって、処理回路によって読み出し可能であり、発明のステップを実行する方法を実行するための処理回路による実行用命令を記憶する、コンピュータ可読記憶媒体を含む、コンピュータ・プログラム製品を提供する。
【０００９】
さらなる態様から見ると、本発明は、コンピュータ可読媒体上に記憶され、デジタル・コンピュータの内部メモリ内にロード可能なコンピュータ・プログラムであって、プログラムがコンピュータ上で動作されるときに、発明のステップを実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
【００１０】
以下では、発明の１つまたは複数の実施形態の基本的理解を提供するための概要を提示する。本概要は、重要なもしくは重大な要素を識別するように、または特定の実施形態のいかなる範囲、もしくは特許請求の範囲のいかなる範囲も描写するように意図されない。その唯一の目的は、後で提示されるさらに詳細な説明の前置きとして、簡略化した形態で概念を提示することである。本明細書で説明される１つまたは複数の実施形態において、特定の状況においてニューラル・ネットワークを用いて最終製品の製造を容易にするシステム、コンピュータ実施方法、装置、またはコンピュータ・プログラム製品、あるいはそれらの組み合わせが説明される。
【００１１】
実施形態によれば、ニューラル・ネットワーク訓練中にデータを圧縮するためのシステムは、コンピュータ実行可能コンポーネントおよびニューラル・ネットワーク・データを記憶するメモリと、メモリ内に記憶されたコンピュータ実行可能コンポーネントを実行するプロセッサと、を備え、コンピュータ実行可能コンポーネントが、重み行列の形態でニューラル・ネットワーク・データを受信する受信コンポーネント、重み行列を元のサブコンポーネントに分割する分割コンポーネントであって、それぞれの元のサブコンポーネントが空間重みを有する、分割コンポーネント、それぞれの正規化サブコンポーネントを生成するために、それぞれの元のサブコンポーネントに一般化された重み分布を適用する、サンプリング・コンポーネント、それぞれの正規化サブコンポーネントに変換を適用する、変換コンポーネント、および元のサブコンポーネントの圧縮表現を生成するために低周波数正規化サブコンポーネントのセットを生成するように、それぞれの変換された正規化サブコンポーネントの高周波数重みをクロッピングする、クロッピング・コンポーネントを含む。
【００１２】
さらに別の実施形態によれば、コンピュータ実施方法は、元のサブコンポーネントに分割された重み行列を初期化することであって、それぞれの元のサブコンポーネントが空間重みを有する、初期化することと、それぞれの正規化サブコンポーネントを生成するために、それぞれの元のサブコンポーネントに一般化された重み分布を適用することと、それぞれの正規化サブコンポーネントに変換を適用することと、低周波数重みおよび高周波数重みを生成することと、圧縮された正規化サブコンポーネントのセットを生成するためにそれぞれの変換された正規化サブコンポーネントの高周波数重みをクロッピングすることと、を行うようにコンピュータ実行可能コンポーネントを実行するためにプロセッサおよびメモリを採用することを含む。
【００１３】
別の実施形態は、前述のコンピュータ実行可能コンポーネントがその上に記憶されているコンピュータ・プログラム製品を含む。
【００１４】
本発明は、以下の図に示されるように、好適な実施形態を参照して単なる例としてここで説明される。
【図面の簡単な説明】
【００１５】
【図１】本発明の好適な実施形態による、ニューラル・ネットワークを訓練するために圧縮された高密度の低周波数重みを生成するように、変換を使用し、重み行列に空間的局所性を与える例としてのシステムのブロック図である。
【図２】本発明の好適な実施形態による、ニューラル・ネットワークを訓練するために圧縮された高密度の低周波数重みを生成するように、変換を使用し、重み行列に空間的局所性を与えるプロセスを示す図である。
【図３】本発明の好適な実施形態による、ニューラル・ネットワークを訓練するために圧縮された高密度の低周波数重みを生成するように、重み行列に空間的局所性を与えるプロセス・フロー図である。
【図４】それぞれの学習器が、実施に従って訓練するためのニューラル・ネットワークおよび例の個別のコピーを有し、訓練中に互いに重み情報を交換する、および／または１つもしくは複数のパラメータ・サーバと重み情報を交換するように、複数の学習器に計算を分散するモデルを示す図である。
【図５】本発明の好適な実施形態による、ＭＮＩＳＴと呼ばれるベンチマークを使用してニューラル・ネットワーク訓練データ・チャートのエポック数に対するパーセント誤差を示す図である。
【図６】本発明の好適な実施形態による、Ｉｍａｇｅｎｅｔと呼ばれるベンチマークおよびＡｌｅｘｎｅｔと呼ばれるニューラル・ネットワーク構成を使用してニューラル・ネットワーク訓練データ・チャートのエポック数に対するパーセント誤差を示す図である。
【図７】ＡＣＤＣ法のテスト結果および他の技術水準の方法を、本明細書で説明される本発明の好適な実施形態に対して比較するチャートを示す図である。
【図８】本発明の好適な実施形態による、空間行列の選択操作に基づいて学習効率を向上させることを容易にする代替的な実施を示す図である。
【図９】本発明の好適な実施形態による、例としての動作環境の概略図である。
【発明を実施するための形態】
【００１６】
以下の詳細な説明は単なる例示であり、実施形態または実施形態の適用もしくは使用あるいはその両方を限定するように意図されない。さらに、前述の発明の概要の項目、または詳細な説明の項目において提示されるいかなる明示的または暗示的な情報にも拘束される意図はない。１つまたは複数の実施形態が、ここで図面を参照して説明され、類似の参照番号は、全体を通して類似の要素を参照するために使用される。以下の説明では、説明のために、１つまたは複数の実施形態のより完全な理解をもたらすために、多数の具体的詳細が記述される。しかしながら、様々な場合において、１つまたは複数の実施形態が、これらの特定の詳細なしに実施され得ることは明白である。
【００１７】
本明細書で説明される１つまたは複数の実施形態は、無視できる程度の軽微なデータ損失で最適な圧縮データ・セットを利用して意図した結果を達成するためにデータを識別および処理することを容易にする、ニューラル・ネットワーク・モデルの生成および使用を提供する。様々な計算上の目的のためにニューラル・ネットワークを使用することは、そのようなタスクを完成するために必要な典型的な要件に基づいて困難であり得る。集中的なデータ・インタラクションおよびＣＰＵ使用が、最高品質の結果を達成することを制限し得る。高解像度画像またはビデオが、認識および推論動作のためにニューラル・ネットワークへの入力として使用されることはよくある。大きなニューラル・ネットワーク・サイズは、大きな入力画素数および隠れ層サイズに起因し得る。現在の技術水準において、これらの画像は、最大１６００億個およびそれを超えるパラメータの膨大なデータ量を含み得る。この水準のデータを処理するための時間長および計算能力は、所望の分類タスクを完結することを抑制しかねない。したがって、特に、コグニティブなモノのインターネット（ＩｏＴ）、およびヨタバイト（１０００８バイト）に達しこれを含むようなエクサバイトを利用し得るストレージにおけるデータ・マイニングなどの領域について、エッジ上での非常に効率的な計算の必要がある。
【００１８】
現在の技術水準において、多くのニューラル・ネットワークが、減少された（例えば、圧縮された）高密度の画像上で動作される。離散コサイン変換（ＤＣＴ：discrete cosine transform）は、一般に、ＪＰＥＧ（Joint Photographic Experts Group）圧縮において使用される。本明細書で採用されるＤＣＴは、画像を周波数領域（frequency domain）に変換する。実世界の画像は、典型的には空間的局所性を有し、関連のある情報が、低周波数コンポーネントに集中することがよくある。主題のイノベーションは、著しいデータを有する高密度の画像上で動作する大きくて複雑なニューラル・ネットワーク（典型的には、相当な電力、処理能力、メモリ、および帯域幅を必要とする）を動作させることから、技術水準に対して差別化し、ニューラル・ネットワークの速度および性能において著しい利益をもたらす周波数変換圧縮法に基づいて、より小さな入力に対して動作することへと進むための技術を提供する。現在のデータ計算戦略のプロセス全体を改善するために利用され得る（これらのニューラル・ネットワークへの画像またはビデオ入力に表示される）隣接画素間の相関に起因する、固有のデータ冗長性または類似性がある。これは、主題の圧縮プロセスを推進する空間的局所性の概念である。各ニューラル・ネットワークの層において重みを乱数に初期化する代わりに、空間的局所性（例えば、特定領域内の互いに類似する重み）は、周波数圧縮を容易にするため、および分散型ニューラル・ネットワークを経て送信されるデータ・サイズを減少させるために、重み行列に与えられる。空間的局所性のために、特定領域においてある重みから別の重みへの小さな変更がしばしばあり、周波数変換を用いて、そのようなデータが少数の低周波数コンポーネントに分離され得る。この状況において、「深層学習に適した」圧縮技術が、メモリ・フットプリントと重み行列を移送することに関連する帯域幅要件とを減少させることによって容易にされ、それが、深層学習のためのソフトウェアおよびハードウェアのフレームワークを改善し得る。
【００１９】
図１は、本明細書で説明される１つまたは複数の実施形態による、特定の状況において最適な結果を提供するために、大きなデータ・セットを解析することおよびニューラル・ネットワークを訓練することを容易にする、例としての非限定的なシステム１００のブロック図を示す。本開示で説明されるシステム（例えば、システム１００など）、装置またはプロセスの態様は、機械内で具現化される、例えば１つまたは複数の機械に関連付けられた１つまたは複数のコンピュータ可読媒体において具現化される、機械実行可能コンポーネントを構成し得る。１つまたは複数の機械による実行時に、そのようなコンポーネント、例えば、コンピュータ、コンピューティング・デバイス、仮想機械などが、説明される動作を機械に実行させ得る。本明細書で説明される１つまたは複数の実施形態において採用される類似の要素の繰り返しの説明は、簡潔化のために省略される。
【００２０】
システム１００は、任意で、サーバ・デバイス、１つまたは複数のネットワーク、および１つまたは複数のデバイス（図示せず）を含み得る。システム１００は、また、メモリ１０４に記憶されたコンピュータ実行可能コンポーネントを実行する少なくとも１つのプロセッサ１０２を含んでもよく、またはプロセッサ１０２に関連付けられてもよい。システム１００は、受信コンポーネント１０７、分割コンポーネント１０８、サンプリング・コンポーネント１１０、変換コンポーネント１１２、クロッピング・コンポーネント１１４、および逆変換コンポーネント１１６を含むがこれらに限定されない様々なコンポーネントを連結し得るシステム・バス１０６をさらに含み得る。システム１００は、デバイスに通信可能に連結され得る、任意の適当なコンピューティング・デバイスまたはコンピューティング・デバイスのセットであってもよく、その非限定的な例は、サーバ・コンピュータ、コンピュータ、モバイル・コンピュータ、メインフレーム・コンピュータ、自動テスト・システム、ネットワーク記憶デバイス、通信デバイス、ウェブ・サーバ・デバイス、ネットワーク交換デバイス、ネットワーク・ルーティング・デバイス、ゲートウェイ・デバイス、ネットワーク・ハブ・デバイス、ネットワーク・ブリッジ・デバイス、制御システム、または任意の他の適当なコンピューティング・デバイスを含み得るが、これらに限定されない。デバイスは、システム１００と情報を通信し得る任意のデバイス、またはシステム１００によって提供される情報を採用し得る任意の他の適当なデバイス、あるいはその両方であり得る。システム１００、コンポーネント、モデル、またはデバイスが、１つまたは複数のネットワーク上で、システム、コンポーネント、モデル、デバイスなどの間で通信を可能にする通信コンポーネント（図示せず）を具備し得ると理解されるべきである。
【００２１】
システム１００によれば、メモリ１０４は、プロセッサ１０２によって実行可能なコンピュータ実行可能コンポーネントを記憶し得る。受信コンポーネント１０７は、入力重み行列を受信し、それぞれの宛先にデータを移送し得る。分割コンポーネント１０８は、初期重み行列を元のサブコンポーネントに分割（セグメント化）し得る。サンプリング・コンポーネント１１０は、一般重み分布を元のサブコンポーネントに適用し得る。変換コンポーネント１１２は、変換（例えばＤＣＴ）を空間重みのサブブロックに適用して、低周波数セクション内の関連するデータを有する重みを生成し得る。クロッピング・コンポーネント１１４は、低周波数データ・セットが集中した情報を有したまま残るように、高周波数コンポーネントを切り取り得る。逆変換コンポーネント１１６は、圧縮されたデータ・セットを周波数領域から空間領域（spatial domain）に戻すよう変換し得る。主題のイノベーションは、ＤＣＴ変換の使用に限定されず、任意の適当な周波数変換（例えば、フーリエ変換、ラプラス変換、ウェーブレット変換、Ｚ変換）が採用され得ると理解されるべきである。
【００２２】
主題のイノベーションは、ニューラル・ネットワークの効率および性能を向上させることに関連して、コンピュータ処理ユニット（ＣＰＵ）とメモリとの間、または集中型パラメータ・サーバと複数の分散型コンピューティング・ノードとの間で送信されるデータ量の減少を容易にする。システム１００は各ニューラル・ネットワークの層において重みを乱数に初期化する代わりに、空間的局所性（例えば、ある特定の領域内の互いに類似する重み）は、周波数圧縮を容易にするため、および分散型ニューラル・ネットワークを経て送信されるデータ・サイズを減少させるために、重み行列に与えられる。空間的局所性のために、特定領域においてある重みから別の重みへの小さな変更がしばしばあり、周波数変換を用いて、そのようなデータが少数の低周波数コンポーネントに分離され得る。この状況において、「深層学習に適した」圧縮技術が、メモリ・フットプリントおよび重み行列を移送することに関連する帯域幅要件を減少させることによって容易にされ、それが、深層学習のためのソフトウェアおよびハードウェアのフレームワークを改善し得る。
【００２３】
様々な実施において、空間的局所性の強化、および補間が、訓練開始時に重みが初期化されるときに行われると理解されるべきである。重み行列全体をランダムに初期化する代わりに、各サブブロックのコーナーが、ランダムに初期化される。次いで、各サブコンポーネント内の他の値を埋めるために、補間が行われる。訓練プロセスは、多くの例およびエポックに亘って重みを微調整することを伴う。重みが、例えば送信側から受信側に送信される必要があり、送信側がＣＰＵ／パラメータ・サーバ／学習器であり、受信側がメモリ／学習器であるとき、圧縮は、送信側において行われる。チャネル上で送信されるデータが最小化されるように、パディングおよび展開（decompression）は、受信側において行われる。しかしながら、初期化および補間ステップは、その後行われない。
【００２４】
システム１００の様々なコンポーネント（例えば、受信コンポーネント１０７、分割コンポーネント１０８、サンプリング・コンポーネント１１０、変換コンポーネント１１２、クロッピング・コンポーネント１１４、逆変換コンポーネント１１６、または他のコンポーネント、あるいはそれらの組み合わせ）が、直接、または１つもしくは複数のネットワークを介して接続され得る。そのようなネットワークは、セルラ・ネットワーク、ワイド・エリア・ネットワーク（ＷＡＮ）（例えば、インターネット）、またはローカル・エリア・ネットワーク（ＬＡＮ）を含むがこれらに限定されない有線および無線ネットワークを含んでもよく、その非限定的な例は、セルラ、ＷＡＮ、Ｗｉ−Ｆｉ（wireless fidelity）、Ｗｉ−Ｍａｘ、ＷＬＡＮ、無線通信、マイクロ波通信、衛星通信、光通信、音波通信、または任意の他の適当な通信技術を含む。さらに、前述のシステムまたはデバイス、あるいはその両方は、複数コンポーネント間の対話に関して説明されている。そのようなシステムおよびコンポーネントは、それらのコンポーネントまたはそこで指定されるサブコンポーネント、指定されるコンポーネントまたはサブコンポーネントのいくつか、または追加コンポーネント、あるいはそれらの組み合わせを含み得ると理解されるべきである。サブコンポーネントは、また、親コンポーネントの中に含まれるのではなく、他のコンポーネントに通信可能に連結されるコンポーネントとして実施され得る。さらに、１つまたは複数のコンポーネントまたはサブコンポーネント、あるいはその両方が、集合機能性を提供する単一コンポーネントに結合され得る。コンポーネントは、また、簡潔化のために本明細書で具体的に説明されないが当業者によって知られる、１つまたは複数の他のコンポーネントと対話し得る。
【００２５】
さらに、実行されるプロセスのいくつかは、それらの特定の状況において様々な種類のニューラル・ネットワークに関連する定義済みタスクを遂行するために、専用コンピュータによって実行され得る。主題のコンピュータ処理システム、方法、装置、またはコンピュータ・プログラム製品、あるいはそれらの組み合わせが、技術、コンピュータ・ネットワーク、インターネットなどの進歩を通して生じる新たな問題を解決するために採用され得る。
【００２６】
本明細書で説明されるデバイスのある実施形態は、任意で人工知能（ＡＩ）を採用して、本明細書で説明される１つまたは複数の特徴を自動化することを容易にし得る。コンポーネントは、本明細書で開示される多様な実施形態／例を遂行するための様々なＡＩベースの方式を採用し得る。本明細書で説明される多数の判断（例えば、判断する、確認する、推測する、算出する、予測する、予知する、推定する、導出する、予想する、検出する、計算する）に提供するため、または役立つために、本明細書で説明されるコンポーネントは、アクセスが許可されているデータ全体またはサブセットを検査してもよく、イベントまたはデータあるいはその両方を介して取り込まれる観測のセットからシステムの状態、環境などを推論するために提供し、または判断してもよい。判断は、特定の状況またはアクションを識別するために採用されてもよく、または例えば、状態に対する確率分布を生成してもよい。判断は、確率的であってもよく、即ち、データおよびイベントの考察に基づく、対象の状態に対する確率分布の計算であってもよい。判断は、また、イベントまたはデータあるいはその両方のセットからより高いレベルのイベントを構成するために採用される技術を参照し得る。
【００２７】
イベントが、近い時間的近接性に相関されるかどうか、ならびにイベントおよびデータが、１つまたは複数のイベントおよびデータ・ソースからのものであるかどうかにかかわらず、そのような判断は、観測されたイベントまたは記憶されたイベント・データあるいはその両方のセットから新たなイベントまたはアクションの構築をもたらし得る。本明細書で開示されるコンポーネントは、自動的なアクションまたは特許請求された主題に関連して判断されるアクション、あるいはその両方を行うことに関連して、様々な分類（明示的に（例えば、訓練データを介して）訓練された、および非明示的に（例えば、行動の観測、嗜好、履歴情報、外部情報の受信などを介して）訓練された）方式、またはシステム（例えば、サポート・ベクトル・マシン、ニューラル・ネットワーク、エキスパート・システム、ベイジアン信念ネットワーク、ファジー論理、データ融合エンジンなど）、あるいはその両方を採用し得る。したがって、分類方式またはシステム、あるいはその両方は、いくつかの機能、アクション、または判断、あるいはそれらの組み合わせを自動的に学習し、実行するために使用され得る。
【００２８】
分類器は、ｆ（ｚ）＝ｃｏｎｆｉｄｅｎｃｅ（ｃｌａｓｓ）によるように、入力属性ベクトルｚ＝（ｚ１，ｚ２，ｚ３，ｚ４，．．．，ｚｎ）を、入力があるクラスに属するというコンフィデンスにマッピングし得る。このような分類は、自動的に行われるアクションを判断するために、確率解析または統計ベース解析（例えば、解析ユーティリティおよびコストを計算に入れる）、あるいはその両方を採用し得る。サポート・ベクトル・マシン（ＳＶＭ）は、採用され得る分類器の例であり得る。ＳＶＭは、起こり得る入力の空間内で超曲面を見つけることによって動作し、超曲面は非トリガ・イベントからトリガ基準を分けようと試みる。直観的に、これは、訓練データに近いが一致しないデータをテストするのに正確な分類を行う。他の有向および無向モデル分類手法は、例えば、ナイーブ・ベイズ、ベイジアン・ネットワーク、決定木、ニューラル・ネットワーク、ファジー論理モデル、または採用され得る独立の異なるパターンを提供する確率分類モデル、あるいはそれらの組み合わせを含む。本明細書でも使用される分類は、優先度のモデルを開発するために利用される統計的回帰を含む。
【００２９】
図２は、初期化において周波数コンポーネント／回帰型層において空間的局所性を強化するプロセスの実施形態を示す。初期重み行列２０２は、より小さな領域（サブ・ブロック）２０４に分割され、その領域内のパラメータはある度合いの空間的相関（spatial correlation）を有している。各サブブロックのコーナー重み値が、乱数の分布からサンプリングされ得る。１つの実施形態では、この分布は、採用されない技術であった重み行列のランダムな初期化に使用されるのと同一の分布であり得る。バイリニア補間２０６は、残りの値を埋めるために使用され得る。この点で、サーバは、重みの統合型コピーを含み、それは、ＤＣＴまたは別の変換を用いてそれぞれのサブコンポーネントを周波数領域に変換する。標本サブブロック２０８は、低周波数セグメント内に重要な関連のあるデータを含み、より高い周波数セグメントが小さな値またはゼロを有するデータを含む。続いて、データ・ブロック２０８の高周波数コンポーネント領域は、低周波数部分のみの領域（例えば、三角）２１０を残して切り取られる。これは、サーバがそれぞれの受信機に送出する重みの圧縮された周波数表現である。重みの圧縮された周波数領域表現のサイズ減少は、送信されるデータ・サイズを減少させることによって、改善された効率および性能を容易にする。受信機において、領域２１０の空のセクションが、ゼロパディングされ、逆変換（例えば、逆ＤＣＴ変換）が、元のデータ・ブロック２０４の近似表現である空間重みのデータ・ブロック２１２をもたらすように実行される。主題のイノベーションは、関連領域のコーナーまたはある形状に限定されないと理解されるべきである。むしろ、イノベーションは、周波数圧縮を容易にするため、および分散型ニューラル・ネットワークを経て送信されるデータ・サイズを減少させるために、空間的局所性（例えば、特定の領域内の互いに類似する重み）を重み行列に与えるための任意の適当な技術を包含するように意図される。
【００３０】
図３は、実施によるフロー図３００を示す。３０２において、重み行列が、（分割コンポーネント１０８およびサンプリング・コンポーネント１１０を用いて）空間的相関で初期化される。３０４において、変換（例えば、ＤＣＴ変換）が、（例えば、変換コンポーネント１１２を用いて）低周波数帯に集中されるデータを有する圧縮されたサブデータ・ブロックを生じるために、空間重みのサブブロックに対して実行される。３０６において、残りの高周波数セグメントが、（例えば、クロッピング・コンポーネント１１４を用いて）関連性の低いデータを減少させるために切り取られる。３０８において、逆変換（例えば、逆ＤＣＴ）が、（例えば逆変換コンポーネント１１６を用いて）データ低周波数データに対して実行され、次いで、残りの領域が、ゼロパディングされる。３１０において、重みの近似版が、受信機において取得され、ニューラル・ネットワークを訓練するために使用される。確立されたニューラル・ネットワーク・ベンチマークについての技術を評価することによって、圧縮が適用されない訓練タスクと同じ訓練精度が達成されるかどうかが、判断され得る。はいの場合、３１２において、ニューラル・ネットワークの訓練が継続される。いいえの場合、３１４において、空間的局所性が変更され、３０２において、プロセスが反復される。動作３１０、３１２、および３１４に関して、非圧縮のベースラインと同じ効率が達成されるかどうかをチェックすることは、任意で、ある標準ベンチマークに対してイノベーションを検証にするために実行される（例えば、圧縮なしで精度がどれほどであるべきかの先験的知識を有することは、現実世界の実施において非現実的である）。
【００３１】
説明の単純化のために、コンピュータ実施方法論は、一連の動作として示され、説明される。主題のイノベーションは、示される動作によって、または動作の順序によって、あるいはその両方によって限定されず、例えば動作は、様々な順序でまたは同時に、あるいはその両方で、かつ本明細書に提示および説明されない他の動作とともに発生し得ると理解され、認識されるべきである。さらに、示される動作の全てが、開示される主題によるコンピュータ実施方法論を実施するために必要とされ得るわけではない。さらに、コンピュータ実施方法論は、代替的に、状態図またはイベントを介して一連の相互に関連のある状態として表現され得ると、当業者は理解し認識するであろう。追加的に、以下および本明細書全体を通して開示されるコンピュータ実施方法論は、そのようなコンピュータ実施方法論をコンピュータに移送すること、および転送することを容易にするために、製品上に記憶されることが可能であると、さらに理解されるべきである。本明細書で使用される製品という用語は、任意のコンピュータ可読デバイスまたは記憶媒体からアクセス可能なコンピュータ・プログラムを包含するように意図される。
【００３２】
図４は、主題のイノベーションによる、分散型学習器モデルを示す。パラメータ・サーバまたは分散型学習器４０２は、空間的相関を有する重み行列４０６に変換４０７を適用して、空間コンポーネントを周波数領域に変換する。４０８において、関連のある情報が、低周波数に集められている。４０９において、高周波数コンポーネントが切り取られ、圧縮された方式で関連情報を含むクロッピングされたＤＣＴ重みのセット４１０がもたらされる。圧縮されたＤＣＴ重みは、４１２において、分散型学習器４１４に送信され、４１６において逆変換が実行されると共に残りの領域がゼロパディングされて、それぞれのニューラル・ネットワークを訓練するための近似の空間重みのセット４１８がもたらされる。このモデルは、複数の学習器にわたって計算を分散する。各学習器は、訓練するニューラル・ネットワークおよび例の個別のコピーを有する。その後各学習器が訓練した後、各学習器は、パラメータ・サーバに情報を送信する。パラメータ・サーバは、重みの更新を複数の学習器にわたって同期し、新たな更新済みの重みを各学習器に転送する。このモデルは、対称的に作業負荷を分散する能力を可能にし、例えば、集中型サーバのみでは「１０エポックを訓練するために１０時間」を必要とするが、分散型学習器システムでは、１０の学習器を有することが可能であり、作業負荷全体で１時間しかかからない場合がある。
【００３３】
図５は、圧縮テスト・ケースの結果を示す。３層ニューラル・ネットワークの層１（７８４×１００８）および第２の層（１００８×１００８）に圧縮が適用され、ベンチマークは、ＭＮＩＳＴと呼ばれる、０〜９の間の手書き数字のデータ・セットである。データ・セットは、ニューラル・ネットワークを訓練するために使用される６００００個の訓練画像、および明示的には訓練されていない画像認識におけるニューラル・ネットワークの精度を評価するために使用される１００００個のテスト画像を含む。データ・チャートは、この主題の圧縮方法を使用することが、学習されたタスクの精度に対して実体的な影響がないことを反映している。例（５０４）は、エポックで測定されるある長さの訓練の後でニューラル・ネットワークに提供されたテスト・データについてであり、各エポックは、訓練データ・セットの６００００個の画像の１つのフル・パスを表している。チャートは、圧縮が採用されないベースラインのケースに精度が事実上等しいことを示している。１００のエポックを用いたテストについて、テスト結果は、ベースラインについて、および８倍圧縮については約９８．４％の精度（約１．６％の誤差）を示し、１６倍圧縮についてはわずかに高い誤差（約１．７％）しか示していない。
【００３４】
図６は、追加の圧縮比較データを示す。ＩｍａｇｅＮｅｔと呼ばれるより大きなベンチマーク・データセットが、Ａｌｅｘｎｅｔ（数百万のパラメータ（重み）を有する特定のニューラル・ネットワーク構成）を用いて訓練される。このチャートは、７倍圧縮において、測定可能な損失がゼロであり、９倍では、たった０．４％のデータ損失しかないことを反映している。このチャートの観測から、７倍および９倍のデータ結果の両方が、ベースラインを極めてよくなぞっていることが明らかである。
【００３５】
図７は、他の従来技術（例えば、ＡＣＤＣ、Ｃｈｅｎｇ、Ｙａｎｇ、Ｎｏｖｉｋｏｖ）と比較した、主題のイノベーションを用いた比較結果を反映する。７０２において、チャートは、７倍圧縮において、ＡＣＤＣ法がベースラインに対して０．７％の誤差増加を有し、一方、同一の圧縮率において主題のイノベーションはベースラインに対して誤差増加を０．２％だけ有することを示す。さらに、０．６％の誤差増加において、ＡＣＤＣ法が、最大６倍まで圧縮し得る一方、主題のイノベーションは、９倍圧縮を提供する。このデータは、主題のイノベーションが、同一の圧縮率において改善された精度を提供し、従来技術と比較して同一の精度においてより大きな圧縮率を提供することを表す。
【００３６】
図８は、空間行列の選択操作に基づいて学習効率を向上させることにおける潜在的なさらなる進歩を示し、異なる代替が表示される。図８０２は、上述した高周波数コンポーネントを除去する基本原理を示す。図８０４は、全てをゼロに設定する代わりに、いくつかのより高い周波数コンポーネントを保持する技術を示し、これは、変換中の損失をさらに減少させ得る。図８０６は、ハッチングされたセル内の高周波数コンポーネントにわたるさらなる補間を示し、これらの値をゼロに保持する代わりに、隣接する値にさらに基づいてそれらが潜在的に解釈され得る。
【００３７】
開示された主題の様々な態様についての状況を提供するために、図９および以下の説明は、開示された主題の様々な態様が実施され得る適当な環境の概要を提供するように意図される。図９は、本明細書で説明される１つまたは複数の実施形態が容易にされ得る、例としての非限定的な動作環境のブロック図を示す。本明細書に説明される他の実施形態において採用される類似の要素の繰り返しの説明は、簡潔化のために省略される。
【００３８】
図９を参照すると、本開示の多様な態様を実施するための適当な動作環境９００は、コンピュータ９１２も含み得る。コンピュータ９１２は、処理ユニット９１４、システム・メモリ９１６、およびシステム・バス９１８も含み得る。システム・バス９１８は、システム・メモリ９１６を含むがこれに限定されないシステム・コンポーネントを処理ユニット９１４に連結する。処理ユニット９１４は、様々な利用可能なプロセッサのうちのいずれかであり得る。デュアル・マイクロプロセッサおよび他のマルチプロセッサ・アーキテクチャも、処理ユニット９１４として採用され得る。システム・バス９１８は、インダストリ・スタンダード・アーキテクチャ（ＩＳＡ）、マイクロチャネル・アーキテクチャ（ＭＳＡ）、拡張ＩＳＡ（ＥＩＳＡ）、インテリジェント・ドライブ・エレクトロニクス（ＩＤＥ）、ＶＥＳＡローカル・バス（ＶＬＢ）、ペリフェラル・コンポーネント・インターコネクト（ＣＰＩ）、カード・バス、ユニバーサル・シリアル・バス（ＵＳＢ）、アドバンスト・グラフィックス・ポート（ＡＧＰ）、ファイアワイヤ（ＩＥＥＥ１０９４）、および小型計算機システム・インターフェース（ＳＣＳＩ）を含むがこれらに限定されない、任意の多様な利用可能なバス・アーキテクチャを用いたメモリ・バスもしくはメモリ・コントローラ、周辺バスもしくは外部バス、またはローカル・バス、あるいはそれらの組み合わせを含む、複数種類のバス構造のうちのいずれかであり得る。システム・メモリ９１６は、揮発性メモリ９２０および不揮発性メモリ９２２も含み得る。基本入出力システム（ＢＩＯＳ）は、起動中などにコンピュータ９１２内の要素間で情報を転送するための基本ルーチンを含み、不揮発性メモリ９２２に記憶される。限定ではなく例示として、不揮発性メモリ９２２は、読み出し専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ（ＲＡＭ）（例えば、強誘電体ＲＡＭ（ＦｅＲＡＭ））を含み得る。揮発性メモリ９２０は、外部キャッシュ・メモリとして動作するランダム・アクセス・メモリ（ＲＡＭ）も含み得る。限定ではなく例示として、ＲＡＭは、静的ＲＡＭ（ＳＲＡＭ）、動的ＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、Ｓｙｎｃｈｌｉｎｋ  ＤＲＡＭ（ＳＬＤＲＡＭ）、ダイレクト・ラムバスＲＡＭ（ＤＲＲＡＭ）、ダイレクト・ラムバス動的ＲＡＭ（ＤＲＤＲＡＭ）、およびラムバス動的ＲＡＭなどの多くの形態で利用可能である。
【００３９】
コンピュータ９１２は、リムーバブル／非リムーバブル、揮発性／不揮発性コンピュータ記憶媒体も含み得る。図９は、例えば、ディスク・ストレージ９２４を示す。ディスク・ストレージ９２４は、磁気ディスク・ドライブ、フロッピー（Ｒ）・ディスク・ドライブ、テープ・ドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティックのようなデバイスも含み得るが、これらに限定されない。ディスク・ストレージ９２４は、コンパクト・ディスクＲＯＭデバイス（ＣＤ−ＲＯＭ）、ＣＤ記録可能ドライブ（ＣＤ−Ｒドライブ）、ＣＤ書き換え可能ドライブ（ＣＤ−ＲＷドライブ）、またはデジタル多用途ディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ）などの光ディスク・ドライブを含むがこれらに限定されない、他の記憶媒体とは別々の、または組み合わせた記憶媒体も含み得る。システム・バス９１８へのディスク・ストレージ９２４の接続を容易にするために、インターフェース９２６などのリムーバブルまたは非リムーバブル・インターフェースが、典型的には使用される。図９は、ユーザと適当な動作環境９０１において説明される基本コンピュータ・リソースとの間の仲介として動作するソフトウェアも示す。そのようなソフトウェアは、例えば、オペレーティング・システム９２８も含み得る。ディスク・ストレージ９２４上に記憶され得るオペレーティング・システム９２８は、コンピュータ９１２のリソースを制御し、割り当てるように動作する。システム・アプリケーション９３０は、例えば、システム・メモリ９１６内、またはディスク・ストレージ９２４上のいずれかに記憶されたプログラム・モジュール９３２およびプログラム・データ９３４を通して、オペレーティング・システム９２８によるリソースの管理を利用する。本開示は、様々なオペレーティング・システムまたはオペレーティング・システムの組み合わせで実施され得ると理解されるべきである。ユーザは、入力デバイス９３６を通してコンピュータ９１２にコマンドまたは情報を入力する。入力デバイス９３６は、マウスなどのポインティング・デバイス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星テレビ受信用アンテナ、スキャナ、ＴＶチューナ・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、ウェブ・カメラなどを含むがこれらに限定されない。これらの入力デバイスおよび他の入力デバイスは、インターフェース・ポート９３８を介してシステム・バス９１８を通して処理ユニット９１４に接続する。インターフェース・ポート９３８は、例えば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス（ＵＳＢ）を含む。出力デバイス９４０は、入力デバイス９３６と同一種類のポートのいくつかを使用する。したがって、例えば、ＵＳＢポートは、入力をコンピュータ９１２に提供するため、およびコンピュータ９１２から出力デバイス９４０に情報を出力するために使用され得る。出力アダプタ９４２は、特別なアダプタを必要とする他の出力デバイス９４０のうち、モニタ、スピーカ、およびプリンタのようないくつかの出力デバイス９４０が存在することを示すために提供される。出力アダプタ９４２は、限定ではなく例示として、出力デバイス９４０とシステム・バス９１８との間の接続の手段を提供するビデオ・カードおよびサウンド・カードを含む。リモート・コンピュータ９４４などの他のデバイスまたはデバイスのシステムあるいはその両方が、入力能力および出力能力の両方を提供することに留意すべきである。
【００４０】
コンピュータ９１２は、リモート・コンピュータ９４４などの１つまたは複数のリモート・コンピュータへの論理接続を用いてネットワーク化環境において動作し得る。リモート・コンピュータ９４４は、コンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサ・ベースの機器、ピア・デバイス、または他の共通ネットワーク・ノードなどであってもよく、典型的には、コンピュータ９１２に関連して説明される要素のうちの多くまたは全ても含み得る。簡潔化のため、メモリ・ストレージ・デバイス９４６のみが、リモート・コンピュータ９４４とともに示される。リモート・コンピュータ９４４は、ネットワーク・インターフェース９４８を通してコンピュータ９１２に論理的に接続され、次いで、通信接続９５０を介して物理的に接続される。ネットワーク・インターフェース９４８は、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、セルラ・ネットワークなどの有線通信または無線通信あるいはその両方のネットワークを包含する。ＬＡＮ技術は、ファイバ分散データ・インターフェース（ＦＤＤＩ）、銅線分散データ・インターフェース（ＣＤＤＩ）、イーサネット（Ｒ）、トークン・リングなどを含む。ＷＡＮ技術は、ポイントツーポイント・リンク、サービス総合デジタル通信網（ＩＳＤＮ）およびそれに対する変形などの回路交換ネットワーク、パケット交換ネットワーク、ならびにデジタル加入者回線（ＤＳＬ）を含むが、これらに限定されない。通信接続９５０は、ネットワーク・インターフェース９４８をシステム・バス９１８に接続するために採用されたハードウェア／ソフトウェアをいう。通信接続９５０が、例示的な明確性のためにコンピュータ９１２内に示されるが、それは、コンピュータ９１２の外部にあってもよい。ネットワーク・インターフェース９４８への接続のためのハードウェア／ソフトウェアが、例示目的のみのために、標準電話グレード・モデム、ケーブル・モデム、およびＤＳＬモデムを含むモデム、ＩＳＤＮアダプタ、ならびにイーサネット（Ｒ）・カードなどの内部技術および外部技術も含み得る。
【００４１】
本発明の実施形態は、任意の可能な統合の技術的詳細レベルにおけるシステム、方法、装置、またはコンピュータ・プログラム製品、あるいはそれらの組み合わせであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を遂行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体を含み得る。コンピュータ可読記憶媒体は、命令実行デバイスにより使用するための命令を保持し、記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または前述したものの任意の適当な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチカードまたはその上に記録された命令を有する溝内の隆起構造などの機械的に符号化されたデバイス、および前述したものの任意の適当な組み合わせも含み得る。本明細書で用いられるコンピュータ可読記憶媒体は、本来、電波もしくは他の自由伝播する電磁波、導波管もしくは他の送信媒体を通って伝播する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、または電線を通って送信される電気信号などの、一過性信号であると解釈されるべきではない。
【００４２】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはそれらの組み合わせを介して外部コンピュータまたは外部ストレージ・デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組み合わせを含み得る。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体の記憶用にコンピュータ可読プログラム命令を転送する。本発明の様々な態様の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、またはＳｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む、１つもしくは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的にかつリモート・コンピュータ上で部分的に、またはリモート・コンピュータもしくはサーバ上で完全に、実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを通して、ユーザのコンピュータに接続されてもよい。あるいは、接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを通して）外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をカスタマイズすることによって、コンピュータ可読プログラム命令を実行し得る。
【００４３】
本発明の態様は、発明の実施形態による、方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本明細書において説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実施され得ると理解されたい。コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定される機能／動作を実施する手段を作り出すように、これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。コンピュータ可読記憶媒体に記憶される命令を有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定される機能／動作の態様を実施する命令を含む製品を含むように、これらのコンピュータ可読プログラム命令は、また、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはそれらの組み合わせに特定のやり方で機能するように指示し得るものであってもよい。コンピュータ、他のプログラマブル装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定される機能／動作を実施するように、コンピュータ可読プログラム命令は、また、コンピュータ実施されたプロセスを作り出すために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作行為を実行させるものであってもよい。
【００４４】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考えられる実施のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実施するための１つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表してもよい。いくつかの代替的実施において、ブロック内に記載された機能は、図面中に記載された順序以外で発生してもよい。例えば、連続して示される２つのブロックが、実際には、実質的に同時に実行されてもよく、または、ブロックが、関係する機能性次第で逆の順序で実行されることがあってもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせが、指定された機能もしくは動作を実行し、または専用ハードウェアおよびコンピュータ命令の組み合わせを遂行する専用ハードウェア・ベース・システムによって実施され得ることにも留意されたい。
【００４５】
主題は、コンピュータまたは複数のコンピュータあるいはその両方の上で動作するコンピュータ・プログラム製品のコンピュータ実行可能命令の一般的状況において上述されているが、当業者は、本開示が他のプログラム・モジュールと組み合わせても実施され得ると認識する。概して、プログラム・モジュールは、特定のタスクを実行しまたは特定の抽象データ型を実施し、あるいはその両方を行う、ルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、発明のコンピュータ実施方法が、シングルプロセッサまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータと同様に、コンピュータ、手持ち式コンピューティング・デバイス（例えば、ＰＤＡ、電話）、マイクロプロセッサ・ベースの、またはプログラマブル消費者電子機器または産業電子機器などを含む、他のコンピュータ・システム構成で実施され得ると、当業者は理解する。示される態様は、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行される、分散型コンピューティング環境でも実施され得る。しかしながら、本開示の全てではないとしてもいくつかの態様が、スタンドアロン・コンピュータ上で実施され得る。分散型コンピューティング環境では、プログラム・モジュールは、ローカル・メモリ・ストレージ・デバイスおよびリモート・メモリ・ストレージ・デバイスの両方に位置し得る。
【００４６】
本出願で使用される、「コンポーネント」、「システム」、「プラットフォーム」、「インターフェース」などの用語は、コンピュータ関連エンティティ、または１つもしくは複数の特定の機能性を有する動作機械に関連するエンティティを参照してもよく、または含んでもよく、あるいはその両方であってもよい。本明細書で開示されたエンティティは、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかであってもよい。例えば、コンポーネントは、プロセッサ上で実行中のプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、またはコンピュータ、あるいはそれらの組み合わせであってもよいが、それらであると限定されない。例示として、サーバ上で実行中のアプリケーションおよびサーバの両方が、コンポーネントであり得る。１つまたは複数のコンポーネントが、プロセスまたは実行スレッド、あるいはその両方の中に存在してもよく、コンポーネントは、１つのコンピュータ上に局所化されてもよく、または２つ以上のコンピュータ間に分散されてもよく、あるいはその両方であってもよい。別の例では、それぞれのコンポーネントは、その上に記憶される様々なデータ構造を有する様々なコンピュータ可読媒体から実行し得る。コンポーネントは、１つまたは複数のデータ・パケットを有する信号などに従って（例えば、ローカル・システム内の別のコンポーネント、分散型システム、またはインターネットなどのネットワークをわたって信号を介し他のシステムと、あるいはそれらの組み合わせと対話する１つのコンポーネントからのデータ）、ローカル・プロセスまたはリモート・プロセスあるいはその両方を介して通信し得る。別の例として、コンポーネントは、電気回路または電子回路により動作される機械部品によって提供される特定の機能性を有する装置であってもよく、電気回路または電子回路は、プロセッサによって実行されるソフトウェアまたはファームウェア・アプリケーションによって動作される。このような場合、プロセッサは、装置の内部または外部にあってもよく、ソフトウェアまたはファームウェア・アプリケーションの少なくとも一部を実行してもよい。さらに別の例として、コンポーネントは、機械部品なしで電子コンポーネントを通して特定の機能性を提供する装置であってもよく、電子コンポーネントは、電子コンポーネントの機能性を少なくとも一部与えるソフトウェアまたはファームウェアを実行するためのプロセッサまたは他の手段を含み得る。ある態様において、コンポーネントは、例えばサーバ・コンピューティング・システム内で、仮想機械を介して電子コンポーネントをエミュレートし得る。
【００４７】
さらに、「または」という用語は、排他的な「または」ではなく包含的な「または」を意味するように意図される。即ち、特段の記載がなく、または文脈から明白である限り、「ＸはＡまたはＢを採用する」は、当然の包含的並べ替えのいずれかを意味するように意図される。即ち、ＸがＡを採用する、ＸがＢを採用する、またはＸがＡおよびＢの両方を採用する場合に、「ＸはＡまたはＢを採用する」が、前述の場合のいずれかの下で満たされる。さらに、特段の記載がない限り、または文脈から単数形を対象とすることが明白でない限り、主題の明細書および添付図面において使用される冠詞「ある（ａ）」および「１つの（ａｎ）」は、概して、「１つまたは複数の」を意味するように解釈されるべきである。本明細書で使用される、「例」または「例示的」あるいはその両方の用語は、例、場合、または例示として機能することを意味するために利用される。疑義が生じることを避けるために、本明細書で開示された主題は、そのような例によって限定されない。さらに、本明細書で「例」または「例示的」あるいはその両方と説明される任意の態様または設計は、必ずしも他の態様または設計に対して好適または有利として解釈されるべきではなく、当業者に既知の同等の例示的な構造および技術を排除することを意味するものでもない。
【００４８】
それが主題の明細書において採用されるとき、「プロセッサ」という用語は、シングルコア・プロセッサ、ソフトウェア・マルチスレッド実行能力を有するシングルプロセッサ、マルチコア・プロセッサ、ソフトウェア・マルチスレッド実行能力を有するマルチコア・プロセッサ、ハードウェア・マルチスレッド技術を有するマルチコア・プロセッサ、並列プラットフォーム、および分散型共有メモリを有する並列プラットフォームを含むがこれらに限定されない、任意のコンピューティング処理ユニットまたはデバイスを実質的に参照し得る。追加的に、プロセッサは、集積回路、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、プログラマブル・ロジック・コントローラ（ＰＬＣ）、複合プログラマブル・ロジック・デバイス（ＣＰＬＤ）、離散ゲートもしくはトランジスタ・ロジック、離散ハードウェア・コンポーネント、または本明細書で説明された機能を実行するように設計されたそれらの任意の組み合わせを参照し得る。さらに、プロセッサは、空間利用率を最適化し、ユーザ機器の性能を拡張するために、分子および量子ドット・ベース・トランジスタ、スイッチ、ならびにゲートなど、これらに限定されないナノスケール・アーキテクチャを活用し得る。プロセッサは、コンピューティング処理ユニットの組み合わせとしても実施され得る。本開示において、「ストア」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」などの用語、および実質的にコンポーネントの動作および機能性に関連する任意の他の情報記憶コンポーネントが、「メモリ・コンポーネント」、「メモリ」内に具現化されたエンティティ、またはメモリを含むコンポーネントを参照するために利用される。本明細書で説明されるメモリまたはメモリ・コンポーネントあるいはその両方が、揮発性メモリもしくは不揮発性メモリのいずれかであってもよく、または揮発性メモリおよび不揮発性メモリの両方を含んでもよいと理解されるべきである。限定ではなく例示として、不揮発性メモリは、読み出し専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ（ＲＡＭ）（例えば、強誘電体ＲＡＭ（ＦｅＲＡＭ））を含み得る。揮発性メモリは、ＲＡＭを含んでもよく、ＲＡＭは、例えば外部キャッシュ・メモリとして動作し得る。限定ではなく例示として、ＲＡＭは、同期ＲＡＭ（ＳＲＡＭ）、動的ＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブル・データ・レートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、Ｓｙｎｃｈｌｉｎｋ  ＤＲＡＭ（ＳＬＤＲＡＭ）、ダイレクト・ラムバスＲＡＭ（ＤＲＲＡＭ）、ダイレクト・ラムバス動的ＲＡＭ（ＤＲＤＲＡＭ）、およびラムバス動的ＲＡＭ（ＲＤＲＡＭ）などの多くの形態で利用可能である。追加的に、本明細書のシステムまたはコンピュータ実施方法の開示されたメモリ・コンポーネントは、これらのおよび任意の他の適当な種類のメモリを含むことに限定されるこ��なく、含むように意図される。
【００４９】
上述されたものは、システム、コンピュータ・プログラム製品、およびコンピュータ実施方法の単なる例を含む。本開示を説明するために、コンポーネント、製品、またはコンピュータ実施方法、あるいはそれらの組み合わせのあらゆる考えられる組み合わせを説明することは、当然ながらできないが、当業者は、本開示の多くのさらなる組み合わせおよび交換が可能であると認識し得る。さらに、「含む」、「有する」、「所有する」などの用語が、詳細な説明、特許請求の範囲、付録、および図面において使用される限り、そのような用語は、「備えている」が特許請求の範囲で移行句として採用される際に解釈されるとき、「備えている」という用語と同様に包含的であるように意図される。多様な実施形態の説明は、例示の目的で提示されてきたが、網羅的であるように、または開示された実施形態に限定されるように意図されない。多くの変更および変形が、説明される実施形態の範囲から逸脱することなく当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実用的な適用、もしくは市場で発見される技術に対する技術的改善を最もよく説明するため、または他の当業者が本明細書に開示される実施形態を理解することを可能にするために、選択された。
【図１】
2021504837.tif 000003
【図２】
2021504837.tif 000004
【図３】
2021504837.tif 000005
【図４】
2021504837.tif 000006
【図５】
2021504837.tif 000007
【図６】
2021504837.tif 000008
【図７】
2021504837.tif 000009
【図８】
2021504837.tif 000010
【図９】
2021504837.tif 000011
【国際調査報告】
2021504837.tif 000012
2021504837.tif 000013