(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-10
(45)【発行日】2022-05-18
(54)【発明の名称】ニューラルネットワークの入出力制御方式
(51)【国際特許分類】
G06N 3/04 20060101AFI20220511BHJP
G06N 3/063 20060101ALI20220511BHJP
G06G 7/60 20060101ALI20220511BHJP
【FI】
G06N3/04
G06N3/063
G06G7/60
(21)【出願番号】P 2018155914
(22)【出願日】2018-08-23
【審査請求日】2021-02-03
(73)【特許権者】
【識別番号】000006105
【氏名又は名称】株式会社明電舎
(74)【代理人】
【識別番号】100086232
【氏名又は名称】小林 博通
(74)【代理人】
【識別番号】100092613
【氏名又は名称】富岡 潔
(74)【代理人】
【識別番号】100104938
【氏名又は名称】鵜澤 英久
(74)【代理人】
【識別番号】100210240
【氏名又は名称】太田 友幸
(72)【発明者】
【氏名】森 文彦
(72)【発明者】
【氏名】▲高▼崎 秀郎
【審査官】今城 朋彬
(56)【参考文献】
【文献】国際公開第2018/211129(WO,A1)
【文献】特開平04-316153(JP,A)
【文献】米国特許出願公開第2018/0005108(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-20/00
(57)【特許請求の範囲】
【請求項1】
外部からの信号を受ける入力層と、
前記信号に基づき演算を実行する複数の中間層と、
前記演算の結果を整形して外部に出力する出力層と、
を備えたニューラルネットワークのの
入出力制御方式であって、
前記中間層の各層は、前記演算を実行する複数の演算部と、
前記演算部への入力を選択する入力マルチプレクサと、
前記演算部の演算結果を保持する出力レジスタと、を備え、
前記入力マルチプレクサは、前層の出力信号と前記出力レジスタの保持内容とのいずれか一方を選択し、
前記入力マルチプレクサが、前層の出力信号を選択すれば前記出力レジスタの保持内容を次層に出力信号として出力する
ことを特徴とするニューラルネットワークの
入出力制御方式。
【請求項2】
前記層の層番号を示し、
前記層番号を前記入力マルチプレクサと前記演算部とに通知する層番号カウンタをさらに備える
ことを特徴とする請求項
1記載のニューラルネットワークの
入出力制御方式。
【請求項3】
並列の前記ニューラルネットワークの前記層数を合算したときの前記層の層番号を示し、
前記層番号を前記入力マルチプレクサと前記演算部とに通知する層番号カウンタをさらに備える
ことを特徴とする請求項
1記載のニューラルネットワークの
入出力制御方式。
【請求項4】
前記各ニューラルネットワークへの入力と出力とを制御する入出力制御部をさらに備える
ことを特徴とする請求項
3記載のニューラルネットワークの
入出力制御方式。
【請求項5】
前記層番号カウンタと前記出力レジスタとが同期動作することを特徴とする請求項3
または4記載のニューラルネットワークの
入出力制御方式。
【請求項6】
前記演算部への入力に対する重みとバイアスとを格納するパラメータメモリをさらに備え、
前記パラメータメモリの格納情報を調整することで前記重みと前記バイアスとが調整可能なことを特徴とする請求項1~
5のいずれかに記載のニューラルネットワークの
入出力制御方式。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パイプライン処理を用いたニューラルネットワークの入出力制御方式に関する。
【背景技術】
【0002】
ニューラルネットワークは、主に三種類の層で構成され、外部からの信号を受ける入力層と、入力された信号に基づき演算を実行する中間層と、演算の結果を整形して外部に出力する出力層とを備え、各層間にはニューロン同士のつながりの強さを示す重みが設定されている。
【0003】
すなわち、人間の脳のニューロンは電気信号として情報伝達を行う。その際にシナプスの結合強度(つながりの強さ)によって、情報の伝わりやすさが変わってくる。この結合強度を人工ニューロンでは重みで表現する。
【0004】
個々の人工ニューロンは単純な仕組みであるが、それを多数組み合わせることで複雑な関数近似を行うことができる。このようなニューラルネットワークのアーキテクチュアは、例えば特許文献1~4に開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開平02-064880
【文献】特開平05-346914
【文献】特開平06-139219
【文献】特開平06-195322
【発明の概要】
【発明が解決しようとする課題】
【0006】
前述のように人工ニューラルネットワークを多数組み合わせることで複雑な関数近似を行うことが可能となるものの、以下の問題が生じるおそれがある。
【0007】
すなわち、ニューラルネットワーク内のパーセプロンの各入力には、入力信号に対して重みとバイアスとが付加されている。ここで従来、ニューラルネットワークは、重みとバイアスや層数の変更についての明確な示唆はない。
【0008】
特にニューラルネットワークの電力消費は、層ごとの異なる演算量によって変動するため、消費電力により層数が外部から解析され、電力解析攻撃の対象となるおそれがある。
【0009】
本発明は、このような従来の問題を解決するためになされ、ニューラルネットワークの電力消費を平準化することで外部からの電力解析を防ぎ、電力解析攻撃への対策を施すことを解決課題としている。
【課題を解決するための手段】
【0010】
(1)本発明は、外部からの信号を受ける入力層と、
前記信号に基づき演算を実行する複数の中間層と、
前記演算の結果を整形して外部に出力する出力層と、
を備えたニューラルネットワークのアーキテクチュアであって、
前記中間層の各層は、前記演算を実行する複数の演算部と、
前記演算部への入力を選択する入力マルチプレクサと、
前記演算部の演算結果を保持する出力レジスタと、を備え、
前記入力マルチプレクサは、前層の出力信号と前記出力レジスタの保持内容とのいずれか一方を選択することを特徴としている。
【0011】
(2)本発明の一態様は、前記入力マルチプレクサが、前層の出力信号を選択すれば前記出力レジスタの保持内容を次層に出力信号として出力する。
【0012】
(3)本発明の他の態様は、前記層の層番号を示し、
前記層番号を前記入力マルチプレクサと前記演算部とに通知する層番号カウンタをさらに備える。
【0013】
(4)本発明のさらに他の態様は、並列の前記ニューラルネットワークの前記層数を合算したときの前記層の層番号を示し、
前記層番号を前記入力マルチプレクサと前記演算部とに通知する層番号カウンタをさらに備える。
【0014】
(5)本発明のさらに他の態様は、前記各ニューラルネットワークへの入力と出力とを制御する入出力制御部をさらに備える。
【0015】
(6)本発明のさらに他の態様は、前記層番号カウンタと前記出力レジスタとが同期動作する。
【0016】
(7)本発明のさらに他の態様は、前記演算部への入力に対する重みとバイアスとを格納するパラメータメモリをさらに備え、
前記パラメータメモリの格納情報を調整することで前記重みと前記バイアスとが調整することができる。
【発明の効果】
【0017】
本発明によれば、ニューラルネットワークの電力消費が平準化され、外部からの電力解析を防ぐことができる。この点で電力解析攻撃への対策が施される。
【図面の簡単な説明】
【0018】
【
図6】同 各層の演算を並列にパイプライン化した場合の1パイプラインステージ毎の演算を示す動作図。
【発明を実施するための形態】
【0019】
以下、本発明の実施形態に係るニューラルネットワークの
入出力制御方式を説明する。ここでは
図1に示すニューラルネットワーク1への
前記入出力制御方式の適用例を説明する。
【0020】
このニューラルネットワーク1は、外部からの信号を受ける入力層(1層)と、入力された信号に基づき演算を実行する中間層(6層)と、演算の結果を整形して外部に出力する出力層(1層)とを備えている。以下、実施例1,2に基づき前記アーキテクチャの詳細を説明する。
【0021】
≪実施例1≫
図2~
図4に基づき実施例1を説明する。ここではニューラルネットワーク1の各層には消費電力の平準化を図る構成が採用されている。
【0022】
(1)各層の構成
図2に基づき実施例1に係るニューラルネットワーク1の各層の構成を説明する。
図2中の21-1~21-4は4段のパーセプトロン21を示し、同25-1~25-4はパーセプトロン21-1~21-4への入力を選択する入力マルチプレクサ25を示し、同26はパーセプトロン21-1~21-4の演算結果を保持する出力レジスタ26を示し、各層は前記各構成21,25,26を備えている。
【0023】
この入力マルチプレクサ25-1~25-4は、入力信号P-1~P-4の入力値/前層の出力信号Q-1~Q-4と出力レジスタ26の保持内容とのいずれか一方を選択し、選択の結果をパーセプロン21-1~21-4に入力する。このとき中間層および出力層は、前層の出力信号Q-1~Q-4が入力マルチプレクサ25-1~25-4に選択対象として入力される。
【0024】
一方、入力層では外部からの入力信号P-1~P-4が入力マルチプレクサ25-1~25-4に選択対象として入力される。なお、
図2は中間層の第1層を示し、入力層に入力された入力信号P-1~P-4がそのまま出力されて入力マルチプレクサ25-1~25-4に入力される状態を示している。
【0025】
また、各層には連続する層番号が付与され、層番号カウンタ27の値により何層目としての層番号が示されている。この層番号カウンタ27は、層番号を入力マルチプレクサ25-1~25-4とパーセプトロン21-1~21-4とに通知する。
【0026】
ここでは出力レジスタ26と層番号カウンタ27とが同じクロックを使用することで両者26,27が同時動作し、層毎の演算結果を出力レジスタ26に保持することができる。また、出力レジスタ26は、層番号カウンタ27の値で示される層の演算結果を出力信号Q-1~Q-4に出力する。このような
図2の1層分がパイプラインの1ステージを構成し、層番号カウンタ27をインクリメントすれば次の層番号となる。
【0027】
そして、入力マルチプレクサ25-1~25-4が入力信号P-1~P-4の入力値/前層の出力信号Q-1~Q-4を選択すれば、その内容がパーセプロン21-1~21-4に入力され、出力レジスタ26の保持内容は出力信号Q-1~Q-4として出力される。この点でパイプラインが現ステージの結果を次ステージの入力とする動作と同じとなる。
【0028】
一方、入力マルチプレクサ25-1~25-4が出力レジスタ26の保持内容を選択すれば該出力レジスタ26の保持内容は、出力信号Q-1~Q-4として出力されことなく、パーセプロン21-1~21-4に入力される。その結果、各マルチプレクサ25-1~25-4の選択の設定に応じて、パーセプトロン21-1~21-4の演算結果の使用・不使用を制御することが可能となる。
【0029】
(2)パーセプトロンの内部構成
図3に基づき各パーセプトロン21-1~21-4の内部構成を説明する。
図3中では代表して一つのパーセプトロン21の内部構成を中心に示しているが、ニューラルネットワーク1内のすべてのパーセプトロン21-1~21-4で同じ構成とする。
【0030】
具体的には各層のパーセプトロン21-1~21-4は、パラメータメモリ31,乗算器32,加算器33,演算器34を備える。すなわち、パーセプトロン21-1~21-4の入力1~4に対する重みとバイアスとは、固定値なため、パラメータメモリ31に格納される。この入力1~4は、入力マルチプレクサ25-1~25-4の選択により入力されたものとする。
【0031】
ここでは層番号カウンタ27の値に応じてパラメータメモリ31から該当する重みとバイアスとを取得することができる。取得された重みは乗算器32に入力される一方、バイアスは加算器33に入力され、演算器34により入力値を計算し、計算結果を出力レジスタ26に出力する。
【0032】
このとき1層を1パイプラインステージとするため、層を増やす場合には層番号カウンタ27の最大カウント値とパラメータメモリ31の格納内容を追加することで対応することができる。なお、重みとバイアスの変更は、パラメータメモリ31の格納内容を変更することで対応可能である。
【0033】
(3)動作例
図4に基づきニューラルネットワーク1のパイプライン動作を説明する。
図4中の出力信号Q-1~Q-4は、パーセプトロン21-1~21-4の演算結果を示している。また、層番号カウンタ27の層番号「0」は入力層を示し、層番号「1~6」は中間層の各層を示し、層番号「7」は出力層を示している。
【0034】
・入力層のステージ
入力層のステージでは、三つのパーセプトロン21-1~21-3を使用し、出力信号Q-1~Q-3に入力信号P-1~P-3の内容を出力する。
【0035】
・中間層のステージ
中間層のステージを「第1層~第3層(層番号1~3)」と「第4槽および第5層(層番号4,5)」と「第6層(層番号6)」とに大別して説明する。
【0036】
(A)まず「第1層~第3層」のステージでは、4つのパーセプトロン21-1~21-4を使用する。この第1層の入力マルチプレクサ25-1~25-4は、入力層の出力信号Q-1~Q-4をパーセプトロン21-1~21-4の入力に選択する。この入力に基づくパーセプトロン21-1~21-4の演算結果が、出力信号Q-1~Q-4として第2層に出力される。
【0037】
また、第2層の入力マルチプレクサ25-1~25-4は、第1層の出力信号Q-1~Q-4をパーセプトロン21-1~21-4の入力に選択する。この入力に基づくパーセプトロン21-1~21-4の演算結果が、出力信号Q-1~Q-4として第3層に出力される。
【0038】
さらに第3層の入力マルチプレクサ25-1~25-4は、第2層の出力信号Q-1~Q-4をパーセプトロン21-1~21-4の入力に選択する。この入力に基づくパーセプトロン21-1~21-4の演算結果が、出力信号Q-1~Q-4として第4層に出力される。
【0039】
(B)つぎに「第4槽および第5層」のステージでは、三つのパーセプトロン21-1~21-3を使用する。この第4槽の入力マルチプレクサ25-1~25-3は、第3層の出力信号Q-1~Q-4をパーセプトロン21-1~21-3の入力に選択する。この入力に基づくパーセプトロン21-1~21-3の演算結果が、出力信号Q-1~Q-3として第5層に出力される。
【0040】
同様に第5層の入力マルチプレクサ25-1~25-3は、第4層の出力信号Q-1~Q-4をパーセプトロン21-1~21-3の入力に選択する。この入力に基づくパーセプトロン21-1~21-3の演算結果が、出力信号Q-1~Q-3として第6層に出力される。
【0041】
一方、第4槽および第5層の入力マルチプレクサ25-4は、出力レジスタ26の保持内容をパーセプトロン21-4の入力に選択する。このときパーセプトロン21-4の演算結果は出力されないものの、演算は実行される。これにより4つのパーセプトロン21-1~21-4を使用する第1層~第3層のステージと同等の演算量となり、電力消費も同等となる。
【0042】
(C)「第6層」のステージでは、2つのパーセプトロン21-1,21-2を使用する。ここでは入力マルチプレクサ25-1,25-2は、第5層の出力信号Q-1~Q-3をパーセプトロン21-1,21-2の入力に選択する。この入力に基づくパーセプトロン21-1,21-2の演算結果が、出力信号Q-1,Q-2として出力層に出力される。
【0043】
一方、入力マルチプレクサ25-3,25-4は、出力レジスタ26の保持内容をパーセプトロン21-3,21-4の入力に選択する。このときパーセプトロン21-3,21-4の演算結果は出力されないものの、演算は実行される。
【0044】
これにより4つのパーセプトロン21-1~21-4を使用する第1層~第3層のステージと同等の演算量となり、電力消費も同等となる。その結果、中間層の各層で電力消費が平準化され、外部からの電力解析が困難となる。この点で電力解析攻撃による内部動作の情報漏えいを対策できる。
【0045】
・出力ステージ
出力ステージでは、パーセプトロン21-1を使用し、出力信号Q-1にニューラルネットワーク全体の演算結果を出力する。すなわち、入力マルチプレクサ25-1は、第6層の出力信号Q-1,Q-2をパーセプトロン21-1の入力に選択する。
【0046】
この入力信号に基づくパーセプトロン21-1の演算結果をニューラルネットワーク全体の演算結果として出力する。このとき出力信号Q-1が出力層の内容であることを後段の回路やソフトウェアに通知するため、出力信号Q-4に任意の識別用のパターンを出力する。
【0047】
一方、入力マルチプレクサ25-2~25-4は、出力レジスタ26の保持内容をパーセプトロン21-2~25-4の入力に選択する。このときパーセプトロン21-2~21-4の演算結果は出力されないものの、演算は実行される。これにより4つのパーセプトロン21-1~21-4を使用する第1層~第3層のステージと同等の演算量となり、電力消費も同等となる。
【0048】
このように中間層だけでなく、パイプラインの各ステージ(入力層~出力層のステージ)において電力消費を同等に平準化できるため、外部からの電力解析を困難とし、内部動作の情報漏洩を対策でき、ニューラルネットワーク1のセキュリティが向上する。
【0049】
また、パイプライン動作は、周期的に動作し続けるため、パイプライン段数で実現するニューラルネットワークの層数の外部からの推測を困難とし、この点でも電力解析攻撃と同様に内部動作の情報漏えいが対策される。
【0050】
≪実施例2≫
図5~
図7に基づき実施例2を説明する。ここではニューラルネットワークのセキュリティ向上と併せて消費電力の削減を図る。
【0051】
すなわち、ニューラルネットワーク内のパーセプロンの各入力には入力信号に対して重みとバイアスが付与されている。一般的なニューラルネットワークは、入力層・出力層に比べて演算を行う中間層のパーセプトロン数が多く、消費電流が増加する傾向がある。
【0052】
例えば演算処理速度の向上を図るため、2つの入力に対して並列してニューラルネットワークの演算を行おうとすれば、電流消費のピーク値は2倍になってしまう。特に電源供給を蓄電池に依存している電子機器、例えば遠方監視装置やマンホール型アンテナなどにニューラルネットワークを適用する場合に消費電力の削減が問題となる。そこで、実施例2では複数のニューラルネットワークの演算を実施した場合における消費電力の削減を図っている。
【0053】
(1)各層の構成例
図5に基づき実施例2に係るニューラルネットワーク1の各層の構成を説明する。この実施例2では、各層のパーセプトロン21数を複数のニューラルネットワーク1を並列動作させたときに必要となる最大の個数に設定する。
【0054】
ここでは
図6に示す並列動作を考慮して各層は、最大数を6つのパーセプロン21を備えている。この6つのパーセプロン21は、
図5中のパーセプロン21-1~21-6として示されている。
【0055】
そして、各層はパーセプロン21-1~21-6への入力を選択する入力マルチプレクサ25-1~25-6と、パーセプロン21-1~21-6の演算結果を保持する出力レジスタ26と、並列動作のニューラルネットワークの入力と演算結果の出力を制御する入出力制御部28とを備えている。
【0056】
また、各層には並列ニューラルネットワークを合算したときに何層目を表す連続番号が付与され、層番号カウンタの値により層番号が示されている。この層番号カウンタ27は、実施例1と同様に層番号を入力マルチプレクサ25-1~25-6とパーセプトロン21-1~21-6とに通知する。
【0057】
ここでは層番号カウンタ27は、2つのニューラルネットワークを並列動作させた際、先発動作を開始したネットワークに対する次の入力までインクリメントされ、その後にカウント「0」に戻って再開される。なお、各構成21,25,26の詳細および動作内容などは実施例1と同様とする。
【0058】
(2)動作例
図6および
図7に基づきニューラルネットワーク1を並列動作させたときのパイプライン処理を説明する。
図7中の出力信号Q-1~Q-6は、パーセプトロン21-1~21-6の演算結果を示している。
【0059】
また、先発ネットワークAは先に処理が開始されるニューラルネットワーク1を示し、後発ネットワークBは先発ネットワークAの後に続いて処理が開始されるニューラルネットワーク1を示している。以下、層番号カウンタ27の示す層番号のステージ毎に説明する。
【0060】
・層番号「0」
層番号「0」のステージでは、実施例1の入力層のステージと同じく、3つのパーセプトロン21-1~21-3を使用し、出力信号Q-1~Q-3に入力信号P-1~P-3の演算結果を出力する。この入力信号P-1~P-3の入力は、先発ネットワークAへの入力となっている。
【0061】
・層番号「1~3」
層番号「1~3」のステージでは、4つのパーセプトロン21-1~21-4を使用し、出力信号Q-1~Q-4にパーセプトロン21-1~21-4の演算結果を出力する。
【0062】
・層番号「4」
層番号「4」のステージでは、3つのパーセプトロン21-1~21-3を使用し、出力信号Q-1~Q-3にパーセプトロン21-1~21-3の演算結果を出力する。
【0063】
・層番号「5」
層番号「5」のステージでは、6つのパーセプトロン21-1~21-6のすべてを使用する。ここでは
図6および
図7に示すように、先発ネットワークAの中間層に対する演算に3つのパーセプトロン21-1~21-3が使用され、出力信号Q-1~Q-3にパーセプトロン21-1~21-3の演算結果を出力する。
【0064】
また、入出力制御部28により後発ネットワークBの入力が行われ、入力信号P-4~P-6が3つのパーセプトロン21-4~21-6に入力される。これにより後発ネットワークBの動作が開始され、ニューラルネットワークA,Bの並列動作が始まる。ここではパーセプトロン21-4~21-6は、出力信号Q-4~Q-6に入力信号P-4~P-6の演算結果を出力するものとする。
【0065】
・層番号「6」
層番号「6」のステージでも、6つのパーセプトロン21-1~21-6のすべてを使用する。すなわち、先発ネットワークAの演算にパーセプトロン21-1,21-2を使用する一方、後発ネットワークBの演算にパーセプトロン26-3~26-6を使用する。このパーセプトロン21-1~21-6の入出力は、入出力制御部28により制御されている。
【0066】
・層番号「7」~「9」
層番号「7」のステージでは、5つのパーセプトロン21-1,21-3~21-6を使用する。このパーセプトロン21-1は、入出力制御部28の制御により出力信号Q-1に先発ネットワークAの全体としての演算結果を出力する。
【0067】
また、層番号「7」~「9」のステージにおいて、入出力制御部28はパーセプトロン21-3~21-6に後発ネットワークBの演算を随時実施させる。その後、層番号が「9」~「0」に切り替わる際、入出力制御部28の制御により先発ネットワークAの入力が行われるため、ネットワークA,Bの2度目の並列動作が開始される。
【0068】
すなわち、パーセプトロン21-1~21-3に先発ネットワークAの入力が行われる一方、パーセプトロン21-4~21-6で後発ネットワークBの演算が行われる。
【0069】
この2度目以降の並列動作時のネットワークA,Bに対する入出力制御部28の制御を説明すれば、
図6および
図7に示すように、ネットワークAについては層番号「0」のときに入力が行われる一方、層番号「6」のときに全体の演算結果が出力され、層番号「1~5」の間で演算が実施される。
【0070】
また、後発ネットワークBについては、層番号「5」のときに入力が行われる一方、層番号「2」のときに全体の演算結果が出力され、層番号「6~1」の間で演算が実施される。ただし、1回目の演算開始後は、層番号「2」であっても演算は出力されない。
【0071】
このようなネットワークA,Bの並列動作を周期的に続行することにより、1パイプラインステージの演算に必要なパーセプトロン21数を抑えながら並列動作が可能となる。その結果、実施例1の効果のほかに以下の効果が得られる。
(a)2つのネットワークA,Bの演算を実施した場合でも最大のパーセプロン21数を抑制することで消費電力が低減される。
(b)ネットワークA,Bの演算を並列動作させることで該ネットワークA,Bの演算結果を得られる時間が短縮される。この意味でも消費電力の低減化を図ることができる。
【0072】
なお、本発明は、上記実施形態に限定されるものではなく、各請求項に記載された範囲内で変形して実施することができる。例えばパーセプロン21・マルチプレクサ25は、実施例1,2の個数に限定されず、任意に変更可能である。特に実施例2は、ニューラルネットワークA,Bの並列動作時の最大必要数を用意すればよく、並列状態の変更に応じて可変とする。
【符号の説明】
【0073】
1,A,B…ニューラルネットワーク
21…パーセプトロン
22…ニューロン
25…入力マルチプレクサ
26…出力レジスタ
27…層番号カウンタ
28…入出力制御部
31…パラメータメモリ
32…乗算器
33…加算器
34…演算器