JP2019114231A - Quantization of neural network parameter - Google Patents

Quantization of neural network parameter Download PDF

Info

Publication number
JP2019114231A
JP2019114231A JP2018153073A JP2018153073A JP2019114231A JP 2019114231 A JP2019114231 A JP 2019114231A JP 2018153073 A JP2018153073 A JP 2018153073A JP 2018153073 A JP2018153073 A JP 2018153073A JP 2019114231 A JP2019114231 A JP 2019114231A
Authority
JP
Japan
Prior art keywords
neural network
quantization
synapse
weights
network model
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.)
Pending
Application number
JP2018153073A
Other languages
Japanese (ja)
Inventor
雅也 木船
Masaya Kibune
雅也 木船
タヌ・シュアヌ
Xuan Tan
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2019114231A publication Critical patent/JP2019114231A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

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

Abstract

To provide a method of generating a neural network.SOLUTION: The method may include a step of applying a nonlinear quantization to a plurality of synapse weights of a neural network model. The method may further include a step of training the neural network model. The method may further include a step of generating a neural network output from the trained neural network model on the basis of one or more inputs received by the trained neural network model.SELECTED DRAWING: Figure 2

Description

本開示に記載の実施形態は、ニューラルネットワークパラメータの非線形量子化に関する。   Embodiments described in the present disclosure relate to non-linear quantization of neural network parameters.

ニューラルネットワーク分析は、複数の処理層を通じて高レベル抽象化をモデル化しようと試みる生物学的ニューラルネットワークによって生じる分析のモデルを含み得る。ニューラルネットワーク分析は、大量の計算リソース及び/又はネットワークリソースを消費し得る。   Neural network analysis may include models of analysis produced by biological neural networks that attempt to model high level abstractions through multiple processing layers. Neural network analysis may consume a large amount of computing and / or network resources.

本出願において特許請求される主題は、あらゆる欠点を解決する実施形態又は上記のような環境においてのみ動作する実施形態に限定されるものではない。そうではなく、この背景技術の記載は、本開示に記載のいくつかの実施形態が実施され得る1つの例示的な技術領域を示すために提供されているに過ぎない。   The claimed subject matter in the present application is not limited to embodiments that solve any drawbacks or that operate only in the environment as described above. Rather, the description of this background is only provided to illustrate one exemplary technical area in which some embodiments described in the present disclosure may be practiced.

本開示の1つ以上の実施形態は、ニューラルネットワークを生成する方法を含み得る。この方法は、ニューラルネットワークモデルの複数のシナプス重みに非線形量子化を適用するステップを含み得る。この方法はまた、ニューラルネットワークモデルをトレーニングするステップをさらに含み得る。さらに、この方法は、トレーニングされたニューラルネットワークモデルにより受け取られた1つ以上の入力に基づいて、トレーニングされたニューラルネットワークモデルからニューラルネットワーク出力を生成するステップを含み得る。   One or more embodiments of the present disclosure may include a method of generating a neural network. The method may include applying non-linear quantization to a plurality of synapse weights of the neural network model. The method may also further include the step of training a neural network model. Additionally, the method may include generating a neural network output from the trained neural network model based on the one or more inputs received by the trained neural network model.

実施形態の目的及び利点が、少なくとも請求項において特に示される要素、特徴、及び組合せにより、実現及び達成される。前述の総括的な説明及び以下の詳細な説明の両方ともが、例示的で説明的なものであり、限定的なものではない。   The objects and advantages of the embodiments will be realized and attained by the elements, features, and combinations particularly pointed out in the claims. Both the foregoing general description and the following detailed description are exemplary and explanatory and not restrictive.

例示的な実施形態が、添付の図面を使用して、より具体的且つ詳細に記載及び説明される。
非線形関数のグラフ。 図1Aに示されている非線形関数の入力−出力特性を示すグラフ。 ニューラルネットワークを生成する例示的な方法のフローチャート。 量子化レベルの範囲についての例示的な重み分布を示す図。 関数及び量子化レベルを示す例示的なグラフ。 ニューラルネットワークを生成する別の例示的な方法のフローチャート。 ニューラルネットワークを生成するさらに別の例示的な方法のフローチャート。 例示的なコンピューティングデバイスのブロック図。
Exemplary embodiments will be described and explained more specifically and in detail using the attached drawings.
Graph of non-linear function. FIG. 1B is a graph showing the input-output characteristics of the non-linear function shown in FIG. 1A. 3 is a flowchart of an exemplary method of generating a neural network. FIG. 7 illustrates an exemplary weight distribution for a range of quantization levels. An exemplary graph showing functions and quantization levels. 6 is a flowchart of another exemplary method of generating a neural network. FIG. 7 is a flowchart of yet another exemplary method of generating a neural network. FIG. 2 is a block diagram of an exemplary computing device.

本出願において開示される様々な実施形態は、ニューラルネットワークの量子化に関する。より詳細には、いくつかの実施形態に従うと、非線形関数が、ニューラルネットワークの1つ以上のモデルの1つ以上の層の1つ以上のパラメータ(例えばシナプス重み)に適用され得る。   The various embodiments disclosed in the present application relate to the quantization of neural networks. More particularly, according to some embodiments, a non-linear function may be applied to one or more parameters (eg, synapse weights) of one or more layers of one or more models of neural networks.

ニューラルネットワークは、複数の層を有するモデルを含み得、各層内のニューロンは、結合を介して、隣接する層のニューロンに伝達可能に結合され得る。より詳細には、1つの層内の1つのニューロンは、1つの結合を介して、1つの隣接する層の1つのニューロンに伝達可能に結合され得る。さらに、隣接する層のニューロンの間の結合には、ニューロンの間の関連付けられた結合の強度又は強さを示し得るシナプス重み(例えば32ビット重み)が割り当てられ得る。   A neural network may include a model having multiple layers, and neurons in each layer may be communicatively coupled to neurons in adjacent layers via coupling. More specifically, one neuron in one layer can be communicatively coupled to one neuron in one adjacent layer via one connection. Further, connections between neurons of adjacent layers may be assigned synapse weights (eg, 32-bit weights) that may indicate the strength or strength of the associated connection between the neurons.

ニューラルネットワークは、一般に、過剰にパラメータ化され、ニューラルネットワーク内のモデルは、冗長性(例えば、シナプス重み等のトレーニングパラメータの冗長性)を含み得る。さらに、(例えば、1つ以上のモデルを含む)ニューラルネットワークを生成及び/又はトレーニングすることは、相当のリソース(例えば処理要件及び/又はメモリ)を必要とし得る。冗長性を低減するために、シナプス重み及び/又は活性化についての固定小数点実装、ネットワークプルーニング、及び(例えばハッシュ関数を介して)重みを共有すること等の様々なアプローチが存在している。   Neural networks are generally over-parameterized, and models in neural networks may include redundancy (eg, redundancy of training parameters such as synapse weights). Additionally, generating and / or training neural networks (eg, including one or more models) may require significant resources (eg, processing requirements and / or memory). There are various approaches such as fixed point implementation for synaptic weights and / or activation, network pruning, and sharing weights (eg via a hash function) to reduce redundancy.

計算コストを低減するために、線形量子化が、ニューラルネットワーク推論及び/又はトレーニングのために用いられ得るが、これは、パラメータについての数値精度を低減させ得る。さらに、乗算を加算に変換する(例えば、log(x*y)=log(x)+log(y))計算複雑性を低減するために、対数符号化を用いる量子化が用いられ得る。   Although linear quantization may be used for neural network inference and / or training to reduce computational costs, this may reduce the numerical accuracy for the parameters. Furthermore, quantization with logarithmic coding may be used to reduce the computational complexity of converting multiplications to additions (eg, log (x * y) = log (x) + log (y)).

ニューラルネットワークを生成するいくつかの従来方法は、より広い範囲及びより細かい分解能を提供するために、ニューラルネットワークにおけるビット数を増大することを含む。しかしながら、これは、(例えば、より高いビットを伴う処理要素と、増大された量のデータが記憶されることと、に起因する)増大された計算要件及びメモリ要件をもたらし得る。   Some conventional methods of generating neural networks involve increasing the number of bits in the neural network to provide a wider range and finer resolution. However, this may result in increased computational and memory requirements (e.g., due to processing elements with higher bits and increased amounts of data being stored).

さらに、ニューラルネットワークを生成するいくつかの従来方法は、信号対分布の量子化誤差(SQNR)を最小にし得る。例えば、少なくとも1つの従来方法は、各単一データについて誤差を最小にする。これは、深層ニューラルネットワークの効率を向上させることができるが、非常に計算コストが高い、乱数発生器の相当の使用を必要とする。さらに、少なくとも1つの他の従来方法は、誤差の総量(例えばE=Σm*ε(mは、特定の量子化レベルで量子化されるデータの数である))を最小にする。トレーニングされたモデルを必要とするこの方法は、モデルをトレーニングするコストを増大させる。   In addition, some conventional methods of generating neural networks may minimize signal-to-distribution quantization error (SQNR). For example, at least one conventional method minimizes the error for each single piece of data. While this can improve the efficiency of deep neural networks, it requires considerable use of random number generators, which are very computationally expensive. Furthermore, at least one other conventional method minimizes the total amount of error (e.g. E = Σ m * ε (m is the number of data to be quantized at a particular quantization level)). This method of requiring a trained model increases the cost of training the model.

さらに、より大きな学習された重みと比較すると重要でないより小さな学習された重みを考慮する、ニューラルネットワークを生成するいくつかの従来方法は、プルーニングにより(例えば、小さな重みを有する結合をゼロに設定することにより)、効率を向上させることができるが、これらの方法は、トレーニング、プルーニング、及び微調整(チューニング:tuning)の複数のループを必要とし得、したがって、ニューラルネットワークをトレーニングする総コストが増大される。他の方法は、より大きな値にペナルティ(例えば、より少ない量子化レベル)を与える対数量子化を用い得る。   In addition, some conventional methods of generating neural networks that consider smaller learned weights that are not important compared to larger learned weights by pruning (eg, setting combinations with small weights to zero) Can improve efficiency, but these methods may require multiple loops of training, pruning, and tuning, thus increasing the total cost of training the neural network Be done. Other methods may use logarithmic quantization, which penalizes larger values (eg, fewer quantization levels).

様々な実施形態に従うと、非線形量子化を用いて、深層ニューラルネットワークの効率を向上させることができる。いくつかの実施形態に従うと、量子化は、低値入力についての粗い分解能(例えば、より少ないレベルの数)及び高値入力についての細かい分解能(例えば、より多いレベルの数)を含み得る。さらに、様々な実施形態において、非線形入力−出力特性を提供する非線形関数が使用され得る。(例えば、非線形関数を介した)非線形量子化は、ニューラルネットワークパラメータ(例えばシナプス重み)の多様性を増大することができる。例示的な非線形関数は、cosh(x)(双曲余弦関数)及びsinh(x)(双曲正弦関数)を含み得るが、これらに限定されるものではない。   According to various embodiments, non-linear quantization can be used to improve the efficiency of the deep neural network. According to some embodiments, quantization may include coarse resolution (e.g., the number of lower levels) for low value inputs and fine resolution (e.g., the number of higher levels) for high value inputs. Furthermore, in various embodiments, non-linear functions that provide non-linear input-output characteristics may be used. Non-linear quantization (eg, via a non-linear function) can increase the diversity of neural network parameters (eg, synapse weights). Exemplary non-linear functions may include, but are not limited to cosh (x) (hyperbolic cosine function) and sinh (x) (hyperbolic sine function).

ニューラルネットワーク内で処理されるデータに関連する誤差を低減するだけであるいくつかの従来システム及び方法とは対照的に、本開示の様々な実施形態は、ニューラルネットワークの出力としての分類における十分な精度を提供するために、量子化特性(例えば範囲及び/又は分解能)を向上させることができる。例えば、様々な実施形態は、重み値の範囲を変更すること(例えば増大又は低減すること)及び/又は範囲内のビット数(例えば量子化レベルの数)を変更すること(例えば増大又は低減すること)により、分解能を変更すること(例えば増大又は低減すること)に関する。   In contrast to some conventional systems and methods that only reduce errors associated with data processed in neural networks, the various embodiments of the present disclosure are sufficient in classification as outputs of neural networks. The quantization characteristics (eg, range and / or resolution) can be improved to provide accuracy. For example, various embodiments modify (eg, increase or decrease) the range of weight values and / or change (eg, increase or decrease) the number of bits within the range (eg, number of quantization levels) ) To change (eg, increase or decrease) the resolution.

従来システム及び方法と比較すると、本開示の様々な実施形態は、十分な分解能を提供し十分な範囲をカバーしながら、ビット数(本開示において「量子化レベルの数」とも呼ばれる)を低減することができる。したがって、計算コストを低減することができる。さらに、SQNRを単に最小にする代わりに、様々な実施形態は、ニューラルネットワークの精度を向上させるために、より大きな値を有する重み(例えば、より重要なパラメータ)に、より多いレベル(例えば、より多いビット)を割り当てることを含み得る。   Compared to conventional systems and methods, the various embodiments of the present disclosure reduce the number of bits (also referred to as "the number of quantization levels" in the present disclosure) while providing sufficient resolution and covering a sufficient range. be able to. Therefore, the computational cost can be reduced. Furthermore, instead of just minimizing the SQNR, various embodiments may use more levels (eg, more levels) to weights (eg, more important parameters) with larger values to improve the accuracy of the neural network. May involve allocating a large number of bits).

したがって、本開示の様々な実施形態は、本開示においてより詳細に説明されるように、人間により合理的には行われ得ないテクノロジから生じる1つ以上の問題に対する技術的解決策を提供し、本出願において開示される様々な実施形態は、上述した問題及び/又は課題を克服するために、コンピュータテクノロジに根差している。さらに、本出願において開示される少なくともいくつかの実施形態は、コンピュータにより以前には実行できなかった機能のコンピュータ実行を可能にすることにより、コンピュータ関連テクノロジを向上させることができる。   Thus, the various embodiments of the present disclosure provide technical solutions to one or more problems arising from technology that can not reasonably be done by humans, as described in more detail in the present disclosure; The various embodiments disclosed in the present application are rooted in computer technology in order to overcome the problems and / or problems described above. Further, at least some embodiments disclosed in the present application can improve computer related technology by enabling computer execution of functions that could not previously be performed by the computer.

本開示の様々な実施形態は、インターネット及びクラウド用途(例えば、画像分類、音声認識、言語翻訳、言語処理、感情分析レコメンデーション等)、薬学及び生物学(例えば、癌細胞検出、糖尿病分類、創薬等)、メディア及びエンターテイメント(例えば、ビデオキャプション付け、ビデオ検索、リアルタイム翻訳等)、セキュリティ及び防衛(例えば、顔検出、ビデオ監視、衛星画像等)、及び自律マシン(例えば、歩行者検出、車線追跡、信号機検出等)等といった様々な用途で利用され得る。   Various embodiments of the present disclosure include internet and cloud applications (eg, image classification, speech recognition, language translation, language processing, emotion analysis recommendations, etc.), pharmacy and biology (eg, cancer cell detection, diabetes classification, wound creation Drugs etc), media and entertainment (eg video captioning, video search, real time translation etc), security and defense (eg face detection, video surveillance, satellite image etc), and autonomous machines (eg pedestrian detection, lanes It can be used in various applications such as tracking, traffic signal detection, etc.

本開示の実施形態が、添付の図面を参照しながら、これより説明される。   Embodiments of the present disclosure will now be described with reference to the attached figures.

図1Aは、例示的な非線形関数(例えば、cosh(x)-1 (x>=0))を示すグラフである。図1Bは、図1Aの関数についての入力−出力特性を示すグラフである。図1Bに示されているように、図1Aの関数は、非線形入力−出力特性を提供する。   FIG. 1A is a graph showing an exemplary non-linear function (eg, cosh (x) -1 (x> = 0)). FIG. 1B is a graph showing the input-output characteristics for the function of FIG. 1A. As shown in FIG. 1B, the function of FIG. 1A provides non-linear input-output characteristics.

図2は、本開示の少なくとも1つの実施形態に従った、ニューラルネットワークを生成する例示的な方法200のフローチャートである。方法200は、任意の適切なシステム、装置、又はデバイスにより実行され得る。例えば、図7のデバイス600、又はこれのコンポーネントのうちの1つ以上のコンポーネントが、方法200に関連付けられている動作のうちの1つ以上の動作を実行し得る。これらの実施形態及び他の実施形態において、コンピュータ読み取り可能な媒体に記憶されているプログラム命令が、方法200の動作のうちの1つ以上の動作を実行するために実行され得る。   FIG. 2 is a flowchart of an exemplary method 200 of generating a neural network, in accordance with at least one embodiment of the present disclosure. Method 200 may be performed by any suitable system, apparatus, or device. For example, one or more components of device 600 of FIG. 7, or components thereof, may perform one or more operations of the operations associated with method 200. In these and other embodiments, program instructions stored on computer readable media may be executed to perform one or more of the operations of method 200.

ブロック202において、非線形量子化がニューラルネットワークに適用され得、方法200はブロック204に進み得る。より詳細には、少なくともいくつかの実施形態において、cosh(x)及びsinh(x)等であるがこれらに限定されるものではない非線形関数が、ニューラルネットワークのモデルの少なくとも1つのパラメータに適用され得る。さらに詳細には、少なくともいくつかの実施形態において、非線形関数が、ニューラルネットワークの(例えばニューロン結合についての)1つ以上のシナプス重みに適用され得る。したがって、初期シナプス重み値と量子化されたシナプス重み値との間には非線形関係が存在し得る。例えば、図7のプロセッサ610が、非線形量子化をニューラルネットワークに適用し得る。   At block 202, non-linear quantization may be applied to the neural network, and method 200 may proceed to block 204. More particularly, in at least some embodiments, a non-linear function such as, but not limited to cosh (x) and sinh (x) is applied to at least one parameter of the model of the neural network obtain. More particularly, in at least some embodiments, a non-linear function may be applied to one or more synaptic weights (eg, for neuron coupling) of a neural network. Thus, a non-linear relationship may exist between the initial synapse weight values and the quantized synapse weight values. For example, processor 610 of FIG. 7 may apply non-linear quantization to a neural network.

ブロック204において、ニューラルネットワークがトレーニングされ得、方法200はブロック206に進み得る。例えば、モデルを含むニューラルネットワークが、例えば、ランダム初期化を用いた従来のバックプロパゲーション及び/又は任意の他の適切なトレーニング方法を介して、トレーニングされ得る。より詳細には、モデルの各層の1つ以上のトレーニングパラメータがトレーニングされ得る。非線形関数が1つ以上のシナプス重みに適用されているいくつかの実施形態において、1つ以上のシナプス重みは、トレーニングを介して最適化され得る。例えば、図7のプロセッサ610が、ニューラルネットワークをトレーニングし得る。   At block 204, a neural network may be trained and the method 200 may proceed to block 206. For example, neural networks including models can be trained, for example, via conventional back propagation with random initialization and / or any other suitable training method. More specifically, one or more training parameters of each layer of the model may be trained. In some embodiments where a non-linear function is applied to one or more synaptic weights, one or more synaptic weights may be optimized via training. For example, processor 610 of FIG. 7 may train a neural network.

ブロック206において、ニューラルネットワークについての必要とされる精度が満たされているかどうかが判定され得る。例えば、図7のプロセッサ610が、精度閾値とニューラルネットワークの決定された(例えば測定された)精度とを比較して、ニューラルネットワークの精度が、必要とされる精度を満たしているかどうかを判定し得る。必要とされる精度が満たされている場合、方法200はブロック208に進み得る。必要とされる精度が満たされていない場合、方法200はブロック204に戻り得る。   At block 206, it may be determined if the required accuracy for the neural network is met. For example, the processor 610 of FIG. 7 compares the accuracy threshold with the determined (eg, measured) accuracy of the neural network to determine whether the neural network's accuracy meets the required accuracy. obtain. If the required accuracy is met, method 200 may proceed to block 208. If the required accuracy is not met, method 200 may return to block 204.

ブロック208において、ニューラルネットワークが使用され得る。より詳細には、例えば、ニューラルネットワークは、1つ以上の入力(例えば新たなデータ)を受け取り、トレーニングされたモデルに基づいて、1つ以上の出力を生成することができる。例えば、図7のプロセッサ610が、トレーニングされたモデル及び受け取られた1つ以上の入力に基づいて、1つ以上の出力を生成し得る。   At block 208, a neural network may be used. More specifically, for example, a neural network can receive one or more inputs (e.g., new data) and generate one or more outputs based on the trained model. For example, processor 610 of FIG. 7 may generate one or more outputs based on the trained model and the one or more inputs received.

本開示の範囲から逸脱することなく、方法200に対して、変更、追加、又は省略が可能である。例えば、方法200の動作は、異なる順番で実行されることもある。さらに、説明された動作及びステップは、例として提供されているに過ぎず、動作及びステップのうちの一部は、開示されている実施形態の本質を損なうことなく、任意的であることもあるし、より少ない動作及びステップに組み合わされることもあるし、追加の動作及びステップに拡張されることもある。   Modifications, additions, or omissions may be made to method 200 without departing from the scope of the present disclosure. For example, the acts of method 200 may be performed in a different order. Furthermore, the operations and steps described are merely provided as examples, and some of the operations and steps may be optional without compromising the essence of the disclosed embodiments. And may be combined into fewer operations and steps, and may be extended to additional operations and steps.

図3は、量子化レベル302の範囲301についての例示的な重み分布を示すグラフ300である。各量子化レベル302の間の間隔は、量子化動作の分解能を示し得る。グラフ300において示されているように、範囲301のうちの外側部分における分解能は、粗く(例えば、より少ない量子化レベル)、範囲301のうちの内側部分における分解能は、細かい(例えば、より多い量子化レベル)。したがって、本開示において使用される場合、「粗い分解能」という句は、第1のビット数(例えばビット数N(例えば、より少ないビット数))に関連し得、「細かい分解能」という句は、より多い第2のビット数(例えばビット数M(例えば、より多いビット数))に関連し得る。   FIG. 3 is a graph 300 illustrating an exemplary weight distribution for the range 301 of quantization level 302. The spacing between each quantization level 302 may indicate the resolution of the quantization operation. As shown in the graph 300, the resolution in the outer part of the range 301 is coarse (e.g. less quantization levels) and the resolution in the inner part of the range 301 is fine (e.g. more quantum) Level). Thus, as used in this disclosure, the phrase "coarse resolution" may be associated with a first number of bits (eg, bit number N (eg, fewer bits)), and the phrase "fine resolution" It may be associated with a more second number of bits (eg, number of bits M (eg, number of more bits)).

本開示の様々な実施形態は、本開示において説明されるように、より高い値(例えば絶対値)を有する重み(例えば層入力)について分解能を増大し、必要に応じて、より低い値(例えば絶対値)を有する重み(例えば層入力)について分解能を低減することにより、ニューラルネットワークの精度を向上させることができる。例えば、様々な実施形態に従うと、粗い分解能の量子化は、(例えば、関連付けられた結合の低い強度又は強さを示す)より低い値の入力(例えば重み値)について提供され得、細かい分解能の量子化は、(例えば、関連付けられた結合の高い強度又は強さを示す)より高い値の入力(例えば重み値)について提供され得る。例えば、図1Bを再度参照すると、(X軸に沿った)重み値が増大するにつれて、分解能(例えば量子化レベルの数)も、(例えば、粗い分解能から細かい分解能へと)増大し得る。   Various embodiments of the present disclosure increase resolution for weights (eg, layer inputs) having higher values (eg, absolute values) as described in the present disclosure, and optionally lower values (eg, The accuracy of the neural network can be improved by reducing the resolution for weights (eg, layer inputs) that have absolute values. For example, according to various embodiments, coarse resolution quantization may be provided for lower valued inputs (e.g., weight values) (e.g., indicative of lower strength or strength of the associated coupling) and of finer resolution. Quantization may be provided for higher value inputs (e.g., weight values) (e.g., indicating high strength or strength of the associated coupling). For example, referring again to FIG. 1B, as the weight value (along the X axis) increases, the resolution (eg, the number of quantization levels) may also increase (eg, from coarse resolution to fine resolution).

例えば、少なくとも1つの実施形態に従うと、予め規定された量子化レベルが使用され得る。cosh(x)、sinh(x)等の関数f(x)を使用して、以下の式を介した適切な量子化レベルを提供することができる:
lm=f-1(m*d)
上記の式において、lmはm番目の量子化レベルであり、f-1はf(x)の逆関数であり、mは整数であり、dは、量子化出力の間の間隔を表し、以下の関係を有し得る:
f(最大範囲)=(mの最大値)*d
For example, according to at least one embodiment, predefined quantization levels may be used. The function f (x) such as cosh (x), sinh (x) can be used to provide appropriate quantization levels via the following equation:
l m = f -1 (m * d)
In the above equation, l m is the m th quantization level, f −1 is the inverse function of f (x), m is an integer, and d represents the spacing between the quantized outputs, It may have the following relationship:
f (maximum range) = (maximum value of m) * d

いくつかの実施形態において、間隔dは固定値であり得る。例えば、少なくともいくつかの実施形態において、図2の方法200は、予め規定された量子化レベル(例えば、間隔dの固定値及び固定範囲)を有して実行され得る。図4は、関数f(x)を示す例示的なグラフ350である。この例において、f(x)=cosh(x)-1 (x>=0)又はf(x)=-cosh(x)+1 (x<0)である。グラフ350は、量子化レベル(例えば、l1、l2、l3等)と、上述したように、出力(例えば量子化器の出力)の間の間隔である間隔dと、をさらに含む。この例において、間隔dは固定値である。 In some embodiments, the spacing d may be a fixed value. For example, in at least some embodiments, the method 200 of FIG. 2 may be performed with predefined quantization levels (eg, fixed values and fixed ranges of intervals d). FIG. 4 is an exemplary graph 350 illustrating the function f (x). In this example, f (x) = cosh (x) -1 (x> = 0) or f (x) =-cosh (x) +1 (x <0). Graph 350 further includes a quantization level (e.g., l 1, l 2, l 3 etc.), as described above, and a distance d is the spacing between the output (e.g., output of the quantizer). In this example, the spacing d is a fixed value.

他の実施形態に従うと、動的な量子化レベルが使用され得る。例えば、ビット数を所与として、範囲及び/又は分解能が、精度閾値(例えば、必要とされる且つ/又は望まれる精度)を満たすように間隔dを変更することにより高められ得る。   According to other embodiments, dynamic quantization levels may be used. For example, given a number of bits, the range and / or resolution may be enhanced by changing the spacing d to meet an accuracy threshold (eg, the required and / or desired accuracy).

さらに、様々な実施形態に従うと、量子化の分解能は、例えば、範囲を変更すること及び/又はビット数(例えば量子化レベルの数)を変更することにより、変更され得る。より詳細には、分解能は、範囲を低減すること及び/又はビット数を増大することにより、増大され得る。この例において、量子化レベルの間の間隔(例えば間隔d)が低減され得る。さらに、分解能は、範囲を増大すること及び/又はビット数を低減することにより、低減され得る。この例において、量子化レベルの間の間隔(例えば間隔d)が増大され得る。   Furthermore, according to various embodiments, the resolution of quantization may be changed, for example, by changing the range and / or changing the number of bits (eg, the number of quantization levels). More specifically, the resolution may be increased by reducing the range and / or increasing the number of bits. In this example, the spacing between quantization levels (eg, spacing d) may be reduced. Furthermore, the resolution may be reduced by increasing the range and / or reducing the number of bits. In this example, the spacing between quantization levels (eg, spacing d) may be increased.

図5は、本開示の少なくとも1つの実施形態に従った、ニューラルネットワークを生成する例示的な方法400のフローチャートである。方法400は、任意の適切なシステム、装置、又はデバイスにより実行され得る。例えば、図7のデバイス600、又はこれのコンポーネントのうちの1つ以上のコンポーネントが、方法400に関連付けられている動作のうちの1つ以上の動作を実行し得る。これらの実施形態及び他の実施形態において、コンピュータ読み取り可能な媒体に記憶されているプログラム命令が、方法400の動作のうちの1つ以上の動作を実行するために実行され得る。   FIG. 5 is a flowchart of an exemplary method 400 for generating a neural network, in accordance with at least one embodiment of the present disclosure. Method 400 may be performed by any suitable system, apparatus, or device. For example, one or more components of device 600 of FIG. 7, or components thereof, may perform one or more operations of the operations associated with method 400. In these and other embodiments, program instructions stored on computer readable media may be executed to perform one or more of the operations of method 400.

ブロック401において、量子化出力の間の間隔が最大値に設定され得、方法400はブロック402に進み得る。例えば、図7のプロセッサ610が、量子化出力の間の間隔を最大値に設定し得る。例えば、パラメータ(例えばシナプス重み)についての範囲及び/又は分解能は既知であり得、最大値は、ニューラルネットワークにおける最大間隔に等しいものであり得る。   At block 401, the spacing between quantized outputs may be set to a maximum value, and method 400 may proceed to block 402. For example, processor 610 of FIG. 7 may set the spacing between quantization outputs to a maximum value. For example, the range and / or resolution for parameters (eg, synapse weights) may be known, and the maximum value may be equal to the maximum spacing in the neural network.

ブロック402において、非線形量子化がニューラルネットワークに適用され得、方法400はブロック404に進み得る。より詳細には、少なくともいくつかの実施形態において、cosh(x)及びsinh(x)等であるがこれらに限定されるものではない非線形関数が、ニューラルネットワークのモデルの少なくとも1つのパラメータに適用され得る。さらに詳細には、少なくともいくつかの実施形態において、非線形関数が、ニューラルネットワークの(例えば結合についての)1つ以上のシナプス重みに適用され得る。例えば、図7のプロセッサ610が、非線形量子化をニューラルネットワークに適用し得る。   At block 402, non-linear quantization may be applied to the neural network, and the method 400 may proceed to block 404. More particularly, in at least some embodiments, a non-linear function such as, but not limited to cosh (x) and sinh (x) is applied to at least one parameter of the model of the neural network obtain. More particularly, in at least some embodiments, a non-linear function may be applied to one or more synaptic weights (eg, for coupling) of the neural network. For example, processor 610 of FIG. 7 may apply non-linear quantization to a neural network.

ブロック404において、モデルを含むニューラルネットワークがトレーニングされ得、方法400はブロック406に進み得る。例えば、ニューラルネットワークが、例えば、ランダム初期化を用いた従来のバックプロパゲーション及び/又は任意の他の適切なトレーニング方法を介して、トレーニングされ得る。より詳細には、モデルの各層の1つ以上のトレーニングパラメータがトレーニングされ得る。非線形関数が1つ以上のシナプス重みに適用されているいくつかの実施形態において、1つ以上のシナプス重みは、トレーニングを介して最適化され得る。例えば、図7のプロセッサ610が、ニューラルネットワークをトレーニングし得る。   At block 404, a neural network including a model may be trained, and method 400 may proceed to block 406. For example, neural networks may be trained, for example, via conventional back propagation with random initialization and / or any other suitable training method. More specifically, one or more training parameters of each layer of the model may be trained. In some embodiments where a non-linear function is applied to one or more synaptic weights, one or more synaptic weights may be optimized via training. For example, processor 610 of FIG. 7 may train a neural network.

ブロック406において、必要とされる精度が満たされているかどうかが判定され得る。例えば、図7のプロセッサ610が、精度閾値とニューラルネットワークの測定された精度とを比較して、ニューラルネットワークの精度が、必要とされる精度を満たしているかどうかを判定し得る。必要とされる精度が満たされている場合、方法400はブロック408に進み得る。必要とされる精度が満たされていない場合、方法400はブロック410に進み得る。   At block 406, it may be determined whether the required accuracy is met. For example, the processor 610 of FIG. 7 may compare the accuracy threshold to the measured accuracy of the neural network to determine if the neural network accuracy meets the required accuracy. If the required accuracy is met, method 400 may proceed to block 408. If the required accuracy is not met, method 400 may proceed to block 410.

ブロック408において、ニューラルネットワークが使用され得る。より詳細には、例えば、ニューラルネットワークは、1つ以上の入力(例えば新たなデータ)を受け取り、トレーニングされたモデルに基づいて、1つ以上の出力を生成することができる。例えば、図7のプロセッサ610が、トレーニングされたモデル及び受け取られた1つ以上の入力に基づいて、1つ以上の出力を生成し得る。   At block 408, a neural network may be used. More specifically, for example, a neural network can receive one or more inputs (e.g., new data) and generate one or more outputs based on the trained model. For example, processor 610 of FIG. 7 may generate one or more outputs based on the trained model and the one or more inputs received.

ブロック410において、量子化出力の間の間隔が低減され得、方法400はブロック402に戻り得る。例えば、量子化出力の間の間隔(例えば間隔d)が、分解能(したがって、例えばニューラルネットワークの精度)を増大するために、1単位(unit)、2単位、3単位等の分だけ低減され得る。例えば、図7のプロセッサ610が、量子化出力の間の間隔を低減し得る。   At block 410, the spacing between the quantized outputs may be reduced, and the method 400 may return to block 402. For example, the spacing between quantization outputs (eg, spacing d) can be reduced by one unit, two units, three units, etc. to increase resolution (and hence, eg, neural network accuracy) . For example, processor 610 of FIG. 7 may reduce the spacing between quantization outputs.

本開示の範囲から逸脱することなく、方法400に対して、変更、追加、又は省略が可能である。例えば、方法400の動作は、異なる順番で実行されることもある。さらに、説明された動作及びステップは、例として提供されているに過ぎず、動作及びステップのうちの一部は、開示されている実施形態の本質を損なうことなく、任意的であることもあるし、より少ない動作及びステップに組み合わされることもあるし、追加の動作及びステップに拡張されることもある   Modifications, additions, or omissions may be made to method 400 without departing from the scope of the present disclosure. For example, the acts of method 400 may be performed in a different order. Furthermore, the operations and steps described are merely provided as examples, and some of the operations and steps may be optional without compromising the essence of the disclosed embodiments. May be combined with fewer operations and steps, and may be extended with additional operations and steps.

さらに、いくつかの実施形態において、量子化出力の間の間隔についての値の範囲が、ニューラルネットワークトレーニング中に使用され得る。さらに、間隔の各値(例えば間隔d)について、ニューラルネットワークの精度が測定及び記録され得る。間隔についての各値が使用された後、ニューラルネットワークが、推論のために使用されている間に、間隔についての決定された最適値(例えば最高精度を提供する値)が使用され得る。   Furthermore, in some embodiments, a range of values for the spacing between quantization outputs may be used during neural network training. In addition, for each value of spacing (e.g. spacing d), the accuracy of the neural network can be measured and recorded. After each value for the interval is used, the determined optimal value for the interval (eg, the value providing the highest accuracy) may be used while the neural network is being used for inference.

例えば、図6は、本開示の少なくとも1つの実施形態に従った、ニューラルネットワークを生成する例示的な方法500のフローチャートである。方法500は、任意の適切なシステム、装置、又はデバイスにより実行され得る。例えば、図7のデバイス600、又はこれのコンポーネントのうちの1つ以上のコンポーネントが、方法500に関連付けられている動作のうちの1つ以上の動作を実行し得る。これらの実施形態及び他の実施形態において、コンピュータ読み取り可能な媒体に記憶されているプログラム命令が、方法500の動作のうちの1つ以上の動作を実行するために実行され得る。   For example, FIG. 6 is a flow chart of an exemplary method 500 of generating a neural network, in accordance with at least one embodiment of the present disclosure. Method 500 may be performed by any suitable system, apparatus, or device. For example, one or more components of device 600 of FIG. 7, or components thereof, may perform one or more operations of the operations associated with method 500. In these and other embodiments, program instructions stored on computer readable media may be executed to perform one or more of the operations of method 500.

ブロック502において、量子化出力の間の間隔が大きい値(例えば最大値)に設定され得、方法500はブロック504に進み得る。例えば、図7のプロセッサ610が、量子化出力の間の間隔(例えば間隔d)を大きい値(例えばニューラルネットワークにおける最大間隔)に設定し得る。   At block 502, the spacing between quantization outputs may be set to a large value (eg, a maximum value), and the method 500 may proceed to block 504. For example, processor 610 of FIG. 7 may set the spacing between quantization outputs (eg, spacing d) to a large value (eg, maximum spacing in a neural network).

ブロック504において、非線形量子化がニューラルネットワークに適用され得、方法500はブロック506に進み得る。より詳細には、少なくともいくつかの実施形態において、cosh(x)及びsinh(x)等であるがこれらに限定されるものではない非線形関数が、ニューラルネットワークのモデルの少なくとも1つのパラメータに適用され得る。さらに詳細には、少なくともいくつかの実施形態において、非線形関数が、ニューラルネットワークの(例えば結合についての)1つ以上のシナプス重みに適用され得る。例えば、図7のプロセッサ610が、非線形量子化をニューラルネットワークに適用し得る。   At block 504, non-linear quantization may be applied to the neural network, and the method 500 may proceed to block 506. More particularly, in at least some embodiments, a non-linear function such as, but not limited to cosh (x) and sinh (x) is applied to at least one parameter of the model of the neural network obtain. More particularly, in at least some embodiments, a non-linear function may be applied to one or more synaptic weights (eg, for coupling) of the neural network. For example, processor 610 of FIG. 7 may apply non-linear quantization to a neural network.

ブロック506において、モデルを含むニューラルネットワークがトレーニングされ得、方法500はブロック508に進み得る。例えば、ニューラルネットワークが、例えば、ランダム初期化を用いた従来のバックプロパゲーション及び/又は任意の他の適切なトレーニング方法を介して、トレーニングされ得る。より詳細には、モデルの各層の1つ以上のトレーニングパラメータがトレーニングされ得る。非線形関数が1つ以上のシナプス重みに適用されているいくつかの実施形態において、1つ以上のシナプス重みは、トレーニングを介して最適化され得る。例えば、図7のプロセッサ610が、ニューラルネットワークをトレーニングし得る。   At block 506, a neural network including a model may be trained, and method 500 may proceed to block 508. For example, neural networks may be trained, for example, via conventional back propagation with random initialization and / or any other suitable training method. More specifically, one or more training parameters of each layer of the model may be trained. In some embodiments where a non-linear function is applied to one or more synaptic weights, one or more synaptic weights may be optimized via training. For example, processor 610 of FIG. 7 may train a neural network.

ブロック508において、量子化出力の間の間隔及びニューラルネットワークの関連する測定された精度が記録され得、方法500はブロック510に進み得る。例えば、図7のプロセッサ610が、量子化出力の間の間隔(例えば間隔d)を使用して、ニューラルネットワークの精度を測定し得、測定された精度及び量子化出力の間の間隔の値が、(例えば、図7のメモリ630に)記録され得る。   At block 508, the spacing between the quantized outputs and the associated measured accuracy of the neural network may be recorded, and the method 500 may proceed to block 510. For example, processor 610 of FIG. 7 may measure the accuracy of the neural network using the spacing between quantization outputs (eg, spacing d), the value of the spacing between the measured accuracy and the quantization outputs being , (Eg, in memory 630 of FIG. 7).

ブロック510において、量子化出力の間の間隔が最小値であるかどうかが判定され得る。例えば、図7のプロセッサ610が、量子化出力の間の間隔(例えば間隔d)が最小値であるかどうかを判定し得る。例えば、8/16ビット整数(例えば固定小数点)を用いたデジタル実装では、間隔についての最小値は1に等しいものであり得る。量子化出力の間の間隔が最小値である場合、方法500はブロック514に進み得る。量子化出力の間の間隔が最小値よりも大きい場合、方法500はブロック512に進み得る。   At block 510, it may be determined whether the spacing between quantization outputs is a minimum value. For example, processor 610 of FIG. 7 may determine if the spacing between quantization outputs (eg, spacing d) is a minimum value. For example, in a digital implementation using 8/16 bit integers (e.g. fixed point), the minimum value for the interval may be equal to one. If the spacing between quantized outputs is a minimum, method 500 may proceed to block 514. If the spacing between quantization outputs is greater than the minimum value, method 500 may proceed to block 512.

ブロック512において、量子化出力の間の間隔が低減され得、方法500はブロック504に戻り得る。例えば、量子化出力の間の間隔は、1単位、2単位、3単位等の分だけ低減され得る。例えば、図7のプロセッサ610が、間隔dを低減し得る。   At block 512, the spacing between the quantized outputs may be reduced, and the method 500 may return to block 504. For example, the spacing between quantization outputs may be reduced by one unit, two units, three units, etc. For example, processor 610 of FIG. 7 may reduce interval d.

ブロック514において、ニューラルネットワークが使用され得る。より詳細には、例えば、ニューラルネットワークは、1つ以上の入力(例えば新たなデータ)を受け取り、トレーニングされたモデルに基づいて、1つ以上の出力を生成することができる。例えば、図7のプロセッサ610が、トレーニングされたモデル及び受け取られた1つ以上の入力に基づいて、1つ以上の出力を生成し得る。   At block 514, a neural network may be used. More specifically, for example, a neural network can receive one or more inputs (e.g., new data) and generate one or more outputs based on the trained model. For example, processor 610 of FIG. 7 may generate one or more outputs based on the trained model and the one or more inputs received.

本開示の範囲から逸脱することなく、方法500に対して、変更、追加、又は省略が可能である。例えば、方法500の動作は、異なる順番で実行されることもある。さらに、説明された動作及びステップは、例として提供されているに過ぎず、動作及びステップのうちの一部は、開示されている実施形態の本質を損なうことなく、任意的であることもあるし、より少ない動作及びステップに組み合わされることもあるし、追加の動作及びステップに拡張されることもある。   Modifications, additions, or omissions may be made to method 500 without departing from the scope of the present disclosure. For example, the acts of method 500 may be performed in a different order. Furthermore, the operations and steps described are merely provided as examples, and some of the operations and steps may be optional without compromising the essence of the disclosed embodiments. And may be combined into fewer operations and steps, and may be extended to additional operations and steps.

図7は、本開示の少なくとも1つの実施形態に従った例示的なコンピューティングデバイス600のブロック図である。コンピューティングデバイス600は、デスクトップコンピュータ、ラップトップコンピュータ、サーバコンピュータ、タブレットコンピュータ、携帯電話機、スマートフォン、携帯情報端末(PDA)、電子リーダデバイス、ネットワークスイッチ、ネットワークルータ、ネットワークハブ、他のネットワーキングデバイス、又は他の適切なコンピューティングデバイスを含み得る。   FIG. 7 is a block diagram of an exemplary computing device 600 in accordance with at least one embodiment of the present disclosure. The computing device 600 may be a desktop computer, laptop computer, server computer, tablet computer, mobile phone, smart phone, personal digital assistant (PDA), electronic reader device, network switch, network router, network hub, other networking device, or Other suitable computing devices may be included.

コンピューティングデバイス600は、プロセッサ610、記憶デバイス620、メモリ630、及び通信デバイス640を含み得る。プロセッサ610、記憶デバイス620、メモリ630、及び/又は通信デバイス640は全て、これらのコンポーネントの各々が他のコンポーネントと通信できるように、通信可能に接続され得る。コンピューティングデバイス600は、本開示に記載の動作のうちの任意の動作を実行することができる。   Computing device 600 may include processor 610, storage device 620, memory 630, and communication device 640. Processor 610, storage device 620, memory 630, and / or communication device 640 may all be communicatively coupled such that each of these components may communicate with other components. The computing device 600 may perform any of the operations described in this disclosure.

概して、プロセッサ610は、様々なコンピュータハードウェア又はソフトウェアモジュールを含む任意の適切な専用又は汎用のコンピュータ、コンピューティングエンティティ、又は処理デバイスを含み得、任意の適用可能なコンピュータ読み取り可能な記憶媒体に記憶されている命令を実行するよう構成され得る。例えば、プロセッサ610は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は、プログラム命令を解釈及び/又は実行し、且つ/又はデータを処理するよう構成されている任意の他のデジタル回路若しくはアナログ回路を含み得る。プロセッサ610は、図7において1つのプロセッサとして示されているが、プロセッサ610は、本開示に記載の任意の数の動作を個別的又は集合的に実行するよう構成されている任意の数のプロセッサを含んでもよい。   In general, processor 610 may include any suitable special purpose or general purpose computer, computing entity, or processing device including various computer hardware or software modules, and may be stored in any applicable computer readable storage medium May be configured to execute the instruction being For example, processor 610 may interpret and / or execute a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), field programmable gate array (FPGA), or program instruction and / or Or any other digital or analog circuit configured to process data. Although processor 610 is illustrated as one processor in FIG. 7, processor 610 may be any number of processors configured to perform any number of operations described in this disclosure, either individually or collectively. May be included.

いくつかの実施形態において、プロセッサ610は、記憶デバイス620、メモリ630、又は記憶デバイス620とメモリ630との両方に記憶されているプログラム命令を解釈及び/又は実行し、且つ/又は、記憶デバイス620、メモリ630、又は記憶デバイス620とメモリ630との両方に記憶されているデータを処理することができる。いくつかの実施形態において、プロセッサ610は、記憶デバイス620からプログラム命令をフェッチして、プログラム命令をメモリ620にロードすることができる。プログラム命令がメモリ630にロードされた後、プロセッサ610は、プログラム命令を実行することができる。   In some embodiments, processor 610 interprets and / or executes program instructions stored in storage device 620, memory 630, or both storage device 620 and memory 630 and / or storage device 620. , Data stored in memory 630, or both storage device 620 and memory 630 may be processed. In some embodiments, processor 610 may fetch program instructions from storage device 620 and load program instructions into memory 620. After program instructions are loaded into memory 630, processor 610 can execute the program instructions.

例えば、いくつかの実施形態において、ニューラルネットワークを生成及び/又はトレーニングする処理動作のうちの1つ以上の処理動作は、プログラム命令として、記憶デバイス620に含められ得る。プロセッサ610は、そのような処理動作のうちの1つ以上の処理動作のプログラム命令をフェッチして、そのような処理動作のうちの1つ以上の処理動作のプログラム命令をメモリ630にロードすることができる。そのような処理動作のうちの1つ以上の処理動作のプログラム命令がメモリ630にロードされた後、プロセッサ610は、そのプログラム命令により指示されるように処理動作に関連付けられている動作をコンピューティングデバイス600が実施できるように、そのような処理動作のうちの1つ以上の処理動作のプログラム命令を実行することができる。   For example, in some embodiments, one or more of the processing operations of generating and / or training a neural network may be included in storage device 620 as program instructions. Processor 610 fetches program instructions of one or more of the processing operations and loads program instructions of one or more of the processing operations into memory 630. Can. After program instructions of one or more of the processing operations are loaded into memory 630, processor 610 may compute operations associated with the processing operations as directed by the program instructions. Program instructions of one or more of such processing operations may be executed, as device 600 may implement.

記憶デバイス620及びメモリ630は、コンピュータ実行可能な命令又はデータ構造を運ぶ又は記憶するコンピュータ読み取り可能な記憶媒体を含み得る。そのようなコンピュータ読み取り可能な記憶媒体は、プロセッサ610等の汎用又は専用のコンピュータによりアクセスされ得る任意の利用可能な媒体を含み得る。限定ではなく例として、そのようなコンピュータ読み取り可能な記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリデバイス(例えばソリッドステートメモリデバイス)、又は、コンピュータ実行可能な命令又はデータ構造の形態の所望のプログラムコードを運ぶ又は記憶するために使用され得る任意の他の記憶媒体であって、汎用又は専用のコンピュータによりアクセスされ得る任意の他の記憶媒体、を含む有形の又は非一時的なコンピュータ読み取り可能な記憶媒体を含み得る。上記の組合せも、コンピュータ読み取り可能な記憶媒体の範囲に含まれ得る。コンピュータ実行可能な命令は、例えば、プロセッサ610に所定の動作又は動作群を実行させるよう構成されている命令及びデータを含み得る。   Storage device 620 and memory 630 may include computer readable storage media for carrying or storing computer executable instructions or data structures. Such computer readable storage media may include any available media that can be accessed by a general purpose or special purpose computer such as processor 610. By way of example and not limitation, such computer readable storage medium may be RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage device, flash memory device (eg solid state memory) Device) or any other storage medium that can be used to carry or store desired program code in the form of computer executable instructions or data structures, which can be accessed by a general purpose or special purpose computer And other storage media, including tangible or non-transitory computer readable storage media. Combinations of the above may also be included within the scope of computer readable storage media. Computer-executable instructions may include, for example, instructions and data configured to cause processor 610 to perform a certain operation or group of operations.

いくつかの実施形態において、記憶デバイス620及び/又はメモリ630は、ニューラルネットワークを生成することに関連するデータ、より詳細には、ニューラルネットワークの量子化及び/又はトレーニングに関連するデータ、を記憶することができる。例えば、記憶デバイス620及び/又はメモリ630は、量子化出力の間の間隔についての値(例えば間隔d)、ニューラルネットワーク精度測定値、ニューラルネットワーク(例えばモデル)等を記憶することができる。   In some embodiments, storage device 620 and / or memory 630 stores data associated with generating a neural network, and more particularly, data associated with quantization and / or training of neural network. be able to. For example, storage device 620 and / or memory 630 may store values for the spacing between quantization outputs (eg, spacing d), neural network precision measurements, neural networks (eg, models), etc.

通信デバイス640は、コンピューティングデバイス600と別の電子デバイスとの間の通信を可能にする又は円滑にするよう構成されている任意のデバイス、システム、コンポーネント、又はコンポーネントの集合を含み得る。例えば、通信デバイス640は、モデム、ネットワークカード(無線又は有線)、赤外線通信デバイス、光通信デバイス、無線通信デバイス(アンテナ等)、及び/若しくはチップセット(Bluetooth(登録商標)デバイス、802.6デバイス(例えばメトロポリタンエリアネットワーク(MAN))、Wi-Fi(登録商標)デバイス、WiMAX(登録商標)デバイス、セルラ通信設備等)、並びに/又は同様のものを含み得るが、これらに限定されるものではない。通信デバイス640は、ほんの少しの例を挙げると、セルラネットワーク、Wi-Fi(登録商標)ネットワーク、MAN、光ネットワーク等といった任意のネットワークとの間で、且つ/又は、リモートデバイスを含め、本開示に記載の任意の他のデバイスとの間で、データが交換されることを可能にし得る。   Communication device 640 may include any device, system, component, or collection of components configured to enable or facilitate communication between computing device 600 and another electronic device. For example, communication device 640 may be a modem, a network card (wireless or wired), an infrared communication device, an optical communication device, a wireless communication device (such as an antenna), and / or a chipset (a Bluetooth® device, an 802.6 device (such as It may include, but is not limited to, Metropolitan Area Network (MAN), Wi-Fi® devices, WiMAX® devices, cellular communication facilities, etc.) and / or the like. The communication device 640 may include and / or remote devices from any network, such as a cellular network, Wi-Fi network, MAN, optical network, etc., to name but a few. Data may be allowed to be exchanged with any other device described in.

本開示の範囲から逸脱することなく、図7に対して、変更、追加、又は省略が可能である。例えば、コンピューティングデバイス600は、本開示において図示及び説明された要素よりも多い又は少ない要素を含んでもよい。例えば、コンピューティングデバイス600は、タブレット又は携帯電話機のスクリーン等の統合されたディスプレイデバイスを含んでもよいし、コンピューティングデバイス600から分離されコンピューティングデバイス600に通信可能に接続され得る外部モニタ、プロジェクタ、テレビジョン、又は他の適切なディスプレイデバイスを含んでもよい。   Modifications, additions, or omissions may be made to FIG. 7 without departing from the scope of the present disclosure. For example, computing device 600 may include more or fewer elements than those illustrated and described in this disclosure. For example, computing device 600 may include an integrated display device such as a tablet or a screen of a mobile phone, or an external monitor, projector, which may be separate from computing device 600 and communicatively connected to computing device 600. It may include a television or other suitable display device.

本開示において使用される場合、「モジュール」又は「コンポーネント」という用語は、モジュール又はコンポーネントのアクションを実行するよう構成されている特定のハードウェア実装、及び/又は、コンピューティングシステムの汎用ハードウェア(例えばコンピュータ読み取り可能な媒体等)に記憶され得る且つ/又はコンピューティングシステムの汎用ハードウェア(例えば処理デバイス等)により実行され得るソフトウェアオブジェクト又はソフトウェアルーチンを指し得る。いくつかの実施形態において、本開示に記載の異なるコンポーネント、モジュール、エンジン、及びサービスは、コンピューティングシステム上で実行されるオブジェクト又はプロセスとして(例えば別個のスレッドとして)実装され得る。本開示に記載のシステム及び方法のうちの一部は、(汎用ハードウェアに記憶される且つ/又は汎用ハードウェアにより実行される)ソフトウェアにより実装されるとして一般に説明されるが、特定のハードウェア実装又はソフトウェアと特定のハードウェア実装との組合せも可能であり企図されている。本開示において、「コンピューティングエンティティ」は、本開示において前に定義された任意のコンピューティングシステム、又は、コンピューティングシステム上で動作する任意のモジュール又はモジュールの組合せであり得る。   As used in this disclosure, the terms "module" or "component" refer to a particular hardware implementation and / or general purpose hardware of a computing system that is configured to perform an action of the module or component For example, it may refer to a software object or software routine that may be stored on a computer readable medium or the like and / or may be executed by general purpose hardware (eg, a processing device or the like) of a computing system. In some embodiments, the different components, modules, engines, and services described in the present disclosure may be implemented as objects or processes that execute on a computing system (eg, as separate threads). Although some of the systems and methods described in this disclosure are generally described as being implemented by software (stored in general purpose hardware and / or executed by general purpose hardware), certain hardware may Combinations of implementations or software with specific hardware implementations are also possible and contemplated. In the present disclosure, a “computing entity” may be any computing system previously defined in the present disclosure, or any combination of modules or modules operating on the computing system.

本開示及び特に請求項(例えば請求項の本体部分)において使用される用語は、一般に、「オープンな」用語であるとして意図される(例えば、「〜を備える」という用語は、「〜を備えるが、〜に限定されるものではない」として解釈されるべきであり、「〜を有する」という用語は、「少なくとも〜を有する」として解釈されるべきであり、「〜を含む」という用語は、「〜を含むが、〜に限定されるものではない」として解釈されるべきである、等)。   The terms used in the present disclosure and particularly in the claims (e.g. the body portion of the claims) are generally intended as being "open" terms (e.g. the term "comprising" comprises " Should be construed as not being limited to, the term "having" should be interpreted as "having at least", and the term "including" is , "Including but not limited to", etc.).

さらに、導入される請求項記載事項の特定の数が意図される場合、そのような意図は、当該請求項中に明示的に記載され、そのような記載がない場合、そのような意図は存在しない。例えば、理解の助けとして、請求項中に、請求項記載事項を導入するための「少なくとも1つの」及び「1つ以上の」といった導入句の使用が含まれることがある。しかしながら、このような導入句の使用は、「a」又は「an」といった不定冠詞による請求項記載事項の導入が、同一の請求項中に「1つ以上の」又は「少なくとも1つの」といった導入句と「a」又は「an」といった不定冠詞とが含まれるとしても、当該導入された請求項記載事項を含む特定の請求項が、当該請求項記載事項を1つしか含まない実施形態に限定されることを意味するとして解釈されるべきではない(例えば、「a」及び/又は「an」は、「少なくとも1つの」又は「1つ以上の」を意味するとして解釈されるべきである)。請求項記載事項を導入するために使用される定冠詞の使用についても同じことが当てはまる。   Further, where a specific number of claiming items introduced is intended, such intent is explicitly stated in the claim, and where such a description is not present, such intent exists do not do. For example, as an aid to understanding, the claims may include the use of introductory phrases such as "at least one" and "one or more" to introduce claim language. However, the use of such an introductory phrase means that the introduction of claim contents by indefinite articles such as "a" or "an" is such that "one or more" or "at least one" in the same claim. Even if a phrase and an indefinite article such as "a" or "an" are included, the specific claim including the item recited in the introduced claim is limited to the embodiment including only the item recited in the claim Should not be interpreted as implying that (eg, “a” and / or “an” should be interpreted to mean “at least one” or “one or more”) . The same applies to the use of definite articles used to introduce claim recitations.

さらに、導入される請求項記載事項の特定の数が明示的に記載されている場合であっても、そのような記載は、少なくとも記載されている数を意味するとして解釈されるべきである(例えば、他の修飾語のない「2つの記載事項」という単なる記載は、少なくとも2つの記載事項又は2つ以上の記載事項を意味する)ことが、当業者であれば認識されよう。さらに、「A、B、及びC等のうちの少なくとも1つ」又は「A、B、及びC等のうちの1つ以上」に類する表記が使用される場合、一般に、そのような構造は、Aのみ、Bのみ、Cのみ、A及びBの両方、A及びCの両方、B及びCの両方、又は、A、B、及びCの全て、等を含むことが意図される。   Furthermore, even if a specific number of claiming items introduced is explicitly stated, such a description should at least be interpreted as meaning the stated number ( For example, one skilled in the art will appreciate that the mere mention of "two entries" without other modifiers means at least two entries or more than one entry). Further, where a notation similar to "at least one of A, B, and C, etc." or "one or more of A, B, C, etc." is used, generally, such a structure It is intended to include only A, only B, only C, both A and B, both A and C, both B and C, or all of A, B and C, and the like.

さらに、2つ以上の選択可能な用語を表すいかなる離接語又は離接句も、明細書、特許請求の範囲、又は図面のいずれであろうと、それら用語のうちの1つ、それらの用語の組合せ、又は、それらの用語の全てを含む可能性を意図するとして理解されるべきである。例えば、「A又はB」という句は、「A」若しくは「B」又は「A及びB」の可能性を含むとして理解されるべきである。   Furthermore, any disjunction or disjunction phrase denoting two or more selectable terms, whether in the specification, claims, or drawings, one of those terms, that term It should be understood as intended the possibility of including combinations or all of those terms. For example, the phrase "A or B" should be understood as including the possibilities of "A" or "B" or "A and B."

本開示において記載された全ての例及び条件付き文言は、当該技術を促進させるために本発明者によって寄与されるコンセプト及び本発明を読者が理解するのを助ける教育上の目的のために意図され、そのような具体的に記載された例及び条件に限定されるものではないとして解釈されるべきである。本開示の実施形態が詳細に説明されたが、それら実施形態に対する様々な変形、置換、及び変更が、本開示の主旨及び範囲から逸脱することなく可能である。   All examples and conditional language described in the present disclosure are intended for the concepts contributed by the inventor to promote the art and for educational purposes to help the reader understand the present invention. It should be construed as not being limited to such specifically described examples and conditions. Although the embodiments of the present disclosure have been described in detail, various changes, substitutions, and alterations to the embodiments are possible without departing from the spirit and scope of the present disclosure.

以上の実施形態に関し、さらに以下の付記を開示する。   Further, the following appendices will be disclosed regarding the above embodiment.

(付記1)
ニューラルネットワークを動作させる方法であって、
少なくとも1つのプロセッサにより、ニューラルネットワークモデルの複数のシナプス重みに非線形量子化を適用するステップと、
前記少なくとも1つのプロセッサにより、前記ニューラルネットワークモデルをトレーニングするステップと、
前記少なくとも1つのプロセッサにより、トレーニングされた前記ニューラルネットワークモデルにより受け取られた1つ以上の入力に基づいて、トレーニングされた前記ニューラルネットワークモデルからニューラルネットワーク出力を生成するステップと、
を含む方法。
(Supplementary Note 1)
A method of operating a neural network,
Applying non-linear quantization to the plurality of synaptic weights of the neural network model by at least one processor;
Training the neural network model with the at least one processor;
Generating a neural network output from the trained neural network model based on the one or more inputs received by the trained neural network model by the at least one processor;
Method including.

(付記2)
前記ニューラルネットワークモデルの精度を決定するステップ
をさらに含み、
ニューラルネットワーク出力を前記生成することは、決定された前記精度が精度閾値よりも大きいことに応じて、前記ニューラルネットワーク出力を生成することを含む、付記1に記載の方法。
(Supplementary Note 2)
Further comprising the step of determining the accuracy of said neural network model,
The method according to clause 1, wherein said generating a neural network output comprises generating said neural network output in response to the determined accuracy being greater than an accuracy threshold.

(付記3)
非線形量子化を前記適用することは、前記ニューラルネットワークモデルの前記複数のシナプス重みの各シナプス重みに非線形関数を適用することを含む、付記1に記載の方法。
(Supplementary Note 3)
The method according to clause 1, wherein the applying non-linear quantization comprises applying a non-linear function to each synaptic weight of the plurality of synaptic weights of the neural network model.

(付記4)
非線形関数を前記適用することは、前記複数のシナプス重みの各シナプス重みに、双曲正弦関数及び双曲余弦関数のうちの1つを適用することを含む、付記3に記載の方法。
(Supplementary Note 4)
The method according to clause 3, wherein the applying a non-linear function comprises applying one of a hyperbolic sine function and a hyperbolic cosine function to each synaptic weight of the plurality of synaptic weights.

(付記5)
前記ニューラルネットワークモデルの精度を決定するステップと、
決定された前記精度が精度閾値よりも小さいことに応じて、前記非線形量子化のビット数を増大することにより、分解能を増大するステップと、
をさらに含む、付記1に記載の方法。
(Supplementary Note 5)
Determining the accuracy of the neural network model;
Increasing the resolution by increasing the number of bits of the non-linear quantization in response to the determined accuracy being less than an accuracy threshold;
The method according to appendix 1, further comprising

(付記6)
非線形量子化を前記適用することは、
第1の値を有する、前記複数のシナプス重みのうちの少なくとも1つのシナプス重みを、粗い分解能で量子化することと、
前記第1の値よりも大きい第2の値を有する、前記複数のシナプス重みのうちの少なくとも1つの他のシナプス重みを、細かい分解能で量子化することと、
を含む、付記1に記載の方法。
(Supplementary Note 6)
Said application of nonlinear quantization is
Coarse resolution quantizing at least one synapse weight of the plurality of synapse weights having a first value;
Quantizing at least one other synapse weight of the plurality of synapse weights having a second value greater than the first value with fine resolution;
The method according to appendix 1, comprising

(付記7)
第1の値を有する、前記複数のシナプス重みのうちの少なくとも1つのシナプス重みを、粗い分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも1つのシナプス重みを、ビット数Nで量子化することを含む、付記6に記載の方法。
(Appendix 7)
The quantization with coarse resolution of the at least one synapse weight of the plurality of synapse weights having a first value may include the at least one synapse weight of the plurality of synapse weights as a number of bits. 7. The method of clause 6, comprising quantizing with N.

(付記8)
前記第1の値よりも大きい第2の値を有する、前記複数のシナプス重みのうちの少なくとも1つの他のシナプス重みを、細かい分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも1つの他のシナプス重みを、ビット数Mで量子化することを含み、MはNよりも大きい、付記7に記載の方法。
(Supplementary Note 8)
The quantization with fine resolution of the at least one other synapse weight of the plurality of synapse weights having a second value larger than the first value may be one of the plurality of synapse weights. The method according to clause 7, comprising quantizing the at least one other synapse weight with a bit number M, where M is greater than N.

(付記9)
非線形量子化を前記適用することは、非一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、付記1に記載の方法。
(Appendix 9)
The method according to clause 1, wherein said applying non-linear quantization comprises applying a non-linear function to said plurality of synaptic weights of said neural network model so as to result in non-uniformly distributed quantization levels. .

(付記10)
非線形量子化を前記適用することは、一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、付記1に記載の方法。
(Supplementary Note 10)
The method according to clause 1, wherein the applying non-linear quantization comprises applying a non-linear function to the plurality of synaptic weights of the neural network model so as to provide uniformly distributed quantization levels.

(付記11)
命令を含む1つ以上の非一時的なコンピュータ読み取り可能な媒体であって、前記命令は、1つ以上のプロセッサにより実行されたときに、前記1つ以上のプロセッサに複数の動作を実行させるよう構成されており、前記複数の動作は、
ニューラルネットワークモデルの複数のシナプス重みに非線形量子化を適用する動作と、
前記ニューラルネットワークモデルをトレーニングする動作と、
トレーニングされた前記ニューラルネットワークモデルにより受け取られた1つ以上の入力に基づいて、トレーニングされた前記ニューラルネットワークモデルからニューラルネットワーク出力を生成する動作と、
を含む、コンピュータ読み取り可能な媒体。
(Supplementary Note 11)
One or more non-transitory computer readable media comprising instructions, wherein the instructions cause the one or more processors to perform a plurality of operations when executed by the one or more processors. The plurality of actions being configured
An operation of applying nonlinear quantization to a plurality of synapse weights of a neural network model;
An operation of training the neural network model;
Generating a neural network output from the trained neural network model based on the one or more inputs received by the trained neural network model;
And computer readable media.

(付記12)
前記複数の動作は、
前記ニューラルネットワークモデルの精度を決定する動作
をさらに含み、
ニューラルネットワーク出力を前記生成することは、決定された前記精度が精度閾値よりも大きいことに応じて、前記ニューラルネットワーク出力を生成することを含む、付記11に記載のコンピュータ読み取り可能な媒体。
(Supplementary Note 12)
The plurality of actions are
Further including an action of determining the accuracy of the neural network model,
Clause 12. The computer readable medium according to clause 11, wherein the generating a neural network output comprises generating the neural network output in response to the determined accuracy being greater than an accuracy threshold.

(付記13)
非線形量子化を前記適用することは、前記ニューラルネットワークモデルの前記複数のシナプス重みの各シナプス重みに非線形関数を適用することを含む、付記11に記載のコンピュータ読み取り可能な媒体。
(Supplementary Note 13)
Clause 12. The computer readable medium according to clause 11, wherein the applying non-linear quantization comprises applying a non-linear function to each synaptic weight of the plurality of synaptic weights of the neural network model.

(付記14)
非線形関数を前記適用することは、前記複数のシナプス重みの各シナプス重みに、双曲正弦関数及び双曲余弦関数のうちの1つを適用することを含む、付記13に記載のコンピュータ読み取り可能な媒体。
(Supplementary Note 14)
Clause 13. The computer readable medium according to clause 13, wherein said applying a non-linear function comprises applying one of a hyperbolic sine function and a hyperbolic cosine function to each synaptic weight of said plurality of synaptic weights Medium.

(付記15)
前記複数の動作は、
前記ニューラルネットワークモデルの精度を決定する動作と、
決定された前記精度が精度閾値よりも小さいことに応じて、前記非線形量子化のビット数を増大することにより、分解能を増大する動作と、
をさらに含む、付記11に記載のコンピュータ読み取り可能な媒体。
(Supplementary Note 15)
The plurality of actions are
An operation to determine the accuracy of the neural network model;
An operation of increasing resolution by increasing the number of bits of the non-linear quantization in response to the determined accuracy being smaller than an accuracy threshold;
The computer readable medium of clause 11, further comprising:

(付記16)
非線形量子化を前記適用することは、
第1の値を有する、前記複数のシナプス重みのうちの少なくとも1つのシナプス重みを、粗い分解能で量子化することと、
前記第1の値よりも大きい第2の値を有する、前記複数のシナプス重みのうちの少なくとも1つの他のシナプス重みを、細かい分解能で量子化することと、
を含む、付記11に記載のコンピュータ読み取り可能な媒体。
(Supplementary Note 16)
Said application of nonlinear quantization is
Coarse resolution quantizing at least one synapse weight of the plurality of synapse weights having a first value;
Quantizing at least one other synapse weight of the plurality of synapse weights having a second value greater than the first value with fine resolution;
Clause 12. The computer readable medium according to clause 11, comprising

(付記17)
第1の値を有する、前記複数のシナプス重みのうちの少なくとも1つのシナプス重みを、粗い分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも1つのシナプス重みを、ビット数Nで量子化することを含む、付記16に記載のコンピュータ読み取り可能な媒体。
(Supplementary Note 17)
The quantization with coarse resolution of the at least one synapse weight of the plurality of synapse weights having a first value may include the at least one synapse weight of the plurality of synapse weights as a number of bits. Clause 16: The computer readable medium according to clause 16, comprising quantizing with N.

(付記18)
前記第1の値よりも大きい第2の値を有する、前記複数のシナプス重みのうちの少なくとも1つの他のシナプス重みを、細かい分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも1つの他のシナプス重みを、ビット数Mで量子化することを含み、MはNよりも大きい、付記17に記載のコンピュータ読み取り可能な媒体。
(Appendix 18)
The quantization with fine resolution of the at least one other synapse weight of the plurality of synapse weights having a second value larger than the first value may be one of the plurality of synapse weights. 24. The computer readable medium according to clause 17, comprising quantizing the at least one other synapse weight with a bit number M, where M is greater than N.

(付記19)
非線形量子化を前記適用することは、非一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、付記11に記載のコンピュータ読み取り可能な媒体。
(Appendix 19)
Clause 12. The computer of clause 11, wherein the applying non-linear quantization comprises applying a non-linear function to the plurality of synaptic weights of the neural network model to provide non-uniformly distributed quantization levels. Readable media.

(付記20)
非線形量子化を前記適用することは、一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、付記11に記載のコンピュータ読み取り可能な媒体。
(Supplementary Note 20)
The computer read of claim 11, wherein the applying non-linear quantization comprises applying a non-linear function to the plurality of synaptic weights of the neural network model to provide uniformly distributed quantization levels. Possible media.

600 コンピューティングデバイス
610 プロセッサ
620 記憶デバイス
630 メモリ
640 通信デバイス
600 computing device 610 processor 620 storage device 630 memory 640 communication device

Claims (20)

ニューラルネットワークを動作させる方法であって、
少なくとも1つのプロセッサにより、ニューラルネットワークモデルの複数のシナプス重みに非線形量子化を適用するステップと、
前記少なくとも1つのプロセッサにより、前記ニューラルネットワークモデルをトレーニングするステップと、
前記少なくとも1つのプロセッサにより、トレーニングされた前記ニューラルネットワークモデルにより受け取られた1つ以上の入力に基づいて、トレーニングされた前記ニューラルネットワークモデルからニューラルネットワーク出力を生成するステップと、
を含む方法。
A method of operating a neural network,
Applying non-linear quantization to the plurality of synaptic weights of the neural network model by at least one processor;
Training the neural network model with the at least one processor;
Generating a neural network output from the trained neural network model based on the one or more inputs received by the trained neural network model by the at least one processor;
Method including.
前記ニューラルネットワークモデルの精度を決定するステップ
をさらに含み、
ニューラルネットワーク出力を前記生成することは、決定された前記精度が精度閾値よりも大きいことに応じて、前記ニューラルネットワーク出力を生成することを含む、請求項1に記載の方法。
Further comprising the step of determining the accuracy of said neural network model,
The method of claim 1, wherein the generating a neural network output comprises generating the neural network output in response to the determined accuracy being greater than an accuracy threshold.
非線形量子化を前記適用することは、前記ニューラルネットワークモデルの前記複数のシナプス重みの各シナプス重みに非線形関数を適用することを含む、請求項1に記載の方法。   The method of claim 1, wherein the applying non-linear quantization comprises applying a non-linear function to each synaptic weight of the plurality of synaptic weights of the neural network model. 非線形関数を前記適用することは、前記複数のシナプス重みの各シナプス重みに、双曲正弦関数及び双曲余弦関数のうちの1つを適用することを含む、請求項3に記載の方法。   4. The method of claim 3, wherein the applying a non-linear function comprises applying one of a hyperbolic sine function and a hyperbolic cosine function to each synaptic weight of the plurality of synaptic weights. 前記ニューラルネットワークモデルの精度を決定するステップと、
決定された前記精度が精度閾値よりも小さいことに応じて、前記非線形量子化のビット数を増大することにより、分解能を増大するステップと、
をさらに含む、請求項1に記載の方法。
Determining the accuracy of the neural network model;
Increasing the resolution by increasing the number of bits of the non-linear quantization in response to the determined accuracy being less than an accuracy threshold;
The method of claim 1, further comprising
非線形量子化を前記適用することは、
第1の値を有する、前記複数のシナプス重みのうちの少なくとも1つのシナプス重みを、粗い分解能で量子化することと、
前記第1の値よりも大きい第2の値を有する、前記複数のシナプス重みのうちの少なくとも1つの他のシナプス重みを、細かい分解能で量子化することと、
を含む、請求項1に記載の方法。
Said application of nonlinear quantization is
Coarse resolution quantizing at least one synapse weight of the plurality of synapse weights having a first value;
Quantizing at least one other synapse weight of the plurality of synapse weights having a second value greater than the first value with fine resolution;
The method of claim 1, comprising:
第1の値を有する、前記複数のシナプス重みのうちの少なくとも1つのシナプス重みを、粗い分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも1つのシナプス重みを、ビット数Nで量子化することを含む、請求項6に記載の方法。   The quantization with coarse resolution of the at least one synapse weight of the plurality of synapse weights having a first value may include the at least one synapse weight of the plurality of synapse weights as a number of bits. 7. The method of claim 6, comprising quantizing with N. 前記第1の値よりも大きい第2の値を有する、前記複数のシナプス重みのうちの少なくとも1つの他のシナプス重みを、細かい分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも1つの他のシナプス重みを、ビット数Mで量子化することを含み、MはNよりも大きい、請求項7に記載の方法。   The quantization with fine resolution of the at least one other synapse weight of the plurality of synapse weights having a second value larger than the first value may be one of the plurality of synapse weights. The method of claim 7, comprising quantizing the at least one other synapse weight with a number of bits M, where M is greater than N. 非線形量子化を前記適用することは、非一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、請求項1に記載の方法。   2. The method of claim 1, wherein the applying non-linear quantization comprises applying a non-linear function to the plurality of synaptic weights of the neural network model to provide non-uniformly distributed quantization levels. Method. 非線形量子化を前記適用することは、一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、請求項1に記載の方法。   The method of claim 1, wherein the applying non-linear quantization comprises applying a non-linear function to the plurality of synaptic weights of the neural network model to provide uniformly distributed quantization levels. . 命令を含む1つ以上の非一時的なコンピュータ読み取り可能な媒体であって、前記命令は、1つ以上のプロセッサにより実行されたときに、前記1つ以上のプロセッサに複数の動作を実行させるよう構成されており、前記複数の動作は、
ニューラルネットワークモデルの複数のシナプス重みに非線形量子化を適用する動作と、
前記ニューラルネットワークモデルをトレーニングする動作と、
トレーニングされた前記ニューラルネットワークモデルにより受け取られた1つ以上の入力に基づいて、トレーニングされた前記ニューラルネットワークモデルからニューラルネットワーク出力を生成する動作と、
を含む、コンピュータ読み取り可能な媒体。
One or more non-transitory computer readable media comprising instructions, wherein the instructions cause the one or more processors to perform a plurality of operations when executed by the one or more processors. The plurality of actions being configured
An operation of applying nonlinear quantization to a plurality of synapse weights of a neural network model;
An operation of training the neural network model;
Generating a neural network output from the trained neural network model based on the one or more inputs received by the trained neural network model;
And computer readable media.
前記複数の動作は、
前記ニューラルネットワークモデルの精度を決定する動作
をさらに含み、
ニューラルネットワーク出力を前記生成することは、決定された前記精度が精度閾値よりも大きいことに応じて、前記ニューラルネットワーク出力を生成することを含む、請求項11に記載のコンピュータ読み取り可能な媒体。
The plurality of actions are
Further including an action of determining the accuracy of the neural network model,
The computer readable medium of claim 11, wherein the generating the neural network output comprises generating the neural network output in response to the determined accuracy being greater than an accuracy threshold.
非線形量子化を前記適用することは、前記ニューラルネットワークモデルの前記複数のシナプス重みの各シナプス重みに非線形関数を適用することを含む、請求項11に記載のコンピュータ読み取り可能な媒体。   The computer readable medium of claim 11, wherein the applying non-linear quantization comprises applying a non-linear function to each synaptic weight of the plurality of synaptic weights of the neural network model. 非線形関数を前記適用することは、前記複数のシナプス重みの各シナプス重みに、双曲正弦関数及び双曲余弦関数のうちの1つを適用することを含む、請求項13に記載のコンピュータ読み取り可能な媒体。   14. The computer readable medium of claim 13, wherein the applying a non-linear function comprises applying one of a hyperbolic sine function and a hyperbolic cosine function to each synaptic weight of the plurality of synaptic weights. Medium. 前記複数の動作は、
前記ニューラルネットワークモデルの精度を決定する動作と、
決定された前記精度が精度閾値よりも小さいことに応じて、前記非線形量子化のビット数を増大することにより、分解能を増大する動作と、
をさらに含む、請求項11に記載のコンピュータ読み取り可能な媒体。
The plurality of actions are
An operation to determine the accuracy of the neural network model;
An operation of increasing resolution by increasing the number of bits of the non-linear quantization in response to the determined accuracy being smaller than an accuracy threshold;
The computer readable medium of claim 11, further comprising:
非線形量子化を前記適用することは、
第1の値を有する、前記複数のシナプス重みのうちの少なくとも1つのシナプス重みを、粗い分解能で量子化することと、
前記第1の値よりも大きい第2の値を有する、前記複数のシナプス重みのうちの少なくとも1つの他のシナプス重みを、細かい分解能で量子化することと、
を含む、請求項11に記載のコンピュータ読み取り可能な媒体。
Said application of nonlinear quantization is
Coarse resolution quantizing at least one synapse weight of the plurality of synapse weights having a first value;
Quantizing at least one other synapse weight of the plurality of synapse weights having a second value greater than the first value with fine resolution;
A computer readable medium according to claim 11, comprising
第1の値を有する、前記複数のシナプス重みのうちの少なくとも1つのシナプス重みを、粗い分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも1つのシナプス重みを、ビット数Nで量子化することを含む、請求項16に記載のコンピュータ読み取り可能な媒体。   The quantization with coarse resolution of the at least one synapse weight of the plurality of synapse weights having a first value may include the at least one synapse weight of the plurality of synapse weights as a number of bits. The computer readable medium according to claim 16, comprising quantizing with N. 前記第1の値よりも大きい第2の値を有する、前記複数のシナプス重みのうちの少なくとも1つの他のシナプス重みを、細かい分解能で前記量子化することは、前記複数のシナプス重みのうちの前記少なくとも1つの他のシナプス重みを、ビット数Mで量子化することを含み、MはNよりも大きい、請求項17に記載のコンピュータ読み取り可能な媒体。   The quantization with fine resolution of the at least one other synapse weight of the plurality of synapse weights having a second value larger than the first value may be one of the plurality of synapse weights. 18. The computer readable medium of claim 17, comprising quantizing the at least one other synapse weight with a number of bits M, where M is greater than N. 非線形量子化を前記適用することは、非一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、請求項11に記載のコンピュータ読み取り可能な媒体。   12. The method of claim 11, wherein the applying non-linear quantization comprises applying a non-linear function to the plurality of synaptic weights of the neural network model to provide non-uniformly distributed quantization levels. Computer readable medium. 非線形量子化を前記適用することは、一様に分布する量子化レベルをもたらすように、前記ニューラルネットワークモデルの前記複数のシナプス重みに非線形関数を適用することを含む、請求項11に記載のコンピュータ読み取り可能な媒体。   12. The computer of claim 11, wherein the applying non-linear quantization comprises applying a non-linear function to the plurality of synaptic weights of the neural network model to provide uniformly distributed quantization levels. Readable media.
JP2018153073A 2017-12-21 2018-08-16 Quantization of neural network parameter Pending JP2019114231A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/851258 2017-12-21
US15/851,258 US11138505B2 (en) 2017-12-21 2017-12-21 Quantization of neural network parameters

Publications (1)

Publication Number Publication Date
JP2019114231A true JP2019114231A (en) 2019-07-11

Family

ID=66951289

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018153073A Pending JP2019114231A (en) 2017-12-21 2018-08-16 Quantization of neural network parameter

Country Status (2)

Country Link
US (1) US11138505B2 (en)
JP (1) JP2019114231A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7081708B1 (en) * 2021-03-30 2022-06-07 沖電気工業株式会社 Neural network weight reduction device, neural network weight reduction method and program

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210374510A1 (en) * 2019-08-23 2021-12-02 Anhui Cambricon Information Technology Co., Ltd. Data processing method, device, computer equipment and storage medium
JP7146952B2 (en) * 2019-08-23 2022-10-04 安徽寒武紀信息科技有限公司 DATA PROCESSING METHOD, APPARATUS, COMPUTER DEVICE, AND STORAGE MEDIUM
EP4020329A4 (en) * 2019-08-23 2023-07-05 Anhui Cambricon Information Technology Co., Ltd. Data processing method and apparatus, computer equipment and storage medium
CN113435577B (en) * 2021-06-25 2023-12-26 安徽知陉智能科技有限公司 Gradient function learning framework replacement method based on training deep pulse neural network

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018198454A1 (en) * 2017-04-28 2018-11-01 ソニー株式会社 Information processing device and information processing method

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822742A (en) * 1989-05-17 1998-10-13 The United States Of America As Represented By The Secretary Of Health & Human Services Dynamically stable associative learning neural network system
JP2009516246A (en) * 2005-11-15 2009-04-16 ベルナデット ガーナー Neural network training method
US9406017B2 (en) * 2012-12-24 2016-08-02 Google Inc. System and method for addressing overfitting in a neural network
EP3035204B1 (en) * 2014-12-19 2018-08-15 Intel Corporation Storage device and method for performing convolution operations
US9786036B2 (en) * 2015-04-28 2017-10-10 Qualcomm Incorporated Reducing image resolution in deep convolutional networks
US20160328645A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network
US10776690B2 (en) * 2015-10-08 2020-09-15 Via Alliance Semiconductor Co., Ltd. Neural network unit with plurality of selectable output functions
US9904874B2 (en) * 2015-11-05 2018-02-27 Microsoft Technology Licensing, Llc Hardware-efficient deep convolutional neural networks
US11475269B2 (en) * 2015-12-15 2022-10-18 Analog Devices, Inc. Convolutional neural network
US10846591B2 (en) * 2015-12-29 2020-11-24 Synopsys, Inc. Configurable and programmable multi-core architecture with a specialized instruction set for embedded application based on neural networks
US10497089B2 (en) * 2016-01-29 2019-12-03 Fotonation Limited Convolutional neural network
US10769517B2 (en) * 2016-03-05 2020-09-08 Fujitsu Limited Neural network analysis
US10496921B2 (en) * 2016-05-03 2019-12-03 Fujitsu Limited Neural network mapping dictionary generation
US10460233B2 (en) 2016-07-28 2019-10-29 Fujitsu Limited Self-adaptive neural networks
US10643705B2 (en) * 2018-07-24 2020-05-05 Sandisk Technologies Llc Configurable precision neural network with differential binary non-volatile memory cell structure

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018198454A1 (en) * 2017-04-28 2018-11-01 ソニー株式会社 Information processing device and information processing method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HAN, SONG ET AL.: "DEEP COMPRESSION: COMPRESSING DEEP NEURAL NETWORKS WITH PRUNING, TRAINED QUANTIZATION AND HUFFMAN CO", [オンライン], JPN6022028192, 15 February 2016 (2016-02-15), ISSN: 0004822847 *
廣瀬 一俊 ほか: "量子化誤差を考慮したニューラルネットワークの学習手法", 第104回 人工知能基本問題研究会資料 (SIG−FPAI−B507), JPN6022028193, 1 August 2017 (2017-08-01), pages 1 - 4, ISSN: 0004822848 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7081708B1 (en) * 2021-03-30 2022-06-07 沖電気工業株式会社 Neural network weight reduction device, neural network weight reduction method and program

Also Published As

Publication number Publication date
US11138505B2 (en) 2021-10-05
US20190197408A1 (en) 2019-06-27

Similar Documents

Publication Publication Date Title
JP2019114231A (en) Quantization of neural network parameter
JP7119751B2 (en) Model ensemble generation
US11275986B2 (en) Method and apparatus for quantizing artificial neural network
CN110084281B (en) Image generation method, neural network compression method, related device and equipment
CN112418392A (en) Neural network construction method and device
CN112257858A (en) Model compression method and device
US20200167593A1 (en) Dynamic reconfiguration training computer architecture
CN109241888B (en) Neural network training and object recognition method, device and system and storage medium
CN108229658B (en) Method and device for realizing object detector based on limited samples
CN111428854A (en) Structure searching method and structure searching device
CN113505883A (en) Neural network training method and device
CN111105017A (en) Neural network quantization method and device and electronic equipment
CN115238909A (en) Data value evaluation method based on federal learning and related equipment thereof
Perić et al. Design of a 2-bit neural network quantizer for Laplacian source
US10496921B2 (en) Neural network mapping dictionary generation
CN114169393A (en) Image classification method and related equipment thereof
CN110889290B (en) Text encoding method and apparatus, text encoding validity checking method and apparatus
WO2023185541A1 (en) Model training method and related device
CN116739154A (en) Fault prediction method and related equipment thereof
WO2020118553A1 (en) Method and device for quantizing convolutional neural network, and electronic device
WO2023097428A1 (en) Methods and apparatus to perform parallel double-batched self-distillation in resource-constrained image recognition applications
WO2021083154A1 (en) Method and apparatus for quantization of neural networks post training
CN116258190A (en) Quantization method, quantization device and related equipment
US20180032860A1 (en) Self-adaptive neural networks
Zheng et al. Little‐YOLOv4: A Lightweight Pedestrian Detection Network Based on YOLOv4 and GhostNet

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220909

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20221220