JP2018092377A - ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム - Google Patents
ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム Download PDFInfo
- Publication number
- JP2018092377A JP2018092377A JP2016235383A JP2016235383A JP2018092377A JP 2018092377 A JP2018092377 A JP 2018092377A JP 2016235383 A JP2016235383 A JP 2016235383A JP 2016235383 A JP2016235383 A JP 2016235383A JP 2018092377 A JP2018092377 A JP 2018092377A
- Authority
- JP
- Japan
- Prior art keywords
- neural network
- circuit
- bit
- bias
- input
- 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.)
- Granted
Links
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
- G06N3/065—Analogue 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/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
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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/044—Recurrent networks, e.g. Hopfield 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
- G06N3/084—Backpropagation, e.g. using gradient descent
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)
Abstract
【解決手段】2値化ニューラルネットワーク回路100は、入力値x1〜xn(xi)(2値)を入力する入力ノードおよび重みw1〜wn(wi)を入力する入力部101と、入力値x1〜xnおよび重みw1〜wnを受け取り、XNOR論理を取るXNORゲート回路102と、多ビットバイアスW’を入力する多ビットバイアスW’入力部110と、各XNOR論理値と多ビットバイアスW’との総和を取る総和回路103と、総和を取った信号Yに対して符号ビットのみを出力する活性化回路120と、を備える。
【選択図】図9
Description
近年、ADAS(advanced driver assistance system)用の画像認識や自動翻訳などで注目を集める新方式として畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)(層間が全結合でないNN)や再帰型ニューラルネットワーク(双方向伝搬)が登場している。CNNは、ディープニューラルネットワーク(DNN:Deep Neural Network)に畳込み演算を付加したものである。
(背景説明)
図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(多ビット)およびバイアスW0(多ビット)を入力する入力部21と、入力値X1〜Xnおよび重みW1〜Wnを受け取り、入力値X1〜Xnに重みW1〜Wnをそれぞれ乗算する複数の乗算回路22と、各乗算値とバイアスW0との総和を取る総和回路23と、総和を取った信号Yを活性化関数fact(Y)で変換する活性化関数回路24と、を備えて構成される。
以上の構成において、ニューラルネットワーク回路20は、入力値X1〜Xn(多ビット)を受け取り、重みW1〜Wnを乗算した後に、バイアスW0を含めて総和を取った信号Yを活性化関数回路24を通すことで人間のニューロンに模した処理を実現している。
ニューラルネットワーク回路20(図2参照)は、多ビットで高い認識精度を実現している。このため、活性化関数回路24(図2参照)において、非線形な活性化関数fact(Y)を用いることができる。すなわち、図4に示すように、非線形な活性化関数fact(Y)は、傾きが非ゼロとなる部分(図4の破線囲み部分参照)に±1の範囲の値をとる活性化値を設定できる。このため、ニューラルネットワーク回路20は、多様な活性を実現でき、認識精度は実用的な値になっていた。しかし、ニューラルネットワーク回路20は、大量の乗算回路22が必要になる。加えて、ニューラルネットワーク回路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値)およびバイアスw0(2値)を入力する入力部31と、入力値x1〜xnおよび重みw1〜wnを受け取り、XNOR(Exclusive NOR:否定排他的論理和)論理を取る複数のXNORゲート回路32と、XNORゲート回路32の各XNOR論理値とバイアスw0との総和を取る総和回路33と、総和を取った信号Yのバッチ正規化した信号Bを活性化関数fsgn(B)で変換する活性化関数回路34と、を備えて構成される。
2値化ニューラルネットワーク回路30は、乗算回路21(図2参照)がXNOR論理を実現するXNORゲート回路32に置き換えられている。このため、乗算回路21を構成する際に必要であった面積を削減することができる。また、入力値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の認識精度を保つバッチ正規化回路を備える2値化ニューラルネットワーク回路40の構成の一例を示す図である。図4と同一構成部分には同一符号を付している。
図6に示すように、比較例の2値化ニューラルネットワーク回路40は、入力値x1〜xn(2値)を入力する入力ノードx1〜xn、重みw1〜wn(2値)およびバイアスw0(2値)を入力する入力部31と、入力値x1〜xnおよび重みw1〜wnを受け取り、XNOR(Exclusive NOR:否定排他的論理和)論理を取る複数のXNORゲート回路32と、XNORゲート回路32の各XNOR論理値とバイアスw0(2値)との総和を取る総和回路33と、2値化によるバラツキの偏りを正規化範囲を広げ中心をシフトさせる処理で是正するバッチ正規化回路41と、総和を取った信号Yのバッチ正規化した信号Bを活性化関数fsgn(B)で変換する活性化関数回路34と、を備えて構成される。
2値化ニューラルネットワーク回路40は、バッチ正規化回路41を備えることで、2値化した精度を是正して、CNNの認識精度を保つようにする。
なお、入力値x1〜xnと重みw1〜wnとのXNOR論理を取る論理回路であれば、XNORゲートに限らずどのような論理ゲートでもよい。
2値化ニューラルネットワーク回路40は、図2に示すニューラルネットワーク回路20のように、多数の乗算回路21を必要とはしないものの、バッチ正規化回路41において、面積が大きい乗算回路42と加算器43が必要となる。バッチ正規化回路41では、パラメータ格納用のメモリも必要となり、面積とメモリ帯域の削減が求められている。
比較例の2値化ニューラルネットワーク回路40のバッチ正規化回路41が必要となる理由について説明する。
図7および図8は、比較例の2値化ニューラルネットワーク回路40のバッチ正規化による効果を説明する図である。図7は、スケーリング(γ)による正規化を示す図、図8は、シフト(β)による−1〜+1の制限を示す図である。
バッチ正規化とは、2値化によるバラツキの偏りを是正する回路であり、重み総和後、スケーリング(γ)値による正規化を行った後、シフト(β)値による適切な活性化による2分類を行う。これらのパラメータは事前に学習時に求めておく。具体的には、下記の通りである。
このように、2値化ニューラルネットワーク回路40には、バッチ正規化回路41が必要である。
上記バッチ正規化回路41を導入することで、2値化ニューラルネットワーク回路40 の認識精度は、図2に示したニューラルネットワーク回路20とほぼ等しくなる。しかしながら、バッチ正規化回路41は、乗算回路42と加算器43が必要であり、多ビットのスケーリング(γ)値およびシフト(β)値をメモリに格納しておく必要がある。このため、2値化ニューラルネットワーク回路40は、依然として複雑な回路であり、面積・消費電力を低減したいという切実な要請がある。
本発明者らは、バッチ正規化の操作を導入したNNに対して、これと等価なNNを解析的に求めると、バッチ正規化が不要なNNを得ることができることを発見したことが着眼点である。例えば、従来では、図3のような非線形な活性化関数fact(Y)に対し、図3の符号○印に示す状態値が得られた場合、不均等な幅を正規化するためスケーリングを行っていた。多ビットを2値して乗算する場合の演算精度を確保するためである。しかしながら、本発明者らは、ニューラルネットワーク回路における2値化の本質は、活性化するかしないかの(2値)だけに帰着することに着目した。スケーリングは、不要となりシフトのみで対応できることになる。
すなわち、重み積和後に2値化ニューラルネットワーク回路40のバッチ正規化回路41(図6参照)に入力される信号をYとすると、バッチ正規化回路41から出力される信号(Yと等価となる信号)Y'は、次式(1)で示される。
γ:スケーリング値
β:シフト値
μB:平均値
σ2 B:二乗和誤差
ε:パラメータ(調整用)
したがって、2値化活性化関数の値f'sgn(Y)は、下記式(2)の条件で決まる。
W':多ビットバイアス
上記式(3)は、回路的にはバイアス値のみ多ビット構成にすればよいことを示している。回路は単純だが、単にバイアス値のみ多ビットにしただけでは認識精度は向上せず、これらの解析的な洞察がなければ成り立たない。
図9は、本発明の実施形態に係るニューラルネットワークの2値化ニューラルネットワーク回路の構成を示す図である。本実施形態の2値化ニューラルネットワーク回路は、ディープニューラルネットワークへの実装技術を提供する。
2値化ニューラルネットワーク回路100は、図1のニューラルネットワーク回路2に適用できる。
図9に示すように、2値化ニューラルネットワーク回路100(ニューラルネットワーク回路装置)は、入力値x1〜xn(xi)(2値)を入力する入力ノードおよび重みw1〜wn(wi)(2値)を入力する入力部101と、入力値x1〜xnおよび重みw1〜wnを受け取り、XNOR論理を取るXNORゲート回路102(論理回路部)と、多ビットバイアスW'(式(3)参照)を入力する多ビットバイアスW'入力部110と、各XNOR論理値と多ビットバイアスW'との総和を取る総和回路103(総和回路部)と、総和を取った信号Yに対して符号ビットのみを出力する活性化回路120(活性化回路部)と、を備えて構成される。
上記多ビット信号Yおよび多ビットバイアスW'は、前記式(3)で示される。
なお、NNでは、重みが、クライアントの認識物体毎に全て異なる。また学習により毎回異なることがある。画像処理では係数は、全て同じであり、この点でNNと画像処理では、HWが大きく異なる。
図10に示すように、活性化回路120は、バイアス値を含めた総和の出力Yから、符合ビットのみを出力する回路である。図10の回路では、符号ビットは、出力y[0],y[1],…,y[n-1]のうち、最上位ビットy[n-1]であるとすると、符号ビットとして最上位ビットy[n-1]のみを出力する。活性化回路120は、最上位ビットy[n-1]のみが出力zとして出力される。図9では、活性化回路120は、活性化関数fsgn(Y)と表記されているが、図6に示すスケーリング(γ)による正規化およびシフト(β)による−1〜+1の制限は行っておらず、最上位ビットy[n-1]のみを出力する回路である。
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)の乗算を行う。
2値化ニューラルネットワーク回路100は、多ビット構成の乗算回路21(図2参照)がXNOR論理を実現するXNORゲート回路102に置き換えられている。このため、乗算回路21を構成する際に必要であった面積を削減することができる。また、入力値x1〜xnおよび重みw1〜wnは、いずれも2値(−1/+1)であるため、多ビット(多値)である場合と比較してメモリ容量を大幅に削減でき、メモリ帯域を向上させることができる。
総和回路103には、バイアス値のみ多ビット構成にした多ビットバイアスW'が入力される。総和回路103は、XNORゲート回路102の各XNOR論理値と多ビットバイアスW'との総和を取り、総和の出力Y(多ビット)を活性化回路120に出力する。
例えば、活性化回路120の入力Yとして4〜5bitの信号が入力された場合、HWでは、通常最上位ビットを符号ビットとするので、最上位ビット(符合ビット)だけを出力する。すなわち、活性化回路120からは、活性化するかしないかの二通り(2値、すなわち+1か−1)が出力され、それが後段の中間層(隠れ層)のノードに伝達される。
このため、活性化回路120は、バイアス値を含めた総和の出力Yから、符号ビットのみを出力する回路ではあるが、機能的には、活性化関数回路fsgn(Y)と同様な機能、すなわち活性化関数回路fsgn(Y)を模擬した回路となっている。
図11は、多ビット構成のニューラルネットワーク回路と2値化ニューラルネットワーク回路の認識精度を説明する図である。図11(a)は多ビット(32ビット浮動小数点)で構成したニューラルネットワーク回路20(図2参照)の認識精度、図11(b)は2値化ニューラルネットワーク回路100の認識精度を示す。図11の横軸は、利用した学習データに対して更新を終えたサイクルであるエポック(epoch)数、縦軸は誤認識(誤差)(Classification error)である。図11は、本実施形態をVGG16 ベンチマークNNで実装し確認したものである。また、図11(a)は、ディープニューラルネットワーク用のフレームワークソフトウェアChainer(登録商標)ののfloat32 CNNを用いている。また、図11(b)は、ディープニューラルネットワーク用のフレームワークソフトウェアChainer(登録商標)のfloat32 CNNを用いている。また、バッチ正規化なし、バッチ正規化ありを示している。
図11(b)の「バッチ正規化なし」に示すように、単に2値化した2値化ニューラルネットワーク回路30(図4参照)では、誤差率(Classification error)が大きく(約80%)認識精度は悪い。また、学習を続けても誤差率の改善は見られない(学習が収束しない)。
これに対して、図11(b)の「バッチ正規化あり」で示される本実施形態の2値化ニューラルネットワーク回路100は、多ビット構成のニューラルネットワーク回路20と比較して約6%の誤差(VGG‐16を使用)に収まることが確認された。ただし、ニューロン数は同じ場合であるのでニューロン数を増やすとその差は縮まる。また、本実施形態の2値化ニューラルネットワーク回路100は、多ビット構成のニューラルネットワーク回路20と同様に、学習を続けるに従って収束していくことが確認された。
図12の表は、表下欄外に表記した[1]〜[4]の学会発表者(論文発表年)のニューラルネットワークと本実施形態のニューラルネットワークをFPGA 上に実現した場合に、各項目を対比して示したものである。「Platform」(プラットフォーム)、「Clock(MHz)」(同期化のための内部クロック)、「Bandwidth(GB/s)」(データ転送のバンド幅/外部にメモリを付けた場合の転送速度)、「Quantization Strategy」(量子化ビット数)、「Power(W)」(消費電力)、「Performance(GOP/s)」(チップ面積に対する性能)、「Resource Efficiency(GOP/s/Slices)」(リソース効率)、および「Power Efficiency(GOP/s/W)」(性能パワー効率)の各項目を対比して示した。この表において、特に注目すべき事項は下記の通りである。
本実施形態の2値化ニューラルネットワーク回路100は、表の従来例と比較して、電力のバランスが取れていることが挙げられる。従来例では、「Power(W)」に示すように、消費電力が大きい。消費電力が大きいので、これを回避する制御方法が複雑である。「Power(W)」に示すように、本実施形態では、従来例と比較して消費電力を1/2〜1/3に低減することができた。
本実施形態の2値化ニューラルネットワーク回路100は、バッチ正規化回路がなくメモリが不要であること、乗算回路が2値論理ゲートであること、活性化関数が単純であること(活性化関数回路ではなく活性化関数回路を模擬する活性化回路120であること)、から、表の「Performance(GOP/s)」に示すように、チップ面積に対する性能は、従来例と比較して約30倍となる。すなわち、チップ面積が減る、外付けメモリが不要となる、メモリコントローラおよび活性化関数が単純になることなどの効果がある。チップ面積は価格に比例するので、価格も2桁程度安くなることが期待できる。
本実施形態の2値化ニューラルネットワーク回路100は、表の「Bandwidth(GB/s)」に示すように、従来例と比較してほぼ同等である。また、表の「Power(W)」に示すように、性能パワー効率は、面積を見ずにパワー効率だけを見たものでも約2倍となっている。さらに、表の「Power Efficiency(GOP/s/W)」に示すように、単位ワット数当たりの処理能力(基板全体のワット数)も約2倍となっている。
図13は、本発明の実施形態に係る2値化ニューラルネットワーク回路の実装例を説明する図である。
<STEP1>
まず、与えられたデータセット(今回はImageNet、画像認識タスク用にデータ)を既存のディープニューラルネットワーク用のフレームワークソフトウェアであるChainer (登録商標)を用いてCPU(Central Processing Unit)101を有するコンピュータ上で学習を行った。このコンピュータは、ARMプロセッサなどのCPU101と、メモリと、ハードディスクなどの記憶手段(記憶部)と、ネットワークインタフェースを含むI/Oポートとを有する。このコンピュータは、CPU101が、メモリ上に読み込んだプログラム(2値化したニューラルネットワークの実行プログラム)を実行することにより、後記する各処理部により構成される制御部(制御手段)を動作させる。
次に、自動生成ツールを用いて、本実施形態の2値化ニューラルネットワーク回路100と等価なC++コードを自動生成し、C++コード102を得た。
<STEP3>
次に、FPGA ベンダの高位合成ツール(Xilinx 社SDSoC) (登録商標)を用いて、FPGA(field-programmable gate array)合成用にHDL(hardware description language)を生成した。
<STEP4>
次に、従来のFPGA合成ツールVivado (登録商標)を用いて、FPGA上に実現して画像認識タスクの検証を行った。
<STEP5>
検証後、基板103を完成させた。基板103には、2値化ニューラルネットワーク回路100がハードウェア化されて実装されている。
図14は、変形例のディープニューラルネットワークの2値化ニューラルネットワーク回路の構成を示す図である。図9と同一構成部分には同一符号を付している。
本変形例は、乗算回路としての論理ゲートに代えて、LUT(Look-Up Table)を用いた例である。
2値化ニューラルネットワーク回路200は、図1のニューラルネットワーク回路2に適用できる。
図14に示すように、2値化ニューラルネットワーク回路200(ニューラルネットワーク回路装置)は、入力値x1〜xn(xi)(2値)を入力する入力ノードx1〜xnおよび重みw1〜wn(2値)を入力する入力部101と、入力値x1〜xnおよび重みw1〜wnを受け取り、2値(−1/+1)の乗算を行うためのテーブル値を格納し演算時に参照されるLUT202(論理回路部)と、多ビットバイアスW'(式(3)参照)を入力給する多ビットバイアスW'入力手段110と、LUT202から参照した各テーブル値と多ビットバイアスW'との総和を取る総和回路103と、総和を取った信号Yに対して符号ビットのみを出力する活性化関数回路を模擬する活性化回路120と、を備えて構成される。
LUT202は、XNOR論理を行うXNORゲート回路102(図9参照)に代えて、FPGA の基本構成要素であるルックアップテーブルを用いる。
図15に示すように、LUT202は、2入力(x1,w1)に対する2値(−1/+1)のXNOR論理結果Yを格納する。
また、本変形例では、XNOR演算を行う論理ゲートとして、LUT202を用いている。LUT202は、FPGAの基本構成要素であり、FPGA合成の際の親和性が高く、FPGAによる実装が容易である。
また、上記した実施形態例は本発明をわかりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態例の構成の一部を他の実施形態例の構成に置き換えることが可能であり、また、ある実施形態例の構成に他の実施形態例の構成を加えることも可能である。また、実施形態例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形例は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上記実施の形態では、装置は、ニューラルネットワーク回路装置という名称を用いたが、これは説明の便宜上であり、名称はディープニューラルネットワーク回路、ニューラルネットワーク装置、パーセプトロン等であってもよい。また、方法およびプログラムは、ニューラルネットワーク処理方法という名称を用いたが、ニューラルネットワーク演算方法、ニューラルネットプログラム等であってもよい。
2 ニューラルネットワーク回路
11 入力層
12 隠れ層(中間層)
13 出力層
100,200 2値化ニューラルネットワーク回路(ニューラルネットワーク回路装置)
101 入力部
102 XNORゲート回路(論理回路部,論理回路手段)
103 総和回路(総和回路部,総和回路手段)
110 多ビットバイアス入力部
120 活性化回路(活性化回路部,活性化回路手段)
202 LUT(論理回路部)
x1〜xn(xi) 入力値(2値)
w1〜wn(wi) 重み(2値)
W' 多ビットバイアス
Claims (11)
- 入力層、1以上の中間層、および、出力層を少なくとも含むニューラルネットワークにおいて、前記中間層の中で、入力値に重みづけとバイアスを乗算するニューラルネットワーク回路装置であって、
入力値xiおよび重みwiを受け取り、論理演算を行う論理回路部と、
多ビットバイアスW'を受け取り、前記論理回路部の出力と前記多ビットバイアスW'との総和を取る総和回路部と、
総和を取った多ビット信号Yに対して符号ビットのみを出力する活性化回路部と、を備える
ことを特徴とする記載のニューラルネットワーク回路装置。 - 前記入力値xiおよび前記重みwiを入力する入力部と、
前記多ビットバイアスW'を入力する多ビットバイアス入力部と、を備える
ことを特徴とする請求項1に記載のニューラルネットワーク回路装置。 - 前記入力値xiおよび前記重みwiは、2値信号である
ことを特徴とする請求項1または請求項2に記載のニューラルネットワーク回路装置。 - 前記多ビットバイアスW'は、学習後の多ビットバイアス値である
ことを特徴とする請求項1または請求項2に記載のニューラルネットワーク回路装置。 - 前記論理回路部は、否定排他的論理和または排他的論理和を含む
ことを特徴とする請求項1に記載のニューラルネットワーク回路装置。 - 前記論理回路部は、LUT(Look-Up Table)である
ことを特徴とする請求項1に記載のニューラルネットワーク回路装置。 - 前記符号ビットは、総和を取った前記多ビット信号Yを活性化するかしないかで示す2値信号である
ことを特徴とする請求項1に記載のニューラルネットワーク回路装置。 - 前記多ビット信号Yおよび多ビットバイアスW'は、下記式で示される
- 請求項1乃至8のいずれか1項に記載のニューラルネットワーク回路装置を備えるニューラルネットワーク。
- 入力層、1以上の中間層、および、出力層を少なくとも含むニューラルネットワークにおいて、前記中間層の中で、入力値に重みづけとバイアスを乗算するニューラルネットワーク処理方法であって、
入力値xiおよび重みwiを受け取り、論理演算を行うステップと、
多ビットバイアスW'を受け取り、前記論理回路部の出力と前記多ビットバイアスW'との総和を取るステップと、
総和を取った多ビット信号Yに対して符号ビットのみを出力するステップと、を有する
ことを特徴とするニューラルネットワーク処理方法。 - 入力層、1以上の中間層、および、出力層を少なくとも含むニューラルネットワークにおいて、前記中間層の中で、入力値に重みづけとバイアスを乗算するニューラルネットワーク回路装置としてのコンピュータを、
入力値xiおよび重みwiを受け取り、論理演算を行う論理回路手段、
多ビットバイアスW'を受け取り、前記論理回路部の出力と前記多ビットバイアスW'との総和を取る総和回路手段、
総和を取った多ビット信号Yに対して符号ビットのみを出力する活性化回路手段、
として機能させるためのニューラルネットワークの実行プログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016235383A JP6183980B1 (ja) | 2016-12-02 | 2016-12-02 | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム |
EP17875690.4A EP3564865A4 (en) | 2016-12-02 | 2017-11-28 | NEURONAL NETWORK CIRCUIT DEVICE, NEURONAL NETWORK, NEURONAL NETWORK PROCESSING PROCESS AND NEURONAL NETWORK EXECUTION PROGRAM |
US16/466,031 US20200005131A1 (en) | 2016-12-02 | 2017-11-28 | Neural network circuit device, neural network, neural network processing method, and neural network execution program |
CN201780052989.2A CN109844775A (zh) | 2016-12-02 | 2017-11-28 | 神经网络电路装置、神经网络、神经网络处理方法及神经网络的执行程序 |
PCT/JP2017/042670 WO2018101275A1 (ja) | 2016-12-02 | 2017-11-28 | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016235383A JP6183980B1 (ja) | 2016-12-02 | 2016-12-02 | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6183980B1 JP6183980B1 (ja) | 2017-08-23 |
JP2018092377A true JP2018092377A (ja) | 2018-06-14 |
Family
ID=59678176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016235383A Active JP6183980B1 (ja) | 2016-12-02 | 2016-12-02 | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20200005131A1 (ja) |
EP (1) | EP3564865A4 (ja) |
JP (1) | JP6183980B1 (ja) |
CN (1) | CN109844775A (ja) |
WO (1) | WO2018101275A1 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020060968A (ja) * | 2018-10-10 | 2020-04-16 | LeapMind株式会社 | 畳み込み演算回路、方法、および畳み込みニューラルネットワーク装置 |
WO2020100393A1 (ja) * | 2018-11-15 | 2020-05-22 | LeapMind株式会社 | ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、およびニューラルネットワーク処理プログラム |
JP2020191006A (ja) * | 2019-05-23 | 2020-11-26 | 日本電信電話株式会社 | 学習装置、学習方法、および、学習プログラム |
JP2020205045A (ja) * | 2019-06-14 | 2020-12-24 | 浦項工科大学校 産学協力団 | ニューラルネットワークアクセラレータ |
US11604964B2 (en) | 2018-12-18 | 2023-03-14 | Samsung Electronics Co., Ltd. | Recognizer, object recognition method, learning apparatus, and learning method for domain adaptation |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6933367B2 (ja) * | 2017-09-20 | 2021-09-08 | Tokyo Artisan Intelligence株式会社 | ニューラルネットワーク回路装置、システム、処理方法および実行プログラム |
US11354562B2 (en) * | 2018-01-03 | 2022-06-07 | Silicon Storage Technology, Inc. | Programmable neuron for analog non-volatile memory in deep learning artificial neural network |
JP6977864B2 (ja) | 2018-03-02 | 2021-12-08 | 日本電気株式会社 | 推論装置、畳み込み演算実行方法及びプログラム |
WO2019168088A1 (ja) | 2018-03-02 | 2019-09-06 | 日本電気株式会社 | 推論装置、畳み込み演算実行方法及びプログラム |
CN110245741A (zh) * | 2018-03-09 | 2019-09-17 | 佳能株式会社 | 多层神经网络模型的优化和应用方法、装置及存储介质 |
US12093696B1 (en) | 2018-04-20 | 2024-09-17 | Perceive Corporation | Bus for transporting output values of a neural network layer to cores specified by configuration data |
US11468145B1 (en) | 2018-04-20 | 2022-10-11 | Perceive Corporation | Storage of input values within core of neural network inference circuit |
US11210586B1 (en) | 2018-04-20 | 2021-12-28 | Perceive Corporation | Weight value decoder of neural network inference circuit |
US10977338B1 (en) | 2018-04-20 | 2021-04-13 | Perceive Corporation | Reduced-area circuit for dot product computation |
US11783167B1 (en) | 2018-04-20 | 2023-10-10 | Perceive Corporation | Data transfer for non-dot product computations on neural network inference circuit |
US20210232894A1 (en) * | 2018-10-10 | 2021-07-29 | Leapmind Inc. | Neural network processing apparatus, neural network processing method, and neural network processing program |
US11995533B1 (en) | 2018-12-05 | 2024-05-28 | Perceive Corporation | Executing replicated neural network layers on inference circuit |
US11347297B1 (en) | 2019-01-23 | 2022-05-31 | Perceive Corporation | Neural network inference circuit employing dynamic memory sleep |
CN110046703B (zh) * | 2019-03-07 | 2020-07-31 | 中国科学院计算技术研究所 | 一种用于神经网络的片上存储处理系统 |
KR20200122707A (ko) * | 2019-04-18 | 2020-10-28 | 에스케이하이닉스 주식회사 | 프로세싱 엘리먼트 및 프로세싱 시스템 |
CN110110852B (zh) * | 2019-05-15 | 2023-04-07 | 电科瑞达(成都)科技有限公司 | 一种深度学习网络移植到fpag平台的方法 |
US11941533B1 (en) | 2019-05-21 | 2024-03-26 | Perceive Corporation | Compiler for performing zero-channel removal |
US10752253B1 (en) * | 2019-08-28 | 2020-08-25 | Ford Global Technologies, Llc | Driver awareness detection system |
US11574173B2 (en) * | 2019-12-19 | 2023-02-07 | Qualcomm Incorporated | Power efficient near memory analog multiply-and-accumulate (MAC) |
US11899765B2 (en) | 2019-12-23 | 2024-02-13 | Dts Inc. | Dual-factor identification system and method with adaptive enrollment |
CN114187598B (zh) * | 2020-08-25 | 2024-02-09 | 本源量子计算科技(合肥)股份有限公司 | 手写数字识别方法、设备及计算机可读存储介质 |
CN113656751B (zh) * | 2021-08-10 | 2024-02-27 | 上海新氦类脑智能科技有限公司 | 无符号dac实现有符号运算的方法、装置、设备和介质 |
CN116488934A (zh) * | 2023-05-29 | 2023-07-25 | 无锡车联天下信息技术有限公司 | 一种基于域控制器的网络安全管理方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006033579A (ja) * | 2004-07-20 | 2006-02-02 | Toshiba Corp | プログラマブル論理回路装置およびプログラマブル論理回路の再構築方法 |
JP2016033806A (ja) * | 2014-05-15 | 2016-03-10 | 株式会社リコー | 画像処理装置、画像処理方法及びプログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1990015390A1 (en) * | 1989-06-02 | 1990-12-13 | E.I. Du Pont De Nemours And Company | Parallel distributed processing network characterized by an information storage matrix |
US5634087A (en) * | 1991-02-28 | 1997-05-27 | Rutgers University | Rapidly trainable neural tree network |
US10373050B2 (en) * | 2015-05-08 | 2019-08-06 | Qualcomm Incorporated | Fixed point neural network based on floating point neural network quantization |
CN106127301B (zh) * | 2016-01-16 | 2019-01-11 | 上海大学 | 一种随机神经网络硬件实现装置 |
JP6227052B2 (ja) | 2016-05-11 | 2017-11-08 | 三菱電機株式会社 | 処理装置、判別方法およびプログラム |
-
2016
- 2016-12-02 JP JP2016235383A patent/JP6183980B1/ja active Active
-
2017
- 2017-11-28 WO PCT/JP2017/042670 patent/WO2018101275A1/ja unknown
- 2017-11-28 US US16/466,031 patent/US20200005131A1/en not_active Abandoned
- 2017-11-28 CN CN201780052989.2A patent/CN109844775A/zh active Pending
- 2017-11-28 EP EP17875690.4A patent/EP3564865A4/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006033579A (ja) * | 2004-07-20 | 2006-02-02 | Toshiba Corp | プログラマブル論理回路装置およびプログラマブル論理回路の再構築方法 |
JP2016033806A (ja) * | 2014-05-15 | 2016-03-10 | 株式会社リコー | 画像処理装置、画像処理方法及びプログラム |
Non-Patent Citations (1)
Title |
---|
中原啓貴,米川晴義,笹尾勤,岩本久,本村真人: "メモリベースに基づく2値化深層畳込みニューラルネットワークの実現", 電子情報通信学会技術研究報告, vol. 116, no. 210, JPN6017013969, 29 August 2016 (2016-08-29), JP, pages 63 - 68, ISSN: 0003542848 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020060968A (ja) * | 2018-10-10 | 2020-04-16 | LeapMind株式会社 | 畳み込み演算回路、方法、および畳み込みニューラルネットワーク装置 |
JP7001897B2 (ja) | 2018-10-10 | 2022-01-20 | LeapMind株式会社 | 畳み込み演算回路、畳み込み演算方法、プログラム、および畳み込みニューラルネットワーク装置 |
WO2020100393A1 (ja) * | 2018-11-15 | 2020-05-22 | LeapMind株式会社 | ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、およびニューラルネットワーク処理プログラム |
JPWO2020100393A1 (ja) * | 2018-11-15 | 2021-02-15 | LeapMind株式会社 | ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、およびニューラルネットワーク処理プログラム |
JP2021119524A (ja) * | 2018-11-15 | 2021-08-12 | LeapMind株式会社 | ニューラルネットワークモデル、ニューラルネットワーク処理装置、およびニューラルネットワークの演算方法 |
US11604964B2 (en) | 2018-12-18 | 2023-03-14 | Samsung Electronics Co., Ltd. | Recognizer, object recognition method, learning apparatus, and learning method for domain adaptation |
JP2020191006A (ja) * | 2019-05-23 | 2020-11-26 | 日本電信電話株式会社 | 学習装置、学習方法、および、学習プログラム |
JP7178323B2 (ja) | 2019-05-23 | 2022-11-25 | 日本電信電話株式会社 | 学習装置、学習方法、および、学習プログラム |
JP2020205045A (ja) * | 2019-06-14 | 2020-12-24 | 浦項工科大学校 産学協力団 | ニューラルネットワークアクセラレータ |
JP7028911B2 (ja) | 2019-06-14 | 2022-03-02 | 浦項工科大学校 産学協力団 | ニューラルネットワークアクセラレータ |
US11562218B2 (en) | 2019-06-14 | 2023-01-24 | Samsung Electronics Co., Ltd. | Neural network accelerator |
US11954582B2 (en) | 2019-06-14 | 2024-04-09 | Samsung Electronics Co., Ltd. | Neural network accelerator |
Also Published As
Publication number | Publication date |
---|---|
EP3564865A4 (en) | 2020-12-09 |
EP3564865A1 (en) | 2019-11-06 |
CN109844775A (zh) | 2019-06-04 |
JP6183980B1 (ja) | 2017-08-23 |
WO2018101275A1 (ja) | 2018-06-07 |
US20200005131A1 (en) | 2020-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6183980B1 (ja) | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム | |
JP6933367B2 (ja) | ニューラルネットワーク回路装置、システム、処理方法および実行プログラム | |
JP7240657B2 (ja) | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム | |
Armeniakos et al. | Hardware approximate techniques for deep neural network accelerators: A survey | |
US11593626B2 (en) | Histogram-based per-layer data format selection for hardware implementation of deep neural network | |
US11809515B2 (en) | Reduced dot product computation circuit | |
US20220327366A1 (en) | Error Allocation Format Selection for Hardware Implementation of Deep Neural Network | |
EP3480689B1 (en) | Hierarchical mantissa bit length selection for hardware implementation of deep neural network | |
US12020145B2 (en) | End-to-end data format selection for hardware implementation of deep neural networks | |
WO2019197855A1 (en) | Dynamic pruning of neurons on-the-fly to accelerate neural network inferences | |
JP7279921B2 (ja) | ニューラルネットワーク回路装置、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム | |
US20230281432A1 (en) | System and method for hybrid arithmetic and logic processing of neural networks | |
Kim et al. | Extreme partial-sum quantization for analog computing-in-memory neural network accelerators | |
CN111950734A (zh) | 通过更改神经网络参数来精确汇总 | |
Schiavone et al. | Binary domain generalization for sparsifying binary neural networks | |
CN117764200A (zh) | 多目标任务的机器学习模型训练方法、设备、介质和程序产品 | |
GB2603582A (en) | End-to-end data format selection for hardware implementation of deep neural network | |
GB2603647A (en) | End-to-end data format selection for hardware implementation of deep neural network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170623 |
|
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: 20170711 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170721 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6183980 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |