JP7240657B2 - ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム - Google Patents

ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム Download PDF

Info

Publication number
JP7240657B2
JP7240657B2 JP2018094184A JP2018094184A JP7240657B2 JP 7240657 B2 JP7240657 B2 JP 7240657B2 JP 2018094184 A JP2018094184 A JP 2018094184A JP 2018094184 A JP2018094184 A JP 2018094184A JP 7240657 B2 JP7240657 B2 JP 7240657B2
Authority
JP
Japan
Prior art keywords
neural network
weight
zero
circuit
weights
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
Application number
JP2018094184A
Other languages
English (en)
Other versions
JP2019200553A (ja
Inventor
啓貴 中原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tokyo Artisan Intelligence
Original Assignee
Tokyo Artisan Intelligence
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority to JP2018094184A priority Critical patent/JP7240657B2/ja
Application filed by Tokyo Artisan Intelligence filed Critical Tokyo Artisan Intelligence
Priority to KR1020207035817A priority patent/KR20210009353A/ko
Priority to EP19803111.4A priority patent/EP3816873A4/en
Priority to US17/055,600 priority patent/US11915128B2/en
Priority to PCT/JP2019/018382 priority patent/WO2019220975A1/ja
Priority to SG11202100430RA priority patent/SG11202100430RA/en
Priority to CN201980047467.2A priority patent/CN112424798A/zh
Priority to CA3108752A priority patent/CA3108752A1/en
Publication of JP2019200553A publication Critical patent/JP2019200553A/ja
Application granted granted Critical
Publication of JP7240657B2 publication Critical patent/JP7240657B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)
  • Image Analysis (AREA)

Description

本発明は、ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラムに関する。
古典的な順伝搬型ニューラルネットワーク(FFNN:Feedforward Neural Network)、RBF(Radial Basis Function)ネットワーク、正規化したRBFネットワーク、自己組織化マップなどがある。RBFNは、誤差逆伝搬法に用いる活性化関数に放射基底関数を用いる。しかし、中間層が多く取れず高精度認識判定が難しかったり、HW規模が大きく処理時間がかかる、などの問題があり手書き文字認識など応用分野が限定されていた。
近年、ADAS(advanced driver assistance system)用の画像認識や自動翻訳などで注目を集める新方式として畳み込みニューラルネットワーク(CNN:Convolutional Neural Net-work)(層間が全結合でないNN)や再帰型ニューラルネットワーク(双方向伝搬)が登場している。CNNは、ディープニューラルネットワーク(DNN:Deep Neural Network)に畳込み演算を付加したものである。
特許文献1には、誤り訂正符号の検査行列に基づいて、階層型ニューラルネットワークにおける疎結合のノード間で学習された重みの値と入力信号とを用いて、問題を解く処理部を備える処理装置が記載されている。
特許文献2には、ニューラルネットの重みパラメータを複数のグループに分割する分割手段と、分割されたグループごとに、重みパラメータをコードブックにより近似して符合化する符合化手段と、を有する情報処理装置が記載されている。重みパラメータは、2値あるいは3値の値を要素とすると記載されている。CNNの高層の重みパラメータのようにスパースな重みに対しても精度の高い近似が可能になるとしている。
CNNを用いた多くの機械学習用途には、非常に多くの計算とメモリ帯域幅が必要となる。この必要条件を緩和する一つの方法は、係数をゼロ除去し、係数がゼロのとき計算をスキップすることである。
特許文献3には、畳み込みを実行する方法であって、(a)電子デバイスによって、現在の係数として、カーネルからの係数を選択することと、(b)前記電子デバイスによって、積の集合を得るために、前記現在の係数により、画像の少なくとも一部を乗算することと、(c)前記電子デバイスによって、前記積の集合を蓄積された和の集合に加算することと、(d)(a)から(c)に従って、前記カーネルの全ての係数が処理されるまで、(a)から(c)を繰り返すことと、を含む方法が記載されている。カーネルからの係数を選択する場合、カーネルの非ゼロ係数のみを選択すると記載されている。ゼロ係数スキップと新規の畳み込みエンジンを組み合わせることで、計算とメモリ帯域幅の両方を減少するとしている。
既存のCNNは、短精度(多ビット)による積和演算回路で構成されており、多数の乗算回路が必要である。このため、面積・消費電力が多大になる欠点があった。そこで、2値化した精度、すなわち+1と-1(または0と1)のみ用いてCNNを構成する回路が提案されている(例えば、非特許文献1~4参照)。
特開2016-173843号公報 特開2018-55260号公報 特開2018-26134号公報
M. Courbariaux, I. Hubara, D. Soudry, R.E.Yaniv, Y. Bengio, "Binarized neural networks: Training deep neural networks with weights and activations constrained to +1 or -1," Computer Research Repository (CoRR)、「2値化NNのアルゴリズム」、[online]、2016年3月、[平成28年10月5日検索]、<URL:http:// arxiv.org/pdf/1602.02830v3.pdf > Mohammad Rastegari, Vicente Ordonez, Joseph Redmon, Ali Farhadi, "XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks,"Computer Vision and Pattern recognition、「2値化NNのアルゴリズム」、[online]、2016年3月、[平成28年10月5日検索]、<URL: https://arxiv.org/pdf/1603.05279v4 > Hiroki Nakahara, Haruyoshi Yonekawa, Tsutomu Sasao, Hisashi Iwamoto and Masato Motomura, " A Memory-Based Realization of a Binarized Deep Convolutional Neural Network," Proc. of the 2016 International Conference on Field-Programmable Technology (FPT), Xi'an, China, Dec 2016 (To Appear). Eriko Nurvitadhi, David Sheffield, Jaewoong Sim, Asit Mishra, Ganesh Venkatesh, Debbie Marr,"Accelerating Binarized Neural Networks: Comparison of FPGA, CPU, GPU, and ASIC," Proc. of the 2016 International Conference on Field-Programmable Technology (FPT), Xi'an, China, Dec 2016 (To Appear).
ニューロンを増大したディープニューラルネットワークは、機能を増やすことができ、かつ認識精度を格段に向上させることができる。しかしながら、このようなディープニューラルネットワークは、数十億~数百億の積和演算が必要である。このためには、大量の演算器およびメモリアクセスが不可欠となる。演算器およびメモリアクセスの増大は、いずれも高機能なディープニューラルネットワークを実現する上で大きな障害となっている。演算器については、微細化技術の進展によって増やすことは可能である。これに対して、外部基板に接続する基板ピン数の物理的制約から、メモリアクセスを増やすことは非常に困難である(実装上限界)。メモリ量を削減してオンチップに配置することは、現在切実な要望となっている。
本発明は、このような事情に鑑みてなされたものであり、メモリ量を削減してオンチップに配置が可能なニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラムを提供することを課題とする。
前記した課題を解決するため、本発明に係るニューラルネットワーク回路装置は、入力層、1以上の中間層、および、出力層を少なくとも含むニューラルネットワーク回路装置であって、前記中間層の中で、畳み込みを行う入力値Xiと、重みWiを受け取り、畳み込み演算を行う畳み込み演算回路と、畳み込み演算された各演算値とバイアスW0との総和を取る総和回路と、総和を取った信号Yを活性化関数f(u)で変換する活性化関数回路と、を備え、前記畳み込み演算回路は、重みWiがゼロの重みをスキップし、非ゼロの重みと当該非ゼロの重みに対応する入力値Xiをもとに畳み込み演算を行い、前記畳み込み演算回路は、非ゼロの重みと畳み込みを行う入力値Xiの絶対アドレスを格納する第3記憶手段を有し、ゼロの重みをスキップする演算の際、前記第3記憶手段から絶対アドレスを指定して該当する非ゼロの重みと入力値Xiを読み出し、読み出した入力値Xiと該当する非ゼロの重みをもとに畳み込み演算を行うことを特徴とする。
その他の手段については、発明を実施するための形態のなかで説明する。
本発明によれば、メモリ量を削減してオンチップに配置が可能なニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラムを提供することができる。
ディープニューラルネットワーク(DNN)の構造の一例を説明する図である。 本発明の実施形態に係るディープニューラルネットワークの非ゼロ畳み込み演算回路21を備えるニューラルネットワーク回路の構成を示す図であり、 本発明の実施形態に係るディープニューラルネットワークの非ゼロ畳み込み演算回路21の畳み込み演算の概念を示す図である。 本発明の実施形態に係るディープニューラルネットワークの非ゼロ畳み込み演算回路21の構成を示す図であり、(a)はその回路構成図、(b)はその0スキップの一例を示す図である。 本発明の実施形態に係るディープニューラルネットワークの3状態ニューラルネットワーク回路の構成を示す図である。 本発明の実施形態に係るディープニューラルネットワークの3値化ニューラルネットワーク回路の構成を示す図である。 本発明の実施形態に係るディープニューラルネットワークの間接メモリアクセスを説明する図であり、(a)は重み/アドレスメモリに格納される非零重みと相対アドレスの一例を示す図、(b)は“0”スキップする非零重みwを示す図、(c)は畳み込みを行う入力値Xの読み出しを示す図である。 本発明の実施形態に係るディープニューラルネットワークの間接アドレスの表現方法を説明する図であり、(a)は絶対アドレス指定方法を示す図、(b)は相対アドレス指定方法を示す図である。 本発明の実施形態に係るディープニューラルネットワークの畳み込みニューラルネットワークへの適用を説明する図である。 本発明の実施形態に係るディープニューラルネットワークの“0”スキップする演算の効果を説明する図である。 本発明の実施形態に係るディープニューラルネットワークの間接メモリアクセスを説明する図である。 本発明の実施形態に係るディープニューラルネットワークのビット精度を減らすことでメモリ量を削減する例を説明する図であり、(a)はニューラルネットワーク回路の構成図、(b)はメモリ量を削減できる原理図である。 本発明の実施形態に係るディープニューラルネットワークの0スキップ演算でメモリ量を削減する例を説明する図であり、(a)はニューラルネットワーク回路参照)の構成図、(b)はメモリ量を削減できる原理図である。 本発明の実施形態に係るディープニューラルネットワークの比較例のディープニューラルネットワークの学習方法を説明する図である。 本発明の実施形態に係るディープニューラルネットワークの3状態ニューラルネットワークの学習方法を説明する図である。 本発明の実施形態に係るディープニューラルネットワークの3状態ニューラルネットワークの学習方法を説明する図である。 本発明の実施形態に係るディープニューラルネットワークの3状態ニューラルネットワークの認識精度向上を説明する図である。 本発明の実施形態に係るディープニューラルネットワークの3状態ニューラルネットワーク回路と3値ニューラルネットワーク回路の組み合わせによる物体検出実証例を説明する図である。 本発明の実施形態に係るディープニューラルネットワークの3状態ニューラルネットワーク回路と物体認識アルゴリズムYOLOv2との比較を説明する図である。 本発明の実施形態に係るディープニューラルネットワークの3状態ニューラルネットワーク回路の実装例を説明する図である。
以下、図面を参照して本発明を実施するための形態(以下、「本実施形態」という)におけるディープニューラルネットワークについて説明する。
(背景説明)
図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のノード間が全て結合している。
入力層11、隠れ層12および出力層13には、任意の数のノード(図1の○印参照)が存在する。このノードは、入力を受け取り、値を出力する関数である。入力層11には、入力ノードとは別に独立した値を入れるバイアス(bias)ノードがある。構成は、複数のノードを持つ層を重ねることで構築される。伝播は、受け取った入力に対して重み(weight)をかけ、受け取った入力を次層に活性化関数(activation function)で変換して出力する。活性化関数は、sigmoid関数やtanh関数などの非線形関数、ReLU(Rectified Linear Unit function:正規化線形関数)がある。ノード数を増やすことで、扱う変数を増やし、多数の要素を加味して値/境界を決定できる。層数を増やすことで、直線境界の組み合わせ、複雑な境界を表現できる。学習は、誤差を計算し、それを基に各層の重みを調整する。学習は、誤差を最小化する最適化問題を解くことであり、最適化問題の解法は誤差逆伝播法(Backpropagation)を使うのが一般的である。誤差は、二乗和誤差を使うのが一般的である。汎化能力を高めるために、誤差に正則化項を加算する。誤差逆伝播法は、誤差を出力層13から伝播させていき、各層の重みを調整する。
図1のディープニューラルネットワーク1の構成を2次元に展開することで画像処理に適したCNNを構築できる。また、ディープニューラルネットワーク1にフィードバックを入れることで、双方向に信号が伝播するRNN(Recurrent Neural Network:再帰型ニューラルネットワーク)を構成することができる。
図1の太破線三角部に示すように、ディープニューラルネットワーク1は、多層のニューラルネットワークを実現する回路(以下、ニューラルネットワーク回路という)2から構成されている。
本技術は、ニューラルネットワーク回路2を対象とする。ニューラルネットワーク回路2の適用箇所および適用数は限定されない。例えば、隠れ層12の層数n:20~30の場合、これらの層のどの位置に適用してもよく、またどのノードを入出力ノードとするものでもよい。さらに、ディープニューラルネットワーク1に限らず、どのようなニューラルネットワークでもよい。ただし、入力層11または出力層13のノード出力には、2値化出力ではなく多ビット出力が求められるので、ニューラルネットワーク回路2は、対象外である。ただし、出力層13のノードを構成する回路に、乗算回路が残ったとしても面積的には問題にはならない。
なお、入力データに対し学習済のものを評価していくことを前提としている。したがって、学習結果として重みWiは既に得られている。
<非ゼロ畳み込み演算回路を備えるニューラルネットワーク回路>
図2は、本実施形態に係る非ゼロ畳み込み演算回路21を備えるニューラルネットワーク回路20の構成を示す図であり、人工ニューロンモデル(Artificial Neuron (AN) Model)に適用した例である。なお、ゼロは、0、零と表記することがある。
本実施形態のニューラルネットワーク回路20は、図1のディープニューラルネットワーク1を構成するニューラルネットワーク回路2に適用できる。
ニューラルネットワーク回路20は、畳み込みを行う入力値Xiと、重みWiを受け取り、非ゼロ畳み込み演算を行う非ゼロ畳み込み演算回路21(畳み込み演算回路)と、畳み込み演算された各演算値とバイアスW0との総和を取る総和回路22と、総和を取った信号Yを活性化関数f(u)で変換する活性化関数回路23と、を備えて構成される。
ニューラルネットワーク回路20は、基本演算が、入力値Xiと重みWiの積和演算を行う人工ニューロン(AN)である。
xi:Input signal(入力値)
w0:Bias(バイアス)
wi:Weight(重み)
u:Internal state(中間値)
f(u):Activation function(活性化関数、例えばSigmoid, ReLU, etc.)
y:Output signal(出力値)
非ゼロ畳み込み演算回路21は、重みWiがゼロの重みをスキップし、非ゼロの重みと当該非ゼロの重みに対応する入力値Xiをもとに畳み込み演算を行う。
非ゼロ畳み込み演算回路21は、3状態{-多ビット,0,+多ビット}の重みWiがゼロの重みをスキップし、非ゼロの重みと当該非ゼロの重みに対応する入力値Xiをもとに畳み込み演算を行う。
非ゼロ畳み込み演算回路21は、3値化{-1,0,+1}または2値化{-1,+1}の重みWiがゼロの重みをスキップし、非ゼロの重みと当該非ゼロの重みに対応する入力値Xiをもとに畳み込み演算を行う。
<閾値ρと関数h(x)の組み合わせによる状態表現>
本発明は、重みの閾値ρと活性化関数f(u)の組み合わせで様々な状態のニューラルネットワークを表現することを特徴とする。ρが閾値、Wiが重みである。重みWiが±1のとき、3値化ニューラルネットワーク、重みWiが±W(多ビット精度)のとき、3状態ニューラルネットワークである。
(1)ρ=0,h(x)がsign(x)符号関数の場合、ニューラルネットワーク回路20は、
2値ニューラルネットワーク回路を構成する。
Figure 0007240657000001
(2)ρ≠0,h(x)がsign(x)符号関数の場合、ニューラルネットワーク回路20は、
3値化ニューラルネットワーク回路を構成する。
Figure 0007240657000002
(3)ρ≠0,h(x)がsign(x)符号関数の場合、ニューラルネットワーク回路20は、
3状態ニューラルネットワーク回路を構成する。
Figure 0007240657000003
ただし、
Whid:多ビット重みWi
ρ:閾値
特に、上記数式(3)の閾値ρと活性化関数f(u)の組み合わせを用いることで、非ゼロ畳み込み演算回路21を、3状態畳込み演算回路で構成する。これにより、ニューラルネットワーク回路20は、3状態ニューラルネットワーク回路を構成する。
また、上記数式(2)の閾値ρと活性化関数f(u)の組み合わせを用いることで、非ゼロ畳み込み演算回路21を、3値化畳込み演算回路で構成する。これにより、ニューラルネットワーク回路20は、3値化ニューラルネットワーク回路を構成する。
上記3状態ニューラルネットワーク回路と3値化ニューラルネットワーク回路は、いままでにない本発明のニューラルネットワークである。
<3状態ニューラルネットワーク回路と3値化ニューラルネットワーク回路の比較>
3値化ニューラルネットワーク回路は、2値化{-1,+1}畳込み演算回路よりも省面積かつ高速である。
3値化ニューラルネットワーク回路は、重みWiが低ビット(-1,0,1)であるので、省面積かつ高速な回路である。ただし、3状態ニューラルネットワーク回路に比べて認識精度が低くなるため用途は限られる。
3状態ニューラルネットワーク回路は、重みWiが多ビット(例えば8~16ビットの±Wiと“0”)であるので、認識精度は高く用途(応用範囲)も広い。3状態ニューラルネットワーク回路は、3値化ニューラルネットワーク回路よりも認識精度が高い。ただし、3値化ニューラルネットワーク回路に比べて面積(特にメモリ量)が増える。また、3値化ニューラルネットワーク回路よりも処理速度が遅い。
3状態ニューラルネットワーク回路と重み3値化ニューラルネットワーク回路の組み合わせ、または、3状態ニューラルネットワーク回路と重み2値化ニューラルネットワーク回路の組み合わせが可能である。
3値化ニューラルネットワーク回路は、3状態ニューラルネットワーク回路に比べて認識精度が低いので用途が狭いものの、3状態ニューラルネットワーク回路と併用することで高速化・面積削減が可能になる。3状態ニューラルネットワーク回路と3値化(または2値化)ニューラルネットワーク回路を組み合わせると、面積と認識精度のバランスが取れたAI回路を実現可能である。
<非ゼロ畳み込み演算回路21>
図3は、非ゼロ畳み込み演算回路21の畳み込み演算の概念を示す図である。
非ゼロ畳み込み演算回路21は、CNNにおいて3状態{-W(多ビット),0,+W(多ビット}または3値化{-1,0,+1}畳み込み演算を行う。
図3に示すように、非ゼロ畳み込み演算回路21を備えるニューラルネットワーク回路20は、物体検出(Dilated Convolution)する際に、画像データと重み関数の畳み込み演算を行う。例えば、Input Feature Mapに画像(行列の各要素はそれぞれ画像の1ピクセルに対応)を入力する。この入力画像に対して、カーネル(kernel)(この例ではK=3)の値と行列の値を要素毎に掛け合わせ、それらの値を合計する。この操作をカーネルをスライドさせながら各要素に対して行い全体の畳み込み演算を行う。
図3に示すように、非ゼロ畳み込み演算回路21は、重み関数に、0が多い場合は、0をスキップする回路構成とする(後記)。
ディープラーニングは学習と推論の2つのフェーズがあり、通常は画像や音声のデータを使って学習を行い、重みを確定する。その後、推論用のデバイスに学習済みデータを変換(ここでは低ビット化と枝刈り(ゼロ化))する。したがって、非零の重みとその位置は学習後に判明することになる。学習後、推論のみの場合は、位置や値の更新は行われない。なお、再学習が必要な時は、位置や値の変更が行われてしまうことになる。
図4は、非ゼロ畳み込み演算回路21の構成を示す図であり、図4(a)はその回路構成図、図4(b)はその0スキップの一例を示す図である。
図4(a)に示すように、非ゼロ畳み込み演算回路21は、非ゼロの重みと畳み込みを行う入力値Xiの相対アドレスを格納する重み/アドレスメモリ213(第1記憶手段)と、加算器214と、入力値Xiのアドレスを格納するアドレス/データメモリ215(第2記憶手段)と、積算回路216と、を備える。
非ゼロ畳み込み演算回路21は、ゼロの重みをスキップする演算の際、重み/アドレスメモリ213から該当する非ゼロの重みとその相対アドレスを読み込み、読み込んだ相対アドレスと現在のアドレスからアドレス/データメモリ215を参照して次の畳み込みを行う入力値Xiを読み出し、アドレス/データメモリ215から読み出した入力値Xiと該当する非ゼロの重みをもとに畳み込み演算を行う(図8(b)参照)。
具体的には、重み/アドレスメモリ213は、インデックスidx毎に非零重みw1,…と相対アドレスadr1,…とを格納する。重み/アドレスメモリ213は、入力されたカウンタ値に従って、該当するインデックスidxの非零重みWiと相対アドレスadrを読み出す。加算器214は、ベースアドレスXtmpに、相対アドレスadrを加算してアドレスを作成し、アドレス/データメモリ215に出力する。図4(b)の矢印に示すように、非ゼロ畳み込み演算回路21は、ベースアドレスXtmpを基点とし、そこから相対アドレスadr1,adr2先のアドレスを作成する。
アドレス/データメモリ215は、アドレスとそのアドレスに対応するデータX1,…を格納する。非ゼロ畳み込み演算回路21は、アドレス/データメモリ215から、加算器214から出力されたアドレスに対応するデータ(入力値Xi)を読み出す。
積算回路216は、重み/アドレスメモリ213から読み出した非零重みWiとアドレス/データメモリ215から読み出した入力値Xiとを乗算して出力値Yiを出力する。
このように、非ゼロ畳み込み演算回路21は、重みが0でない相対アドレスを指定することで、1つの演算が終わったら次の相対アドレスにジャンプして必要な個所だけを畳み込み演算する。すなわち、非ゼロ畳み込み演算回路21は、重みが0でない相対アドレスによる演算スキップを行う。
前記図3に示すように、非ゼロ畳み込み演算回路21は、0をスキップしながら、カーネルの値(畳み込みを行う入力値X)と行列の値(非零重みw)を要素毎に掛け合わせる。
畳み込み演算を行う重み関数が疎(ゼロが多い)である特徴を生かして、それを相対アドレス表示して重みが非ゼロの箇所のみを演算処理する回路構成にすることによって、計算時間の高速化、メモリ面積の削減が可能となる。
なお、本実施形態では、学習の最適化により、90~95%のスキップが可能になっている。
非ゼロ畳み込み演算回路21は、非ゼロの重みと畳み込みを行う入力値Xiの絶対アドレスを格納するメモリ(第3記憶手段)(図示省略)を有する。そして、非ゼロ畳み込み演算回路21は、ゼロの重みをスキップする演算の際、このメモリから絶対アドレスを指定して該当する非ゼロの重みと入力値Xiを読み出し、読み出した入力値Xiと該当する非ゼロの重みをもとに畳み込み演算を行うものであってもよい(図8(a)参照)。
[実施形態の構成]
<3状態ニューラルネットワーク回路200>
図5は、本発明の実施形態に係るニューラルネットワークの3状態ニューラルネットワーク回路200の構成を示す図である。図4と同一構成部分には、同一符号を付している。
本実施形態の3状態ニューラルネットワーク回路200は、ディープニューラルネットワークへの実装技術を提供する。
3状態ニューラルネットワーク回路200(ニューラルネットワーク回路装置)は、図1のニューラルネットワーク回路2に適用できる。
図5に示すように、3状態ニューラルネットワーク回路200は、カウンタ値を出力するカウンタ211と、ベースアドレスを出力するレジスタ212と、重み/アドレスメモリ213と、加算器214と、アドレス/データメモリ215と、積算回路216と、レジスタ217と、加算器218と、バイアス値を出力するレジスタ219と、加算器220と、活性化関数回路221Aと、を備える。
上記乗算器216、レジスタ217、加算器218、レジスタ219と、加算器220、および活性化関数回路221Aは、Sequential MAC Unit222に搭載される。
上記カウンタ211、ベースアドレスを出力するレジスタ212、重み/アドレスメモリ213、加算器214、アドレス/データメモリ215、および積算回路216は、非ゼロ畳み込み演算回路21を構成する。
3状態ニューラルネットワーク回路200は、3状態(Tri-state){-w,0,+w}畳み込み演算回路(非ゼロ畳み込み演算回路21)を備える。
活性化関数回路221は、Leaky ReLU符号関数を用いる。
上記重み/アドレスメモリ213の一部と加算器214には、間接メモリアクセス(図5破線囲み参照)を導入している(図11で後述)。
3状態ニューラルネットワーク回路200は、非ゼロ畳み込み演算回路21を備えることで、計算時間の高速化、メモリ面積の削減が可能となったり。従来技術では、オンチップに配置することは、極めて困難であった。本実施形態によれば、非ゼロ畳み込み演算回路21を備えることで、畳み込み演算部分の積和演算の絶対数を劇的に減らして、オンチップ配置を実現した。
<3値化ニューラルネットワーク回路200A>
図6は、本発明の実施形態に係るニューラルネットワークの3値化ニューラルネットワーク回路200Aの構成を示す図である。図4と同一構成部分には、同一符号を付している。
本実施形態の3値化ニューラルネットワーク回路200Aは、3状態ニューラルネットワーク回路200と同様にディープニューラルネットワークへの実装技術を提供する。また、3値化ニューラルネットワーク回路200Aは、3状態ニューラルネットワーク回路200と併用して好適である。
3状態ニューラルネットワーク回路200(ニューラルネットワーク回路装置)は、図1のニューラルネットワーク回路2に適用できる。
図6に示すように、3値化ニューラルネットワーク回路200Aは、カウンタ値を出力するカウンタ211と、ベースアドレスを出力するレジスタ212と、重み/アドレスメモリ213と、加算器214と、アドレス/データメモリ215と、XNOR(Exclusive NOR:否定排他的論理和)論理を取る複数のXNORゲート回路216Aと、レジスタ217と、加算器218と、バイアス値を出力するレジスタ219と、加算器220と、活性化関数回路221Aと、を備える。
上記XNORゲート回路216A、レジスタ217、加算器218、レジスタ219と、加算器220、および活性化関数回路221Aは、Sequential MAC Unit222Aに搭載される。
上記カウンタ211、ベースアドレスを出力するレジスタ212、重み/アドレスメモリ213、加算器214、アドレス/データメモリ215、およびXNORゲート回路216Aは、非ゼロ畳み込み演算回路21Aを構成する。
3値化ニューラルネットワーク回路200Aは、3値{-1,0,+1}畳み込み演算回路(非ゼロ畳み込み演算回路21A)を備える。
3値化ニューラルネットワーク回路200Aは、積算回路216(図5参照)がXNOR論理を実現するXNORゲート回路216Aに置き換えられている。このため、積算回路216を構成する際に必要であった面積を削減することができる。また、重みWiは、3値{-1,0,+1}であるため、多値である3状態と比較してメモリ量を大幅に削減でき、メモリ帯域を向上させることができる。
活性化関数回路221Aは、Sign(x)符号関数を用いる。
上記重み/アドレスメモリ213の一部と加算器214には、間接メモリアクセス(図6破線囲み参照)を導入している(図11で後述)。間接メモリアクセスの導入により“0”スキップを実現している。
<間接メモリアクセス>
間接メモリアクセスについて説明する。
図7は、間接メモリアクセスを説明する図であり、図7(a)は重み/アドレスメモリ213に格納される非零重みと相対アドレスの一例を示す図、図7(b)は“0”スキップする非零重みwを示す図、図7(c)は畳み込みを行う入力値Xの読み出しを示す図である。
図7(a)に示すように、重み/アドレスメモリ213は、ID毎に非零重みW(w1,…)と相対アドレスadr1,…を指定するインデックスLを格納する。
インデックスLは、(Input Feature Map(入力画像),row(行),column(列))を指定する。
図7に示す間接メモリアクセスでは、下記1.2.を実行する。
1.該当する重みと相対アドレスを読み込む。
2.相対アドレスと現在のアドレスから畳み込みを行う入力値Xiを読み出す。
<間接アドレスの表現>
間接アドレスの表現方法について説明する。
図8は、間接アドレスの表現方法を説明する図であり、図8(a)は絶対アドレス指定方法を示す図、図8(b)は相対アドレス指定方法を示す図である。
図8(a)に示すように、絶対アドレス指定は、{ページ,Y,X}を用いて絶対アドレスを指定する。この例では、図8(a)に示す元の絶対アドレス(0,0)を基点とし、そこから{ページ,Y,X}で示されるアドレスを指定する。例えば、図8(a)の矢印に示すように、元の絶対アドレス(0,0)を基点に、{+0,+2,+0}を指定して絶対アドレス(2,0)の値(図8(a)網掛け参照)を得る。以下同様に、図8(a)の矢印に示すように、元の絶対アドレス(0,0)を基点に、{+1,+2,+1}を指定して、次のページの画像データの絶対アドレス(2,1)の値(図8(a)網掛け参照)を得る。
絶対アドレス指定方法は、途中でメモリの値が化けても正しく演算できる。ただし、絶対アドレスが長いので、相対アドレス方法と比較してメモリ量が増えてしまうことに留意する。
図8(b)に示すように、相対アドレス指定方法は、次のアドレスを相対値で指定する。例えば、図8(b)の矢印に示すように、元のアドレス(ベースアドレス)(0,0)を基点に、+2を指定して、次のアドレス(1,3)の値(図8(b)網掛け参照)を得る。そこから、+5を指定して、次のアドレス(3,2)の値、さらに、+5を指定して、次のページの画像のアドレス(2,1)の値を得る。
相対アドレス指定方法は、相対値を記憶しておけばよいので絶対アドレス方法と比較してメモリ量を減らすことができる。ただし、相対アドレス指定方法は、何らかの理由で、演算途中でメモリの値が化けた時(変化した時)に演算が誤ってしまうことになる。
本実施形態では、メモリ量を減らす観点から、0スキップ演算に相対アドレス指定方法を採用する。図4に示す非ゼロ畳み込み演算回路21は、この相対アドレス指定方法を採用して、重み/アドレスメモリ213から相対アドレスadrを読み出し、加算器214で、順次、Xtmpを加算して先のアドレスを指定する。
<畳み込みニューラルネットワークへの適用>
畳み込みニューラルネットワークへの適用について説明する。
図9は、畳み込みニューラルネットワークへの適用を説明する図である。図10は、“0”スキップする演算の効果を説明する図である。
図9に示すように、畳み込みニューラルネットワークは、Input feature mapと、Kernel(Sparse)と、Output feature mapと、を有する。
この畳み込みニューラルネットワークに、3状態ニューラルネットワーク回路200(図5参照)を適用する。
3状態ニューラルネットワーク回路200は、前記したように0スキップ演算を行う非ゼロ畳み込み演算回路21を備える。
0スキップ演算を導入することにより、図10の破線囲みに示す演算がスキップされる。これにより、畳み込み演算部分の積和演算の絶対数を劇的に減らすことができ、メモリ量削減、計算時間の高速化を図ることができる。
また、図9に示す畳み込みニューラルネットワークに、3値化ニューラルネットワーク回路200A(図6参照)を適用してもよい。この場合、3値化ニューラルネットワーク回路200Aは、3値{-1,0,+1}を用いるため、多値である3状態ニューラルネットワーク回路200と比較してメモリ量を大幅に削減できる。
<“0”をスキップする演算;間接メモリアクセス>
"0"をスキップする演算、すなわち間接メモリアクセスについて説明する。
図11は、“0”をスキップする演算;間接メモリアクセスを説明する図である。図9に示す畳み込みニューラルネットワークに、図7および図8(a)の間接メモリアクセスを適用した場合を例に採る。
上述したように、"0"をスキップすることで、メモリ量削減と処理の高速化を図ることを目的とする。
本実施形態では、間接メモリアクセス(相対アドレスによる2回のメモリアクセス)を導入する。具体的には、下記の通りである。
図11に示すように、
1.図11の実線矢印に示すように、1回目のメモリアクセスで、相対値を読み込む。
2.ベースアドレスと相対値から重み“0”でない入力アドレスを計算する。
3.2回目のメモリアクセスで、計算したアドレスから入力値を読み込む。
4.図11の破線矢印に示すように、積算(ニューラルネットワークの演算)を行う。
<メモリ量を削減できる原理>
メモリ量を削減できる原理について説明する。
図12は、ビット精度を減らすことでメモリ量を削減する例を説明する図であり、図12(a)はニューラルネットワーク回路20(図2参照)の構成図、図12(b)はメモリ量を削減できる原理図である。
図12(a)に示すニューラルネットワーク回路20は、非ゼロ畳み込み演算回路21において、例えば32ビット精度から1ビット精度{-1,+1}にビット数の削減を行う。
これにより、図12(b)に示すように、メモリ量の削減を図ることができる。
図13は、0スキップ演算でメモリ量を削減する例を説明する図であり、図13(a)はニューラルネットワーク回路20(図2参照)の構成図、図13(b)はメモリ量を削減できる原理図である。
図13(a)の×印に示すように、ニューラルネットワーク回路20は、非ゼロ畳み込み演算回路21において、“0”をスキップする(ここでは、重みw2の乗算をスキップ)。すなわち、0の乗算は、0になることが既知であるためスキップする。これにより、メモリ量削減と処理の高速化を図ることができる。
上記ニューラルネットワーク回路20は、3状態(0、±多ビット)畳み込み演算を行う3状態ニューラルネットワーク回路200(図5参照)である。3状態ニューラルネットワーク回路200は、低ビット化(図12のメモリ量削減)と0スキップ演算(図13のメモリ量削減)を併せて実行するので、メモリ量をより一層削減することができる。
[実施形態のディープニューラルネットワークの学習方法]
ディープニューラルネットワークの学習方法について、比較例と本実施形態の3状態ニューラルネットワーク回路200とを比較して説明する。
<比較例>
図14は、比較例のディープニューラルネットワークの学習方法を説明する図である。
図14の上段に示すように、比較例のディープニューラルネットワークでは、誤差逆伝搬法により、学習データ(主に画像)を、ニューラルネットワークにおいて順伝搬させる。ニューラルネットワークの出力として、cat88%、dog10%、car5%を得る。
図14の下段に示すように、比較例のディープニューラルネットワークでは、教師データcat100%、dog0%、car0%を入力し、順伝搬の出力との誤差を計算する。そして、教師データとの誤差をディープニューラルネットワークの出力層のノードに入力し、ニューラルネットワークを逆伝搬させて重みWiを更新していく。
上記順伝搬と逆伝搬および重みWi更新を何度も繰り返すことで、ディープニューラルネットワークの学習を行う。
学習終了後、丸め処理をしない状態で保っていた重みWiを0にして、重みが疎なニューラルネットワークを生成する。
<本実施形態>
図15および図16は、本実施形態の3状態ニューラルネットワークの学習方法を説明する図である。3状態ニューラルネットワークは、例えば図5に示す3状態ニューラルネットワーク回路200を適用する。
3状態ニューラルネットワーク回路200は、ニューラルネットワークを順伝搬して得られた出力と学習データとの誤差を計算し、当該ニューラルネットワークを逆伝搬させて重みWiを更新する、学習を繰り返す場合、学習が終了するまでは少なくとも中間層の中では、重みWiを丸め処理しない。
図15の上段に示すように、学習データ(主に画像)を、3状態で順伝搬させる。3状態ニューラルネットワーク内部では、Wiを保持しておく。3状態ニューラルネットワークの出力として、cat88%、dog10%、car5%を得る。
図15の下段に示すように、3状態ニューラルネットワークでは、教師データcat100%、dog0%、car0%を入力し、順伝搬の出力との誤差を計算する。そして、教師データとの誤差を3状態ニューラルネットワークの出力層のノードに入力し、3状態ニューラルネットワークを逆伝搬させて重みwを更新していく。Wiは多ビット値のままである。
上記順伝搬と逆伝搬および重みw更新を何度も繰り返すことで、3状態ニューラルネットワークの学習を行う。
3状態ニューラルネットワーク回路200は、ニューラルネットワークを順伝搬して得られた出力と学習データとの誤差を計算し、当該ニューラルネットワークを逆伝搬させて重みWiを更新する、学習を繰り返す場合、学習終了後、丸め処理をしない状態で保っていた重みWiを0にして、重みが疎なニューラルネットワークを生成する。
図16の上段に示すように、学習が終わってから、閾値を用いて重みWiを0にする。
図16の下段の矢印に示すように、重みが疎なディープニューラルネットワークが生成される。
[実施形態の認識精度]
本実施形態の3状態ニューラルネットワークの認識精度向上について説明する。
図17は、3状態ニューラルネットワークの認識精度向上を説明する図である。
VGG11で評価した。画像はPascal VOC2007に準拠した。
ニューラルネットワークは、図17の左欄の処理、すなわち、Integer Conv2D、Binary Conv2D 、 Max Pooling 、Binary Conv2D×3、Max Pooling 、Binary Conv2D×3、Average Pooling およびFully Connect を実行することとした。
Integer Conv2Dを除く、Binary Conv2D 、 Max Pooling 、Binary Conv2D×3、Max Pooling 、Binary Conv2D×3、Average Pooling およびFully Connectを全て2値化{-1,+1}した場合、認識精度は、86.9%であった。
Binary Conv2D 、 Max Pooling 、Binary Conv2D×3、Max Pooling およびBinary Conv2D×3を2値化{-1,+1}し、Average Pooling およびFully Connectを3状態{-w,0,+w}した場合、認識精度は、93.47%であった。
Binary Conv2D 、 Max Pooling 、Binary Conv2D×3、Max Pooling およびBinary Conv2D×2を2値化{-1,+1}し、Binary Conv2D、Average Pooling およびFully Connectを3状態{-w,0,+w}した場合、認識精度は、97.29%であった。
[物体検出実証]
本実施形態の3状態ニューラルネットワーク回路と3値ニューラルネットワーク回路の組み合わせについて説明する。
図18は、3状態ニューラルネットワーク回路と3値ニューラルネットワーク回路の組み合わせによる物体検出実証例を説明する図である。
物体検出ニューラルネットワークYOLOv2を3状態ニューラルネットワークで実現した実施例である。
図18に示すように、前段は3値化ニューラルネットワーク回路200A、メモリを介して、後段は3状態ニューラルネットワーク回路200とした。
前段の3値化ニューラルネットワーク回路200Aは、ニューラルネットワークとしてTernaryCNN(Feature extraction)を用いた。後段の3状態ニューラルネットワーク回路200は、Half PrecisionCNN(Localization, classification)を用いた。3状態ニューラルネットワーク回路200は、16bit半精度浮動小数点を利用した。
物体検出ニューラルネットワークYOLOv2を3状態ニューラルネットワークで実現した場合、下記を得た。
(1)3状態化しても認識精度は、ほぼ同一であることが判明した。
(2)重みWiを約92%スキップする(“0”にする)ことができた。
(3)・メモリ量を92%削減することができた。その結果、36.50FPS(Frames Per Second)の認識速度を達成できた。
[他のデバイスとの比較例]
本実施形態の3状態ニューラルネットワーク回路と物体認識アルゴリズムYOLOv2との比較について説明する。
図19は、3状態ニューラルネットワーク回路と物体認識アルゴリズムYOLOv2との比較を説明する図である。
本発明の3状態ニューラルネットワーク回路と物体認識アルゴリズムYOLOv2とを比較した。
mCPU(ARM Cortex A57), mGPU(NVidia Pascal GPU): Jetson TX2ボードを使用し、FPGAはZynq Ultrascale+ MPSoC zcu102ボードを使用した。
本発明の3状態ニューラルネットワーク回路は、ARM Cortex-A57 と比較して、 158.7 倍速く、1.1 倍少ない電力消費であり、電力性能効率は182.80 倍優れていた。
また、本発明の3状態ニューラルネットワーク回路は、NVidia Pascall 組込みGPU と比較して、24.6 倍高速であり、消費電力は2.0 倍少なく、電力効率は49.38 倍向上した。
[実装例]
図20は、本発明の実施形態に係る3状態ニューラルネットワーク回路の実装例を説明する図である。
<STEP1>
まず、与えられたデータセット(今回はImageNet、画像認識タスク用にデータ)を既存のディープニューラルネットワーク用のフレームワークソフトウェアであるChainer (登録商標)を用いてGPU(Graphics Processing Unit)を有するコンピュータ201上で学習を行った。学習は、GPU上で実行する。このコンピュータ201は、ARMプロセッサなどのCPU(Central Processing Unit)と、メモリと、ハードディスクなどの記憶手段(記憶部)と、ネットワークインタフェースを含むI/Oポートとを有する。このコンピュータは、CPU201が、メモリ上に読み込んだプログラム(2値化したニューラルネットワークの実行プログラム)を実行することにより、後記する各処理部により構成される制御部(制御手段)を動作させる。
<STEP2>
次に、自動生成ツールを用いて、本実施形態の3状態ニューラルネットワーク回路200と等価なC++コードを自動生成し、C++コード202を得た。
<STEP3>
次に、FPGA ベンダの高位合成ツール(Xilinx 社SDSoC) (登録商標)を用いて、FPGA(field-programmable gate array)合成用にHDL(hardware description language)203を生成した。例えば、高位合成ツール(Xilinx 社SDSoC)では、実現したい論理回路をハードウェア記述言語(Verilog HDL/VHDL)を用いて記述し、提供されたCADツールでビットストリームに合成する。そして、FPGAにこのビットストリームを送信するとFPGAに回路が実現する。
<STEP4>
次に、従来のFPGA合成ツールVivado (登録商標)を用いて、FPGA上に実現(FPGA合成204)して画像認識タスクの検証を行った。
<STEP5>
検証後、基板205を完成させた。基板205には、2値化ニューラルネットワーク回路100がハードウェア化されて実装されている。
以上説明したように、本実施形態に係る3状態ニューラルネットワーク回路200(図5参照)は、中間層の中で、畳み込みを行う入力値Xiと、重みWiを受け取り、畳み込み演算を行う非ゼロ畳み込み演算回路21と、畳み込み演算された各演算値とバイアスW0との総和を取る総和回路22(図2)と、総和を取った信号Yを活性化関数f(u)で変換する活性化関数回路23と、を備える。非ゼロ畳み込み演算回路21は、重みWiがゼロの重みをスキップし、非ゼロの重みと当該非ゼロの重みに対応する入力値Xiをもとに畳み込み演算を行う。
この構成により、畳み込み演算部分の積和演算の絶対数を劇的に減らすことができ、メモリ量削減、計算時間の高速化を図ることができる。実際の例で確認した結果、畳み込み演算部分の計算時間が95%削減(1/20)となった。
この計算時間の高速化、メモリ面積の削減の効果を活かして初めて、メモリ量を削減してオンチップに配置が可能なニューラルネットワークが実現できた。
3状態ニューラルネットワーク回路200は、重みWが多ビット(例えば8~16ビットの±wと“0”)であり、認識精度は高く用途(応用範囲)も広い利点を活かしつつ、メモリ量を劇的に減らして、オンチップ配置を実現した。オンチップ化(ニアメモリ)のメリットとして、広帯域(オフチップより約100倍高速)および低消費電力(オフチップより約33倍低い)の効果を奏する。
3状態ニューラルネットワーク回路200は、ニューラルネットワークを順伝搬して得られた出力と学習データとの誤差を計算し、当該ニューラルネットワークを逆伝搬させて重みWiを更新する、学習を繰り返す場合、学習終了後、丸め処理をしない状態で保っていた重みWiを閾値を用いて0にして、重みが疎なニューラルネットワークを生成する。
ディープニューラルネットワークのCNNにおいて、畳み込み演算を行う重み関数が疎(ゼロが多い)である特徴を活かして、それを相対アドレス表示して重みが非ゼロの箇所のみを演算処理する回路構成にする。3状態(0、±多ビット)ニューラルネットワークの計算量を大幅に削減する。
本発明を適用することにより、多ビットのアナログ量を扱う一般物体認識、意味的領域分割、自己位置推定などをリアルタイムで実現することが可能となる。
また、3値化ニューラルネットワーク回路200A(図6参照)は、3値化により、2値化ニューラルネットワークと比較して約1~2%認識精度を改善しつつ、約95%削減(重みを0)にすることにより約3~4倍の高速化を達成することが可能となる。
ちなみに、特許文献2の技術では、係数をゼロ除去するのみであり、非ゼロは多ビット(通常は32ビット浮動小数点精度)になっている。これに対して、本発明は、図12に示すように、係数をゼロにすることと低ビット化(1ビット)を同時に行うことで、メモリ量の大幅な削減を図ることができる。また、本発明のように、ニューラルネットワークを逆伝搬させて重みWiを更新する、学習を繰り返す場合、学習終了後、丸め処理をしない状態で保っていた重みWiを閾値を用いて0にして、重みが疎なニューラルネットワークを生成する技術的思想はない。
本発明は上記の実施形態例に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含む。
また、上記した実施形態例は本発明をわかりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態例の構成の一部を他の実施形態例の構成に置き換えることが可能であり、また、ある実施形態例の構成に他の実施形態例の構成を加えることも可能である。また、実施形態例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形例は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行するためのソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、IC(Integrated Circuit)カード、SD(Secure Digital)カード、光ディスク等の記録媒体に保持することができる。
また、上記実施の形態では、装置は、ニューラルネットワーク回路装置という名称を用いたが、これは説明の便宜上であり、名称はディープニューラルネットワーク回路、ニューラルネットワーク装置、パーセプトロン等であってもよい。また、方法およびプログラムは、ニューラルネットワーク処理方法という名称を用いたが、ニューラルネットワーク演算方法、ニューラルネットプログラム等であってもよい。
1 ディープニューラルネットワーク
2,20 ニューラルネットワーク回路
11 入力層
12 隠れ層(中間層)
13 出力層
21,21A 非ゼロ畳み込み演算回路(畳み込み演算回路)
22 総和回路
23,221,221A 活性化関数回路
200 3状態ニューラルネットワーク回路(ニューラルネットワーク回路装置)
200A 3値化ニューラルネットワーク回路(ニューラルネットワーク回路装置)
211 カウンタ
212,217,219 レジスタ
213 重み/アドレスメモリ(第1記憶手段)
214,222 加算器
215 アドレス/データメモリ(第2記憶手段)
216 積算回路
216A XNORゲート回路
222,222A Sequential MAC Unit
Xi 入力値
Wi 重み

Claims (12)

  1. 入力層、1以上の中間層、および、出力層を少なくとも含むニューラルネットワーク回路装置であって、
    前記中間層の中で、畳み込みを行う入力値Xiと、重みWiを受け取り、畳み込み演算を行う畳み込み演算回路と、畳み込み演算された各演算値とバイアスW0との総和を取る総和回路と、総和を取った信号Yを活性化関数f(u)で変換する活性化関数回路と、を備え、
    前記畳み込み演算回路は、重みWiがゼロの重みをスキップし、非ゼロの重みと当該非ゼロの重みに対応する入力値Xiをもとに畳み込み演算を行い、
    前記畳み込み演算回路は、非ゼロの重みと畳み込みを行う入力値Xiの絶対アドレスを格納する第3記憶手段を有し、
    ゼロの重みをスキップする演算の際、前記第3記憶手段から絶対アドレスを指定して該当する非ゼロの重みと入力値Xiを読み出し、
    読み出した入力値Xiと該当する非ゼロの重みをもとに畳み込み演算を行う
    ことを特徴とするニューラルネットワーク回路装置。
  2. 入力層、1以上の中間層、および、出力層を少なくとも含むニューラルネットワーク回路装置であって、
    前記中間層は、第1中間層と、第2中間層とを含み、
    前記第1中間層および前記第2中間層の中で、畳み込みを行う入力値Xiと、重みWiを受け取り、畳み込み演算を行う畳み込み演算回路と、畳み込み演算された各演算値とバイアスW0との総和を取る総和回路と、総和を取った信号Yを活性化関数f(u)で変換する活性化関数回路と、を備え、
    前記第1中間層の前記畳み込み演算回路は、3状態{-多ビット,0,+多ビット}の重みWiがゼロの重みをスキップし、非ゼロの重みと当該非ゼロの重みに対応する入力値Xiをもとに畳み込み演算を行い、
    前記第2中間層の前記畳み込み演算回路は、3値化{-1,0,+1}の重みWiがゼロの重みをスキップし、非ゼロの重みと当該非ゼロの重みに対応する入力値Xiをもとに畳み込み演算を行い、
    前記畳み込み演算回路は、非ゼロの重みと畳み込みを行う入力値Xiの絶対アドレスを格納する第3記憶手段を有し、
    ゼロの重みをスキップする演算の際、前記第3記憶手段から絶対アドレスを指定して該当する非ゼロの重みと入力値Xiを読み出し、
    読み出した入力値Xiと該当する非ゼロの重みをもとに畳み込み演算を行い、
    前記畳み込み演算回路は、前記重みWiが、下記式で示される
    Figure 0007240657000004
    ただし、
    Whid:多ビット重みWi
    ρ:閾値
    ここで、ρ<0の場合、および、ρ>0かつ-ρ≦Whid<ρの場合を除く
    ことを特徴とするニューラルネットワーク回路装置。
  3. 前記畳み込み演算回路は、3状態{-W(多ビット),0,+W(多ビット}の重みWiと入力値Xiとの畳み込み演算を行い、
    前記畳み込み演算回路は、前記重みWiが、下記式で示される
    Figure 0007240657000005
    ただし、
    Whid:多ビット重みWi
    ρ:閾値
    ここで、ρ<0の場合、および、ρ>0かつ-ρ≦Whid<ρの場合を除く
    ことを特徴とする請求項1に記載のニューラルネットワーク回路装置。
  4. 前記畳み込み演算回路は、前記重みWiが、下記式で示される
    Figure 0007240657000006
    ただし、
    Whid:多ビット重みWi
    ρ:閾値
    ここで、ρ<0の場合、および、ρ>0かつ-ρ≦Whid<ρの場合を除く
    ことを特徴とする請求項1に記載のニューラルネットワーク回路装置。
  5. 前記畳み込み演算回路は、3値化{-1,0,+1}の重みWiと入力値Xiとの畳み込み演算を行い、
    前記畳み込み演算回路は、前記重みWiが、下記式で示される
    Figure 0007240657000007
    ただし、
    Whid:多ビット重みWi
    ρ:閾値
    ここで、ρ<0の場合、および、ρ>0かつ-ρ≦Whid<ρの場合を除く
    ことを特徴とする請求項1に記載のニューラルネットワーク回路装置。
  6. 前記畳み込み演算回路は、非ゼロの重みと畳み込みを行う入力値Xiの相対アドレスを格納する第1記憶手段と、入力値Xiのアドレスを格納する第2記憶手段と、を有し、
    ゼロの重みをスキップする演算の際、前記第1記憶手段から該当する非ゼロの重みとその相対アドレスを読み込み、
    読み込んだ相対アドレスと現在のアドレスから前記第2記憶手段を参照して次の畳み込みを行う入力値Xiを読み出し、
    前記第2記憶手段から読み出した入力値Xiと該当する非ゼロの重みをもとに畳み込み演算を行う
    ことを特徴とする請求項1または請求項2に記載のニューラルネットワーク回路装置。
  7. ニューラルネットワークを順伝搬して得られた出力と学習データとの誤差を計算し、当該ニューラルネットワークを逆伝搬させて前記重みWiを更新する、学習を繰り返す場合、
    前記学習が終了するまでは少なくとも前記中間層の中では、前記重みWiを丸め処理しない
    ことを特徴とする請求項1または請求項2に記載のニューラルネットワーク回路装置。
  8. ニューラルネットワークを順伝搬して得られた出力と学習データとの誤差を計算し、当該ニューラルネットワークを逆伝搬させて前記重みWiを更新する、学習を繰り返す場合、
    前記学習終了後、丸め処理をしない状態で保っていた前記重みWiをゼロにして、重みが疎なニューラルネットワークを生成する
    ことを特徴とする請求項1または請求項2に記載のニューラルネットワーク回路装置。
  9. 入力層、1以上の中間層、および、出力層を少なくとも含むニューラルネットワーク処理方法であって、
    前記中間層の中で、畳み込みを行う入力値Xiと、重みWiを受け取り、畳み込み演算を行う畳み込み演算ステップと、
    畳み込み演算された各演算値とバイアスW0との総和を取るステップと、
    総和を取った信号Yを活性化関数f(u)で変換するステップと、を有し、
    前記畳み込み演算ステップでは、重みWiがゼロの重みをスキップし、非ゼロの重みと当該非ゼロの重みに対応する入力値Xiをもとに畳み込み演算を行うとともに、
    非ゼロの重みと畳み込みを行う入力値Xiの絶対アドレスを格納する第3記憶手段を用いて、
    ゼロの重みをスキップする演算の際、前記第3記憶手段から絶対アドレスを指定して該当する非ゼロの重みと入力値Xiを読み出し、
    読み出した入力値Xiと該当する非ゼロの重みをもとに畳み込み演算を行う
    ことを特徴とするニューラルネットワーク処理方法。
  10. ニューラルネットワークを順伝搬して得られた出力と学習データとの誤差を計算し、当該ニューラルネットワークを逆伝搬させて前記重みWiを更新する、学習を繰り返す場合、
    前記学習が終了するまでは少なくとも前記中間層の中では、重みWiを丸め処理しない
    ことを特徴とする請求項に記載のニューラルネットワーク処理方法。
  11. ニューラルネットワークを順伝搬して得られた出力と学習データとの誤差を計算し、当該ニューラルネットワークを逆伝搬させて前記重みWiを更新する、学習を繰り返す場合、
    前記学習終了後、丸め処理をしない状態で保っていた前記重みWiをゼロにして、重みが疎なニューラルネットワークを生成する
    ことを特徴とする請求項に記載のニューラルネットワーク回路装置。
  12. 入力層、1以上の中間層、および、出力層を少なくとも含むニューラルネットワーク回路装置としてのコンピュータを、
    前記中間層の中で、畳み込みを行う入力値Xiと、重みWiを受け取り、畳み込み演算を行う畳み込み演算回路手段、
    畳み込み演算された各演算値とバイアスW0との総和を取る総和回路手段、
    総和を取った信号Yを活性化関数f(u)で変換する活性化関数回路手段、
    非ゼロの重みと畳み込みを行う入力値Xiの絶対アドレスを格納する第3記憶手段、
    として機能させ、
    前記畳み込み演算回路手段は、重みWiがゼロの重みをスキップし、非ゼロの重みと当該非ゼロの重みに対応する入力値Xiをもとに畳み込み演算を行うとともに、
    ゼロの重みをスキップする演算の際、前記第3記憶手段から絶対アドレスを指定して該当する非ゼロの重みと入力値Xiを読み出し、
    読み出した入力値Xiと該当する非ゼロの重みをもとに畳み込み演算を行う
    ニューラルネットワークの実行プログラム。
JP2018094184A 2018-05-15 2018-05-15 ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム Active JP7240657B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2018094184A JP7240657B2 (ja) 2018-05-15 2018-05-15 ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム
EP19803111.4A EP3816873A4 (en) 2018-05-15 2019-05-08 NEURAL NETWORK CIRCUIT DEVICE, NEURAL NETWORK PROCESSING METHOD AND NEURAL NETWORK EXECUTION PROGRAM
US17/055,600 US11915128B2 (en) 2018-05-15 2019-05-08 Neural network circuit device, neural network processing method, and neural network execution program
PCT/JP2019/018382 WO2019220975A1 (ja) 2018-05-15 2019-05-08 ニューラルネットワーク回路装置、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム
KR1020207035817A KR20210009353A (ko) 2018-05-15 2019-05-08 뉴럴 네트워크 회로장치, 뉴럴 네트워크 처리 방법 및 뉴럴 네트워크 실행 프로그램
SG11202100430RA SG11202100430RA (en) 2018-05-15 2019-05-08 Neural network circuit device, neural network processing method, and neural network execution program
CN201980047467.2A CN112424798A (zh) 2018-05-15 2019-05-08 神经网络电路装置、神经网络处理方法和神经网络的执行程序
CA3108752A CA3108752A1 (en) 2018-05-15 2019-05-08 Neural network circuit device, neural network processing method, and neural network execution program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018094184A JP7240657B2 (ja) 2018-05-15 2018-05-15 ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム

Publications (2)

Publication Number Publication Date
JP2019200553A JP2019200553A (ja) 2019-11-21
JP7240657B2 true JP7240657B2 (ja) 2023-03-16

Family

ID=68540333

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018094184A Active JP7240657B2 (ja) 2018-05-15 2018-05-15 ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム

Country Status (8)

Country Link
US (1) US11915128B2 (ja)
EP (1) EP3816873A4 (ja)
JP (1) JP7240657B2 (ja)
KR (1) KR20210009353A (ja)
CN (1) CN112424798A (ja)
CA (1) CA3108752A1 (ja)
SG (1) SG11202100430RA (ja)
WO (1) WO2019220975A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110533158B (zh) * 2018-05-25 2023-10-13 宏达国际电子股份有限公司 模型建构方法、***及非易失性电脑可读取记录介质
DE102019106529A1 (de) 2019-03-14 2020-09-17 Infineon Technologies Ag Fmcw radar mit störsignalunterdrückung mittels künstlichem neuronalen netz
US11907829B2 (en) 2019-03-14 2024-02-20 Infineon Technologies Ag FMCW radar with interference signal suppression using artificial neural network
US12032089B2 (en) * 2019-03-14 2024-07-09 Infineon Technologies Ag FMCW radar with interference signal suppression using artificial neural network
KR20200122707A (ko) * 2019-04-18 2020-10-28 에스케이하이닉스 주식회사 프로세싱 엘리먼트 및 프로세싱 시스템
EP3991121A1 (en) * 2019-06-26 2022-05-04 Mars, Incorporated System and method for wellness assessment of a pet
KR20210072524A (ko) * 2019-12-09 2021-06-17 삼성전자주식회사 뉴럴 네트워크 장치 및 그 동작 방법
KR102559036B1 (ko) * 2019-12-24 2023-07-25 서울대학교산학협력단 음수값을 갖는 활성화 함수에서 제로 스키핑을 제공하는 방법 및 장치
CN112036562B (zh) * 2020-11-05 2021-02-26 中科院微电子研究所南京智能技术研究院 一种应用于存内计算的位单元及存算阵列装置
JP7427617B2 (ja) 2021-01-27 2024-02-05 株式会社東芝 ニューラルネットワーク装置、情報処理装置およびプログラム
CN113222107A (zh) * 2021-03-09 2021-08-06 北京大学 数据处理方法、装置、设备及存储介质
JP2022145001A (ja) * 2021-03-19 2022-10-03 キヤノン株式会社 画像処理装置、画像処理方法
US11941111B2 (en) * 2021-07-31 2024-03-26 International Business Machines Corporation Exploiting fine-grained structured weight sparsity in systolic arrays
CN114339994B (zh) * 2022-03-17 2022-05-27 杭州优智联科技有限公司 一种片内执行机器学习算法的uwb芯片及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017174039A (ja) 2016-03-23 2017-09-28 富士フイルム株式会社 画像分類装置、方法およびプログラム

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5030913A (en) * 1982-06-21 1991-07-09 The United States Of America As Represented By The Secretary Of The Navy Multiple sensor magnetometer with temporal noise rejection and controllable spatial response on a moving platform
JPH04199259A (ja) * 1990-11-26 1992-07-20 Hitachi Ltd ニューラルネットワーク、ニューラルネットワークの想起方法および学習方法または装置
US8938113B2 (en) * 2010-07-26 2015-01-20 Kjaya, Llc Adaptive visualization for direct physician use
US9110169B2 (en) * 2013-03-08 2015-08-18 Advanced Scientific Concepts, Inc. LADAR enabled impact mitigation system
JP6314628B2 (ja) * 2014-04-28 2018-04-25 株式会社デンソー 演算処理装置
JP2015215837A (ja) * 2014-05-13 2015-12-03 株式会社デンソー 演算処理装置
JP6582416B2 (ja) * 2014-05-15 2019-10-02 株式会社リコー 画像処理装置、画像処理方法及びプログラム
CA2979579C (en) * 2015-03-20 2020-02-18 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Relevance score assignment for artificial neural networks
US20160358069A1 (en) * 2015-06-03 2016-12-08 Samsung Electronics Co., Ltd. Neural network suppression
KR20180034557A (ko) * 2015-07-23 2018-04-04 미레플리카 테크놀로지, 엘엘씨 2차원 어레이 프로세서의 성능 향상
US10839510B2 (en) * 2015-08-19 2020-11-17 Colorado Seminary, Which Owns And Operates The University Of Denver Methods and systems for human tissue analysis using shearlet transforms
US11475269B2 (en) * 2015-12-15 2022-10-18 Analog Devices, Inc. Convolutional neural network
US10373019B2 (en) * 2016-01-13 2019-08-06 Ford Global Technologies, Llc Low- and high-fidelity classifiers applied to road-scene images
US20170206434A1 (en) * 2016-01-14 2017-07-20 Ford Global Technologies, Llc Low- and high-fidelity classifiers applied to road-scene images
JP6227052B2 (ja) 2016-05-11 2017-11-08 三菱電機株式会社 処理装置、判別方法およびプログラム
US20170344876A1 (en) * 2016-05-31 2017-11-30 Samsung Electronics Co., Ltd. Efficient sparse parallel winograd-based convolution scheme
CN107526709A (zh) * 2016-06-15 2017-12-29 辉达公司 使用低精度格式的张量处理
WO2018026995A1 (en) * 2016-08-03 2018-02-08 Schlumberger Technology Corporation Multi-scale deep network for fault detection
US10242311B2 (en) 2016-08-11 2019-03-26 Vivante Corporation Zero coefficient skipping convolution neural network engine
US9646243B1 (en) * 2016-09-12 2017-05-09 International Business Machines Corporation Convolutional neural networks using resistive processing unit array
JP6869676B2 (ja) 2016-09-27 2021-05-12 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
KR20180034853A (ko) * 2016-09-28 2018-04-05 에스케이하이닉스 주식회사 합성곱 신경망의 연산 장치 및 방법
US10949736B2 (en) * 2016-11-03 2021-03-16 Intel Corporation Flexible neural network accelerator and methods therefor
US11003985B2 (en) * 2016-11-07 2021-05-11 Electronics And Telecommunications Research Institute Convolutional neural network system and operation method thereof
WO2018082790A1 (en) * 2016-11-07 2018-05-11 Schlumberger Technology Corporation Seismic data processing artificial intelligence
CN107239824A (zh) * 2016-12-05 2017-10-10 北京深鉴智能科技有限公司 用于实现稀疏卷积神经网络加速器的装置和方法
JP6773568B2 (ja) * 2017-01-18 2020-10-21 株式会社日立製作所 演算システムおよびニューラルネットワークの演算方法
CN106951858A (zh) * 2017-03-17 2017-07-14 中国人民解放军国防科学技术大学 一种基于深度卷积网络的人物亲缘关系识别方法与装置
US10083375B1 (en) * 2017-10-13 2018-09-25 StradVision, Inc. Method and device for performing activation and convolution operation at the same time and learning method and learning device for the same
CN107977704B (zh) * 2017-11-10 2020-07-31 中国科学院计算技术研究所 权重数据存储方法和基于该方法的神经网络处理器
US11238346B2 (en) * 2018-04-25 2022-02-01 Qualcomm Incorproated Learning a truncation rank of singular value decomposed matrices representing weight tensors in neural networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017174039A (ja) 2016-03-23 2017-09-28 富士フイルム株式会社 画像分類装置、方法およびプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
宇都宮 誉博,2のべき乗近似とプルーニングを用いたCNN向けFPGAアクセラレータ,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2018年01月11日,Vol. 117, No. 377,pp.119-124,ISSN: 0913-5685
米川 晴義,疎行列演算による3値化ディープニューラルネットワークの高速化,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2017年05月15日,Vol. 117, No. 46,pp.7-11,ISSN: 0913-5685

Also Published As

Publication number Publication date
US11915128B2 (en) 2024-02-27
JP2019200553A (ja) 2019-11-21
EP3816873A4 (en) 2022-08-03
CN112424798A (zh) 2021-02-26
CA3108752A1 (en) 2019-11-21
SG11202100430RA (en) 2021-02-25
KR20210009353A (ko) 2021-01-26
US20210224640A1 (en) 2021-07-22
WO2019220975A1 (ja) 2019-11-21
EP3816873A1 (en) 2021-05-05

Similar Documents

Publication Publication Date Title
JP7240657B2 (ja) ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム
JP6183980B1 (ja) ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム
US20190087713A1 (en) Compression of sparse deep convolutional network weights
JP7325158B2 (ja) ニューラル・ネットワーク・コアにおける動的精度のためのデータ表現
WO2016182671A1 (en) Fixed point neural network based on floating point neural network quantization
JP6933367B2 (ja) ニューラルネットワーク回路装置、システム、処理方法および実行プログラム
KR20220058897A (ko) 컴퓨트-인-메모리 어레이의 컬럼 임계치들을 조정함으로써 xnor 등가 연산들을 수행
JP2019139338A (ja) 情報処理装置、情報処理方法、およびプログラム
US11669747B2 (en) Constraining function approximation hardware integrated with fixed-point to floating-point conversion
Abdelsalam et al. An efficient FPGA-based overlay inference architecture for fully connected DNNs
JP2018194974A (ja) 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法
CN112446888A (zh) 图像分割模型的处理方法和处理装置
WO2020158760A1 (ja) ニューラルネットワーク回路装置、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム
Sayed et al. A systematic literature review on binary neural networks
Mukhopadhyay et al. Systematic realization of a fully connected deep and convolutional neural network architecture on a field programmable gate array
Guan et al. Recursive binary neural network training model for efficient usage of on-chip memory
WO2021073752A1 (en) Design and training of binary neurons and binary neural networks with error correcting codes
Ghodhbani et al. Deploying deep learning networks based advanced techniques for image processing on FPGA platform
WO2023059723A1 (en) Model compression via quantized sparse principal component analysis
CN115461754A (zh) 深度过参数化
Gillela Design of hardware CNN accelerators for audio and image classification
Akimova et al. Hardware Implementation of a Convolutional Neural Network
Yang Exploring FPGA implementation for binarized neural network inference
WO2022193052A1 (en) Kernel-guided architecture search and knowledge distillation
Adiletta et al. Optimization Techniques to Improve Inference Performance of a Forward Propagating Neural Network on an FPGA

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20200916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20200916

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220929

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: 20230124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230224

R150 Certificate of patent or registration of utility model

Ref document number: 7240657

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150