JP6831990B2 - Hardware implementation method of neural network that does not require a random number generator and neural network that does not require a random number generator - Google Patents
Hardware implementation method of neural network that does not require a random number generator and neural network that does not require a random number generator Download PDFInfo
- Publication number
- JP6831990B2 JP6831990B2 JP2016156471A JP2016156471A JP6831990B2 JP 6831990 B2 JP6831990 B2 JP 6831990B2 JP 2016156471 A JP2016156471 A JP 2016156471A JP 2016156471 A JP2016156471 A JP 2016156471A JP 6831990 B2 JP6831990 B2 JP 6831990B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- state
- ignition
- random number
- hidden
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Image Analysis (AREA)
Description
本発明は、深層学習(Deep Learning)に用いる乱数生成器が不要なニューラルネットワークのハードウェア実装の方法及び乱数生成器が不要なニューラルネットワークに関する。 The present invention relates to a hardware implementation method of a neural network that does not require a random number generator used for deep learning, and a neural network that does not require a random number generator.
制限付きボルツマンマシン(例えば、非特許文献1参照)は、近年、AI(人工知能)の分野で盛んに研究が行なわれている深層学習に用いられるニューラルネットワークの一つである。
制限付きボルツマンマシンによる学習では、学習データが可視層を構成する複数の可視ユニットに入力されて隠れ層を構成している隠れユニットに伝搬する順方向学習と、隠れ層の隠れユニットで形成される出力データが隠れ層から可視層の可視ユニットに伝搬する逆方向学習を繰り返すことにより、各可視ユニット(隠れユニット)から各隠れユニット(可視ユニット)にデータがそれぞれ伝搬する際の結合荷重(重み)を調整して、可視層に学習データが入力された際の隠れ層からの出力データを、一定誤差の範囲内で目的出力データに一致させることを目的としている。
The restricted Boltzmann machine (see, for example, Non-Patent Document 1) is one of the neural networks used for deep learning, which has been actively studied in the field of AI (artificial intelligence) in recent years.
In training with a restricted Boltzmann machine, training data is input to multiple visible units that make up the visible layer and propagates to the hidden units that make up the hidden layer, and is formed by hidden units in the hidden layer. The coupling load (weight) when the data propagates from each visible unit (hidden unit) to each hidden unit (visible unit) by repeating the reverse learning in which the output data propagates from the hidden layer to the visible unit in the visible layer. The purpose is to match the output data from the hidden layer when the training data is input to the visible layer with the target output data within a certain error range.
ここで、制限付きボルツマンマシンで構成された多層のニューラルネットワークの学習をソフトウェア上で行なう場合、順方向学習と逆方向学習の繰り返し学習を膨大な回数実行するため、大規模な計算資源と非常に長い演算時間を要することになり、消費電力量も増大するという問題がある。
そこで、制限付きボルツマンマシンによる多層のニューラルネットワークの学習を、より高速かつ低消費電力で行うことを可能にするために、制限付きボルツマンマシンのハードウェア化(チップ化)の研究が行なわれている(例えば、非特許文献2参照)。
Here, when learning a multi-layer neural network composed of a restricted Boltzmann machine on software, iterative learning of forward learning and reverse learning is executed a huge number of times, which requires a large amount of computational resources. There is a problem that a long calculation time is required and the power consumption is also increased.
Therefore, in order to enable learning of a multi-layer neural network by a restricted Boltzmann machine at higher speed and lower power consumption, research is being conducted on hardware (chip) of the restricted Boltzmann machine. (See, for example, Non-Patent Document 2).
制限付きボルツマンマシンをハードウェア化する場合、可視ユニットで行われる処理を実行する可視ユニット用の演算回路を可視ユニットの個数だけ、隠れユニットで行われる処理を実行する隠れユニット用の演算回路を隠れユニットの個数だけそれぞれチップ内に設ける必要がある。更に、制限付きボルツマンマシンでは、各ユニットが持つ発火確率によってランダム(乱数による)にそのユニットの発火又は非発火の状態が決定されるため、可視ユニット用の演算回路と隠れユニット用の演算回路にそれぞれ乱数生成器を設ける必要がある。
ここで、乱数生成器を形成する場合、ビット長の長いシフトレジスタと複数の論理ゲートが必要となるので、乱数生成器を備えた可視ユニット用と隠れユニット用の演算回路をそれぞれ必要個数だけチップ内に形成すると、チップ内で多量の回路資源(ハードウェア資源)が消費されることになる。このため、チップ内で形成できる制限付きボルツマンマシンの規模に制約が生じることになり、大規模な多層のニューラルネットワークを制限付きボルツマンマシンを用いて実現するためには、膨大なハードウェア資源を有するチップを準備しなければならないという問題が生じる。
When the restricted Boltzmann machine is made into hardware, the arithmetic circuits for the visible units that execute the processing performed by the visible units are hidden by the number of visible units, and the arithmetic circuits for the hidden units that execute the processing performed by the hidden units are hidden. It is necessary to provide as many units as there are in the chip. Furthermore, in a restricted Boltzmann machine, the ignition or non-ignition state of each unit is randomly determined by the ignition probability of each unit, so it can be used as an arithmetic circuit for visible units and an arithmetic circuit for hidden units. It is necessary to provide a random number generator for each.
Here, when forming a random number generator, a shift register having a long bit length and a plurality of logic gates are required, so the required number of arithmetic circuits for the visible unit and the hidden unit equipped with the random number generator are chipped respectively. If formed inside, a large amount of circuit resources (hardware resources) will be consumed in the chip. For this reason, the scale of the restricted Boltzmann machine that can be formed in the chip is restricted, and a huge amount of hardware resources are required to realize a large-scale multi-layer neural network using the restricted Boltzmann machine. The problem arises that the tip must be prepared.
本発明はかかる事情に鑑みてなされたもので、限られたハードウェア資源の中で、ニューラルネットワークのハードウェア実装に必要なハードウェア資源を削減してハードウェア化を実現することが可能な乱数生成器が不要なニューラルネットワークのハードウェア実装の方法及び乱数生成器が不要なニューラルネットワークを提供することを目的とする。 The present invention has been made in view of such circumstances, and a random number capable of reducing the hardware resources required for hardware implementation of a neural network and realizing hardwareization within a limited hardware resource. It is an object of the present invention to provide a method of hardware implementation of a neural network that does not require a generator and a neural network that does not require a random number generator.
前記目的に沿う第1の発明に係る乱数生成器が不要なニューラルネットワークのハードウェア実装の方法は、深層学習に用いる乱数生成器が不要な処理層を備えたニューラルネットワークのハードウェア実装の方法であって、
最下流の前記処理層を除いた任意の処理層Aを形成する複数のユニットAのそれぞれの発火又は非発火の状態を示す状態値Aが、該処理層Aと隣り合う下流側の処理層Bを形成する複数のユニットBにそれぞれ伝達されて決まる該ユニットB毎の状態値Bを固定小数点2進数による演算で求め、該状態値Bを変数とする発火確率関数を用いて前記ユニットB毎の発火確率P(B)を求めて発火又は非発火の状態を決定して出力し、ハードウェアオブジェクトとして利用される演算回路部を設け、前記演算回路部には、前記状態値Bを求める際に前記固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数として用いて、前記ユニットB毎の発火確率P(B)から該ユニットBの発火又は非発火の状態を決定するユニット状態演算器を設ける。
The method of hardware implementation of a neural network that does not require a random number generator according to the first invention according to the above object is a method of hardware implementation of a neural network that includes a processing layer that does not require a random number generator used for deep learning. There,
The state value A indicating the ignition or non-ignition state of each of the plurality of units A forming the arbitrary treatment layer A excluding the most downstream treatment layer A is the treatment layer B on the downstream side adjacent to the treatment layer A. The state value B for each unit B, which is determined by being transmitted to each of the plurality of units B forming the above, is obtained by an operation using a fixed-point binary number, and the firing probability function with the state value B as a variable is used for each unit B. seeking firing probability P (B) and determines and outputs the state of the ignition or non-ignition, provided an arithmetic circuit unit that will be used as a hardware object, to the arithmetic circuit unit in determining said state value B Using a numerical value formed by using bits that exceed the bit width of the fixed-point binary number and being truncated as a random number, the ignition or non-ignition state of the unit B can be determined from the ignition probability P (B) for each unit B. Provide a unit state calculator to determine.
前記目的に沿う第2の発明に係る乱数生成器が不要なニューラルネットワークは、深層学習に用いる乱数生成器が不要な処理層を備えたニューラルネットワークであって、
最下流の前記処理層を除いた任意の処理層Aを形成する複数のユニットAのそれぞれの発火又は非発火の状態を示す状態値Aが、該処理層Aと隣り合う下流側の処理層Bを形成する複数のユニットBにそれぞれ伝達されて決まる該ユニットB毎の状態値Bを固定小数点2進数による演算で求め、該状態値Bを変数とする発火確率関数を用いて前記ユニットB毎の発火確率P(B)を求めて発火又は非発火の状態を決定して出力し、ハードウェアオブジェクトとして利用される演算回路部を有し、
前記演算回路部には、前記状態値Bを求める際に前記固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数として用いて、前記ユニットB毎の発火確率P(B)から該ユニットBの発火又は非発火の状態を決定するユニット状態演算器が設けられている。
The neural network that does not require a random number generator according to the second invention according to the above object is a neural network that includes a processing layer that does not require a random number generator used for deep learning.
The state value A indicating the ignition or non-ignition state of each of the plurality of units A forming the arbitrary treatment layer A excluding the most downstream treatment layer A is the treatment layer B on the downstream side adjacent to the treatment layer A. The state value B for each unit B, which is determined by being transmitted to a plurality of units B forming the above, is obtained by a fixed-point binary number operation, and the firing probability function with the state value B as a variable is used for each unit B. ignition probability P (B) and to determine the state of the ignition or non-ignition asking output, an arithmetic circuit unit that will be used as a hardware object,
In the arithmetic circuit unit, a numerical value formed by using a bit that exceeds the bit width of the fixed-point binary number and is truncated when obtaining the state value B is used as a random number, and the ignition probability P for each unit B is used. From (B), a unit state calculator for determining the ignition or non-ignition state of the unit B is provided.
第1の発明に係る乱数生成器が不要なニューラルネットワークのハードウェア実装の方法及び第2の発明に係る乱数生成器が不要なニューラルネットワークにおいては、ニューラルネットワークの処理層Aを形成する複数のユニットAの状態を示す状態値Aから、処理層Aと隣り合う下流側の処理層Bを形成する複数のユニットBの状態を決定して出力する演算回路部をユニットB毎に対応させて設けるので、複数のユニットBの発火又は非発火の状態を、同時にかつ高速で演算して決定することができる。これにより、深層学習を短時間で行うことができ、消費電力の削減を達成することが可能になる。 In the method of hardware implementation of a neural network that does not require a random number generator according to the first invention and the neural network that does not require a random number generator according to the second invention, a plurality of units forming the processing layer A of the neural network. the state value a indicating the state of a, provided by corresponds to the arithmetic circuit unit in each unit B determines and outputs the state of the plurality of unit B which forms the downstream side of the processing layer B adjacent to the processing layer a Therefore, the ignition or non-ignition states of the plurality of units B can be calculated and determined at the same time and at high speed. As a result, deep learning can be performed in a short time, and reduction in power consumption can be achieved.
更に、ユニットBの状態値Bを固定小数点2進数による演算で求めるので、従来の浮動小数点2進数による演算の場合と比較して、必要な回路資源を削減することができる。また、ユニットBの発火確率P(B)からユニットBの状態を決定する場合に必要な乱数として、ユニットBの状態値Bを求める際に切り捨てるビットを用いて形成する数値を用いるので、従来必要であった乱数生成器が不要となり、回路資源の節約が可能になる。
その結果、乱数生成器が不要なニューラルネットワークでは、深層学習を行う多層のニューラルネットワークシステムのハードウェア実装をより省資源に実現することが可能になる。更に、乱数生成器が不要なニューラルネットワークでは、ハードウェア化する際の回路資源が従来の手法と比較して削減されるため、稼働時の消費電力の削減を行うことも可能になる。
Further, since the state value B of the unit B is obtained by the fixed-point binary number calculation, the required circuit resources can be reduced as compared with the case of the conventional floating-point binary number calculation. Further, as a random number required when determining the state of the unit B from the ignition probability P (B) of the unit B, a numerical value formed by using a bit to be truncated when obtaining the state value B of the unit B is used, which is conventionally necessary. The random number generator, which used to be, becomes unnecessary, and circuit resources can be saved.
As a result, in a neural network that does not require a random number generator, it becomes possible to realize a hardware implementation of a multi-layer neural network system that performs deep learning with more resource saving. Furthermore, in a neural network that does not require a random number generator, circuit resources for hardware conversion are reduced as compared with the conventional method, so that it is possible to reduce power consumption during operation.
続いて、添付した図面を参照しつつ、本発明を具体化した実施の形態につき説明し、本発明の理解に供する。
本発明の一実施の形態に係る乱数生成器が不要なニューラルネットワークのハードウェア実装の方法は、深層学習に用いる乱数生成器が不要な処理層を備えたニューラルネットワークのハードウェア実装の方法であって、最下流の前記処理層を除いた任意の処理層Aを形成する複数のユニットAのそれぞれの発火又は非発火の状態を示す状態値Aが、処理層Aと隣り合う下流側の処理層Bを形成する複数のユニットBにそれぞれ伝達されて決まるユニットB毎の状態値Bを固定小数点2進数による演算で求め、状態値Bを変数とする発火確率関数を用いてユニットB毎の発火確率P(B)を求めて発火又は非発火の状態を決定して出力する演算回路部を設けている。更に、演算回路部には、ユニットBの状態値Bを求める際に固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数として用いて、ユニットB毎の発火確率P(B)からユニットBの発火又は非発火の状態を決定するユニット状態演算器を設けている。
以下、乱数生成器が不要な処理層を備えたニューラルネットワークの一例として乱数生成器が不要な制限付きボルツマンマシンのハードウェア実装の方法について具体的に説明する。
Subsequently, an embodiment embodying the present invention will be described with reference to the attached drawings, and the present invention will be understood.
The method of hardware implementation of a neural network that does not require a random number generator according to an embodiment of the present invention is a method of hardware implementation of a neural network that includes a processing layer that does not require a random number generator used for deep learning. The state value A indicating the ignition or non-ignition state of each of the plurality of units A forming the arbitrary treatment layer A excluding the most downstream treatment layer is the downstream treatment layer adjacent to the treatment layer A. The state value B for each unit B determined by being transmitted to a plurality of units B forming B is obtained by a fixed-point binary number calculation, and the firing probability for each unit B is calculated using the firing probability function with the state value B as a variable. An arithmetic circuit unit is provided which obtains P (B), determines a state of ignition or non-ignition, and outputs the output. Further, in the arithmetic circuit unit, a numerical value formed by using a bit that exceeds the bit width of the fixed-point binary number and is truncated when obtaining the state value B of the unit B is used as a random number, and the ignition probability for each unit B is used. A unit state calculator for determining the ignition or non-ignition state of the unit B from P (B) is provided.
Hereinafter, as an example of a neural network having a processing layer that does not require a random number generator, a method of hardware implementation of a restricted Boltzmann machine that does not require a random number generator will be specifically described.
図1(A)に示すように、制限付きボルツマンマシンのハードウェア実装の方法では、制限付きボルツマンマシン(以下、RBMともいう)のソフトウェアが搭載される主計算機10にハードウェアモジュール11を接続し、RBMのソフトウェアが実行する各種処理の中で、複雑な条件分離等のハードウェア化に向かない処理はソフトウェア(主計算機10のCPU)に担当させ、ビット処理や信号処理等のハードウェア化に適する処理はハードウェアモジュール11内に形成する専用の演算回路に担当させるといったハードウェアとソフトウェアの複合システム12としたハードウェアの構成となっている。
As shown in FIG. 1A, in the method of mounting the hardware of the restricted Boltzmann machine, the
ここで、ハードウェアモジュール11には、例えば、FPGA(Field Programmable Gate Array)ボードを使用する。これにより、主計算機10とハードウェアモジュール11を、何らかのインターフェイス(例えば、PCIインターフェイス、PCIeインターフェイス、Ethernetインターフェイス)を用いてバス13を介して接続することができ、主計算機10のCPU上で、ソフトウェアによる処理をソフトウェアオブジェクトとして利用するのと同じように、演算回路をハードウェアオブジェクトとして利用することが可能になる。なお、ハードウェアオブジェクトは、ハードウェアモジュール11上で実現されるハードウェアである演算回路部(hwネット)14及びデータ記憶部15(深層学習時に使用する学習値や学習結果を保存する部分)と、主計算機10のCPU上で実現されるソフトウェアである入出力関数から構成される。
Here, for the
本実施の形態に係る制限付きボルツマンマシンのハードウェア実装の方法では、図2(A)に示すように、RBMの可視層16(処理層Aに相当)を形成する複数(n個)の可視ユニット17(ユニットAに相当)のそれぞれの発火又は非発火の状態を示す状態値vi(i=1、2、・・・、n、状態値Aに相当)が、可視層16と結合する隠れ層18(処理層Aと隣り合う下流側の処理層Bに相当)を形成する複数(m個)の隠れユニット19(ユニットBに相当)にそれぞれ伝達されて決まる隠れユニット19毎の状態値hj(j=1、2、・・・、m、状態値Bに相当)を固定小数点2進数による演算で求め、状態値hjを変数とする発火確率関数fを用いて隠れユニット19毎の発火確率Pj(hj)(発火確率P(B)に相当)を求めて発火又は非発火の状態を決定して出力する順方向学習を行う第1の演算回路部20を隠れユニット19毎に対応させて演算回路部(hwネット)14内に設ける(図1(B)参照)。
In the method of mounting the hardware of the restricted Boltzmann machine according to the present embodiment, as shown in FIG. 2 (A), a plurality (n) of visible layers 16 (corresponding to the processing layer A) of the RBM are visible. status value indicating the status of each firing or non-firing of the unit 17 (corresponding to the unit a) v i (i = 1,2 , ···, n, corresponds to the state value a) binds visible layer 16 A state value for each
隠れユニット19の状態値hjを固定小数点2進数による演算で求めるので、従来の浮動小数点2進数による演算の場合と比較して、必要な回路資源を削減することができる。
また、隠れユニット19の状態値hjを求める第1の演算回路部20は隠れユニット19の個数だけ存在するので、順方向学習において、各隠れユニット19の状態値hjを求める演算を同時にかつ高速で実行することが可能になる。そして、第1の演算回路部20に要する回路資源が削減され、演算に要する時間が短縮されるため、低消費電力の削減が可能になる。
Since the state value h j of the hidden
Further, since the first
ここで、i番目の可視ユニット16が発火の状態であるとき状態値viを1とし、非発火の状態であるときの状態値viを0とする。
また、図2(B)に示すように、j番目の隠れユニット19の状態値hjは、各可視ユニット17の状態値vi(i=1、2、・・・、n)がj番目の隠れユニット19に伝達される際の結合荷重(重み)wij(i=1、2、・・・、n、j=1、2、・・・、m)と、j番目の隠れユニット19のバイアス値bj(j=1、2、・・・、m)を用いて、bj+w1jv1+w2jv2+w3jv3+・・・+wnjvn=bj+Σiwijviとなる。
そして、例えば、発火確率関数fにシグモイド関数(ロジスティック関数)を用いると、j番目の隠れユニット19の発火確率Pj(hj)は、Pj(hj)=1/(1+exp(−hj/T))となる(Tはパラメータ)。
なお、発火確率関数fには、シグモイド関数の代わりに、tanh関数又はRectifield線形関数を使用することもできる。
Here, the 1 state value v i when i-th
Further, as shown in FIG. 2 (B), the state value h j of the j-th
Then, for example, when a sigmoid function (logistic function) is used for the firing probability function f, the firing probability P j (h j ) of the j-th hidden unit 19 is P j (h j ) = 1 / (1 + exp (−h). j / T)) (T is a parameter).
As the firing probability function f, a tanh function or a Piecewise linear function can be used instead of the sigmoid function.
図1(B)に示すように、第1の演算回路部20には、順方向学習において状態値hj(j=1、2、・・・、m)を求める際に、固定小数点2進数のビット幅を超過するビット(整数部の上位側ビットと小数部の下位側ビット)は切り捨てられる。そこで、ユニット状態演算器として、切り捨てられるビットの中で、小数部の下位側ビットを用いて形成する数値を乱数hとして用いて(乱数の代わりに用いて)、隠れユニット19毎の発火確率Pj(hj)から、j番目の隠れユニット19の発火又は非発火の状態を決定する第1のユニット状態演算器21が設けられている。乱数生成器を使用しないため、第1のユニット状態演算器21に要するハードウェア資源を削減することができ、より省資源にRBMをハードウェア実装することが可能になる。
As shown in FIG. 1 (B), the first
ここで、第1のユニット状態演算器21は、図3に示すように、切り捨てた小数部の下位側ビットから形成する数値が発火確率Pj(hj)以下の場合では、j番目の隠れユニット19は発火状態であると判定し、隠れユニット19から1を出力する。従って、j番目の隠れユニット19の状態値hjは1となる。
一方、切り捨てた小数部の下位側ビットから形成する数値が発火確率Pj(hj)を超える場合では、j番目の隠れユニット19は非発火状態であると判定し、隠れユニット19から0を出力する。従って、j番目の隠れユニット19の状態値hjは0となる。
Here, as shown in FIG. 3, the first
On the other hand, when the numerical value formed from the lower bits of the truncated decimal part exceeds the ignition probability P j (h j ), it is determined that the j-th
第1の演算回路部20には、最初の順方向学習における可視ユニット17毎の初期状態値vi0(i=1、2、・・・、n)を、可視ユニット17にそれぞれ学習値(2進数のため1又は0)を入力することにより求める機能を備えたユニット初期状態演算器22が設けられている。
The first arithmetic circuit unit 20 receives the initial state value vi0 (i = 1, 2, ..., N) for each
ここで、初期状態値vi0は1又は0となるため、各初期状態値vi0が隠れユニット19にそれぞれ伝達された際の隠れユニット19毎の状態値hj0を求める際に切り捨てビットは発生しない。そこで、ユニット初期状態演算器22は、各初期状態値vi0が隠れユニット19にそれぞれ伝達されて決まる隠れユニット19毎の発火確率Pj(hj0)から隠れユニット19毎の発火又は非発火の状態を決定する際に用いる乱数h0を、各初期状態値v0が隠れユニット19にそれぞれ伝達されて決まる隠れユニット19毎の状態値h0を固定小数点2進数による演算で求める際の非切り捨てビット中の小数部の全ビットを用いて形成する数値とする機能を更に備えている。
そして、乱数h0が発火確率Pj(h0)以下では隠れユニット19を発火状態とし、乱数h0が発火確率Pj(h0)を超えると隠れユニット19を非発火状態とする。
Here, since the initial state value v i0 is 1 or 0, the truncated bit when obtaining the status value h j0 for each
Then, when the random number h 0 exceeds the firing probability P j (h 0 ), the hidden
また、制限付きボルツマンマシンのハードウェア実装の方法では、図4(A)に示すように、順方向学習で決定された隠れユニット19毎の状態値hj(j=1、2、・・・、m)が各可視ユニット17にそれぞれ伝達されて決まる可視ユニット17毎の状態値vi(i=1、2、・・・、n)を固定小数点2進数による演算で求め、状態値viを変数とする発火確率関数fを用いて可視ユニット17毎の発火確率Pi(vi)を求めて発火又は非発火の状態を決定する逆方向学習を行う第2の演算回路部23を可視ユニット17毎に対応させて演算回路部(hwネット)14内に設ける(図1(B)参照)。
Further, in the hardware mounting method of the restricted Boltzmann machine, as shown in FIG. 4A, the state value h j (j = 1, 2, ...) For each
なお、図4(A)に示すように、逆方向学習では処理の方向が隠れ層18から可視層16に向かうため、隠れ層18が処理層Aに相当し、可視層16が処理層Aと隣り合う下流側の処理層Bに相当する。同様に、隠れユニット19がユニットAに、可視ユニット17がユニットBに相当する。また、発火確率P(vi)が発火確率P(B)に相当する。
As shown in FIG. 4A, in the reverse direction learning, the processing direction is from the hidden
可視ユニット17の状態値viを固定小数点2進数による演算で求めるので、従来の浮動小数点2進数による演算の場合と比較して、必要な回路資源を削減することができる。
また、可視ユニット17の状態値viを求める第2の演算回路部23は可視ユニット17の個数だけ存在するので、逆方向学習において、各可視ユニット17の状態値viを求める演算を同時にかつ高速で実行することが可能になる。そして、第2の演算回路部23に要する回路資源が削減され、演算に要する時間が短縮されるため、低消費電力の削減が可能になる。
Since obtaining a state value v i of the
Further, since the second
ここで、j番目の隠れユニット19が発火の状態であるとき状態値hjを1とし、非発火の状態であるときは状態値hjを0とする。
また、図4(B)に示すように、i番目の可視ユニット17の状態値viは、各隠れユニット19の状態値hj(j=1、2、・・・、m)がi番目の可視ユニット17に伝達される際の結合荷重(重み)wij(i=1、2、・・・、n、j=1、2、・・・、m)と、i番目の可視ユニット17のバイアス値ai(i=1、2、・・・、n)を用いて、ai+wi1h1+wi2h2+wi3h3+・・・+wimhm=ai+Σjwijhjとなる。
そして、発火確率関数fにシグモイド関数を用いると、i番目の可視ユニット17の発火確率Pi(vj)は、Pi=1/(1+exp(−vj/T))となる。
Here, the 1 state value h j when j th hidden
Further, FIG. 4 (B), the state value v i of the i-th
Then, using a sigmoidal function to the ignition probability function f, ignition probability P i of the i-th visible unit 17 (v j) becomes P i = 1 / (1 + exp (-v j / T)).
図1(B)に示すように、第2の演算回路部23には、逆方向学習において状態値vi(i=1、2、・・・、n)を求める際に、固定小数点2進数のビット幅を超過するビット(整数部の上位側ビットと小数部の下位側ビット)は切り捨てられる。そこで、ユニット状態演算器として、切り捨てられるビットの中で、小数部の下位側ビットを用いて形成する数値を乱数vとして用いて(乱数の代わりに用いて)、可視ユニット17毎の発火確率Pi(vi)から、i番目の可視ユニット17の発火又は非発火の状態を決定する第2のユニット状態演算器24が設けられている。乱数生成器を使用しないため、第2のユニット状態演算器24に要するハードウェア資源を削減することができ、より省資源にRBMをハードウェア実装することが可能になる。
As shown in FIG. 1 (B), the second
ここで、第2のユニット状態演算器24には、図3に示すように、切り捨てた小数部の下位側ビットから形成する数値が発火確率Pi(vi)以下の場合では、i番目の可視ユニット17は発火状態であると判定し、可視ユニット17から1を出力する。従って、i番目の可視ユニット17の状態値viは1となる。
一方、切り捨てた小数部の下位側ビットから形成する数値が発火確率Pi(vi)を超える場合では、i番目の可視ユニット17は非発火状態であると判定し、可視ユニット17から0を出力する。従って、i番目の可視ユニット17の状態値viは0となる。
Here, the second
On the other hand, when the numerical value formed from the lower side bits of the decimal part truncated exceeds the firing probability P i (v i), i-th
本発明の一実施の形態に係る乱数生成器が不要なニューラルネットワークは、深層学習に用いる乱数生成器が不要な処理層を備えたニューラルネットワークの一例である制限付きボルツマンマシン(図2、図4参照)であって、図1(B)に示すように、順方向学習を行う、即ち、上流側の可視層16(処理層Aに相当)を形成する複数の可視ユニット17(ユニットAに相当)のそれぞれの発火又は非発火の状態を示す状態値v(状態値Aに相当)が、可視層16と結合する隠れ層18(処理層Aと隣り合う下流側の処理層Bに相当)を形成する複数の隠れユニット19(ユニットBに相当)にそれぞれ伝達されて決まる隠れユニット19毎の状態値h(状態値Bに相当)を固定小数点2進数による演算から求め、状態値hを変数とする発火確率関数fを用いて隠れユニット19毎の発火確率P(h)(発火確率P(B)に相当)を求めて発火又は非発火の状態を決定して出力する第1の演算回路部20を演算回路部14に有している。
The neural network that does not require a random number generator according to an embodiment of the present invention is a restricted Boltzmann machine that is an example of a neural network that includes a processing layer that does not require a random number generator used for deep learning (FIGS. 2 and 4). (See), and as shown in FIG. 1 (B), forward learning is performed, that is, a plurality of visible units 17 (corresponding to unit A) forming the upstream visible layer 16 (corresponding to the processing layer A). The state value v (corresponding to the state value A) indicating each ignition or non-ignition state of) forms a hidden layer 18 (corresponding to the treatment layer B on the downstream side adjacent to the treatment layer A) connected to the
更に、制限付きボルツマンマシンは、図1(B)に示すように、逆方向学習を行う、即ち、順方向学習で決定された隠れ層18(データの処理方向が逆転するため処理層Aに相当、以下同様)の隠れユニット19(ユニットAに相当)毎の状態値h(状態値Aに相当)が、可視層16(処理層Bに相当)を形成する複数の可視ユニット17(ユニットBに相当)にそれぞれ伝達されて決まる可視ユニット毎の状態値v(状態値Bに相当)を固定小数点2進数による演算から求め、状態値vを変数とする発火確率関数fを用いて可視ユニット17毎の発火確率P(v)(発火確率P(B)に相当)を求めて発火又は非発火の状態を決定する第2の演算回路部23を演算回路部14に有している。
Further, as shown in FIG. 1 (B), the restricted Boltzmann machine performs reverse direction learning, that is, corresponds to the hidden
第1の演算回路部20を設けることにより、順方向学習において、各隠れユニット19の状態値hを求める演算を同時にかつ高速で実行することが可能になる。そして、第1の演算回路部20では固定小数点2進数による演算が実行されるため、第1の演算回路部20に要する回路資源が削減され、演算に要する時間が短縮されるため、消費電力の削減が可能になる。
また、第2の演算回路部23を設けることにより、逆方向学習において、各可視ユニット17の状態値vを求める演算を同時にかつ高速で実行することが可能になる。そして、第2の演算回路部23では固定小数点2進数による演算が実行されるため、第2の演算回路部23に要する回路資源が削減され、演算に要する時間が短縮されるため、低消費電力の削減が可能になる。
By providing the first
Further, by providing the second
そして、第1の演算回路部20には、順方向学習において、複数の可視ユニット17の各状態値vが隠れ層18の複数の隠れユニット19にそれぞれ伝達されて決まる隠れユニット19毎の状態値hを求める際に固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数hとして用いて、隠れユニット19毎の発火確率P(h)から可視ユニット19の発火又は非発火の状態を決定する第1のユニット状態演算器21が設けられている。
Then, in the forward learning, each state value v of the plurality of
また、第2の演算回路部23には、逆方向学習において、複数の隠れユニット19の各状態値hが可視層16の複数の可視ユニット17にそれぞれ伝達されて決まる可視ユニット17毎の状態値vを求める際に固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数vとして用いて、可視ユニット17毎の発火確率P(v)から可視ユニット17の発火又は非発火の状態を決定する第2のユニット状態演算器24が設けられている。
Further, in the second
従来の乱数生成器を使用しないため、第1、第2のユニット状態演算器21、24に要するハードウェア資源を削減することができ、より省資源に制限付きボルツマンマシンをハードウェア実装することが可能になる。
Since the conventional random number generator is not used, the hardware resources required for the first and second
ここで、順方向学習を開始した際、可視ユニット17毎の初期状態値は1又は0となるため、各初期状態値が隠れユニット19にそれぞれ伝達された際の隠れユニット19毎の状態値を求める際に切り捨てビットは発生しない。このため、図1(B)に示すように、第1の演算回路部20には、可視ユニット17にそれぞれ学習値(2進数のため1又は0)を入力することにより最初の順方向学習における可視ユニット17毎の初期状態値を求めるユニット初期状態演算器22が設けられている。ユニット初期状態演算器22では、可視ユニット17の各初期状態値が隠れユニット19にそれぞれ伝達されて決まる隠れユニット19毎の発火確率から隠れユニット19毎の発火又は非発火の状態を決定する際に乱数として用いる数値を、各初期状態値が隠れユニット19にそれぞれ伝達されて決まる隠れユニット19毎の状態値を固定小数点2進数による演算で求める際の非切り捨てビット中の小数部の全ビットを用いて形成している。
Here, since the initial state value for each
(実施例1)
固定小数点2進数による演算において、整数部のビット幅を8ビット、小数部のビット幅を4ビット、6ビット、8ビット、10ビット、及び12ビットの5段階に設定して、小数部のビット幅の影響を検討した。
RBM(可視層ノード数が1024、隠れ層ノード数が16)に、SIDBA(Standard Image Data−BAse) から選んだ数枚の画像(画像サイズは、縦32ピクセル×横32ピクセルの1024ピクセル)を学習画像に用いて学習させた。学習の流れを図5に示す。
(Example 1)
In the operation using fixed-point binary numbers, the bit width of the integer part is set to 8 bits, and the bit width of the fraction part is set to 5 steps of 4 bits, 6 bits, 8 bits, 10 bits, and 12 bits. The effect of width was examined.
Several images selected from SIDBA (Standard Image Data-Base) (image size is 1024 pixels of 32 pixels in height x 32 pixels in width) are displayed in RBM (the number of visible layer nodes is 1024 and the number of hidden layer nodes is 16). It was trained by using it as a training image. The flow of learning is shown in FIG.
図5に示すように、RBMは全ての学習画像を取り込み二値画像に変換する。そして、学習画像毎に、二値画像の各ピクセルの1又は0の値を可視層の各可視ユニットに入力し(可視層の各可視ユニットは、学習画像の各ピクセルの値にそれぞれ対応した状態となる)、可視層から隠れ層へ向かう順方向学習と、隠れ層から可視層へ向かう逆方向学習を1回繰り返す事前学習を行ってパラメータの初期値を求めた。次いで、全ての学習画像を用いて、可視層から隠れ層へ向かう順方向学習と隠れ層から可視層へ向かう逆方向学習の連携学習(1エポックという)を800回繰り返す全体学習を行ってパラメータを最適値に収束させた。 As shown in FIG. 5, the RBM captures all the trained images and converts them into binary images. Then, for each training image, a value of 1 or 0 of each pixel of the binary image is input to each visible unit of the visible layer (each visible unit of the visible layer corresponds to the value of each pixel of the learning image, respectively). become) was determined and forward learning toward the hidden layer from the visible layer, the initial value of the parameter by performing a pre-learning repeated one reverse learning toward the visible layer from the hidden layer. Then, using all of the learning image, the forward learning and reverse learning parameters cooperation learning performed entire learning repeated 800 times (referred to 1 epoch) of traveling from the hidden layer to the visible layer toward the hidden layer from the visible layer Was converged to the optimum value.
ここで、事前学習と全体学習では、最初の順方向学習において、複数の可視ユニットのそれぞれの状態を示す状態値を、可視ユニットにそれぞれ学習画像の各ピクセルの値(学習値)を入力して得られる初期状態値とした。また、隠れユニット毎の発火又は非発火の状態を決定する際に用いる乱数を、可視ユニット毎の初期状態値が複数の隠れユニットにそれぞれ伝達されて決まる隠れユニット毎の状態値を用いて形成した数値とした。 Here, in the pre-learning and the whole learning, in the first forward learning, the state value indicating each state of the plurality of visible units is input, and the value (learning value) of each pixel of the learning image is input to the visible unit. The initial state value obtained was used. In addition, a random number used to determine the firing or non-firing state of each hidden unit was formed using the state value of each hidden unit determined by transmitting the initial state value of each visible unit to a plurality of hidden units. It was a numerical value.
学習中に学習画像を想起した結果の画像と学習画像との間の交差エントロピー誤差の値を観測した。なお、計算時の値が2進数で表現できる値の最大値もしくは最小値を超過した場合は、表現可能な一定の値に固定した。また,小数点以下の数値でビット精度上表現できない値は0とした。交差エントロピー誤差のエポック毎の変化を図6に示す。なお,小数部のビット幅が4ビットの場合、途中から交差エントロピー誤差の値が発散したので、発散したエポック数の範囲以降では交差エントロピー誤差の値を記載していない。 The value of the cross entropy error between the image obtained by recalling the learning image during training and the training image was observed. When the value at the time of calculation exceeds the maximum value or the minimum value of the value that can be expressed in binary, it is fixed to a constant value that can be expressed. In addition, the value after the decimal point that cannot be expressed due to bit precision was set to 0. The change of the cross entropy error for each epoch is shown in FIG. When the bit width of the decimal part is 4 bits, the value of the cross entropy error diverges from the middle, so the value of the cross entropy error is not described after the range of the divergent epoch number.
図6から求めた交差エントロピー誤差の最大値と小数部のビット幅との関係を図7に示す。図7から、小数部のビット幅が大きくなるほど、交差エントロピー誤差の値が大きくなって(最大値0に近づき)、結果が良くなる傾向を示すことが分かる。その結果、小数部のビット幅は少なくとも8に設定することが好ましいと考えられる。 FIG. 7 shows the relationship between the maximum value of the cross entropy error obtained from FIG. 6 and the bit width of the decimal part. From FIG. 7, it can be seen that the larger the bit width of the decimal part, the larger the value of the cross entropy error (approaching the maximum value 0), and the better the result tends to be. As a result, it is considered preferable to set the bit width of the decimal part to at least 8.
(実施例2)
固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数として用いることの妥当性について検討した。
SIDBAから選んだ3枚の学習画像(画像サイズは、縦32ピクセル×横32ピクセルの1024ピクセル)を用いて、RBM(可視層ノード数を1024、隠れ層ノード数を16、結合荷重と状態値の固定小数点2進数による整数部のビット幅を8ビット、小数部のビット幅を8ビットに設定)に、順方向学習と逆方向学習の2つの学習フェーズを5回繰り返しながらパラメータの更新を行う事前学習を行った。
(Example 2)
The validity of using a numerical value formed by using bits that exceed the bit width of a fixed-point binary number and being truncated is examined as a random number.
Using three learning images selected from SIDBA (image size is 1024 pixels of 32 pixels in height x 32 pixels in width), RBM (number of visible layer nodes is 1024, number of hidden layer nodes is 16, coupling load and state value). 8 bits the bit width of the integer part by the fixed-point binary number, the bit width of the fractional part set to 8 bits), the update of the parameters while repeatedly forward learning and the two learning phases reverse learning 5 times Pre-learning was done.
結合荷重と状態値の固定小数点2進数では、整数部と小数部がともに8ビットであるため、図8に示すように、結合荷重と状態値との積は、整数部と小数部がそれぞれ8ビットの値の乗算となるから、その結果は整数部16ビット、小数部16ビットとなる。続いて、状態値と重みの積の値をすべての可視ユニット数だけ加算する演算では、可視ノード数は1024個であるから,その加算後のビットの増分は10ビット(log2 1024=log2 210)となるため、加算後の値のビット幅は、整数部26ビット、小数部16ビットとなる。ここで,増加したビット幅を、元の整数部8ビットと小数部8ビットに戻すためには、整数部26ビットの中で上位側の18ビットと、小数部16ビットの中で下位側の8ビットをそれぞれ切り捨てることになる。 In the fixed-point binary number of the combined load and the state value, both the integer part and the decimal part are 8 bits. Therefore, as shown in FIG. 8, the product of the combined load and the state value is 8 for the integer part and the decimal part, respectively. Since it is the multiplication of the bit values, the result is 16 bits for the integer part and 16 bits for the decimal part. Subsequently, in the operation of adding the value of the product of the state value and the weight by the number of all visible units, the number of visible nodes is 1024, so the increment of the bit after the addition is 10 bits (log 2 1024 = log 2). Since it is 210 ), the bit width of the value after addition is 26 bits for the integer part and 16 bits for the fraction part. Here, in order to return the increased bit width to the original 8 bits of the integer part and 8 bits of the fractional part, 18 bits on the upper side of the 26 bits of the integer part and 16 bits on the lower side of the 16 bits of the fractional part are lower. Each 8 bit will be truncated.
5回目の事前学習を行った時に切り捨てた小数部の下位側の8ビット分から形成される数値(10進数表示)のヒストグラムを図9(A)に、整数部の上位側の18ビット分から形成される数値(10進数表示)のヒストグラムを図9(B)に示す。なお,データ数はどちらも153600個である.
図9(A)に示すように、小数部の下位側の8ビット分から形成される数値は0が極めて多く出ていることが分かる。これは、最初の順方向学習では、学習データ入力時だけ可視ユニットの状態値が入力された学習画像のピクセル値である1 又は0の二値のいずれかに固定されて、切り捨てビットとなる小数点9ビット以下の値が出現しないからである。また、図9(B)に示すように、整数部の上位側の18ビット分から形成される数値は最大値もしくは最小値のみ出現している。
A histogram of the numerical value (decimal number display) formed from the lower 8 bits of the decimal part that was truncated when the fifth pre-learning was performed is formed in FIG. 9 (A) from the 18 bits of the upper side of the integer part. A histogram of the numerical values (decimal number display) is shown in FIG. 9 (B). The number of data is 153,600 in both cases.
As shown in FIG. 9A, it can be seen that the numerical value formed from the lower 8 bits of the decimal part has an extremely large number of 0s. In the first forward training, the state value of the visible unit is fixed to either the binary value of 1 or 0, which is the pixel value of the input training image, only when the training data is input, and becomes a decimal point that becomes a truncated bit. This is because a value of 9 bits or less does not appear. Further, as shown in FIG. 9B, only the maximum value or the minimum value appears as the numerical value formed from the 18 bits on the upper side of the integer part.
そこで、学習データ入力時のデータ(初期値)を省いて作成した小数部の下位側の8ビット分から形成される数値のヒストグラムを図10(A)に、整数部の上位側の18ビット分から形成される数値のヒストグラムを図10(B)に示す。図10(A)に示すように、小数部の切り捨てビットから形成される数値に関しては、各数値が略同等の頻度で出現しており、ある程度の白色性を有していることが確認できた。一方、整数部の切り捨てビットから形成される数値に関しては最小値又は最大値のみであった。
その結果、隠れユニット毎の状態値hを固定小数点2進数の演算で求める際に、固定小数点2進数のビット幅を超過して切り捨てられる小数部の下位側のビットから形成される数値を乱数として用いることが可能であることが確認できた。
Therefore, a histogram of the numerical value formed from the lower 8 bits of the decimal part created by omitting the data (initial value) at the time of inputting the training data is formed in FIG. 10 (A) from the upper 18 bits of the integer part. A histogram of the numerical values to be obtained is shown in FIG. 10 (B). As shown in FIG. 10A, with respect to the numerical values formed from the truncated bits of the decimal part, each numerical value appears at substantially the same frequency, and it was confirmed that the numerical value has a certain degree of whiteness. .. On the other hand, the numerical value formed from the truncated bit of the integer part was only the minimum value or the maximum value.
As a result, when the state value h for each hidden unit is calculated by a fixed-point binary number operation, a numerical value formed from the lower bits of the decimal part that exceeds the bit width of the fixed-point binary number and is truncated is used as a random number. It was confirmed that it can be used.
(実施例3)
学習を開始した最初のステップ、即ち、最初の順方向学習においては、各初期状態値v0が隠れユニットにそれぞれ伝達されて決まる隠れユニット毎の発火確率P(h0)から隠れユニット毎の発火又は非発火の状態を決定する際に用いる乱数h0を、各初期状態値v0が隠れユニットにそれぞれ伝達されて決まる隠れユニット毎の状態値h0を固定小数点2進数による演算で求める際の非切り捨てビット中の小数部の全ビットを用いて形成する数値としている。
そこで、隠れユニット毎の状態値h0を固定小数点2進数による演算で求める際の非切り捨てビット中の小数部の8ビット全てを用いて形成される数値を乱数として用いることの妥当性を検討するため、実施例2で使用したのと同一構成のRBMに、実施例1で用いた学習画像による1回の事前学習によりパラメータの初期値を求めた後、800回エポックの全体学習を行い、1エポック毎に交差エントロピー誤差を求めた。その結果を実施例3として図11に示す。
(Example 3)
In the first step of starting learning, that is, in the first forward learning, each hidden unit is fired from the firing probability P (h 0 ) of each hidden unit, which is determined by transmitting each initial state value v 0 to each hidden unit. Or, when the random number h 0 used when determining the non-ignition state is obtained by calculating the state value h 0 for each hidden unit determined by transmitting each initial state value v 0 to each hidden unit by a fixed-point binary number calculation. It is a numerical value formed by using all the bits of the decimal part in the non-truncated bits.
Therefore, the validity of using a numerical value formed by using all 8 decimal bits in the non-truncated bits when calculating the state value h 0 for each hidden unit by a fixed-point binary number calculation is examined. Therefore, the RBM having the same structure as that used in example 2, after obtaining the initial value of the parameter by prior learning once by the learning image used in example 1, performs overall learning of 800 times epochs, The cross entropy error was calculated for each epoch. The result is shown in FIG. 11 as Example 3.
図11には、比較例1として、実施例3と同一構成のRBMに、隠れユニットの発火又は非発火の状態を決定する際に使用する乱数を全てソフトウェア上の乱数生成器で求めながら、1回の事前学習によりパラメータの初期値を求めた後、800回エポックの全体学習を行い、1エポック毎に交差エントロピー誤差を求めた結果を示す。
更に、図11には、比較例2として、可視ユニットの初期状態値v0が伝達された際の隠れユニットの発火又は非発火の状態を決定する際にだけに使用する乱数を、ソフトウェア上の乱数生成器で求めながら、1回の事前学習によりパラメータの初期値を求めた後、800回エポックの全体学習を行い、1エポック毎に交差エントロピー誤差を求めた結果を、比較例3として、隠れユニット毎の状態値h0を固定小数点2進数による演算で求める際の非切り捨てビット中の小数部の下位側の4ビットを用いて形成される数値を乱数として用いながら、1回の事前学習によりパラメータの初期値を求めた後、800回エポックの全体学習を行い、1エポック毎に交差エントロピー誤差を求めた結果をそれぞれ示す。
11 shows, as a comparative example 1, the RBM the same structure as Example 3, while determined by the random number generator on all the random numbers software for use in determining the state of the ignition or non-ignition of hidden units, after determining the initial value of the parameter by one prior learning performs overall learning of 800 times epoch, shows the result of obtaining cross-entropy error per epoch.
Further, in FIG. 11, as a comparative example 2, a random number to be used only in determining the ignition or non-ignition state of the hidden units when the initial state value v 0 of the visible unit is transmitted, the software while determined by the random number generator, after obtaining the initial value of the parameter by prior learning once performs overall learning of 800 times epoch, the result of obtaining the cross-entropy error per epoch, as Comparative example 3 , One advance while using the numerical value formed by using the lower 4 bits of the fractional part in the non-truncated bits when calculating the state value h 0 for each hidden unit by a fixed-point binary number operation as a random number. after determining the initial value of the parameter by learning performs overall learning of 800 times epoch, shows the result of obtaining cross-entropy error per epoch, respectively.
図11から、実施例3の交差エントロピー誤差の変化は、全ての乱数をソフトウェア上の乱数生成器で求めた比較例1の交差エントロピー誤差の変化と同等の結果を示している。これにより、最初の順方向学習において、隠れユニット毎の発火又は非発火の状態を決定する際に用いる乱数として、可視ユニットの初期状態値v0が隠れユニット毎に伝達されて決まる隠れユニット毎の状態値h0を固定小数点2進数による演算で求める際の非切り捨てビット中の小数部の8ビット全てを用いて形成される数値を用いることの妥当性が確認できた。 From FIG. 11, the change in the cross entropy error of Example 3 shows the same result as the change in the cross entropy error of Comparative Example 1 in which all random numbers were obtained by a random number generator on the software. As a result, in the first forward learning, the initial state value v 0 of the visible unit is transmitted to each hidden unit and determined as a random number used when determining the firing or non-firing state of each hidden unit. It was confirmed that it is valid to use a numerical value formed by using all 8 decimal bits in the non-truncated bits when the state value h 0 is calculated by a fixed-point binary number operation.
以上、本発明を、実施の形態を参照して説明してきたが、本発明は何ら上記した実施の形態に記載した構成に限定されるものではなく、特許請求の範囲に記載されている事項の範囲内で考えられるその他の実施の形態や変形例も含むものである。
更に、本実施の形態とその他の実施の形態や変形例にそれぞれ含まれる構成要素を組合わせたものも、本発明に含まれる。
例えば、本実施の形態及び実施例では、固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値として、固定小数点2進数の小数部の下位側のビットから形成した数値を用いたが、固定小数点2進数の整数部の上位側ビットから形成した数値を用いることもできる。更に、固定小数点2進数の小数部の下位側のビットから形成される数値と整数部の上位側ビットから形成される数値を組合せて用いることもできる。
Although the present invention has been described above with reference to the embodiments, the present invention is not limited to the configuration described in the above-described embodiments, and the matters described in the claims. It also includes other embodiments and variations that may be considered within the scope.
Further, the present invention also includes a combination of the components included in the present embodiment and other embodiments and modifications.
For example, in the present embodiment and the embodiment, as a numerical value formed by using bits that exceed the bit width of the fixed-point binary number and are truncated, a numerical value formed from the lower bits of the decimal part of the fixed-point binary number is used. Although it was used, a numerical value formed from the upper bits of the integer part of the fixed-point binary number can also be used. Further, a numerical value formed from the lower bit of the decimal part of the fixed-point binary number and a numerical value formed from the upper bit of the integer part can be used in combination.
10:主計算機、11:ハードウェアモジュール、12:ハードウェアとソフトウェアの複合システム、13:バス、14:演算回路部(hwネット)、15:データ記憶部、16:可視層、17:可視ユニット、18:隠れ層、19:隠れユニット、20:第1の演算回路部、21:第1のユニット状態演算器、22:ユニット初期状態演算器、23:第2の演算回路部、24:第2のユニット状態演算器 10: Main computer, 11: Hardware module, 12: Hardware and software composite system, 13: Bus, 14: Arithmetic circuit unit (hp net), 15: Data storage unit, 16: Visible layer, 17: Visible unit , 18: hidden layer, 19: hidden unit, 20: first arithmetic circuit unit, 21: first unit state arithmetic unit, 22: unit initial state arithmetic unit, 23: second arithmetic circuit unit, 24: first 2 unit state calculator
Claims (8)
最下流の前記処理層を除いた任意の処理層Aを形成する複数のユニットAのそれぞれの発火又は非発火の状態を示す状態値Aが、該処理層Aと隣り合う下流側の処理層Bを形成する複数のユニットBにそれぞれ伝達されて決まる該ユニットB毎の状態値Bを固定小数点2進数による演算で求め、該状態値Bを変数とする発火確率関数を用いて前記ユニットB毎の発火確率P(B)を求めて発火又は非発火の状態を決定して出力し、ハードウェアオブジェクトとして利用される演算回路部を設け、前記演算回路部には、前記状態値Bを求める際に前記固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数として用いて、前記ユニットB毎の発火確率P(B)から該ユニットBの発火又は非発火の状態を決定するユニット状態演算器を設けることを特徴とする乱数生成器が不要なニューラルネットワークのハードウェア実装の方法。 It is a hardware implementation method of a neural network equipped with a processing layer that does not require a random number generator used for deep learning.
The state value A indicating the ignition or non-ignition state of each of the plurality of units A forming the arbitrary treatment layer A excluding the most downstream treatment layer A is the treatment layer B on the downstream side adjacent to the treatment layer A. The state value B for each unit B, which is determined by being transmitted to each of the plurality of units B forming the above, is obtained by an operation using a fixed-point binary number, and the firing probability function with the state value B as a variable is used for each unit B. seeking firing probability P (B) and determines and outputs the state of the ignition or non-ignition, provided an arithmetic circuit unit that will be used as a hardware object, to the arithmetic circuit unit in determining said state value B Using a numerical value formed by using bits that exceed the bit width of the fixed-point binary number and being truncated as a random number, the ignition or non-ignition state of the unit B can be determined from the ignition probability P (B) for each unit B. A method of hardware implementation of a neural network that does not require a random number generator, which is characterized by providing a unit state calculator for determining.
前記制限付きボルツマンマシンの可視層を形成する複数の可視ユニットのそれぞれの発火又は非発火の状態を示す状態値vが、該可視層と結合する隠れ層を形成する複数の隠れユニットにそれぞれ伝達されて決まる該隠れユニット毎の状態値hを固定小数点2進数による演算から求め、該状態値hを変数とする発火確率関数を用いて前記隠れユニット毎の発火確率P(h)を求めて発火又は非発火の状態を決定して出力する順方向学習を行う第1の演算回路部を前記隠れユニット毎に対応させて設け、前記順方向学習で決定された前記隠れユニット毎の状態値hが複数の前記可視ユニットにそれぞれ伝達されて決まる該可視ユニット毎の状態値vを固定小数点2進数による演算から求め、該状態値vを変数とする前記発火確率関数を用いて前記可視ユニット毎の発火確率P(v)を求めて発火又は非発火の状態を決定する逆方向学習を行う第2の演算回路部を前記可視ユニット毎に対応させて設けて、前記第1の演算回路部と前記第2の演算回路部で前記演算回路部を構成し、
前記第1の演算回路部には、前記順方向学習において前記状態値hを求める際に前記固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数hとして用いて、前記隠れユニット毎の発火確率P(h)から前記隠れユニットの発火又は非発火の状態を決定する第1のユニット状態演算器を設け、前記第2の演算回路部には、前記逆方向学習において前記状態値vを求める際に前記固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数vとして用いて、前記可視ユニット毎の発火確率P(v)から前記可視ユニットの発火又は非発火の状態を決定する第2のユニット状態演算器を設けて、前記第1のユニット状態演算器と前記第2のユニット状態演算器でユニット状態演算器を構成することを特徴とする乱数生成器が不要なニューラルネットワークのハードウェア実装の方法。 In the method of hardware implementation of a neural network that does not require a random number generator according to claim 1, the neural network is a restricted Boltzmann machine.
The state value v indicating the ignition or non-ignition state of each of the plurality of visible units forming the visible layer of the restricted Boltzmann machine is transmitted to the plurality of hidden units forming the hidden layer connected to the visible layer. The state value h for each hidden unit determined by the above is obtained from an operation using a fixed-point binary number, and the firing probability P (h) for each hidden unit is obtained using the firing probability function with the state value h as a variable. A first arithmetic circuit unit for performing forward learning that determines and outputs a non-ignition state is provided for each hidden unit, and a plurality of state values h for each hidden unit determined by the forward learning are provided. The state value v for each visible unit, which is determined by being transmitted to the visible units, is obtained from an operation using a fixed-point binary number, and the firing probability function for each visible unit is used with the state value v as a variable. A second arithmetic circuit unit that performs reverse-direction learning that obtains P (v) and determines a state of ignition or non-ignition is provided for each visible unit, and the first arithmetic circuit unit and the second arithmetic circuit unit are provided. The arithmetic circuit unit is composed of the arithmetic circuit unit of
In the first arithmetic circuit unit, a numerical value formed by using a bit that exceeds the bit width of the fixed-point binary number and is truncated when obtaining the state value h in the forward learning is used as a random number h. A first unit state arithmetic unit for determining the ignition or non-ignition state of the hidden unit from the ignition probability P (h) for each hidden unit is provided, and the second arithmetic circuit unit is provided with the reverse direction learning. In, when the state value v is obtained, a numerical value formed by using a bit that exceeds the bit width of the fixed-point binary number and is truncated is used as a random number v, and the ignition probability P (v) for each visible unit is used as described above. A second unit state calculator for determining the ignition or non-ignition state of the visible unit is provided, and the unit state calculator is configured by the first unit state calculator and the second unit state calculator. A method of hardware implementation of a neural network that does not require a characteristic random number generator.
最下流の前記処理層を除いた任意の処理層Aを形成する複数のユニットAのそれぞれの発火又は非発火の状態を示す状態値Aが、該処理層Aと隣り合う下流側の処理層Bを形成する複数のユニットBにそれぞれ伝達されて決まる該ユニットB毎の状態値Bを固定小数点2進数による演算で求め、該状態値Bを変数とする発火確率関数を用いて前記ユニットB毎の発火確率P(B)を求めて発火又は非発火の状態を決定して出力し、ハードウェアオブジェクトとして利用される演算回路部を有し、
前記演算回路部には、前記状態値Bを求める際に前記固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数として用いて、前記ユニットB毎の発火確率P(B)から該ユニットBの発火又は非発火の状態を決定するユニット状態演算器が設けられていることを特徴とする乱数生成器が不要なニューラルネットワーク。 A neural network with a processing layer that does not require a random number generator used for deep learning.
The state value A indicating the ignition or non-ignition state of each of the plurality of units A forming the arbitrary treatment layer A excluding the most downstream treatment layer A is the treatment layer B on the downstream side adjacent to the treatment layer A. The state value B for each unit B, which is determined by being transmitted to a plurality of units B forming the above, is obtained by a fixed-point binary number operation, and the firing probability function with the state value B as a variable is used for each unit B. ignition probability P (B) and to determine the state of the ignition or non-ignition asking output, an arithmetic circuit unit that will be used as a hardware object,
In the arithmetic circuit unit, a numerical value formed by using a bit that exceeds the bit width of the fixed-point binary number and is truncated when obtaining the state value B is used as a random number, and the ignition probability P for each unit B is used. A neural network that does not require a random number generator, characterized in that a unit state calculator for determining a firing or non-firing state of the unit B is provided from (B).
前記演算回路部は、前記可視層を形成する複数の可視ユニットのそれぞれの発火又は非発火の状態を示す状態値vが、該可視層と結合する前記隠れ層を形成する複数の隠れユニットにそれぞれ伝達されて決まる該隠れユニット毎の状態値hを固定小数点2進数による演算から求め、該状態値hを変数とする発火確率関数を用いて前記隠れユニット毎の発火確率P(h)を求めて発火又は非発火の状態を決定して出力する順方向学習を行う第1の演算回路部と、前記順方向学習で決定された前記隠れユニット毎の状態値hが複数の前記可視ユニットにそれぞれ伝達されて決まる該可視ユニット毎の状態値vを固定小数点2進数による演算から求め、該状態値vを変数とする前記発火確率関数を用いて前記可視ユニット毎の発火確率P(v)を求めて発火又は非発火の状態を決定する逆方向学習を行う第2の演算回路部とを有し、
前記ユニット状態演算器は、前記第1の演算回路部に設けられ、前記順方向学習において前記状態値hを求める際に前記固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数hとして用いて、前記隠れユニット毎の発火確率P(h)から前記隠れユニットの発火又は非発火の状態を決定する第1のユニット状態演算器と、前記第2の演算回路部に設けられ、前記逆方向学習において前記状態値vを求める際に前記固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数vとして用いて、前記可視ユニット毎の発火確率P(v)から前記可視ユニットの発火又は非発火の状態を決定する第2のユニット状態演算器とを有していることを特徴とする乱数生成器が不要なニューラルネットワーク。 In the neural network that does not require the random number generator according to claim 7, the processing layer A is a visible layer of the restricted Boltzmann machine, and the processing layer B is a hidden layer of the restricted Boltzmann machine.
The arithmetic circuit unit, the state value v indicating the state of each of the firing or non-firing of the plurality of visible units forming the visible layer, each of a plurality of hidden units forming the hidden layer to bind to said visible layer The state value h for each hidden unit, which is transmitted and determined, is obtained from an operation using a fixed-point binary number, and the firing probability P (h) for each hidden unit is obtained using the firing probability function with the state value h as a variable. The state value h for each of the hidden units determined by the forward learning and the first arithmetic circuit unit that performs forward learning that determines and outputs the ignition or non-ignition state are transmitted to the plurality of visible units. The state value v for each visible unit determined by the above is obtained from a fixed-point binary number calculation, and the firing probability P (v) for each visible unit is obtained using the firing probability function with the state value v as a variable. It has a second arithmetic circuit unit that performs reverse direction learning to determine the state of ignition or non-ignition.
The unit state arithmetic unit is provided in the first arithmetic circuit unit, and is formed by using bits that exceed the bit width of the fixed-point binary number and are truncated when the state value h is obtained in the forward learning. A first unit state calculator that determines the ignition or non-ignition state of the hidden unit from the ignition probability P (h) of each hidden unit, and the second arithmetic circuit unit, using the numerical value to be generated as a random number h. A numerical value formed by using a bit that exceeds the bit width of the fixed-point binary number and is truncated when the state value v is obtained in the reverse direction learning is used as a random number v for each visible unit. A neural network that does not require a random number generator, characterized in that it has a second unit state calculator that determines the firing or non-firing state of the visible unit from the firing probability P (v).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016156471A JP6831990B2 (en) | 2016-08-09 | 2016-08-09 | Hardware implementation method of neural network that does not require a random number generator and neural network that does not require a random number generator |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016156471A JP6831990B2 (en) | 2016-08-09 | 2016-08-09 | Hardware implementation method of neural network that does not require a random number generator and neural network that does not require a random number generator |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018025920A JP2018025920A (en) | 2018-02-15 |
JP6831990B2 true JP6831990B2 (en) | 2021-02-24 |
Family
ID=61194090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016156471A Active JP6831990B2 (en) | 2016-08-09 | 2016-08-09 | Hardware implementation method of neural network that does not require a random number generator and neural network that does not require a random number generator |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6831990B2 (en) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07248841A (en) * | 1994-03-09 | 1995-09-26 | Mitsubishi Electric Corp | Nonlinear function generator and format converter |
JP2003076272A (en) * | 2001-09-07 | 2003-03-14 | Japan Science & Technology Corp | Random number generation system using chaos neural network |
-
2016
- 2016-08-09 JP JP2016156471A patent/JP6831990B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018025920A (en) | 2018-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832082B (en) | Device and method for executing artificial neural network forward operation | |
Sarwar et al. | Multiplier-less artificial neurons exploiting error resiliency for energy-efficient neural computing | |
US20180018555A1 (en) | System and method for building artificial neural network architectures | |
CN110163359B (en) | Computing device and method | |
WO2017177442A1 (en) | Discrete data representation supported device and method for forward operation of artificial neural network | |
Xu et al. | A survey on dynamic neural networks for natural language processing | |
US20200226458A1 (en) | Optimizing artificial neural network computations based on automatic determination of a batch size | |
Ghasemzadeh et al. | BRDS: An FPGA-based LSTM accelerator with row-balanced dual-ratio sparsification | |
Liu et al. | Algorithm and hardware co-design co-optimization framework for LSTM accelerator using quantized fully decomposed tensor train | |
US20200311511A1 (en) | Accelerating neuron computations in artificial neural networks by skipping bits | |
Mao et al. | Energy-efficient machine learning accelerator for binary neural networks | |
Guo et al. | Efficient neuromorphic hardware through spiking temporal online local learning | |
US11494624B2 (en) | Accelerating neuron computations in artificial neural networks with dual sparsity | |
JP6831990B2 (en) | Hardware implementation method of neural network that does not require a random number generator and neural network that does not require a random number generator | |
Zhan et al. | Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems | |
Huynh | Evaluation of artificial neural network architectures for pattern recognition on fpga | |
WO2020194032A1 (en) | Accelerating neuron computations in artificial neural networks by skipping bits | |
Zyarah et al. | Resource sharing in feed forward neural networks for energy efficiency | |
Wisayataksin et al. | A Programmable Artificial Neural Network Coprocessor for Handwritten Digit Recognition | |
Arunachalam et al. | A novel low-power compression scheme for systolic array-based deep learning accelerators | |
Atoofian | Increasing robustness against adversarial attacks through ensemble of approximate multipliers | |
Saxena et al. | Text classification for embedded fpga devices using character-level cnn | |
US20240046098A1 (en) | Computer implemented method for transforming a pre trained neural network and a device therefor | |
Anderson et al. | Toward Energy–Quality Scaling in Deep Neural Networks | |
US11748623B2 (en) | Modifying structure of artificial neural networks by collocating parameters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A80 | Written request to apply exceptions to lack of novelty of invention |
Free format text: JAPANESE INTERMEDIATE CODE: A80 Effective date: 20160907 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190617 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200716 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200728 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200923 |
|
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: 20210105 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6831990 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |