JP6933367B2 - ニューラルネットワーク回路装置、システム、処理方法および実行プログラム - Google Patents
ニューラルネットワーク回路装置、システム、処理方法および実行プログラム Download PDFInfo
- Publication number
- JP6933367B2 JP6933367B2 JP2017180457A JP2017180457A JP6933367B2 JP 6933367 B2 JP6933367 B2 JP 6933367B2 JP 2017180457 A JP2017180457 A JP 2017180457A JP 2017180457 A JP2017180457 A JP 2017180457A JP 6933367 B2 JP6933367 B2 JP 6933367B2
- Authority
- JP
- Japan
- Prior art keywords
- neural network
- circuit
- value
- bias
- batch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Character Discrimination (AREA)
Description
近年、ADAS(advanced driver assistance system)用の画像認識や自動翻訳などで注目を集める新方式として畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)(層間が全結合でないNN)や再帰型ニューラルネットワーク(双方向伝搬)が登場している。CNNは、ディープニューラルネットワーク(DNN:Deep Neural Network)に畳込み演算を付加したものである。
γ:スケーリング係数
β:シフト値
μ’B:バイアスを除く平均値。入力値x0のときのバイアス値w0とし、ミニバッチの平均値μBとするとき、w0−μB
σ2 B:ミニバッチの分散値
ε:定数
ことを特徴とする。
その他の手段については、発明を実施するための形態のなかで説明する。
(背景説明)
図1は、ディープニューラルネットワーク(DNN)の構造の一例を説明する図である。
図1に示すように、ディープニューラルネットワーク(DNN)1は、入力層(input layer)11、任意の数の中間層である隠れ層(hidden layer)12、出力層(output layer)13を有して構成される。
入力層(input layer)11は、複数個(ここでは8)の入力ノード(ニューロン)を有する。隠れ層12は、複数(ここでは3層(hidden layer1,hidden layer2,hidden layer3))である。実際には、隠れ層12の層数nは、例えば20〜100に達する。出力層13は、識別対象の数(ここでは4)の出力ノード(ニューロン)を有する。なお、層数およびノード数(ニューロン数)は、一例である。
ディープニューラルネットワーク1は、入力層11と隠れ層12のノード間が全て結合し、隠れ層12と出力層13のノード間が全て結合している。
本技術は、ニューラルネットワーク回路2を対象とする。ニューラルネットワーク回路2の適用箇所および適用数は限定されない。例えば、隠れ層12の層数n:20〜30の場合、これらの層のどの位置に適用してもよく、またどのノードを入出力ノードとするものでもよい。さらに、ディープニューラルネットワーク1に限らず、どのようなニューラルネットワークでもよい。ただし、入力層11または出力層13のノード出力には、2値化出力ではなく多ビット出力が求められるので、ニューラルネットワーク回路2は、対象外である。ただし、出力層13のノードを構成する回路に、乗算回路が残ったとしても面積的には問題にはならない。
なお、入力データに対し学習済のものを評価していくことを前提としている。したがって、学習結果として重みwiは既に得られている。
図2は、比較例のニューラルネットワーク回路の構成の一例を示す図である。
比較例のニューラルネットワーク回路20は、図1のディープニューラルネットワーク1を構成するニューラルネットワーク回路2に適用できる。なお、以下の各図の表記において、値が多ビットである場合は太実線矢印とバンドルで、また値が2値である場合は細太実線矢印で示す。
ニューラルネットワーク回路20は、入力値(判別データ)X1〜Xn(多ビット)を入力する入力ノードおよび重みW1〜Wn(多ビット)を入力する入力部21と、バイアスW0(多ビット)を入力するバイアスW0入力部22と、入力値X1〜Xnおよび重みW1〜Wnを受け取り、入力値X1〜Xnに重みW1〜Wnをそれぞれ乗算する複数の乗算回路23と、各乗算値とバイアスW0との総和を取る総和回路24と、総和を取った信号Yを活性化関数fact(Y)で変換する活性化関数回路25と、を備えて構成される。
以上の構成において、ニューラルネットワーク回路20は、入力値X1〜Xn(多ビット)を受け取り、重みW1〜Wnを乗算した後に、バイアスW0を含めて総和を取った信号Yを活性化関数回路25を通すことで人間のニューロンに模した処理を実現している。
ニューラルネットワーク回路20(図2参照)は、多ビットで高い認識精度を実現している。このため、活性化関数回路25(図2参照)において、非線形な活性化関数fact(Y)を用いることができる。すなわち、図4に示すように、非線形な活性化関数fact(Y)は、傾きが非ゼロとなる部分(図4の破線囲み部分参照)に±1の範囲の値をとる活性化値を設定できる。このため、ニューラルネットワーク回路20は、多様な活性を実現でき、認識精度は実用的な値になっていた。しかし、ニューラルネットワーク回路20は、大量の乗算回路23が必要になる。加えて、ニューラルネットワーク回路20は、入出力・重みが多ビットであることにより、大量のメモリが必要であり、読み書きの速度(メモリ容量・帯域)も問題である。
図2に示す比較例のニューラルネットワーク回路20は、短精度(多ビット)による積和演算回路で構成されている。このため、多数の乗算回路21が必要であり、面積・消費電力が多大になる欠点があった。また、入出力・重みが多ビットであることで大量のメモリが必要であり、読み書きの速度(メモリ容量・帯域)が問題となっていた。
そこで、2値化した精度、すなわち+1と−1のみ用いてニューラルネットワーク回路2(図1参照)を構成する回路が提案された(非特許文献1〜4)。具体的には、図2に示すニューラルネットワーク回路20の乗算回路21を、論理ゲート(例えばXNORゲート回路)に置き換えることが考えられる。
比較例の2値化ニューラルネットワーク回路30は、図1のニューラルネットワーク回路2に適用できる。
図4に示すように、比較例の2値化ニューラルネットワーク回路30は、入力値x1〜xn(2値)を入力する入力ノードおよび重みw1〜wn(2値)を入力する入力部31と、バイアスw0(2値)を入力するバイアスw0入力部32と、入力値x1〜xnおよび重みw1〜wnを受け取り、XNOR(Exclusive NOR:否定排他的論理和)論理を取る複数のXNORゲート回路33と、XNORゲート回路33の各XNOR論理値とバイアスw0との総和を取る総和回路34と、総和を取った信号Yのバッチ正規化した信号Bを活性化関数fsgn(B)で変換する活性化関数回路35と、を備えて構成される。
2値化ニューラルネットワーク回路30は、乗算回路23(図2参照)がXNOR論理を実現するXNORゲート回路33に置き換えられている。このため、乗算回路23を構成する際に必要であった面積を削減することができる。また、入力値x1〜xn、出力値z、および重みw1〜wnは、いずれも2値(−1と+1)であるため、多値である場合と比較してメモリ量を大幅に削減でき、メモリ帯域を向上させることができる。
2値化ニューラルネットワーク回路30は、入力値x1〜xnおよび重みw1〜wnを単に2値化している。このため、図5の符号aに示すように、±1のみ扱う活性化関数しか扱えないため、誤差が頻繁に生じてしまう。また、傾きが非ゼロとなる区間(図5の破線囲み部分参照)が不均等となり学習が上手く行われない。すなわち、図6の符号bに示すように、不均等な幅により微分が定義できない。その結果、単に2値化した2値化ニューラルネットワーク回路40は、認識精度が大幅に落ち込んでしまう。
そこで、非特許文献1〜4には、既存の2値化ニューラルネットワークの精度を維持するためにバッチ正規化を行う技術が記載されている。
図6は、比較例の2値化した精度を是正して、CNNの認識精度を保つバッチ正規化回路(BN:Batch Normalization)を備える2値化ニューラルネットワーク回路40の構成の一例を示す図である。図4と同一構成部分には同一符号を付している。
図6に示すように、比較例の2値化ニューラルネットワーク回路40は、入力値x1〜xn(2値)を入力する入力ノードx1〜xn、重みw1〜wn(2値)を入力する入力部31と、バイアスB(多ビット)を入力するバイアスB入力部32と、入力値x1〜xnおよび重みw1〜wnを受け取り、XNOR(Exclusive NOR:否定排他的論理和)論理を取る複数のXNORゲート回路33と、XNORゲート回路33の各XNOR論理値とバイアスBとの総和を取る総和回路34と、2値化によるバラツキの偏りを正規化範囲を広げ中心をシフトさせる処理で是正するバッチ正規化回路41と、総和を取った信号Yのバッチ正規化した信号Bを活性化関数fsgn(B)で変換する活性化関数回路35と、を備えて構成される。
なお、入力値x1〜xnと重みw1〜wnとのXNOR論理を取る論理回路であれば、XNORゲートに限らずどのような論理ゲートでもよい。例えば、XOR回路を用いて総和をとり、活性化関数の否定を取ってもよい。
比較例の2値化ニューラルネットワーク回路40のバッチ正規化回路41が必要となる理由について説明する。
図7および図8は、比較例の2値化ニューラルネットワーク回路40のバッチ正規化による効果を説明する図である。図7は、比較例のスケーリング係数(γ)による正規化を示す図、図8は、比較例のシフト値(β)による−1〜+1の制限を示す図である。
バッチ正規化とは、2値化によるバラツキの偏りを是正する回路であり、重み総和後、スケーリング係数(γ)による正規化を行った後、シフト値(β)による適切な活性化による2分類を行う。これらのパラメータは事前に学習時に求めておく。具体的には、下記の通りである。
このように、比較例の2値化ニューラルネットワーク回路40には、バッチ正規化回路41が必要である。
上述したように、学習を進めると重みが均等に分布する。しかし、学習データには偏りが存在するため、完全には均等に分布せず、その調整のためにごくわずかなバイアス項による補正が必要であった。学習データにもよるがバイアス項の精度は、固定小数点精度で30〜40ビットになり、浮動小数点精度を使ったとしても、加算器などの回路が必要であった。
バイアスがない場合、実用に耐えない。例えば、後記する図10の例では、Classification Errorが90%程度になると想定される。
バイアスがあることの直接的な課題は、高精度による回路が必要とされることである。このような高精度な回路は、面積・消費電力が大きいものとなる。
本発明の着眼点は、バッチ正規化の操作を導入したNNに対して、これと等価なNNを解析的に求めると、バイアス項が不要なNNを得ることができることを発見したことである。
すなわち、重み積和後に2値化ニューラルネットワーク回路40のバッチ正規化回路41(図6参照)に入力される信号をYとすると、バッチ正規化回路41から出力される信号(Yと等価となる信号)Y’(中間値)は、次式(1)で示される。
したがって、上記式(1)は、次式(2)となる。
ここで、上記式(5)にw0−μB=μ’Bを導入すると、上記式(5)は、下記式(6)となる。μ’Bは、バイアスを除く平均値である。
上記式(6)は、バイアス値を個別に学習しなくても等価な2値ニューラルネットワークが学習できることを示している。解析的な洞察がなければ成り立たない。
図9は、本発明の実施形態に係るニューラルネットワークの2値化ニューラルネットワーク回路の構成を示す図である。比較例の図6と同一構成部分には、同一符号を付している。
本実施形態の2値化ニューラルネットワーク回路は、ディープニューラルネットワークへの実装技術を提供する。
2値化ニューラルネットワーク回路100は、図1のニューラルネットワーク回路2に適用できる。
2値化ニューラルネットワーク回路100(ニューラルネットワーク回路装置)は、バイアスが不要な2値化ニューラルネットワーク回路である。
図9に示すように、2値化ニューラルネットワーク回路100は、入力値x1〜xn(xi)(2値)を入力する入力ノードおよび重みw1〜wn(wi)(2値)を入力する入力部101と、入力値x1〜xnおよび重みw1〜wnを受け取り、XNOR論理を取るXNORゲート回路102(論理回路部)と、各XNOR論理値の総和を取る総和回路103(総和回路部)と、2値化によるバラツキの偏りを正規化範囲を広げ中心をシフトさせる処理で是正するバッチ正規化回路41と、総和を取った信号Yのバッチ正規化した信号Bを活性化関数fsgn(B)で変換する活性化関数回路35と、を備えて構成される。
2値化ニューラルネットワーク回路100は、前記式(6)で示されるバイアス項を不要とする2値化CNNである。
なお、NNでは、重みが、クライアントの認識物体毎に全て異なる。また学習により毎回異なることがある。画像処理では係数は、全て同じであり、この点でNNと画像処理では、HWが大きく異なる。
したがって、総和回路103は、各XNOR論理値の総和のみを取る。すなわち、総和回路103は、比較例の2値化ニューラルネットワーク回路40(図6参照)総和回路35のように、各XNOR論理値とバイアスbとの総和を取ることはない。
2値化ニューラルネットワーク回路100は、図1に示すディープニューラルネットワーク1のニューラルネットワーク回路2に用いられる。この場合、2値化ニューラルネットワーク回路100の入力ノードx1〜xnは、図1に示すディープニューラルネットワーク1のhidden layer1の入力ノードである。入力部101には、隠れ層12のhidden layer1の入力ノードの入力値x1〜xn(2値)および重みw1〜wn(2値)が入力される。
乗算の代わりとなるXNORゲート回路102では、入力値x1〜xnおよび重みw1〜wnを受け取り、XNOR論理により2値(−1/+1)の乗算を行う。XNORゲート回路102を通した後、総和回路103は、各XNOR論理値の総和を取る。そして、バッチ正規化回路41は、総和を取った信号Yをバッチ正規化する。活性化関数回路35は、総和を取った信号Yのバッチ正規化した信号Bを活性化関数fsgn(B)で変換する。
本実施形態の効果を確認するため、VGG11(隠れ層が11層) ベンチマークNNを実装し、学習が成功するか確認した。VGG11は、良く使われているベンチマークで再現性があるものである。
図10は、比較例および本実施形態の2値化VGG11モデルを用いて画像認識タスクCIFAR10を学習させた結果の認識精度を説明する図である。図10(a)は「バッチ正規化なし」(バイアス項あり)で構成したニューラルネットワーク回路30(図4参照)の認識精度、図10(b)は「バッチ正規化あり」(バイアス項あり)で構成した2値化ニューラルネットワーク回路40(図6参照)の認識精度、図10(c)は「バッチ正規化あり」(バイアス項なし)で構成した本実施形態の2値化ニューラルネットワーク回路100(図9参照)の認識精度をそれぞれ示す。図10(c)は、本実施形態をVGG11 ベンチマークNNで実装し確認したものである。
図10の横軸は、利用した学習データに対して更新を終えたサイクルであるエポック(epoch)数(学習回数)、縦軸は誤認識率(Classification error)である。また、図10は、ディープニューラルネットワーク用のフレームワークソフトウェアChainer(登録商標)のfloat32 精度CNNを用いている。
図10(a)の「バッチ正規化なし」に示すように、比較例の単に2値化した2値化ニューラルネットワーク回路30(図4参照)では、誤認識率が大きく(エポック数200以上;誤認識率約70%)認識精度は悪い。また、学習を続けても認識精度の改善は見られない(学習が成功していない)。
これに対して、比較例の図10(b)の「バッチ正規化あり」(バイアス項あり)で構成した2値化ニューラルネットワーク回路40(図6参照)と本実施形態の図10(c)の「バッチ正規化あり」(バイアス項なし)で構成した2値化ニューラルネットワーク回路100(図9参照)は、どちらも学習を続けるに従って誤認識率が落ちており、エポック数400以上で誤認識率は小さくなり(約20%)、学習が成功していることを示している。
このように、バッチ正規化回路41が無ければ学習が成功していない。2値化ニューラルネットワーク回路30では、バッチ正規化回路41が必要であることがあらためて確認された。
比較例の図10(b)の「バッチ正規化あり」(バイアス項あり)と本実施形態の図10(c)の「バッチ正規化あり」(バイアス項なし)とを比較して分かるように、バッチ正規化回路41がある場合には、バイアス項の有無については、認識精度にほとんど影響を与えないことが確認された。
すなわち、図10(c)の「バッチ正規化あり」(バイアス項なし)で構成した本実施形態のニューラルネットワーク回路100(図9参照)は、比較例の図10(b)の「バッチ正規化あり」(バイアス項あり)で構成したニューラルネットワーク回路40と比較して、バイアス項をなくしても認識精度を落とさないことが確認された。
図11の表は、表下欄外に表記した[Zhao et al.]〜[FINN]の学会発表者(論文発表年)のニューラルネットワークと本実施形態のニューラルネットワークをFPGA (Digilent社 ZedBoard)上に実現した場合に、各項目を対比して示したものである。
図11の表の用語は下記の通りである。
Implementationは、実装した手法・研究グループ名である。
(Year)は、関連文献が発表された年である。
FPGA Boardは、FPGA(field-programmable gate array)搭載ボードの名称である。
(FPGA)は、FPGA搭載ボードに搭載されているFPGAの型番であり、比較条件を揃えるため同一のFPGAを使用する。
Clock [MHz] は、FPGAの動作周波数である。動作周波数が大きいほど高速に動作する。
#LUTsは、FPGAのLUT(Look-Up Table)消費量であり、面積を意味する。
#18Kb BRAMsは、FPGAの内部メモリブロックの消費量であり、面積を意味する。
#DSP Blocksは、FPGAの内部積和演算ブロックの消費量であり、面積を意味する。
Test Errorは、テスト画像のエラー率であり、認識精度を意味する。
Time [msec] は、認識時間(単位はミリ秒)である。
(FPS)は、Frames Per Secondの略で単位時間当たりに認識できる画像数である。(FPS)の数値が大きいほど高速である。
Power [W]は、消費電力(単位はワット)である。
FPS/Wattは、消費電力効率である。
FPS/LUTは、面積効率である。
FPS/BRAMは、メモリ量効率である。
本実施形態の2値化ニューラルネットワーク回路100は、表の従来例と比較して、電力のバランスが取れていることが挙げられる。従来例では、「Power(W)」に示すように、4.7W,2.5Wと消費電力が大きい。消費電力が大きいので、これを回避する制御方法が複雑である。「Power(W)」に示すように、本実施形態では、従来例[Zhao et al.]と比較して消費電力を2.3Wと約1/2に低減することができた。
本実施形態の2値化ニューラルネットワーク回路100は、バイアスが不要であること、乗算回路が2値論理ゲートであること、から、表の「LUTs, BRAM,DSP Block」に示すように、チップ面積が46900から14509と約1/3に減り、外付けメモリが不要となる、メモリコントローラが単純になることなどの効果がある。チップ面積は価格に比例するので、価格も2桁程度安くなることが期待できる。
本実施形態の2値化ニューラルネットワーク回路100は、表の「FPS/Watt, FPS/ LUT, FPS/BRAM」に示すように、性能パワー効率は、面積を見ずにパワー効率だけを見たものでも35.7と182.6と約5倍となっている。さらに、データ転送速度も168と120と約3倍となっている。
図12は、本発明の実施形態に係る2値化ニューラルネットワーク回路の実装例を説明する図である。
<STEP1>
まず、与えられたデータセット(今回はImageNet、画像認識タスク用にデータ)を既存のディープニューラルネットワーク用のフレームワークソフトウェアであるChainer (登録商標)を用いてGPU(Graphics Processing Unit)を有するコンピュータ201上で学習を行った。学習は、GPU上で実行する。このコンピュータ201は、ARMプロセッサなどのCPU(Central Processing Unit)と、メモリと、ハードディスクなどの記憶手段(記憶部)と、ネットワークインタフェースを含むI/Oポートとを有する。このコンピュータは、CPU201が、メモリ上に読み込んだプログラム(2値化したニューラルネットワークの実行プログラム)を実行することにより、後記する各処理部により構成される制御部(制御手段)を動作させる。
次に、自動生成ツールを用いて、本実施形態の2値化ニューラルネットワーク回路100と等価なC++コードを自動生成し、C++コード202を得た。
次に、FPGA ベンダの高位合成ツール(Xilinx 社SDSoC) (登録商標)を用いて、FPGA(field-programmable gate array)合成用にHDL(hardware description language)203を生成した。例えば、高位合成ツール(Xilinx 社SDSoC)では、実現したい論理回路をハードウェア記述言語(Verilog HDL/VHDL)を用いて記述し、提供されたCADツールでビットストリームに合成する。そして、FPGAにこのビットストリームを送信するとFPGAに回路が実現する。
次に、従来のFPGA合成ツールVivado (登録商標)を用いて、FPGA上に実現(FPGA合成204)して画像認識タスクの検証を行った。
検証後、基板205を完成させた。基板205には、2値化ニューラルネットワーク回路100がハードウェア化されて実装されている。
例えば、図11の表に示すように、本実施形態に係る2値化ニューラルネットワーク回路100は、消費電力(Power [W])を半分に削減でき、面積を約30分の1(FPS/Watt,FPS/LUT,FPS/BRAMの相乗効果)に削減できた。
各FPGA実装の比較は、本実施形態(2値化(バッチ正規化+バイアスなし))、比較例の固定小数点(16ビット)、および比較例の2値化(バイアスのみ)である。FPGA実装のハードウェアの量は、FF(flip-flop)数、LUT数、18Kb BRAM 数、およびDSP(digital signal processor) 48E 数で示される。
(1)バッチ正規化なしのCNNとの比較
本実施形態は、バッチ正規化なしのCNNと比較して、バイアス項回路が不要になる、かつ、学習時にバイアスが不要になるので学習が容易になる利点がある。ただし、バッチ正規化項用の回路が必要である。また、図13の本実施形態(2値化(バッチ正規化+バイアスなし))と比較例の2値化(バイアスのみ)との比較から分かるように、ハードウェア量(面積)、電力が数%増加する。
前記図10(b)(c)に示すように、本実施形態の2値化ニューラルネットワーク回路100の認識の精度(図10(c)参照)と、比較例の「バッチ正規化あり」(バイアス項あり)で構成した2値化ニューラルネットワーク回路40の認識精度(図10(b)参照)、および学習時間に差はなく、ほぼ同じとみてよいことが分かる。なお、回路実現時の差異は、図13で示されている。
バイアス値がある場合、その値が極めて小さい値(固定小数点30〜40ビット)であるので回路設計に留意すべきである。
図14は、変形例1のディープニューラルネットワークの2値化ニューラルネットワーク回路の構成を示す図である。図9と同一構成部分には同一符号を付して重複箇所の説明を省略する。
変形例1の2値化ニューラルネットワーク回路100Aは、図1のニューラルネットワーク回路2に適用できる。
2値化ニューラルネットワーク回路100A(ニューラルネットワーク回路装置)は、バイアスが不要な2値化ニューラルネットワーク回路である。
図14に示すように、2値化ニューラルネットワーク回路100Aは、図9の2値化ニューラルネットワーク回路100にさらに、バイアス値を記憶するバイアスメモリ110(記憶部,バイアス値入力部)を備えて構成される。
一方、2値化ニューラルネットワーク回路100Aは、バイアスメモリ110に記憶されたバイアス値の読み出しに代えて、総和回路103に0を書き込むことで、式(6)の回路を実行する2値化ニューラルネットワーク回路100Aのニューラルネットワーク処理方法を実現できる。この場合、2値化ニューラルネットワーク回路100Aは、バイアスを不要とする2値化CNNである。
変形例2の2値化ニューラルネットワーク回路100Bは、図1のニューラルネットワーク回路2に適用できる。
2値化ニューラルネットワーク回路100B(ニューラルネットワーク回路装置)は、バイアスが不要な2値化ニューラルネットワーク回路である。
図15に示すように、2値化ニューラルネットワーク回路100Bは、図9の2値化ニューラルネットワーク回路100にさらに、バイアス値Bを入力するバイアス値入力部120と、バイアス値Bの総和回路103への入力をオンオフするスイッチ121と、を備えて構成される。
一方、2値化ニューラルネットワーク回路100Bは、スイッチ121をオフにすることで、バイアス値Bの総和回路103への入力をオフし、式(6)の回路を実行する2値化ニューラルネットワーク回路100Aのニューラルネットワーク処理方法を実現できる。
例えば、乗算回路としての論理ゲートに代えて、LUT(Look-Up Table)を用いてもよい。このLUTは、XNOR論理を行うXNORゲート回路102(図9参照)に代えて、FPGA の基本構成要素であるルックアップテーブルを用いる。LUTは、2入力(x1,w1)に対する2値(−1/+1)のXNOR論理結果Yを格納する。LUTを用いることで、バッチ正規化回路の面積とパラメータを格納するメモリ面積・メモリ帯域を無くすことができ、かつ、性能的には等価な回路構成を実現することができる。LUTは、FPGAの基本構成要素であり、FPGA合成の際の親和性が高く、FPGAによる実装が容易である。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上記実施の形態では、装置は、ニューラルネットワーク回路装置という名称を用いたが、これは説明の便宜上であり、名称はディープニューラルネットワーク回路、ニューラルネットワーク装置、パーセプトロン等であってもよい。また、方法およびプログラムは、ニューラルネットワーク処理方法という名称を用いたが、ニューラルネットワーク演算方法、ニューラルネットプログラム等であってもよい。
2 ニューラルネットワーク回路
11 入力層
12 隠れ層(中間層)
13 出力層
35 活性化回路(活性化回路部,活性化回路手段)
41 バッチ正規化回路
42 減算器
43 第1乗算回路
44 第2乗算回路
45 加算器
100,100A,100B 2値化ニューラルネットワーク回路(ニューラルネットワーク回路装置)
101 入力部
102 XNORゲート回路(論理回路部,論理回路手段)
103 総和回路(総和回路部,総和回路手段)
110 バイアスメモリ(記憶部,バイアス値入力部)
120 バイアス値入力部
121 スイッチ
x1〜xn(xi) 入力値(2値)
w1〜wn(wi) 重み(2値)
Claims (9)
- 入力層、1以上の中間層、および、出力層を少なくとも含むニューラルネットワーク回路装置であって、
前記中間層の中で、2値の入力値xiおよび重みwiを受け取り、論理演算を行う論理回路部と、
前記論理回路部の出力の総和を取る総和回路部と、
2値化によるバラツキの偏りを正規化範囲を広げ中心をシフトさせる処理で是正するバッチ正規化回路部と、
総和を取った信号Yのバッチ正規化した信号Bを活性化関数fsgn(B)で変換する活性化関数回路部と、を備え、
前記総和を取った信号Yは、下記式で示される
ただし、
γ:スケーリング係数
β:シフト値
μ’ B:バイアスを除く平均値。入力値x0のときのバイアス値w0とし、ミニバッチの平均値μBとするとき、w0−μB
σ2 B:ミニバッチの分散値
ε:定数
ことを特徴とする記載のニューラルネットワーク回路装置。 - バイアス値を入力するバイアス値入力部を備え、
前記総和回路部は、
前記論理回路部の出力と前記バイアス値との総和を取る
ことを特徴とする請求項1に記載のニューラルネットワーク回路装置。 - 前記論理回路部は、否定排他的論理和または排他的論理和を含む
ことを特徴とする請求項1に記載のニューラルネットワーク回路装置。 - 請求項1乃至6のいずれか1項に記載のニューラルネットワーク回路装置を備えるニューラルネットワークシステム。
- 入力層、1以上の中間層、および、出力層を少なくとも含むニューラルネットワーク回路装置のニューラルネットワークの処理方法であって、
前記ニューラルネットワーク回路装置は、
前記中間層の中で、2値の入力値xiおよび重みwiを受け取り、論理演算を行うステップと、
論理回路部の出力の総和を取るステップと、
2値化によるバラツキの偏りを正規化範囲を広げ中心をシフトさせる処理で是正するステップと、
総和を取った信号Yのバッチ正規化した信号Bを活性化関数fsgn(B)で変換するステップと、を有し、
前記総和を取った信号Yは、下記式で示される
ただし、
γ:スケーリング係数
β:シフト値
μ’B:バイアスを除く平均値。入力値x0のときのバイアス値w0とし、ミニバッチの平均値μBとするとき、w0−μB
σ2 B:ミニバッチの分散値
ε:定数
ことを特徴とするニューラルネットワークの処理方法。 - 入力層、1以上の中間層、および、出力層を少なくとも含むニューラルネットワーク回路装置としてのコンピュータを、
前記中間層の中で、2値の入力値xiおよび重みwiを受け取り、論理演算を行う論理回路手段、
論理回路部の出力の総和を取る総和回路手段、
2値化によるバラツキの偏りを正規化範囲を広げ中心をシフトさせる処理で是正するバッチ正規化回路手段、
総和を取った信号Yのバッチ正規化した信号Bを活性化関数fsgn(B)で変換する活性化関数回路手段、
ただし、前記総和を取った信号Yは、下記式で示される
γ:スケーリング係数
β:シフト値
μ’B:バイアスを除く平均値。入力値x0のときのバイアス値w0とし、ミニバッチの平均値μBとするとき、w0−μB
σ2 B:ミニバッチの分散値
ε:定数
として機能させるためのニューラルネットワークの実行プログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017180457A JP6933367B2 (ja) | 2017-09-20 | 2017-09-20 | ニューラルネットワーク回路装置、システム、処理方法および実行プログラム |
PCT/JP2018/034522 WO2019059191A1 (ja) | 2017-09-20 | 2018-09-18 | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム |
CN201880057412.5A CN111095301A (zh) | 2017-09-20 | 2018-09-18 | 神经网络电路装置、神经网络、神经网络处理方法和神经网络的执行程序 |
US16/648,319 US11741348B2 (en) | 2017-09-20 | 2018-09-18 | Neural network circuit device, neural network, neural network processing method, and neural network execution program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017180457A JP6933367B2 (ja) | 2017-09-20 | 2017-09-20 | ニューラルネットワーク回路装置、システム、処理方法および実行プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019057072A JP2019057072A (ja) | 2019-04-11 |
JP6933367B2 true JP6933367B2 (ja) | 2021-09-08 |
Family
ID=65811242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017180457A Active JP6933367B2 (ja) | 2017-09-20 | 2017-09-20 | ニューラルネットワーク回路装置、システム、処理方法および実行プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US11741348B2 (ja) |
JP (1) | JP6933367B2 (ja) |
CN (1) | CN111095301A (ja) |
WO (1) | WO2019059191A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11436471B2 (en) * | 2017-10-13 | 2022-09-06 | Panasonic Intellectual Property Corporation Of America | Prediction model sharing method and prediction model sharing system |
US20190042934A1 (en) * | 2017-12-01 | 2019-02-07 | Meenakshi Arunachalam | Methods and apparatus for distributed training of a neural network |
CN109800859B (zh) * | 2018-12-25 | 2021-01-12 | 深圳云天励飞技术有限公司 | 一种神经网络批归一化的优化方法及装置 |
KR101991041B1 (ko) * | 2018-12-31 | 2019-06-19 | 서울대학교산학협력단 | 아날로그 이진인공신경망 회로에서 활성도 조절을 통한 공정변이 보상방법 및 그 시스템 |
CN110110852B (zh) * | 2019-05-15 | 2023-04-07 | 电科瑞达(成都)科技有限公司 | 一种深度学习网络移植到fpag平台的方法 |
CN110263139A (zh) * | 2019-06-10 | 2019-09-20 | 湖北亿咖通科技有限公司 | 车辆、车机设备及其基于神经网络的文本意图识别方法 |
CN110598852A (zh) * | 2019-08-29 | 2019-12-20 | 北京小米移动软件有限公司 | 子网络采样方法、构建超网络拓扑结构的方法及装置 |
US20210150313A1 (en) * | 2019-11-15 | 2021-05-20 | Samsung Electronics Co., Ltd. | Electronic device and method for inference binary and ternary neural networks |
US11295430B2 (en) * | 2020-05-20 | 2022-04-05 | Bank Of America Corporation | Image analysis architecture employing logical operations |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6227052B2 (ja) | 2016-05-11 | 2017-11-08 | 三菱電機株式会社 | 処理装置、判別方法およびプログラム |
KR101899101B1 (ko) * | 2016-06-01 | 2018-09-14 | 서울대학교 산학협력단 | 인공 신경망 기반 예측 모델 생성 장치 및 방법 |
KR20180048109A (ko) * | 2016-11-02 | 2018-05-10 | 삼성전자주식회사 | 뉴럴 네트워크 변환 방법 및 이를 이용한 인식 장치 |
JP6183980B1 (ja) * | 2016-12-02 | 2017-08-23 | 国立大学法人東京工業大学 | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム |
-
2017
- 2017-09-20 JP JP2017180457A patent/JP6933367B2/ja active Active
-
2018
- 2018-09-18 US US16/648,319 patent/US11741348B2/en active Active
- 2018-09-18 CN CN201880057412.5A patent/CN111095301A/zh active Pending
- 2018-09-18 WO PCT/JP2018/034522 patent/WO2019059191A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN111095301A (zh) | 2020-05-01 |
WO2019059191A1 (ja) | 2019-03-28 |
US11741348B2 (en) | 2023-08-29 |
JP2019057072A (ja) | 2019-04-11 |
US20200218964A1 (en) | 2020-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6933367B2 (ja) | ニューラルネットワーク回路装置、システム、処理方法および実行プログラム | |
JP6183980B1 (ja) | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム | |
JP7240657B2 (ja) | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム | |
Sarwar et al. | Energy efficient neural computing: A study of cross-layer approximations | |
GB2580171A (en) | Methods and systems for selecting quantisation parameters for deep neural networks using back-propagation | |
US12020145B2 (en) | End-to-end data format selection for hardware implementation of deep neural networks | |
US20240095510A1 (en) | Systems and Methods of Sparsity Exploiting | |
JP2018194974A (ja) | 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法 | |
WO2020158760A1 (ja) | ニューラルネットワーク回路装置、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム | |
Rodriguez | Deep Learning Systems: Algorithms, Compilers, and Processors for Large-Scale Production | |
KR20190134965A (ko) | 뉴럴 네트워크 학습 방법 및 그 시스템 | |
US11568303B2 (en) | Electronic apparatus and control method thereof | |
CN107798344B (zh) | 图像识别方法及装置、计算机可读介质 | |
Solis | Dedicated hardware for machine/deep learning: Domain specific architectures | |
Bytyn | Efficiency and scalability exploration of an application-specific instruction-set processor for deep convolutional neural networks | |
US20240028902A1 (en) | Learning apparatus and method | |
Naresh et al. | Applications of the Approximate Computing on ML Architecture | |
Bergum | Object detection and instance segmentation of planktonic organisms using Mask R-CNN for real-time in-situ image processing. | |
Krishnani | In-Situ Implementation and Training of Convolutional Neural Network on FPGAs | |
Sharma et al. | Abnormality Detection in Heart Using Combination of CNN, RNN and U-Net | |
Schiavone et al. | Binary domain generalization for sparsifying binary neural networks | |
CN117764200A (zh) | 多目标任务的机器学习模型训练方法、设备、介质和程序产品 | |
JP2024013104A (ja) | 学習装置、方法およびプログラム | |
WO2023128792A1 (en) | Transformations, optimizations, and interfaces for analog hardware realization of neural networks | |
GB2603582A (en) | End-to-end data format selection for hardware implementation of deep neural network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20200916 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200917 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20200916 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210323 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210520 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210713 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210812 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6933367 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |