(57)【要約】【課題】  電力消費を許容可能な範囲内に保持するとともにＡＮＮアーキテクチャの訓練速度及び効率を加速する単純なクロスポイントデバイスを提供する。【解決手段】  実施形態は、第１の端子、第２の端子及び活性領域を有する、２端子抵抗型処理ユニット（ＲＰＵ）に向けられる。活性領域は、第１の端子に印加された少なくとも１つの第１のコード化信号及び第２の端子に印加された少なくとも１つの第２のコード化信号に基づく活性領域の伝導状態の非線形変化をもたらす。活性領域は、伝導状態の非線形変化に少なくとも部分的に基づいて訓練方法論のデータストレージ動作を局所的に行うように構成される。活性領域は、伝導状態の非線形変化に少なくとも部分的に基づいて訓練方法論のデータ処理動作を局所的に行うようにさらに構成される。【選択図】      図２１
2019502970.tif 000002
【特許請求の範囲】
【請求項１】
２端子抵抗型処理ユニット（ＲＰＵ）であって
第１の端子と、
第２の端子と、
伝導状態を有する活性領域と
を含み、
前記伝導状態は、前記ＲＰＵに適用された訓練方法論の重みを識別し、
前記活性領域は、前記訓練方法論のデータストレージ動作を局所的に行うように構成され、
前記活性領域は、前記訓練方法論のデータ処理動作を局所的に行うようにさらに構成された、
２端子ＲＰＵ。
【請求項２】
前記データストレージ動作は、前記データ処理動作の結果に少なくとも部分的に基づく前記伝導状態の変化を含む、請求項１に記載の２端子ＲＰＵ。
【請求項３】
前記伝導状態の前記変化は、前記第１の端子に印加された少なくとも１つの第１のコード化信号及び前記第２の端子に印加された少なくとも１つの第２のコード化信号に基づく非線形変化を含む、請求項２に記載の２端子ＲＰＵ。
【請求項４】
前記活性領域は、前記伝導状態の前記非線形変化に少なくとも部分的に基づいて前記訓練方法論の前記データストレージ動作を局所的に行うようにさらに構成され、
前記活性領域は、前記伝導状態の前記非線形変化に少なくとも部分的に基づいて前記訓練方法論の前記データ処理動作を局所的に行うようにさらに構成された、
請求項３に記載の２端子ＲＰＵ。
【請求項５】
前記訓練方法論は、
オンライン・ニューラルネットワーク訓練、
行列反転、及び
行列分解
のうちの少なくとも１つを含む、請求項１に記載の２端子ＲＰＵ。
【請求項６】
２端子抵抗型処理ユニット（ＲＰＵ）であって、
第１の端子と、
第２の端子と、
伝導状態を有する活性領域と
を含み、
前記活性領域は、前記第１の端子に印加された少なくとも１つの第１のコード化信号及び前記第２の端子に印加された少なくとも１つの第２のコード化信号に基づいて前記伝導状態の非線形変化をもたらすように構成され、
前記活性領域は、前記伝導状態の前記非線形変化に少なくとも部分的に基づいて訓練方法論のデータストレージ動作を局所的に行うようにさらに構成され、
前記活性領域は、前記伝導状態の前記非線形変化に少なくとも部分的に基づいて前記訓練方法論のデータ処理動作を局所的に行うようにさらに構成された、
２端子ＲＰＵ。
【請求項７】
前記少なくとも１つの第１のコード化信号及び前記少なくとも１つの第２のコード化信号のコード化は、パルスの確率的シーケンスを含む、請求項６に記載の２端子ＲＰＵ。
【請求項８】
前記少なくとも１つの第１のコード化信号及び前記少なくとも１つの第２のコード化信号のコード化は、大きさ変調を含む、請求項６に記載の２端子ＲＰＵ。
【請求項９】
前記非線形変化は、整流的非線形変化又は飽和的非線形変化を含む、請求項６に記載の２端子ＲＰＵ。
【請求項１０】
前記非線形変化は、指数関数的非線形変化を含む、請求項６に記載の２端子ＲＰＵ。
【請求項１１】
訓練可能なクロスバーアレイであって
伝導性行ワイヤの組と、
前記伝導性行ワイヤの組との間の交差部に複数のクロスポイントを形成するように構成された伝導性列ワイヤの組と、
前記複数のクロスポイントの各々における２端子抵抗型処理ユニット（ＲＰＵ）と、
を含み、
前記ＲＰＵは、前記訓練可能なクロスバーアレイに適用された訓練方法論のデータストレージ動作を局所的に行うように構成され、
前記ＲＰＵは、前記訓練方法論のデータ処理動作を局所的に行うようにさらに構成された、
アレイ。
【請求項１２】
前記２端子ＲＰＵは、第１の端子と、第２の端子と、伝導状態を有する活性領域とを含み、
前記伝導状態は、前記ＲＰＵに適用された前記訓練方法論の重みを識別する、
請求項１１に記載のアレイ。
【請求項１３】
前記データストレージ動作は、前記データ処理動作の結果に少なくとも部分的に基づく前記伝導状態の変化を含み、
前記伝導状態の前記変化は、前記第１の端子に印加された少なくとも１つの第１のコード化信号及び前記第２の端子に印加された少なくとも１つの第２のコード化信号に基づく非線形変化を含む、
請求項１２に記載のアレイ。
【請求項１４】
前記活性領域は、前記伝導状態の前記非線形変化に少なくとも部分的に基づいて前記訓練方法論の前記データストレージ動作を局所的に行うようにさらに構成され、
前記活性領域は、前記伝導状態の前記非線形変化に少なくとも部分的に基づいて前記訓練方法論の前記データ処理動作を局所的に行うようにさらに構成された、
請求項１３に記載のアレイ。
【請求項１５】
前記訓練方法論は、
オンライン・ニューラルネットワーク訓練、
行列反転、及び
行列分解
のうちの少なくとも１つを含む、請求項１１に記載のアレイ。
【請求項１６】
２端子抵抗型処理ユニット（ＲＰＵ）を形成する方法であって、
第１の端子を形成することと、
第２の端子を形成することと、
伝導状態を有する活性領域を形成することと、
前記活性領域を、前記第１の端子に印加された少なくとも１つの第１のコード化信号及び前記第２の端子に印加された少なくとも１つの第２のコード化信号に基づいて前記伝導状態の非線形変化をもたらすように構成することと、
前記活性領域を、前記伝導状態の前記非線形変化に少なくとも部分的に基づいて訓練方法論のデータストレージ動作を局所的に行うように構成することと、
前記活性領域を、前記伝導状態の前記非線形変化に少なくとも部分的に基づいて前記訓練方法論のデータ処理動作を局所的に行うように構成することと、
を含む、方法。
【請求項１７】
前記少なくとも１つの第１のコード化信号及び前記少なくとも１つの第２のコード化信号のコード化は、パルスの確率的シーケンスを含む、請求項１６に記載の方法。
【請求項１８】
前記少なくとも１つの第１のコード化信号及び前記少なくとも１つの第２のコード化信号のコード化は、大きさ変調を含む、請求項１６に記載の方法。
【請求項１９】
前記非線形変化は、整流的非線形変化又は飽和的非線形変化を含む、請求項１７に記載の方法。
【請求項２０】
前記非線形変化は、指数関数的非線形変化を含む、請求項１８に記載の方法。
【請求項２１】
訓練可能なクロスバーアレイを形成する方法であって、
伝導性行ワイヤの組を形成することと、
前記伝導性行ワイヤの組との間の交差部に複数のクロスポイントを形成するように構成された伝導性列ワイヤの組を形成することと、
前記複数のクロスポイントの各々において２端子抵抗型処理ユニット（ＲＰＵ）を形成することと、
前記ＲＰＵを、前記訓練可能なクロスバーアレイに適用された訓練方法論のデータストレージ動作を局所的に行うように構成することと、
前記ＲＰＵを、前記訓練方法論のデータ処理動作を局所的に行うように構成することと、
を含む、方法。
【請求項２２】
前記２端子ＲＰＵを形成することは、第１の端子を形成することと、第２の端子を形成することと、伝導状態を有する活性領域を形成することとを含み、
前記伝導状態は、前記ＲＰＵに適用された前記訓練方法論の重みを識別する、
請求項２１に記載の方法。
【請求項２３】
前記データストレージ動作は、前記データ処理動作の結果に少なくとも部分的に基づく前記伝導状態の変化を含み、
前記伝導状態の前記変化は、前記第１の端子に印加された少なくとも１つの第１のコード化信号及び前記第２の端子に印加された少なくとも１つの第２のコード化信号に基づく非線形変化を含む、
請求項２２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、本明細書では抵抗型処理ユニット（ＲＰＵ）と称する、訓練可能な抵抗型クロスポイントデバイスの新規構成に関する。より詳細には、本開示は、２端子ＲＰＵ以外の付加的な処理要素を必要とせずに局所的データストレージ及び局所的データ処理を提供する２端子ＲＰＵのクロスバーアレイから形成される人工ニューラルネットワーク（ＡＮＮ）に関し、これにより、ＡＮＮがオンライン・ニューラルネットワーク訓練、行列反転、行列分解などのようなアルゴリズムを学習し及び実装する能力が加速される。
【背景技術】
【０００２】
「機械学習」は、データから学習する電子システムの主機能を説明するのに広範に使用されている。機械学習及び認知科学において、ＡＮＮは、動物の特に脳における生物学的ニューラルネットワークに触発された、統計的学習モデルのファミリーである。ＡＮＮを使用して、多数の入力に依存する一般に未知のシステム及び機能を推定し、又は近似することができる。
【０００３】
ＡＮＮは、模擬「ニューロン」としての役割を果たして相互間で電子信号形態の「メッセージ」を交換する相互接続されたプロセッサ要素の、いわゆる「ニューロモーフィック」システムとしてしばしば具体化される。生物学的ニューロン間でメッセージを運ぶシナプス神経伝達物質接続のいわゆる「可塑性」と同様に、模擬ニューロン間で電子メッセージを運ぶ、ＡＮＮにおける接続には、所与の接続の強さ又は弱さに対応する数値重みが与えられる。重みを経験に基づいて調整し及びチューニングして、ＡＮＮを入力に対して適応的なもの及び学習可能なものにすることができる。例えば、手書き文字認識用のＡＮＮは、入力イメージの画素によって活性化され得る入力ニューロンの組によって定められる。ネットワークの設計者によって決定された関数によって重み付けされ変換された後、これら入力ニューロンの活性化は、しばしば「隠れ」ニューロンと称されるその他の下流ニューロンへと渡される。このプロセスは、出力ニューロンが活性化されるまで繰り返される。活性化された出力ニューロンは、どの文字を読み取ったのかを定める。
【０００４】
クロスバーアレイは、クロスポイントアレイ又はクロスワイヤアレイとしても知られ、ＡＮＮアーキテクチャ、ニューロモーフィック・マイクロチップ及び超高密度不揮発性メモリを含む多様な電子回路及びデバイスを形成するために使用される、高密度低コストの回路アーキテクチャである。基本的なクロスバーアレイ構成は、伝導性行ワイヤの組と、この伝導性行ワイヤの組と交差するように形成された伝導性列ワイヤの組とを含む。２つのワイヤの組の間の交差部は、薄膜材料から形成することができる、いわゆるクロスポイントデバイスによって分離される。
【０００５】
クロスポイントデバイスは、事実上、ＡＮＮのニューロン間の重み付き接続として機能する。高いエネルギー効率を有するシナプス可塑性をエミュレートするために、ナノスケールの２端子デバイス、例えば「理想的な」伝導状態のスイッチング特性を有するメモリスタ（ｍｅｍｒｉｓｔｏｒ）が、しばしばクロスポイントデバイスとして使用される。理想的なメモリスタ材料の伝導状態（例えば抵抗）は、行ワイヤ及び列ワイヤの個々のワイヤ間に印加される電圧を制御することによって変更することができる。デジタルデータは、高伝導状態又は低伝導状態を達成する、交差部におけるメモリスタ材料の伝導状態の変更によって格納することができる。メモリスタ材料は、材料の伝導状態を選択的に設定することによって、２以上の相異なる伝導状態を維持するようにプログラムすることもできる。メモリスタ材料の伝導状態は、該材料の両端に電圧を印加し、対象のクロスポイントデバイスを通る電流を測定することによって読み出すことができる。
【０００６】
電力消費を制限するために、ＡＮＮチップアーキテクチャのクロスポイントデバイスは、オフライン学習技術を利用するように設計されることが多く、この場合、目的関数の近似は、ひとたび初期訓練相が解決されると変化しない。オフライン学習は、クロスバー型ＡＮＮアーキテクチャのクロスポイントデバイスを、非常に少ない電力しか消費しないように単純化することを可能にする。
【０００７】
電力消費をより低くする可能性があるにもかかわらず、オフライン学習を実行することは、訓練データに対して入力−出力ペアを適合させるために典型的には訓練中にＡＮＮモデル内の著しい数の調整可能なパラメータ（例えば重み）を修正することを必要とするので、困難かつリソース集約的なものになることがある。従って、電力節約型のオフライン学習技術を優先するためにＡＮＮアーキテクチャのクロスポイントデバイスを単純化することは、典型的には、訓練速度及び訓練効率は最適化されないことを意味する。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Ａｎｉｌ  Ｋ．Ｊａｉｎ、Ｊｉａｎｃｈａｎｇ  Ｍａｏ及びＫ．Ｍ．Ｍｏｈｉｕｄｄｉｎ、「Ａｒｔｉｆｉｃｉａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ：  Ａ  Ｔｕｔｏｒｉａｌ」、ＩＥＥＥ、１９９６年３月
【非特許文献２】Ｃ．Ｌｅｈｍａｎｎ他、「Ａ  Ｇｅｎｅｒｉｃ  Ｓｙｓｔｏｌｉｃ  Ａｒｒａｙ  Ｂｕｉｌｄｉｎｇ  Ｂｌｏｃｋ  Ｆｏｒ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ  ｗｉｔｈ  Ｏｎ−Ｃｈｉｐ  Ｌｅａｒｎｉｎｇ」、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  Ｏｎ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ、１９９３年５月、第４巻、第３号
【非特許文献３】Ｖ．Ｋ．Ｃｈｉｐｐａ他、「ＳｔｏＲＭ：  Ａ  Ｓｔｏｃｈａｓｔｉｃ  Ｒｅｃｏｇｎｉｔｉｏｎ  ａｎｄ  Ｍｉｎｉｎｇ  Ｐｒｏｃｅｓｓｏｒ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２０１４  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  Ｏｎ  Ｌｏｗ  ｐｏｗｅｒ  Ｅｌｅｃｔｒｏｎｉｃｓ  ａｎｄ  Ｄｅｓｉｇｎ
【非特許文献４】Ｃｈｕａ，Ｌ．Ｏ．、「Ｒｅｓｉｓｔａｎｃｅ  Ｓｗｉｔｃｈｉｎｇ  Ｍｅｍｏｒｉｅｓ  ａｒｅ  Ｍｅｍｒｉｓｔｏｒｓ」、Ａｐｐｌｉｅｄ  Ｐｈｙｓｉｃｓ  Ａ（２０１１年）、１０２（４）：７６５−７８３頁
【非特許文献５】Ｄ．Ｓｏｕｄｒｙ他、「Ｍｅｍｒｉｓｔｏｒ−Ｂａｓｅｄ  Ｍｕｌｔｉｌａｙｅｒ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ  Ｗｉｔｈ  Ｏｎｌｉｎｅ  Ｇｒａｄｉｅｎｔ  Ｄｅｓｃｅｎｔ  Ｔｒａｉｎｉｎｇ」ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  Ｏｎ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ  ａｎｄ  Ｌｅａｒｎｉｎｇ  Ｓｙｓｔｅｍｓ（２０１５年）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
電力消費を許容可能な範囲内に保持するとともにＡＮＮアーキテクチャの訓練速度及び効率を加速する単純なクロスポイントデバイスを提供することは、全体としてのＡＮＮ性能を改善し、より広範囲のＡＮＮ用途を可能にするであろう。
【課題を解決するための手段】
【００１０】
実施形態は、第１の端子、第２の端子及び活性領域を有する２端子抵抗型処理ユニット（ＲＰＵ）に向けられる。活性領域は、ＲＰＵに適用される訓練方法論の重みを識別する伝導状態を有する。活性領域は、訓練方法論のデータストレージ動作を局所的に行うように構成され、かつ、活性領域は、訓練方法論のデータ処理動作を局所的に行うようにさらに構成される。
【００１１】
１つ又は複数の上記実施形態において、データストレージ動作は、データ処理動作の結果に少なくとも部分的に基づく伝導状態の変化を含む。
【００１２】
１つ又は複数の上記実施形態において、伝導状態の変化は、第１の端子に印加された少なくとも１つの第１のコード化信号及び第２の端子に印加された少なくとも１つの第２のコード化信号に基づく非線形変化を含む。
【００１３】
１つ又は複数の上記実施形態において、活性領域は、伝導状態の非線形変化に少なくとも部分的に基づいて訓練方法論のデータストレージ動作を局所的に行うようにさらに構成される。活性領域は、伝導状態の非線形変化に少なくとも部分的に基づいて訓練方法論の前記データ処理動作を局所的に行うようにさらに構成することができる。
【００１４】
１つ又は複数の上記実施形態において、訓練方法論は、オンライン・ニューラルネットワーク訓練、行列反転又は行列分解とすることができる。
【００１５】
実施形態は、第１の端子、第２の端子及び活性領域を有する２端子ＲＰＵにさらに向けられる。活性領域は、第１の端子に印加された少なくとも１つの第１のコード化信号及び第２の端子に印加された少なくとも１つの第２のコード化信号に基づいて活性領域の伝導状態の非線形変化をもたらす。活性領域は、伝導状態の非線形変化に少なくとも部分的に基づいて訓練方法論のデータストレージ動作を局所的に行うように構成される。活性領域は、伝導状態の非線形変化に少なくとも部分的に基づいて訓練方法論のデータ処理動作を局所的に行うようにさらに構成される。
【００１６】
１つ又は複数の上記実施形態において、少なくとも１つの第１のコード化信号及び少なくとも１つの第２のコード化信号のコード化は、パルスの確率的シーケンス又は大きさ（ｍａｇｎｉｔｕｄｅ）変調を含む。
【００１７】
１つ又は複数の上記実施形態において、非線形変化は、整流的非線形変化、飽和的非線形変化又は指数関数的非線形変化を含む。
【００１８】
実施形態は、伝導性行ワイヤの組と、伝導性行ワイヤの組との間の交差部に複数のクロスポイントを形成するように構成された伝導性列ワイヤの組と、を有する訓練可能なクロスバーアレイにさらに向けられる。アレイは、複数のクロスポイントの各々における２端子抵抗型処理ユニット（ＲＰＵ）を含む。ＲＰＵは、データストレージ動作を局所的に行うように、及びデータ処理動作を局所的に行うように構成され、局所的データストレージ動作及び局所的データ処理動作は両方とも、訓練可能なクロスバーアレイに適用される訓練方法論の一部である。
【００１９】
１つ又は複数の上記実施形態において、２端子ＲＰＵは、第１の端子と、第２の端子と、伝導状態を有する活性領域とを含み、伝導状態は、ＲＰＵに適用された訓練方法論の重みを識別する。
【００２０】
１つ又は複数の上記実施形態において、データストレージ動作は、データ処理動作の結果に少なくとも部分的に基づく伝導状態の変化を含む。伝導状態の変化は、第１の端子に印加された少なくとも１つの第１のコード化信号及び第２の端子に印加された少なくとも１つの第２のコード化信号に基づく非線形変化を含む。
【００２１】
１つ又は複数の上記実施形態において、活性領域は、伝導状態の非線形変化に少なくとも部分的に基づいて訓練方法論のデータストレージ動作を局所的に行う。活性領域は、さらに、伝導状態の非線形変化に少なくとも部分的に基づいて訓練方法論のデータ処理動作を局所的に行う。訓練方法論は、オンライン・ニューラルネットワーク訓練、行列反転及び行列分解を含む。
【００２２】
実施形態は、２端子ＲＰＵを形成する方法にさらに向けられる。方法は、第１の端子を形成することと、第２の端子を形成することと、伝導状態を有する活性領域を形成することとを含む。方法は、活性領域を、第１の端子に印加された少なくとも１つの第１のコード化信号及び第２の端子に印加された少なくとも１つの第２のコード化信号に基づいて伝導状態の非線形変化をもたらすように構成することをさらに含む。方法は、活性領域を、伝導状態の非線形変化に少なくとも部分的に基づいて訓練方法論のデータストレージ動作を局所的に行うように構成することをさらに含む。方法は、活性領域を、伝導状態の非線形変化に少なくとも部分的に基づいて訓練方法論のデータ処理動作を局所的に行うように構成することをさらに含む。
【００２３】
上記方法の１つ又は複数の実施形態において、少なくとも１つの第１のコード化信号及び少なくとも１つの第２のコード化信号のコード化は、パルスの確率的シーケンス又は大きさ変調を含む。
【００２４】
上記方法の１つ又は複数の実施形態において、非線形変化は、整流的非線形変化、飽和的非線形変化又は指数関数的非線形変化を含む。
【００２５】
実施形態は、訓練可能なクロスバーアレイを形成する方法にさらに向けられる。方法は、伝導性行ワイヤの組を形成することと、伝導性行ワイヤの組との間の交差部に複数のクロスポイントを形成するように構成された伝導性列ワイヤの組を形成することと、を含む。方法は、複数のクロスポイントの各々において２端子ＲＰＵを形成することをさらに含む。方法は、ＲＰＵを、訓練可能なクロスバーアレイに適用された訓練方法論のデータストレージ動作を局所的に行うように構成することと、ＲＰＵを、訓練方法論のデータ処理動作を局所的に行うように構成することと、をさらに含む。
【００２６】
上記方法の１つ又は複数の実施形態において、２端子ＲＰＵを形成することは、第１の端子を形成することと、第２の端子を形成することと、伝導状態を有する活性領域を形成することとを含み、伝導状態は、ＲＰＵに適用された訓練方法論の重みを識別する。
【００２７】
上記方法の１つ又は複数の実施形態において、データストレージ動作は、データ処理動作の結果に少なくとも部分的に基づく伝導状態の変化を含み、伝導状態の変化は、第１の端子に印加された少なくとも１つの第１のコード化信号及び第２の端子に印加された少なくとも１つの第２のコード化信号に基づく非線形変化を含む。
【００２８】
上記方法の１つ又は複数の実施形態において、方法は、活性領域を、伝導状態の非線形変化に少なくとも部分的に基づいて訓練方法論のデータストレージ動作を局所的に行うように構成することをさらに含む。方法は、活性領域を、伝導状態の非線形変化に少なくとも部分的に基づいて訓練方法論のデータ処理動作を局所的に行うように構成することをさらに含む。
【００２９】
上記方法の１つ又は複数の実施形態において、訓練方法論は、オンライン・ニューラルネットワーク訓練、行列反転又は行列分解を含む。
【００３０】
さらなる特徴及び利点は、本明細書で説明する技術を通じて実現される。その他の実施形態および態様は、本明細書において詳細に説明される。より良く理解するために、説明及び図面を参照されたい。
【００３１】
実施形態とみなされる主題は、特許請求の範囲及び本明細書の結論部において具体的に指摘され、明確に特許請求される。実施形態の上記及びその他の特徴及び利点は、添付の図面との関連で解釈される以下の詳細な説明から明らかである。
【図面の簡単な説明】
【００３２】
【図１】生物学的ニューロンの入力及び出力接続の略図を示す。
【図２】図１に示す生物学的ニューロンの公知の簡易モデルを示す。
【図３】図２の生物学的ニューロンモデルを取り入れたＡＮＮの公知の簡易モデルを示す。
【図４】公知の重み更新方法論の略ブロック図を示す。
【図５】１つ又は複数の実施形態において使用可能な確率的計算方法論の略ブロック図を示す。
【図６】受動的２端子メモリスタの動作を支配する公知の式を示す。
【図７】公知の２端子メモリスタの線形スイッチング特性と本開示の２端子ＲＰＵの非線形特性との間の図式的比較を示す。
【図８】本開示による２端子非線形ＲＰＵデバイスのクロスバーアレイを、ＲＰＵの動作を例証する電圧シーケンスと共に示す。
【図９】１つ又は複数の実施形態による確率的重み更新方法論の略ブロック図を示す。
【図１０】本開示の確率的重み更新方法論の異なるビット長（ＢＬ）に対して達成することができる異なる重み更新精度を使用してＭＮＩＳＴデータセット上で訓練されたＡＮＮの分類精度を例証するグラフを示す。
【図１１】（Ａ）〜（Ｄ）は、１つ又は複数の実施形態による２端子非線形ＲＰＵを使用して確率的重み更新を実装するためのさらなる詳細を例証する略図及びグラフを示す。
【図１２】（Ａ）〜（Ｂ）は、１つ又は複数の実施形態による正及び負の確率的重み更新サイクルを例証する電圧シーケンスを示す。
【図１３】１つ又は複数の実施形態による２端子非線形ＲＰＵを使用した確率的重み更新の実装についてのさらなる詳細を例証する略図及びグラフを示す。
【図１４】（Ａ）〜（Ｂ）は、公知の２端子メモリスタの線形スイッチング特性と、本開示の２端子ＲＰＵの非線形スイッチング特性との間の図式的比較を示す。
【図１５】１つ又は複数の実施形態による指数関数的非線形性を有する２端子ＲＰＵを使用した高さ変調重み更新方法論を例証するグラフ、図及び式を示す。
【図１６】１つ又は複数の実施形態による２端子非線形ＲＰＵを使用した高さ変調重み更新方法論をさらに例証するグラフ及び式を示す。
【図１７】本開示の２端子非線形ＲＰＵのクロスバーアレイを含むＡＮＮアーキテクチャの開発、訓練及び使用の態様を示す。
【図１８】本開示の２端子非線形ＲＰＵのクロスバーアレイを含むＡＮＮアーキテクチャの開発、訓練及び使用のさらなる態様を示す。
【図１９】本開示の２端子非線形ＲＰＵのクロスバーアレイを含むＡＮＮアーキテクチャの開発、訓練及び使用のさらなる態様を示す。
【図２０】１つ又は複数の実施形態によるノード制御システムのブロック図を示す。
【図２１】本開示の１つ又は複数の実施形態による方法論を例証するフロー図を示す。
【図２２】本開示の１つ又は複数の実施形態による別の方法論を例証するフロー図を示す。
【発明を実施するための形態】
【００３３】
１つ又は複数の実施形態は、特に脳の構造及び機能をモデル化することに重点を置いた生物学的ニューラルネットワークの文脈で開示されるが、本明細書で記述する教示の実施は特定の環境のモデル化に限定されないことがあらかじめ理解される。むしろ本開示の実施形態は、環境に対する様々な入力をベクトルに変えることができる限り、例えば気象パターン、インターネットから収集される任意のデータなどを含む、あらゆるタイプの環境をモデル化することが可能である。
【００３４】
本開示は、電子システムに向けられたものであるが、参照及び説明を容易にするために、本開示の電子システムの種々の態様を、例えばニューロン、可塑性及びシナプス等の神経学的用語を使用して説明する。本明細書における電子システムのあらゆる議論又は例証について、神経学的用語又は神経学的略記法の使用は参照を容易にするためのものであり、記述した神経学的機能又は神経学的構成要素のニューロモーフィックなＡＮＮ等価物に及ぶことを意味することが理解されるであろう。
【００３５】
ＡＮＮは、ニューロモーフィック又はシナプトロニック・システムとしても知られており、例えば、生物学的神経システム、画像認識、音声認識などのようなヒトの脳及び脳様の機能を含むその他の機能又はシステムを推定又は近似することができる、計算システムである。ＡＮＮは、神経生理学、認知科学／心理学、物理学（統計力学）、制御理論、コンピュータ科学、人工知能、統計学／数学、パターン認識、計算機視覚、並列処理及びハードウェア（例えば、デジタル／アナログ／ＶＬＳＩ／光学）を含む多様な分野からの知識を取り入れている。
【００３６】
０及び１を操作する伝統的なデジタルモデルを利用する代わりに、ＡＮＮは、推定又は近似されるコアシステム機能の実質的な機能的等価物である処理要素間に接続を生成する。例えば、ＩＢＭ（ＩＢＭ社の登録商標）のＳｙＮａｐｓｅコンピュータチップは、哺乳類の脳に類似した形態、機能及びアーキテクチャを提供することを企図した電子的ニューロモーフィックマシンの中心的コンポーネントである。ＩＢＭ（ＩＢＭ社の登録商標）  ＳｙＮａｐｓｅコンピュータチップは、従来のコンピュータチップと同じ基本トランジスタコンポーネントを使用しているが、そのトランジスタは、ニューロン及びそのシナプス接続の挙動を模倣するように構成されている。ＩＢＭ（ＩＢＭ社の登録商標）  ＳｙＮａｐｓｅコンピュータチップは、生物学的ニューロン間のシナプス通信と類似した電気スパイクを用いて互いに通信する、百万個を超えるほどの模擬「ニューロン」のネットワークを使用して情報を処理する。ＩＢＭ（ＩＢＭ社の登録商標）  ＳｙＮａｐｓｅアーキテクチャは、メモリ（すなわち模擬「シナプス」）を読み出して単純な動作を行う、プロセッサ（すなわち模擬「ニューロン」）の構成を含む。典型的には異なるコア内に位置するこれらのプロセッサ間の通信は、オンチップ・ネットワークルータによって行われる。
【００３７】
背景として、典型的なＡＮＮがどのように動作するかの一般的な説明を、ここで図１、図２及び図３を参照して提供する。本明細書で前述したように、典型的なＡＮＮは、約１０００億もの相互接続されたニューロンと呼ばれる細胞を含むヒトの脳をモデル化する。図１は、上流の入力１１２、１１４、下流の出力１１６及び下流の「他の」ニューロン１１８に接続する経路１０４、１０６、１０８、１１０を有する、生物学的ニューロン１０２の略図を示す。各生物学的ニューロン１０２は、経路１０４、１０６、１０８、１１０を通して電気インパルスを送り及び受け取る。これらの電気インパルスの性質及びそれらが生物学的ニューロン１０２内でどのように処理されるかということが、主として脳全体の機能を担う。生物学的ニューロン間の経路接続は、強い場合もあり又は弱い場合もある。所与のニューロンが入力インパルスを受け取ると、そのニューロンは、ニューロンの機能に従って入力を処理し、その機能の結果を下流の出力及び／又は下流の「他の」ニューロンへ送る。
【００３８】
生物学的ニューロン１０２は、図２において、図２に示す式で表される数学的関数ｆ（ｘ）を有するノード２０２としてモデル化される。ノード２０２は、入力２１２、２１４から電気信号を取得し、各入力２１２、２１４に対してそのそれぞれの接続経路２０４、２０６の強さを乗算し、入力の和を取り、その和を関数ｆ（ｘ）に代入して結果２１６を生成し、これは、最終出力、若しくは別のノードへの入力、又はその両方とすることができる。本開示において、アスタリスク（＊）は、乗算を表すために使用される。弱い入力信号には非常に小さい接続強さ数が乗算されるので、弱い入力信号が関数に与える影響は非常に低い。同様に、強い入力信号にはより高い接続強さ数が乗算されるので、強い入力信号が関数に与える影響はより大きくなる。関数ｆ（ｘ）は、設計上の選択であり、様々な関数を使用することができる。ｆ（ｘ）についての典型的な設計上の選択は双曲線正接関数であり、これは、前の和をとり、−１と＋１との間の数を出力する関数である。
【００３９】
図３は、重み付き有向グラフとして編成された単純化ＡＮＮモデル３００を示し、ここで人工ニューロンはノード（例えば３０２、３０８、３１６）であり、重み付き有向エッジ（例えば、ｍ１からｍ２０まで）がノードを接続する。ＡＮＮモデル３００は、ノード３０２、３０４、３０６が入力層ノードであり、ノード３０８、３１０、３１２、３１４が隠れ層ノードであり、ノード３１６、３１８が出力層ノードとなるように編成されている。各ノードは、隣接する層のあらゆるノードに接続経路によって接続され、この接続経路は図３において接続強さｍ１からｍ２０までを有する有向矢印として描かれている。１つの入力層、１つの隠れ層及び１つの出力層のみが示されているが、実際には、複数の入力層、隠れ層及び出力層を設けることができる。
【００４０】
ヒトの脳の機能と同様に、ＡＮＮ３００の各入力層ノード３０２、３０４、３０６は、入力ｘ１、ｘ２、ｘ３をソース（図示せず）から直接、接続強さの調整及びノード加算を伴わずに受け取る。従って、図３の下部に挙げた式で示されるように、ｙ１＝ｆ（ｘ１）、ｙ２＝ｆ（ｘ２）及びｙ３＝ｆ（ｘ３）である。各隠れ層ノード３０８、３１０、３１２、３１４は、その入力を、すべての入力層ノード３０２、３０４、３０６から、該当する接続経路に関連付けられた接続強さに従って受け取る。それゆえ、隠れ層ノード３０８において、ｙ４＝ｆ（ｍ１＊ｙ１＋ｍ５＊ｙ２＋ｍ９＊ｙ３）であり、ここで＊は乗算を表す。図３の下部に示した関数ｙ５からｙ９までを定義する式によって示すように、隠れ層ノード３１０、３１２、３１４及び出力層ノード３１６、３１８について、同様の接続強さ乗算及びノード加算が行われる。
【００４１】
ＡＮＮモデル３００は、データレコードを一度に１つずつ処理するものであり、初期の任意のレコード分類を既知の実際のレコード分類と比較することによって「学習」する。「バックプロパゲーション（誤差逆伝播法）」（すなわち「後方への誤差伝播」）として知られる訓練方法論を使用して、第１のレコードの初期分類に由来する誤りをネットワークへフィードバックし、これを使用して２回目にネットワークの重み付き接続を修正し、このフィードバックプロセスを多数回の反復にわたって続ける。ＡＮＮの訓練相においては、各レコードについての正しい分類は既知であり、したがって出力ノードに「正しい」値を割り当てることができる。例えば、正しいクラスに対応するノードに対してノード値「１」（又は０．９）、その他のノードに対してノード値「０」（又は０．１）とする。それゆえ、その出力ノードに対してネットワークが計算した値をこれらの「正しい」値と比較して、各ノードについて誤差項を計算することが可能である（すなわち「デルタ」則）。次にこれらの誤差項を使用して隠れ層における重みを調整して、次回の反復において出力値が「正しい」値により近づくようにする。
【００４２】
多くのタイプのニューラルネットワークが存在するが、２つの最大カテゴリはフィードフォワード型（順伝播型）及びフィードバック型（逆伝播型）／リカレント型（回帰型）ネットワークである。ＡＮＮモデル３００は、入力層、出力層及び隠れ層を有する非リカレント型のフィードフォワード型ネットワークである。信号は一方向のみに移動することができる。入力データは、計算を行う処理要素の層へ渡される。各処理要素は、その入力の重み付き和に基づいてその計算を行う。新たに計算された値が、次いで次層へ送られる新たな入力値になる。このプロセスは、すべての層を通過し終えて出力が決定されるまで続く。出力層内のニューロンの出力を定量するために、時には閾値伝達関数が使用される。
【００４３】
フィードバック型／リカレント型ネットワークはフィードバック経路を含むものであり、これは信号がループを使用して両方向に移動できることを意味する。ノード間のすべての可能な接続が許容される。このタイプのネットワーク内にはループが存在するので、特定の動作の下で、これは、平衡状態に達するまで連続的に変化する非線形動的システムとなり得る。フィードバック型ネットワークは、連合記憶及び最適化問題においてしばしば使用され、このときネットワークは、相互接続した因子の最良配置を探し求める。
【００４４】
フィードフォワード型及びリカレント型のＡＮＮアーキテクチャにおける機械学習の速度及び効率は、ＡＮＮクロスバーアレイのクロスポイントデバイスが、典型的な機械学習アルゴリズムのコア動作をどれほど効率的に行うかに依存する。機械学習の正確な定義を公式化することは難しいが、ＡＮＮ文脈における学習プロセスは、クロスポイントデバイスの接続重みを、ネットワークが特定のタスクを効率的に行うことができるように更新する問題として捉えることができる。クロスポイントデバイスは、典型的には、利用可能な訓練パターンから必要な接続重みを学習する。性能は、ネットワーク内の重みを反復的に更新することによって経時的に向上する。専門家によって指定された規則の組に従う代わりに、ＡＮＮは、根底にある（入力−出力関係の様な）規則を所与の代表例の集まりから「学習」する。従って、学習アルゴリズムは、一般に、学習規則を使用して該当する重みを更新する及び／又は調整する手順として定義することができる。
【００４５】
３つの主要な学習アルゴリズムのパラダイムは、教師付き（ｓｕｐｅｒｖｉｓｅｄ）、教師なし（ｕｎｓｕｐｅｒｖｉｓｅｄ）及びハイブリッドである。教師付き学習、すなわち「教師（ｔｅａｃｈｅｒ）」を伴う学習において、ネットワークには、すべての入力パターンに対して正解（出力）が与えられる。重みは、ネットワークが既知の正解にできる限り近い解答を生成することを可能にするように決定される。強化学習は、教師付き学習の変形であり、ネットワークには、正解そのものではなく、ネットワーク出力の正しさに対する批評のみが与えられる。対照的に、教師なし学習、すなわち教師を伴わない学習は、訓練データセット内の各入力パターンに関連付けられた正解を必要としない。これは、データにおける根底にある構造、又はデータにおけるパターン間の相関を探求し、これらの相関からパターンをカテゴリに編成する。ハイブリッド学習は、教師付き学習と教師なし学習とを組み合わせたものである。重みの一部は、一般に教師付き学習を通じて決定され、その他は、教師なし学習を通じて得られる。ＡＮＮ及び学習規則のさらなる詳細は、非特許文献１に記載されている。
【００４６】
本明細書において前述したように、電力消費を制限するために、ＡＮＮチップアーキテクチャのクロスポイントデバイスは、オフライン学習技術を利用するように設計されることが多く、この場合、目的関数の近似は、ひとたび初期訓練相が解決されると変化しない。オフライン学習は、クロスバー型ＡＮＮアーキテクチャのクロスポイントデバイスを、非常に少ない電力しか消費しないように単純化することを可能にする。
【００４７】
電力消費をより低くする可能性があるにもかかわらず、オフライン学習を実行することは、訓練データに対して入力−出力ペアを適合させるために典型的には訓練中にＡＮＮモデル内の著しい数の調整可能なパラメータ（例えば重み）を修正することを必要とするので、困難かつリソース集約的なものとなることがある。図４は、典型的な読出し−処理−書込みの重み更新動作の略図を示したものであり、ＣＰＵ／ＧＰＵコア（すなわち模擬「ニューロン」）は、メモリ（すなわち模擬「シナプス」）を読み出し、重み更新処理動作を行い、次いで更新された重みを再びメモリに書き込む。従って、電力節約型のオフライン学習技術を優先するためにＡＮＮアーキテクチャのクロスポイントデバイスを単純化することは、典型的には、訓練速度及び訓練効率は最適化されないことを意味する。
【００４８】
電力消費を許容可能な範囲内に保持するとともにＡＮＮアーキテクチャの訓練速度及び効率を加速する単純なクロスポイントデバイスを提供することは、全体としてのＡＮＮ性能を改善し、より広範囲のＡＮＮ用途を可能にするであろう。
【００４９】
ここで本開示の概要に目を向けると、１つ又は複数の実施形態は、本明細書において抵抗型処理ユニット（ＲＰＵ）と称される２端子のプログラム可能な抵抗型クロスポイントコンポーネントに向けられ、これは局所的データストレージ機能及び局所的データ処理機能を提供する。換言すれば、データ処理を行うとき、各ＲＰＵに格納された値は、並列的かつ局所的に更新され、そのことにより、該当データをプロセッサ及び別個のストレージ要素から出し入れして移動させる必要性が解消される。加えて、本開示の２端子ＲＰＵによって提供される局所的データストレージ及び局所的データ処理は、ＡＮＮが、バックプロパゲーション型オンライン・ニューラルネットワーク訓練、行列反転、行列分解などのようなアルゴリズムを学習し及び実装する能力を加速する。従って、本開示のＲＰＵを有する機械学習ＡＮＮアーキテクチャを実装することは、学習の速度、効率及び電力消費を最適化するオンライン機械学習能力の実装を可能にする。本開示のＲＰＵ、及び結果として得られるＡＮＮアーキテクチャは、全体としてのＡＮＮ性能を改善し、より広範囲の実用的なＡＮＮ用途を可能にする。
【００５０】
本開示のＲＰＵは、２端子抵抗型クロスポイントデバイスとして実装することができ、それらのスイッチング特性は、データを処理するために使用することができる非線形性を有する。それゆえ、本開示のＲＰＵは、ＡＮＮにおいて計算を行うために使用することができる適切な非線形特性を有する、任意の２端子デバイスによって実装することができる。例えば、本開示のＲＰＵデバイスは、抵抗変化型ランダムアクセスメモリ（ＲＲＡＭ）、相変化メモリ（ＰＣＭ）、プログラム可能金属化セル（ＰＭＣ）メモリ、非線形メモリスタ・システム、又はその他の非線形抵抗型スイッチング特性を有する任意の２端子デバイスで実装することができる。
【００５１】
本開示のＲＰＵのより詳細な説明に先立って、本開示に関連する、シストリックアレイ、確率的計算並びに線形及び非線形メモリスタ・デバイスの概要をここで提供する。シストリックアレイは、特定の大いに用いられているアルゴリズムの学習を加速することを企図した並列処理要素（ＰＥ）で構成される。シストリックアレイは、しばしば「積和（ｍｕｌｔｉｐｌｙ  ａｎｄ  ａｃｃｕｍｕｌａｔｅ）」等の特定の演算用にハードワイヤードされており、積分、たたみこみ、相関、行列乗算又はデータ格納のタスクを大規模に並列に行う。非特許文献２において、シストリックアレイをオンライン学習ニューラルネットワーク用の構成ブロックとして使用することが提唱されており、ここでシストリックアレイ内の各ＰＥは、単一の重み値を格納するための局所ストレージを有し、行列乗算及び重み更新のために必要な計算を行うことが可能である。非特許文献２に記載のＰＥの超大規模集積（ＶＬＳＩ）実装は、ＰＥ当たりおよそ１８００個のトランジスタを要し、これは電力消費を増大させ、スケーラビリティを低減する。したがって、ＰＥ当たりに必要とされるトランジスタができるだけ少ないＰＥを提供することが望ましい。
【００５２】
確率的計算は、ランダムビットのストリームによって連続的な値を表す技術の集まりであり、複雑な計算をストリーム上の単純なビット単位の演算で行うことができる。詳細には、確率的数（ｓｔｏｃｈａｓｔｉｃ  ｎｕｍｂｅｒ）と呼ばれる２つのランダムかつ独立したビットストリームＳ１、Ｓ２が存在するとして（すなわちベルヌーイ過程）、ここで第１のストリームにおける「１」の確率をｐ、第２のストリームにおける「１」の確率をｑとすると、２つのストリームの論理ＡＮＤを図５に示すように得ることができる。出力ストリームにおける「１」の確率は、ｐｑである。十分な出力ビットを観測し、「１」の頻度を測定することによって、ｐｑを任意の精度まで推定することが可能である。少ない論理ゲート／トランジスタで実装することができるこれらのいわゆる「積和」演算の設計の単純さゆえに、確率的計算は、しばしばニューラルネットワーク用のハードウェア設計において使用される。非特許文献３は、ニューラルネットワーク訓練アルゴリズムのためのハードウェアアクセラレータとして使用することができる２次元（２Ｄ）シストリックアレイに対する確率的計算の適用を示す。
【００５３】
しかしながら、非特許文献３においては、計算に必要な重みは、外部位置からシストリックアレイに供給され、重みに対する更新はアレイによって行われるわけではない。非特許文献３は、ニューラルネットワーク訓練中に大量に使用されるベクトル−行列乗算又は行列−行列乗算演算の加速のみを扱うものである。しかしながら、局所ストレージを伴わないシストリックアレイでは、重みは外部メモリ位置に格納されているので、重み更新を並列に行うことはできない。全体としての学習アルゴリズムを加速するためには、非特許文献３には開示されていない重み更新の加速が必要である。
【００５４】
「メモリスタ」という用語は、デバイスの抵抗値がそのデバイスに以前に印加された電圧の履歴に依存する受動的２端子電気コンポーネントを記述するために使用される。メモリスタの動作は、図６に示す式［１］及び式［２］によって支配され、式中、ｉはデバイスを通る電流、ｖはデバイスに印加された電圧、ｇはデバイスのコンダクタンス値（抵抗の逆数）、ｓはコンダクタンス値を制御するデバイスの内部状態変数、ｆは内部状態変数ｓの時間発展を示す関数である。非特許文献４において、メモリスタ機能が、抵抗変化型ランダムアクセスメモリ（ＲＲＡＭ）、相変化メモリ（ＰＣＭ）及び導電性ブリッジランダムアクセスメモリ（ＣＢＲＡＭ）等の抵抗型メモリデバイスの動作に対して提案されている。メモリスタ・デバイスは、その履歴を記憶する（すなわち、いわゆる「不揮発性」）ので、非特許文献４は、このようなデバイスを不揮発性メモリ技術の可能な代替として提案している。
【００５５】
非特許文献５は、バックプロパゲーション型ニューラルネットワーク訓練ハードウェアに対するメモリスタの使用を提案している。しかしながら、非特許文献５は、デバイスに印加された電圧に対して抵抗の変化が線形である、理想的なメモリスタ動作を仮定している。非特許文献５の設計は、図６の式［２］における関数ｆ（ｓ，ｖ）が関係ｆ（ｓ，ｖ）＝ｖで与えられる単順な関数であると仮定したものである。非特許文献５は、上述のような２Ｄシストリックアレイに類似したアーキテクチャを提案しており、各クロスポイントは、理想的メモリスタ及び一対のトランジスタで実装されている。非特許文献５において、メモリスタは、事実上、重み値を格納するのに使用され、一対のトランジスタは、重み更新のために必要な局所的乗算演算を計算するのに使用され、重み更新の結果がメモリスタの伝導状態を修正する。非特許文献５は、事実上、メモリスタ及び２つのトランジスタで構成された４端子デバイスを開示し、これはニューラルネットワーク・ハードウェアのバックプロパゲーション型訓練を実装するために４端子デバイスの２Ｄアレイを作製するのに使用される。
【００５６】
ここで本開示のより詳細な説明に目を向けると、１つ又は複数の実施形態は、２端子ＲＰＵに向けられ、これは、トランジスタ並びにオフチップ・ストレージ及び／又は処理コンポーネント等の余分な回路要素を必要とすることなく、局所的データストレージ機能及び局所的データ処理機能を提供する。本開示のＲＰＵは、ＲＲＡＭ、ＰＣＭ、ＣＢＲＡＭ、非線形メモリスタ・システムなどを含むがこれらに限定されない、非線形スイッチング特性を有する任意のデバイスとして実装することができる。
【００５７】
本開示のＲＰＵデバイスをメモリスタ・システムとして実装するとき、メモリスタは、非線形スイッチング特性を有する非理想的なものであることが重要である。理想的メモリスタにおいては、抵抗の変化は、理想的メモリスタ・デバイスに印加された電圧に対して線形に比例する。従って、理想的メモリスタ・デバイスは、なんらかの電圧を経験した途端に、その抵抗状態が変化する。しかしながら、非理想的な非線形メモリスタ・システムとして実装された本開示のＲＰＵの場合、明確な「セット」電圧ＶＳＥＴ（これはデバイスの特性である）が存在し、メモリスタＲＰＵデバイスは、その内部抵抗状態を変化させるためには電圧Ｖ＞ＶＳＥＴを経験することを必要とする。このようなデバイスの場合、電圧Ｖ＝０．５ＶＳＥＴのハーフバイアス印加は、内部抵抗状態になんら変化を生じさせない。
【００５８】
理想的メモリスタと、本開示のＲＰＵを実装するのに使用することができる非理想的な非線形メモリスタとの間の差異をさらに例証するために、図７は、理想的メモリスタと本開示によるＲＰＵとの間での電圧スイッチング挙動比較を示すグラフである。縦軸は特定の電圧におけるデバイス状態変化を表し、横軸は印加された電圧を表す。理想的メモリスタ動作においては、抵抗の変化は、デバイスに印加された電圧に線形に比例する。それゆえ、メモリスタが電圧に遭遇した途端に、その抵抗状態が変化する。このことは曲線７０２によって示され、これは、低電圧であっても状態の変化が劇的であることを示す。
【００５９】
曲線７０４によって示されるような非線形ＲＰＵデバイスの場合、デバイスがその内部抵抗状態を変化させるために経験する必要がある明確なセット電圧ＶＳＥＴが存在する。０．５ＶＳＥＴのバイアス電圧は、内部抵抗状態を変化させない。本開示においては、このＲＰＵデバイスの非線形特性を活用して、局所的に乗算を行う。ｆ１が小さいと仮定すると、デバイスは、０．５ＶＳＥＴが印加されだけではその内部状態を変化させない。特に、図７は、正電圧と、ＲＰＵデバイスの抵抗状態に対する正の変化とを例証するが、負電圧と負の抵抗変化との間にも同様の関係が存在する。
【００６０】
図８は、本開示による、順方向行列乗算、逆方向行列乗算及び重み更新を行う２次元（２Ｄ）クロスバーアレイ８００の図である。クロスバーアレイ８００は、伝導性行ワイヤ８０２、８０４、８０６の組と、伝導性行ワイヤ８０２、８０４、８０６の組と交差する伝導性列ワイヤ８０８、８１０、８１２、８１４の組とから形成される。行ワイヤの組と列ワイヤの組との間の交差部は、ＲＰＵによって分離され、それらは図８において、各自がそれぞれσ１１、σ２１、σ３１、σ４１、σ１２、σ２２、σ３２、σ４２、σ１３、σ２３、σ３３及びσ４３で表されるそれ自体の調整可能／更新可能な抵抗重みを有する抵抗要素として示される。図示を簡単にするために、図８においては１つのＲＰＵ８２０にのみ符号を付した。順方向行列乗算において、ＲＰＵの伝導状態（すなわち格納された重み）は、ＲＰＵの両端間に電圧を印加し、ＲＰＵを通る電流を測定することによって読み出すことができる。
【００６１】
入力電圧Ｖ１、Ｖ２、Ｖ３がそれぞれ行ワイヤ８０２、８０４、８０６に印加される。各列ワイヤ８０８、８１０、８１２、８１４は、特定の列ワイヤに沿って各ＲＰＵによって生成された電流Ｉ１、Ｉ２、Ｉ３、Ｉ４を合計する。例えば、図８に示すように、列ワイヤ８１４によって生成された電流Ｉ４は、式Ｉ４＝Ｖ１σ４１＋Ｖ２σ４２＋Ｖ３σ４３に従う。それゆえ、アレイ８００は、ＲＰＵに格納された値に、電圧Ｖ１、Ｖ２、Ｖ３で定められる行ワイヤ入力を乗ずることによって、順方向行列乗算を計算する。逆方向行列乗算は、全く同様である。逆方向行列乗算においては、電圧は列ワイヤ８０８、８１０、８１２、８１４に印加され、行ワイヤ８０２、８０４、８０６から読み出される。より詳細に後述する重み更新の場合、電圧は列ワイヤ及び行ワイヤに同時に印加され、該当するＲＰＵデバイスに格納されたコンダクタンス値がすべて並列に更新される。従って、重み更新を行うために必要な積和演算は、ＲＰＵデバイス自体に加えて、アレイ８００の該当する行又は列ワイヤを使用して、アレイ８００の各ＲＰＵ８２０において局所的に行われる。それゆえ、本開示によれば、アレイ８００において読出し−更新−書込みサイクル（図４に示す）は必要とされない。
【００６２】
引き続き図８の図を用いて、１つ又は複数の実施形態により、ここで、正の重み更新方法論の動作を、ＲＰＵ８２０及び伝導性行ワイヤ８０６と伝導性列ワイヤ８１４との交差部におけるその対応する重みσ４３について提供する。ＲＰＵ８２０の非線形特性を用いて、後述のように確率的計算を使用してＲＰＵ８２０において局所的に乗算演算を行う。より詳細には、本開示の方法論は、ＲＰＵ８２０の非線形スイッチング特性及び確率的ビットストリーム８３０、８３２を使用して、他の回路要素を必要とすることなく、乗算演算及び必要な重み更新をＲＰＵ８２０において局所的に行う。更新発生器回路（図示せず）がクロスバーアレイ８００の周辺部に設けられ、２Ｄクロスバーアレイ８００のすべてのＲＰＵに並列に印加される確率的ビットストリーム（例えば８３０、８３２）形態の必要な電圧パルスを発生するための、周辺「翻訳機」として使用される。
【００６３】
図７の図を一時的に参照すると、図８に示すＲＰＵ８２０に対するｆ１は、非常に小さい（例えばｆ１＝０）と仮定され、これは０．５ＶＳＥＴが印加されただけではＲＰＵ８２０がその内部状態を変化させないことを意味する。行電圧シーケンス又はビットストリーム８３０は、行ワイヤ８０６に印加され、ゼロ電圧又は＋０．５ＶＳＥＴ電圧を有する、重み更新を表す電圧パルスのシーケンスとして示される。列電圧シーケンス又はビットストリーム８３２は、列ワイヤ８１４に印加され、ゼロ電圧又は−０．５ＶＳＥＴ電圧のいずれかを有する、同じく重み更新を表す電圧パルスのシーケンスとして示される。図８の例においては、４／８が行電圧シーケンス８３０によってコード化され、６／８が列電圧シーケンス８３２によってコード化されている。例示的な電圧シーケンス８３０、８３２は、重み更新の正の抵抗変化相を表す。正の重み更新が行われた後、それぞれの電圧の極性を反転させた別個のシーケンスの組を使用して、負の方向に、そのような訂正が必要な重みについて重みを更新することができる。
【００６４】
電圧シーケンス８３４は、行電圧シーケンス８３０と列電圧シーケンス８３２との間の差分から得られる、ＲＰＵ８２０に印加される電圧である。電圧シーケンス８３４は、０Ｖ、０．５ＶＳＥＴ及びＶＳＥＴの３つの電圧段階を有する。しかしながら、ＲＰＵ８２０の抵抗σ４３はデバイス電圧がＶＳＥＴに達したときにのみ変化するので、列ワイヤ又は行ワイヤのどちらかを通じて送られる単一のパルスでは、ＲＰＵ８２０の抵抗状態を変化させるのに十分ではない。列ワイヤが０．５ＶＳＥＴの電圧を送り、行ワイヤが−０．５ＶＳＥＴの電圧を送るとき、結果として生じる、該当のＲＰＵに印加されるＶＳＥＴパルスが、デバイスの抵抗のインクリメンタルな変化を引き起こす。従って、ＲＰＵ８２０に印加される電圧パルスは、（図５に示すような）ビット単位の確率的ＡＮＤ演算をＲＰＵ８２０において局所的に行うために、ＲＰＵ８２０の非線形スイッチング特性を利用することになる。それゆえ、結果として得られる、ＲＰＵの格納された重み（例えばσ４３）の変化は、クロスバーアレイ８００の周辺の更新発生器回路によって「翻訳」された２つの数の積（４／８＊６／８＝３／８）に比例する。
【００６５】
図９及び図１０は、例示的な公知の浮動小数点（ＦＰ）重み更新規則の分類誤り率の性能と、本開示の確率的ＲＰＵ（ＳＲＰＵ）更新規則との比較を示す。ＦＰ重み更新規則は、乗算演算と等価であるベクトル−ベクトル外積を計算することを必要とし、インクリメンタルな重み更新を図９に示すように各クロスポイントにおいて局所的に行わなければならない。ＦＰ重み更新規則は、ｗｉｊ←ｗｉｊ＋ηｘｉδｊとして表すことができ、ここでｗｉｊは、ｉ番目の行及びｊ番目の列に対する重み値を表し、ｘｉは、入力ニューロンにおける活性であり、δｊは、出力ニューロンによって計算された誤りであり、ηは大域的学習率である。
【００６６】
図９に示すように、ＦＰ重み更新規則は、クロスバーアレイ（図示せず）の行ワイヤ９０４と列ワイヤ９０６との間のクロスポイントに位置するＦＰクロスポイントデバイス９０２を使用する。ＦＰクロスポイントデバイス９０２は、２つより多い端子を有する処理コンポーネント（図示せず）を含み、処理コンポーネントは、それぞれ行ワイヤ９０４及び列ワイヤ９０６に印加される信号ｘｉ及びδｊを介して、更新データをＦＰ数として受け取る。ＦＰクロスポイントデバイス９０２は、乗算演算９０８及び加算演算９１０を使用して重み更新Ｗｉｊを計算し、次いで重み更新Ｗｉｊを格納する。ＦＰ重み更新規則は、精度をもたらすが、読出し−書込み−処理の更新動作（例えば図４に示す）、又は、２つより多くの端子を有する比較的複雑で電力を消費する局所処理コンポーネントのいずれかを必要とする。例えば、ＦＰクロスポイントデバイス９０２の処理コンポーネントは、非特許文献５に記載されているように一対のトランジスタとタンデムで動作する２端子の理想的メモリスタとして実装することができる。メモリスタは、事実上、重み値を格納するために使用され、一対のトランジスタは、重み更新のために必要な局所的乗算演算を計算するのに使用され、重み更新の結果がメモリスタの伝導状態を修正する。
【００６７】
本開示のＳＲＰＵ重み更新規則の実施形態は、図９の式３で示され、式中、ＢＬは更新サイクル中に使用されるビットストリームの長さであり、Δｗｍｉｎは単一の一致事象に起因する重み値の有効変化であり、Ａｉｎ及びＢｊｎは、ベルヌーイ過程によって特徴づけられるランダム変数であり、それらの成功率はそれぞれｘｉ及びδｊによって特徴づけられ、上付き文字ｎはパルス指数を表す。図９に示すＳＲＰＵ重み更新規則は、単一のアレイ内のすべてのＲＰＵデバイスが並列に動作すること、及び、局所的乗算演算を単に一致事象の統計に対して応答することによって行うことを可能にする。しかしながら、更新の確率的（ｓｔｏｃｈａｓｔｉｃ）性質ゆえに、結果は常に確率的（ｐｒｏｂａｂｉｌｉｓｔｉｃ）であり、乗算演算の分散対平均比は、ＢＬの平方根の逆数に比例する。
【００６８】
図９に示すように、ＳＲＰＵ重み更新規則は、ＲＰＵクロスポイントデバイス８２０Ａを使用し、これは図８に示しかつ上で詳述したＲＰＵ８２０と実質的に同じように動作する。ＲＰＵ８２０Ａは、クロスバーアレイ（図示せず）の行ワイヤ９１０と列ワイヤ９１２との間のクロスポイントに位置する。ＲＰＵ８２０Ａは、２つの端子を有する処理コンポーネント（図８で８２０において示す）を含み、処理コンポーネントは、入力データｘｉ及びδｊを受け取り、それぞれ行ワイヤ９１０及び列ワイヤ９１２に確率的電圧シーケンスを印加する、確率的翻訳機９１４、９１６によって生成された確率的信号を介して、更新データを確率的数として受け取る。ＲＰＵ８２０Ａは、Ｗｉｊの新たな値を、確率的ビットストリーム、ＲＰＵ８２０Ａの非線形特性、ＡＮＤ演算９１８及び加算演算９２０を使用して計算する。より詳細には、ＲＰＵ８２０Ａは、一致事象毎に、重み変化Δｗｍｉｎと等価なインクリメンタルなコンダクタンス変化を生じさせ、Δｗｍｉｎを格納された重み値に加算して、更新された重み値Ｗｉｊに到達する。
【００６９】
図１０のグラフは、バックプロパゲーションアルゴリズムを使用した深層ニューラルネットワークの訓練問題を上述のＳＲＰＵ重み更新規則として定義した確率的更新規則を用いて解析し、その結果を上述のＦＰ重み更新規則を使用したベースラインと比較することによって、ＳＲＰＵ重み更新規則の分類誤り率とＦＰ重み更新の分類誤り率との間の比較の結果を示す。ＭＮＩＳＴデータセットに対して数字分類（ｄｉｇｉｔ  ｃｌａｓｓｉｆｉｃａｔｉｏｎ）タスクを行う。深層ニューラルネットワークは、入力から出力まで各層がそれぞれ７８４、２５６、１２８及び１０ニューロンを含む、完全に接続された層によって構成した。データの前処理は行わず、未処理の画素値を入力として与えた。シグモイド・ニューロンを隠れ層において使用し、ソフトマックス・ニューロンを出力において使用した。クロスエントロピー目的関数を使用した。ベースラインＦＰ重み更新については、浮動小数点算術を使用して、バッチサイズ１（ｕｎｉｔｙ）、並びに、０〜１０、１１〜２０及び２１〜３０のエポックについてそれぞれ学習率０．０１、０．００５及び０．００２５で訓練を行った。ベースラインは、図１０に示すグラフ上の白丸で示すように、３０エポックの終了時にテストデータに対して約２．０％の分類精度に達した。
【００７０】
学習率は、ニューラルネットワークの許容可能な収束特性を達成するためにある程度まで調整しなければならない重要なハイパーパラメータである。したがって、本開示のＳＲＰＵ重み更新については、ＦＰ重み更新ベースラインに対して使用した値と平均して同一となる学習率を使用する。図１０に示すシミュレーションは、ｘｉ及びδｊがスケーリングなしで確率的ストリームに直接翻訳されること、及び、Ｐ（Ａｉｎ＝成功）＝ｘｉ及びＰ（Ｂｊｎ＝成功）＝δｊであることを仮定した。したがって、重み値の平均変化は、Ｅ（Δｗｉｊ）＝ＢＬ×Δｗｍｉｎ×ｘｉδｊと記述することができる。第１のシミュレーションの組において、ＦＰ重み更新ベースラインに対して使用した学習率と一致させるために、ＢＬを固定し、Δｗｍｉｎ＝η／ＢＬとした。異なるＢＬを使用して訓練を行い、ＳＲＰＵ重み更新に対するアルゴリズムの許容差を観測した。図１０のグラフに示すように、ＳＲＰＵ重み更新規則はＢＬに対して非常にロバストであり、実際、ＢＬ≧１０について、ＳＲＰＵ重み更新規則の精度は、ベースラインのＦＰ重み更新規則と区別できなくなる。それゆえ、図１０で実証されるように、ＳＲＰＵ重み更新は、単にＢＬ≧１０サイクルを使用することによって、ＦＰ重み更新と同様に行うことができ、アレイサイズに依存せずに並列に動作するＲＰＵデバイスによって実装することができる。
【００７１】
図１１（Ａ）〜図１１（Ｄ）は、１つ又は複数の実施形態による２端子非線形ＲＰＵを使用する本開示の確率的重み更新について、ＲＰＵの線形性（ｒ）をどのように計算するかを例証する略図及びグラフを示す。図１１（Ａ）は、前述の確率的電圧シーケンスを示し、図１１（Ｂ）は、確率的電圧シーケンスを受け取って応答するＲＰＵ８２０を示す。図１１（Ａ）は、ｘｉ及びδｊに印加された電圧シーケンスに応答したＲＰＵの伝導値の変化である、Δｇも示す。より詳細には、Δｇは、ＶＤＤに達した電圧パルスに対するＲＰＵ８２０の応答である。従って、デバイス線形率ｒは、図１１（Ｃ）に示す式に従って決定することができる。図１１（Ｃ）は、図７と同様のスイッチング図であり、これはΔｇ対ＶＤＤをプロットし、理想的メモリスタの応答を非理想的ＲＰＵ及び理想的ＲＰＵと比較したものである。図１１（Ｄ）は、異なる非線形率について、分類誤りを示す。図１１（Ｃ）及び図１１（Ｄ）は、関連したパラメータを変化させることによって異なる非線形性レベルでＲＰＵ８２０を設計し及び動作させることができること、及び、ＲＰＵ８２０はたとえ非理想的であってもなお、許容可能な分類誤り率で動作することができることを実証する。
【００７２】
図１１（Ａ）は、正の更新サイクルパルスを示す。図１２（Ａ）及び図１２（Ｂ）は、パルスの極性を変更することによって、正及び負の更新サイクルの両方を実装することができることを示す。
【００７３】
図１３は、１つ又は複数の実施形態による２端子非線形ＲＰＵを使用した確率的重み更新の実装についてのさらなる詳細を例証する略図及びグラフを示す。図１３は、図１２（Ａ）及び図１２（Ｂ）に示す正及び負のパルシング・スキームによって、平均で、どの程度の重み変化Δｗが得られるかを示す。従って、ｘｉ及びδｊをそれぞれのパルス符号に基づいて正の更新サイクル及び負の更新サイクルの両方に代入する。これは、ＲＰＵ上に重なりがあるときにＲＰＵ上の電圧がΔｇの符号に基づいて正方向又は負方向のいずれかで閾値を通ることが可能であることを保証する。パルスシーケンスの下に示す図は、パルスシーケンス内のパルスｘ、δ＋及びδ−がどのように相互作用するかの単なる図式的表現である。半パルス及び全パルスからの寄与に基づいてΔｗについての式によって示されるように期待値を合計することによって、最終的な期待更新規則Δｗの２つの形態を導出することができる。
【００７４】
図１４（Ａ）及び図１４（Ｂ）は、本開示のＲＰＵの整流的（ｒｅｃｔｉｆｙｉｎｇ）非線形性（図１１（Ｃ）にも示す）及び本開示のＲＰＵの飽和的（ｓａｔｕｒａｔｉｎｇ）非線形性を横に並べて比較して示す。飽和的非線形性については、ｘをコード化してＲＰＵへ入れる代わりに、飽和的非線形ＲＰＵが必要な乗算を行うために１−ｘをコード化することが必要である。
【００７５】
図１５及び図１６は、指数関数的非線形性を有する２端子ＲＰＵと共に高さ変調パルシング・スキームを使用したときの期待重み更新規則Δｗを例証するグラフ、図及び式を示す。この例においては、確率的コード化を電圧高さ変調によって置き換える。図１６に示すように、テイラー展開を用いて、期待重み更新規則を単純化してΔｗ＝ｘδにすることができる。従って、図１５及び図１６に示す導出は、図１５及び図１６に示す高次項が問題にならないこと、及び、指数関数的高さ変調ＲＰＵは、図１６の右下に示すグラフによって示されるように前述の実施形態と同じくらい良く機能することを実証する。
【００７６】
図１７〜図１９は、本開示による２端子非線形ＲＰＵのクロスバーアレイを含むＡＮＮアーキテクチャの開発、訓練及び使用の態様を示す。図１７は、ニューラルネットワークを設計するための開始点を示す。事実上、図１７は、図３に示すニューラルネットワーク図の代替的表現である。図１７に示すように、ｘ１、ｘ２及びｘ３である入力ニューロンは、シグマ（σ）で示される隠れニューロンに接続される。重みは、接続の強さを表し、入力ニューロン／ノードと隠れニューロン／ノードとの間、並びに、隠れニューロン／ノードと出力ニューロン／ノードとの間の接続に適用される。重みは、行列の形態である。データがネットワークを通って順方向に移動するとき、ベクトル行列乗算が行われ、隠れニューロン／ノードは、入力を取得し、非線形変換を行い、次いで結果を次の重み行列へ送る。このプロセスは、データが出力ニューロン／ノードに到達するまで続く。出力ニューロン／ノードは、分類誤りを評価し、次いでこの分類誤りを順方向経路と同様の方式で逆方向に伝播し、その結果、ベクトル行列乗算が逆方向に行われる。各データセットについて、順方向経路及び逆方向経路が完了すると、重み更新が行われる。基本的に、各重みは、入力ニューロン／ノードによって定められるその重みに対する入力、及び、それが接続されたニューロン／ノードによって計算された誤りに比例して、更新される。
【００７７】
図１８は、どのようにしてネットワークを中継器によって接続される構成ブロックに分割することができるかを示し、それゆえ、ニューラルネットワークを任意のサイズに拡張することが可能になる。ネットワークは本開示のＲＰＵを使用するので、情報の流れは局所的であり、そのことにより、構成ブロックを反復することが容易になり、また、スケーラビリティを制限するボトルネックとなり得るルータの必要性が排除される。
【００７８】
図１９は、ＲＰＵ８２０（図８に示す）から形成されるネットワーク構成ブロックを示す。ＲＰＵ８２０には、図７、図１１（Ｃ）、図１４（Ａ）、図１４（Ｂ）又は図１５に示す任意の非線形プロファイルを与えることができる。
【００７９】
ここで図２０を参照して、ノード／ニューロン制御システム１９００を示す。ニューロン制御システム１９００は、ハードウェアプロセッサ１９０２及びメモリ１９０４を含む。ＡＮＮ用の訓練データ１９０６は、メモリ１９０４内に格納され、ＡＮＮの重みを訓練するために使用される。ニューロンインタフェース１９０８は、ＡＮＮ上のニューロンを制御し、ニューロンがフィードフォワードモード、バックプロパゲーションモード、又は重み更新モードのいずれであるかを決定する。ニューロンインタフェース１９０８は、さらに、入力ニューロンに入力を与え、出力ニューロンから出力を受け取る。誤り計算モジュール１９１０は、ニューロンからの出力を訓練データ１９０６と比較して、誤り信号を決定する。ニューロンインタフェース１９０８は、誤り信号をバックプロパゲーションモード中に出力ニューロンに印加し、次いで重み更新モードをトリガして、ＡＮＮの重みをそれに応じて訓練する。
【００８０】
図２１は、１つ又は複数の実施形態による方法論２０００を例証するフロー図を示す。方法論２０００は、ブロック２００２において、伝導性並列ワイヤの第１の組を形成することによって開始する。ブロック２００４は、第１の組と交差する伝導性並列ワイヤの第２の組を形成して、伝導性並列ワイヤの第１の組と伝導性並列ワイヤの第２の組との間の交差部に複数のクロスポイントを形成する。ブロック２００６は、伝導性並列ワイヤの第１の組と伝導性並列ワイヤの第２の組との間の複数のクロスポイントの各々において２端子ＲＰＵを形成する。ブロック２００８は、各ＲＰＵに、データを局所的に格納するための可変の伝導特性を与え、ブロック２０１０は、各ＲＰＵに、データを局所的に処理するための非線形スイッチング特性を与える。
【００８１】
図２２は、１つ又は複数の実施形態による方法論２１００を例証する別のフロー図を示す。方法論２１００は、ブロック２１０２において、複数の行、複数の列、及びクロスバーアレイの各クロスポイントにおける複数の２端子非線形ＲＰＵを有する、クロスバーアレイを形成することによって開始する。ブロック２１０４は、クロスバーアレイの行及び列を介して、確率的数の独立したビットストリームをＲＰＵに並列に適用する。ブロック２１０６は、各ＲＰＵの非線形スイッチング特性及びそれに関連付けられたビットストリーム（行及び列）を利用して、そのＲＰＵにおいて局所的に計算を行う。
【００８２】
従って、本開示は、多くの技術的利益を提供する。単一の２端子デバイスは、コード化された入力ビットストリームとともに、そのデバイスの非線形スイッチング特性を使用して、重み更新を局所的に行い、これは、消費電力が低く、かつ、非線形ＲＰＵのクロスバーアレイから形成されたＡＮＮにおける機械学習を加速する。本開示のＲＰＵは、順方向経路の行列乗算、逆方向経路の行列乗算及び重み更新を行うために必要な処理及びストレージステップを局所的に行うことができる。このＲＰＵは、オンライン・ニューラルネットワーク訓練、行列反転及び行列分解を含む様々な訓練方法論を加速することができる。
【００８３】
１つ又は複数の実施形態の一部は、デバイス、システム、方法及び／又はコンピュータプログラム製品とすることができる。１つ又は複数の実施形態によるコンピュータプログラム製品は、１つ又は複数の実施形態の態様をプロセッサに実行させるためのプログラム命令を有する１つ又は複数のコンピュータ可読ストレージ媒体を含む。
【００８４】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のために命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁気ストレージデバイス、半導体ストレージデバイス、又は上記のものの任意の適切な組合せとすることができるがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、静的ランダムアクセスメモリ（ＳＲＡＭ）、ポータブル・コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多目的ディスク（ＤＶＤ）、メモリスティック、フロッピーディスク、記録された命令を有するパンチカード若しくは溝内に隆起した構造等の機械式コード化デバイス、及び上記のものの任意の適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書で用いられる場合、無線波若しくは他の自由に伝搬する電磁波、導波路若しくは他の伝送媒体を通って伝搬する電磁波（例えば光ファイバケーブルを通る光パルス）、又は電線を通って伝送される電気信号のような一時的な信号自体と解釈されるべきではない。
【００８５】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスにダウンロードすることもでき、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク及び／若しくは無線ネットワークを経由して、外部コンピュータ若しくは外部ストレージデバイスにダウンロードすることもできる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ及び／又はエッジサーバを含むことができる。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体におけるストレージのために転送する。
【００８６】
本開示の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Ｓｍａｌｌｔａｌｋ、若しくはＣ＋＋などのオブジェクト指向プログラミング言語及び「Ｃ」プログラミング言語若しくは類似のプログラミング言語のような従来の手続き型プログラミング言語を含む１つ若しくは複数のプログラミング言語の任意の組合せで記述されたソースコード若しくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続が行われる場合もある（例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて）。幾つかの実施形態において、例えばプログラム可能論理回路、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）、又はプログラム可能論理アレイ（ＰＬＡ）を含む電子回路は、本開示の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することにより、コンピュータ可読プログラム命令を実行することができる。
【００８７】
本開示の態様は、本明細書において、本開示の実施形態による方法、装置（システム）、及びコンピュータプログラム製品のフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図のブロックの組合せは、コンピュータ可読プログラム命令によって実装することができることが理解されるであろう。
【００８８】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実装するための手段を作り出すようにすることができる。これらのコンピュータプログラム命令を、コンピュータ、プログラム可能データ処理装置、及び／又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読ストレージ媒体内に格納し、それにより、その中に格納された命令を有するコンピュータ可読媒体が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作の態様を実装する命令を含む製品を含むようにすることもできる。
【００８９】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置又は他のデバイス上で行わせてコンピュータ実装のプロセスを生成し、それにより、コンピュータ、他のプログラム可能装置又は他のデバイス上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するようにすることもできる。
【００９０】
図面内のフローチャート及びブロック図は、本開示の種々の実施形態による、システム、方法、及びコンピュータプログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又は命令の一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図中に記された順序とは異なる順序で行われることがある。例えば、連続して示された２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、及びブロック図及び／又はフローチャート図中のブロックの組合せは、指定された機能又は動作を実行する専用ハードウェア・ベースのシステムによって実装することもでき、又は専用ハードウェアとコンピュータ命令との組合せを実行することもできることにも留意されたい。
【００９１】
本明細書で用いられる用語は、特定の実施形態を説明のみを目的としたものであり、本開示を限定することを意図したものではない。本明細書で使用される単数形「ａ」、「ａｎ」及び「ｔｈｅ」は、前後関係から明らかに別の意味を示さない限り、複数形態も含むことを意図する。さらに、本明細書内で使用する場合に、「備える、含む」及び／又は「備えている、含んでいる」という用語は、そこに述べた特徴、整数、ステップ、動作、要素及び／又はコンポーネントの存在を明示しているが、１つ又は複数の他の特徴、整数、ステップ、動作、要素、コンポーネント及び／又はそれらの群の存在又は付加を排除するものではないことが理解されるであろう。
【００９２】
以下の特許請求の範囲における全ての「手段又はステップと機能との組み合わせ（ミーンズ又はステップ・プラス・ファンクション）」要素の対応する構造、材料、動作、及び均等物は、その機能を、明確に特許請求された他の請求要素との組み合わせで実行するためのあらゆる構造、材料、又は動作を含むことが意図されている。本開示は、例証及び説明を目的として提示されたものであるが、網羅的であること又は開示された形態に限定することを意図したものではない。本開示の範囲及び思想から逸脱しない多くの修正及び変形が当業者には明らかであろう。実施形態は、本開示の原理及び実際の用途を最も良く説明するように、また企図される特定の用途に適するような種々の修正を伴う種々の実施形態に関して本開示を当業者が理解するのを可能にするように、選択しかつ説明したものである。
【図１】
2019502970.tif 000003
【図２】
2019502970.tif 000004
【図３】
2019502970.tif 000005
【図４】
2019502970.tif 000006
【図５】
2019502970.tif 000007
【図６】
2019502970.tif 000008
【図７】
2019502970.tif 000009
【図８】
2019502970.tif 000010
【図９】
2019502970.tif 000011
【図１０】
2019502970.tif 000012
【図１１】
2019502970.tif 000013
【図１２】
2019502970.tif 000014
【図１３】
2019502970.tif 000015
【図１４】
2019502970.tif 000016
【図１５】
2019502970.tif 000017
【図１６】
2019502970.tif 000018
【図１７】
2019502970.tif 000019
【図１８】
2019502970.tif 000020
【図１９】
2019502970.tif 000021
【図２０】
2019502970.tif 000022
【図２１】
2019502970.tif 000023
【図２２】
2019502970.tif 000024
【国際調査報告】
2019502970.tif 000025
2019502970.tif 000026