JP7104183B2 - ニューラルネットワークの縮約装置 - Google Patents
ニューラルネットワークの縮約装置 Download PDFInfo
- Publication number
- JP7104183B2 JP7104183B2 JP2020566382A JP2020566382A JP7104183B2 JP 7104183 B2 JP7104183 B2 JP 7104183B2 JP 2020566382 A JP2020566382 A JP 2020566382A JP 2020566382 A JP2020566382 A JP 2020566382A JP 7104183 B2 JP7104183 B2 JP 7104183B2
- Authority
- JP
- Japan
- Prior art keywords
- neural network
- unit
- arithmetic
- operations
- reduction
- 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/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/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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
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)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Description
本発明はニューラルネットワークの縮約装置に関する。
近年、機械学習を用いた物体認識や行動予測を車両の自動運転に適用する技術が進展している。物体認識等に使用される機械学習手法として、ニューラルネットワークが知られている。ニューラルネットワークでは演算回数が多い畳み込み演算等が実施され、車両に搭載される演算装置がリアルタイムに処理を行う際の課題になっていた。上記の課題に対し、ニューラルネットワークの各ノードの重み係数が閾値以下となる枝(層間結合)を削減することによって、認識性能に対する影響を抑制しながらニューラルネットワークの演算負荷を軽減する縮約方法(圧縮方法)が開示されている(非特許文献1参照)。
Song Han、 Jeff Pool、 John Tran、 William J. Dally、"Learning both Weights and Connections for Efficient Neural Networks"、[online]、2015年10月30日、[平成30年12月24日検索]、インターネット<URL :https://arxiv.org/pdf/1506.02626.pdf>
非特許文献1にはニューラルネットワークの一部の枝を削減することにより、ニューラルネットワークの演算回数を低減する方法が示されているが、演算回数が低減されても演算処理の処理時間が短縮されるとは限られない。また、ニューラルネットワークの演算処理に対して、演算器に設けられた複数の演算器が有効に利用されない場合がある。このような問題は、車載用の演算装置に限らず、ニューラルネットワークを利用した他の演算装置でも生じる可能性がある。
本発明は前記課題を解決するもので、その目的とするところは、ニューラルネットワークの処理時間を短縮すると共に複数の演算器を有効利用できるようにニューラルネットワークの演算回数を低減することができるニューラルネットワークの縮約装置を提供することである。
本発明の一態様のニューラルネットワークの縮約装置は、複数の演算器を備えた演算装置によるニューラルネットワークの演算回数を、ニューラルネットワークを縮約することによって低減するニューラルネットワークの縮約装置であって、ニューラルネットワークの演算処理に対する前記演算器の割り当て数を設定する演算器割り当て部と、前記演算器の割り当て数に基づいて縮約後のニューラルネットワークの演算回数を設定する演算回数設定部と、前記演算装置によるニューラルネットワークの演算回数が、前記演算回数設定部によって設定された演算回数と等しくなるように、ニューラルネットワークを縮約するニューラルネットワーク縮約部とを備えたことを特徴とする。
本発明によれば、ニューラルネットワークの処理時間を短縮すると共に複数の演算器を有効利用できるようにニューラルネットワークの演算回数を低減することができる。本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、上記した以外の、課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
[第1の実施形態]
以下、添付の図面を参照して、ニューラルネットワークの縮約装置を適用した自動運転システムについて説明する。図1は、第1の実施形態に係る自動運転システムのブロック図である。なお、以下の説明では、ニューラルネットワークの縮約装置を自動運転システムに適用した一例について説明するが、ニューラルネットワークの縮約装置は、監視カメラシステム、医療用の画像診断システム、音声認識システム等の他のシステムに適用可能である。
以下、添付の図面を参照して、ニューラルネットワークの縮約装置を適用した自動運転システムについて説明する。図1は、第1の実施形態に係る自動運転システムのブロック図である。なお、以下の説明では、ニューラルネットワークの縮約装置を自動運転システムに適用した一例について説明するが、ニューラルネットワークの縮約装置は、監視カメラシステム、医療用の画像診断システム、音声認識システム等の他のシステムに適用可能である。
図1に示すように、自動運転システムは、ニューラルネットワークを用いて自動運転する車両10と、車両10に対してニューラルネットワークのパラメータを定期的に通知するサーバ20とが無線通信によって接続されている。車両10には、車両周辺を撮像するカメラ120と、車両10の自動運転を制御する車両制御部110と、アクセル、ブレーキ、操舵等の各種操作に用いるアクチュエータ130とが設けられている。サーバ20には、縮約技術によってニューラルネットワークの演算回数を低減するニューラルネットワークの縮約装置100が実装されている。
車両制御部110には、カメラ120から入力された画像を所定形式に変換する画像入力部111と、ニューラルネットワークを用いて画像を認識する画像認識部112と、認識結果に応じた制御信号をアクチュエータ130に出力する信号出力部113とが設けられている。画像認識部112には、ニューラルネットワークの縮約装置100から縮約後のニューラルネットワークのパラメータが通知される。ニューラルネットワークのパラメータとは、画像認識部112において縮約後のニューラルネットワークを構築するためのパラメータであり、例えばニューラルネットワークで使用される重み係数等である。
画像認識部112は、ニューラルネットワークの縮約装置100から通知されたパラメータに基づいて縮約後のニューラルネットワークを構築して、ニューラルネットワークを用いて画像入力部111から入力された画像を認識する。信号出力部113は、画像の認識結果に基づいて自車両の走行方向及び走行速度等の自動運転に必要な車両制御情報を含む制御信号をアクチュエータ130に出力する。アクチュエータ130は、アクセル用の駆動アクチュエータ、ブレーキ用の制動アクチュエータ、ステアリング用の操舵アクチュエータ等を含んでいる。アクチュエータ130は、信号出力部113からの制御信号に基づいて車両10を制御する。
車両制御部110は、複数の演算器を備えた演算装置140によって実現されている。車両制御部110の各種処理に対して演算装置140の演算器が割り当てられている。演算装置140の複数の演算器によって車両制御部110の各種処理が実行されることで、ニューラルネットワークを用いた画像認識が実施されて、認識結果に基づいて車両10の自動運転制御が実施される。なお、車両制御部110の各種処理のうち、画像認識処理は演算負荷が大きいため、車両制御部110の他の処理と比較して多数の演算器が画像認識処理に対して割り当てられている。
ニューラルネットワークの縮約装置100には、ニューラルネットワーク保持部101と、演算器割り当て部102と、演算回数設定部103と、ニューラルネットワーク縮約部104とが設けられている。ニューラルネットワーク保持部101には、PC、サーバ等において学習された後の学習済みのニューラルネットワーク、すなわち推論処理に用いるニューラルネットワークが保持されている。演算器割り当て部102は、画像認識部112によってニューラルネットワークを用いて画像認識を行う際に、ニューラルネットワークの演算処理に対する演算装置140の演算器の割り当て数を設定する。この場合、演算器割り当て部102は、入力デバイス等を介してユーザから入力された演算器の割り当て数を縮約装置100に設定している。
演算回数設定部103は、ニューラルネットワーク保持部101に保持されたニューラルネットワークの演算処理に必要な演算回数を算出し、演算器の割り当て数に基づいて縮約後のニューラルネットワークの演算回数を設定する。ニューラルネットワーク縮約部104は、演算装置140によるニューラルネットワークの演算回数が、演算回数設定部103によって設定された演算回数と等しくなるように、ニューラルネットワーク保持部101に保持されたニューラルネットワークを縮約する。また、ニューラルネットワーク縮約部104は、縮約後のニューラルネットワークのパラメータを車両10の画像認識部112に通知して、画像認識部112の画像認識処理に用いられるニューラルネットワークの演算回数を低減している。
なお、ニューラルネットワークの縮約装置100の各部は、プロセッサを用いてソフトウェアによって実現されてもよいし、集積回路等に形成された論理回路(ハードウェア)によって実現されてもよい。プロセッサを用いる場合には、プロセッサがメモリに格納されているプログラムを読み出して実行することで各種処理が実施される。プロセッサとしては、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等が使用される。また、メモリは、用途に応じてROM(Read Only Memory)、RAM(Random Access Memory)等の一つ又は複数の記録媒体によって構成されている。
以下、ニューラルネットワークの縮約装置100について具体例を用いて説明する。図2は、第1の実施形態に係るニューラルネットワークの一例を示す図である。図3は、第1の実施形態に係る第1の中間層のノード処理の一例を示す図である。図4は、第1の実施形態に係る第1の中間層のノード処理の他の一例を示す図である。図5は、第1の実施形態に係る第2の中間層のノード処理の一例を示す図である。図6は、第1の実施形態に係る出力層のノード処理の一例を示す図である。図7は、第1の実施形態に係る縮約処理の一例を示す図である。また、以下の説明では、説明の便宜上、図1の符号を適宜使用して説明する。
図2に示すように、ニューラルネットワークは、入力層200と、第1の中間層201と、第2の中間層202と、出力層203とによって構成されている。ニューラルネットワークは、入力層200に5つの入力値X0-X4が入力されると、第1、第2の中間層201、202を経由して出力層203から2つの出力値Y0、Y1を出力する。入力層200には入力要素として5つの入力ノードNX0-NX4が設けられ、出力層203には出力要素として2つの出力ノードNY0、NY1が設けられている。第1の中間層201には演算要素としてノードN00-N03が設けられ、第2の中間層202にはノードN10-N13が設けられている。
第1の中間層201のノードN00-N03は、入力層200から入力された入力値X0-X4に対して層間結合(枝)毎に設定された重み係数を乗算し、各乗算結果を加算した結果を第2の中間層202のノードN10-N13に出力する。第2の中間層202のノードN10-N13は、第1の中間層201のノードN00-N03から入力された値に対して層間結合毎に設定された重み係数を乗算し、各乗算結果を加算した結果を出力層203の出力ノードNY0、NY1に出力する。出力層203の出力ノードNY0、NY1は、第2の中間層202のノードN10-N13から入力された値に対して層間結合毎に設定された重み係数を乗算し、各乗算結果を加算した結果を出力値Y0、Y1として出力する。
ここで、各ノードの演算処理について詳細に説明する。図3は、第1の中間層201のノードN00の演算処理を示している。図3において、第1の中間層201のノードN00では入力層200の入力ノードNX0-NX4とノードN00の層間の重み係数W000-W040が使用され、ノードN00から出力される出力値Z00は次式(1)によって求められる。
Z00=X0*W000+X1*W010+X2*W020+X3*W030+X4*W040・・・(1)
Z00=X0*W000+X1*W010+X2*W020+X3*W030+X4*W040・・・(1)
図4は、第1の中間層201のノードN01の演算処理を示している。図4において、第1の中間層201のノードN01では入力層200の入力ノードNX0-NX4とノードN01の層間の重み係数W001-W041が使用され、ノードN01から出力される出力値Z01は次式(2)によって求められる。第1の中間層201の他のノードN02、N03についても同様にして出力値Z02、Z03を出力する。
Z01=X0*W001+X1*W011+X2*W021+X3*W031+X4*W041・・・(2)
Z01=X0*W001+X1*W011+X2*W021+X3*W031+X4*W041・・・(2)
図5は、第2の中間層202のノードN10の演算処理を示している。図5において、第2の中間層202のノードN10では第1の中間層201のノードN00-N03とノードN10の層間の重み係数W100-W130が使用され、ノードN10から出力される出力値Z11は次式(3)によって求められる。第2の中間層202の他のノードN11-N13についても同様にして出力値Z11-Z13を出力する。
Z11=Z00*W100+Z01*W110+Z02*W120+Z03*W130・・・(3)
Z11=Z00*W100+Z01*W110+Z02*W120+Z03*W130・・・(3)
図6は、出力層203の出力ノードNY0の演算処理を示している。図6において、出力層203の出力ノードNY0では第2の中間層202のノードN10-N13と出力ノードNY0の層間の重み係数W200-W230が使用され、出力ノードNY0から出力される出力値Y0は次式(4)によって求められる。出力層203の他の出力ノードNY1についても同様にして出力値Y1を出力する。
Y0=Z10*W200+Z11*W210+Z12*W220+Z13*W230・・・(4)
Y0=Z10*W200+Z11*W210+Z12*W220+Z13*W230・・・(4)
本実施形態のニューラルネットワークは、自動運転用の画像認識部112に用いられるものである。画像入力部111から入力層200の入力ノードNX0-NX4に画像の入力値X0-X4が入力されて、出力層203の出力ノードNY0、NY1から画像認識結果である出力値Y0、Y1が出力される。例えば、画像が他車両である確率がY0として出力され、画像が歩行者である確率がY1として出力される。画像が他車両である確率が高い場合には車両制御部110によって自車両が他車両に追従するように制御され、画像が歩行者である確率が高い場合には自車両が歩行者を避けるように制御される。このように、ニューラルネットワークは、入力値から所望の出力値を得るためのネットワーク構成及び重み係数等から成り、ニューラルネットワーク保持部101にはネットワーク構成及び重み係数等の各種情報が記憶されている。
次に、ニューラルネットワークの縮約装置100の具体的な動作について説明する。演算器割り当て部102は、ニューラルネットワークの演算処理、すなわち画像認識部112の画像認識処理に対する演算器の割り当て数を設定する。この場合、車両10に搭載された演算装置140の複数の演算器のうち、車両制御部110の各部の処理負荷を考慮して画像認識処理に対する演算器の割り当て数が設定される。本実施形態の自動運転システム等の組込みシステムに用いられる演算装置140としてはFPGA(Field Programmable Gate Array)が挙げられる。FPGAは所望の処理を論理回路の形式によって設計及び実行できる演算装置140である。FPGAには積和演算を高速に処理することが可能なDSP(Digital Signal Processor)と呼ばれる演算器が搭載されており、ニューラルネットワークの乗算及び加算を高速に処理するのに有用である。DSPはFPGA毎に搭載数が予め決められているため、演算器割り当て部102によってニューラルネットワークの演算処理に用いるDSP数が設定される。なお、ニューラルネットワークの演算回数は、一般にFPGAのDSP数よりもはるかに多く、ニューラルネットワーク全体を一度に処理することは困難である。このため、ニューラルネットワークの演算処理が複数回に分けて実施される。また、演算装置140は、FPGAに限定されるものではなく、ニューラルネットワークに対して使用可能な複数の積和演算器を備えたものであればよい。
演算回数設定部103は、縮約前のニューラルネットワークの演算回数を算出する。一例として、図2に示したニューラルネットワークの演算処理に必要な演算回数について説明する。第1の中間層201の各ノードの演算処理には、上記の式(1)に示すように5回の乗算と4回の加算の計9回の演算が必要となる。第1の中間層201にはノードN00-N03まで4つのノードがあるため、第1の中間層201の演算処理に必要な演算回数は9*4=36回となる。同様に、第2の中間層202の各ノードの演算処理には、上記の式(3)に示すように4回の乗算と3回の加算の計7回の演算が必要となる。第2の中間層202にはノードN10-N13まで4つのノードがあるため、第2の中間層202の演算処理に必要な演算回数は7*4=28回となる。出力層203の各出力ノードの演算処理には、上記の式(4)に示すように4回の乗算と3回の加算の計7回の演算が必要となる。出力層203には出力ノードNY0、NY1の2つのノードがあるため、出力層203の演算処理に必要な演算回数は7*2=14回となる。以上の各層の演算回数を合計すると、図2に示すニューラルネットワークの演算処理に必要な演算回数は次式(5)によって示される。
36回+28回+14回=78回・・・(5)
36回+28回+14回=78回・・・(5)
実際に使用されるニューラルネットワークには演算回数が100万回を越える大規模なニューラルネットワークもあるが、本実施形態では説明の便宜上、ニューラルネットワークを簡略化して説明している。
次に、演算回数設定部103は、縮約前のニューラルネットワークの演算回数よりも少なく、かつ演算器割り当て部102によって設定された演算器の割り当て数の整数倍になるように縮約後のニューラルネットワークの演算回数を設定する。上記の式(5)によって求めたように、縮約前のニューラルネットワークの演算回数は78回である。ここでは、一例として演算器の割り当て数を20個とすると、縮約後のニューラルネットワークの演算回数は次式(6)によって設定される。なお、式(6)のmod(A,B)はAをBによって除算した時の剰余を算出する処理を示している。
78-mod(78,20)=60・・・(6)
78-mod(78,20)=60・・・(6)
ニューラルネットワーク縮約部104は、縮約前のニューラルネットワークの演算回数78回と演算回数設定部103によって設定された演算回数60回との差分である18回分の演算を削減するようにニューラルネットワークを縮約する。縮約前のニューラルネットワークの演算回数については、ニューラルネットワーク縮約部104が演算回数設定部103から取得してもよいし、ニューラルネットワーク縮約部104が演算回数設定部103と同様に算出してもよい。ニューラルネットワークの縮約方法は、特に限定されないが、本実施形態ではPruning処理を例示して説明する。Pruning処理は、重み係数の絶対値が予め定められた閾値未満の場合には、出力値Z00に対する影響が十分小さいとして、入力値に重み係数を乗算する乗算処理を削減するものである。ニューラルネットワークの重み係数の絶対値が小さい重み係数から順に削減することでニューラルネットワークが縮約される。
例えば、図3に示すように、第1の中間層201のノードN00の出力値Z00を得るためには、上記の式(1)に示すように5回の乗算と4回の加算の計9回の演算が必要となる。このとき、図7に示すように、重み係数W010、W040の絶対値が閾値未満の場合、入力値X1と重み係数W010の乗算処理と、入力値X4と重み係数W040の乗算処理が削減される。この結果、第1の中間層201のノードN00の出力値Z00は次式(7)によって求められる。式(7)では、ノードN00の演算回数が3回の乗算と2回の加算の計5回になっており、式(1)と比べて演算回数が4回削減されている。このように、Pruning処理は、出力に対する影響が小さなノード間の結合を削除することで演算回数を低減する。
Z00=X0*W000+X2*W020+X3*W030・・・(7)
Z00=X0*W000+X2*W020+X3*W030・・・(7)
ニューラルネットワークの演算処理の処理時間について説明する。図8は、第1の実施形態に係る演算装置の一部を示すブロック図である。図9は、ニューラルネットワークの演算処理のタイミングチャートの一例を示す図である。図10は、ニューラルネットワークの演算処理のタイミングチャートの他の一例を示す図である。図11は、ニューラルネットワークの演算処理のタイミングチャートの他の一例を示す図である。
図8に示すように、メモリ301には演算器302によって演算された中間データ303が格納される。また、演算器302によって入力値304とメモリ301に格納された中間データ305とを用いて演算処理が繰り返される。演算器302によって全ての演算処理が終了すると、演算器302から演算結果306が出力される。演算器302の割り当て数が20個、縮約後のニューラルネットワークに必要な演算回数が60回とすると、1個の演算器302につき3サイクルの演算処理が実施された後に演算結果306が出力される。図9に示すように、各演算器302が1サイクル(1回)の演算処理に要する処理時間をTとすると、ニューラルネットワーク全体として3サイクル分の処理時間Tで60回(#0-#59)の演算処理が終了する。なお、処理時間Tは1個の演算器302による1サイクル分の処理時間を示しているが、処理時間Tで20個の演算器302によって並列に演算処理が実施されている。
図10は、演算器302の割り当て数を考慮せずにニューラルネットワークの演算回数を低減した場合を示している。ここでは、一例として、演算器302の割り当て数を20個とし、ニューラルネットワークの演算回数を78回から62回に低減した場合について説明する。ニューラルネットワークの演算回数が60回の場合と比較して、演算回数が2回(#60、#61)増えただけであるが、ニューラルネットワーク全体として4サイクル分の処理時間Tが必要になって1サイクル分の処理時間Tが増える。
同様に、図11は、演算器302の割り当て数を考慮せずにニューラルネットワークの演算回数を低減した場合を示している。ここでは、一例として、演算器302の割り当て数を20個とし、ニューラルネットワークの演算回数を78回から45回に低減した場合について説明する。1サイクル目の演算処理と2サイクル目の演算処理では20個の演算器302の全てが使用されているが、3サイクル目の演算処理では20個の演算器302のうち5個しか使用されていない。このため、ニューラルネットワークの演算回数が60回の場合と比較して、15回分の演算回数が低減されているにも関わらず、演算処理の処理時間が短縮されていない。特に、3サイクル目の演算処理で演算器302が有効利用されておらず、画像認識部112の認識性能が低下するおそれがある。
以上のように、第1の実施形態の自動運転システムでは、カメラから入力した画像の画像認識に用いるニューラルネットワークの演算回数を、演算器割り当て部102によって設定された演算器302の割り当て数の整数倍になるように低減している。これにより、ニューラルネットワークの演算処理に割り当てられた複数の演算器302によって同時に演算処理が開始されて同時に演算処理が終了される。一部の演算器302だけで演算するサイクルが無くなり、演算処理の処理時間を短縮すると共に複数の演算器302の使用効率を最大限に高めることができる。
また、ニューラルネットワークの第1の中間層201から出力層203までの合計の演算回数を低減する構成に限定されず、ニューラルネットワークの層毎に演算回数が低減されてもよい。
上記したように、図2に示すニューラルネットワークの第1の中間層201の演算回数は36回、第2の中間層202の演算回数は28回、出力層203の演算回数は14回である。この場合、演算器割り当て部102(図1参照)によってニューラルネットワークの層毎に演算器302の割り当て数が設定される。第1の中間層201に対する演算器302の割り当て数が8個、第2の中間層202に対する演算器302の割り当て数が8個、出力層203に対する演算器302の割り当て数が4個に設定される。
また、演算回数設定部103(図1参照)によって縮約後のニューラルネットワークの層毎に演算回数が設定される。第1の中間層201に対する演算回数は次式(8)によって設定され、第2の中間層202に対する演算回数は次式(9)によって設定され、出力層203に対する演算回数は次式(10)によって設定される。なお、式(8)-(10)には、各層に対して演算器302の割り当て数が個別に設定されているが、各層に同じ演算器302の割り当て数が設定されてもよい。
36-mod(36,8)=32・・・(8)
28-mod(28,8)=24・・・(9)
14-mod(14,4)=12・・・(10)
36-mod(36,8)=32・・・(8)
28-mod(28,8)=24・・・(9)
14-mod(14,4)=12・・・(10)
ニューラルネットワークの層毎に演算回数が設定されると、ニューラルネットワーク縮約部104によってPruning等の縮約方法を用いてニューラルネットワークの層毎に演算回数が低減される。第1の中間層201における4回分の演算処理が削減され、第2の中間層202における4回分の演算処理が削減され、出力層203における2回分の演算処理が削減される。このように、演算回数設定部103によってニューラルネットワークの層毎に演算回数が設定されることで、比較的少ない演算器302の割り当て数(例えば、8個)によって演算処理できるため、演算装置140の実装規模を小さくすることができる。
演算回数設定部103は、ニューラルネットワークの演算処理に必要な演算回数を演算器302の割り当て数によって除算した剰余を、この演算回数から減算することで縮約後のニューラルネットワークの演算回数を設定する構成に限定されない。演算回数設定部103は、演算器302の割り当て数の整数倍を設定すればよい。例えば、演算回数設定部103は、次式(11)を用いて演算回数を設定してもよい。
低減後の演算回数=78-mod(78,20)-20×n・・・(11)
(n=0,1,2… 但し、低減後の演算回数は正数)
低減後の演算回数=78-mod(78,20)-20×n・・・(11)
(n=0,1,2… 但し、低減後の演算回数は正数)
n=0の場合には、式(11)は式(6)と同じになる。n=1の場合には、次式(12)によって演算回数が40回に設定される。演算回数が40回に設定されると、ニューラルネットワーク縮約部104によって、78-40=38回分の演算を削減するようにPruning処理が実施される。この場合、式(6)から求められた演算回数よりも削減数が多い分、認識精度の低下を考慮する必要があるが、1サイクル分の処理時間Tを短縮することができる。すなわち、n=0の場合にはニューラルネットワークの演算処理に3サイクル分の処理時間Tが必要なのに対して、n=1の場合にはニューラルネットワークの演算処理に2サイクル分の処理時間Tで処理を終えることができる。なお、nの値はユーザによって任意に設定されてもよいし、予め設定されてもよい。
78-mod(78,20)-20=40・・・(12)
78-mod(78,20)-20=40・・・(12)
演算回数設定部103は、演算器302の割り当て数の整数倍になるように縮約後のニューラルネットワークの演算回数を設定する構成に限定されない。演算回数設定部103は、縮約後のニューラルネットワークの演算回数を、必ずしも演算器302の割り当て数の整数倍に設定しなくてもよい。演算回数設定部103は、演算器302の割り当て数で、縮約前のニューラルネットワークの演算回数を除算した余りが演算器302の割り当て数の半分以上になるように、縮約後のニューラルネットワークの演算回数を設定してもよい。例えば、演算回数設定部103は、次式(13)を用いて演算回数を設定してもよい。なお、kは、演算器割り当て部102によって設定された演算器302の割り当て数の1/2以下である。
低減後の演算回数=78-mod(78,20)-m・・・(13)
(m=0,1,2,・・・,k)
低減後の演算回数=78-mod(78,20)-m・・・(13)
(m=0,1,2,・・・,k)
式(13)では、低減後の演算回数は、mの値によって変更される。例えば、m=0の場合には演算回数が60回、m=1の場合には演算回数が59回、m=kの場合には演算回数が60-k回に設定される。図12に示すように、低減後の演算回数が59回の場合には、3サイクル目の演算処理では20個の演算器302のうち19個の演算器302のみが使用され、1個の演算器302は未使用になる。このため、演算器302の使用効率が低下するが、縮約後のニューラルネットワークの認識精度に応じて、ニューラルネットワークの縮約率を柔軟性に変更することができる。なお、mの値はユーザによって任意に設定されてもよいし、予め設定されていてもよい。
[第2の実施形態]
以下に、第2の実施形態に係る自動運転システムについて説明する。第2の実施形態に係る自動運転システムは、ニューラルネットワークの認識精度を検証しながら、演算器の割り当て数の調整によってニューラルネットワークを縮約する点について第1の実施形態と相違している。したがって、第1の実施形態と同様な構成については説明を省略する。図13は、第2の実施形態に係る自動運転システムのブロック図である。図13では、第1の実施形態の自動運転システムと同一のブロックについては同一の符号を付している。
以下に、第2の実施形態に係る自動運転システムについて説明する。第2の実施形態に係る自動運転システムは、ニューラルネットワークの認識精度を検証しながら、演算器の割り当て数の調整によってニューラルネットワークを縮約する点について第1の実施形態と相違している。したがって、第1の実施形態と同様な構成については説明を省略する。図13は、第2の実施形態に係る自動運転システムのブロック図である。図13では、第1の実施形態の自動運転システムと同一のブロックについては同一の符号を付している。
図13に示すように、第2の実施形態に係るニューラルネットワークの縮約装置100には、ニューラルネットワークの認識精度を検証する機能として、検証用データ保持部106と認識精度検証部107とが設けられている。検証用データ保持部106には、縮約後のニューラルネットワークの認識精度を検証するための検証用データとして検証値及び正解値が保存されている。認識精度検証部107は、縮約後のニューラルネットワークの認識精度を算出して、当該認識精度と予め定められた目標精度を比較することで認識精度を検証する。この場合、認識精度検証部107は、検証用データ保持部106から読み出した検証値を縮約後のニューラルネットワークに入力し、ニューラルネットワークから出力される出力値と検証用データ保持部106から読み出した正解値とを照らし合わせて認識精度を算出する。そして、認識精度検証部107は、認識精度と目標精度の比較することで、目標精度を基準として認識精度を検証する。
認識精度検証部107に検証された認識精度が目標精度未満の場合には、認識精度検証部107から演算器割り当て部102に演算器の割り当て数の増加指令が通知される。演算器割り当て部102は、認識精度検証部107から演算器の割り当て数の増加指令を受信すると、演算器の割り当て数を1個増加して割り当て数を更新する。演算回数設定部103は、更新後の演算器の割り当て数に基づいて、縮約後のニューラルネットワークの演算回数を設定する。一方で、認識精度検証部107に検証された認識精度が目標精度以上の場合には、認識精度検証部107から演算器割り当て部102に演算器の割り当て数の減少指令が通知される。演算器割り当て部102は、認識精度検証部107から演算器の割り当て数の減少指令を受信すると、演算器の割り当て数を1個減少して割り当て数を更新する。演算回数設定部103は、更新後の演算器の割り当て数に基づいて、縮約後のニューラルネットワークの演算回数を設定する。
一例として、第1の実施形態と同様に、図2に示すニューラルネットワークを用いて具体的に説明する。縮約前のニューラルネットワーク演算回数は78回である。演算器割り当て部102によって演算器の割り当て数が20個に設定されると、演算回数設定部103によって次式(14)を用いて演算回数が60回に設定される。ニューラルネットワーク縮約部104によってニューラルネットワークの18回分の演算処理が削減されてニューラルネットワークが縮約される。
78-mod(78,20)=60・・・(14)
78-mod(78,20)=60・・・(14)
次に、認識精度検証部107によって縮約後のニューラルネットワークに対して認識精度が検証される。認識精度検証部107による認識精度が目標精度未満である場合には、演算器割り当て部102によって演算器の割り当て数が1個増加されて21個に更新される。演算器の割り当て数が更新されると、演算器割り当て部102によって次式(15)を用いて演算回数が63回に再設定される。ニューラルネットワーク縮約部104によってニューラルネットワークの15回分の演算処理が削減されてニューラルネットワークが再び縮約される。ニューラルネットワークの演算回数が60回から63回に増加しているため認識精度の改善が期待できる。
78-mod(78,21)=63・・・(15)
78-mod(78,21)=63・・・(15)
次に、認識精度検証部107によって再縮約後のニューラルネットワークに対して認識精度が検証される。認識精度検証部107による認識精度が目標精度以上になった場合には、ニューラルネットワークのパラメータが画像認識部112に通知され、カメラ120から入力された画像に対する画像認識処理に用いられる。一方、認識精度検証部107による認識精度が目標精度未満になった場合には、再び演算器割り当て部102によって演算器の割り当て数が1個増加される。この処理を繰り返すことで、ニューラルネットワークの認識精度が目標精度に近づけられる。
なお、縮約後のニューラルネットワークの認識精度が不足している場合に、認識精度を改善するように認識精度検証部107から演算器割り当て部102に演算器の割り当て数の増加指令がフィードバックされる構成に限られない。縮約後のニューラルネットワークの認識精度が必要以上に高い場合に、認識精度を目標精度まで下げるように認識精度検証部107から演算器割り当て部102に演算器の割り当て数の減少指令がフィードバックされてもよい。
以上のように、第2の実施形態に係る自動運転システムでは、第1の実施形態と同様に、演算処理の処理時間を短縮すると共に複数の演算器の使用効率を高めることができる。
また、縮約後のニューラルネットワークの認識精度に応じて、ニューラルネットワークの演算処理に対する演算器の割り当て数を調整することができる。よって、ニューラルネットワークの認識精度が目標精度を維持できる程度に、ニューラルネットワークの演算回数を低減することができる。
また、縮約後のニューラルネットワークの認識精度に応じて、ニューラルネットワークの演算処理に対する演算器の割り当て数を調整することができる。よって、ニューラルネットワークの認識精度が目標精度を維持できる程度に、ニューラルネットワークの演算回数を低減することができる。
[第3の実施形態]
以下に、第3の実施形態に係る自動運転システムについて説明する。第3の実施形態に係る自動運転システムは、ニューラルネットワークの認識精度を検証しながら、演算回数の調整によってニューラルネットワークを縮約する点について第2の実施形態と相違している。したがって、第1の実施形態と同様な構成については説明を省略する。図14は、第3の実施形態に係る自動運転システムのブロック図である。図14では、第2の実施形態の自動運転システムと同一のブロックについては同一の符号を付している。
以下に、第3の実施形態に係る自動運転システムについて説明する。第3の実施形態に係る自動運転システムは、ニューラルネットワークの認識精度を検証しながら、演算回数の調整によってニューラルネットワークを縮約する点について第2の実施形態と相違している。したがって、第1の実施形態と同様な構成については説明を省略する。図14は、第3の実施形態に係る自動運転システムのブロック図である。図14では、第2の実施形態の自動運転システムと同一のブロックについては同一の符号を付している。
図14に示すように、第3の実施形態に係るニューラルネットワークの縮約装置100では、認識精度検証部107の検証結果に基づいて演算回数設定部103の演算回数を調整するように構成されている。すなわち、認識精度検証部107によって検証された認識精度が目標精度未満の場合には、認識精度検証部107から演算回数設定部103に演算回数の増加指令が通知される。演算回数設定部103は、認識精度検証部107から演算回数の増加指令を受信すると、縮約後のニューラルネットワークの演算回数を増加して演算回数を再設定する。一方で、認識精度検証部107によって検証された認識精度が目標精度以上の場合には、認識精度検証部107から演算回数設定部103に演算回数の減少指令が通知される。演算回数設定部103は、認識精度検証部107から演算回数の減少指令を受信すると、縮約後のニューラルネットワークの演算回数を減少して演算回数を再設定する。
一例として、第1の実施形態と同様に、図2のニューラルネットワークを用いて具体的に説明する。縮約前のニューラルネットワーク演算回数は78回である。演算器割り当て部102によって演算器の割り当て数が20個に設定されると、演算回数設定部103によって次式(16)を用いて演算回数が設定される。一例として、n=2が設定されていた場合には、演算回数設定部103によって演算回数が20回に設定される。ニューラルネットワーク縮約部104によってニューラルネットワークの58回分の演算処理が削減されてニューラルネットワークが縮約される。
低減後の演算回数=78-mod(78,20)-20×n・・・(16)
(n=0,1,2,・・・。但し、低減後の演算回数は正数)
低減後の演算回数=78-mod(78,20)-20×n・・・(16)
(n=0,1,2,・・・。但し、低減後の演算回数は正数)
次に、認識精度検証部107によって縮約後のニューラルネットワークに対して認識精度が検証される。認識精度検証部107による認識精度が目標精度未満である場合には、演算回数設定部103によって式(16)のnの値が1つ減らされてn=1になり、演算回数が40回に再設定される。ニューラルネットワーク縮約部104によってニューラルネットワークの38回分の演算処理が削減されてニューラルネットワークが再び縮約される。ニューラルネットワークの演算回数が20回から40回に増加しているため認識精度の改善が期待できる。
次に、認識精度検証部107によって再縮約後のニューラルネットワークに対して認識精度が検証される。認識精度検証部107による認識精度が目標精度以上になった場合には、ニューラルネットワークのパラメータが画像認識部112に通知され、カメラ120から入力された画像に対する画像認識処理に用いられる。一方、認識精度検証部107による認識精度が目標精度未満になった場合には、再び演算回数設定部103によって式(16)のnの値が1つ増加される。この処理を繰り返すことで、ニューラルネットワークの認識精度が目標精度に近づけられる。
なお、縮約後のニューラルネットワークの認識精度が不足している場合に、認識精度を改善するように認識精度検証部107から演算回数設定部103に演算回数の増加指令がフィードバックされる構成に限られない。縮約後のニューラルネットワークの認識精度が必要以上に高い場合に、認識精度を目標精度まで下げるように認識精度検証部107から演算回数設定部103に演算回数の減少指令がフィードバックされてもよい。
以上のように、第3の実施形態に係る自動運転システムでは、第2の実施形態と同様に、演算処理の処理時間を短縮すると共に複数の演算器の使用効率を高めることができる。
また、縮約後のニューラルネットワークの認識精度に応じて、ニューラルネットワークの演算回数を調整することができる。よって、ニューラルネットワークの認識精度が目標精度を維持できる程度に、ニューラルネットワークの演算回数を低減することができる。
また、縮約後のニューラルネットワークの認識精度に応じて、ニューラルネットワークの演算回数を調整することができる。よって、ニューラルネットワークの認識精度が目標精度を維持できる程度に、ニューラルネットワークの演算回数を低減することができる。
[第4の実施形態]
以下に、第4の実施形態に係る自動運転システムについて説明する。第4の実施形態に係る自動運転システムは、縮約後のニューラルネットワークの演算回数を、演算器の割り当て数の調整によって補正する点について第1の実施形態と相違している。したがって、第1の実施形態と同様な構成については説明を省略する。図15は、第4の実施形態に係る自動運転システムのブロック図である。図15では、第1の実施形態の自動運転システムと同一のブロックについては同一の符号を付している。
以下に、第4の実施形態に係る自動運転システムについて説明する。第4の実施形態に係る自動運転システムは、縮約後のニューラルネットワークの演算回数を、演算器の割り当て数の調整によって補正する点について第1の実施形態と相違している。したがって、第1の実施形態と同様な構成については説明を省略する。図15は、第4の実施形態に係る自動運転システムのブロック図である。図15では、第1の実施形態の自動運転システムと同一のブロックについては同一の符号を付している。
第4の実施形態に係るニューラルネットワークの縮約装置100には、縮約後のニューラルネットワークの演算回数を補正する機能として演算回数補正部108が設けられている。演算回数補正部108は、演算器割り当て部102によって設定された演算器の割り当て数に基づいて縮約後のニューラルネットワークの演算回数を補正する。この場合、演算回数補正部108は、縮約後のニューラルネットワークに対し、演算器割り当て部102によって設定された演算器の割り当て数の整数倍となるようにニューラルネットワークの演算回数を補正する。
一例として、第1の実施形態と同様に、図2に示すニューラルネットワークを用いて具体的に説明する。縮約前のニューラルネットワーク演算回数は78回である。演算回数設定部103によって縮約後のニューラルネットワークの演算回数が39回に設定される。この縮約後のニューラルネットワークの演算回数は、縮約前のニューラルネットワークの演算回数の半分にした値である。ニューラルネットワーク縮約部104によって39回部の演算処理が削減されてニューラルネットワークが縮約される。また、演算器割り当て部102によって演算器の割り当て数が20個に設定されると、演算回数補正部108によって次式(17)を用いて縮約後のニューラルネットワークの演算回数が補正される。
補正後の演算回数=(div(39,20)+INT(div(mod(39,20),20)+0.5))*20・・・(17)
補正後の演算回数=(div(39,20)+INT(div(mod(39,20),20)+0.5))*20・・・(17)
式(17)のdiv(A,B)はAをBによって除算する処理を示し、INT(X)はXの小数点以下を切り捨てする処理を示している。式(17)の一例では、div(39,20)=1、INT(div(mod(39,20),20)+0.5)=1であるため、式(17)が(1+1)*20になって補正後の演算回数が40回に設定される。これにより、縮約後のニューラルネットワークの演算回数を、演算器の割り当て数の整数倍になるように補正することが可能となる。
以上のように、本発明の第4の実施形態の自動運転システムでは、第1の実施形態と同様に、演算処理の処理時間を短縮すると共に複数の演算器の使用効率を高めることができる。また、最初にニューラルネットワークを縮約して、演算器の割り当て数を考慮しながら縮約後のニューラルネットワークの演算回数を補正することが可能である。
なお、上記した各実施形態では、画像認識処理に用いるニューラルネットワークの縮約装置について説明したが、この構成に限定されない。ニューラルネットワークの縮約装置は、音声認識処理等の他の認識処理の他、将来データの予測処理に用いるニューラルネットワークの縮約にも適用可能である。
また、上記した各実施形態では、ニューラルネットワークの縮約装置100がサーバ20に設けられる構成にしたが、ニューラルネットワークの縮約装置100が車両10に設けられていてもよい。
また、上記した各実施形態では、演算回数設定部103及びニューラルネットワーク縮約部104が、演算装置140による縮約前のニューラルネットワークの演算回数を算出する構成にしたが、この構成に限定されない。縮約前のニューラルネットワークの演算回数はニューラルネットワーク保持部101に予め保持されていてもよい。また、ニューラルネットワークの縮約装置100に縮約前のニューラルネットワークの演算回を算出する演算回数算出部が設けられていてもよい。
また、上記した各実施形態では、演算器割り当て部102がニューラルネットワークの演算処理に割り当てる演算器302の個数を設定する構成にしたが、この構成に限定されない。演算器割り当て部102は、演算器302の全体数のうちニューラルネットワークの演算処理に割り当てる割合を設定してもよい。
また、上記した第4の実施形態では、演算回数設定部103がニューラルネットワークの演算回数を設定する構成にしたが、この構成に限定されない。演算回数設定部103は、ニューラルネットワークの演算回数の代わりに、ニューラルネットワークの縮約率を設定してもよい。
また、上記した第4の実施形態では、演算回数補正部108が演算器の割り当て数の整数倍となるように縮約後のニューラルネットワークの演算回数を補正する構成にしたが、この構成に限定されない。演算回数補正部108は、ニューラルネットワークの層毎に演算回数を補正してもよいし、演算器の割り当て数によって除算した余りが演算器の割り当て数の半分以上になるようにニューラルネットワークの演算回数を補正してもよい。
以上の通り、本実施形態に記載のニューラルネットワークの縮約装置(100)は、複数の演算器(302)を備えた演算装置(140)によるニューラルネットワークの演算回数を、ニューラルネットワークを縮約することによって低減するニューラルネットワークの縮約装置(100)であって、ニューラルネットワークの演算処理に対する演算器(302)の割り当て数を設定する演算器割り当て部(102)と、演算器(302)の割り当て数に基づいて縮約後のニューラルネットワークの演算回数を設定する演算回数設定部(103)と、演算装置(140)によるニューラルネットワークの演算回数が、演算回数設定部(103)によって設定された演算回数と等しくなるようにニューラルネットワークを縮約するニューラルネットワーク縮約部(104)とを備えている。
この構成によれば、ニューラルネットワークの演算処理に対する演算器(302)の割り当て数を考慮してニューラルネットワークの演算処理に必要な演算回数が低減される。すなわち、ニューラルネットワークの演算処理に割り当てられた複数の演算器(302)によって同時に処理可能な1サイクル当たりの演算回数が考慮される。よって、少数の演算器(302)だけで演算されるサイクルを無くすようにニューラルネットワークの演算回数を低減して、演算処理の処理時間を短縮すると共に複数の演算器(302)の使用効率を高めることができる。
本実施形態に記載のニューラルネットワークの縮約装置(100)において、演算回数設定部(103)は、縮約前のニューラルネットワークの演算回数よりも小さく、かつ演算器割り当て部(102)によって設定された演算器(302)の割り当て数の整数倍に縮約後のニューラルネットワークの演算回数を設定する。この構成によれば、ニューラルネットワークの演算処理に割り当てられた複数の演算器(302)によって同時に演算処理が開始されて同時に演算処理が終了される。よって、一部の演算器(302)だけで演算するサイクルが無くなり、演算処理の処理時間を短縮すると共に複数の演算器(302)の使用効率を最大限に高めることができる。
本実施形態に記載のニューラルネットワークの縮約装置(100)において、演算回数設定部(103)は、演算器割り当て部(102)によって設定された演算器(302)の割り当て数で、ニューラルネットワークの演算回数を除算した余りが当該演算器(302)の割り当て数の半分以上になるように、縮約後のニューラルネットワークの演算回数を設定する。この構成によれば、ニューラルネットワークの演算処理に割り当てられた複数の演算器(302)によって同時に演算処理が開始されて、複数の演算器(302)のうち半分以上の演算器(302)によって同時に演算処理が終了される。よって、少数の演算器(302)だけで演算するサイクルが無くなり、演算処理の処理時間を短縮すると共に複数の演算器(302)の使用効率を高めることができる。
本実施形態に記載のニューラルネットワークの縮約装置(100)において、ニューラルネットワークは複数の層を有しており、演算器割り当て部(102)はニューラルネットワークの層毎に演算器(302)の割り当て数を設定し、演算回数設定部(103)はニューラルネットワークの層毎に縮約後のニューラルネットワークの演算回数を設定する。この構成によれば、比較的少ない演算器によって演算処理することができるため、演算装置(140)の実装規模を小さくすることができる。
本実施形態に記載のニューラルネットワークの縮約装置(100)において、ニューラルネットワーク縮約部(104)はPruning処理によってニューラルネットワークを縮約する。この構成によれば、Pruning処理によってニューラルネットワークの精度の低下を抑えつつ、ニューラルネットワークの演算回数を低減することができる。
本実施形態に記載のニューラルネットワークの縮約装置(100)において、縮約後のニューラルネットワークの精度を算出して、当該精度と目標精度を比較する精度検証部(認識精度検証部107)を備え、精度が目標精度以上の場合に演算器割り当て部(102)が演算器(302)の割り当て数を小さく設定し、精度が目標精度未満の場合に演算器割り当て部(102)が演算器(302)の割り当て数を大きく設定する。この構成によれば、縮約後のニューラルネットワークの精度に応じて、ニューラルネットワークの演算処理に対する演算器(302)の割り当て数を調整することができる。よって、ニューラルネットワークの精度が目標精度を維持できる程度に、ニューラルネットワークの演算回数を低減することができる。
本実施形態に記載のニューラルネットワークの縮約装置(100)において、縮約後のニューラルネットワークの精度を算出して、当該精度と目標精度を比較する精度検証部(認識精度検証部107)を備え、精度が目標精度以上の場合に演算回数設定部(103)が縮約後のニューラルネットワークの演算回数を小さく設定し、精度が目標精度未満の場合に演算回数設定部(103)が縮約後のニューラルネットワークの演算回数を大きく設定する。この構成によれば、縮約後のニューラルネットワークの精度に応じて、ニューラルネットワークの演算回数を調整することができる。よって、ニューラルネットワークの精度が目標精度を維持できる程度に、ニューラルネットワークの演算回数を低減することができる。
本実施形態に記載のニューラルネットワークの縮約装置(100)において、複数の演算器(302)を備えた演算装置(140)によるニューラルネットワークの演算回数を、ニューラルネットワークを縮約することによって低減するニューラルネットワークの縮約装置(100)であって、縮約後のニューラルネットワークの演算回数を設定する演算回数設定部(103)と、演算装置(140)によるニューラルネットワークの演算回数が、演算回数設定部(103)によって設定された演算回数と等しくなるように、ニューラルネットワークを縮約するニューラルネットワーク縮約部(104)と、ニューラルネットワークの演算処理に対する演算器(302)の割り当て数を設定する演算器割り当て部(102)と、演算器(302)の割り当て数に基づいて縮約後のニューラルネットワークの演算回数を補正する演算回数補正部(108)とを備えている。
この構成によれば、ニューラルネットワークの演算処理に対する演算器(302)の割り当て数を考慮して、縮約後のニューラルネットワークの演算処理に必要な演算回数が補正される。すなわち、ニューラルネットワークの演算処理に割り当てられた複数の演算器(302)によって同時に処理可能な1サイクル当たりの演算回数が考慮される。よって、少数の演算器だけで演算されるサイクルを無くすようにニューラルネットワークの演算回数を補正して、演算処理の処理時間を短縮すると共に複数の演算器(302)の使用効率を高めることができる。
以上、本発明の実施形態について詳述したが、本発明は、前記の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の精神を逸脱しない範囲で、種々の設計変更を行うことができるものである。例えば、前記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。さらに、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
100 ニューラルネットワークの縮約装置、102 演算器割り当て部、103 演算回数設定部、104 ニューラルネットワーク縮約部、107 認識精度検証部(精度検証部)、108 演算回数補正部、140 演算装置、302 演算器
Claims (8)
- 複数の演算器を備えた演算装置によるニューラルネットワークの演算回数を、ニューラルネットワークを縮約することによって低減するニューラルネットワークの縮約装置であって、
ニューラルネットワークの演算処理に対する前記演算器の割り当て数を設定する演算器割り当て部と、
前記演算器の割り当て数に基づいて縮約後のニューラルネットワークの演算回数を設定する演算回数設定部と、
前記演算装置によるニューラルネットワークの演算回数が、前記演算回数設定部によって設定された演算回数と等しくなるように、ニューラルネットワークを縮約するニューラルネットワーク縮約部とを備えたことを特徴とするニューラルネットワークの縮約装置。 - 前記演算回数設定部は、縮約前のニューラルネットワークの演算回数よりも小さく、かつ前記演算器割り当て部によって設定された前記演算器の割り当て数の整数倍に縮約後のニューラルネットワークの演算回数を設定することを特徴とする請求項1に記載のニューラルネットワークの縮約装置。
- 前記演算回数設定部は、前記演算器割り当て部によって設定された前記演算器の割り当て数で、縮約前のニューラルネットワークの演算回数を除算した余りが当該演算器の割り当て数の半分以上になるように、縮約後のニューラルネットワークの演算回数を設定することを特徴とする請求項1に記載のニューラルネットワークの縮約装置。
- ニューラルネットワークは複数の層を有しており、
前記演算器割り当て部はニューラルネットワークの層毎に前記演算器の割り当て数を設定し、
前記演算回数設定部はニューラルネットワークの層毎に縮約後のニューラルネットワークの演算回数を設定することを特徴とする請求項1に記載のニューラルネットワークの縮約装置。 - 前記ニューラルネットワーク縮約部はPruning処理によってニューラルネットワークを縮約することを特徴とする請求項1に記載のニューラルネットワークの縮約装置。
- 縮約後のニューラルネットワークの精度を算出して、当該精度と目標精度を比較する精度検証部を備え、
前記精度が目標精度以上の場合に前記演算器割り当て部が前記演算器の割り当て数を小さく設定し、前記精度が目標精度未満の場合に前記演算器割り当て部が前記演算器の割り当て数を大きく設定することを特徴とする請求項1から請求項5のいずれか一項に記載のニューラルネットワークの縮約装置。 - 縮約後のニューラルネットワークの精度を算出して、当該精度と目標精度を比較する精度検証部を備え、
前記精度が目標精度以上の場合に前記演算回数設定部が縮約後のニューラルネットワークの演算回数を小さく設定し、前記精度が目標精度未満の場合に前記演算回数設定部が縮約後のニューラルネットワークの演算回数を大きく設定することを特徴とする請求項1から請求項5のいずれか一項に記載のニューラルネットワークの縮約装置。 - 複数の演算器を備えた演算装置によるニューラルネットワークの演算回数を、ニューラルネットワークを縮約することによって低減するニューラルネットワークの縮約装置であって、
縮約後のニューラルネットワークの演算回数を設定する演算回数設定部と、
前記演算装置によるニューラルネットワークの演算回数が、前記演算回数設定部によって設定された演算回数と等しくなるように、ニューラルネットワークを縮約するニューラルネットワーク縮約部と、
ニューラルネットワークの演算処理に対する前記演算器の割り当て数を設定する演算器割り当て部と、
前記演算器の割り当て数に基づいて縮約後のニューラルネットワークの演算回数を補正する演算回数補正部とを備えたことを特徴とするニューラルネットワークの縮約装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019006660 | 2019-01-18 | ||
JP2019006660 | 2019-01-18 | ||
PCT/JP2020/000231 WO2020149178A1 (ja) | 2019-01-18 | 2020-01-08 | ニューラルネットワークの縮約装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2020149178A1 JPWO2020149178A1 (ja) | 2021-10-14 |
JP7104183B2 true JP7104183B2 (ja) | 2022-07-20 |
Family
ID=71613862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020566382A Active JP7104183B2 (ja) | 2019-01-18 | 2020-01-08 | ニューラルネットワークの縮約装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220036190A1 (ja) |
JP (1) | JP7104183B2 (ja) |
CN (1) | CN113272831B (ja) |
DE (1) | DE112020000202T5 (ja) |
WO (1) | WO2020149178A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220036164A1 (en) * | 2020-07-29 | 2022-02-03 | Micron Technology, Inc. | Neuromorphic memory and inference engine stacked with image sensor to reduce data traffic to host |
JP2022178980A (ja) | 2021-05-21 | 2022-12-02 | 富士通株式会社 | 機械学習プログラム、機械学習方法および情報処理装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180046919A1 (en) | 2016-08-12 | 2018-02-15 | Beijing Deephi Intelligence Technology Co., Ltd. | Multi-iteration compression for deep neural networks |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2877413B2 (ja) * | 1990-02-06 | 1999-03-31 | 富士通株式会社 | 余剰ニューロン決定処理方式 |
JPH11215380A (ja) * | 1998-01-26 | 1999-08-06 | Ricoh Co Ltd | 画像処理装置 |
JP6258560B2 (ja) * | 2015-05-27 | 2018-01-10 | 株式会社日立製作所 | ニューラルネットワークの学習装置及び学習方法 |
US10452971B2 (en) * | 2015-06-29 | 2019-10-22 | Microsoft Technology Licensing, Llc | Deep neural network partitioning on servers |
KR102415506B1 (ko) * | 2016-10-26 | 2022-07-01 | 삼성전자주식회사 | 뉴럴 네트워크 간소화 방법 및 장치 |
KR102457463B1 (ko) * | 2017-01-16 | 2022-10-21 | 한국전자통신연구원 | 희소 파라미터를 사용하는 압축 신경망 시스템 및 그것의 설계 방법 |
US10650303B2 (en) * | 2017-02-14 | 2020-05-12 | Google Llc | Implementing neural networks in fixed point arithmetic computing systems |
WO2020033898A1 (en) * | 2018-08-09 | 2020-02-13 | Board Of Trustees Of Michigan State University | Systems and methods for providing flexible, multi-capacity models for use of deep neural networks in mobile devices |
KR20200070831A (ko) * | 2018-12-10 | 2020-06-18 | 삼성전자주식회사 | 인공 신경망을 압축하기 위한 장치 및 방법 |
-
2020
- 2020-01-08 US US17/298,801 patent/US20220036190A1/en active Pending
- 2020-01-08 CN CN202080006824.3A patent/CN113272831B/zh active Active
- 2020-01-08 WO PCT/JP2020/000231 patent/WO2020149178A1/ja active Application Filing
- 2020-01-08 DE DE112020000202.0T patent/DE112020000202T5/de active Pending
- 2020-01-08 JP JP2020566382A patent/JP7104183B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180046919A1 (en) | 2016-08-12 | 2018-02-15 | Beijing Deephi Intelligence Technology Co., Ltd. | Multi-iteration compression for deep neural networks |
Non-Patent Citations (2)
Title |
---|
児島 隆生ほか,「つながるクルマ」で実現する自動運転技術 自動運転の高度化を支える知能化技術,日立評論,2017年10月20日,第99巻 第5号 ,p. 52-56 |
吉田 明正,粗粒度タスク並列処理のための階層統合型実行制御手法,情報処理学会論文誌,日本,社団法人情報処理学会,2004年12月15日,第45巻 第12号,p. 2732-2740 |
Also Published As
Publication number | Publication date |
---|---|
US20220036190A1 (en) | 2022-02-03 |
WO2020149178A1 (ja) | 2020-07-23 |
JPWO2020149178A1 (ja) | 2021-10-14 |
CN113272831A (zh) | 2021-08-17 |
CN113272831B (zh) | 2024-07-23 |
DE112020000202T5 (de) | 2021-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107609641B (zh) | 稀疏神经网络架构及其实现方法 | |
KR102555057B1 (ko) | 웨이트 매트릭스를 포맷하는 방법, 포맷된 데이터를 사용하는 가속기 및 이를 포함하는 시스템 | |
JP2020009048A (ja) | ニューラルネットワークの学習装置および学習方法 | |
CN107818367B (zh) | 用于神经网络的处理系统和处理方法 | |
JP7104183B2 (ja) | ニューラルネットワークの縮約装置 | |
KR20160117537A (ko) | 계층형 뉴럴 네트워크 장치, 판별기 학습 방법 및 판별 방법 | |
CN107967516A (zh) | 一种基于迹范数约束的神经网络的加速与压缩方法 | |
KR102214837B1 (ko) | 컨벌루션 신경망 파라미터 최적화 방법, 컨벌루션 신경망 연산방법 및 그 장치 | |
US20200210844A1 (en) | Training and application method of a multi-layer neural network model, apparatus and storage medium | |
CN113222101A (zh) | 深度学习处理装置、方法、设备和存储介质 | |
CN108304925B (zh) | 一种池化计算装置及方法 | |
CN109919312B (zh) | 卷积神经网络的运算方法、装置及dpu | |
KR102247896B1 (ko) | 학습된 파라미터의 형태변환을 이용한 컨벌루션 신경망 파라미터 최적화 방법, 컨벌루션 신경망 연산방법 및 그 장치 | |
CN108304926B (zh) | 一种适用于神经网络的池化计算装置及方法 | |
CN111144556A (zh) | 面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路 | |
CN110929854A (zh) | 一种数据处理方法、装置及硬件加速器 | |
KR102263598B1 (ko) | 파이프라인 구조를 가지는 인공신경망용 연산 가속 장치 | |
CN112561050A (zh) | 一种神经网络模型训练方法及装置 | |
TWI766203B (zh) | 用於實施神經網路應用之卷積塊陣列及其使用方法、和卷積塊電路 | |
KR101987475B1 (ko) | 하드웨어 구현에 적합한 신경망 파라미터 최적화 방법, 신경망 연산방법 및 그 장치 | |
WO2020041934A1 (zh) | 一种数据处理设备以及一种数据处理方法 | |
CN114298291A (zh) | 一种模型量化处理系统及一种模型量化处理方法 | |
CN110048844B (zh) | 实现sm2算法的多倍点计算方法、装置 | |
CN113627587A (zh) | 一种多通道式卷积神经网络加速方法及装置 | |
JP2018055570A (ja) | 演算処理装置、演算処理方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210524 |
|
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: 20220621 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220707 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7104183 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |