JP2019079535A - パラメータ処理方法及び装置 - Google Patents

パラメータ処理方法及び装置 Download PDF

Info

Publication number
JP2019079535A
JP2019079535A JP2018198683A JP2018198683A JP2019079535A JP 2019079535 A JP2019079535 A JP 2019079535A JP 2018198683 A JP2018198683 A JP 2018198683A JP 2018198683 A JP2018198683 A JP 2018198683A JP 2019079535 A JP2019079535 A JP 2019079535A
Authority
JP
Japan
Prior art keywords
value
update
weight
accumulated
update value
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
JP2018198683A
Other languages
English (en)
Other versions
JP7072484B2 (ja
Inventor
俊行 李
Toshiyuki Ri
俊行 李
▲ひょん▼宣 朴
HyunSun PARK
▲ひょん▼宣 朴
榮宰 崔
Yeongjae Choi
榮宰 崔
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 JP2019079535A publication Critical patent/JP2019079535A/ja
Application granted granted Critical
Publication of JP7072484B2 publication Critical patent/JP7072484B2/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
    • 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
    • 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

Landscapes

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

Abstract

【課題】 ニューラルネットワーク方法及びその装置を提供する。【解決手段】 ニューラルネットワークに含まれるノード間の連結関係に割り当てられるウェートのための個別アップデート値を計算し、個別アップデート値を累積バッファに累積し、累積バッファの累積アップデート値が臨界値以上である場合、累積アップデート値を利用し、ウェートをアップデートすることにより、ニューラルネットワークにおいて、パラメータを処理する方法及びその装置を提供することができる。【選択図】 図2

Description

本発明、ニューラルネットワークにおいて、パラメータを処理する方法及びその装置等に関する。
ニューラルネットワーク(neural network)の原理は、生物学的な脳をモデリングしたコンピュータ科学的アーキテクチャ(computational architecture)を基礎としている。最近、ニューラルネットワーク技術の発展により、多種の電子システムにおいて、ニューラルネットワーク装置を使用して入力データを分析し、有効な情報を抽出する研究が活発に進められている。
ニューラルネットワーク装置は、複雑な入力データに対する多量の演算を必要とする。ニューラルネットワーク装置が入力をリアルタイムに分析し、情報を抽出するために、ニューラルネットワーク演算を効率的に処理することができる技術が要求される。例えば、ニューラルネットワーク装置の複雑な入力データの処理に必要な演算量を減少させつつ、正確度の損失を最小化させる技術が要求される。
Training deep neural networks with low precision multiplication(https://arxiv.org/abs/1412.7024),Matthieu Courbariaux et al.,Accepted as a workshop contribution at ICLR 2015
本発明が解決しようとする課題は、ニューラルネットワークにおいて、パラメータを処理する方法及びその装置を提供するところにある。本開示がなす技術的課題は、前述のところのような技術的課題に限定されるものではなく、以下の実施形態から、他の技術的課題が類推され得る。
前述の技術的課題を解決するための手段として、一側面によるロープレシジョン・ナンバーシステム(low-precision number system)を利用するニューラルネットワークにおいて、パラメータを処理する方法は、前記ニューラルネットワークに含まれるノード間の連結関係に割り当てられるウェートのための個別アップデート値(individual update)を計算する段階と、前記個別アップデート値を累積バッファ(accumulation buffer)に累積する段階と、前記累積バッファの累積アップデート値(accumulated update)が臨界値(threshold)以上である場合、前記累積アップデート値を利用し、前記ウェートをアップデートする段階と、を含んでもよい。
また、他の側面によるコンピュータで読み取り可能な記録媒体は、前述の方法を実行する命令語を含む1以上のプログラムが記録された記録媒体を含んでもよい。
また、さらに他の側面によるロープレシジョン・ナンバーシステムを利用するニューラルネットワークを実施する装置は、少なくとも1つのプログラムが保存されたメモリと、前記少なくとも1つのプログラムを実行することにより、前記ニューラルネットワークにおいて、パラメータを処理する少なくとも1つのプロセッサと、を含み、前記少なくとも1つのプロセッサは、前記ニューラルネットワークに含まれるノード間の連結関係に割り当てられるウェートのための個別アップデート値を計算し、前記個別アップデート値を累積バッファに累積し、前記累積バッファの累積アップデート値が臨界値以上である場合、前記累積アップデート値を利用し、前記ウェートをアップデートすることができる。
一実施形態によるニューラルネットワークの例示を示す図面である。 一実施形態によるニューラルネットワークにおいて、パラメータを処理する方法の一例を示すフローチャートである。 一実施形態による浮動小数点値の例示を図示した図面である。 一実施形態による固定小数点値の一例を図示した図面である。 一実施形態による固定小数点値の他の例を図示した図面である。 一実施形態によるニューラルネットワークにおいて、パラメータを処理する方法の他の例を示すフローチャートである。 一実施形態による固定小数点パラメータを利用するニューラルネットワークの例示を示す図面である。 一実施形態による、ウェートに有効アップデート値(effective update)を加算する過程の例示を示す図面である。 一実施形態による固定小数点パラメータを利用するニューラルネットワークにおいて、パラメータを処理する方法の例示を示すフローチャートである。 一実施形態による累積アップデート値の小数点の位置を調整する過程の一例を示す図面である。 一実施形態による累積アップデート値の小数点の位置を調整する過程の他の例を示す図面である。 一実施形態による浮動小数点パラメータを利用するニューラルネットワークの例示を示す図面である。 一実施形態による浮動小数点パラメータを利用するニューラルネットワークにおいて、パラメータを処理する方法の例示を示すフローチャートである。 一実施形態によるニューラルネットワーク装置の構成を示すブロック図である。
以下、添付された図面を参照しながら、ただ例示のための実施形態について詳細に説明する。以下の説明は、実施形態を具体化させるためのものであるのみ、発明の権利範囲を制限したり限定したりするものではないということは言うまでもない。詳細な説明及び実施形態から、当該技術分野の当業者が容易に類推することができることは、権利範囲に属するものであると解釈される。
本明細書で使用される「構成される」または「含む」というような用語は、明細書上に記載された多くの構成要素、または多くの段階を、必ずいずれも含むものであると解釈されるものではなく、そのうち一部構成要素または一部段階は、含まれないこともあり、またはさらなる構成要素または段階をさらに含んでもよいと解釈されなければならない。
また、本明細書で使用される「第1」または「第2」のように序数を含む用語は、多様な構成要素の説明に使用することができるが、前記構成要素は、前記用語によって限定されるものではない。前記用語は、1つの構成要素を他の構成要素から区別する目的のみに使用される。
本実施形態は、ニューラルネットワークにおいて、パラメータを処理する方法及びその装置係わるものであり、以下の実施形態が属する技術分野で当業者に周知されている事項については、詳細な説明を省略する。
図1は、一実施形態によるニューラルネットワークの例示を示す図面である。図1を参照すれば、一実施形態によるニューラルネットワーク10が図示されている。ニューラルネットワーク10は、入力レイヤ、ヒドゥンレイヤ又は隠れレイヤ(hidden layer)及び出力レイヤを含む構造を有し、受信される入力データ(例えば、I及びI)を基に演算を実行し、遂行結果を基に、出力データ(例えば、O及びO)を生成することができる。
ニューラルネットワーク10は、2個以上のヒドゥンレイヤを含むディープニューラルネットワーク(DNN:deep neural network)またはn階層ニューラルネットワーク(n-layers neural networks)でもある。例えば、図1に図示されているように、ニューラルネットワーク10は、入力レイヤ(Layer 1)、2個のヒドゥンレイヤ(Layer 2及びLayer 3)及び出力レイヤ(Layer 4)を含むDNNでもある。該DNNは、CNN(Convolutional Neural Networks)、RNN(Recurrent Neural Networks)、Deep Belief Networks、Restricted Boltzman Machinesなどを含んでもよいが、それらに制限されるものではない。
ニューラルネットワーク10がDNN構造を有する場合、有効な情報を抽出することができるさらに多くのレイヤを含むので、ニューラルネットワーク10は、従来のニューラルネットワークより複雑なデータ集合を処理することができる。一方、ニューラルネットワーク10は、4個のレイヤを含むように図示されているが、それは、例示に過ぎず、ニューラルネットワーク10は、さらに少なかったり多かったりするレイヤを含んでもよい。また、ニューラルネットワーク10は、図1に図示されたところとは異なる多様な構造のレイヤを含んでもよい。
ニューラルネットワーク10に含まれたレイヤそれぞれは、「ニューロン(neuron)」、「プロセッシングエレメント(PE:processing element)」、「ユニット(unit)」、あるいはそれらと類似した用語として知られた、複数の人工ノード(artificial node)を含んでもよい。例えば、図1に図示されているように、Layer 1は、2個のノードを含み、Layer 2は、3個のノードを含んでもよい。ただし、それらは、例示に過ぎず、ニューラルネットワーク10に含まれたレイヤそれぞれは、多様な個数のノードを含んでもよい。
ニューラルネットワーク10に含まれたレイヤそれぞれに含まれたノードは、互いに連結され、データを交換することができる。例えば、1つのノードは、他のノードからデータを受信して演算することができ、該演算結果を、さらに他のノードに出力することができる。
ノードそれぞれの出力値は、アクティベーション(activation)値とも呼ばれる。該アクティベーション値は、1ノードの出力値でありながら、次のレイヤに含まれたノードの入力値でもある。一方、ノードそれぞれは、以前レイヤに含まれたノードから受信されたアクティベーション値及びウェート(weight)に基づいて、自体のアクティベーション値を決定することができる。該ウェートは、各ノードでのアクティベーション値を計算するために利用されるパラメータであり、ノード間の連結関係に割り当てられる値でもある。
ノードそれぞれは、入力されてアクティベーション値を出力する演算ユニット(computational unit)でもあり、入力・出力をマッピングすることができる。例えば、σは、活性化関数(activation function)であり、wi jkは、(i−1)番目レイヤに含まれたk番目ノードから、i番目レイヤに含まれたj番目ノードへのウェートであり、bi jは、i番目レイヤに含まれたj番目ノードのバイアス(bias)値であり、ai jは、i番目レイヤのj番目ノードのアクティベーション値であるとするとき、アクティベーション値ai jは、次のような数式(1)に従う。
図1に図示されているように、2番目レイヤ(Layer 2)の最初ノードのアクティベーション値は、a2 1とも表現される。また、a2 1は、数式1により、a2 1=σ(w2 1,1×a1 1+w2 1,2×+ a1 2+b2 1)の値を有することができる。ただし、前述の数式1は、ニューラルネットワークでデータを理解するために利用されるアクティベーション及びウェートについて説明するための例示であるのみ、それに制限されるものではない。該アクティベーション値は、以前レイヤから受信されたアクティベーション値の加重合計(weighted sum)に活性化を適用した値を、ReLU(rectified linear unit)を通過させることによって獲得された値でもある。
一方、ニューラルネットワーク10は、ロープレシジョン・ナンバーシステム(low-precision number system)を利用することができる。ロープレシジョン・ナンバーシステムは、従来のニューラルネットワークより相対的に少ないビット個数を有するデータをパラメータとして利用することにより、精度(precision)を低くしながら、演算量を減少させるシステムを意味する。例えば、32ビットまたは64ビットの浮動小数点データまたは固定小数点データを利用する従来のニューラルネットワークとは異なり、ロープレシジョン・ナンバーシステムを利用するニューラルネットワーク10は、8ビットまたは16ビットの浮動小数点データまたは固定小数点データをパラメータとして利用することができる。
ニューラルネットワーク10が、8ビットまたは16ビットの浮動小数点データまたは固定小数点データを利用するということは、ニューラルネットワーク10のアクティベーション値、ウェート及びノードのバイアス値などのパラメータが、8ビットまたは16ビットの浮動小数点データまたは固定小数点データの形式を有するということを意味する。ただし、ロープレシジョン・ナンバーシステムを利用するニューラルネットワーク10は、さらに少ないビット個数を有する浮動小数点データまたは固定小数点データをパラメータとして利用することもでき、前述の例示に制限されるものではない。
ニューラルネットワーク10においては、数多くのデータ集合が、相互連結された複数のノード間において交換され、レイヤを通過しながら、数多くの演算過程を経る。ロープレシジョン・ナンバーシステムを利用するニューラルネットワーク10は、数多くの演算過程において、従来のニューラルネットワークより少ないビット個数を有するデータを利用するので、従来のニューラルネットワークと比較し、演算量が低減される。ただし、ロープレシジョン・ナンバーシステムを利用するニューラルネットワーク10は、演算量を減少させるとしても、正確度損失を最小化させるための技術を適用する。以下、図2ないし図11を参照し、ロープレシジョン・ナンバーシステムを利用するニューラルネットワーク10において、正確度損失を最小化させるための方法について詳細に説明する。
図2は、一実施形態によるニューラルネットワークにおいて、パラメータを処理する方法の一例を示すフローチャートである。該ニューラルネットワークは、ロープレシジョン・ナンバーシステムを利用するニューラルネットワークでもある。パラメータは、ニューラルネットワークに含まれるノード間の連結関係に割り当てられるウェートでもある。以下において、ニューラルネットワークで処理されるパラメータをウェートとして説明するが、該パラメータが必ずしもウェートに限定されるものではない。該パラメータは、ニューラルネットワークで処理される任意のデータを意味する。
図2を参照すれば、段階210において、ニューラルネットワーク装置は、ニューラルネットワークに含まれるノード間の連結関係に割り当てられるウェートのための個別アップデート(individual update)値を計算することができる。該ウェートは、浮動小数点値または固定小数点値でもある。以下、図3Aないし図3Cを参照し、浮動小数点値及び固定小数点値について説明する。
図3Aは、一実施形態による浮動小数点値の例示を図示した図面であり、図3Bは、一実施形態による固定小数点値の一例を図示した図面であり、図3Cは、一実施形態による固定小数点値の他の例を図示した図面である。
図3Aを参照すれば、浮動小数点値30は、符号ビット310、指数部(exponent part)320、仮数部(mantissa part)330及びバイアス340から構成される。該浮動小数点は、1つの数を、小数点部分(a decimal point part)を示す部分(即ち、仮数部)と、小数点位置(a decimal point position)を示す部分(即ち、指数部)とに分けて表現する表記法を意味する。
仮数部330は、小数点部分を示す部分に対応し、指数部320は、小数点位置を示す部分に対応する。符号ビット310は、浮動小数点値30の符号を決定することができる。バイアス340は、指数部320に対して加減する値であり、負の指数を表現するために決定される値でもある。浮動小数点値30は、符号ビット310、指数部320に対応するビット、及び仮数部330に対応するビットを含んでもよい。バイアス340は、浮動小数点値30に対してあらかじめ決定されており、別途にも保存される。
一方、浮動小数点値30は、符号ビット310をsign、指数部320をexponent、仮数部330をmantissa、バイアス340をbiasとするとき、次のような数式(2)による値を有することができる。
図3Bを参照すれば、固定小数点値35は、符号ビット315、整数部(integer part)325、小数部(fractional part)335及び小数点345から構成される。該固定小数点は、小数点を使用し、固定された桁数の小数を示す表記法を意味する。
符号ビット315は、固定小数点値35の符号を決定し、整数部325は、固定小数点値35の整数を示す部分に対応し、小数部335は、固定小数点値35の小数を示す部分に対応する。小数点345は、固定小数点値35の整数部325及び小数部335を区分する基準になる点を意味する。
一方、固定小数点値35が示す値は、図3Cを参照して説明することができる。図3Cを参照すれば、固定小数点値35は、8ビット固定小数点値でもある。また、固定小数点値35は、整数部325、小数部335及び小数点345によっても構成される。
整数部325及び小数部335を示すビットそれぞれは、1または0の値を有することができる。また、図3Cに図示されているように、整数部325及び小数部335を示すビットは、順に−8、+4、+2、+1、+0.5、+0.25、+0.125及び+0.0625の値を示すことができる。整数部325の最上位ビットが1である場合、整数部325の最上位ビットが示す値は、−8であるので、整数部325及び小数部335に含まれる他のビットがいかなる値を有しても、固定小数点値35が示す値は、負数である。整数部325の最上位ビットは、固定小数点値35の符号を決定する符号ビット315に対応する。
ただし、図3Cは例示に過ぎず、固定小数点値35は、16ビット固定小数点値でもあり、任意の適切な数のビット個数を有する固定小数点値でもある。また、固定小数点値35は、符号化表現法、1の補数法、及び2の補数法のうちいずれか1つの表現法によって負数を示すことができる。
再び図2に戻り、個別アップデート値は、ウェートをアップデートするために計算される値でもある。ニューラルネットワークで学習を行う対象は、ウェートであり、ニューラルネットワークがますますさらに良好な結果を出力するためには、ウェートが学習過程で反復的にアップデートされる必要がある。ウェートをアップデートするための方法のうち一つとして、例えば、傾斜下降法(gradient descent algorithm)が利用されてもよい。該傾斜下降法は、損失関数(loss function)または誤差関数(error function)の最低点を求めるために、損失関数または誤差関数の傾き方向にパラメータを調整することによって誤差を最小化させるアルゴリズムを意味する。例えば、損失関数がLであり、パラメータがθであり、学習速度(learning rate)がηであるとするとき、該パラメータは、次のような数式(3)に従って調整される。
該パラメータをアップデートするために計算されるη(∂L/∂θ)は、損失関数の傾き方向にパラメータを調整するための勾配又はグラディエント(gradient)を意味する。例えば、該パラメータがウェートであるとき、η(∂L/∂θ)は、ウェートをアップデートするために計算される個別アップデート値でもある。
一方、一般的なニューラルネットワークにおいて、個別アップデート値η(∂L/∂θ)は、ウェートよりはるかに小さい値を有する。ニューラルネットワークがロープレシジョン・ナンバーシステム(例えば、8ビットまたは16ビット)を利用する場合、個別アップデート値η(∂L/∂θ)は、ウェートが示すことができる値の範囲に含まれない。それにより、ウェートが数式3によってアップデートされるとき、個別アップデート値η(∂L/∂θ)は、無視され、ウェートは、アップデートされない。ニューラルネットワークが徐々に良好な結果を出力するためには、ウェートが反復的にアップデートされなければならないにもかかわらず、個別アップデート値η(∂L/∂θ)の大きさにより、ウェートがアップデートされないことが懸念される。
本開示によるニューラルネットワーク装置は、段階220、段階230及び段階240を遂行することにより、個別アップデート値が無視されず、ウェートをアップデートする過程で反映されるようにする。段階220において、ニューラルネットワーク装置は、個別アップデート値を、累積バッファ(accumulation buffer)に累積することができる。該累積バッファは、個別アップデート値を累積するための専用ハードウェアでもあり、個別アップデート値を累積するために割り当てされたメモリでもある。個別アップデート値は、累積バッファに累積し、累積アップデート(accumulated update)値にもなる。該累積バッファは、該累積アップデート値を保存することができる。
ロープレシジョン・ナンバーシステムを利用するニューラルネットワークにおいて、個別アップデート値がウェートをアップデートする過程において無視されないように、ニューラルネットワーク装置は、個別アップデート値をウェートに影響を与えることができる大きさまで累積することができる。
段階230において、ニューラルネットワーク装置は、累積バッファの累積アップデート値が臨界値以上である場合、累積アップデート値を利用し、ウェートをアップデートすることができる。該ニューラルネットワーク装置は、累積バッファの累積アップデート値が臨界値以上であるか否かを判断することができる。該臨界値は、累積アップデート値がウェートに影響を与えることができる大きさまで累積したか否かを決定するための値でもある。例えば、該臨界値は、ウェートの最下位有効桁数に対応する値でもある。
ウェートが固定小数点値である場合、ウェートの最下位有効桁数は、ウェートを示すビットのうち最下位ビットに対応する桁数でもある。例えば、ウェートの最下位ビットが
桁数を示す場合、ウェートの最下位有効桁数は、2-4桁数でもあり、臨界値は、該最下位有効桁数2-4桁数に対応する値である2-4でもある。
ウェートが浮動小数点値である場合、ウェートの最下位有効桁数は、ウェートの指数部を示すビットのうち最下位ビットに対応する桁数でもある。ただし、ウェートが浮動小数点値である場合には、最下位有効桁数が決定されるために、バイアスが考慮される。例えば、ウェートの指数部を示すビットのうち最下位ビットが20桁数を示しても、バイアスが8である場合、ウェートの最下位有効桁数は、2(2の0乗)=21桁数ではなく、21-8=2-7桁数であり、該臨界値は、該最下位有効桁数2-7桁数に対応する値である2-7でもある。
ただし、それは、例示に過ぎず、該臨界値は、ウェートの最下位有効桁数に対応する値、及び累積アップデート値の最上位有効桁数に対応する値の間の任意の適切な値でもある。
該累積アップデート値が臨界値以上である場合、該累積アップデート値は、ウェートに影響を与えることができる大きさを有するので、該ニューラルネットワーク装置は、累積アップデート値を利用して、ウェートをアップデートすることができる。
具体的には、該ニューラルネットワーク装置は、累積アップデート値のうちウェートの有効桁数に合算可能な部分を、有効アップデート(effective update)値として決定することができる。有効アップデート値とは、累積アップデート値からウェートをアップデートするために実際に利用される値を意味する。ウェートが示すことができる値の範囲は、ウェートに割り当てられたビット個数によって限界が存在する。従って、ウェートの最下位有効桁数以上の値のうちウェートの有効桁数に対応する値だけが、ウェートに合算される。
例えば、ウェートが1ビットの符号ビット、3ビットの整数部、及び4ビットの小数部を含む8ビット固定小数点値であるとするとき、ウェートの有効桁数は、22, 21, 20, 2-1, 2-2, 2-3,及び2-4桁でもある。ウェートが示すことができる値範囲の限界により、ウェートにある値が合算されるためには、その値が、22, 21, 20, 2-1, 2-2, 2-3,2-4桁のうちいずれか1つの桁数に対応する値を少なくとも一つ含まなければならない。例えば、ウェートに、1.265625(十進数)という値が合算されなければならないと仮定する。1.265625は、1×20+1×2-2+1×2-6であるので、ウェートの有効桁数に対応する1×20及び1×2-2は、ウェートに合算されるが、1×2-8は、ウェートが示すことができる値範囲の限界により、ウェートに合算されない。
一方、ウェートの有効桁数に合算可能な部分は、ウェートの最下位有効桁数が示す値の倍数を含んでもよい。前述の例示において、ウェートの最下位有効桁数に対応する値は、2-4であり、累積アップデート値のうちウェートの有効桁数に合算可能な部分は、22, 21, 20, 2-1, 2-2, 2-3,及び2-4桁に対応する値である22, 21, 20, 2-1, 2-2, 2-3,及び2-4である。22, 21, 20, 2-1, 2-2, 2-3,及び2-4は、いずれも最下位有効桁数に対応する値である2-4の倍数である。
臨界値は、ウェートの最下位有効桁数に対応する値でもあるので、有効アップデート値は、臨界値の倍数によっても構成される。例えば、累積アップデート値を、Accumulated updateとし、臨界値を、thresholdとするとき、該有効アップデート値は、次のような数式(4)による。
数式4において、
は、Accumulated updateをthresholdで除算した商を意味する。有効アップデート値は、累積アップデート値を臨界値で除算した商に、臨界値を乗じた値を意味する。また、該有効アップデート値は、累積アップデート値より小さい値を有する、臨界値の倍数のうち最も大きい値でもある。例えば、Accumulated updateが2.2(十進数)であり、thresholdが1(十進数)である場合、有効アップデート値は、累積アップデート値2.2より小さい値を有する、臨界値1の倍数である1、2のうち大きい方の値である2でもある。
該ニューラルネットワーク装置は、ウェートに有効アップデート値を加算することができる。該有効アップデート値は、ウェートをアップデートするために実際に利用される値であるので、該ニューラルネットワーク装置は、ウェートに有効アップデート値を加算することにより、ウェートをアップデートすることができる。
また、該ニューラルネットワーク装置は、累積バッファの累積アップデート値から有効アップデート値を減算することができる。該累積バッファの累積アップデート値のうち有効アップデート値がウェートに反映されたので、該ニューラルネットワーク装置は、累積バッファの累積アップデート値から有効アップデート値を減算することができる。例えば、ウェートがアップデートされることにより、累積アップデート値は、次のような数式(5)によって減算される。
数式(5)において、
は、有効アップデート値であるので、累積バッファの累積アップデート値は、以前の累積アップデート値から有効アップデート値を減算した値を有することができる。
該ニューラルネットワーク装置は、ウェートをアップデートした後、累積バッファの累積アップデート値に、個別アップデート値を累積し続けることができ、前述の過程を反復することができる。本開示によるニューラルネットワークにおいて、パラメータを処理する方法は、一般的に、ウェートよりはるかに小さい値を有する個別アップデート値を無視したり捨てたりする代わりに、ウェートに影響を与えることができる大きさまで累積し、ウェートに適用することにより、ロープレシジョン・ナンバーシステムを利用するニューラルネットワークでの丸め誤差(rounding error)を最小化させることができる。また、本開示によるニューラルネットワークにおいて、パラメータを処理する方法は、累積アップデート値のうちウェートにアップデートされて残った部分も、続けて累積バッファに維持することにより、正確度の損失を最小化させることができる。
一方、ニューラルネットワーク装置は、累積アップデート値が臨界値以上であるか否かを、既設定アップデート周期ごとに判断することができる。該アップデート周期は、ユーザによって事前に決定され、該ニューラルネットワーク装置によっても決定される。また、該アップデート周期は、累積アップデート値が臨界値以上であるか否かを判断するために、適切な任意の周期にも設定される。
個別アップデート値が相対的に小さい場合、アップデート周期は、相対的に長く決定され、個別アップデート値が相対的に大きい場合には、アップデート周期は、相対的に短く決定される。例えば、該アップデート周期は、個別アップデート値が計算されるたびに反復されるものと設定され、個別アップデート値が10回計算されるたびに反復されるとも設定される。ただし、それに制限されるものではない。例えば、該アップデート周期は、ニューラルネットワークのn回学習に対応する周期にも設定される。
該ニューラルネットワーク装置は、累積アップデート値が臨界値より小さい場合、次のアップデート周期まで計算された個別アップデート値を、累積バッファに累積し続けることができる。該ニューラルネットワーク装置は、次のアップデート周期に累積アップデート値が臨界値以上であるか否かをさらに判断することができ、累積アップデート値が臨界値以上である場合、累積アップデート値を利用し、ウェートをアップデートすることができる。
該累積アップデート値が臨界値以上であるか否かということが、一定周期によって判断され、ニューラルネットワーク装置で利用されるパラメータが、周期的にアップデートされることにより、ニューラルネットワークのオーバーヘッドが低減される。以下、図4を参照し、累積アップデート値が臨界値以上であるか否かを周期的に判断し、ウェートをアップデートする方法の例示について説明する。
図4は、一実施形態によるニューラルネットワークにおいて、パラメータを処理する方法の他の例を示すフローチャートである。図4を参照すれば、段階410において、時間tは、0に初期化され、アップデート周期(update_period)及び臨界値(threshold)が事前に決定される。時間tは、個別アップデート値一つが計算される時間を基本単位として有することができる。例えば、t=4は、個別アップデート値4個が計算される時間を意味する。ただし、それに制限されるものではない。アップデート周期は、1でもあり、4でもあり、1以上の任意の適切な値を有することができる。該臨界値は、累積アップデート値がウェートに影響を与える大きさまで累積されているか否かを決定するための値でもある。
段階420において、ニューラルネットワーク装置は、ニューラルネットワークに含まれるノード間の連結関係に割り当てられるウェートのための個別アップデート値を計算することができる。該個別アップデート値は、傾斜下降法を利用し、ウェートをアップデートするためのグラディエント値でもある。
段階430において、ニューラルネットワーク装置は、個別アップデート値を累積バッファに累積し、時間tに1を加えることができる。段階440において、ニューラルネットワーク装置は、時間tがアップデート周期に対応するか否かを判断することができる。時間tがアップデート周期に対応しない場合、該ニューラルネットワーク装置は、段階420に戻り、さらに個別アップデート値を計算することができる。
時間tがアップデート周期に対応する場合、該ニューラルネットワーク装置は、段階450を遂行することができる。段階450において、ニューラルネットワーク装置は、累積バッファの累積アップデート値が臨界値以上であるか否かを判断することができる。累積アップデート値が臨界値より小さい場合、該ニューラルネットワーク装置は、段階420に戻り、さらに個別アップデート値を計算することができる。このとき、時間tは、0に初期化され、前述の段階が、次のアップデート周期の間に反復される。
累積アップデート値が臨界値以上である場合、該ニューラルネットワーク装置は、段階460を遂行することができる。段階460において、該ニューラルネットワーク装置は、累積アップデート値を利用し、ウェートをアップデートすることができる。例えば、該ニューラルネットワーク装置は、ウェートに、前述の数式4による有効アップデート値を加算することにより、ウェートをアップデートすることができる。また、該ニューラルネットワーク装置は、ウェートがアップデートされることにより、累積バッファの累積アップデート値から有効アップデート値を減算することができる。
図5は、一実施形態による固定小数点パラメータを利用するニューラルネットワークの例示を示す図面である。図5を参照すれば、固定小数点パラメータを利用するニューラルネットワークにおいて、ウェート50は、第1符号ビット510、第1整数部520、第1小数部530及び第1小数点540によって構成された固定小数点値であり、累積アップデート値55は、第2符号ビット515、第2小数部535及び第2小数点(図示せず)によって構成された固定小数点値でもある。一実施形態によれば、ウェート50は、第1小数点540が移動可能な動的固定小数点(dynamic fixed point)値でもある。第1小数点540が移動されることにより、第1小数部530のビット個数(長さ)が調整される。
累積アップデート値55は、整数部を含まないこともある。例えば、第1小数点540及び第2小数点が同一である場合、累積アップデート値55は、ウェート50に比べ、相当に小さい値のみを示すことができるので、整数部を含まず、小数部(すなわち、第2小数部535)のみを含んでもよい。一方、第2小数点は、第1小数点540と同一であってもよく、異なっていてもよい。該第2小数点は、状況によっても調整される。第2小数点の位置を調整する過程については図8A及び図8Bを参照しながら詳細に説明される。
ウェート50は、mビット(mは、任意の自然数)の固定小数点値でもあり、累積アップデート値55は、nビット(nは、任意の自然数)の固定小数点値でもある。m及びnは、同一値であってもよく、異なる値であってもよい。ロープレシジョン・ナンバーシステムを利用するニューラルネットワークにおいて、m及びnそれぞれは、8または16の値を有することができるが、それらに制限されるものではない。
累積アップデート値55は、ウェート50と比較し、相対的に小さい値を有することができる。従って、ウェート50を示すビットそれぞれに対応する値は、累積アップデート値55を示すビットそれぞれに対応する値より概して大きい。ただし、ウェート50を示すビットのうちいずれか1つのビットに対応する値は、累積アップデート値55を示すビットのうちいずれか1つのビットに対応する値と同一でもある。ウェート50がアップデートされるためには、累積アップデート値55の一部が、ウェート50に合算されなければならないので、ウェート50の下位ビットのうち一部は、累積アップデート値55の上位ビットのうち一部とオーバーラップされる。
ウェート50及び累積アップデート値55の間でオーバーラップされるビット550がkビット(kは、任意の自然数)であるとするとき、該ニューラルネットワークは、実質的に、(m+n−2−k)ビットの固定小数点データを利用するところと同一の効果を得ることができる。
ウェート50及び累積アップデート値55の間でオーバーラップされるビット550は、臨界値560を基準に決定される。臨界値560は、累積アップデート値55がウェート50に影響を与える大きさまで累積されているか否かを決定するための値でもある。例えば、臨界値560は、ウェート50の最下位有効桁数に対応する値でもある。オーバーラップされるビット550は、累積アップデート値55を示すビットのうち臨界値560以上の値を示すビットでもある。オーバーラップされるビット550は、ウェート50の下位ビットのうち一部とオーバーラップされるので、ウェート50と合算される。一方、ウェート50の下位ビットは、第1小数部530を示すことができる。
個別アップデート値が累積され、累積アップデート値55がウェート50に影響を与える大きさまで大きくなれば、該ニューラルネットワーク装置は、累積アップデート値55を利用し、ウェート50をアップデートすることができる。例えば、ニューラルネットワーク装置は、累積アップデート値55の第2小数部535を示すビットのうち、ウェート50の第1小数部530とオーバーラップされる少なくとも1つのビット550が示す値をウェート50に加算することができる。オーバーラップされる少なくとも1つのビット550が示す値は、有効アップデート値に対応する。
一方、累積アップデート値55の第2小数部535を示すビットのうち、ウェート50の第1小数部530とオーバーラップされる少なくとも1つのビット550が示す値をウェート50に加算する過程において、パディング(padding)方式が適用される。以下、図6を参照し、ウェートに有効アップデート値を加算する過程について詳細に説明する。
図6は、一実施形態によるウェートに有効アップデート値を加算する過程の例示を示す図面である。図6を参照すれば、累積アップデート値610が図示されている。累積アップデート値610は、個別アップデート値が累積された値でもある。また、累積アップデート値610は、nビット固定小数点値でもある。累積アップデート値610を示すビットのうち一部が有効アップデート値614としても決定される。有効アップデート値614は、臨界値を基準に、上位方向に位置するビットのうち、符号ビット612を除いたビットに対応する。
一方、有効アップデート値614は、mビット固定小数点値であるウェート630に加算されるためにパディングされてもよい。パディングされた有効アップデート値620は、図6に図示されているように、符号ビット612、パディング部616及び有効アップデート値614を含んでもよい。パディング部616は、符号ビット612と同一値を示すビットでも充填される。パディングされた有効アップデート値620は、ウェート630と同一に、mビット固定小数点値になるので、ウェート630とも合算される。例えば、パディングされた有効アップデート値620は、符号ビット612により、ウェート630に対して加減される。
再び図5に戻り、来て、ニューラルネットワーク装置は、オーバーラップされる少なくとも1つのビット550が示す値を、ウェート50に加算した後、オーバーラップされる少なくとも1つのビット550の値を、第2符号ビット515と同一値に初期化することができる。オーバーラップされる少なくとも1つのビット550が示す値がウェート50に加算されたので、累積アップデート値55は、その値ほど減算されなければならない。オーバーラップされる少なくとも1つのビット550の値が、第2符号ビット515と同一値に初期化されることにより、累積アップデート値55は、オーバーラップされる少なくとも1つのビット550が示す値ほど減算される。
例えば、正数である累積アップデート値55が、0100011(符号ビット除外)であり、ウェート50の第1小数部530とオーバーラップされる少なくとも1つのビット550が、累積アップデート値55の上位2個ビットである01であると仮定する。また、累積アップデート値55の最上位ビットが、2-2桁を示すと仮定する。ウェート50の第1小数部530とオーバーラップされる少なくとも1つのビット550 01が示す値である0×2-2+1×2-3=2-3がウェート50に加算されることにより、累積アップデート値55から2-3が減算されなければならない。累積アップデート値55から2-3が減算されれば、累積アップデート値55は、0000011になる。累積アップデート値55の第2符号ビット515が0であるので(すなわち、累積アップデート値55が正数である)、オーバーラップされる少なくとも1つのビット550は、0に初期化される。前述の例示と異なり、累積アップデート値55が負である場合、オーバーラップされる少なくとも1つのビット550の値は、符号ビットと同一値である1にも初期化される。
図7は、一実施形態による固定小数点パラメータを利用するニューラルネットワークにおいて、パラメータを処理する方法の例示を示すフローチャートである。該ニューラルネットワークは、図5で説明したところのような固定小数点パラメータを利用するニューラルネットワークでもある。
図7を参照すれば、段階710において、時間tは、0に初期化され、モニタリング周期、アップデート周期及び臨界値が事前に決定される。段階720において、該ニューラルネットワーク装置は、ニューラルネットワークに含まれるノード間の連結関係に割り当てられるウェートのための個別アップデート値を計算することができる。
段階730において、ニューラルネットワーク装置は、個別アップデート値を累積バッファに累積し、時間tに1を加えることができる。段階740において、該ニューラルネットワーク装置は、時間tがモニタリング周期に対応するか否かを判断することができる。時間tがモニタリング周期に対応する場合、該ニューラルネットワーク装置は、段階745を遂行することができる。
段階745において、ニューラルネットワーク装置は、累積アップデート値または前記個別アップデート値をモニタリングし、モニタリング結果に基づいて、累積アップデート値の第2小数点の位置を調整することができる。該累積アップデート値の第2小数点の位置が調整されることにより、ウェート及び累積アップデート値の間でオーバーラップされるビットの個数が調整され、累積アップデート値の小数部のビット個数(長さ)が調整される。
該ニューラルネットワーク装置は、個別アップデート値及びウェートの相対的な大きさに基づいて、正確度損失を最小化させるか、あるいはオーバーヘッドを減らすために、第2小数点の位置を調整することができる。
例えば、ニューラルネットワーク装置は、個別アップデート値の平均値が、臨界値の1/a倍(aは、任意の自然数)より小さい場合、第2小数点の位置を、累積アップデート値の下位ビット方向に移動させることができる。
該個別アップデート値の平均値が、臨界値の1/a倍より小さいというのは、該個別アップデート値が相当に小さい値を有していることを意味する。該累積アップデート値の第2小数点の位置が、下位ビット方向に移動されることにより、該累積アップデート値は、さらに小さい値を表現することができるようになり、該個別アップデート値が累積アップデート値にさらに正確に反映される。該個別アップデート値が正確に反映された累積アップデート値に基づいてウェートがアップデートされることにより、ニューラルネットワークの正確度損失は、最小化される。
また、該ニューラルネットワーク装置は、該個別アップデート値の平均値が、臨界値の1/a倍より大きい場合、第2小数点の位置を、累積アップデート値の上位ビット方向に移動させることができる。
該個別アップデート値の平均値が臨界値の1/a倍より大きいというのは、個別アップデート値が相対的に大きい値を有していることを意味する。該累積アップデート値の第2小数点の位置が、上位ビット方向に移動されることにより、該累積アップデート値を示すビットのうち無視してもよさそうな大きさを有するビットが省略される。それにより、該ニューラルネットワークのオーバーヘッドが低減される。ただし、前述の内容は、例示に過ぎず、該+ニューラルネットワークは、多様な基準に基づいて、第2小数点の位置、または第2小数部のビット個数(長さ)を調整することができる。以下、図8A及び図8Bを参照し、累積アップデート値の小数点位置を調整する過程について詳細に説明する。
図8Aは、一実施形態による、累積アップデート値の小数点の位置を調整する過程の一例を示す図面であり、図8Bは、一実施形態による、累積アップデート値の小数点の位置を調整する過程の他の例を示す図面である。
図8Aを参照すれば、モニタリングされた累積アップデート値82が図示されているが、モニタリングされた累積アップデート値82の現在累積された値830及び個別アップデート値820は、臨界値810に比べ、相当に小さな大きさしか有しないということが分かる。モニタリングされた累積アップデート値82が示すことができる値の範囲に限界があるので、個別アップデート値820が、累積アップデート値82に正確に反映されない。それにより、該ニューラルネットワークは、該累積アップデート値の小数点の位置を、累積アップデート値の下位ビット方向に移動させることができる。
小数点が移動された累積アップデート値83は、現在累積された値830及び個別アップデート値820をさらに正確に反映させることができる。一方、小数点が移動されることにより、累積アップデート値83がさらに表現可能な値に対応するビットは、0、または任意の数によっても充填される。
図8Bを参照すれば、モニタリングされた累積アップデート値84が図示されているが、モニタリングされた累積アップデート値84の個別アップデート値840が臨界値810よりは小さいとしても、相対的に大きい値を有し、現在累積された値850が臨界値810より大きい値を有するということが分かる。該ニューラルネットワーク装置は、累積アップデート値を示すビットのうち、無視してもよさそうな大きさを有するビットを省略させるために、累積アップデート値の小数点の位置を累積アップデート値の上位ビット方向に移動させることができる。それにより、アップデート周期の間、累積アップデート値がmビットで表現することができる値を超えることが防止される。
再び図7に戻り、段階745において、ニューラルネットワーク装置は、累積アップデート値の第2小数点の位置を調整した後、段階720段階に戻り、さらに個別アップデート値を計算することができる。
一方、段階740において、時間tがモニタリング周期に対応しないと判断される場合、該ニューラルネットワーク装置は、段階750を遂行することができる。段階750において、該ニューラルネットワーク装置は、時間tがアップデート周期に対応するか否かを判断することができる。時間tがアップデート周期に対応しない場合、該ニューラルネットワーク装置は、段階720に戻り、さらに個別アップデート値を計算することができる。このとき、時間tは、0に初期化され、前述の段階が、次のアップデート周期の間に反復される。
時間tがアップデート周期に対応する場合、該ニューラルネットワーク装置は、段階760を遂行することができる。段階760において、該ニューラルネットワーク装置は、累積バッファの累積アップデート値が臨界値以上であるか否かを判断することができる。該累積アップデート値が臨界値より小さい場合、該ニューラルネットワーク装置は、段階720に戻り、さらに個別アップデート値を計算することができる。
該累積アップデート値が臨界値以上である場合、該ニューラルネットワーク装置は、段階770を遂行することができる。段階770において、該ニューラルネットワーク装置は、累積アップデート値を利用し、ウェートをアップデートすることができる。例えば、該ニューラルネットワーク装置は、ウェートに、前述の数式4による有効アップデート値を加算することにより、ウェートをアップデートすることができる。また、該ニューラルネットワーク装置は、ウェートがアップデートされることにより、累積バッファの累積アップデート値から有効アップデート値を減算することができる。該ニューラルネットワーク装置は、状況により、ウェートの小数点の位置、または小数部のビット個数(長さ)を調整することもできる。
図9は、一実施形態による浮動小数点パラメータを利用するニューラルネットワークの例示を示す図面である。図9を参照すれば、浮動小数点パラメータを利用するニューラルネットワークにおいて、ウェート90は、第1符号ビット910、第1指数部920、第1仮数部930及び第1バイアス940によって構成された浮動小数点値であり、累積アップデート値95は、第2符号ビット915、第2指数部925、第2仮数部935及び第2バイアス945によって構成された浮動小数点値でもある。
ウェート90は、mビット(mは、任意の自然数)の浮動小数点値でもあり、累積アップデート値95は、nビット(nは、任意の自然数)の浮動小数点値でもある。m及びnは、同一値でもあり、異なる値でもある。ロープレシジョン・ナンバーシステムを利用するニューラルネットワークにおいて、m及びnそれぞれは、8または16の値を有することができるが、それに制限されるものではない。
累積アップデート値95は、ウェート90のための個別アップデート値が累積された値でもある。ただし、累積アップデート値95は、制限されたビット個数を有する浮動小数点値の限界により、累積アップデート値95の有効数字範囲に含まれる、個別アップデート値それぞれの実効値(effective value)だけが累積された値でもある。
また、制限されたビット個数を有する浮動小数点値の限界により、ウェート90の有効数字範囲に含まれる、累積アップデート値95の実効値だけがウェート90に加えられる。累積アップデート値95の実効値は、累積アップデート値95において、ウェート90の有効桁数に合算可能な部分を意味する。
ウェート90が累積アップデート値95の実効値によってアップデートされることにより、累積アップデート値95は、アップデートされた部分ほど減算される。制限されたビット個数を有する浮動小数点値の限界により、累積アップデート値95は、アップデートされたウェートからウェート90を減算した値と異なり得る。
一方、浮動小数点値は、バイアスが変更されることにより、動的に変更される。従って、浮動小数点値の指数部が同一であるとしても、バイアスにより、相対的に小さい値が表現され得る。ウェート90の第1バイアス940と、累積アップデート値95の第2バイアス945との相対的な差は、状況によって適切に調整される。
図10は、一実施形態による、浮動小数点パラメータを利用するニューラルネットワークにおいて、パラメータを処理する方法の例示を示すフローチャートである。該ニューラルネットワークは、図9で説明したような浮動小数点パラメータを利用するニューラルネットワークでもある。
図10を参照すれば、段階1010において、時間tは、0に初期化され、モニタリング周期、アップデート周期及び臨界値が事前に決定される。段階1020において、該ニューラルネットワーク装置は、該ニューラルネットワークに含まれるノード間の連結関係に割り当てられるウェートのための個別アップデート値を計算することができる。
段階1030において、該ニューラルネットワーク装置は、個別アップデート値を累積バッファに累積し、時間tに1を加えることができる。段階1040において、ニューラルネットワーク装置は、時間tがモニタリング周期に対応するか否かを判断することができる。時間tがモニタリング周期に対応する場合、該ニューラルネットワーク装置は、段階1045を遂行することができる。
段階1045において、該ニューラルネットワーク装置は、累積アップデート値または個別アップデート値をモニタリングし、モニタリング結果に基づいて、累積アップデート値の第2バイアスを調整することができる。該累積アップデート値の第2バイアスが調整されることにより、累積アップデート値が示すことができる値の範囲が調整される。
該ニューラルネットワーク装置は、累積アップデート値及び臨界値の相対的な大きさに基づいて、正確度損失を最小化させるか、あるいはオーバーヘッドを減らすために、累積アップデート値の第2バイアスを調整することができる。
例えば、該ニューラルネットワーク装置は、累積アップデート値の第2指数部が臨界値を超える場合、第2バイアスを増大させることができる。該累積アップデート値の第2指数部が臨界値を超えるということは、累積アップデート値が相対的に大きい値を有しているということを意味する。該累積アップデート値の第2バイアスが増大されることにより、該累積アップデート値を示すビットのうち無視してもよさそうな大きさを有するビットが省略される。それにより、該ニューラルネットワークのオーバーヘッドが低減される。
また、該ニューラルネットワーク装置は、該累積アップデート値が、臨界値の1/b倍(bは、任意の自然数)より小さい場合、第2バイアスを低減させることができる。累積アップデート値が、臨界値の1/b倍より小さいということは、個別アップデート値が相当に小さい値を有していることを意味する。該累積アップデート値の第2バイアスが低減されることにより、該累積アップデート値は、さらに小さい値を表現することができるようになり、該個別アップデート値が累積アップデート値にさらに正確に反映される。該個別アップデート値が正確に反映された累積アップデート値により、ウェートがアップデートされることにより、該ニューラルネットワークの正確度損失は、最小化される。
ニューラルネットワーク装置は、段階1045において、累積アップデート値の第2バイアスの位置を調整した後、段階1020段階に戻り、さらに個別アップデート値を計算することができる。
一方、段階1040において、時間tがモニタリング周期に対応しないと判断される場合、ニューラルネットワーク装置は、段階1050を遂行することができる。段階1050において、ニューラルネットワーク装置は、時間tがアップデート周期に対応するか否かを判断することができる。時間tがアップデート周期に対応しない場合、ニューラルネットワーク装置は、段階1020に戻り、さらに個別アップデート値を計算することができる。このとき、時間tは、0に初期化され、前述の段階が、次のアップデート周期の間に反復される。
時間tがアップデート周期に対応する場合、該ニューラルネットワーク装置は、段階1060を遂行することができる。段階1060において、該ニューラルネットワーク装置は、累積バッファの累積アップデート値が臨界値以上であるか否かを判断することができる。該累積アップデート値が臨界値より小さい場合、該ニューラルネットワーク装置は、段階1020に戻り、さらに個別アップデート値を計算することができる。
該累積アップデート値が臨界値以上である場合、該ニューラルネットワーク装置は、段階1070を遂行することができる。段階1070において、該ニューラルネットワーク装置は、累積アップデート値を利用し、ウェートをアップデートすることができる。例えば、該ニューラルネットワーク装置は、ウェートに、前述の数式4による有効アップデート値を加算することにより、ウェートをアップデートすることができる。また、該ニューラルネットワーク装置は、ウェートがアップデートされることにより、累積バッファの累積アップデート値から有効アップデート値を減算することができる。該ニューラルネットワーク装置は、状況により、ウェートの小数点の位置、または小数部のビット個数(長さ)を調整することもできる。
一方、図2、図4、図7及び図10に図示されたニューラルネットワークにおいて、パラメータを処理する方法は、その方法を実行する命令語を含む1以上のプログラムが記録されたコンピュータで読み取り可能な記録媒体にも記録される。コンピュータで読み取り可能な可能記録媒体の例には、ハードディスク、フロッピィーディスク及び磁気テープのような磁気媒体(magnetic media);CD−ROM(compact disc read only memory)、DVD(digital versatile disc)のような光記録媒体(optical media);フロプティカルディスク(floptical disk)のような磁気・光媒体(magneto-optical media);及びROM(read-only memory)、RAM(random access memory)、フラッシュメモリのようなプログラム命令を保存して遂行するように特別に構成されたハードウェア装置が含まれる。プログラム命令語の例には、コンパイラによって作られるような機械語コードだけではなく、インタープリタなどを使用してコンピュータによって実行される高級言語コードを含む。
図11は、一実施形態によるニューラルネットワーク装置の構成を示すブロック図である。図11を参照すれば、ニューラルネットワーク装置11は、少なくとも1つのプロセッサ1110、及びメモリ1120を含んでもよい。図11に図示されたニューラルネットワーク装置11には、本実施形態と係わる構成要素だけが図示されている。従って、ニューラルネットワーク装置11に、図11に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれ得るということは、当業者に自明である。例えば、ニューラルネットワーク装置11は、センサモジュール(図示せず)及び通信モジュール(図示せず)などをさらに含んでもよい。
一方、ニューラルネットワーク装置11は、図2ないし図10のニューラルネットワーク装置に対応する。また、ニューラルネットワーク装置11は、図2、図4、図7及び図10に図示された方法を時系列的に処理することができる。従って、以下で省略された内容であるとしても、図2、図4、図7及び図10の方法について、以上で記述された内容は、図11のニューラルネットワーク装置11によって遂行されるということが分かる。
ニューラルネットワーク装置11は、家電製品、モバイルコンピュータデバイス及びサーバのうち少なくとも一つに含まれるか、あるいは家電製品、モバイルコンピュータデバイス及びサーバのうち少なくとも一つに、有無線で連結されるようにも具現される。また、ニューラルネットワーク装置11は、デバイスとサーバとの結合によっても具現される。ユーザの入力を受信するデバイスと、ニューラルネットワークを学習させるサーバとが別途に存在し、デバイスとサーバとの通信を介して推論が行われる。ここで、単一デバイスで推論が行われするが、前記例示に制限されるものではないということは言うまでもない。
少なくとも1つのプロセッサ1110は、1または複数のプロセッサによっても具現される。例えば、少なくとも1つのプロセッサ1110は、多数の論理ゲートのアレイによって具現され、汎用的なマイクロプロセッサと、該マイクロプロセッサで実行されるプログラムが保存されたメモリの組み合わせによっても具現される。例えば、少なくとも1つのプロセッサ1110は、CPU(central processing unit)、GPU(graphics processing unit)、ハードウェア加速器などでもある。
少なくとも1つのプロセッサ1110は、ニューラルネットワーク装置11を制御するための全般的な役割を行うことができる。例えば、少なくとも1つのプロセッサ1110は、ニューラルネットワーク装置11内のメモリ1120に保存されたプログラムを実行することにより、ニューラルネットワーク装置11を全般的に制御することができる。また、少なくとも1つのプロセッサ1110は、メモリ1120に保存されたプログラムを実行することにより、ニューラルネットワーク装置11の機能を並列的に遂行することができる。
少なくとも1つのプロセッサ1110は、ニューラルネットワークのレイヤに含まれたノードそれぞれの機能を遂行することができる。例えば、少なくとも1つのプロセッサ1110は、アクティベーション値及びウェートを利用し、ニューラルネットワーク演算またはマトリックス演算を行うことができる。また、少なくとも1つのプロセッサ1110は、図2ないし図10に記載されたニューラルネットワーク装置11の機能を遂行することができる。
具体的には、少なくとも1つのプロセッサ1110は、該ニューラルネットワークに含まれるノード間の連結関係に割り当てられるウェートのための個別アップデート値を計算することができる。該ウェートは、浮動小数点値または固定小数点値でもある。
また、少なくとも1つのプロセッサ1110は、個別アップデート値を累積バッファ(図示せず)に累積することができる。該累積バッファは、個別アップデート値を累積するための専用ハードウェアでもあり、該個別アップデート値を累積するために割り当てられたメモリ1120の一部分でもある。該個別アップデート値は、累積バッファに累積され、累積アップデート値にもなる。該累積バッファは、累積アップデート値を保存することができる。
少なくとも1つのプロセッサ1110は、累積バッファの累積アップデート値が臨界値以上であるか否かを判断することができる。該臨界値は、累積アップデート値がウェートに影響を与える大きさまで累積されているか否かを決定するための値でもある。例えば、該臨界値は、ウェートの最下位有効桁数に対応する値でもある。
少なくとも1つのプロセッサ1110は、累積アップデート値が臨界値以上である場合、累積アップデート値を利用し、ウェートをアップデートすることができる。該累積アップデート値が臨界値以上である場合、累積アップデート値は、ウェートに影響を与える大きさを有するので、少なくとも1つのプロセッサ1110は、累積アップデート値を利用し、ウェートをアップデートすることができる。
少なくとも1つのプロセッサ1110は、累積アップデート値のうちウェートの有効桁数に合算可能な部分を有効アップデート値として決定することができる。少なくとも1つのプロセッサ1110は、ウェートに有効アップデート値を加算することができ、累積バッファの累積アップデート値から有効アップデート値を減算することができる。
少なくとも1つのプロセッサ1110は、一般的に、ウェートよりはるかに小さい値を有する個別アップデート値を無視したり捨てたりする代わりに、ウェートに影響を与える大きさまで累積してウェートに適用することにより、ロープレシジョン・ナンバーシステムを利用するニューラルネットワークでの四捨五入誤差を最小化させることができる。
一方、少なくとも1つのプロセッサ1110は、累積アップデート値が臨界値以上であるか否かを、既設定アップデート周期ごとに判断することができる。該アップデート周期は、ユーザによっても事前に決定され、少なくとも1つのプロセッサ1110によっても決定される。少なくとも1つのプロセッサ1110は、累積アップデート値が臨界値より小さい場合、次のアップデート周期まで、計算された個別アップデート値を累積バッファに累積し続けることができる。
少なくとも1つのプロセッサ1110は、次のアップデート周期に、累積アップデート値が臨界値以上であるか否かをさらに判断することができ、累積アップデート値が臨界値以上である場合、累積アップデート値を利用し、ウェートをアップデートすることができる。
該累積アップデート値が臨界値以上であるか否かということが、一定周期によって判断され、ニューラルネットワーク装置11で利用されるパラメータが、周期的にアップデートされることにより、該ニューラルネットワークのオーバーヘッドが低減される。
ウェートが、第1符号ビット、第1整数部、第1小数部及び第1小数点によって構成された固定小数点値であり、累積アップデート値が、第2符号ビット、第2小数部及び第2小数点によって構成された固定小数点値である場合、少なくとも1つのプロセッサ1110は、累積アップデート値の第2小数部を示すビットのうち、ウェートの第1小数部とオーバーラップされる少なくとも1つのビットが示す値をウェートに加算し、オーバーラップされる少なくとも1つのビットの値を、第2符号ビットと同一値に初期化することができる。
また、少なくとも1つのプロセッサ1110は、累積アップデート値及び個別アップデート値をモニタリングし、モニタリング結果に基づいて、累積アップデート値の第2小数点の位置を調整することができる。例えば、少なくとも1つのプロセッサ1110は、個別アップデート値の平均値が、臨界値の1/a倍より小さい場合、第2小数点の位置を、累積アップデート値の下位ビット方向に移動させ、個別アップデート値の平均値が臨界値の1/a倍より大きい場合、第2小数点の位置を、累積アップデート値の上位ビット方向に移動させることができる。
一方、ウェートが、第1符号ビット、第1指数部、第1仮数部及び第1バイアスによって構成された浮動小数点値であり、累積アップデート値が、第2符号ビット、第2指数部、第2仮数部及び第2バイアスによって構成された浮動小数点値である場合、少なくとも1つのプロセッサ1110は、ウェートの有効数字範囲に含まれる、累積アップデート値の実効値をウェートに加算することができる。
また、少なくとも1つのプロセッサ1110は、累積アップデート値をモニタリングし、モニタリング結果に基づいて、累積アップデート値の第2バイアスを調整することができる。例えば、少なくとも1つのプロセッサ1110は、累積アップデート値の第2指数部が臨界値を超える場合、第2バイアスを増大させ、累積アップデート値が臨界値の1/b倍より小さい場合、第2バイアスを低減させることができる。
メモリ1120は、ニューラルネットワーク装置11内で処理される各種データを保存するハードウェアであり、例えば、メモリ1120は、ニューラルネットワーク装置11で処理されたデータ、及び処理されるデータを保存することができる。また、メモリ1120は、ニューラルネットワーク装置11によって駆動されるアプリケーション、ドライバなどを保存することができる。メモリ1120は、DRAM(dynamic random access memory)・SRAM(static random access memory)のようなRAM(random access memory)、ROM(read-only memory)、EEPROM(electrically erasable programmable read-only memory)、CD−ROM、ブルーレイ(登録商標(Blu-ra))または他の光学ディスクストレージ、HDD(hard disk drive)、SSD(solid-state drive)またはフラッシュメモリを含んでもよい。
また、メモリ1120は、ニューラルネットワーク装置11に含まれた少なくとも1つのプロセッサ1110が共有する内蔵メモリ、または少なくとも1つのプロセッサ1110を支援する複数の内蔵メモリをさらに含んでもよい。
以上、実施形態について詳細に説明したが、本発明の権利範囲は、それらに限定されるものではなく、特許請求の範囲で定義している本発明の基本概念を利用した当業者の多くの変形、及び改良形態も、本発明の権利範囲に属する。
本発明のニューラルネットワーク方法及びその装置は、例えば、情報処理関連の技術分野に効果的に適用可能である。
10 ニューラルネットワーク
30 浮動小数点値
310,315 符号ビット
320 指数部
330 仮数部
340 バイアス
35 固定小数点値8ビット固定小数点)
325 整数部
335 小数部
345 小数点

Claims (20)

  1. ロープレシジョン・ナンバーシステムを利用するニューラルネットワークにおいて、パラメータを処理する方法において、
    前記ニューラルネットワークに含まれるノード間の連結関係に割り当てられるウェートのための個別アップデート値を計算する段階と、
    前記個別アップデート値を累積バッファに累積する段階と、
    前記累積バッファの累積アップデート値が臨界値以上である場合、前記累積アップデート値を利用し、前記ウェートをアップデートする段階と、を含む方法。
  2. 前記臨界値は、前記ウェートの最下位有効桁数に対応する値であり、
    前記アップデートする段階は、
    前記累積アップデート値のうち、前記ウェートの有効桁数に合算可能な部分を、有効アップデート値として決定する段階と、
    前記ウェートに前記有効アップデート値を加算する段階と、
    前記累積バッファの前記累積アップデート値から前記有効アップデート値を減算する段階と、を含むことを特徴とする請求項1に記載の方法。
  3. 前記方法は、
    前記累積アップデート値が前記臨界値以上であるか否かを、既設定アップデート周期ごとに判断する段階をさらに含むことを特徴とする請求項1に記載の方法。
  4. 前記方法は、
    前記累積アップデート値が前記臨界値より小さい場合、次のアップデート周期まで、前記計算された個別アップデート値を、前記累積バッファに累積し続ける段階をさらに含むことを特徴とする請求項3に記載の方法。
  5. 前記ウェートが、第1符号ビット、第1整数部及び第1小数部によって構成された固定小数点値であり、前記累積アップデート値が、第2符号ビット及び第2小数部によって構成された固定小数点値である場合、
    前記アップデートする段階は、
    前記累積アップデート値の前記第2小数部を示すビットのうち、前記ウェートの前記第1小数部とオーバーラップされる少なくとも1つのビットが示す値を、前記ウェートに加算する段階と、
    前記オーバーラップされる少なくとも1つのビットの値を、前記第2符号ビットと同一値に初期化する段階と、を含むことを特徴とする請求項1ないし4のうち何れか一項に記載の方法。
  6. 前記方法は、
    前記計算された個別アップデート値をモニタリングする段階と、
    前記モニタリングの結果に基づいて、前記累積アップデート値の小数点の位置を調整する段階をさらに含むことを特徴とする請求項5に記載の方法。
  7. 前記モニタリングする段階は、
    前記個別アップデート値の平均値をモニタリングする段階を含み、
    前記調整する段階は、
    前記個別アップデート値の平均値が前記臨界値の1/a倍(aは任意の自然数)より小さい場合、前記累積アップデート値の小数点の位置を、前記累積アップデート値の下位ビット方向に移動させる段階と、
    前記個別アップデート値の平均値が前記臨界値の1/a倍より大きい場合、前記累積アップデート値の小数点の位置を、前記累積アップデート値の上位ビット方向に移動させる段階と、を含むことを特徴とする請求項6に記載の方法。
  8. 前記ウェートは、前記第1小数部のビット個数を調整することができる動的固定小数点値であることを特徴とする請求項5に記載の方法。
  9. 前記ウェートが、第1符号ビット、第1指数部、第1仮数部及び第1バイアスによって構成された浮動小数点値であり、前記累積アップデート値が、第2符号ビット、第2指数部、第2仮数部及び第2バイアスによって構成された浮動小数点値である場合、
    前記アップデートする段階は、
    前記ウェートの有効数字範囲に含まれる、前記累積アップデート値の実効値を、前記ウェートに加算する段階を含むことを特徴とする請求項1ないし8のうち何れか一項に記載の方法。
  10. 前記方法は、
    前記累積アップデート値をモニタリングする段階と、
    前記モニタリングの結果に基づいて、前記累積アップデート値の前記第2バイアスを調整する段階と、をさらに含むことを特徴とする請求項9に記載の方法。
  11. 前記調整する段階は、
    前記累積アップデート値の前記第2指数部が前記臨界値を超える場合、前記第2バイアスを増大させる段階と、
    前記累積アップデート値が前記臨界値の1/b倍(bは任意の自然数)より小さい場合、前記第2バイアスを低減させる段階と、を含むことを特徴とする請求項10に記載の方法。
  12. 請求項1ないし11のうちいずれか1項に記載の方法をコンピュータに実行させる命令語を含むコンピュータプログラム。
  13. ロープレシジョン・ナンバーシステムを利用するニューラルネットワークを実現する装置において、
    少なくとも1つのプログラムが保存されたメモリと、
    前記少なくとも1つのプログラムを実行することにより、前記ニューラルネットワークにおいて、パラメータを処理する少なくとも1つのプロセッサと、を含み、
    前記少なくとも1つのプロセッサは、
    前記ニューラルネットワークに含まれるノード間の連結関係に割り当てられるウェートのための個別アップデート値を計算し、前記個別アップデート値を累積バッファに累積し、前記累積バッファの累積アップデート値が臨界値以上である場合、前記累積アップデート値を利用し、前記ウェートをアップデートする装置。
  14. 前記臨界値は、前記ウェートの最下位有効桁数に対応する値であり、
    前記少なくとも1つのプロセッサは、
    前記累積アップデート値のうち、前記ウェートの有効桁数に合算可能な部分を有効アップデート値として決定し、前記ウェートに前記有効アップデート値を加算し、前記累積バッファの前記累積アップデート値を、前記有効アップデート値ほど減算することを特徴とする請求項13に記載の装置。
  15. 前記少なくとも1つのプロセッサは、
    前記累積アップデート値が前記臨界値以上であるか否かを、既設定アップデート周期ごとに判断することを特徴とする請求項13に記載の装置。
  16. 前記少なくとも1つのプロセッサは、
    前記累積アップデート値が前記臨界値より小さい場合、次のアップデート周期まで、前記計算された個別アップデート値を、前記累積バッファに累積し続けることを特徴とする請求項15に記載の装置。
  17. 前記ウェートが、第1符号ビット、第1整数部及び第1小数部によって構成された固定小数点値であり、前記累積アップデート値が、第2符号ビット及び第2小数部によって構成された固定小数点値である場合、
    前記少なくとも1つのプロセッサは、
    前記累積アップデート値の前記第2小数部を示すビットのうち、前記ウェートの前記第1小数部とオーバーラップされる少なくとも1つのビットが示す値を、前記ウェートに加算し、前記オーバーラップされる少なくとも1つのビットの値を、前記第2符号ビットと同一値に初期化することを特徴とする請求項13ないし16のうち何れか一項に記載の装置。
  18. 前記少なくとも1つのプロセッサは、
    前記計算された個別アップデート値をモニタリングし、前記モニタリングの結果に基づいて、前記累積アップデート値の小数点の位置を調整することを特徴とする請求項17に記載の装置。
  19. 前記少なくとも1つのプロセッサは、
    前記計算された個別アップデート値の平均値をモニタリングし、前記個別アップデート値の平均値が前記臨界値の1/a倍より小さい場合、前記累積アップデート値の小数点の位置を、前記累積アップデート値の下位ビット方向に移動させ、前記個別アップデート値の平均値が前記臨界値の1/a倍より大きい場合、前記累積アップデート値の小数点の位置を、前記累積アップデート値の上位ビット方向に移動させることを特徴とする請求項18に記載の装置。
  20. 前記ウェートが、第1符号ビット、第1指数部、第1仮数部及び第1バイアスによって構成された浮動小数点値であり、前記累積アップデート値が、第2符号ビット、第2指数部、第2仮数部及び第2バイアスによって構成された浮動小数点値である場合、
    前記少なくとも1つのプロセッサは、
    前記ウェートの有効数字範囲に含まれる前記累積アップデート値の実効値を、前記ウェートに加算することを特徴とする請求項13に記載の装置。
JP2018198683A 2017-10-23 2018-10-22 パラメータ処理方法及び装置 Active JP7072484B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170137374A KR20190044878A (ko) 2017-10-23 2017-10-23 뉴럴 네트워크에서 파라미터를 처리하는 방법 및 장치
KR10-2017-0137374 2017-10-23

Publications (2)

Publication Number Publication Date
JP2019079535A true JP2019079535A (ja) 2019-05-23
JP7072484B2 JP7072484B2 (ja) 2022-05-20

Family

ID=63832196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018198683A Active JP7072484B2 (ja) 2017-10-23 2018-10-22 パラメータ処理方法及び装置

Country Status (5)

Country Link
US (2) US11544549B2 (ja)
EP (1) EP3474195A1 (ja)
JP (1) JP7072484B2 (ja)
KR (1) KR20190044878A (ja)
CN (1) CN109697510B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020213344A1 (ja) 2019-04-18 2020-10-22 学校法人慶應義塾 大腸癌の発癌リスクを検出する方法及びキット
JP2020201646A (ja) * 2019-06-07 2020-12-17 富士通株式会社 演算処理装置、制御方法、及び制御プログラム
EP3792837A1 (en) 2019-09-09 2021-03-17 Fujitsu Limited Learning program and learning method
EP3796233A1 (en) 2019-09-13 2021-03-24 Fujitsu Limited Information processing device and method, and program
JP2022502724A (ja) * 2019-08-28 2022-01-11 上海寒武紀信息科技有限公司Shanghai Cambricon Information Technology Co., Ltd データを処理するための方法、装置、および関連製品

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6540725B2 (ja) * 2017-01-30 2019-07-10 富士通株式会社 演算処理装置、方法、およびプログラム
US11037330B2 (en) * 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
CN108427671B (zh) * 2018-01-25 2021-06-25 腾讯科技(深圳)有限公司 信息转换方法和装置、存储介质及电子装置
US10592208B2 (en) * 2018-05-07 2020-03-17 International Business Machines Corporation Very low precision floating point representation for deep learning acceleration
US11568207B2 (en) 2018-09-27 2023-01-31 Deepmind Technologies Limited Learning observation representations by predicting the future in latent space
JP6852141B2 (ja) * 2018-11-29 2021-03-31 キヤノン株式会社 情報処理装置、撮像装置、情報処理装置の制御方法、および、プログラム
US11995854B2 (en) * 2018-12-19 2024-05-28 Nvidia Corporation Mesh reconstruction using data-driven priors
US11556615B2 (en) * 2019-05-03 2023-01-17 Tesla, Inc. Data path for scalable matrix node engine with mixed data formats
JP2021124849A (ja) * 2020-02-04 2021-08-30 富士通株式会社 演算処理装置、演算処理装置の制御方法及び演算処理プログラム
US10970619B1 (en) * 2020-08-21 2021-04-06 Moffett Technologies Co., Limited Method and system for hierarchical weight-sparse convolution processing
US20220199078A1 (en) * 2020-12-22 2022-06-23 Samsung Electronics Co., Ltd. Electronic apparatus, system comprising electronic apparatus and server and controlling method thereof
CN113984135A (zh) * 2021-10-11 2022-01-28 青岛海尔空调电子有限公司 流量统计方法、装置、计算机可读存储介质及系统
CN113933652A (zh) * 2021-10-15 2022-01-14 南方电网科学研究院有限责任公司 一种配电网高阻接地识别装置算法升级方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0730373A (ja) * 1993-07-07 1995-01-31 Nippondenso Co Ltd デジタルフィルタ
JPH0784975A (ja) * 1993-09-10 1995-03-31 Hitachi Ltd 情報処理装置および学習演算処理方法
US20170061279A1 (en) * 2015-01-14 2017-03-02 Intel Corporation Updating an artificial neural network using flexible fixed point representation
CN106650931A (zh) * 2016-12-09 2017-05-10 曙光信息产业(北京)有限公司 混合精度深度学习算法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4918618A (en) * 1988-04-11 1990-04-17 Analog Intelligence Corporation Discrete weight neural network
US7290024B2 (en) * 2003-12-18 2007-10-30 Intel Corporation Methods and apparatus for performing mathematical operations using scaled integers
DK3114540T3 (da) 2014-03-06 2021-04-19 Progress Inc Neuralt netværk og fremgangsmåder til træning af neuralt netværk
US20150324690A1 (en) * 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
US10223635B2 (en) * 2015-01-22 2019-03-05 Qualcomm Incorporated Model compression and fine-tuning
CN106796668B (zh) * 2016-03-16 2019-06-14 香港应用科技研究院有限公司 用于人工神经网络中比特深度减少的方法和系统
US10831444B2 (en) 2016-04-04 2020-11-10 Technion Research & Development Foundation Limited Quantized neural network training and inference
CN107239826A (zh) * 2017-06-06 2017-10-10 上海兆芯集成电路有限公司 在卷积神经网络中的计算方法及装置
KR102601604B1 (ko) 2017-08-04 2023-11-13 삼성전자주식회사 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0730373A (ja) * 1993-07-07 1995-01-31 Nippondenso Co Ltd デジタルフィルタ
JPH0784975A (ja) * 1993-09-10 1995-03-31 Hitachi Ltd 情報処理装置および学習演算処理方法
US20170061279A1 (en) * 2015-01-14 2017-03-02 Intel Corporation Updating an artificial neural network using flexible fixed point representation
CN106650931A (zh) * 2016-12-09 2017-05-10 曙光信息产业(北京)有限公司 混合精度深度学习算法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020213344A1 (ja) 2019-04-18 2020-10-22 学校法人慶應義塾 大腸癌の発癌リスクを検出する方法及びキット
JP2020201646A (ja) * 2019-06-07 2020-12-17 富士通株式会社 演算処理装置、制御方法、及び制御プログラム
JP7272121B2 (ja) 2019-06-07 2023-05-12 富士通株式会社 演算処理装置、制御方法、及び制御プログラム
JP2022502724A (ja) * 2019-08-28 2022-01-11 上海寒武紀信息科技有限公司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

Also Published As

Publication number Publication date
US20190122106A1 (en) 2019-04-25
US11544549B2 (en) 2023-01-03
US20230102087A1 (en) 2023-03-30
KR20190044878A (ko) 2019-05-02
JP7072484B2 (ja) 2022-05-20
CN109697510A (zh) 2019-04-30
CN109697510B (zh) 2024-03-08
EP3474195A1 (en) 2019-04-24

Similar Documents

Publication Publication Date Title
JP7072484B2 (ja) パラメータ処理方法及び装置
JP7349835B2 (ja) ニューラルネットワークにおいてパラメータを処理する方法及び装置
US11593625B2 (en) Method and apparatus with neural network parameter quantization
US20190130273A1 (en) Sequence-to-sequence prediction using a neural network model
US20180075342A1 (en) Information processing apparatus, ising unit, and information processing apparatus control method
US20170061279A1 (en) Updating an artificial neural network using flexible fixed point representation
JP7325158B2 (ja) ニューラル・ネットワーク・コアにおける動的精度のためのデータ表現
CN112074806A (zh) 使用减小的位宽向量的块浮点计算
US11093714B1 (en) Dynamic transfer learning for neural network modeling
US11868874B2 (en) Two-dimensional array-based neuromorphic processor and implementing method
US20190235834A1 (en) Optimization apparatus and control method thereof
US20200257986A1 (en) Artificial neural network implementation in field-programmable gate arrays
EP3893104A1 (en) Methods and apparatus for low precision training of a machine learning model
KR20190089685A (ko) 데이터를 처리하는 방법 및 장치
KR20210103552A (ko) 수들을 변환하기 위한 하드웨어 모듈
US11995533B1 (en) Executing replicated neural network layers on inference circuit
US20230068941A1 (en) Quantized neural network training and inference
US11301209B2 (en) Method and apparatus with data processing
CN116090511A (zh) 卷积神经网络的预处理方法和加速方法、加速系统和介质
US20240249124A1 (en) System and method of neural network processing reducing instruction usage
Nikolić et al. Schr\" odinger's FP: Dynamic Adaptation of Floating-Point Containers for Deep Learning Training
Zhang et al. Adaptive-Precision Framework for SGD Using Deep Q-Learning
Tao et al. An Approximate Parallel Annealing Ising Machine for Solving Traveling Salesman Problems
US20230185527A1 (en) Method and apparatus with data compression
US20220092380A1 (en) Optimization device, optimization method, and computer-readable recording medium storing optimization program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210415

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220331

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

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150