JP2019032833A - 固定小数点量子化ニューラルネットワークのための方法及び装置 - Google Patents

固定小数点量子化ニューラルネットワークのための方法及び装置 Download PDF

Info

Publication number
JP2019032833A
JP2019032833A JP2018144829A JP2018144829A JP2019032833A JP 2019032833 A JP2019032833 A JP 2019032833A JP 2018144829 A JP2018144829 A JP 2018144829A JP 2018144829 A JP2018144829 A JP 2018144829A JP 2019032833 A JP2019032833 A JP 2019032833A
Authority
JP
Japan
Prior art keywords
fraction length
channel
fixed
fraction
neural network
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
Application number
JP2018144829A
Other languages
English (en)
Other versions
JP7072464B2 (ja
Inventor
俊 行 李
Jun Hang Li
俊 行 李
承 遠 李
cheng yuan Li
承 遠 李
相 源 河
Sangwon Ha
相 源 河
▲うぉん▼ 祚 李
Wonjo Lee
▲うぉん▼ 祚 李
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2019032833A publication Critical patent/JP2019032833A/ja
Application granted granted Critical
Publication of JP7072464B2 publication Critical patent/JP7072464B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0495Quantised networks; Sparse networks; Compressed networks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes
    • 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
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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/0464Convolutional networks [CNN, ConvNet]
    • 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/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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/096Transfer learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Neurology (AREA)
  • Nonlinear Science (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Image Analysis (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)

Abstract

【課題】 ニューラルネットワークのパラメータを量子化する方法及び該装置を提供する。【解決手段】 ニューラルネットワークのパラメータを量子化する方法及び該装置は、事前に訓練されたニューラルネットワークのデータから浮動小数点タイプのパラメータ値に係わるチャネル別統計分布を分析し、チャネル別パラメータの固定小数点表現を決定し、バイアス及びチャネル別ウェートのフラクション長を決定し、決定されたフラクション長のバイアス及びチャネル別ウェートを有する固定小数点タイプの量子化されたニューラルネットワークを生成する。【選択図】 図8

Description

本発明は、固定小数点量子化ニューラルネットワーク(neural network)のための方法及び装置等に関する。
ニューラルネットワークは、生物学的脳をモデリングしたコンピュータ科学的アーキテクチャを参照する。最近、ニューラルネットワーク技術の発展により、多種の電子システムにおいて、ニューラルネットワークを活用して入力データが分析し、有効な情報を抽出する研究が活発に進められている。該ニューラルネットワークの処理装置は、複雑な入力データに対する多量の演算を必要とする。従って、該ニューラルネットワークを利用し、大量の入力データをリアルタイムで分析し、所望情報を抽出するためには、該ニューラルネットワークに係わる演算を効率的に処理することができる技術が要求される。
米国特許出願公開第2016/0328647号明細書
本発明が解決しようとする課題は、ニューラルネットワークのパラメータを量子化する方法及び該装置を提供するところにある。本実施形態がなすべき技術的課題は、前述のような技術的課題に限定されるものではなく、以下の実施形態から他の技術的課題が類推されもする。
一側面によれば、固定小数点で量子化されたニューラルネットワークを生成する方法は、浮動小数点を利用して事前に訓練されたニューラルネットワークのデータから、フィーチャマップ及びカーネルのそれぞれに含まれた各チャネルで利用された浮動小数点タイプのパラメータ値に係わるチャネル別統計分布を分析する段階と、前記チャネル別統計分布に基づいて、前記パラメータ値の分布範囲を統計的にカバーする前記チャネル別パラメータの固定小数点表現を決定する段階と、前記チャネル別固定小数点表現のパラメータでコンボリューション演算を行った結果に基づいて、バイアス及び前記チャネル別ウェートのフラクション長を決定する段階と、前記決定されたフラクション長の前記バイアス及び前記チャネル別ウェートを有する、固定小数点タイプの量子化されたニューラルネットワークを生成する段階と、を含む。
他の側面によれば、該装置は、少なくとも1つのプログラムが保存されたメモリと、前記少なくとも1つのプログラムを実行することにより、ニューラルネットワークのパラメータを量子化するプロセッサと、を含み、前記プロセッサは、浮動小数点を利用して事前に訓練されたニューラルネットワークのデータから、フィーチャマップ及びカーネルのそれぞれに含まれた各チャネルで利用された浮動小数点タイプのパラメータ値に係わるチャネル別統計分布を分析し、前記チャネル別統計分布に基づいて、前記パラメータ値の分布範囲を統計的にカバーする前記チャネル別パラメータの固定小数点表現を決定し、前記チャネル別固定小数点表現のパラメータでコンボリューション演算を行った結果に基づいて、バイアス及び前記チャネル別ウェートのフラクション長を決定し、前記決定されたフラクション長の前記バイアス及び前記チャネル別ウェートを有する、固定小数点タイプの量子化されたニューラルネットワークを生成する。
一実施形態による、算出グラフ(computational graph)のアーキテクチャについて説明するための図面である。 一実施形態による、ニューラルネットワークで行われる演算について説明するための図面である。 一実施形態によるニューラルネットワーク量子化装置のハードウェア構成を図示したブロック図である。 一実施形態による、事前に訓練されたニューラルネットワークを量子化し、ハードウェア加速器に採用することについて説明するための図面である。 浮動小数点及び固定小数点について説明するための図面である。 固定小数点において、フラクション長と正確度との関係について説明するための図面である。 ニューラルネットワークのパラメータが、レイヤ別に同一固定小数点表現に量子化される場合について説明するための図面である。 一実施形態によって、ニューラルネットワークのパラメータが、チャネル別に同一な固定小数点表現に量子化される場合について説明するための図面である。 一実施形態による、チャネルで利用されたパラメータの統計分布について説明するための図面である。 他の実施形態による、チャネルで利用されたパラメータの統計分布について説明するための図面である。 一実施形態によって、固定小数点タイプの一部パラメータのフラクション長を決定することについて説明するための図面である。 図11の方式を利用するニューラルネットワークパラメータの量子化アルゴリズムを図示した図面である。 他の実施形態によって、固定小数点タイプの一部パラメータのフラクション長を決定することについて説明するための図面である。 図13の方式を利用するニューラルネットワークパラメータの量子化アルゴリズムを図示した図面である。 図7で説明されたレイヤ別量子化について説明するための図面である。 一実施形態によって、量子化されたニューラルネットワークを再訓練(retrain)することについて説明するための図面である。 レイヤ別量子化とチャネル別量子化との正確度を比較したシミュレーション結果を図示した図面である。 再訓練による量子化されたニューラルネットワークの正確度変化に係わるシミュレーション結果を図示した図面である。 一実施形態による電子システムを示すブロック図である。 一実施形態による、ニューラルネットワークのパラメータを量子化する方法のフローチャートである。
本実施形態で使用される用語は、本実施形態での機能を考慮しながら、可能な限り、現在汎用されている一般的な用語を選択したが、それは、当該技術分野当業者の意図、判例、新たな技術の出現などによっても異なる。また、特定の場合、任意に選定された用語もあり、その場合、当該実施形態の説明部分で、詳細にその意味を記載する。従って、本実施形態で使用される用語は、単純な用語の名称ではなく、その用語が有する意味、及び本実施形態の全般にわたる内容を基に定義されなければならない。
一実施形態に係わる説明において、ある部分が他の部分と連結されているとするとき、それは、直接に連結されている場合だけではなく、その中間に、他の構成要素を挟んで電気的に連結されている場合も含む。また、ある部分がある構成要素を含むとするとき、それは、特別に反対となる記載がない限り、他の構成要素を除くものではなく、他の構成要素をさらに含んでもよいということを意味する。
本実施形態で使用される「構成される」または「含む」というような用語は、明細書上に記載されたさまざまな構成要素、またはさまざまな段階を必ずしもいずれも含むと解釈されるものではなく、そのうちの一部構成要素または一部段階は、含まれず、あるいは、追加的な構成要素または段階をさらに含んでもよいと解釈されるものである。
下記実施形態に係わる説明は、権利範囲を制限するものと解釈されるものではなく、当該技術分野の当業者が容易に類推することができることは、本実施形態の権利範囲に属すると解釈されなければならない。以下、添付された図面を参照しながら、ただ例示のための実施形態について詳細に説明する。
図1は、一実施形態による算出グラフ(computational graph)のアーキテクチャについて説明するための図面である。
図1を参照すれば、算出グラフ1は、ノード及びエッジを利用して表現された数学的モデルを示すグラフである。算出グラフ1のアーキテクチャは、ニューラルネットワーク(neural network)のアーキテクチャに該当するが、それ以外にも、多様なモデルを表現することができる。ここで、該ニューラルネットワークは、デープニューラルネットワーク(DNN:deep neural network)またはn階層ニューラルネットワーク(n−layers neural networks)のアーキテクチャでもある。DNNまたはn階層ニューラルネットワークは、コンボリューションニューラルネットワーク(CNN:convolutional neural networks)、リカレントニューラルネットワーク(RNN:recurrent neural networks)、deep belief networks、restricted Boltzman machinesなどにも該当する。例えば、該ニューラルネットワークは、コンボリューションニューラルネットワーク(CNN)としても具現されるが、それに制限されるものではない。図1の算出グラフ1がコンボリューションニューラルネットワークを表現するものである場合、算出グラフ1は、コンボリューションニューラルネットワークのうち一部のレイヤにも該当する。従って、算出グラフ1は、コンボリューションニューラルネットワークの、コンボリューションレイヤ、プーリングレイヤ(pooling layer)、フリーコネクテッド(fully connected)レイヤなどにも該当する。ただし、以下では、便宜上、算出グラフ1がコンボリューションニューラルネットワークのコンボリューションレイヤに該当すると仮定して説明するが、それに制限されず、算出グラフ1は、他の数学的モデルの表現にも該当する。
コンボリューションレイヤにおいて、第1フィーチャマップFM(feature map)1は、入力フィーチャマップに該当し、第2フィーチャマップFM2は、出力フィーチャマップにも該当する。該フィーチャマップは、入力データの多様な特徴が表現されたデータセットを意味する。フィーチャマップFM1,FM2は、二次元以上の高次元マトリックスでもあり、それぞれのアクチベーション(activation)パラメータを有する。フィーチャマップFM1,FM2が、例えば、三次元フィーチャマップに該当する場合、フィーチャマップFM1,FM2は、幅W(または、カラムともいう)、高さH(または、ロウともいう)及び深さDを有する。このとき、深さDは、チャネルの個数とも呼ばれる。
コンボリューションレイヤにおいて、第1フィーチャマップFM1及びウェートマップWMに対するコンボリューション演算が行われ、その結果、第2フィーチャマップFM2が生成される。ウェートマップWMは、第1フィーチャマップFM1をフィルタリングし、フィルタまたはカーネル(kernel)と呼ばれる。ウェートマップWMの深さ、すなわち、ウェートマップWMのチャネル個数は、第1フィーチャマップFM1の深さと、第2フィーチャマップFM2の深さとを乗じた値、すなわち、第1フィーチャマップFM1のチャネル個数と、第2フィーチャマップFM2のチャネル個数とを乗じた値と同一である。ただし、ウェートマップWMが四次元マトリックスであり、カーネルの大きさ(kernel size)がkである場合、ウェートマップWMのチャネル個数は「(第1フィーチャマップFM1の深さ)*(第2フィーチャマップFM2の深さ)*k*k」のようにも計算される。ウェートマップWMは、第1フィーチャマップFM1をスライディングウィンドウ方式で横切るようにシフトされる。各シフトの間、ウェートマップWMに含まれるウェートそれぞれが、第1フィーチャマップFM1と重畳された領域での全てのフィーチャ値と乗じられて加えられる。第1フィーチャマップFM1とウェートマップWMとがコンボリューションされることにより、第2フィーチャマップFM2の1つのチャネルが生成される。図1には、1つのウェートマップWMが表示されているが、実質的には、複数のウェートマップが、第1フィーチャマップFM1とコンボリューションされ、第2フィーチャマップFM2の複数のチャネルが生成される。
一方、コンボリューションレイヤの第2フィーチャマップFM2は、次のレイヤの入力フィーチャマップにもなる。例えば、第2フィーチャマップFM2は、プーリング(pooling)レイヤの入力フィーチャマップにもなる。
図2は、一実施形態による、ニューラルネットワークで行われる演算について説明するための図面である。
図2を参照すれば、ニューラルネットワーク2は、入力レイヤ、ヒドゥンレイヤ(又は隠れレイヤ)及び出力レイヤを含む構造を有し、受信される入力データ(例えば、I1及びI2)を基に演算を行い、該遂行結果を基に、出力データ(例えば、O1及びO2)を生成することができる。
ニューラルネットワーク2は、前述のように、2個以上のヒドゥンレイヤを含むDNNまたはn階層ニューラルネットワークでもある。例えば、図2に図示されているように、ニューラルネットワーク2は、入力レイヤLayer 1、2個のヒドゥンレイヤLayer 2及びLayer 3、並びに出力レイヤLayer 4を含むDNNでもある。ニューラルネットワーク2がDNNアーキテクチャに具現された場合、有効な情報を処理することができるさらに多くのレイヤを含むので、ニューラルネットワーク2は、シングルレイヤを有するニューラルネットワークより複雑なデータ集合を処理することができる。一方、ニューラルネットワーク2は、4個のレイヤを含むように図示されているが、それは、例示に過ぎず、ニューラルネットワーク2は、さらに少ないか、多くのレイヤを含むか、あるいはさらに少ないか、多くのチャネルを含んでもよい。すなわち、ニューラルネットワーク2は、図2に図示されたところとは異なる、多様な構造のレイヤを含んでもよい。
ニューラルネットワーク2に含まれたレイヤそれぞれは、複数のチャネルを含んでもよい。該チャネルは、ニューロン(neuron)、プロセッシングエレメント(PE:processing element)、ユニット(unit)、またはそれと類似した用語で知られた、複数の人工ノード(artificial node)にも該当する。例えば、図2に図示されているように、Layer 1及びLayer 4のそれぞれは、2個のチャネル(ノード)を含み、Layer 2及びLayer 3は、それぞれ3個のチャネルを含んでもよい。ただし、それは、例示に過ぎず、ニューラルネットワーク2に含まれたレイヤは、それぞれ多様な個数のチャネル(ノード)を含んでもよい。
ニューラルネットワーク2のレイヤそれぞれに含まれたチャネルは、互いに連結されてデータを処理することができる。例えば、1つのチャネルは、他のチャネルからデータを受信して演算することができ、演算結果をさらに他のチャネルに出力することができる。
チャネルそれぞれの入力及び出力は、入力アクチベーション及び出力アクチベーションとも称される。すなわち、該アクチベーションは、1チャネルの出力であると同時に、次のレイヤに含まれたチャネルの入力に該当するパラメータでもある。一方、該チャネルそれぞれは、以前レイヤに含まれたチャネルから受信されたアクチベーション及びウェートに基づいて、自体のアクチベーションを決定することができる。該ウェートは、各チャネルでの出力アクチベーションを計算するために利用されるパラメータであり、チャネル間の連結関係に割り当てられる値でもある。
該チャネルそれぞれは、入力を受信し、出力アクチベーションを出力する演算ユニット(computational unit)またはプロセッシングエレメント(PE)によっても処理され、チャネルそれぞれの入出力は、マッピングされる。例えば、σは、アクチベーション関数(activation function)であり、Wi jkは、(i−1)番目レイヤに含まれたk番目チャネルから、i番目レイヤに含まれたj番目チャネルへのウェートであり、bi jは、i番目レイヤに含まれたj番目チャネルのバイアス(bias)であり、ai jは、i番目レイヤのj番目チャネルのアクチベーションであるとするとき、アクチベーションai jは、次のような数式(1)を利用しても計算される。
図2に図示されているように、2番目レイヤLayer 2の最初チャネルCH1のアクチベーションは、a2 1とも表現される。また、a2 1は、数式(1)により、
a2 1=σ(W2 1,1×a1 1+W2 1,2×a1 2+b2 1)
の値を有することができる。ただし、前述の数式(1)は、ニューラルネットワーク2において、データを処理するために利用されるアクチベーション及びウェートについて説明するための例示であるのみ、それに制限されるものではない。該アクチベーションは、以前レイヤから受信されたアクチベーションの和(sum)にアクチベーション関数を適用した値を、ReLU(rectified linear unit)を通過させることによって獲得された値でもある。
前述のように、ニューラルネットワーク2においては、数多くのデータ集合が相互連結された複数のチャネル間で交換され、レイヤを通過しながら数多くの演算過程を経る。従って、複雑な入力データの処理に必要な演算量を低減させながらも、正確度損失を最小化させることができる技術が要求される。
図3は、一実施形態によるニューラルネットワーク量子化装置のハードウェア構成を図示したブロック図である。
図3を参照すれば、ニューラルネットワーク量子化装置10は、プロセッサ110及びメモリ120を含む。図3に図示されたニューラルネットワーク量子化装置10には、本実施形態に係わる構成要素だけが図示されている。従って、ニューラルネットワーク量子化装置10には、図3に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、当業者に自明であろう。
ニューラルネットワーク量子化装置10は、ニューラルネットワークを生成するか、ニューラルネットワークを訓練(train)(または、学習(learn))するか、浮動小数点タイプのニューラルネットワークを固定小数点タイプのニューラルネットワークに量子化するか、あるいはニューラルネットワークを再訓練(retrain)する機能のような多様なプロセッシング機能を有するコンピュータデバイスに該当する。例えば、ニューラルネットワーク量子化装置10は、PC(personal computer)、サーバデバイス、モバイルデバイスなどの多種のデバイスによっても具現される。
プロセッサ110は、ニューラルネットワーク量子化装置10を制御するための全般的な機能を遂行する役割を行う。例えば、プロセッサ110は、ニューラルネットワーク量子化装置10内のメモリ120に保存されたプログラムを実行することにより、ニューラルネットワーク量子化装置10を全般的に制御する。プロセッサ110は、ニューラルネットワーク量子化装置10内に具備されたCPU(central processing unit))、GPU(graphics processing unit)、AP(application processor)などによっても具現されるが、それらに制限されるものではない。
メモリ120は、ニューラルネットワーク量子化装置10内で処理される各種データを保存するハードウェアであり、例えば、メモリ120は、ニューラルネットワーク装置10で処理されたデータ、及び処理されるデータを保存することができる。また、メモリ120は、ニューラルネットワーク量子化装置10によって駆動されるアプリケーション、ドライバなどを保存することができる。メモリ120は、DRAM(dynamic random access memory)でもあるが、それに限定されるのではない。メモリ120は、揮発性メモリ(volatile memory)または不揮発性メモリ(nonvolatile memory)のうち少なくとも一つを含んでもよい。該不揮発性メモリは、ROM(read-only memory)、PROM(programmable read-only memory)、EPROM(electrically programmable read only memory)、EEPROM(electrically erasable programmable read-only memory)、フラッシュメモリ、PRAM(phase-change random access memory)、MRAM(magnetic random access memory)、RRAM(登録商標(resistive random access memory))、FRAM(登録商標(ferroelectric random access memory))などを含む。揮発性メモリは、DRAM(dynamic random access memory)、SRAM(static random access memory)、SDRAM(synchronous dynamic random access memory)などを含む。一実施形態において、メモリ120は、HDD(hard disk drive)、SSD(solid-state drive)、CF(compact flash)、SD(secure digital)、Micro−SD(micro secure digital)、Mini−SD(mini secure digital)、xD(extreme digital)またはMemory Stickのうち少なくとも一つを含んでもよい。
プロセッサ110は、与えられた初期ニューラルネットワークを反復的に訓練(学習)させることにより、訓練されたニューラルネットワークを生成することができる。このとき、初期ニューラルネットワークは、ニューラルネットワークの処理正確度確保次元で、浮動小数点タイプのパラメータ、例えば、32ビット浮動小数点精密度(32bit floating point precision)のパラメータを有することができる。ここで、該パラメータは、例えば、ニューラルネットワークの入出力アクチベーション、ウェート、バイアスなどニューラルネットワークに入出力される多種のデータを含んでもよい。該ニューラルネットワークの反復的な訓練が進められることにより、該ニューラルネットワークの浮動小数点パラメータは、与えられた入力に対して、さらに正確な出力を演算するために調整される(tuned)。
ただし、該浮動小数点は、固定小数点に比べ、相対的に多くの演算量と、多くのメモリアクセス頻度とが要求される。特に、該ニューラルネットワークの処理に必要となる演算量のほとんどは、多様なパラメータの演算を行うコンボリューション演算と知られている。従って、比較的処理性能が低いスマートフォン・タブレットPC・ウェアラブルデバイスのようなモバイルデバイス、埋め込み(embedded)デバイスなどでは、浮動小数点タイプのパラメータを有するニューラルネットワークの処理が円滑には進行しないことが懸念される。結局、かようなデバイスにおいて、演算量を十分に低減させながら、許容可能な正確度損失内において、ニューラルネットワークを駆動させるためには、該ニューラルネットワークで処理される浮動小数点タイプのパラメータは、量子化されることが望ましい。ここで、該パラメータ量子化は、浮動小数点タイプのパラメータを、固定小数点タイプのパラメータに変換することを意味する。
ニューラルネットワーク量子化装置10は、該ニューラルネットワークが採用される(deployed)デバイス(例えば、モバイルデバイス、埋め込みデバイスなど)の処理性能を考慮し、訓練されたニューラルネットワークのパラメータを、所定ビットの固定小数点タイプに変換する量子化を行い、ニューラルネットワーク量子化装置10は、量子化されたニューラルネットワークを採用するデバイスに伝達する。該ニューラルネットワークが採用されるデバイスは、具体的な例示として、該ニューラルネットワークを利用した音声認識・映像認識などを行う自律走行自動車、ロボティックス、スマートフォン、タブレットデバイス、AR(augmented reality)デバイス、IoT(internet of things)デバイスなどでもあるが、それらに制限されるものではない。
プロセッサ110は、メモリ120に保存された、浮動小数点を利用して事前に訓練された(pre-trained)ニューラルネットワークのデータを獲得する。事前に訓練されたニューラルネットワークは、浮動小数点タイプのパラメータで反復的に訓練されたデータでもある。該ニューラルネットワークの訓練は、訓練セット(train set)データを入力とし、まず反復的に訓練され、続いてテストセット(test set)データでさらに反復的に訓練されたものでもあるが、必ずしもそれらに制限されるものではない。該訓練セットデータは、該ニューラルネットワークを訓練させるための入力データであり、該テストセットデータは、該訓練セットデータと重ならない入力データであり、該訓練セットデータで訓練されたニューラルネットワークの性能を測定しながら訓練させるためのデータである。
プロセッサ110は、事前に訓練されたニューラルネットワークデータから、フィーチャマップ及びカーネルのそれぞれに含まれた各チャネルで利用された浮動小数点タイプのパラメータ値に係わるチャネル別統計分布を分析する。このとき、プロセッサ110は、該ニューラルネットワークが事前に訓練される間、各チャネルで利用された浮動小数点タイプのアクチベーション、ウェート及びバイアスのパラメータ値に係わるチャネル別統計量を求めることにより、統計分布を分析することができる。
プロセッサ110は、分析されたチャネル別統計分布に基づいて、パラメータ値の分布範囲を統計的にカバーする、チャネル別パラメータの固定小数点表現を決定する。それにより、浮動小数点タイプのニューラルネットワークは、固定小数点タイプのニューラルネットワークに変換される。本実施形態によれば、浮動小数点タイプから固定小数点タイプへの変換は、各チャネルに対する統計分布に基づいて行われるので、各チャネルに割り当てられた固定小数点表現は、チャネルごとに同じであっても互いに異なっていてもよい。すなわち、チャネル別パラメータの固定小数点表現の少数部分又はフラクション長(fraction length)がまちまちでもある。
さらに、プロセッサ110は、チャネル別固定小数点表現のパラメータで、フィーチャマップとカーネルとのコンボリューション演算を行った結果に基づいて、バイアス及びチャネル別ウェートのフラクション長を決定する。一方、バイアスのフラクション長、及びチャネル別ウェートのフラクション長は量子化されたニューラルネットワークの制約条件(constraint)にも設定される。
プロセッサ110により、各チャネル別パラメータが固定小数点タイプに量子化されるアルゴリズムについては、以下、当該図面(例えば、図11ないし図14)を参照し、具体的に説明する。
一方、メモリ120は、例えば、訓練されていない初期ニューラルネットワークデータ、訓練過程で生成されたニューラルネットワークデータ、全ての訓練が完了したニューラルネットワークデータ、量子化されたニューラルネットワークデータなど、プロセッサ110によって処理されるか、あるいは処理されたニューラルネットワーク関連データセットを保存することができ、またプロセッサ110によって実行されるニューラルネットワークの訓練アルゴリズム、量子化アルゴリズムなどに係わる多様なプログラムを保存することができる。
図4は、一実施形態による、事前に訓練されたニューラルネットワークを量子化し、ハードウェア加速器に採用することについて説明するための図面である。
図4を参照すれば、前述のように、PC、サーバのようなニューラルネットワーク量子化装置10(図3)において、プロセッサ110(図3)は、浮動小数点タイプ(例えば、32ビット浮動小数点タイプ)のニューラルネットワーク410を訓練する(図4左側)。事前に訓練されたニューラルネットワーク410自体は、浮動小数点タイプのパラメータにより、低電力または低性能のハードウェア加速器で効率的には処理されないので、ニューラルネットワーク量子化装置10のプロセッサ110は、浮動小数点タイプのニューラルネットワーク410を、固定小数点タイプ(例えば、16ビット以下の固定小数点タイプ)のニューラルネットワーク420に量子化する。該ハードウェア加速器は、ニューラルネットワーク420の駆動のための専用ハードウェアであり、比較的、低電力または低性能に具現されるために、浮動小数点演算よりは、固定小数点演算により、適切に具現される。該ハードウェア加速器は、例えば、ニューラルネットワーク駆動のための専用モジュールであるNPU(neural processing unit)、TPU(tensor processing unit)、Neural Engineなどに該当するが、それらに制限されるものではない。
量子化されたニューラルネットワーク420を駆動するハードウェア加速器は、ニューラルネットワーク量子化装置10とは別途の独立したデバイスによっても具現される。しかし、それに制限されるものではなく、該ハードウェア加速器は、ニューラルネットワーク量子化装置10と同一装置内にも具現される。
図5は、浮動小数点及び固定小数点について説明するための図面である。
図5の浮動小数点例示510を参照すれば、該浮動小数点値は、a×2の形式によっても表現され、ここで、aは、仮数部(fraction part)、bは、指数部(exponent)に該当する。該浮動小数点値は、1ビットの符号ビット(sign)、8ビットの指数部ビット、及び23ビットの仮数部ビットを含む32ビットによって表現されてもよい。
次に、固定小数点例示520を参照すれば、固定小数点は、「Qm.n」とも表現される(m、nは、自然数である)。ここで、「m」は、指数部を示すビットの個数であり、「n」は、仮数部を示すビットの個数である。従って、固定小数点のビット幅(bit width)は、符号の1ビット、指数部のmビット、及び仮数部のnビットを合わせ、1+m+nである。該固定小数点ビットのうち仮数部を示すビットは、nビットであるので、フラクション長は、nである。例えば、「Q3.4」は、符号1ビット、指数部3ビット及び仮数部4ビットを有する総8ビットの固定小数点値であり、「Q1.30」は、符号1ビット、指数部1ビット及び仮数部30ビットを有する総32ビットの固定小数点値であり、「Q15.16」は、符号1ビット、指数部15ビット及び仮数部16ビットを有する総32ビットの固定小数点値である。
図6は、固定小数点において、フラクション長と正確度との関係について説明するための図面である。
図6を参照すれば、固定小数点に割り当てられた全てビット幅が3ビットであると仮定し、フラクション長が0であるQ2.0の固定小数点表現610と、フラクション長が1であるQ1.1の固定小数点表現620との比較が説明されている。
Q2.0は、指数部が2ビットであり、仮数部が0ビットであるので、−4から3までの固定小数点値が表現され、表現可能な固定小数点値間の間隔は、1である。そして、Q1.1は、指数部が1ビットであり、仮数部が1ビットであるので、−2から1.5までの固定小数点値が表現され、表現可能な固定小数点値間の間隔は、0.5である。
比較すれば、Q2.0の固定小数点表現610と、Q1.1の固定小数点表現620は、同じビット数(即ち、3ビット)が割り当てられているが、Q2.0は、より広範囲の固定小数点値の表現が可能である代わりに、固定小数点値間の間隔が広いので、正確度は低い。相対的に、Q1.1は、より狭い範囲の固定小数点値しか表現できないがその代わりに、固定小数点値間の間隔が狭いので、正確度は高い。結局、固定小数点値の正確度は、フラクション長、すなわち、フラクションビットの割り当て個数に依存するという点が分かる。
図7は、ニューラルネットワークのパラメータが、レイヤ別に同一固定小数点表現に量子化される場合について説明するための図面である。
図7を参照すれば、ニューラルネットワーク700のk番目レイヤには、複数のチャネルが含まれ、多様な浮動小数点値710が利用される。もしk番目レイヤで利用された浮動小数点値710のうち、最大浮動小数点値712を基準に、固定小数点量子化が行われるのであるならば、最小浮動小数点値714から量子化された固定小数点表現に係わる正確度は、非常に低くなってしまう。反対に、最小浮動小数点値714を基準に、固定小数点量子化が行われるのであるならば、最大浮動小数点値712から量子化された固定小数点表現に係わる正確度も、非常に低くなってしまう。従って、レイヤ別(すなわち、レイヤに含まれたチャネル全て)同一固定小数点表現に量子化が行われる場合、すなわち、レイヤ別同一フラクション長を有する固定小数点表現に量子化が行われる場合には、量子化されたニューラルネットワークの正確度が低くなってしまう。
図8は、一実施形態によって、ニューラルネットワークのパラメータがチャネル別に同一な固定小数点表現に量子化される場合について説明するための図面である。
図8を参照すれば、ニューラルネットワークのレイヤそれぞれに含まれたチャネル別固定小数点量子化が行われる。例えば、あるレイヤにおいて、チャネル1で利用された浮動小数点パラメータの値の分布範囲と、チャネル2で利用された浮動小数点パラメータの値の分布範囲は、異なる。従って、チャネル1及びチャネル2それぞれの浮動小数点パラメータが互いに異なるフラクション長を有する固定小数点表現のパラメータに量子化されるならば、図7で説明された正確度損失が取り返される。
従って、図3のプロセッサ110は、チャネル1の浮動小数点パラメータを、チャネル1の浮動小数点パラメータ値の分布範囲が統計的にカバーされるフラクション長の固定小数点表現に量子化する。また、プロセッサ110は、残りチャネルそれぞれの浮動小数点パラメータも残りチャネルそれぞれの浮動小数点パラメータ値が統計的にカバーされることができるフラクション長の固定小数点表現に量子化する。すなわち、浮動小数点タイプのパラメータを固定小数点タイプのパラメータに量子化することは、ニューラルネットワークのレイヤに含まれたチャネル単位で行われる。プロセッサ110は、事前に訓練されたニューラルネットワークに対して、かような方式のチャネル別量子化を行う。
図9は、一実施形態による、チャネルで利用されたパラメータの統計分布について説明するための図面である。
図9を参照すれば、浮動小数点タイプのパラメータを有するニューラルネットワークの反復的な訓練により、レイヤに含まれたそれぞれのチャネルごとに固有の浮動小数点値(すなわち、パラメータ値)の分布が生成される。図3のプロセッサ110は、事前に訓練されたニューラルネットワークデータから、フィーチャマップの各チャネル別、カーネルの各チャネル別に、浮動小数点タイプのパラメータ値の統計量に基づいたチャネル別統計分布を分析する。具体プロセッサ110は、各チャネル別に、アクチベーション、ウェート及びバイアスの値に係わる統計量を求め、各チャネル別に、統計量を各チャネル別の正規分布(ガウシアン分布)900の確率密度関数(PDF)で正規化する。ただし、図9においては、便宜上、プロセッサ110が統計量を正規分布900の確率密度関数(PDF)で正規化することを例として挙げたが、それに制限されるのではない。すなわち、プロセッサ110は、正規分布900ではない他の多種の統計分布または確率分布を利用して、統計量が分析することができる。図9の正規分布900は、あるフィーチャマップに含まれた1チャネルでの浮動小数点タイプのアクチベーション値の分布でもあり、あるいはあるカーネルに含まれた1チャネルでの浮動小数点タイプのウェート値の分布でもある。
プロセッサ110は、正規分布900に基づいて、当該チャネルのパラメータを、いかなるフラクション長を有する固定小数点表現に量子化するかということに係わる量子化レベルを判断することができる。具体的には、プロセッサ110は、正規分布900において、パラメータの統計的最大値Xmax及び統計的最小値Xminを求め、該統計的最大値Xmaxと統計的最小値Xminとの範囲の浮動小数点値を統計的にカバーすることができる固定小数点表現を決定することができる。このとき、該フラクション長は、量子化レベルによって共に決定される。
統計的最大値Xmax及び統計的最小値Xminは、量子化エラー(quantization error)を最小化させることができる範囲に基づいた値でもある。本実施形態によれば、統計的最大値Xmax及び統計的最小値Xminは、多様に定義される。例えば、統計的最大値Xmax及び統計的最小値Xminは、正規分布900において、パラメータの実際最大パラメータ値及び実際最小パラメータ値にも該当する。または、統計的最大値Xmax及び統計的最小値Xminは、正規分布900の平均、分散または標準偏差などを基準に、求めた、確率的に量子化エラーを最小化させる上限及び下限の範囲でもある。一方、与えられた正規分布の確率密度関数から、量子化エラーを最小化させるための最適範囲を計算する方式は、当該技術分野に多く紹介されており、本実施形態は、かような方式を適用して与えられた正規分布900に適する固定小数点表現を決定することができる。
図10は、他の実施形態による、チャネルで利用されたパラメータの統計分布について説明するための図面である。
図10を参照すれば、図9の正規分布900の代わりに、プロセッサ110は、各チャネル別に、統計量を各チャネル別ラプラス分布1000の確率密度関数(PDF)で正規化することができる。プロセッサ110は、図9で説明したところと同様に、与えられたラプラス分布1000に適する統計的最大値Xmax及び統計的最小値Xminを求めることにより、当該チャネルのパラメータに係わる固定小数点表現を決定することができる。
すなわち、プロセッサ110は、図9または図10での説明のように、チャネル別統計分布を分析し、分析されたチャネル別統計分布に基づいて、浮動小数点タイプのニューラルネットワークパラメータから、チャネル別パラメータの固定小数点表現を決定する。プロセッサ110によって利用される統計分布は、正規分布及びラプラス分布のうちいずれか一つに近似化された分布に対応する。ただし、前述のように、プロセッサ110は、正規分布及びラプラス分布以外にも、他の多種の統計分布または確率分布を利用して、統計量が分析することができる。このとき、プロセッサ110は、チャネル別統計分布から獲得された当該チャネルに分布したパラメータの浮動小数点値に係わる平均、分散、標準偏差、最大値、最小値のうち少なくとも一つを利用して定義されたチャネル別フラクション長に基づいて、固定小数点表現を決定することができる。
図11は、一実施形態によって、固定小数点タイプの一部パラメータのフラクション長を決定することについて説明するための図面である。
図3のプロセッサ110は、図8ないし図10で説明されたニューラルネットワークのパラメータの固定小数点表現の決定後、バイアス1110のフラクション長を決定することができる。
図11を参照すれば、あるレイヤの第1チャネル及び第2チャネルにおいて、コンボリューション演算が行われることが例示されている。コンボリューション演算は、MAC(multiply-accumulate)演算及びAdd演算を行う、複数のチャネル間の部分和演算を含む。一方、入力フィーチャマップ(IFM)及びカーネルについては、16ビットが割り当てられ、部分和演算については、48ビットが割り当てられ、出力フィーチャマップ演算(OFM)には、16ビットが割り当てられ、出力フィーチャマップ(OFM−FW)には、48ビットが割り当てられたと仮定する。
図11の部分和演算は、入力フィーチャマップ(IFM)の第1チャネルの第1入力アクチベーションi、及びカーネルの第1チャネルの第1ウェートw11に対する第1 MAC演算1101;入力フィーチャマップ(IFM)の第2チャネルの第2入力アクチベーションi、及びカーネルの第2チャネルの第2ウェートw12に対する第2 MAC演算1102;並びに第1 MAC演算1101の結果と、第2 MAC演算1102の結果とに対するAdd演算1105を含む。ただし、図11においては、入力フィーチャマップ(IFM)の全てのチャネルと、カーネルの全てのチャネルとの演算について図示されるものではなく、説明の便宜上、一部チャネル間の演算について図示されているということは、当該技術分野の当業者であるならば、理解することができるであろう。
第1入力アクチベーションiは、Q9.6の固定小数点表現に量子化され、第1ウェートw11は、Q11.4の固定小数点表現に量子化され、第2入力アクチベーションiは、Q11.4の固定小数点表現に量子化され、第2ウェートw12は、Q7.8の固定小数点表現に量子化されたと仮定する。
プロセッサ110は、第1 MAC演算1101を行うことにより、第1 MAC演算1101の結果に対応する第1固定小数点表現Q37.10、及びその第1フラクション長10を獲得する。また、プロセッサ110は、第2 MAC演算1102を行うことにより、第2 MAC演算1102の結果に対応する第2固定小数点表現Q35.12、及びその第2フラクション長12を獲得する。
プロセッサ110は、第1フラクション長及び第2フラクション長のうち最長フラクション長を、Add演算1105の結果に対応するバイアス1110のフラクション長と決定する。それにより、第1固定小数点表現及び第2固定小数点表現のうち、さらに短いフラクション長を有する固定小数点表現のフラクション長は、第1フラクション長及び第2フラクション長の差ほどビットシフティングされる。
具体的には、プロセッサ110は、最長フラクション長である第2フラクション長12を、バイアス1110のフラクション長と決定する。プロセッサ110は、Add演算1105のために、最短フラクション長を有する第1固定小数点表現Q37.10の第1フラクション長10を、フラクション長差2ほどビットシフティングする。
図11によれば、MAC演算1101,1102の結果に対するビットシフティングが要求されるが、プロセッサ110は、1以上のビットシフタ1103,1104を具備することができる。
プロセッサ110は、バイアスのフラクション長を決定し、Add演算1105を介して、固定小数点表現Q35.12を決定し、ビットシフティング1106を介して、出力フィーチャマップの出力アクチベーションOの固定小数点表現Q9.6を求める。
図11の実施形態によれば、プロセッサ110によって決定されたバイアスのフラクション長は、MAC演算の結果として求めた固定小数点表現のフラクション長のうち最長フラクション長に対応する。ただし、図11において、別途に図示されていないが、もしフラクション長の上限が事前に定義されている場合には、最長フラクション長と、既定義のフラクション長の上限のうちさらに小さい値にフラクション長が決定されもする(図12の1206段階ないし1208段階参照)。
結局、プロセッサ110は、第1ウェートw11の固定小数点表現(Q11.4)及びフラクション長4、第2ウェートw12の固定小数点表現(Q7.8)及びフラクション長8、バイアス1110の固定小数点表現(Q35.12)及びフラクション長12、並びにビットシフトのビットシフティングの程度(2ビットのビットシフティング1103、0ビットのビットシフティング1104、6ビットのビットシフティング1106に係わる情報を含む、量子化されたニューラルネットワークのデータを生成する。
一方、図11においては、2個のチャネルだけが図示されたが、さらに多くのチャネルが存在する場合についても、図11の方式が適用される。
図12は、図11の方式を利用するニューラルネットワークパラメータの量子化アルゴリズムを図示した図面である。
図12を参照すれば、量子化アルゴリズム1200においては、バイアスのフラクション長を決定するために、図11で説明された方式が利用される。
1201段階において、図3のプロセッサ110は、入力として、事前に訓練されたニューラルネットワークデータのニューラルネットワークアーキテクチャデータ、ニューラルネットワークパラメータデータ(アクチベーション、ウェート、バイアスなど)、訓練データを獲得する。
1202段階において、プロセッサ110は、カーネルの各チャネル別ウェートの統計量、フィーチャマップの各チャネル別アクチベーションの統計量などに係わる統計分布の分析結果を出力する。
1203段階において、プロセッサ110は、入力として、チャネル別フラクション長を決定してパラメータを量子化するために、1202段階で獲得された出力結果を獲得する。
1204段階において、プロセッサ110は、統計分布の分析結果に基づいて、チャネル別ウェートのフラクション長を計算し、それにより、浮動小数点タイプのウェートを、固定小数点タイプのウェートに変換する。また、プロセッサ110は、統計分布の分析結果に基づいて、チャネル別アクチベーションのフラクション長を計算し、それにより、浮動小数点タイプのアクチベーションを、固定小数点タイプのアクチベーションに変換する。
1205段階において、プロセッサ110は、各チャネル別にMAC演算を行い、各チャネル別フラクション長を獲得する。
1206段階において、プロセッサ110は、各チャネル別に、MAC演算によるフラクション長のうち最長フラクション長を、Add演算の結果に対応するフラクション長と決定する。もしフラクション長の上限が事前に定義されている場合には、最長フラクション長と既定義のフラクション長との上限のうちさらに小さい値に、Add演算の結果に対応するフラクション長を決定する。
1207段階において、プロセッサ110は、1206段階で決定されたフラクション長を、バイアスのフラクション長と決定する。
1208段階において、プロセッサ110は、バイアスの決定されたフラクション長により、各チャネル別フラクション長をそれぞれビットシフティングする。
1209段階において、プロセッサ110は、出力フィーチャマップ(OFM)に割り当てられたビット数により、バイアスのフラクション長をビットシフティングする。それにより、出力アクチベーションのフラクション長が決定される。
1210段階において、プロセッサ110は、入力フィーチャマップ(IFM)の各チャネル別フラクション長、出力フィーチャマップ(OFM)の各チャネル別フラクション長、カーネルの各チャネル別フラクション長、バイアスのフラクション長、1208段階でのビットシフティング回数、1209段階でのビットシフティング回数などを出力する。
1211段階において、プロセッサ110は、カーネルの各チャネル別フラクション長、及びバイアスのフラクション長を獲得する。
1212段階において、プロセッサ110は、ニューラルネットワークのパラメータを固定小数点タイプに量子化し、固定小数点タイプに量子化されたパラメータ(ウェート、バイアス)を出力する。
1213段階及び1214段階において、プロセッサ110は、量子化されたニューラルネットワークの正確度を検証する(test)。
図13は、他の実施形態によって、固定小数点タイプの一部パラメータのフラクション長を決定することについて説明するための図面である。
図3のプロセッサ110は、図8ないし図10で説明されたニューラルネットワークのパラメータの固定小数点表現の決定後、バイアス1310のフラクション長、及びウェート1330のフラクション長を決定することができる。一方、図13によるフラクション長の決定方式は、図11のビットシフタ1103,1104のビットシフティングが要求されないので、図11及び図12で説明した方式と違いがある。
図13において、第1 MAC演算1301及び第2 MAC演算1302により、第1固定小数点表現Q37.10と第2固定小数点表現Q35.12とが獲得されるまでの処理過程は、図11で説明された通りである。
図13を参照すれば、図11と異なり、プロセッサ110は、第1フラクション長及び第2フラクション長のうち最短フラクション長10を、Add演算1303の結果に対応するバイアス1310のフラクション長と決定する。それにより、プロセッサ110は、既存第2固定小数点表現Q35.12は、新たな第2固定小数点表現1320 Q37.10に調整されると決定し、既存第2ウェートW12の既存固定小数点表現Q7.8は、新たな固定小数点表現Q9.6に調整されると決定する。すなわち、バイアス1310の決定されたフラクション長に係わる情報が逆伝播され、それにより、ウェート1330は、新たなフラクション長に量子化される。
ビットシフティング1304は、図11で説明されたところと同一に行われる。
図13の他の実施形態によれば、プロセッサ110によって決定されたバイアスのフラクション長は、MAC演算の結果として求めた固定小数点表現のフラクション長のうち最短フラクション長に対応する。
結局、プロセッサ110は、第1ウェートw11の固定小数点表現(Q11.4)及びフラクション長4;第2ウェート1330w12の固定小数点表現(Q9.6)及びフラクション長6、バイアス1310の固定小数点表現(Q37.10)及びフラクション長10;並びにビットシフトのビットシフティングの程度(4ビットのビットシフティング1304)に係わる情報を含む、量子化されたニューラルネットワークのデータを生成する。
一方、図13においては、2個のチャネルだけが図示されたが、さらに多くのチャネルが存在する場合についても、図13の方式が適用される。
図14は、図13の方式を利用するニューラルネットワークパラメータの量子化アルゴリズムを図示した図面である。
図14を参照すれば、量子化アルゴリズム1400においては、バイアスのフラクション長を決定するために、図13で説明された方式が利用される。
1401段階ないし1405段階は、図12の1201段階ないし1205段階に係わる説明と類似して遂行される。
1406段階において、プロセッサ110は、各チャネル別MAC演算によるフラクション長のうち最短フラクション長を、Add演算の結果に対応するフラクション長と決定する。
1407段階において、プロセッサ110は、1406段階で決定されたフラクション長を、バイアスのフラクション長と決定する。
1408段階において、プロセッサ110は、バイアスの決定されたフラクション長により、各チャネル別ウェートのフラクション長をそれぞれ調整することにより、各チャネル別ウェートのフラクション長をアップデートする。
1409段階において、プロセッサ110は、出力フィーチャマップ(OFM)に割り当てられたビット数により、バイアスのフラクション長をビットシフティングする。それにより、出力アクチベーションのフラクション長が決定される。
1410段階において、プロセッサ110は、入力フィーチャマップ(IFM)の各チャネル別フラクション長、出力フィーチャマップ(OFM)の各チャネル別フラクション長、カーネルの各チャネル別フラクション長、バイアスのフラクション長、1409段階でのビットシフティング回数などを出力する。
1411段階ないし1414段階は、図12の1211段階ないし1214段階に係わる説明と類似して遂行される。
一方、プロセッサ110は、図11及び図12のアルゴリズム方式、及び図13及び図14のアルゴリズム方式のうちいずれかを取捨選択し、ニューラルネットワークの量子化を行うことができる。例えば、プロセッサ110のアルゴリズム選択基準は、量子化されたニューラルネットワークが採用されるデバイス(ハードウェア加速器)の処理性能、ハードウェアアーキテクチャなどによっても異なるが、それに制限されるのではない。
図15は、図7で説明されたレイヤ別量子化について説明するための図面である。
図15を参照すれば、図7で説明されたように、レイヤ別量子化により、レイヤに含まれた全チャネルの入力アクチベーション及びウェートは、いずれも同一固定小数点表現Q11.4に量子化される。それにより、バイアス1510の固定小数点表現は、Q39.8であり、フラクション長は8である。すなわち、バイアス1510のフラクション長は、前述の図11ないし図14で説明された2つの方式から決定されたバイアス1110及びバイアス1310のフラクション長よりは短い。従って、レイヤ別量子化よりチャネル別量子化がさらに正確であって精密なパラメータ値を有するニューラルネットワーク量子化であるということが分かる。
図16は、一実施形態によって量子化されたニューラルネットワークを再訓練(retrain)することについて説明するための図面である。
図16を参照すれば、図3のプロセッサ110は、浮動小数点タイプの事前に訓練されたニューラルネットワーク1610を、固定小数点タイプのニューラルネットワーク1620に量子化することができる。さらに、プロセッサ110は、量子化されたニューラルネットワーク1620の正確度をさらに高めるために、新規または既存の訓練/テストセットデータを利用して再訓練することができる。かような再訓練を介して量子化されたニューラルネットワーク1620の固定小数点タイプのパラメータが、微細調整(fine-tune)されることにより、プロセッサ110は、正確度が上昇した再訓練されたニューラルネットワーク1630を獲得することができる。このとき、プロセッサ110は、微細調整のために、バイアス及びチャネル別ウェートに対して決定されたフラクション長を制約条件(constraint)にして量子化されたニューラルネットワーク1620を再訓練することができる。ニューラルネットワーク量子化装置10(図3)は、再訓練されたニューラルネットワーク1630を、ニューラルネットワーク専用ハードウェア加速器に伝達することができる。
図17は、レイヤ別量子化とチャネル別量子化との正確度を比較したシミュレーション結果を図示した図面である。
図17を参照すれば、割り当てられたビット幅が広いほど、レイヤ別量子化とチャネル別量子化との正確度は類似した値に収斂される。しかし、割り当てられたビット幅が狭いほど、レイヤ別量子化とチャネル別量子化との正確度は、差が目立つということが分かる。具体的には、ビット幅が狭く割り当てられた場合には、チャネル別量子化の正確度は、レイヤ別量子化の正確度よりはるかに高くしめされる。ニューラルネットワーク専用ハードウェア加速器の場合、低性能及び低電力のハードウェアによって具現されるために、狭いビット幅を利用するしかない。従って、ハードウェア加速器のために、チャネル別量子化でニューラルネットワークを量子化することがさらに望ましいということが分かる。一方、チャネル別量子化及びレイヤ別量子化は、いずれも分布範囲として、実際最大値に基づいた量子化よりは、最適のデルタなど量子化エラーを最小化させる方式の量子化レベルを利用した量子化がさらに高い正確度を示すということが分かる。
図18は、再訓練による量子化されたニューラルネットワークの正確度変化に係わるシミュレーション結果を図示した図面である。
図18を参照すれば、固定小数点タイプに量子化されたニューラルネットワークであるとしても、再訓練を介して、正確度が浮動小数点タイプのニューラルネットワークより向上するということが分かる。
図19は、一実施形態による電子システムを示すブロック図である。
図19を参照すれば、電子システム1900は、ニューラルネットワークを基に、入力データをリアルタイムで分析し、有効な情報を抽出し、抽出された情報を基に、状況判断を行ってもよいし、あるいは電子システム1900が搭載される電子デバイスの構成を制御することができる。例えば、電子システム1900は、ドローン(drone)・先端運転手補助システム(ADAS:advanced drivers assistance system)のようなロボット装置、スマートTV(television)、スマートフォン、医療デバイス、モバイルデバイス、映像表示デバイス、計測デバイス、IoTデバイスなどにも適用され、それ以外にも、多種の電子デバイスのうち少なくとも一つに搭載される。
電子システム1900は、プロセッサ1910、RAM 1920、ニューラルネットワーク装置1930、メモリ1940、センサモジュール1950及び通信モジュール1960を含んでもよい。電子システム1900は、入出力モジュール、保安モジュール、電力制御装置などをさらに含んでもよい。電子システム1900のハードウェア構成のうち一部は、少なくとも1つの半導体チップにも搭載される。ニューラルネットワーク装置1930は、前述のニューラルネットワーク専用ハードウェア加速器自体、またはそれを含む装置でもある。
プロセッサ1910は、電子システム1900の全般的な動作を制御する。プロセッサ1910は、1つのプロセッサコア(single core)を含むか、あるいは複数のプロセッサコア(multi-core)を含んでもよい。プロセッサ1910は、メモリ1940に保存されたプログラム及び/またはデータを処理したり実行したりすることができる。一実施形態において、プロセッサ1910は、メモリ1940に保存されたプログラムを実行することにより、ニューラルネットワーク装置1930の機能を制御することができる。プロセッサ1910は、CPU、GPU、APなどによっても具現される。
RAM 1920は、プログラム、データまたは命令(instructions)を一時的に保存することができる。例えば、メモリ1940に保存されたプログラム及び/またはデータは、プロセッサ1910の制御コードまたは起動コードにより、RAM 1920に一時的に保存される。RAM 1920は、DRAM(dynamic random access memory)またはSRAM(static random access memory)などのメモリによっても具現される。
ニューラルネットワーク装置1930は、受信される入力データを基に、ニューラルネットワークの演算を行い、遂行結果を基に、情報信号を生成することができる。ニューラルネットワークは、CNN、RNN、Deep Belief Networks、restricted Boltzman machinesなどを含んでもよいが、それらに制限されるものではない。ニューラルネットワーク装置1930は、前述の固定小数点タイプに量子化されたニューラルネットワークを利用して処理を行うハードウェアであり、前述のニューラルネットワーク専用ハードウェア加速器にも該当する。
該情報信号は、音声認識信号、事物認識信号、映像認識信号、生体情報認識信号のような多種の認識信号のうち一つを含んでもよい。例えば、ニューラルネットワーク装置1930は、ビデオストリームに含まれるフレームデータを入力データとして受信し、フレームデータから、フレームデータが示すイメージに含まれた事物に係わる認識信号を生成することができる。しかし、それに制限されるものではなく、電子システム1900が搭載された電子装置の種類または機能により、ニューラルネットワーク装置1930は、多種の入力データを受信することができ、入力データによる認識信号を生成することができる。
メモリ1940は、データを保存するための保存場所であり、OS(operating system)、各種プログラム及び各種データを保存することができる。一実施形態において、メモリ1940は、ニューラルネットワーク装置1930の演算遂行過程で生成される中間結果、例えば、出力フィーチャマップを、出力フィーチャリスト状または出力フィーチャマトリックス状に保存することができる。一実施形態において、メモリ1940には、圧縮された出力フィーチャマップが保存される。また、メモリ1940は、ニューラルネットワーク装置1930で利用される量子化されたニューラルネットワークデータ、例えば、パラメータ、ウェートマップまたはウェートリストを保存することができる。
メモリ1940は、DRAMでもあるが、それに限定されるものではない。メモリ1940は、揮発性メモリまたは不揮発性メモリのうち少なくとも一つを含んでもよい。不揮発性メモリは、ROM、PROM、EPROM、EEPROM、フラッシュメモリ、PRAM、MRAM、RRAM、FRAMなどを含む。揮発性メモリは、DRAM、SRAM、SDRAMなどを含む。一実施形態において、メモリ1940は、HDD、SSD、CF、SD、Micro−SD、Mini−SD、xDまたはMemory Stickのうち少なくとも一つを含んでもよい。
センサモジュール1950は、電子システム1900が搭載される電子装置周辺の情報を収集することができる。センサモジュール1950は、電子装置の外部から信号(例えば、映像信号、音声信号、磁気信号、生体信号、タッチ信号など)をセンシングまたは受信し、センシングまたは受信された信号をデータに変換することができる。そのために、センサモジュール1950は、センシング装置、例えば、マイク、撮像装置、イメージセンサ、ライダ(LIDAR:light detection and ranging)センサ、超音波センサ、赤外線センサ、バイオセンサ及びタッチセンサなど多種のセンシング装置のうち少なくとも一つを含んでもよい。
センサモジュール1950は、変換されたデータをニューラルネットワーク装置1930に入力データとして提供することができる。例えば、センサモジュール1950は、イメージセンサを含んでもよく、電子装置の外部環境を撮影し、ビデオストリームを生成し、ビデオストリームの連続するデータフレームを、ニューラルネットワーク装置1930に入力データとして順に提供することができる。しかし、それに制限されるものではなく、センサモジュール1950は、多種のデータを、ニューラルネットワーク装置1930に提供することができる。
通信モジュール1960は、外部装置と通信することができる多様な有線または無線のインターフェースを具備することができる。例えば、通信モジュール1960は、有線近距離通信網(LAN:local area network)、Wi−Fi(wireless fidelity)のような無線近距離通信網(WAL:wireless local area network)、ブルートゥース(登録商標(Bluetooth))のような無線個人通信網(WPAN:wireless personal area network)、無線USB(wireless universal serial bus)、Zigbee、NFC(near field communication)、RFID(radio frequency identification)、PLC(power line communication)、または3G(3rd generation)・4G(4th generation)・LTE(long term evolution)など移動通信網(mobile cellular network)に接続可能な通信インターフェースなどを含んでもよい。
一実施形態において、通信モジュール1960は、外部から量子化されたニューラルネットワークに係わるデータを受信することができる。ここで、該外部は、図3のニューラルネットワーク量子化装置10のように、膨大な量のデータを基に訓練を行い、訓練されたニューラルネットワークを固定小数点タイプに量子化し、量子化されたニューラルネットワークデータを電子システム1900に提供するデバイスでもある。受信された量子化されたニューラルネットワークデータは、メモリ1940に保存される。
図20は、一実施形態によるニューラルネットワークのパラメータを量子化する方法のフローチャートである。図20に図示された、ニューラルネットワークのパラメータの量子化方法は、前述の図面で説明された実施形態に係わるものであるので、以下、省略された内容としても、先に図面で説明された内容は、図20の方法にも適用されるのである。
2010段階において、プロセッサ110は、浮動小数点を利用して事前に訓練されたニューラルネットワークのデータから、フィーチャマップ及びカーネルのそれぞれに含まれた各チャネルで利用された浮動小数点タイプのパラメータ値に係わるチャネル別統計分布を分析する。
2020段階において、プロセッサ110は、チャネル別統計分布に基づいて、パラメータ値の分布範囲を統計的にカバーするチャネル別パラメータの固定小数点表現を決定する。
2030段階において、プロセッサ110は、チャネル別固定小数点表現のパラメータでコンボリューション演算を行った結果に基づいて、バイアス及びチャネル別ウェートのフラクション長を決定する。
2040段階において、プロセッサ110は、決定されたフラクション長のバイアス及びチャネル別ウェートを有する、固定小数点タイプの量子化されたニューラルネットワークを生成する。
一方、前述の本発明の実施形態は、コンピュータで実行されるプログラムに作成可能であり、コンピュータで読み取り可能な記録媒体を利用し、前記プログラムを動作させる汎用デジタルコンピュータでも具現される。また、前述の本発明の実施形態で使用さッルデータの構造は、コンピュータで読み取り可能な記録媒体に、多くの手段を介して記録される。前記コンピュータで読み取り可能な記録媒体は、マグネチック記録媒体(例えば、ROM、フロッピーディスク、ハードディスクなど)、光学的判読媒体(例えば、CD−ROM(compact disc read only memory)、DVD(digital versatile disc)など)のような記録媒体を含む。
以上、本発明について、その望ましい実施形態を中心に説明した。本発明が属する技術分野で当業者であるならば、本発明が、本発明の本質的な特性から外れない範囲で変形された形態に具現されるということを理解することができるであろう。従って、開示された実施形態は、限定的な観点ではなく、説明的な観点から考慮されなければならない。本発明の範囲は、前述の説明ではなく、特許請求の範囲に示されており、それと同等な範囲内にある全ての差異は、本発明に含まれたものであると解釈されなければならないのである。
本発明の、ニューラルネットワークのパラメータを量子化する方法及び該装置は、例えば、電子システム関連の技術分野に効果的に適用可能である。
2 ニューラルネットワーク
10 ニューラルネットワーク量子化装置
110,1910 プロセッサ
120,1940 メモリ
1900 電子システム
1920 RAM
1930 ニューラルネットワーク装置
1950 センサモジュール
1960 通信モジュール

Claims (21)

  1. 固定小数点に基づく量子化を利用するニューラルネットワークのための方法において、
    浮動小数点を利用して事前に訓練されたニューラルネットワークのデータから、フィーチャマップ及びカーネルのそれぞれに含まれる各チャネルで利用される浮動小数点タイプのパラメータ値に係わるチャネル別統計分布を分析する段階と、
    前記チャネル別統計分布に基づいて、前記パラメータ値の分布範囲を統計的にカバーする前記チャネル別パラメータの固定小数点表現を決定する段階と、
    前記チャネル別固定小数点表現のパラメータでコンボリューション演算を行った結果に基づいて、バイアス及び前記チャネル別ウェートのフラクション長を決定する段階と、
    前記決定されたフラクション長の前記バイアス及び前記チャネル別ウェートを有する固定小数点タイプの量子化されたニューラルネットワークを生成する段階と、を含む方法。
  2. 前記分析する段階は、
    前記ニューラルネットワークが事前に訓練される間、前記各チャネルで利用された前記浮動小数点タイプのアクチベーション、ウェート及びバイアスの前記パラメータ値に係わる前記チャネル別統計量を求めることにより、前記統計分布を分析することを特徴とする請求項1に記載の方法。
  3. 前記コンボリューション演算は、
    MAC(multiply-accumulate)演算及びAdd演算を行う、複数のチャネル間の部分和演算を含み、
    前記フラクション長を決定する段階は、
    前記決定された固定小数点表現による入力アクチベーションのフラクション長及びウェートのフラクション長に基づいて、前記部分和演算の結果に対応する前記バイアスの前記フラクション長を決定することを特徴とする請求項1又は2に記載の方法。
  4. 前記バイアスの前記決定されたフラクション長は、
    前記MAC演算の結果で求めた固定小数点表現のフラクション長のうち最長フラクション長に基づいて決定されることを特徴とする請求項3に記載の方法。
  5. 前記部分和演算は、
    第1チャネルの第1入力アクチベーション、及び第1ウェートに対する第1 MAC演算、第2チャネルの第2入力アクチベーション、及び第2ウェートに対する第2 MAC演算、並びに前記第1 MAC演算の結果と前記第2 MAC演算の結果とに対するAdd演算を含み、
    前記フラクション長を決定する段階は、
    前記第1 MAC演算の結果に対応する第1固定小数点表現の第1フラクション長、及び前記第2 MAC演算の結果に対応する第2固定小数点表現の第2フラクション長を獲得する段階と、
    前記第1フラクション長及び前記第2フラクション長のうち最長フラクション長に基づいて、前記Add演算の結果に対応する前記バイアスの前記フラクション長を決定する段階と、を含むことを特徴とする請求項4に記載の方法。
  6. 前記フラクション長を決定する段階は、
    前記第1固定小数点表現及び前記第2固定小数点表現のうちさらに短いフラクション長を有する固定小数点表現のフラクション長を、前記バイアスの前記決定されたフラクション長に基づいて、ビットシフティングする段階をさらに含み、
    前記量子化されたニューラルネットワークは、前記ビットシフティングの程度に係わる情報を含むことを特徴とする請求項5に記載の方法。
  7. 前記バイアスの前記決定されたフラクション長は、前記MAC演算の結果として求めた固定小数点表現のフラクション長のうち最短フラクション長に対応し、
    前記フラクション長を決定する段階は、
    前記固定小数点表現の前記フラクション長の差ほど前記ウェートのうち少なくとも1つのフラクション長を低減させ、前記チャネル別ウェートの前記フラクション長を決定することを特徴とする請求項3に記載の方法。
  8. 前記部分和演算は、
    第1チャネルの第1入力アクチベーション、及び第1ウェートに対する第1 MAC演算、第2チャネルの第2入力アクチベーション、及び第2ウェートに対する第2 MAC演算、並びに前記第1 MAC演算の結果と、前記第2 MAC演算の結果とに対するAdd演算を含み、
    前記フラクション長を決定する段階は、
    前記第1 MAC演算の結果に対応する第1固定小数点表現の第1フラクション長、及び前記第2 MAC演算の結果に対応する第2固定小数点表現の第2フラクション長を獲得する段階と、
    前記第1フラクション長及び前記第2フラクション長のうち最短フラクション長を、前記Add演算の結果に対応する前記バイアスの前記フラクション長と決定する段階と、
    前記第1 MAC演算及び前記第2 MAC演算のうち前記最短フラクション長を有する固定小数点表現を求めたMAC演算に入力されたウェートのフラクション長を、前記第1フラクション長及び前記第2フラクション長の差ほど低減させて調整する段階と、を含むことを特徴とする請求項7に記載の方法。
  9. 前記チャネル別統計分布は、
    正規分布及びラプラス分布のうちいずれか一つに近似化された分布に対応し、
    前記固定小数点表現を決定する段階は、
    前記チャネル別統計分布から獲得された前記各チャネル別に、前記パラメータ値の平均、分散、標準偏差、最大値、最小値のうち少なくとも一つを利用して定義された前記チャネル別フラクション長に基づいて、前記固定小数点表現を決定することを特徴とする請求項1ないし8のうち何れか一項に記載の方法。
  10. 前記フラクション長の前記決定が完了した後、微細調整のために、前記バイアス及び前記チャネル別ウェートの前記決定されたフラクション長を制約条件にし、前記量子化されたニューラルネットワークを再訓練する段階をさらに含むことを特徴とする請求項1ないし9のうち何れか一項に記載の方法。
  11. 固定小数点に基づく量子化を利用するニューラルネットワークのための装置であって、
    少なくとも1つのプログラムが保存されたメモリと、
    前記少なくとも1つのプログラムを実行することにより、ニューラルネットワークのパラメータを量子化するプロセッサと、を含み、
    前記プロセッサは、
    浮動小数点を利用して事前に訓練されたニューラルネットワークのデータから、フィーチャマップ及びカーネルのそれぞれに含まれる各チャネルで利用される浮動小数点タイプのパラメータ値に係わるチャネル別統計分布を分析し、
    前記チャネル別統計分布に基づいて、前記パラメータ値の分布範囲を統計的にカバーする前記チャネル別パラメータの固定小数点表現を決定し、
    前記チャネル別固定小数点表現のパラメータでコンボリューション演算を行った結果に基づいて、バイアス及び前記チャネル別ウェートのフラクション長を決定し、
    前記決定されたフラクション長の前記バイアス及び前記チャネル別ウェートを有する固定小数点タイプの量子化を利用するニューラルネットワークを生成する装置。
  12. 前記プロセッサは、
    前記ニューラルネットワークが事前に訓練される間、前記各チャネルで利用された前記浮動小数点タイプのアクチベーション、ウェート及びバイアスの前記パラメータ値に係わる前記チャネル別統計量を求めることにより、前記統計分布を分析することを特徴とする請求項11に記載の装置。
  13. 前記コンボリューション演算は、
    MAC(multiply-accumulate)演算及びAdd演算を行う、複数のチャネル間の部分和演算を含み、
    前記プロセッサは、
    前記決定された固定小数点表現による入力アクチベーションのフラクション長及びウェートのフラクション長に基づいて、前記部分和演算の結果に対応する前記バイアスの前記フラクション長を決定することを特徴とする請求項11又は12に記載の装置。
  14. 前記バイアスの前記決定されたフラクション長は、
    前記MAC演算の結果として求めた固定小数点表現のフラクション長のうち最長フラクション長に基づいて決定されることを特徴とする請求項13に記載の装置。
  15. 前記部分和演算は、
    第1チャネルの第1入力アクチベーション、及び第1ウェートに対する第1 MAC演算、第2チャネルの第2入力アクチベーション、及び第2ウェートに対する第2 MAC演算、並びに前記第1 MAC演算の結果と前記第2 MAC演算の結果とに対するAdd演算を含み、
    前記プロセッサは、
    前記第1 MAC演算の結果に対応する第1固定小数点表現の第1フラクション長、及び前記第2 MAC演算の結果に対応する第2固定小数点表現の第2フラクション長を獲得し、
    前記第1フラクション長及び前記第2フラクション長のうち最長フラクション長に基づいて、前記Add演算の結果に対応する前記バイアスの前記フラクション長を決定することを特徴とする請求項14に記載の装置。
  16. 前記プロセッサは、
    前記第1固定小数点表現及び前記第2固定小数点表現のうちさらに小さいフラクション長を有する固定小数点表現のフラクション長を、前記バイアスの前記決定されたフラクション長に基づいて、ビットシフティングすることを特徴とする請求項15に記載の装置。
  17. 前記バイアスの前記決定されたフラクション長は、前記MAC演算の結果として求めた固定小数点表現のフラクション長のうち最短フラクション長に対応し、
    前記プロセッサは、
    前記固定小数点表現の前記フラクション長の差ほど前記ウェートのうち少なくとも1つのフラクション長を低減させ、前記チャネル別ウェートの前記フラクション長を決定することを特徴とする請求項13に記載の装置。
  18. 前記部分和演算は、
    第1チャネルの第1入力アクチベーション、及び第1ウェートに対する第1 MAC演算、第2チャネルの第2入力アクチベーション、及び第2ウェートに対する第2 MAC演算、並びに前記第1 MAC演算の結果と、前記第2 MAC演算の結果とに対するAdd演算を含み、
    前記プロセッサは、
    前記第1 MAC演算の結果に対応する第1固定小数点表現の第1フラクション長、及び前記第2 MAC演算の結果に対応する第2固定小数点表現の第2フラクション長を獲得し、
    前記第1フラクション長及び前記第2フラクション長のうち最短フラクション長を、前記Add演算の結果に対応する前記バイアスの前記フラクション長と決定し、
    前記第1 MAC演算及び前記第2 MAC演算のうち前記最短フラクション長を有する固定小数点表現を求めたMAC演算に入力されたウェートのフラクション長を、前記第1フラクション長及び前記第2フラクション長の差ほど低減させて調整することを特徴とする請求項17に記載の装置。
  19. 前記チャネル別統計分布は、
    正規分布及びラプラス分布のうちいずれか一つに近似化された分布に対応し、
    前記プロセッサは、
    前記チャネル別統計分布から獲得された前記各チャネル別に、前記パラメータ値の平均、分散、標準偏差、最大値、最小値のうち少なくとも一つを利用して定義された前記チャネル別フラクション長に基づいて、前記固定小数点表現を決定することを特徴とする請求項11ないし18のうち何れか一項に記載の装置。
  20. 前記プロセッサは、
    前記フラクション長の前記決定が完了した後、微細調整のために、前記バイアス及び前記チャネル別ウェートの前記決定されたフラクション長を制約条件にし、前記量子化されたニューラルネットワークを再訓練することを特徴とする請求項11ないし19のうち何れか一項に記載の装置。
  21. 請求項1ないし10のうち何れか一項に記載の方法を装置のコンピュータに実行させるコンピュータプログラム。
JP2018144829A 2017-08-04 2018-08-01 固定小数点量子化ニューラルネットワークのための方法及び装置 Active JP7072464B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170098999A KR102601604B1 (ko) 2017-08-04 2017-08-04 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치
KR10-2017-0098999 2017-08-04

Publications (2)

Publication Number Publication Date
JP2019032833A true JP2019032833A (ja) 2019-02-28
JP7072464B2 JP7072464B2 (ja) 2022-05-20

Family

ID=63407020

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018144829A Active JP7072464B2 (ja) 2017-08-04 2018-08-01 固定小数点量子化ニューラルネットワークのための方法及び装置

Country Status (5)

Country Link
US (2) US11588496B2 (ja)
EP (1) EP3438890B1 (ja)
JP (1) JP7072464B2 (ja)
KR (1) KR102601604B1 (ja)
CN (1) CN109389219B (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020166674A (ja) * 2019-03-29 2020-10-08 富士通株式会社 情報処理装置、情報処理方法、情報処理プログラム
EP3792837A1 (en) 2019-09-09 2021-03-17 Fujitsu Limited Learning program and learning method
EP3792836A1 (en) 2019-09-13 2021-03-17 Fujitsu Limited Information processing apparatus, method of processing information, and information processing program
EP3796233A1 (en) 2019-09-13 2021-03-24 Fujitsu Limited Information processing device and method, and program
WO2021144879A1 (ja) * 2020-01-15 2021-07-22 富士通株式会社 演算処理装置、演算処理プログラム及び演算処理方法
WO2021192497A1 (ja) * 2020-03-27 2021-09-30 パナソニックIpマネジメント株式会社 推論実行方法
JP2021177369A (ja) * 2019-06-12 2021-11-11 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッドShanghai Cambricon Information Technology Co., Ltd. ニューラルネットワークにおける量子化パラメータの確定方法および関連製品
JP2022501674A (ja) * 2019-08-28 2022-01-06 上海寒武紀信息科技有限公司Shanghai Cambricon Information Technology Co., Ltd データを処理するための方法、装置、及び関連製品
JP2022501670A (ja) * 2019-08-26 2022-01-06 上海寒武紀信息科技有限公司Shanghai Cambricon Information Technology Co., Ltd データを処理するための方法、装置、及び関連製品
WO2022009449A1 (ja) * 2020-07-10 2022-01-13 富士通株式会社 情報処理装置,情報処理方法および情報処理プログラム
JP2022532439A (ja) * 2020-02-24 2022-07-14 中科寒武紀科技股▲分▼有限公司 データ量子化処理方法、装置、電子機器および記憶媒体 本願は、2020年02月24日に中国国家知識産権局に提出された、出願番号が202010111884.3であり、発明の名称が「データ量子化処理方法、装置、電子機器および記憶媒体」である中国特許出願の優先権を主張し、その全ての内容は、参照により本願に組み込まれるものとする。
WO2022239448A1 (ja) * 2021-05-10 2022-11-17 コニカミノルタ株式会社 量子化プログラム、情報処理装置、及び値域決定方法
JP2022548965A (ja) * 2019-09-19 2022-11-22 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング トレーニング可能なモジュールの高速な量子化されたトレーニング

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10678244B2 (en) 2017-03-23 2020-06-09 Tesla, Inc. Data synthesis for autonomous control systems
US11409692B2 (en) 2017-07-24 2022-08-09 Tesla, Inc. Vector computational unit
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
US11157441B2 (en) 2017-07-24 2021-10-26 Tesla, Inc. Computational array microprocessor system using non-consecutive data formatting
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
KR20190044878A (ko) 2017-10-23 2019-05-02 삼성전자주식회사 뉴럴 네트워크에서 파라미터를 처리하는 방법 및 장치
US11195096B2 (en) * 2017-10-24 2021-12-07 International Business Machines Corporation Facilitating neural network efficiency
US11561791B2 (en) 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array
US11740898B2 (en) 2018-02-13 2023-08-29 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
CN110162162B (zh) 2018-02-14 2023-08-18 上海寒武纪信息科技有限公司 处理器的控制装置、方法及设备
JP7056225B2 (ja) * 2018-02-26 2022-04-19 富士通株式会社 演算処理装置、情報処理装置、情報処理方法、およびプログラム
US11989639B2 (en) * 2018-03-02 2024-05-21 Nec Corporation Inferential device, convolutional operation method, and program
US10769526B2 (en) * 2018-04-24 2020-09-08 Intel Corporation Machine learning accelerator architecture
KR20190125141A (ko) 2018-04-27 2019-11-06 삼성전자주식회사 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치
US11215999B2 (en) 2018-06-20 2022-01-04 Tesla, Inc. Data pipeline and deep learning system for autonomous driving
WO2020001438A1 (zh) 2018-06-27 2020-01-02 上海寒武纪信息科技有限公司 片上代码断点调试方法、片上处理器及芯片断点调试系统
US11361457B2 (en) 2018-07-20 2022-06-14 Tesla, Inc. Annotation cross-labeling for autonomous control systems
US11636333B2 (en) 2018-07-26 2023-04-25 Tesla, Inc. Optimizing neural network structures for embedded systems
US11562231B2 (en) 2018-09-03 2023-01-24 Tesla, Inc. Neural networks for embedded devices
US20200104715A1 (en) * 2018-09-28 2020-04-02 Xilinx, Inc. Training of neural networks by including implementation cost as an objective
SG11202103493QA (en) 2018-10-11 2021-05-28 Tesla Inc Systems and methods for training machine models with augmented data
US11196678B2 (en) 2018-10-25 2021-12-07 Tesla, Inc. QOS manager for system on a chip communications
US11922314B1 (en) * 2018-11-30 2024-03-05 Ansys, Inc. Systems and methods for building dynamic reduced order physical models
US11816585B2 (en) 2018-12-03 2023-11-14 Tesla, Inc. Machine learning models operating at different frequencies for autonomous vehicles
US11537811B2 (en) 2018-12-04 2022-12-27 Tesla, Inc. Enhanced object detection for autonomous vehicles based on field view
US11847567B1 (en) 2018-12-05 2023-12-19 Perceive Corporation Loss-aware replication of neural network layers
CN109754074A (zh) * 2018-12-29 2019-05-14 北京中科寒武纪科技有限公司 一种神经网络量化方法、装置以及相关产品
US11610117B2 (en) 2018-12-27 2023-03-21 Tesla, Inc. System and method for adapting a neural network model on a hardware platform
KR20200086581A (ko) 2019-01-09 2020-07-17 삼성전자주식회사 뉴럴 네트워크 양자화를 위한 방법 및 장치
KR102233174B1 (ko) * 2019-01-28 2021-03-29 포항공과대학교 산학협력단 신경망 가속기 및 그것의 동작 방법
US10997461B2 (en) 2019-02-01 2021-05-04 Tesla, Inc. Generating ground truth for machine learning from time series elements
EP3857453A1 (en) * 2019-02-08 2021-08-04 Huawei Technologies Co., Ltd. Neural network quantization method using multiple refined quantized kernels for constrained hardware deployment
US11567514B2 (en) 2019-02-11 2023-01-31 Tesla, Inc. Autonomous and user controlled vehicle summon to a target
US10956755B2 (en) 2019-02-19 2021-03-23 Tesla, Inc. Estimating object properties using visual image data
CN109800877B (zh) * 2019-02-20 2022-12-30 腾讯科技(深圳)有限公司 神经网络的参数调整方法、装置及设备
KR102152374B1 (ko) * 2019-02-25 2020-09-07 주식회사 딥엑스 인공신경망의 비트 양자화 방법 및 시스템
WO2020175862A1 (ko) * 2019-02-25 2020-09-03 주식회사 딥엑스 인공신경망의 비트 양자화 방법 및 시스템
CN109978135B (zh) * 2019-03-04 2022-03-29 清华大学 基于量化的神经网络压缩方法及系统
CN110068302A (zh) * 2019-03-07 2019-07-30 中科院微电子研究所昆山分所 一种基于深度神经网络的车辆测距方法
CN111695671B (zh) * 2019-03-12 2023-08-08 北京地平线机器人技术研发有限公司 训练神经网络的方法及装置、电子设备
US11625585B1 (en) 2019-05-21 2023-04-11 Perceive Corporation Compiler for optimizing filter sparsity for neural network implementation configuration
KR20200139909A (ko) 2019-06-05 2020-12-15 삼성전자주식회사 전자 장치 및 그의 연산 수행 방법
US11676029B2 (en) 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
US11847568B2 (en) * 2019-07-30 2023-12-19 Perceive Corporation Quantizing neural networks using shifting and scaling
WO2021036904A1 (zh) 2019-08-23 2021-03-04 安徽寒武纪信息科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN112488285A (zh) * 2019-09-12 2021-03-12 上海大学 基于神经网络权重数据分布特点的量化方法
DE102020123155A1 (de) * 2019-09-24 2021-03-25 Samsung Electronics Co., Ltd. Quantisierungsverfahren eines künstlichen neuronalen Netzwerks und Operationsverfahren unter Verwendung eines künstlichen neuronalen Netzwerks
KR20210043295A (ko) * 2019-10-11 2021-04-21 삼성전자주식회사 뉴럴 네트워크의 데이터를 양자화하는 방법 및 장치
CN113228056B (zh) * 2019-10-12 2023-12-22 深圳鲲云信息科技有限公司 运行时硬件模拟仿真方法、装置、设备及存储介质
CN110472700B (zh) * 2019-10-14 2020-06-16 深兰人工智能芯片研究院(江苏)有限公司 一种基于卷积神经网络的参数填充方法与装置
CN110991649A (zh) * 2019-10-28 2020-04-10 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 深度学习模型搭建方法、装置、设备和存储介质
KR102421987B1 (ko) * 2019-12-16 2022-07-15 경희대학교 산학협력단 깊은 신경망 내에서의 강화된 배치 정규화를 위한 전자 장치, 방법, 및 컴퓨터 판독가능 매체
US11995555B1 (en) 2019-12-17 2024-05-28 Perceive Corporation Training a neural network with quantized weights
CN111079767B (zh) * 2019-12-22 2022-03-22 浪潮电子信息产业股份有限公司 一种用于分割图像的神经网络模型及其图像分割方法
KR20210083935A (ko) 2019-12-27 2021-07-07 삼성전자주식회사 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치
US11847451B2 (en) 2020-01-07 2023-12-19 SK Hynix Inc. Processing-in-memory (PIM) device for implementing a quantization scheme
TW202141290A (zh) 2020-01-07 2021-11-01 韓商愛思開海力士有限公司 記憶體中處理(pim)系統和pim系統的操作方法
CN113222098A (zh) * 2020-01-21 2021-08-06 上海商汤智能科技有限公司 数据处理方法和相关产品
US11521007B2 (en) * 2020-02-17 2022-12-06 International Business Machines Corporation Accelerator resource utilization by neural networks
CN111401518B (zh) * 2020-03-04 2024-06-04 北京硅升科技有限公司 一种神经网络量化方法、装置及计算机可读存储介质
US20230118802A1 (en) * 2020-03-13 2023-04-20 Intel Corporation Optimizing low precision inference models for deployment of deep neural networks
CN113496274A (zh) * 2020-03-20 2021-10-12 郑桂忠 基于存储器内运算电路架构的量化方法及其系统
CN113673664B (zh) * 2020-05-14 2023-09-12 杭州海康威视数字技术股份有限公司 数据溢出检测方法、装置、设备及存储介质
CN113762499B (zh) * 2020-06-04 2024-04-02 合肥君正科技有限公司 一种分通道量化权重的方法
CN111950715A (zh) * 2020-08-24 2020-11-17 云知声智能科技股份有限公司 基于自适应动态移位的8位整型全量化推理方法及装置
KR102505946B1 (ko) * 2020-09-02 2023-03-08 네이버 주식회사 인공신경망 모델 학습 방법 및 시스템
KR20220057356A (ko) 2020-10-29 2022-05-09 삼성전자주식회사 커패시터 및 이를 포함하는 반도체 장치
KR20230107869A (ko) * 2020-11-18 2023-07-18 인텔렉추얼디스커버리 주식회사 신경망 특징맵 양자화 방법 및 장치
CN112446491B (zh) * 2021-01-20 2024-03-15 上海齐感电子信息科技有限公司 神经网络模型实时自动量化方法及实时自动量化系统
WO2022183335A1 (zh) * 2021-03-01 2022-09-09 浙江大学 图像编解码方法、编码器、解码器及存储介质
CN113128116B (zh) * 2021-04-20 2023-09-26 上海科技大学 可用于轻量级神经网络的纯整型量化方法
KR102466016B1 (ko) * 2021-06-21 2022-11-11 주식회사 크립토랩 동형 암호문을 처리하는 서버 장치 및 그 방법
CN114004347A (zh) 2021-08-30 2022-02-01 平头哥(上海)半导体技术有限公司 用于加速图神经网络属性访问的硬件加速器、系统和方法
KR20230066700A (ko) * 2021-11-08 2023-05-16 한국전자기술연구원 딥러닝 가속장치를 위한 적응적 파라미터 생성 장치 및 방법
US20230214639A1 (en) * 2021-12-31 2023-07-06 Sumant Milind Hanumante Fixed-point multiplication for network quantization
CN114677548B (zh) * 2022-05-26 2022-10-14 之江实验室 基于阻变存储器的神经网络图像分类系统及方法
CN116720563B (zh) * 2022-09-19 2024-03-29 荣耀终端有限公司 一种提升定点神经网络模型精度的方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160328646A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
JP2017509951A (ja) * 2014-01-23 2017-04-06 クゥアルコム・インコーポレイテッドQualcomm Incorporated スパースニューラルネットワークを構成すること

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5257215A (en) * 1992-03-31 1993-10-26 Intel Corporation Floating point and integer number conversions in a floating point adder
DE102006001681B4 (de) * 2006-01-12 2008-07-10 Wismüller, Axel, Dipl.-Phys. Dr.med. Verfahren und Vorrichtung zur Darstellung mehrkanaliger Bilddaten
US20160026912A1 (en) 2014-07-22 2016-01-28 Intel Corporation Weight-shifting mechanism for convolutional neural networks
CN106575379B (zh) * 2014-09-09 2019-07-23 英特尔公司 用于神经网络的改进的定点整型实现方式
US20160328645A1 (en) 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network
US10262259B2 (en) 2015-05-08 2019-04-16 Qualcomm Incorporated Bit width selection for fixed point neural networks
US10417555B2 (en) * 2015-05-29 2019-09-17 Samsung Electronics Co., Ltd. Data-optimized neural network traversal
US20170076195A1 (en) * 2015-09-10 2017-03-16 Intel Corporation Distributed neural networks for scalable real-time analytics
HUE047807T2 (hu) * 2015-10-04 2020-05-28 Atomwise Inc Rendszer konvolúciós hálózat alkalmazására térbeli adatokon
US10275393B2 (en) 2015-10-08 2019-04-30 Via Alliance Semiconductor Co., Ltd. Tri-configuration neural network unit
CN106991477B (zh) * 2016-01-20 2020-08-14 中科寒武纪科技股份有限公司 一种人工神经网络压缩编码装置和方法
KR102565273B1 (ko) * 2016-01-26 2023-08-09 삼성전자주식회사 뉴럴 네트워크에 기초한 인식 장치 및 뉴럴 네트워크의 학습 방법
CN105760933A (zh) * 2016-02-18 2016-07-13 清华大学 卷积神经网络的逐层变精度定点化方法及装置
US11755913B2 (en) * 2016-03-11 2023-09-12 Telecom Italia S.P.A Convolutional neural networks, particularly for image analysis
CN106066783A (zh) * 2016-06-02 2016-11-02 华为技术有限公司 基于幂次权重量化的神经网络前向运算硬件结构
US10491239B1 (en) * 2017-02-02 2019-11-26 Habana Labs Ltd. Large-scale computations using an adaptive numerical format
US9916531B1 (en) * 2017-06-22 2018-03-13 Intel Corporation Accumulator constrained quantization of convolutional neural networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017509951A (ja) * 2014-01-23 2017-04-06 クゥアルコム・インコーポレイテッドQualcomm Incorporated スパースニューラルネットワークを構成すること
US20160328646A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GYSEL, ET AL.: "Hardware-oriented Approximation of Convolutional Neural Networks", ARXIV.ORG [ONLINE], JPN6022013069, 11 April 2016 (2016-04-11), ISSN: 0004747741 *
TAKEDA, R., ET AL.: "Acoustic model training based on node-wise weight boundary model increasing speed of discrete neural", PROCEEDINGS OF 2015 IEEE WORKSHOP ON AUTOMATIC SPEECH RECOGNITION AND UNDERSTANDING (ASRU), JPN6021035727, 13 December 2015 (2015-12-13), pages 52 - 58, XP032863524, ISSN: 0004592906, DOI: 10.1109/ASRU.2015.7404773 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020166674A (ja) * 2019-03-29 2020-10-08 富士通株式会社 情報処理装置、情報処理方法、情報処理プログラム
JP7188237B2 (ja) 2019-03-29 2022-12-13 富士通株式会社 情報処理装置、情報処理方法、情報処理プログラム
JP7166704B2 (ja) 2019-06-12 2022-11-08 寒武紀(西安)集成電路有限公司 ニューラルネットワークにおける量子化パラメータの確定方法および関連製品
JP2021177369A (ja) * 2019-06-12 2021-11-11 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッドShanghai Cambricon Information Technology Co., Ltd. ニューラルネットワークにおける量子化パラメータの確定方法および関連製品
JP7060718B2 (ja) 2019-08-26 2022-04-26 上海寒武紀信息科技有限公司 データを処理するための方法、装置、及び関連製品
JP2022501670A (ja) * 2019-08-26 2022-01-06 上海寒武紀信息科技有限公司Shanghai Cambricon Information Technology Co., Ltd データを処理するための方法、装置、及び関連製品
JP7060719B2 (ja) 2019-08-28 2022-04-26 上海寒武紀信息科技有限公司 データを処理するための方法、装置、及び関連製品
JP2022501674A (ja) * 2019-08-28 2022-01-06 上海寒武紀信息科技有限公司Shanghai Cambricon Information Technology Co., Ltd データを処理するための方法、装置、及び関連製品
EP3792837A1 (en) 2019-09-09 2021-03-17 Fujitsu Limited Learning program and learning method
US11676054B2 (en) 2019-09-09 2023-06-13 Fujitsu Limited Computer-readable recording medium recording learning program and learning method
EP3796233A1 (en) 2019-09-13 2021-03-24 Fujitsu Limited Information processing device and method, and program
US11811427B2 (en) 2019-09-13 2023-11-07 Fujitsu Limited Information processing apparatus, method of processing information, and non-transitory computer-readable storage medium for storing information processing program
EP3792836A1 (en) 2019-09-13 2021-03-17 Fujitsu Limited Information processing apparatus, method of processing information, and information processing program
JP7385022B2 (ja) 2019-09-19 2023-11-21 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング トレーニング可能なモジュールの高速な量子化されたトレーニング
JP2022548965A (ja) * 2019-09-19 2022-11-22 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング トレーニング可能なモジュールの高速な量子化されたトレーニング
WO2021144879A1 (ja) * 2020-01-15 2021-07-22 富士通株式会社 演算処理装置、演算処理プログラム及び演算処理方法
JP2022532439A (ja) * 2020-02-24 2022-07-14 中科寒武紀科技股▲分▼有限公司 データ量子化処理方法、装置、電子機器および記憶媒体 本願は、2020年02月24日に中国国家知識産権局に提出された、出願番号が202010111884.3であり、発明の名称が「データ量子化処理方法、装置、電子機器および記憶媒体」である中国特許出願の優先権を主張し、その全ての内容は、参照により本願に組み込まれるものとする。
JP7233636B2 (ja) 2020-02-24 2023-03-07 中科寒武紀科技股▲分▼有限公司 データ量子化処理方法、装置、電子機器および記憶媒体
JP2021157653A (ja) * 2020-03-27 2021-10-07 パナソニックIpマネジメント株式会社 推論実行方法
WO2021192497A1 (ja) * 2020-03-27 2021-09-30 パナソニックIpマネジメント株式会社 推論実行方法
JP7357225B2 (ja) 2020-03-27 2023-10-06 パナソニックIpマネジメント株式会社 推論実行方法
WO2022009449A1 (ja) * 2020-07-10 2022-01-13 富士通株式会社 情報処理装置,情報処理方法および情報処理プログラム
WO2022239448A1 (ja) * 2021-05-10 2022-11-17 コニカミノルタ株式会社 量子化プログラム、情報処理装置、及び値域決定方法

Also Published As

Publication number Publication date
US20230117033A1 (en) 2023-04-20
EP3438890A1 (en) 2019-02-06
US11588496B2 (en) 2023-02-21
CN109389219B (zh) 2024-04-09
KR20190014900A (ko) 2019-02-13
US20190042948A1 (en) 2019-02-07
EP3438890B1 (en) 2024-01-10
KR102601604B1 (ko) 2023-11-13
CN109389219A (zh) 2019-02-26
JP7072464B2 (ja) 2022-05-20

Similar Documents

Publication Publication Date Title
JP7072464B2 (ja) 固定小数点量子化ニューラルネットワークのための方法及び装置
JP7329455B2 (ja) ニューラルネットワーク量子化のための方法及び装置
KR102589303B1 (ko) 고정 소수점 타입의 뉴럴 네트워크를 생성하는 방법 및 장치
KR102526650B1 (ko) 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치
KR20190125141A (ko) 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치
CN110689109B (zh) 神经网络方法和装置
JP2020064635A (ja) ニューラルネットワークのパラメータを量子化する方法及びその装置
US11816557B2 (en) Method and apparatus with neural network parameter quantization
JP2019102084A (ja) ニューラルネットワークにおいてコンボリューション演算を処理する方法及びその装置
KR20210045225A (ko) 뉴럴 네트워크에서 연산을 수행하는 방법 및 장치
JP7329352B2 (ja) 分類のためのニューラルネットワークにおいて、パラメータを処理する方法及び装置
CN114358274A (zh) 训练用于图像识别的神经网络的方法和设备
KR20210121946A (ko) 뉴럴 네트워크 양자화를 위한 방법 및 장치
KR102581471B1 (ko) 분류를 위한 뉴럴 네트워크에서 파라미터를 처리하는 방법 및 장치
KR20210053791A (ko) 뉴럴 네트워크의 데이터를 처리하는 방법 및 장치
KR102650660B1 (ko) 뉴로모픽 장치 및 뉴로모픽 장치에서 멀티-비트 뉴로모픽 연산을 처리하는 방법
KR20200094534A (ko) 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치에서 멀티-비트 연산을 처리하는 방법
KR20200139071A (ko) 뉴럴 네트워크에서 파라미터를 양자화하는 방법 및 장치
KR20210076687A (ko) 뉴럴 프로세싱 장치 및 뉴럴 프로세싱 장치에서 뉴럴 네트워크를 처리하는 방법
KR20240035013A (ko) 뉴럴 네트워크의 파라미터 양자화 방법 및 장치
CN114254746A (zh) 执行神经网络的方法和设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210914

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211210

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220510

R150 Certificate of patent or registration of utility model

Ref document number: 7072464

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150