(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-20
(45)【発行日】2023-04-28
(54)【発明の名称】メモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法
(51)【国際特許分類】
G06N 3/08 20230101AFI20230421BHJP
G06N 3/063 20230101ALI20230421BHJP
G11C 11/54 20060101ALI20230421BHJP
G06G 7/60 20060101ALI20230421BHJP
【FI】
G06N3/08
G06N3/063
G11C11/54
G06G7/60
【外国語出願】
(21)【出願番号】P 2022006311
(22)【出願日】2022-01-19
【審査請求日】2022-01-19
(31)【優先権主張番号】202111065383.7
(32)【優先日】2021-09-12
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】505072650
【氏名又は名称】浙江大学
【氏名又は名称原語表記】ZHEJIANG UNIVERSITY
(74)【代理人】
【識別番号】100095407
【氏名又は名称】木村 満
(74)【代理人】
【識別番号】100132883
【氏名又は名称】森川 泰司
(74)【代理人】
【識別番号】100148633
【氏名又は名称】桜田 圭
(74)【代理人】
【識別番号】100147924
【氏名又は名称】美恵 英樹
(72)【発明者】
【氏名】卓 成
(72)【発明者】
【氏名】尹 勳▲ヂャオ▼
(72)【発明者】
【氏名】黄 慶栄
(72)【発明者】
【氏名】高 迪
【審査官】多賀 実
(56)【参考文献】
【文献】特開2019-3547(JP,A)
【文献】米国特許出願公開第2020/0327406(US,A1)
【文献】中国特許出願公開第110956256(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
G11C 11/54
G06G 7/60
(57)【特許請求の範囲】
【請求項1】
メモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法であって、以下のステップを含む。
(1)メモリスタメモリ上に配備されるニューラルネットワーク重みをプロセス誤差と動的誤差の影響下でモデリングすることは、以下のステップを含む。
(1-1)各重みに対応するメモリスタメモリ上の一つのメモリスタの実際のコンダクタンス値をターゲットコンダクタンス値、グローバルコンダクタンス誤差、局所コンダクタンス誤差と動的コンダクタンス誤差の四つの部分に分解し、
(1-2)局所コンダクタンス誤差と動的コンダクタンス誤差を、ターゲットコンダクタンス値を変数とする誤差関数の値と局所プロセス誤差及び動的誤差との積に近似し、
(1-3)局所プロセス誤差と動的誤差をそれぞれガウスランダム変数としてモデリングし、且つ両者が相互に独立し、
(1-4)ステップ(1-1)から(1-3)の結果を利用して、プロセス誤差と動的誤差の影響下での各重みに対応するメモリスタメモリ上の一つのメモリスタの実際のコンダクタンス値のモデリング表現を、ガウスランダム変数として得て、その平均値は、ターゲットコンダクタンス値とグローバルコンダクタンス誤差との和であり、分散は、ターゲットコンダクタンス値を変数とする誤差関数の値と、局所プロセス誤差と動的誤差に対応する二つのガウスランダム変数分散の和との乗算値であり、
(1-5)コンダクタンス値-重みのマッピング関係を利用して、上記モデリングによって得られるコンダクタンス値をニューラルネットワーク重みとしてマッピングし、重みの統計分布表現を得て、
(2)ステップ(1)の中でモデリングによって得られる重みの統計分布を事前分布として、変分事後に基づくベイズニューラルネットワークトレーニングを行い、重みの変分事後分布を得て、
(3)ステップ(2)の中で得られる重みの変分事後分布の平均値を計算し、コンダクタンス-重みマッピング関係を逆に使用してそれをコンダクタンスとしてマッピングし、メモリスタメモリ上のメモリスタの実際のコンダクタンス値とする、ことを特徴とするメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法。
【請求項2】
請求項1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法であって、前記ステップ(1-2)において、ターゲットコンダクタンス値を変数とする誤差関数は、次の形式である。
【数1】
ただし、cは、プロセス誤差と動的誤差レベルを表す定数であり、アプリケーションシナリオでの誤差レベルに基づいて設定され、g
0は、メモリスタメモリ上の各メモリスタのターゲットコンダクタンス値で構成されるベクトルである、ことを特徴とする請求項1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法。
【請求項3】
請求項1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法であって、前記ステップ(1-3)において、モデリングによって得られる局所プロセス誤差を特徴づけるためのガウスランダム変数Δr
l及び動的誤差を特徴づけるためのガウスランダム変数Δr
dは、それぞれ次のガウス分布を満たす。
【数2】
ただし、
【数3】
と
【数4】
は、それぞれ二つのガウス分布の分散であり、いずれも実験によって測定され、Nは、ガウス分布を表す、ことを特徴とする請求項1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法。
【請求項4】
請求項1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法であって、前記ステップ(1-4)において、モデリングによって得られるプロセス誤差と動的誤差の影響下での各重みに対応するメモリスタメモリ上の一つのメモリスタの実際のコンダクタンス値は、次の形式である。
【数5】
ただし、gは、実際のコンダクタンス値であり、g
0は、ターゲットコンダクタンス値であり、Δg
gは、グローバルコンダクタンス誤差であり、
【数6】
と
【数7】
は、それぞれ二つのガウス分布の分散であり、パラメータは、いずれも実験によって測定される、ことを特徴とする請求項1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法。
【請求項5】
請求項1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法であって、前記ステップ(1-5)において、コンダクタンス値-重みのマッピング関係によって得られるニューラルネットワーク重み
【数8】
のi番目のエレメントw
iは、次の形式である。
【数9】
ただし、g
iは、i番目の重みに対応するメモリスタの実際のコンダクタンス値であり、μ
i、Ψ(μ
i)は、それぞれw
iの平均値と分散であり、g
0,iは、i番目の重みに対応するメモリスタのターゲットコンダクタンス値であり、Δg
g,iは、i番目の重みに対応するメモリスタのグローバルコンダクタンス誤差であり、
【数10】
と
【数11】
は、それぞれi番目の重みに対応するメモリスタの局所プロセス誤差値と動的誤差値との分散であり、c
0とc
1は、コンダクタンス値-重みによって線形にマッピングされる二つの定数因子であり、次の方式で計算して得られる。
【数12】
ただし、w
maxとw
minは、それぞれニューラルネットワークの中の全ての重みの最大値と最小値であり、従来のニューラルネットワークトレーニングから取得され、g
maxとg
minは、それぞれメモリスタメモリ上のメモリスタによって調整可能なコンダクタンス範囲の最大値と最小値である、ことを特徴とする請求項1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法。
【請求項6】
請求項1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法であって、前記ステップ(2)において、ニューラルネットワーク重みwの変分事後分布q(w|θ)は、ガウス分布であり、θは、ガウス分布のパラメータであり、平均値と分散とを含み、変分推論に基づくベイズニューラルネットワークトレーニングのターゲット関数は、次の形式である。
【数13】
ただし、g
0は、ニューラルネットワークの全ての重みに対応するメモリスタメモリ上の各メモリスタのターゲットコンダクタンス値で構成されるベクトルであり、P(D|w)は、尤度であり、
【数14】
は、ランダム変数の期待を求めるものであり、KL[・||・]は、二つの分布の相対エントロピを求めるものであり、P(w)は、重み事前分布であり、Dは、ニューラルネットワークトレーニングセットである、ことを特徴とする請求項1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人工知能と記憶計算統合チップ応用分野に属し、具体的には、メモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法であり、プロセス誤差と動的誤差による記憶計算統合ニューラルネットワークチップの正確度の低下を効果的に減少することができる。
【背景技術】
【0002】
近年、メモリスタメモリに基づく記憶計算回路に関連する研究は、比較的に大きな進捗を取得し、このような回路の基本ユニットメモリスタは、不揮発性記憶デバイスであり、メモリスタの両端に異なるサイズの電流を印加することによってそのコンダクタンス値を改変し、さらにメモリスタの中に記憶されるデータを修正することができ、メモリスタを一定の方式で矩形アレイに配列し、且つ行、列方向に接続してメモリスタ記憶アレイを構成する。現在では、メモリスタメモリは、行列-ベクトル積演算によく用いられ、ニューラルネットワークの完全接続層計算を例として、それは、本質的には、重み行列と入力ベクトルに対して行列乗算演算を行って出力ベクトルを得る一回の操作であり、重みをメモリスタコンダクタンスの形式でメモリスタ記憶アレイに書き込み、且つ入力データを電圧の形式で行方向から入力し、列方向に電流の形式で出力ベクトルを得ることができる。CPU、GPU等の従来のコンピュータ体系と比べて、メモリスタメモリは、記憶、計算の二つの機能を融合し、データ移動を減少し、データスループットと計算の並列度を大幅に向上させ、エネルギー消費を低減させるとともに、メモリスタは、新型の不揮発性デバイスとして、従来のメモリと比べて、メモリスタメモリの記憶密度が大きく向上した。以上の優れた特性のため、メモリスタメモリに基づく新型計算チップは、現在で既にニューラルネットワーク計算等のようなデータ密集型アルゴリズムのエネルギ、時間効率を向上させる重要な手段となっている。
【0003】
しかしながら、製造プロセスの制限のため、メモリスタメモリの製造は、プロセス誤差と動的誤差の影響をほぼ必然的に受けるため、実際の回路におけるデバイスパラメータにターゲット値と比べて一定の偏差が現れる。ニューラルネットワーク計算を例として、デバイスパラメータの変化は、メモリスタメモリ上に記憶されるニューラルネットワーク重みにそのターゲット値と比べて一定の偏差が現れ、プロセス誤差以外に、変動とノイズ等の動的誤差も重み値に影響を引き起こし、さらに正確率の低下をもたらし、且つこれらの問題は、大規模のメモリスタメモリに対する影響がより深刻である。以上のハードウェアの非理想的な要素により、メモリスタメモリの計算加速能力と実際の応用における複雑なアルゴリズムの急激な増長の計算ニーズとの間にさらに比較的に大きな差異が存在する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の目的は、従来の技術に存在する不足に対して、プロセス誤差と動的誤差に対するメモリスタメモリ指向のニューラルネットワークトレーニング方法を提供することにある。
【課題を解決するための手段】
【0005】
本発明の目的は、以下の技術案によって実現され、メモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法は、以下のステップを含む。
【0006】
(1)メモリスタメモリ上に配備されるニューラルネットワーク重みをプロセス誤差と動的誤差の影響下でモデリングすることは、以下のステップを含む。
【0007】
(1-1)各重みに対応するメモリスタメモリ上の一つのメモリスタの実際のコンダクタンス値をターゲットコンダクタンス値、グローバルコンダクタンス誤差、局所コンダクタンス誤差と動的コンダクタンス誤差の四つの部分に分解し、
(1-2)局所コンダクタンス誤差と動的コンダクタンス誤差を、ターゲットコンダクタンス値を変数とする誤差関数の値と局所プロセス誤差及び動的誤差との積に近似し、
(1-3)局所プロセス誤差と動的誤差をそれぞれガウスランダム変数としてモデリングし、且つ両者が相互に独立し、
(1-4)ステップ(1-1)から(1-3)の結果を利用して、プロセス誤差と動的誤差の影響下での各重みに対応するメモリスタメモリ上の一つのメモリスタの実際のコンダクタンス値のモデリング表現を、ガウスランダム変数として得て、その平均値は、ターゲットコンダクタンス値とグローバルコンダクタンス誤差との和であり、分散は、ターゲットコンダクタンス値を変数とする誤差関数の値と、局所プロセス誤差と動的誤差に対応する二つのガウスランダム変数分散の和との乗算値であり、
(1-5)コンダクタンス値-重みのマッピング関係を利用して、上記モデリングによって得られるコンダクタンス値をニューラルネットワーク重みとしてマッピングし、重みの統計分布表現を得て、
(2)ステップ(1)の中でモデリングによって得られる重みの統計分布を事前分布として、変分事後に基づくベイズニューラルネットワークトレーニングを行い、重みの変分事後分布を得て、
(3)ステップ(2)の中で得られる重みの変分事後分布の平均値を計算し、コンダクタンス-重みマッピング関係を逆に使用してそれをコンダクタンスとしてマッピングし、メモリスタメモリ上のメモリスタの実際のコンダクタンス値とする。
【0008】
さらに、前記ステップ(1-2)において、ターゲットコンダクタンス値を変数とする誤差関数は、次の形式である。
【数1】
ただし、cは、プロセス誤差と動的誤差レベルを表す定数であり、アプリケーションシナリオでの誤差レベルに基づいて設定され、g
0は、メモリスタメモリ上の各メモリスタのターゲットコンダクタンス値で構成されるベクトルである。
【0009】
さらに、前記ステップ(1-3)において、モデリングによって得られる局所プロセス誤差を特徴づけるためのガウスランダム変数Δr
l及び動的誤差を特徴づけるためのガウスランダム変数Δr
dは、それぞれ次のガウス分布を満たす。
【数2】
ただし、
【数3】
と
【数4】
は、それぞれ二つのガウス分布の方差であり、いずれも実験によって測定され、Nは、ガウス分布を表す。
【0010】
さらに、前記ステップ(1-4)において、モデリングによって得られるプロセス誤差と動的誤差の影響下での各重みに対応するメモリスタメモリ上の一つのメモリスタの実際のコンダクタンス値は、次の形式である。
【数5】
ただし、gは、実際のコンダクタンス値であり、g
0は、ターゲットコンダクタンス値であり、Δg
gは、グローバルコンダクタンス誤差であり、
【数6】
と
【数7】
は、それぞれ二つのガウス分布の方差であり、パラメータは、いずれも実験によって測定される。
【0011】
さらに、前記ステップ(1-5)において、コンダクタンス値-重みのマッピング関係によって得られるニューラルネットワーク重み
【数8】
のi番目のエレメントw
iは、次の形式である。
【数9】
ただし、g
iは、i番目の重みに対応するメモリスタの実際のコンダクタンス値であり、μ
i、Ψ(μ
i)は、それぞれw
iの平均値と分散であり、g
0,iは、i番目の重みに対応するメモリスタのターゲットコンダクタンス値であり、Δg
g,iは、i番目の重みに対応するメモリスタのグローバルコンダクタンス誤差であり、
【数10】
と
【数11】
は、それぞれi番目の重みに対応するメモリスタの局所プロセス誤差値と動的誤差値との分散であり、c
0とc
1は、コンダクタンス値-重みによって線形にマッピングされる二つの定数因子であり、次の方式で計算して得られる。
【数12】
ただし、w
maxとw
minは、それぞれニューラルネットワークの中の全ての重みの最大値と最小値であり、従来のニューラルネットワークトレーニングから取得されることができ、g
maxとg
minは、それぞれメモリスタメモリ上のメモリスタによって調整可能なコンダクタンス範囲の最大値と最小値である。
【0012】
さらに、前記ステップ(2)において、ニューラルネットワーク重みwの変分事後分布q(w|θ)は、ガウス分布であり、θは、ガウス分布のパラメータであり、平均値と分散とを含み、変分推論に基づくベイズニューラルネットワークトレーニングのターゲット関数は、次の形式である。
【数13】
ただし、g
0は、ニューラルネットワークの全ての重みに対応するメモリスタメモリ上の各メモリスタのターゲットコンダクタンス値で構成されるベクトルであり、P(D|w)は、尤度であり、
【数14】
は、ランダム変数の期待を求めるものであり、KL[・||・]は、二つの分布の相対エントロピを求めるものであり、P(w)は、重み事前分布であり、Dは、ニューラルネットワークトレーニングセットである。
【発明の効果】
【0013】
本発明の有益な効果は、メモリスタメモリ指向のニューラルネットワークトレーニング方法を提供し、トレーニングによって得られるモデルがプロセス誤差と動的誤差の影響を受けるメモリスタメモリ上に配備されて推論を行う時に、従来のコンピュータプラットフォームを用いて推論するニューラルネットワークと相当する正確率を実現することができ、従来のニューラルネットワークトレーニング方法と比べて、本発明は、正確率の大幅な向上をもたらし、正確率を確保する場合に、従来のコンピュータと比べてニューラルネットワーク計算面でのメモリスタメモリに基づく計算アーキティクチャの大きなエネルギ効率の優位性を十分に利用したことである。
【図面の簡単な説明】
【0014】
【
図1】本発明によって提供される背景と直面する問題を記述する概略図である。
【
図3】ベイズニューラルネットワークと従来のニューラルネットワークとのトレーニング方法の比較模式図である。
【
図4】本発明を応用した後にメモリスタメモリに基づくニューラルネットワーク推論を行う正確率比較図である。
【発明を実施するための形態】
【0015】
以下では、添付図面を結び付けて、本発明の技術案と効果をさらに詳細に説明する。
【0016】
メモリスタメモリは、効率的な行列-ベクトル積演算を実現することができ、それにより常にニューラルネットワーク計算加速等のシナリオに応用され、学術界から大きな注目を集めている。メモリスタメモリの基本的な構造は、
図1に示すように、現在では、ほとんどのメモリスタメモリは、プロセス誤差と動的誤差等のハードウェアの非理想的な要素の影響に直面し、このような影響は、ニューラルネットワークの重み値がコンダクタンスの形式でメモリスタに書き込まれる時にランダムのオフセットが発生し、
図1に示すように、さらにニューラルネットワークの推論正確率に影響し、且つ正確率が低下する幅は、ネットワーク規模の増加につれて急激に増長し、それは、メモリスタメモリが大型で、複雑なニューラルネットワークに用いられる能力を制限する。
【0017】
以上の問題に対して、本発明は、メモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法を提供し、その全体的フローと効果概略図は、
図2に示すように、具体的な実現ステップは、以下の通りである。
【0018】
(1)メモリスタメモリ上に配備されるニューラルネットワーク重みをプロセス誤差とランダムノイズ等の回路の非理想的な要素の影響下でモデリングし、本ステップの具体的な実現プロセスは、以下の通りである。
【0019】
(1-1)非理想的な要素の影響を考慮した場合、ニューラルネットワーク重み
【数15】
に対応するメモリスタメモリ上のn個のメモリスタの実際のコンダクタンス値
【数16】
を以下の四つの部分に分解する。
【数17】
ただし、g
0は、メモリスタメモリ上のメモリスタのターゲットコンダクタンス値で構成されるベクトルを表し、Δg
gは、メモリスタメモリ上のメモリスタのターゲットコンダクタンス値に対するグローバルプロセス誤差の影響(以下、グローバルコンダクタンス誤差と呼ばれる)で構成されるベクトルを表し、同一のチップ上の全てのデバイスに対する該当分量の影響は、同じであり、Δg
1は、メモリスタメモリ上のメモリスタのターゲットコンダクタンス値に対する局所プロセス誤差の影響(以下、局所コンダクタンス誤差と呼ばれる)で構成されるベクトルを記述するものであり、Δg
dは、メモリスタメモリ上のメモリスタのターゲットコンダクタンス値に対する動的誤差の影響(以下、動的コンダクタンス誤差と呼ばれる)で構成されるベクトルであり、
(1-2)局所コンダクタンス誤差、動的コンダクタンス誤差に対して次の近似を応用する。
【数18】
ただし、
【数19】
は、行列のアダマール積を表し、Δr
lは、局所プロセス誤差を表し、Δr
dは、動的誤差を表し、f(g
0)は、ターゲットコンダクタンス値g
0を一意の変数とする関数であり、その数式は、以下の通りである。
【数20】
ただし、cは、クロスポイントアレイコンダクタンス値に対する誤差rの影響程度を記述する定数であり、実験によって測定されるものであり、(1-3)は、局所プロセス誤差Δr
lと動的誤差Δr
dをそれぞれガウスランダム変数としてモデリングし、且つ両者の間は、相互に独立し、得られる分布形式は、以下の通りである。
【数21】
ただし、
【数22】
は、n次ゼロベクトルを表し、
【数23】
は、メモリスタメモリ上のn個のメモリスタの局所プロセス誤差の分散で構成されるベクトルを表し、
【数24】
は、メモリスタメモリ上のn個のメモリスタの動的誤差の分散で構成されるベクトルを表し、
【数25】
と
【数26】
は、いずれも実験によって測定されることができ、
(1-4)ステップ(1-1)-(1-3)の結果を利用して、プロセス誤差と動的誤差の影響下でのニューラルネットワーク重みに対応するメモリスタメモリ上のメモリスタの実際のコンダクタンス値gのモデリング表現を、次のガウスランダム変数として得る。
【数27】
ただし
【数28】
は、行列のアダマール積を表し、
(1-5)コンダクタンス値-重みマッピング関係を利用して、ステップ(1-4)の中で得られるプロセス誤差と動的誤差の影響下でのメモリスタメモリ上のメモリスタの実際のコンダクタンス値コンダクタンスをニューラルネットワーク重みとしてマッピングし、マッピング関係式及び得られる重みwの統計分布表現は、以下の通りである。
【数29】
ただし、μ
i、Ψ(μ
i)は、それぞれwの平均値と分散であり、c
0とc
1は、コンダクタンス値-重みによって線形にマッピングされる二つの定数因子であり、次の方式で計算して得られる。
【数30】
ただし、w
maxとw
minは、それぞれニューラルネットワークの中の全ての重みの最大値と最小値であり、従来のニューラルネットワークトレーニングから取得されることができ、g
maxとg
minは、それぞれメモリスタメモリ上のメモリスタによって調整可能なコンダクタンス範囲の最大値と最小値であり、ここまで、プロセス誤差と動的誤差の影響下でのクロスポイントアレイ上の実際の重み値に対するモデリングが完了する。
【0020】
(2)ステップ(1)の中でモデリングによって得られる実際の重みwの分布形式をベイズネットワークの事前分布として、変分推論に基づくベイズニューラルネットワークトレーニングを行い、重みwの変分事後分布q(w|θ)を得て、ただし、θは、事後分布形式を制御するパラメータであり、具体的には、以下のステップを含む。
【0021】
(2-1)一組のパラメータθで制御される一組のガウス分布q(w|θ)を構築し、ただし、パラメータθは、各ガウス分布の平均値と標準差を表し、
(2-2)以下のターゲット関数を最小化する。
【数31】
重みwの変分事後分布q(w|θ)を得て、ただし、g
0は、ニューラルネットワークの全ての重みに対応するメモリスタメモリ上の各メモリスタのターゲットコンダクタンス値で構成されるベクトルであり、P(D|w)は、尤度であり、
【数32】
は、ランダム変数の期待を求めるものであり、KL[・||・]は、二つの分布の相対エントロピであり、P(w)は、重み事前分布であり、Dは、ニューラルネットワークトレーニングセットである。
【0022】
(3)重みwの変分事後q(w|θ)の平均値θμを取り、重み-コンダクタンスマッピング関係を用いてそれをコンダクタンスとしてマッピングし、クロスポイントアレイに書き込むためのターゲットコンダクタンス値gwを得る。
【0023】
本発明によって提供されるロバスト性最適化方法は、実際の状況での回路における様々な非理想的な要素の影響を十分に考慮し、且つニューラルネットワーク重みに対するその影響を十分に総括してモデリングし、得られるモデルをベイズネットワークを利用してトレーニングした後、ロバスト性が比較的に高い重み事後分布を得て、これらの重み分布の平均値をクロスポイントアレイに書き込むターゲット重みとして取って、書き込んだ後に回路プロセス誤差と動的ノイズの影響を受けて、その実際値がターゲット値から一定の偏差があっても、比較的に高いニューラルネットワークの推論正確率を取得することができる。従来の決定的な重みに基づくニューラルネットワークトレーニング方法と比べて、本発明によって提供される方法は、回路の非理想的な要素の事前情報を利用して、メモリスタメモリに基づくニューラルネットワーク計算を行う面で大きい優位性を有し、他の統計学習方法と比べて、ベイズネットワークは、表現が明確で、原理が明瞭で、操作が簡単で、性能がより優れた等という特徴を有し、実際の応用において著しい優位性を有する。
【0024】
以下では、実例及び実験結果を結び付けて本発明の効果をさらに記述する。
【0025】
実例1:一般性を失わず、一つの多層ベイズコンボリューショナルニューラルネットワークBLeNetとデータ及びMNISTの実例を構築し、python+Pytorchを本実例のソフトウェアプラットフォームとして用いる。
【0026】
本実例に係る多層ベイズコンボリューショナルニューラルネットワークBLeNetは、古典的なコンボリューショナルニューラルネットワークLeNetに基づくものであり、その構造は、二つのコンボリューション層と、二つのプーリング層と、三つの完全接続層とを含み、各層のパラメータは、以下の通りである。
【0027】
コンボリューション層Conv1:6つの5*5*1のコンボリューションカーネルを有し、仕様が32*32*1である原始データセット画像を入力し、規模が28*28*6である特徴図を出力する。
【0028】
プーリング層P2:14*14*6の特徴図を出力し、各出力特徴図のユニットは、入力特徴図の一つの互いに重ならない2*2近傍における4つのユニットに接続され、その値は、その対応する4つのユニットの値を平均するものであり、
コンボリューション層Conv3:16個の5*5*6のコンボリューションカーネルを有し、仕様が14*14*6である特徴図を入力し、仕様が10*10*16の特徴図を出力する。
【0029】
プーリング層P4:5*5*16の出力特徴図を生成し、各出力特徴図のユニットは、入力特徴図の一つの互いに重ならない2*2近傍における4つのユニットに接続され、その値は、その対応する4つのユニットの値を平均するものであり、
完全接続層FC5:入力特徴ベクトルは、P4の入力特徴図を展開して得られる長さが400であるベクトルであり、出力特徴ベクトルの長さは、120であり、
完全接続層FC6:入力特徴ベクトルの長さは、120であり、出力特徴ベクトルの長さは、84であり、
完全接続層FC7:入力特徴ベクトルの長さは、84であり、出力特徴ベクトルの長さは、10であり、
コンボリューション層と完全接続層における活性化関数は、いずれもReLU関数を選択する。
【0030】
本実例によって使用されるMNISTデータセットは、60000個のトレーニングサンプルと10000個のテストサンプルとを含み、各サンプルは、いずれも一つの28*28画素のグレースケール手書き数字ピクチャであり、各ピクチャは、数字0~9の中の一つの数字を含み、ピクチャに含まれる数字によって、全てのデータセットを10つのカテゴリに分けることができる。データセットをネットワーク構造にマッチングさせるために、周辺にゼロパディングを行うことによって、MNISTデータセットの28*28の画像を32*32画素に充填し、入力Conv1層の特徴図とする。
【0031】
ベイズニューラルネットワークを用いてトレーニングするために、Pytorchの中のコンボリューション層、完全接続層を部分的に改造する必要がある。
【0032】
ベイズニューラルネットワークは、ベイズ推論に基づいたものであり、数理統計ベイズ学派に属するベイズ確率論のパラメータ推定方法であり、ベイズ確率論は、物事が一定の不確定性を有すると仮設し(すなわちシステムにおける推定対象変数をランダム変数とみなし、パラメータ推定の目的は、該当推定対象変数の真値ではなく、この推定対象変数の分布を見つけて又はそれに近接することである)、且つ観察者は、物事に対してある知識状態にあり(すなわちシステムにおける全ての推定対象変数は、いずれも一定の事前分布を有し、該当事前分布は、観察者の前の知識によって知ることができる)、ベイズ推論は、サンプルによって表現される特性を観察することによって、事前確率分布を部分的に修正し、推定対象ランダム変数事後分布を得て、すなわち推定対象変数に対するサンプルに基づく推定結果である。
【0033】
図3に示すように、ベイズニューラルネットワークと従来のニューラルネットワークとのトレーニング方法の比較模式図であり、ベイズニューラルネットワークは、人工ニューラルネットワーク(ANN)と類似するネットワーク構造を有し、それは、真値ではなく、全てのトレーニング対象パラメータの事後分布を学習ターゲットと見なし、すなわちネットワークのコンボリューション層、完全接続層等の重み、オフセット等のパラメータは、ある決定される値ではなく、統計分布形式を使用すべきであり、実際の応用において、任意の規模のニューラルネットワークに対して、パラメータの正確な事後分布は、いずれも解けないものであるため、事後分布は、一般的にはガウス分布近似で代替され、又は変分事後分布と呼ばれ、トレーニング対象パラメータ分布に対する推定は、さらに、トレーニング対象パラメータの変分事後の平均値、分散に対する点推定に転換される。
【0034】
本例において、ベイズコンボリューション層(BConv)及びベイズ完全接続層(BFC)を定義する必要があり、ベイズコンボリューション層BConvを例として、BConv層に含まれる全ての重みwの変分事後分布q(w|θ)の平均値θμと分散θσをPytorchモデルパラメータ(Parameter)に同時に登録する。ランダム変数の間の計算に対して、モンテカルロ方法を採用し、すなわちベイズモデルにおけるランダム変数を複数回サンプリングし、サンプリング値で決定的な計算を行い、最終的に決定的な出力を得て、具体的には、前方伝播を行う場合、一つのサンプルを入力するごとに、重みwの変分事後分布の平均値θμと分散θσに基づいてサンプリングを行い、前方計算を行うための重みサンプリング値wsを得て、後方伝播を行う場合、重みwの変分事後分布に対する決定的なターゲット関数の平均値θμと分散θσに対して勾配を計算し、且つ両者を更新すれば、一ラウンドのトレーニングを完了する。
【0035】
ベイズネットワークトレーニング時に必要とする重み事前分布P(w)を得るために、明細書におけるステップ(1)に従って重みモデリングを行い、プロセス誤差と動的誤差の影響下での重みの統計分布を得る。
【数33】
対応するメモリスタの実際のコンダクタンス値の統計分布は、以下の通りである。
【数34】
上記分布において、g
0は、トレーニング対象パラメータであり、Δg
g、
【数35】
と
【数36】
は、実験測定によって取得される必要がある量であり、一般性を失わず、メモリスタメモリ上のある特定の位置上の一つのメモリスタを例として、測定方法は、以下の通りである。
【0036】
(1)同じ設計の複数枚のメモリスタメモリチップを製造し、あるターゲットコンダクタンス値を同じ方法でこれらのメモリスタメモリチップにおける該当特定の位置上のメモリスタに書き込み、該当特定の位置上のメモリスタの実際のコンダクタンス値を複数回測定し、該当特定の位置上のメモリスタの実際のコンダクタンス値の測定値を得て、ターゲットコンダクタンス値との差を求めれば、全てのメモリスタメモリチップ上の該当特定の位置上のメモリスタのコンダクタンス誤差を得て、
(2)全てのメモリスタメモリチップ上の該当特定の位置上のメモリスタのコンダクタンス誤差に対して平均値を求めれば、該当特定の位置上のメモリスタのグローバルコンダクタンス誤差を得ることができ、同様の方法で測定すれば、全ての位置上のメモリスタのグローバルコンダクタンス誤差Δg
gを得ることができ、異なるターゲットコンダクタンス値を選択してもよく、上記ステップを複数回繰り返して平均値を求めることにより、得られたグローバルコンダクタンス誤差の信頼性を向上させ、
(3)(2)で得られるグローバルコンダクタンス誤差を利用して、誤差関数f(g
0+Δg
g)を用いて、該当特定の位置上のメモリスタの誤差関数値を計算し、該当特定の位置上のメモリスタのコンダクタンス誤差をこの誤差関数値で除算して、該当特定の位置上のメモリスタのプロセス誤差と動的誤差値を得て、且つ全てのメモリスタメモリチップの該当特定の位置上のメモリスタのプロセス誤差と動的誤差値に対してサンプル分散を計算すれば、
【数37】
を得ることができる。
【0037】
ここまで、トレーニング対象パラメータg0以外、BLeNetにおけるパラメータの事前分布の形式が既に決定されている。
【0038】
BLeNetのターゲット関数は、以下の通りである。
【数38】
この関数において、第一項
【数39】
は、尤度コストであり、尤度P(D|w)は、分類器出力ベクトルとサンプルラベル(label)とのクロスエントロピで代替されてもよく、尤度コストは、トレーニングセットに対するモデルパラメータの契合程度を反応し、契合程度が高いほど、この項が小さく、第二項
【数40】
は、複雑性コストであり、パラメータの事後分布と事前分布との類似度(KL発散又は相対エントロピ)を反応し、類似度が高いほど、この項が小さい。
【0039】
BLeNetのトレーニングプロセスは、バッチ勾配降下法(mini-BatchGradientDescent)を利用してELBOを最小化し、トレーニングプロセスにおいて、従来の人工ニューラルネットワークトレーニングに使用されるモーメンタム(Momentum)等の方法を利用してモデル収束を加速し、トレーニング対象パラメータは、事前分布に含まれるターゲットコンダクタンス値g0、及びモデルにおける重み、オフセット等のパラメータの変分事後分布の平均値と分散であり、トレーニングした後のモデルパラメータの変分事後分布を得ることができる。
【0040】
上記モデルパラメータの変分事後分布は、平均値と分散によって決定されるガウス分布であり、且つトレーニングプロセスにおける複雑性コストの存在のため、事後分布には一定の分散があることにより、事前分布と全体的に比較的に高い類似度を保持するとともに、尤度コストの存在及びトレーニングプロセスにおける事後分布に対するサンプリング操作のため、パラメータ事後分布の平均値からあまり離れていないパラメータサンプリング値も、ニューラルネットワークに比較的に高い推論正確率を備えさせることができ、それは、メモリスタメモリに基づくニューラルネットワーク計算に一定のロバスト性を備えさせる。
【0041】
一つの特定のメモリスタメモリチップ上の一つの特定のメモリスタにとって、そのコンダクタンス値は、一つのランダム変数ではなく、一つの決定値であるため、メモリスタメモリ上で運行するニューラルネットワークは、ベイズニューラルネットワークではなく、従来の人工ニューラルネットワークであるべきである。
【0042】
以上の事実に基づき、トレーニングによって得られるBLeNetのパラメータの変分事後分布に対して平均値を取り、メモリスタメモリ上で運行するLeNetの重み値として、重み-コンダクタンスによる線形マッピング変換を経た後、ターゲットコンダクタンス値としてメモリスタメモリに書き込み、書き込みプロセスにおいてプロセス誤差と動的誤差の影響下で、ターゲットコンダクタンス値に対して実際のコンダクタンス値に一定のずれが発生しても、メモリスタメモリ上で運行するニューラルネットワークに比較的に高い推論正確率を保持させることができる。
【0043】
本実例の効果は、
図4に示すように、図において、ρ
pvは、プロセス誤差レベルであり、グローバルコンダクタンス誤差Δg
g及び局所プロセス誤差の分散
【数41】
を反応し、ρ
dvは、動的誤差レベルであり、動的誤差の分散
【数42】
を反応し、図において、グレースケールは、ニューラルネットワークの推論正確率Accに関連し、グレースケールが黒いほど、推論正確率が低いことを表す。
【0044】
図において、黒い破線で表されるΔ
inf=0.1%等高線が示されており、ただし、Δ
infは、推論正確率の相対的な低下因子であり、それは、以下のように定義される。
【数43】
ただし、理想的な場合での推論正確率とは、従来の決定的なネットワークパラメータに基づくニューラルネットワークトレーニング方法を応用し、従来のフォン・ノイマン型アーキテクチャのようなコンピュータプラットフォームでニューラルネットワークのトレーニングと推論を行って得られる推論正確率である。
【0045】
従来の決定的なネットワークパラメータに基づくニューラルネットワークトレーニング方法を応用し、MNISTデータセットを用いてトレーニングしてLeNetモデルを得て、異なるレベルのプロセス誤差と動的誤差下で、該当LeNetモデルの重み値に対応する誤差値を加えて実際の重み値を得て、該当実際の重み値を用いてテストセット上で推論を行い、対応する推論正確率とプロセス誤差レベルρ
pv及び動的誤差レベルρ
dvの関係は、
図4の左側に示すように、結果は、誤差レベルが徐々に上昇することにつれて、推論正確率の低下が非常に深刻であり、右上角の領域において、推論正確率が0.3以下に低下することを示し、理想的な場合で、LeNetのMNISTデータセット上での推論正確率は、一般的には95%を超える。
【0046】
それに対応して、本方法を用いてBLeNetトレーニングを行い、且つトレーニングによって得られるモデルパラメータの事後分布に対して平均値を取り、且つ該当事後分布の平均値をメモリスタメモリに書き込み、対応するメモリスタメモリに基づくLeNetの推論正確率、対応する推論正確率とプロセス誤差レベルρ
pv及び動的誤差レベルρ
dvの関係は、
図4の右側に示すように、結果は、誤差レベルが徐々に上昇することにつれて、推論正確率の低下が非常に限られており、且つ図示されるプロセス誤差と動的誤差範囲内に、常に0.7以上の推論正確率を維持することができ、従来のトレーニング方法を用いることに比べて、大幅に向上しており、特に、
図4の右側に示される推論正確率の相対的な低下因子Δ
inf=0.1%等高線によって囲まれる面積は、
図4の左側に示されるものよりも著しく増大していることを示し、本発明がメモリスタメモリに基づくニューラルネットワーク推論の正確性に対して良好な最適化効果を有することを意味している。
【0047】
実例2:実例1と類似する方法に従って、コンボリューショナルニューラルネットワークAlexNetに基づいてベイズコンボリューショナルニューラルネットワークBAlexNetを構築し、プロセス誤差と動的誤差のモデリング結果を用いて、BAlexNetのために事前を提供し、それぞれCIFAR-10とCIFAR-100データセットを用いて、ベイズニューラルネットワークトレーニングを行い、トレーニングによって得られる重み事後分布の平均値をメモリスタメモリに基づくニューラルネットワーク重みとして、その推論正確率をテストし、推論正確率の相対的な低下因子Δinfを計算し、従来のトレーニング方法で得られるデータと比較し、比較結果は、表1に示すように、それは、複雑で大型のニューラルネットワークモデルに対して、本発明を応用してトレーニングを行うと、メモリスタメモリ上で計算を行う時にも比較的に低い正確率の低下を維持することができ、従来の方法と比べて最適化の効果が明らかであることを示す。
【0048】
表1 推論正確率の相対的な低下因子Δ
inf
【表1】
以上を纏めると、本発明によって提供されるプロセス誤差と動的誤差に対するメモリスタメモリ指向のニューラルネットワークトレーニング方法は、実験において取得されるプロセス誤差と動的ノイズ等の回路の非理想的な要素に対する認識に基づき、クロスポイントアレイのコンダクタンス値(すなわちニューラルネットワーク重み)に対するプロセス誤差と動的ノイズ等の非理想的な要素の影響に対してモデリングを行い、変分推論に基づくベイズニューラルネットワークトレーニング方法を利用してトレーニングを行って重みの事後分布を得て、本発明は、回路の非理想的な要素等の事前知識及びベイズネットワークのロバスト特性を十分に利用して、メモリスタメモリに基づくニューラルネットワーク計算の推論正確率の最適化を実現し、メモリスタメモリを用いてニューラルネットワーク加速を行うことに実際の応用実行性を備えさせる。
【0049】
上記実施例は、本発明を解釈して説明するためのものであり、本発明を制限するものではなく、本発明の精神と請求項の保護範囲内に、本発明に加えられたいかなる修正と改変は、いずれも本発明の保護範囲に入る。
【0050】
(付記)
(付記1)
メモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法であって、以下のステップを含む。
(1)メモリスタメモリ上に配備されるニューラルネットワーク重みをプロセス誤差と動的誤差の影響下でモデリングすることは、以下のステップを含む。
(1-1)各重みに対応するメモリスタメモリ上の一つのメモリスタの実際のコンダクタンス値をターゲットコンダクタンス値、グローバルコンダクタンス誤差、局所コンダクタンス誤差と動的コンダクタンス誤差の四つの部分に分解し、
(1-2)局所コンダクタンス誤差と動的コンダクタンス誤差を、ターゲットコンダクタンス値を変数とする誤差関数の値と局所プロセス誤差及び動的誤差との積に近似し、
(1-3)局所プロセス誤差と動的誤差をそれぞれガウスランダム変数としてモデリングし、且つ両者が相互に独立し、
(1-4)ステップ(1-1)から(1-3)の結果を利用して、プロセス誤差と動的誤差の影響下での各重みに対応するメモリスタメモリ上の一つのメモリスタの実際のコンダクタンス値のモデリング表現を、ガウスランダム変数として得て、その平均値は、ターゲットコンダクタンス値とグローバルコンダクタンス誤差との和であり、分散は、ターゲットコンダクタンス値を変数とする誤差関数の値と、局所プロセス誤差と動的誤差に対応する二つのガウスランダム変数分散の和との乗算値であり、
(1-5)コンダクタンス値-重みのマッピング関係を利用して、上記モデリングによって得られるコンダクタンス値をニューラルネットワーク重みとしてマッピングし、重みの統計分布表現を得て、
(2)ステップ(1)の中でモデリングによって得られる重みの統計分布を事前分布として、変分事後に基づくベイズニューラルネットワークトレーニングを行い、重みの変分事後分布を得て、
(3)ステップ(2)の中で得られる重みの変分事後分布の平均値を計算し、コンダクタンス-重みマッピング関係を逆に使用してそれをコンダクタンスとしてマッピングし、メモリスタメモリ上のメモリスタの実際のコンダクタンス値とする、ことを特徴とするメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法。
【0051】
(付記2)
付記1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法であって、前記ステップ(1-2)において、ターゲットコンダクタンス値を変数とする誤差関数は、次の形式である。
【数44】
ただし、cは、プロセス誤差と動的誤差レベルを表す定数であり、アプリケーションシナリオでの誤差レベルに基づいて設定され、g
0は、メモリスタメモリ上の各メモリスタのターゲットコンダクタンス値で構成されるベクトルである、ことを特徴とする付記1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法。
【0052】
(付記3)
付記1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法であって、前記ステップ(1-3)において、モデリングによって得られる局所プロセス誤差を特徴づけるためのガウスランダム変数Δr
l及び動的誤差を特徴づけるためのガウスランダム変数Δr
dは、それぞれ次のガウス分布を満たす。
【数45】
ただし、
【数46】
と
【数47】
は、それぞれ二つのガウス分布の分散であり、いずれも実験によって測定され、Nは、ガウス分布を表す、ことを特徴とする付記1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法。
【0053】
(付記4)
付記1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法であって、前記ステップ(1-4)において、モデリングによって得られるプロセス誤差と動的誤差の影響下での各重みに対応するメモリスタメモリ上の一つのメモリスタの実際のコンダクタンス値は、次の形式である。
【数48】
ただし、gは、実際のコンダクタンス値であり、g
0は、ターゲットコンダクタンス値であり、Δg
gは、グローバルコンダクタンス誤差であり、
【数49】
と
【数50】
は、それぞれ二つのガウス分布の分散であり、パラメータは、いずれも実験によって測定される、ことを特徴とする付記1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法。
【0054】
(付記5)
付記1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法であって、前記ステップ(1-5)において、コンダクタンス値-重みのマッピング関係によって得られるニューラルネットワーク重み
【数51】
のi番目のエレメントw
iは、次の形式である。
【数52】
ただし、g
iは、i番目の重みに対応するメモリスタの実際のコンダクタンス値であり、μ
i、Ψ(μ
i)は、それぞれw
iの平均値と分散であり、g
0,iは、i番目の重みに対応するメモリスタのターゲットコンダクタンス値であり、Δg
g,iは、i番目の重みに対応するメモリスタのグローバルコンダクタンス誤差であり、
【数53】
と
【数54】
は、それぞれi番目の重みに対応するメモリスタの局所プロセス誤差値と動的誤差値との分散であり、c
0とc
1は、コンダクタンス値-重みによって線形にマッピングされる二つの定数因子であり、次の方式で計算して得られる。
【数55】
ただし、w
maxとw
minは、それぞれニューラルネットワークの中の全ての重みの最大値と最小値であり、従来のニューラルネットワークトレーニングから取得され、g
maxとg
minは、それぞれメモリスタメモリ上のメモリスタによって調整可能なコンダクタンス範囲の最大値と最小値である、ことを特徴とする付記1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法。
【0055】
(付記6)
付記1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法であって、前記ステップ(2)において、ニューラルネットワーク重みwの変分事後分布q(w|θ)は、ガウス分布であり、θは、ガウス分布のパラメータであり、平均値と分散とを含み、変分推論に基づくベイズニューラルネットワークトレーニングのターゲット関数は、次の形式である。
【数56】
ただし、g
0は、ニューラルネットワークの全ての重みに対応するメモリスタメモリ上の各メモリスタのターゲットコンダクタンス値で構成されるベクトルであり、P(D|w)は、尤度であり、
【数57】
は、ランダム変数の期待を求めるものであり、KL[・||・]は、二つの分布の相対エントロピを求めるものであり、P(w)は、重み事前分布であり、Dは、ニューラルネットワークトレーニングセットである、ことを特徴とする付記1に記載のメモリスタ誤差に対するメモリスタメモリニューラルネットワークトレーニング方法。