IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7590090振動性ニューラル・ネットワークのトレーニング
<>
  • 特許-振動性ニューラル・ネットワークのトレーニング 図1
  • 特許-振動性ニューラル・ネットワークのトレーニング 図2
  • 特許-振動性ニューラル・ネットワークのトレーニング 図3
  • 特許-振動性ニューラル・ネットワークのトレーニング 図4
  • 特許-振動性ニューラル・ネットワークのトレーニング 図5
  • 特許-振動性ニューラル・ネットワークのトレーニング 図6
  • 特許-振動性ニューラル・ネットワークのトレーニング 図7
  • 特許-振動性ニューラル・ネットワークのトレーニング 図8
  • 特許-振動性ニューラル・ネットワークのトレーニング 図9
  • 特許-振動性ニューラル・ネットワークのトレーニング 図10
  • 特許-振動性ニューラル・ネットワークのトレーニング 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-18
(45)【発行日】2024-11-26
(54)【発明の名称】振動性ニューラル・ネットワークのトレーニング
(51)【国際特許分類】
   G06N 3/049 20230101AFI20241119BHJP
   G06N 3/084 20230101ALI20241119BHJP
【FI】
G06N3/049
G06N3/084
【請求項の数】 20
(21)【出願番号】P 2022578958
(86)(22)【出願日】2021-06-10
(65)【公表番号】
(43)【公表日】2023-07-19
(86)【国際出願番号】 IB2021055107
(87)【国際公開番号】W WO2022003459
(87)【国際公開日】2022-01-06
【審査請求日】2023-11-14
(31)【優先権主張番号】16/919,367
(32)【優先日】2020-07-02
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】カーグ、ジークフリート フリードリヒ
(72)【発明者】
【氏名】コルティ、エリザベッタ
【審査官】宮司 卓佳
(56)【参考文献】
【文献】米国特許第5446828(US,A)
【文献】米国特許出願公開第2019/0122095(US,A1)
【文献】特開2006-236345(JP,A)
【文献】国際公開第2011/030848(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/049
G06N 3/084
(57)【特許請求の範囲】
【請求項1】
ニューラル・ネットワークのトレーニングのためのコンピュータによって実施される方法であって、
1つまたは複数のコンピュータ・プロセッサによって、トレーニング・サンプルを定義するデータを、ネットワーク入力信号内の時間遅延のベクトルとしてエンコードすることと、
1つまたは複数のコンピュータ・プロセッサによって、少なくとも1つのネットワーク・レイヤを備えた振動性ニューラル・ネットワークに、前記ネットワーク入力信号を供給することであって、前記少なくとも1つのネットワーク・レイヤにおいて、それぞれのネットワーク重みを記憶するプログラム可能な結合要素を通じて相互接続された、複数の電子発振器は、そのレイヤの入力から出力まで前記ネットワーク入力信号を伝搬させるように、前記ネットワーク入力信号に応じた時間遅延において振動信号を生成し、前記振動性ニューラル・ネットワークは、前記振動性ニューラル・ネットワークの最後の前記レイヤにおける振動信号の位相に実質的に線形に依存するネットワーク出力信号をもたらすように適合される、前記供給することと、
1つまたは複数のコンピュータ・プロセッサによって、前記ネットワーク出力信号と前記トレーニング・サンプルに対する所望の出力とに依存するネットワーク誤差を計算することと、
1つまたは複数のコンピュータ・プロセッサによって、ネットワーク・レイヤに対する重み更新が、そのレイヤへの前記入力での時間遅延のベクトルと、そのレイヤの前記出力での前記計算された誤差とに依存するように、前記誤差の逆伝播によってそれぞれのネットワーク重みに対する更新を計算することと、
1つまたは複数のコンピュータ・プロセッサによって、前記重み更新に従って、前記記憶された重みを更新するように、前記結合要素をプログラムすることと
を含む方法。
【請求項2】
前記ネットワーク出力信号は、最後のレイヤにおける振動信号と、基準信号との間の位相差に依存する、請求項1に記載のコンピュータによって実施される方法。
【請求項3】
前記ネットワーク誤差は、前記ネットワーク出力信号と、前記トレーニング・サンプルに対する前記所望の出力とに依存するコスト関数の導関数を含む、請求項1または2に記載のコンピュータによって実施される方法。
【請求項4】
前記コスト関数は、前記トレーニング・サンプルに対する前記所望の出力と、前記ネットワーク出力信号の所定の非線形関数との差に依存する、請求項3に記載のコンピュータによって実施される方法。
【請求項5】
前記非線形関数は、ReLU関数を含み、前記ネットワーク出力信号は、前記ReLU関数を前記ネットワーク出力信号に適用するために、一組のダイオードを備えた活性ステージに供給される、請求項4に記載のコンピュータによって実施される方法。
【請求項6】
前記振動性ニューラル・ネットワークは、複数のレイヤを備える、請求項1~5のいずれか1項に記載のコンピュータによって実施される方法。
【請求項7】
各レイヤの前記出力は、所定の非線形関数をそのレイヤの出力信号に適用するために、活性ステージに接続される、請求項6に記載のコンピュータによって実施される方法。
【請求項8】
前記非線形関数は、ReLU関数を備え、前記活性ステージは、一組のダイオードを備える、請求項7に記載のコンピュータによって実施される方法。
【請求項9】
各発振器は、電界効果トランジスタを備え、
前記ネットワーク入力信号にエンコードされた各時間遅延は、最初のネットワーク・レイヤ内の前記トランジスタによる振動信号の生成を開始するように、前記トランジスタのゲートに印加される信号のタイミングを決定する、
請求項1~8のいずれか1項に記載のコンピュータによって実施される方法。
【請求項10】
ニューラル・ネットワーク・システムであって、
トレーニング・サンプルを定義するデータを、ネットワーク入力信号内の時間遅延のベクトルとしてエンコードするように適合されたエンコーダと、
前記ネットワーク入力信号を受信するための振動性ニューラル・ネットワークであって、前記振動性ニューラル・ネットワークは、少なくとも1つのネットワーク・レイヤを備え、前記少なくとも1つのネットワーク・レイヤにおいて、それぞれのネットワーク重みを記憶するプログラム可能な結合要素を通じて相互接続された、複数の電子発振器は、そのレイヤの入力から出力まで前記ネットワーク入力信号を伝搬させるように、前記ネットワーク入力信号に応じた時間遅延において振動信号を生成し、前記振動性ニューラル・ネットワークは、前記振動性ニューラル・ネットワークの最後の前記レイヤにおける振動信号の位相に実質的に線形に依存するネットワーク出力信号をもたらすように適合される、前記振動性ニューラル・ネットワークと、
システム・コントローラであって、前記ネットワーク出力信号と前記トレーニング・サンプルに対する所望の出力とに依存するネットワーク誤差を計算することと、ネットワーク・レイヤに対する重み更新が、そのレイヤへの前記入力での時間遅延のベクトルと、そのレイヤの前記出力での前記計算された誤差とに依存するように、前記誤差の逆伝播によってそれぞれのネットワーク重みに対する更新を計算することと、前記重み更新に従って、前記記憶された重みを更新するように、前記結合要素をプログラムすることとを行うように適合された、前記システム・コントローラと
を備えたニューラル・ネットワーク・システム。
【請求項11】
前記ネットワーク出力信号は、最後のレイヤにおける振動信号と、基準信号との間の位相差に依存する、請求項10に記載のニューラル・ネットワーク・システム。
【請求項12】
前記ネットワーク誤差は、前記トレーニング・サンプルに対する前記所望の出力と、前記ネットワーク出力信号の所定の非線形関数との差に依存するコスト関数の導関数を含む、請求項10または11に記載のニューラル・ネットワーク・システム。
【請求項13】
前記非線形関数は、ReLU関数を含み、前記ネットワーク出力信号は、前記ReLU関数を前記ネットワーク出力信号に適用するために、一組のダイオードを備えた活性ステージに供給される、請求項12に記載のニューラル・ネットワーク・システム。
【請求項14】
前記振動性ニューラル・ネットワークは、複数のレイヤを備える、請求項10~13のいずれか1項に記載のニューラル・ネットワーク・システム。
【請求項15】
各レイヤの前記出力は、所定の非線形関数をそのレイヤの出力信号に適用するために、活性ステージに接続される、請求項14に記載のニューラル・ネットワーク・システム。
【請求項16】
前記非線形関数は、ReLU関数を備え、前記活性ステージは、一組のダイオードを備える、請求項15に記載のニューラル・ネットワーク・システム。
【請求項17】
各発振器は、電界効果トランジスタを備え、前記振動性ニューラル・ネットワークは、前記ネットワーク入力信号にエンコードされた各時間遅延が、最初のネットワーク・レイヤ内の前記トランジスタによる振動信号の生成を開始するように、前記トランジスタのゲートに印加される信号のタイミングを決定するように適合される、請求項10~16のいずれか1項に記載のニューラル・ネットワーク・システム。
【請求項18】
前記結合要素は、抵抗変化型メモリ・デバイスを備える、請求項10~17のいずれか1項に記載のニューラル・ネットワーク・システム。
【請求項19】
それぞれの前記発振器は、緩和発振器を備える、請求項10~18のいずれか1項に記載のニューラル・ネットワーク・システム。
【請求項20】
振動性ニューラル・ネットワークをトレーニングするためのコンピュータ・プログラムであって処理装置に、
トレーニング・サンプルを定義するデータを、ネットワーク入力信号内の時間遅延のベクトルとしてエンコードすることと、
少なくとも1つのネットワーク・レイヤを備えた振動性ニューラル・ネットワークに、前記ネットワーク入力信号を供給することであって、前記少なくとも1つのネットワーク・レイヤにおいて、それぞれのネットワーク重みを記憶するプログラム可能な結合要素を通じて相互接続された、複数の電子発振器は、そのレイヤの入力から出力まで前記ネットワーク入力信号を伝搬させるように、前記ネットワーク入力信号に応じた時間遅延において振動信号を生成し、前記振動性ニューラル・ネットワークは、前記振動性ニューラル・ネットワークの最後の前記レイヤにおける振動信号の位相に実質的に線形に依存するネットワーク出力信号をもたらすように適合される、前記供給することと、
前記ネットワーク出力信号と前記トレーニング・サンプルに対する所望の出力とに依存するネットワーク誤差を計算することと、
ネットワーク・レイヤに対する重み更新が、そのレイヤへの前記入力での時間遅延のベクトルと、そのレイヤの前記出力での前記計算された誤差とに依存するように、前記誤差の逆伝播によってそれぞれのネットワーク重みに対する更新を計算することと、
前記重み更新に従って、前記記憶された重みを更新するように、前記結合要素をプログラムすることと
実行させるためのコンピュータ・プログラム
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、振動性ニューラル・ネットワークのトレーニングに関する。振動性ニューラル・ネットワークをトレーニングする方法が、このような方法を実施するニューラル・ネットワーク・システムと共にもたらされる。
【0002】
振動性ニューラル・ネットワーク(ONN:Oscillatory Neural Network)は、結合された発振器のネットワークを使用する、人工ニューラル・ネットワークである。発振器は、ニューラル・ネットワークのニューロンに対応し、発振器のペアの間の結合の強度は、ネットワーク(シナプス)重みをエミュレートする。このようなネットワークは、検出されるべき特定の相関をネットワークが「学習」する、または記憶するように、ネットワークにおいてトレーニング・サンプルを処理し、ネットワーク重みの行列を適合させることによって、画像分類および音声認識など、相関タスクを行うようにトレーニングされ得る。ONNに対する少数のハードウェア実装形態が提案されており、これらのネットワークは通常、例えばヘブ学習アルゴリズムによる、重み行列の数学的事前トレーニングに依存する。
【発明の概要】
【0003】
本発明の一態様は、ニューラル・ネットワーク・トレーニング方法をもたらす。方法は、トレーニング・サンプルを定義するデータを、ネットワーク入力信号内の時間遅延のベクトルとしてエンコードすることと、振動性ニューラル・ネットワークに、入力信号を供給することとを含む。ネットワークは、少なくとも1つのネットワーク・レイヤを備え、少なくとも1つのネットワーク・レイヤにおいて、それぞれのネットワーク重みを記憶するプログラム可能な結合要素を通じて相互接続された、複数の電子発振器は、そのレイヤの入力から出力まで入力信号を伝搬させるように、入力信号に応じた時間遅延において振動信号を生成する。ネットワークは、ネットワークの最後のレイヤにおける振動信号の位相に実質的に線形に依存するネットワーク出力信号をもたらすように適合される。方法は、出力信号とトレーニング・サンプルに対する所望の出力とに依存するネットワー誤差を計算することと、ネットワーク・レイヤに対する重み更新が、そのレイヤへの入力での時間遅延のベクトルと、そのレイヤの出力での計算された誤差とに依存するように、誤差の逆伝播によってそれぞれのネットワーク重みに対する更新を計算することとを含む。方法は、計算された重み更新に従って、記憶された重みを更新するように、結合要素をプログラムすることをさらに含む。
【0004】
本発明の他の態様は、エンコーダと、上述のような振動性ニューラル・ネットワークと、システム・コントローラとを備えた、ニューラル・ネットワーク・システムをもたらす。エンコーダは、トレーニング・サンプルを定義するデータを、ネットワーク入力信号内の時間遅延のベクトルとしてエンコードするように適合される。振動性ニューラル・ネットワークは、入力信号を受信および伝搬し、上述のようにネットワーク出力信号をもたらす。システム・コントローラは、ネットワーク誤差と、重み更新とを計算することと、上述のようにネットワークの結合要素をプログラムすることとを行うように適合される。
【0005】
本発明のさらなる態様は、処理装置に上述のニューラル・ネットワーク・トレーニング方法を実施させるように、処理装置によって実行可能な、プログラム命令を具体化するコンピュータ可読記憶媒体を備えたコンピュータ・プログラム製品をもたらす。
【0006】
本発明の実施形態は、添付の図面を参照して、例示および非限定的な例として、以下でより詳しく述べられる。
【図面の簡単な説明】
【0007】
図1】本発明を具体化するニューラル・ネットワーク・システムの概略表示を示す図である。
図2】例示的ネットワーク・レイヤ内の発振器の結合、およびこのレイヤに対する対応する重み行列を示す図である。
図3図1のシステムによって行われるニューラル・ネットワーク・トレーニング方法のステップを示す図である。
図4】システムの実施形態におけるエンコーダの動作を示す図である。
図5】好ましい実施形態におけるネットワーク・レイヤのより詳細な構成を示す図である。
図6】システムの実施形態における単一レイヤ・ネットワークの構造を示す図である。
図7図6の実施形態における非線形要素の構造を示す図である。
図8】システムの実施形態における2レイヤ・ネットワークの構造を示す図である。
図9】好ましい実施形態における重み更新計算のステップを示す図である。
図10】本発明の実施形態における低コントラストのトレーニング・サンプルを用いた白黒画像の学習を示す図である。
図11】本発明を具体化したトレーニング方法およびヘブ学習アルゴリズムを用いたシステム性能を比較する図である。
【発明を実施するための形態】
【0008】
本発明は、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を遂行させるためのコンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体を含み得る。
【0009】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる、有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはこれらの任意の適切な組合せとすることができるが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(登録商標)ディスク、パンチカードまたはその上に記録された命令を有する溝状の隆起構造などの機械的エンコード型デバイス、およびこれらの任意の適切な組合せを含む。本明細書で用いられるコンピュータ可読記憶媒体とは、電波または他の自由に伝搬する電磁波、導波路または他の伝送媒体を通して伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または線材を通して伝送される電気信号など、それ自体が一時的信号であるものと解釈されるものではない。
【0010】
本明細書で述べられるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワークあるいはその組合せを通じて、外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅の伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを備え得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
【0011】
本発明の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存型命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様なプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンド・アロン・ソフトウェア・パッケージとして、専らユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは専らリモート・コンピュータまたはサーバ上で、実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む、任意のタイプのネットワークを通してユーザのコンピュータに接続されることができ、または外部コンピュータへの接続がなされ得る(例えば、インターネット・サービス・プロバイダを用いてインターネットを通して)。いくつかの実施形態において、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を行うために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行し得る。
【0012】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の、フローチャート図またはブロック図あるいはその両方を参照して本明細書で述べられる。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されるであろう。
【0013】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラム可能なデータ処理装置を通じて実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/作用を実施するための手段を作成するように、マシンを生じるべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに供給され得る。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/作用の態様を実施する命令を含んだ製品を備えるように、特定のやり方で機能するようにコンピュータ、プログラム可能なデータ処理装置、または他のデバイスあるいはその組合せに指示することができる、コンピュータ可読記憶媒体に記憶され得る。
【0014】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/作用を実施するように、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上にロードされて、コンピュータによって実施されるプロセスを生じるべく、一連の動作ステップがコンピュータ、他のプログラム可能装置、または他のデバイス上で行われるようにさせることができる。
【0015】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示す。この関連において、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備えるモジュール、セグメント、または命令の一部分を表すことができる。いくつかの代替的実装形態において、ブロック内に記された機能は、図に記されたものとは異なる順序で生じ得る。例えば、連続して示される2つのブロックは、実際は、実質的に並行して実行されることができ、またはブロックは関わる機能性に応じて、時には逆の順序で実行され得る。またブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能または作用を行う、または専用ハードウェアおよびコンピュータ命令の組合せを遂行する、専用ハードウェア・ベースのシステムによって実施され得ることが留意されるであろう。
【0016】
図1は、本発明を具体化するニューラル・ネットワーク・システムの概略ブロック図である。システム1は、ONN2と、入力エンコーダ(ENC)3と、システム・コントローラ4とを備える。ONN2は、少なくとも1つのネットワーク・レイヤl、i=1、2、・・・、N、(N≧1)を備え、それらを通じてネットワーク入力信号は、ネットワークを通して伝搬される。システム・コントローラ4は、ここでは中央処理装置(CPU)5と、メモリ6とを備えることが示される。メモリ6は、ONNに対する一組のトレーニング・サンプル7と、1つまたは複数のプログラム・モジュール8とを記憶する。プログラム・モジュール8は、以下で述べられる動作の機能ステップを実施するように、CPU5によって実行可能なプログラム命令を備える。
【0017】
システム1の動作において、エンコーダ3は、コントローラ4からトレーニング・サンプルを定義するデータを受信し、サンプル・データを、ネットワーク入力信号内の時間遅延のベクトルτとしてエンコードする。結果としての入力信号SIN(τ)は、ONN2に供給される。ONN2の各レイヤlは、プログラム可能な結合要素を通じて相互接続された、複数の電子発振器を備え、電子発振器は、入力信号に応じた時間遅延において振動信号を生成する。ネットワーク・レイヤ構造の例は、最初のネットワーク・レイヤlの構造を示す図2に概略的に示される。このレイヤは、ベクトルτ内の時間遅延要素の数に対応する、n個の発振器O、・・・、Oを備える。各発振器Oj=1~nは、ベクトル要素tをエンコードする、入力信号SIN(τ)の成分s(t)を受信する。この例は、各発振器が、プログラム可能な結合要素9を通じて互いに他の発振器に結合された、全結合型ONN2レイヤを示す。この結合の強度は、個々の要素9のプログラミングによって調整可能であり、これらの結合強度は、それぞれのネットワーク重みwに対応する。示される接続性は、図の下部に示されるように、対角線に沿ってゼロを有する、三角形重み行列Wに対応する。
【0018】
レイヤl内の発振器O、・・・、Oは、入力信号SIN(τ)と、レイヤに対する重み行列Wとに応じた時間遅延において、振動信号o、・・・、oを生成する。マルチレイヤ・ネットワーク(N>1)については、これらの振動信号は、(以下で詳述されるさらなる処理の後)次のネットワーク・レイヤに中継され、そのレイヤに対する入力信号S(τ)をもたらし、ネットワークを通して同様である。従って入力信号SIN(τ)は、各レイヤlが前のレイヤから入力信号S(τ)を受信しながら、ネットワークの連続するレイヤにわたって各レイヤの入力から出力に伝搬される。
【0019】
ONN2は、ネットワークの最後のレイヤlにおける振動信号の位相に実質的に線形に依存する、ネットワーク出力信号をもたらすように適合される。図1の実装形態において、位相検出器10は、最後のレイヤにおける振動信号と、基準信号Srefとの間の位相差φを検出して、ネットワーク出力信号SOUT(φ)を生成する。この出力信号は、位相検出器10によって測定された位相差のベクトルφをエンコードする。ネットワーク出力信号SOUT(φ)は、以下でさらに詳述されるように、ネットワーク重みwに対する更新を計算するために用いられる。
【0020】
図3は、システム1で行われるトレーニング方法のステップを示す。ステップ20で、エンコーダ3は、コントローラ4によって供給されるトレーニング・サンプルに対して、ネットワーク入力信号SIN(τ)を生成する。このエンコーディング・プロセスの例は、以下で述べられる。ステップ21で、ネットワーク出力信号SOUT(φ)を取得するために、入力信号SIN(τ)がONN2に供給される。図1に示されるように、コントローラ4はまた、後続の処理での使用のために、各ネットワーク・レイヤlへの入力信号S(τ)を受信し、ここでS(τ)はネットワーク入力SIN(τ)である。ステップ22で、コントローラ4は、δによって表されるネットワーク誤差を計算し、これは出力信号SOUT(φ)と、トレーニング・サンプルに対する所望の出力とに依存する。この所望の出力は、完全にトレーニングされたネットワークにおいて、入力トレーニング・サンプルに対して取得されるべき出力に対応する。セット7における各トレーニング・サンプルは、トレーニングされたネットワークにおいてそのサンプルから検出されることになる特定の相関に従って分類されることができ、それによって、サンプルに割り当てられた種々の分類または「ラベル」は、それぞれの所望の出力に関連付けられる。画像処理アプリケーションにおいて、例えば、ラベルは、トレーニング画像の内容と、それに従って定義される種々のラベルに対する所望のネットワーク出力とに従って割り当てられ得る。
【0021】
ステップ22でネットワーク誤差を計算した後、ステップ23でコントローラは、ネットワークの各レイヤ内の、個々のネットワーク重みwに対する重み更新Δwを計算する。ネットワーク出力SOUT(φ)は、時間遅延エンコードされた入力サンプルから作り出された信号の位相に実質的に線形に依存するので、これらの重み更新は、特に効率的なやり方で、逆伝播によって計算され得る。逆伝播は、ネットワーク出力信号から計算されたネットワーク誤差から開始し、最後から最初に、ネットワーク・レイヤを通して逆向きに反復的に作業する、各ネットワーク・レイヤの出力に対応する誤差の計算のためのプロセスをもたらす。次いで各ネットワーク・レイヤ内の重みに対する更新は、そのレイヤの出力での計算された誤差に基づくものとすることができる。逆伝播の目標は、ネットワーク内の各重みを、どれだけそれがネットワーク内の全体の誤差を低減することに寄与するかに比例して、調整することである。本システムを用いて、ONN2の各レイヤlに対する重み更新は、そのレイヤへの入力での伝搬される信号S(τ)における時間遅延τのベクトルと、そのレイヤの出力での計算された誤差δとの関数(Fで表される)として、簡潔かつ効率的に計算され得る。各ONNレイヤに対する重み更新Δwの行列ΔW=F(τ,δ)は、ステップ23でコントローラ4によって計算される。ステップ24で、コントローラ4は、結合要素をプログラムするためにプログラミング信号をONN2に供給し、それによって、記憶された重みは、それぞれの重み更新Δwに従って更新される。
【0022】
ステップ20~24のプロセスは、所与のトレーニング・サンプルがONN2に複数回、例えばネットワーク誤差が閾値レベル未満に低減されるまで、またはさらなる改善が得られなくなるまで供給される、反復的トレーニング・プロセスの1つのエポックに対応し得る。次いでプロセスは、各トレーニング・サンプルに対して繰り返されることができ、それによってトレーニング・プロセスは、ステップ25に示されるように、すべてのサンプルが処理される、または収束条件(例えば、所望の性能レベル)が達成されるあるいはその両方となるまで、反復する。
【0023】
上記の実施形態は、ネットワーク重みが、トレーニング・サンプルの繰り返しの伝搬によってオンラインでトレーニングされるONNの実装形態をもたらす。ネットワーク内の振動信号は、位相および時間に対する電圧の指数的依存性によって説明されるが、ネットワーク出力は、位相において実質的に線形であり、ひいては入力時間遅延の線形関数である。これは、重み更新が非常に簡単なやり方で逆伝播によって計算されることを可能にするように利用される。ネットワーク誤差は、逆伝播されることができ、重み更新は、ネットワークの漸進的なチューニングのために効率的に計算され、オンライン・トレーニング・プロセスによる重みの最適化を可能にする。従ってシステムは、高度に効率的なONNトレーニング、およびトレーニングされたネットワークの性能の顕著な改善を提供する。
【0024】
本発明を具体化するシステムにおいて、ネットワーク出力信号SOUT(φ)の、位相に対する依存性は、位相に対するSOUT(φ)の依存性が1次近似に対して線形であるという意味で、実質的に線形でなければならない。一般に、線形性の程度が大きいほど、より正確な結果に繋がり、従って関数SOUT(φ)において線形項が主要項であることが好ましい。何らかの高次の非線形項がある場合、それらは理想的には線形項と比べて小さい、例えば線形項の大きさ(magnitude)の5%、より好ましくは1%未満である。
【0025】
一般に、電子発振器Oに対して、任意の所望の回路実装形態が使用され得る。好ましい実施形態は、緩和発振器回路を使用し、特に好ましい実装形態が以下で詳述される。マルチレイヤONN2において、異なるネットワーク・レイヤlは、異なる数の発振器を含むことができ、発振器の数は通常、ネットワークの連続するレイヤにわたって減少する。以下でさらに説明されるように、ネットワークはまた、追加の処理ステージ、例えばプーリングおよび活性ステージを含み得る。図2には全結合型ネットワーク・レイヤが示されるが、所与の発振器は、要素9を通じて、レイヤ内の1つまたは複数の発振器に結合され得る。
【0026】
ネットワークにおけるシナプス接続をもたらす結合要素9は、多様なプログラマブル・メモリ回路を用いた一般に知られているやり方で実施され得る。PCM(相変化メモリ)セルなどの抵抗変化型メモリ・デバイスのメムリスティブ特性に基づく、様々なシナプス実装形態が知られている。このようなデバイスは、デバイスへの電流または電圧信号の印加によって、異なる電気抵抗を呈する、異なる内部状態にプログラムされ得る不揮発性メモリ・デバイスである。結合要素9は、例えば、PCMセル、または導電性ブリッジRRAMセル、酸化物もしくは金属酸化物RRAMセル、カーボンRRAMセル、磁気抵抗ランダム・アクセス・メモリ(MRAM)要素、および強誘電体ランダム・アクセス・メモリ(FeRAM)要素を含む、抵抗変化型RAM(RRAM)セルなどの他の抵抗変化型メモリ・セルに基づく任意のタイプのメムリスティブ・デバイス、ならびにプログラマブル・メモリ・デバイスを実装する回路デバイス、例えばトランジスタ、抵抗、キャパシタ、またはインダクタあるいはその組合せを備えたCMOS回路、を備え得る。
【0027】
いくつかの実装形態において、システム・コントローラ4は、システム・オン・チップ設計においてONN2と統合され得る。他の実装形態において、システム・コントローラは、ONN2に動作可能に結合されたホスト・コンピュータによって実装され得る。制御機能は、専らホスト・コンピュータによって行われることができ、または制御機能は、ONN2と統合された、ホストからの制御信号に応答して、ローカル制御動作、例えばネットワーク重みのプログラミングを行う制御装置と通信するホスト・プロセッサによって実装されることができる。一般に、コントローラ4は、1つまたは複数の(汎用または専用)コンピュータ/プログラム可能なデータ処理装置によって実装されることができ、コントローラによって行われる処理動作の機能ステップは、ハードウェアもしくはソフトウェアまたはそれらの組合せによって実施され得る。メモリ6は、1つまたは複数のデータ・ストレージ・エンティティを備えることができ、また、メイン・メモリ、例えばDRAM(ダイナミック・ランダム・アクセス・メモリ)、またはCPU5から物理的に分離された他のストレージあるいはその組合せ、ならびにキャッシュまたはCPU5にローカルな他のメモリあるいはその両方を備え得る。
【0028】
システム1の好ましい実装形態は、以下でより詳しく述べられる。図4は、入力サンプル・データがトレーニング画像の画素を定義する、画像処理アプリケーション用のエンコーダ3の動作を示す。この簡単な例では、白と黒の間のグレー・スケールに対応する画素値を有する、4つの画素が示される。エンコーダ3は、基準信号Srefに対して、それぞれの時間遅延t~tにおいて0ボルトから電圧Vに切り換えられる、一組のDC信号s~sに画素値をエンコードする。これらの時間遅延の大きさ(magnitude)は、例えば0(白)と1(黒)の間のグレー・スケール画素値に対応する。示される例において信号sは、基準信号Srefに対応し、それによってt=0である。時間遅延は、黒い画素に対する最大時間遅延tまで、画素値と共に増加する。DC信号s~sは、時間遅延ベクトルτ=(t、t、t、t)をエンコードする、ネットワーク入力信号SIN(τ)の構成要素となる。任意のタイプのトレーニング・サンプルを定義する、任意の数の画像画素、またはデータ・ポイントが、この方式によってエンコードされ得る。
【0029】
図5は、ネットワーク・レイヤlに対する特に好ましい実装形態を示す。この回路30は、電界効果トランジスタ、ここではMOSFET(金属酸化膜半導体電界効果トランジスタ)31をそれぞれが備えた、n個の緩和発振器を備える。各発振器は、負性微分抵抗(NDR)32を有するデバイスが並列に接続された、キャパシタCをさらに備える。NDR32は、様々なやり方で実装することができ、この実施形態は、VO薄膜接合に基づくPCMスイッチング要素を用いる。発振器は、図2を参照して一般に述べられるように、RRAM要素34のアレイ33を通じて結合される。これらのメムリスティブ要素34の密なアレイは、よく知られている材料処理技術を用いて、集積化ナノスケール・システムとして製造され得る。
【0030】
入力信号SIN(τ)にエンコードされた時間遅延は、ONNの最初のレイヤ30内のそれぞれのトランジスタ31のゲートに印加される信号のタイミングを決定する。SIN(τ)の成分信号s、s、・・・、sは、ここではそれぞれのトランジスタ31のゲートに直接印加されることができ、振動信号o、o、・・・、oの生成を開始する。図6は、好ましい実施形態において、レイヤ回路30を用いた単一レイヤONN35の構造を示す。入力エンコーダ36は、図4を参照して述べられたように、画像データをエンコードする。入力信号SIN(τ)は、ネットワーク・レイヤ30のRRAMマトリクス33によって結合された発振器O~Oに供給される。位相検出ステージ37は、信号o、・・・、oと、基準信号Srefとの間の位相差のベクトルφを検出して、出力信号SOUT(φ)をもたらす。これは、所定の非線形関数を出力信号に適用する活性ステージ38に供給される。活性ステージ38は、正規化線形ユニット(ReLU:Rectified Linear Unit)関数を出力信号に適用するために、ここでは一組のダイオード39によってハードウェアにおいて実装される。ダイオード39は、例えばトランジスタによって実装され得るが、抵抗RおよびキャパシタンスCを有する、図7に示される等価回路によって実装されることが便利であり、Vは、ダイオードの順方向バイアス電圧を表す。活性ステージ38からの結果としての信号A(φ)は、以下で詳述されるさらなる処理のために、コントローラ4に供給される。
【0031】
ONN35における位相差のベクトルφは、入力時間遅延ベクトルと、ネットワーク重みとに依存する。図4の画像処理アプリケーションについて、ネットワークは、入力信号sにおける時間遅延t=0(白い画素に対応する)が、結果として、(定常状態で)基準信号Srefと同位相である振動信号ojを生じるように、トレーニングされ得る。入力信号sにおける時間遅延t=t(黒い画素に対応する)は、結果としてSrefに対して、(定常状態で)πの位相差を有する振動信号ojを生じる。グレー・スケール値は、結果として、特定の相関アプリケーションに応じた位相差を生じ得る。例えば、白黒画像のみの検出が必要な場合、グレー・スケール値は、0の位相差、または定義された閾値に対する画素値に応じて0もしくはπの位相差を結果として生じ得る。グレー・スケール画像の検出が必要な場合、グレー・スケール値は、0とπの間のスケール上の位相差を結果として生じ得る。
【0032】
図8は、レイヤ回路30に基づく2レイヤONN40を示し、図6の同様な構成要素は、同様な参照番号によって示される。ここで、ダイオード39を備えた、活性ステージ41は、最初のネットワーク・レイヤlの出力に直接接続される。このステージはまた、信号成分を、次のネットワーク・レイヤへの入力のために必要なm個の信号に組合せることによって、信号プーリングを行う。このレイヤは、図4に示される一般的な構造を有して、RRAMマトリクス42によって結合された、m個の発振器O~Oを備える。位相検出ステージ43は、このレイヤ内の振動信号o、・・・、oと、基準信号Srefとの間の位相差を検出する。結果としての信号SOUT(φ)は、ReLU関数をネットワーク出力に適用するために、やはりダイオード39によって実装された、活性ステージ44に供給される。結果としての信号A(φ)は、さらなる処理のためにコントローラ4に供給される。
【0033】
図8に示される構造は、任意の所望の数のネットワーク・レイヤlに容易に拡張され得る。ネットワーク重みの初期値は、例えばランダムに分散された値などの、様々なやり方で選択されることができ、またはオフラインでの重みの数学的な事前トレーニングによって、例えばヘブ学習を通じて決定され得る。
【0034】
ONN35、40内の振動信号は、
【数1】
の形の指数関数的依存性によって記述されるが、ネットワーク・レイヤlの出力での信号は、φ∝(W×τ)に従って、位相に線形に依存し、ここで、Wはそのレイヤに対する重み行列、τはそのレイヤへの入力での時間遅延τのベクトルである。図9は、この実施形態においてコントローラ4によって行われる、重み更新プロセスのステップを示す。ステップ50で、コントローラは、ネットワークに対するコスト関数を評価し、ここで、このコスト関数は、トレーニング・サンプルに対する所望の出力と、出力信号の非線形関数A(φ)との差に依存する。この実施形態でのコスト関数Cは、式1で与えられ、
【数2】
ここで、Oは最後のネットワーク・レイヤの出力でのA(Φ)(O=A(φ))であり、また、
【数3】
は、上述のような所望のネットワーク出力である。ステップ51で、コントローラは、コスト関数の式2の導関数C’(W)として、ネットワーク誤差δを計算する。
【数4】
これは式3を与える。
【数5】
ReLU活性に対して、A(φ)=max(0,φ)、ここでφ>0に対してA’(φ)=1、他の場合はA’(φ)=0である。図4の画像処理アプリケーションについては、位相差φは、Srefに相対する、任意の位相差値で0≦φ≦πで与えられ、πと2πとの間は、0≦φ≦πの範囲内にスケール変更するように、360°からその値を減算した値として検出される。
【0035】
ネットワーク誤差δは、それぞれの先行するネットワーク・レイヤの出力における誤差δを計算するために、ネットワークを通して逆伝播される。これは、通常のやり方で連鎖法則を用いて、コントローラ4によって計算され得る。次いでステップ52で、各ネットワーク・レイヤlに対する重み更新ΔWが計算される。述べられる、より好ましい実施形態に対しては、重み更新計算は、式4に簡素化する。
【数6】
ここでTはベクトルの転置を表し、ηは学習パラメータ(通常0<η<1)であり、これは各レイヤに対して望ましいように設定され得る。従って列ベクトルηδに、行ベクトル(τを乗算することで、レイヤlに対する重み更新Δwの行列ΔWを与える。ステップ53で、コントローラは、各レイヤに対する行列ΔW内の対応するエントリに従って、各ネットワーク重みを更新し、トレーニングは次のエポックに続く。
【0036】
上記の好ましい実施形態は、ハードウェアONNのオンライン・トレーニングのための高度に効率的なシステムをもたらす。ONNは、極めて高速で、および非常に低電力消費で動作することができる。図5のレイヤ構造は、FET31のゲートへの入力信号の印加を通じて、発振回路のきめ細かな制御をもたらし、高度に正確なタイミング制御を与える。これはトレーニング・プロセスの全体的な精度を改善し、高速のトレーニング、およびトレーニングされたネットワークの強化された性能を提供する。
【0037】
図10は、トレーニング・パターンを学習するように、単一レイヤONNを用いて本発明を具体化したシステムに対するテスト結果を示す。図の左側に示される、簡単な9画素トレーニング画像が、このテストのために用いられた。入力における何らかのグレー・スケール変化に関わらず白黒画像を検出するように、ONNをトレーニングする目的で、上述のような9個の発振器を有する単一レイヤONNに、画像画素が適用された。従って選択されたトレーニング画像は、グレー・スケール変化の程度により、特に難しいテストを表す。テストに対するネットワーク出力は、図内の同等の平坦化された画像によって示される。7つだけのトレーニング・エポックの後、ネットワーク出力は、要求される白黒画像に一致した。
【0038】
トレーニングの後に推論動作のために適用されるとき、トレーニングされたネットワーク重みは、固定されたままとなる。次いで(以前は未知であった)入力画像に応答してネットワーク出力は、ネットワークが検出するようにトレーニングされた、画像の特定のタイプまたはカテゴリにマッピングするラベルを示す。本発明を具体化した方法によってトレーニングされたONNは、ヘブ学習に基づいた従来のトレーニング方法と比べて強化された推論性能を提供する。これは図11に示され、図11は、ヘブ学習および上述の逆伝播トレーニング方式によって白黒画像を認識するようにトレーニングされたONNに対する推論結果を比較する。ネットワークが、入力画像の正しい白黒バージョンを正しく識別する確率が、白から黒までのグレー・スケール上の50%まで、入力画像のグレー・スケールにおける許容される偏差に対してプロットされる。両方のトレーニング方法は、約23%までのグレー・スケール偏差の正確な結果を与えた。しかし、本発明を具体化した方法は、より高いグレー・スケール偏差での、より困難なテストに対して、ヘブ学習を著しく凌駕した。
【0039】
述べられた例示的実施形態に対して、多くの変更および修正がなされ得ることが理解されるであろう。例えば、上記で好ましいハードウェア実装形態が述べられたが、活性ステージは、他の実施形態ではコントローラ4においてソフトウェアによって実施され得る。いくつかの実施形態において、他の活性関数、例えばシグモイド活性が用いられ得る。導関数が容易に定義され得るならば、異なるコスト関数も使用され得る。図5の発振器回路に対する様々な変更形態も想定され得る。例えば、NDR32の代わりに、それぞれのトランジスタ31の両端でキャパシタが省かれ得る。
【0040】
一般に、特徴が、本発明を具体化する方法を参照して述べられる場合、対応する特徴は、本発明を具体化するシステム/コンピュータ・プログラム製品においてもたらされることができ、逆も同様である。
【0041】
本発明の様々な実施形態の説明は、例示のために提示されたが、網羅的であるまたは開示される実施形態に限定されるものではない。当業者には、述べられる実施形態の範囲および思想から逸脱せずに、多くの変更形態および変形形態が明らかになるであろう。本明細書で用いられる専門用語は、実施形態の原理、実用的な応用例、または市場で見出される技術に対する技術的改良を最もよく説明するように、または当業者が本明細書で開示される実施形態を理解することを可能にするように選ばれている。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11