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 PDF

Info

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
Application number
JP2016156471A
Other languages
Japanese (ja)
Other versions
JP2018025920A (en
Inventor
三晟 堀
三晟 堀
権 田向
権 田向
森江 隆
隆 森江
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.)
Kyushu Institute of Technology NUC
Original Assignee
Kyushu Institute of Technology NUC
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 Kyushu Institute of Technology NUC filed Critical Kyushu Institute of Technology NUC
Priority to JP2016156471A priority Critical patent/JP6831990B2/en
Publication of JP2018025920A publication Critical patent/JP2018025920A/en
Application granted granted Critical
Publication of JP6831990B2 publication Critical patent/JP6831990B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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).

Asja Fischer, Christian Igel,"An Introduction to Restricted Boltzmann Machines",Lecture Notes in Computer Science,Vol.7441,pp.14-36,2012.Asja Fischer, Christian Igel, "An Introduction to Restricted Boltzmann Machines", Lecture Notes in Computer Science, Vol.7441, pp.14-36, 2012. Seongwook Park,Kyeongryeol Bong,Dongjoo Shin,Jinmook Lee,Sungpill Choi,Hoi-Jun Yoo,"A 1.93TOPS/W Scalable Deep Learning/Inference Processor with Tetra-Parallel MIMD Architecture for Big-Data Applications",47th Annual IEEE/ACM International Symposium on Microarchitecture,2015.Seongwook Park, Kyeongryeol Bong, Dongjoo Shin, Jinmook Lee, Sungpill Choi, Hoi-Jun Yoo, "A 1.93TOPS / W Scalable Deep Learning / Inference Processor with Tetra-Parallel MIMD Architecture for Big-Data Applications", 47th Annual IEEE / ACM International Symposium on Microarchitecture, 2015.

制限付きボルツマンマシンをハードウェア化する場合、可視ユニットで行われる処理を実行する可視ユニット用の演算回路を可視ユニットの個数だけ、隠れユニットで行われる処理を実行する隠れユニット用の演算回路を隠れユニットの個数だけそれぞれチップ内に設ける必要がある。更に、制限付きボルツマンマシンでは、各ユニットが持つ発火確率によってランダム(乱数による)にそのユニットの発火又は非発火の状態が決定されるため、可視ユニット用の演算回路と隠れユニット用の演算回路にそれぞれ乱数生成器を設ける必要がある。
ここで、乱数生成器を形成する場合、ビット長の長いシフトレジスタと複数の論理ゲートが必要となるので、乱数生成器を備えた可視ユニット用と隠れユニット用の演算回路をそれぞれ必要個数だけチップ内に形成すると、チップ内で多量の回路資源(ハードウェア資源)が消費されることになる。このため、チップ内で形成できる制限付きボルツマンマシンの規模に制約が生じることになり、大規模な多層のニューラルネットワークを制限付きボルツマンマシンを用いて実現するためには、膨大なハードウェア資源を有するチップを準備しなければならないという問題が生じる。
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)は本発明の一実施の形態に係る乱数生成器が不要なニューラルネットワークのハードウェア実装の方法が適用されたハードウェアとソフトウェアの複合システムの説明図、(B)はハードウェアの演算回路部の説明図である。(A) is an explanatory diagram of a hardware-software composite system to which a 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 applied, and (B) is a hardware calculation. It is explanatory drawing of the circuit part. (A)は順方向学習時の可視層と隠れ層の関係を示す説明図、(B)は順方向学習時の隠れユニットの処理内容を示す説明図である。(A) is an explanatory diagram showing the relationship between the visible layer and the hidden layer during forward learning, and (B) is an explanatory diagram showing the processing content of the hidden unit during forward learning. 乱数を用いて隠れユニットの発火確率から隠れユニットの発火又は非発火の状態を決定する方法の説明図である。It is explanatory drawing of the method of determining the firing or non-firing state of a hidden unit from the firing probability of the hidden unit using a random number. (A)は逆方向学習時の隠れ層と可視層の関係を示す説明図、(B)は逆方向学習時の可視ユニットの処理内容を示す説明図である。(A) is an explanatory diagram showing the relationship between the hidden layer and the visible layer during reverse learning, and (B) is an explanatory diagram showing the processing content of the visible unit during reverse learning. 実施例1における制限付きボルツマンマシンの学習の流れ図である。It is a flow chart of learning of the restricted Boltzmann machine in Example 1. 実施例1におけるエポック回数と交差エントロピー誤差の関係を示すグラフである。It is a graph which shows the relationship between the number of epochs and the cross entropy error in Example 1. FIG. 実施例1における交差エントロピー誤差の最大値と固定小数点2進数の小数部のビット幅との関係を示すグラフである。It is a graph which shows the relationship between the maximum value of the cross entropy error in Example 1 and the bit width of the decimal part of a fixed-point binary number. 実施例2における固定小数点2進数の演算により発生する切り捨てビットの説明図である。It is explanatory drawing of the truncation bit generated by the operation of the fixed-point binary number in Example 2. 実施例2において、(A)は小数部の全ての切り捨てビットを用いて形成した数値のヒストグラム、(B)は整数部の全ての切り捨てビットを用いて形成した数値のヒストグラムである。In the second embodiment, (A) is a histogram of numerical values formed by using all the truncated bits of the decimal part, and (B) is a histogram of the numerical values formed by using all the truncated bits of the integer part. 実施例2において、(A)は学習データ入力時のデータを省いて作成した小数部の切り捨てビットを用いて形成した数値のヒストグラム、(B)は学習データ入力時のデータを省いて作成した整数部の切り捨てビットを用いて形成した数値のヒストグラムである。In the second embodiment, (A) is a numerical histogram formed by using the truncated bits of the decimal part created by omitting the data at the time of inputting the training data, and (B) is an integer created by omitting the data at the time of inputting the training data. It is a histogram of the numerical value formed by using the truncation bit of the part. 実施例3におけるエポック回数と交差エントロピー誤差の関係を示すグラフである。6 is a graph showing the relationship between the number of epochs and the cross entropy error in Example 3.

続いて、添付した図面を参照しつつ、本発明を具体化した実施の形態につき説明し、本発明の理解に供する。
本発明の一実施の形態に係る乱数生成器が不要なニューラルネットワークのハードウェア実装の方法は、深層学習に用いる乱数生成器が不要な処理層を備えたニューラルネットワークのハードウェア実装の方法であって、最下流の前記処理層を除いた任意の処理層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 hardware module 11 is connected to the main computer 10 on which the software of the restricted Boltzmann machine (hereinafter, also referred to as RBM) is installed. , Among the various processes executed by the RBM software, the software (CPU of the main computer 10) is in charge of the processes that are not suitable for hardware such as complicated condition separation, and for hardware such as bit processing and signal processing. The appropriate processing is assigned to a dedicated arithmetic circuit formed in the hardware module 11, and the hardware is configured as a hardware-software composite system 12.

ここで、ハードウェアモジュール11には、例えば、FPGA(Field Programmable Gate Array)ボードを使用する。これにより、主計算機10とハードウェアモジュール11を、何らかのインターフェイス(例えば、PCIインターフェイス、PCIeインターフェイス、Ethernetインターフェイス)を用いてバス13を介して接続することができ、主計算機10のCPU上で、ソフトウェアによる処理をソフトウェアオブジェクトとして利用するのと同じように、演算回路をハードウェアオブジェクトとして利用することが可能になる。なお、ハードウェアオブジェクトは、ハードウェアモジュール11上で実現されるハードウェアである演算回路部(hwネット)14及びデータ記憶部15(深層学習時に使用する学習値や学習結果を保存する部分)と、主計算機10のCPU上で実現されるソフトウェアである入出力関数から構成される。 Here, for the hardware module 11, for example, an FPGA (Field Programmable Gate Array) board is used. As a result, the main computer 10 and the hardware module 11 can be connected to each other via the bus 13 using some kind of interface (for example, a PCI interface, a PCIe interface, or an Ethernet interface), and the software can be connected on the CPU of the main computer 10. It is possible to use the arithmetic circuit as a hardware object in the same way that the processing by is used as a software object. The hardware objects include an arithmetic circuit unit (hw net) 14 and a data storage unit 15 (parts that store learning values and learning results used during deep learning), which are hardware realized on the hardware module 11. It is composed of input / output functions which are software realized on the CPU of the main computer 10.

本実施の形態に係る制限付きボルツマンマシンのハードウェア実装の方法では、図2(A)に示すように、RBMの可視層16(処理層Aに相当)を形成する複数(n個)の可視ユニット17(ユニットAに相当)のそれぞれの発火又は非発火の状態を示す状態値v(i=1、2、・・・、n、状態値Aに相当)が、可視層16と結合する隠れ層18(処理層Aと隣り合う下流側の処理層Bに相当)を形成する複数(m個)の隠れユニット19(ユニットBに相当)にそれぞれ伝達されて決まる隠れユニット19毎の状態値h(j=1、2、・・・、m、状態値Bに相当)を固定小数点2進数による演算で求め、状態値hを変数とする発火確率関数fを用いて隠れユニット19毎の発火確率P(h)(発火確率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 hidden unit 19 determined by being transmitted to a plurality of (m) hidden units 19 (corresponding to unit B) forming a hidden layer 18 (corresponding to the processing layer B on the downstream side adjacent to the processing layer A). h j (j = 1, 2, ..., m, corresponding to the state value B) is calculated by a fixed-point binary number, and every hidden unit 19 is calculated using the firing probability function f with the state value h j as a variable. Hidden unit 19 is the first arithmetic circuit unit 20 that performs forward learning to determine the ignition or non-ignition state and output it by obtaining the ignition probability P j (h j) (corresponding to the ignition probability P (B)). It is provided in the arithmetic circuit unit (hw net) 14 so as to correspond to each case (see FIG. 1 (B)).

隠れユニット19の状態値hを固定小数点2進数による演算で求めるので、従来の浮動小数点2進数による演算の場合と比較して、必要な回路資源を削減することができる。
また、隠れユニット19の状態値hを求める第1の演算回路部20は隠れユニット19の個数だけ存在するので、順方向学習において、各隠れユニット19の状態値hを求める演算を同時にかつ高速で実行することが可能になる。そして、第1の演算回路部20に要する回路資源が削減され、演算に要する時間が短縮されるため、低消費電力の削減が可能になる。
Since the state value h j of the hidden unit 19 is obtained by an operation using a fixed-point binary number, the required circuit resources can be reduced as compared with the case of a conventional operation using a floating-point binary number.
Further, since the first arithmetic circuit unit 20 for obtaining the state value h j of the hidden unit 19 exists as many as the number of hidden units 19, in the forward learning, the operation for obtaining the state value h j of each hidden unit 19 is simultaneously performed. It will be possible to execute at high speed. Then, the circuit resources required for the first arithmetic circuit unit 20 are reduced, and the time required for the arithmetic is shortened, so that low power consumption can be reduced.

ここで、i番目の可視ユニット16が発火の状態であるとき状態値vを1とし、非発火の状態であるときの状態値vを0とする。
また、図2(B)に示すように、j番目の隠れユニット19の状態値hは、各可視ユニット17の状態値v(i=1、2、・・・、n)がj番目の隠れユニット19に伝達される際の結合荷重(重み)wij(i=1、2、・・・、n、j=1、2、・・・、m)と、j番目の隠れユニット19のバイアス値b(j=1、2、・・・、m)を用いて、b+w1j+w2j+w3j+・・・+wnj=b+Σijとなる。
そして、例えば、発火確率関数fにシグモイド関数(ロジスティック関数)を用いると、j番目の隠れユニット19の発火確率P(h)は、P(h)=1/(1+exp(−h/T))となる(Tはパラメータ)。
なお、発火確率関数fには、シグモイド関数の代わりに、tanh関数又はRectifield線形関数を使用することもできる。
Here, the 1 state value v i when i-th visible unit 16 is in the state of ignition, the state value v i of when it is a non-excitation state is 0.
Further, as shown in FIG. 2 (B), the state value h j of the j-th hidden unit 19, the state value v i of each visible unit 17 (i = 1,2, ···, n) is the j-th The coupling load (weight) wij (i = 1, 2, ..., n, j = 1, 2, ..., M) when transmitted to the hidden unit 19 and the j-th hidden unit 19 Using the bias value b j (j = 1, 2, ..., M) of, b j + w 1j v 1 + w 2j v 2 + w 3j v 3 + ... + w nj v n = b j + Σ i w It becomes ij v i.
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には、順方向学習において状態値h(j=1、2、・・・、m)を求める際に、固定小数点2進数のビット幅を超過するビット(整数部の上位側ビットと小数部の下位側ビット)は切り捨てられる。そこで、ユニット状態演算器として、切り捨てられるビットの中で、小数部の下位側ビットを用いて形成する数値を乱数hとして用いて(乱数の代わりに用いて)、隠れユニット19毎の発火確率P(h)から、j番目の隠れユニット19の発火又は非発火の状態を決定する第1のユニット状態演算器21が設けられている。乱数生成器を使用しないため、第1のユニット状態演算器21に要するハードウェア資源を削減することができ、より省資源にRBMをハードウェア実装することが可能になる。 As shown in FIG. 1 (B), the first arithmetic circuit unit 20 receives a fixed-point binary number when obtaining a state value h j (j = 1, 2, ..., M) in forward learning. Bits that exceed the bit width of (the upper bit of the integer part and the lower bit of the decimal part) are truncated. Therefore, as a unit state calculator, a numerical value formed by using the lower bits of the decimal part among the bits to be truncated is used as a random number h (used instead of a random number), and the firing probability P for each hidden unit 19 is used. From j (h j ), a first unit state calculator 21 for determining the firing or non-firing state of the j-th hidden unit 19 is provided. Since the random number generator is not used, the hardware resources required for the first unit state calculator 21 can be reduced, and the RBM can be implemented in hardware in a more resource-saving manner.

ここで、第1のユニット状態演算器21は、図3に示すように、切り捨てた小数部の下位側ビットから形成する数値が発火確率P(h)以下の場合では、j番目の隠れユニット19は発火状態であると判定し、隠れユニット19から1を出力する。従って、j番目の隠れユニット19の状態値hは1となる。
一方、切り捨てた小数部の下位側ビットから形成する数値が発火確率P(h)を超える場合では、j番目の隠れユニット19は非発火状態であると判定し、隠れユニット19から0を出力する。従って、j番目の隠れユニット19の状態値hは0となる。
Here, as shown in FIG. 3, the first unit state calculator 21 hides the jth position when the numerical value formed from the lower bits of the truncated decimal part is equal to or less than the firing probability P j (h j). The unit 19 determines that it is in a firing state, and outputs 1 from the hidden unit 19. Therefore, the state value h j of the j-th hidden unit 19 is 1.
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 hidden unit 19 is in the non-ignition state, and the hidden units 19 to 0 are set. Output. Therefore, the state value h j of the j-th hidden unit 19 becomes 0.

第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 visible unit 17 in the first forward learning, and the visible unit 17 receives the learning value (2). A unit initial state calculator 22 having a function of obtaining by inputting 1 or 0) for a base number is provided.

ここで、初期状態値vi0は1又は0となるため、各初期状態値vi0が隠れユニット19にそれぞれ伝達された際の隠れユニット19毎の状態値hj0を求める際に切り捨てビットは発生しない。そこで、ユニット初期状態演算器22は、各初期状態値vi0が隠れユニット19にそれぞれ伝達されて決まる隠れユニット19毎の発火確率P(hj0)から隠れユニット19毎の発火又は非発火の状態を決定する際に用いる乱数hを、各初期状態値vが隠れユニット19にそれぞれ伝達されて決まる隠れユニット19毎の状態値hを固定小数点2進数による演算で求める際の非切り捨てビット中の小数部の全ビットを用いて形成する数値とする機能を更に備えている。
そして、乱数hが発火確率P(h)以下では隠れユニット19を発火状態とし、乱数hが発火確率P(h)を超えると隠れユニット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 hidden unit 19 when the initial state value v i0 is respectively transmitted to the hidden unit 19 occurs do not do. Therefore, in the unit initial state calculator 22, each initial state value vi0 is transmitted to the hidden unit 19, and the ignition probability for each hidden unit 19 is determined by the ignition probability P j (h j0 ) for each hidden unit 19 to be ignited or not ignited. The random number h 0 used to determine the state is not truncated when the state value h 0 for each hidden unit 19 determined by transmitting each initial state value v 0 to the hidden unit 19 is calculated by a fixed-point binary number. It also has a function of making a numerical value formed by using all the bits of the decimal part in the bit.
Then, when the random number h 0 exceeds the firing probability P j (h 0 ), the hidden unit 19 is set to the firing state, and when the random number h 0 exceeds the firing probability P j (h 0 ), the hidden unit 19 is set to the non-firing state.

また、制限付きボルツマンマシンのハードウェア実装の方法では、図4(A)に示すように、順方向学習で決定された隠れユニット19毎の状態値h(j=1、2、・・・、m)が各可視ユニット17にそれぞれ伝達されて決まる可視ユニット17毎の状態値v(i=1、2、・・・、n)を固定小数点2進数による演算で求め、状態値vを変数とする発火確率関数fを用いて可視ユニット17毎の発火確率P(v)を求めて発火又は非発火の状態を決定する逆方向学習を行う第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 hidden unit 19 determined by the forward learning. , m) is obtained by computation according to each state value of each visible unit 17 determined is transmitted respectively to the visible unit 17 v i (i = 1,2, ···, n) fixed-point binary number, status value v i the using ignition probability function f to variable visible the second arithmetic circuit 23 for performing a reverse learning to determine the status of ignition or non-ignition seeking firing probability P i for each visible unit 17 (v i) Each unit 17 is provided in the arithmetic circuit unit (hw net) 14 (see FIG. 1 (B)).

なお、図4(A)に示すように、逆方向学習では処理の方向が隠れ層18から可視層16に向かうため、隠れ層18が処理層Aに相当し、可視層16が処理層Aと隣り合う下流側の処理層Bに相当する。同様に、隠れユニット19がユニットAに、可視ユニット17がユニットBに相当する。また、発火確率P(v)が発火確率P(B)に相当する。 As shown in FIG. 4A, in the reverse direction learning, the processing direction is from the hidden layer 18 to the visible layer 16, so that the hidden layer 18 corresponds to the processing layer A and the visible layer 16 is the processing layer A. It corresponds to the adjacent downstream processing layer B. Similarly, the hidden unit 19 corresponds to the unit A and the visible unit 17 corresponds to the unit B. Further, firing the probability P (v i) corresponds to the ignition probability P (B).

可視ユニット17の状態値vを固定小数点2進数による演算で求めるので、従来の浮動小数点2進数による演算の場合と比較して、必要な回路資源を削減することができる。
また、可視ユニット17の状態値vを求める第2の演算回路部23は可視ユニット17の個数だけ存在するので、逆方向学習において、各可視ユニット17の状態値vを求める演算を同時にかつ高速で実行することが可能になる。そして、第2の演算回路部23に要する回路資源が削減され、演算に要する時間が短縮されるため、低消費電力の削減が可能になる。
Since obtaining a state value v i of the visible unit 17 in operation with a fixed point binary number, as compared with the case of the operation according to the conventional floating-point binary number, it is possible to reduce the circuit resources required.
Further, since the second arithmetic circuit 23 for obtaining a state value v i of the visible unit 17 is present by the number of visible unit 17, and the reverse learning, the operation for obtaining a state value v i of each visible unit 17 at the same time It will be possible to execute at high speed. Then, the circuit resources required for the second arithmetic circuit unit 23 are reduced, and the time required for the arithmetic is shortened, so that low power consumption can be reduced.

ここで、j番目の隠れユニット19が発火の状態であるとき状態値hを1とし、非発火の状態であるときは状態値hを0とする。
また、図4(B)に示すように、i番目の可視ユニット17の状態値vは、各隠れユニット19の状態値h(j=1、2、・・・、m)がi番目の可視ユニット17に伝達される際の結合荷重(重み)wij(i=1、2、・・・、n、j=1、2、・・・、m)と、i番目の可視ユニット17のバイアス値a(i=1、2、・・・、n)を用いて、a+wi1+wi2+wi3+・・・+wim=a+Σijとなる。
そして、発火確率関数fにシグモイド関数を用いると、i番目の可視ユニット17の発火確率P(v)は、P=1/(1+exp(−v/T))となる。
Here, the 1 state value h j when j th hidden unit 19 is in the state of ignition, and 0 the state value h j when a non-excitation state.
Further, FIG. 4 (B), the state value v i of the i-th visible unit 17, the state value h j of the hidden units 19 (j = 1,2, ···, m) is the i-th The coupling load (weight) wij (i = 1, 2, ..., n, j = 1, 2, ..., M) when transmitted to the visible unit 17 of the above, and the i-th visible unit 17 Using the bias value a i (i = 1, 2, ..., n) of, a i + w i1 h 1 + w i2 h 2 + w i3 h 3 + ... + w im h m = a i + Σ j w It becomes ij h j.
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には、逆方向学習において状態値v(i=1、2、・・・、n)を求める際に、固定小数点2進数のビット幅を超過するビット(整数部の上位側ビットと小数部の下位側ビット)は切り捨てられる。そこで、ユニット状態演算器として、切り捨てられるビットの中で、小数部の下位側ビットを用いて形成する数値を乱数vとして用いて(乱数の代わりに用いて)、可視ユニット17毎の発火確率P(v)から、i番目の可視ユニット17の発火又は非発火の状態を決定する第2のユニット状態演算器24が設けられている。乱数生成器を使用しないため、第2のユニット状態演算器24に要するハードウェア資源を削減することができ、より省資源にRBMをハードウェア実装することが可能になる。 As shown in FIG. 1 (B), the second arithmetic circuit 23, the state value v i in the opposite direction learning (i = 1,2, ···, n ) in determining a fixed point binary number Bits that exceed the bit width of (the upper bit of the integer part and the lower bit of the decimal part) are truncated. Therefore, as a unit state calculator, among the bits to be truncated, a numerical value formed by using the lower bits of the decimal part is used as a random number v (used instead of a random number), and the firing probability P for each visible unit 17 is used. from i (v i), the second unit state calculator 24 which determines the state of the ignition or non-ignition of the i-th visible unit 17 is provided. Since the random number generator is not used, the hardware resources required for the second unit state calculator 24 can be reduced, and the RBM can be implemented in hardware in a more resource-saving manner.

ここで、第2のユニット状態演算器24には、図3に示すように、切り捨てた小数部の下位側ビットから形成する数値が発火確率P(v)以下の場合では、i番目の可視ユニット17は発火状態であると判定し、可視ユニット17から1を出力する。従って、i番目の可視ユニット17の状態値vは1となる。
一方、切り捨てた小数部の下位側ビットから形成する数値が発火確率P(v)を超える場合では、i番目の可視ユニット17は非発火状態であると判定し、可視ユニット17から0を出力する。従って、i番目の可視ユニット17の状態値vは0となる。
Here, the second unit state calculator 24, as shown in FIG. 3, in the case numbers formed from the lower side bit of the fraction obtained by truncating the following firing probability P i (v i), i th The visible unit 17 determines that it is in an ignited state, and outputs 1 from the visible unit 17. Therefore, the state value v i of the i-th visible unit 17 is one.
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 visible unit 17 determines that the non-excitation state, the 0 from the visible unit 17 Output. Therefore, the state value v i of the i-th visible unit 17 becomes zero.

本発明の一実施の形態に係る乱数生成器が不要なニューラルネットワークは、深層学習に用いる乱数生成器が不要な処理層を備えたニューラルネットワークの一例である制限付きボルツマンマシン(図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 visible layer 16. The state value h (corresponding to the state value B) of each hidden unit 19 determined by being transmitted to each of the plurality of hidden units 19 (corresponding to the unit B) to be formed is obtained from the calculation by the fixed decimal binary number, and the state value h is used as a variable. The first arithmetic circuit unit that obtains the ignition probability P (h) (corresponding to the ignition probability P (B)) for each hidden unit 19 using the ignition probability function f to determine the ignition or non-ignition state and outputs it. 20 is provided in the arithmetic circuit unit 14.

更に、制限付きボルツマンマシンは、図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 layer 18 determined by the forward learning (because the data processing direction is reversed, it corresponds to the processing layer A). , And so on), the state value h (corresponding to the state value A) for each hidden unit 19 (corresponding to the unit A) forms a plurality of visible units 17 (corresponding to the processing layer B) forming the visible layer 16 (corresponding to the processing layer B). The state value v (corresponding to the state value B) for each visible unit determined by being transmitted to each (corresponding) is obtained from the calculation by the fixed decimal binary number, and the firing probability function f with the state value v as a variable is used for each visible unit 17. The arithmetic circuit unit 14 has a second arithmetic circuit unit 23 for determining the ignition or non-ignition state by obtaining the ignition probability P (v) (corresponding to the ignition probability P (B)).

第1の演算回路部20を設けることにより、順方向学習において、各隠れユニット19の状態値hを求める演算を同時にかつ高速で実行することが可能になる。そして、第1の演算回路部20では固定小数点2進数による演算が実行されるため、第1の演算回路部20に要する回路資源が削減され、演算に要する時間が短縮されるため、消費電力の削減が可能になる。
また、第2の演算回路部23を設けることにより、逆方向学習において、各可視ユニット17の状態値vを求める演算を同時にかつ高速で実行することが可能になる。そして、第2の演算回路部23では固定小数点2進数による演算が実行されるため、第2の演算回路部23に要する回路資源が削減され、演算に要する時間が短縮されるため、低消費電力の削減が可能になる。
By providing the first arithmetic circuit unit 20, it becomes possible to simultaneously and at high speed execute the arithmetic for obtaining the state value h of each hidden unit 19 in the forward learning. Then, since the first arithmetic circuit unit 20 executes the calculation by the fixed-point binary number, the circuit resources required for the first arithmetic circuit unit 20 are reduced, and the time required for the calculation is shortened, so that the power consumption is reduced. Reduction is possible.
Further, by providing the second arithmetic circuit unit 23, it is possible to simultaneously and at high speed execute the arithmetic for obtaining the state value v of each visible unit 17 in the reverse learning. Then, since the second arithmetic circuit unit 23 executes the calculation by the fixed-point binary number, the circuit resources required for the second arithmetic circuit unit 23 are reduced, and the time required for the calculation is shortened, so that the power consumption is low. Can be reduced.

そして、第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 visible units 17 is transmitted to the plurality of hidden units 19 of the hidden layer 18 to the first arithmetic circuit unit 20, and the state value for each hidden unit 19 is determined. When h is calculated, a numerical value formed by using bits that exceed the bit width of the fixed-point binary number and are truncated is used as the random number h, and the firing probability P (h) of each hidden unit 19 is used to ignite the visible unit 19. A first unit state calculator 21 for determining a non-ignition state is provided.

また、第2の演算回路部23には、逆方向学習において、複数の隠れユニット19の各状態値hが可視層16の複数の可視ユニット17にそれぞれ伝達されて決まる可視ユニット17毎の状態値vを求める際に固定小数点2進数のビット幅を超過して切り捨てられるビットを用いて形成する数値を乱数vとして用いて、可視ユニット17毎の発火確率P(v)から可視ユニット17の発火又は非発火の状態を決定する第2のユニット状態演算器24が設けられている。 Further, in the second arithmetic circuit unit 23, in the reverse direction learning, each state value h of the plurality of hidden units 19 is transmitted to each of the plurality of visible units 17 of the visible layer 16, and the state value for each visible unit 17 is determined. The firing probability P (v) of each visible unit 17 is used to ignite the visible unit 17 or by using a numerical value formed by using bits that exceed the bit width of the fixed-point binary number and are truncated when calculating v as the random number v. A second unit state calculator 24 is provided to determine the non-ignition state.

従来の乱数生成器を使用しないため、第1、第2のユニット状態演算器21、24に要するハードウェア資源を削減することができ、より省資源に制限付きボルツマンマシンをハードウェア実装することが可能になる。 Since the conventional random number generator is not used, the hardware resources required for the first and second unit state calculators 21 and 24 can be reduced, and the Boltzmann machine with more limited resource saving can be implemented in hardware. It will be possible.

ここで、順方向学習を開始した際、可視ユニット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 visible unit 17 becomes 1 or 0 when the forward learning is started, the state value for each hidden unit 19 when each initial state value is transmitted to the hidden unit 19 is used. No truncation bit is generated when calculating. Therefore, as shown in FIG. 1 (B), the first arithmetic circuit unit 20 is subjected to the first forward learning by inputting the learning values (1 or 0 because of the binary number) into the visible units 17, respectively. A unit initial state calculator 22 for obtaining an initial state value for each visible unit 17 is provided. In the unit initial state calculator 22, each initial state value of the visible unit 17 is transmitted to the hidden unit 19, and the ignition probability of each hidden unit 19 determines the ignition or non-ignition state of each hidden unit 19. The numerical value used as a random number is determined by transmitting each initial state value to the hidden unit 19, and the state value of each hidden unit 19 is calculated by a fixed-point binary number operation using all the decimal bits of the non-truncated bits. Is formed.

(実施例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ビット(log 1024=log10)となるため、加算後の値のビット幅は、整数部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)
学習を開始した最初のステップ、即ち、最初の順方向学習においては、各初期状態値vが隠れユニットにそれぞれ伝達されて決まる隠れユニット毎の発火確率P(h)から隠れユニット毎の発火又は非発火の状態を決定する際に用いる乱数hを、各初期状態値vが隠れユニットにそれぞれ伝達されて決まる隠れユニット毎の状態値hを固定小数点2進数による演算で求める際の非切り捨てビット中の小数部の全ビットを用いて形成する数値としている。
そこで、隠れユニット毎の状態値hを固定小数点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として、可視ユニットの初期状態値vが伝達された際の隠れユニットの発火又は非発火の状態を決定する際にだけに使用する乱数を、ソフトウェア上の乱数生成器で求めながら、1回の事前学習によりパラメータの初期値を求めた後、800回エポックの全体学習を行い、1エポック毎に交差エントロピー誤差を求めた結果を、比較例3として、隠れユニット毎の状態値hを固定小数点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の交差エントロピー誤差の変化と同等の結果を示している。これにより、最初の順方向学習において、隠れユニット毎の発火又は非発火の状態を決定する際に用いる乱数として、可視ユニットの初期状態値vが隠れユニット毎に伝達されて決まる隠れユニット毎の状態値hを固定小数点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.
請求項1記載の乱数生成器が不要なニューラルネットワークのハードウェア実装の方法において、前記ニューラルネットワークは制限付きボルツマンマシンであって、
前記制限付きボルツマンマシンの可視層を形成する複数の可視ユニットのそれぞれの発火又は非発火の状態を示す状態値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.
請求項2記載の乱数生成器が不要なニューラルネットワークのハードウェア実装の方法において、前記固定小数点2進数のビット幅を超過して切り捨てられるビットは、小数部の下位側のビット又は固定小数点2進数の整数部の上位側ビットであることを特徴とする乱数生成器が不要なニューラルネットワークのハードウェア実装の方法。 In the method of hardware implementation of a neural network that does not require the random number generator according to claim 2, the bits that exceed the bit width of the fixed-point binary number and are truncated are the lower bits of the decimal part or the fixed-point binary number. A method of hardware implementation of a neural network that does not require a random number generator, which is characterized by being the upper bit of the integer part of. 請求項2又は3記載の乱数生成器が不要なニューラルネットワークのハードウェア実装の方法において、前記乱数hが前記発火確率P(h)以下では前記隠れユニットを発火状態とし、該乱数hが該発火確率P(h)を超えると該隠れユニットを非発火状態とし、前記乱数vが前記発火確率P(v)以下では前記可視ユニットを発火状態とし、該乱数vが該発火確率P(v)を超えると該可視ユニットを非発火状態とすることを特徴とする乱数生成器が不要なニューラルネットワークのハードウェア実装の方法。 In the method of hardware implementation of a neural network that does not require the random number generator according to claim 2 or 3, when the random number h is equal to or less than the firing probability P (h), the hidden unit is set to the firing state, and the random number h is the firing. When the probability P (h) is exceeded, the hidden unit is placed in a non-firing state, and when the random number v is equal to or lower than the firing probability P (v), the visible unit is placed in a firing state, and the random number v sets the firing probability P (v). A method of hardware implementation of a neural network that does not require a random number generator, which comprises putting the visible unit in a non-firing state when it exceeds. 請求項2記載の乱数生成器が不要なニューラルネットワークのハードウェア実装の方法において、最初の前記順方向学習における前記可視ユニット毎の初期状態値vを該可視ユニットにそれぞれ学習値を入力して求め、前記各初期状態値vが前記隠れユニットにそれぞれ伝達されて決まる該隠れユニット毎の発火確率P(h)から該隠れユニット毎の発火又は非発火の状態を決定する際に用いる乱数hを、前記各初期状態値vが前記隠れユニットにそれぞれ伝達されて決まる該隠れユニット毎の状態値hを前記固定小数点2進数による演算で求める際の非切り捨てビット中の小数部の全ビットを用いて形成することを特徴とする乱数生成器が不要なニューラルネットワークのハードウェア実装の方法。 In the method of hardware implementation of a neural network that does not require a random number generator according to claim 2, the initial state value v 0 for each visible unit in the first forward learning is input to each of the visible units. A random number used to determine the ignition or non-ignition state of each hidden unit from the ignition probability P (h 0 ) of each hidden unit, which is determined by transmitting each initial state value v 0 to the hidden unit. h 0 is the decimal part of the non-truncated bit when the state value h 0 for each hidden unit, which is determined by transmitting each initial state value v 0 to the hidden unit, is obtained by the calculation by the fixed decimal number binary number. A method of hardware implementation of a neural network that does not require a random number generator, which is characterized by being formed using all bits. 請求項5記載の乱数生成器が不要なニューラルネットワークのハードウェア実装の方法において、前記乱数hが前記発火確率P(h)以下では前記隠れユニットを発火状態とし、該乱数hが該発火確率P(h)を超えると該隠れユニットを非発火状態とすることを特徴とする乱数生成器が不要なニューラルネットワークのハードウェア実装の方法。 In the method of hardware implementation of a neural network that does not require a random number generator according to claim 5, when the random number h 0 is equal to or less than the firing probability P (h 0 ), the hidden unit is set to a firing state, and the random number h 0 is the random number h 0. A method of hardware implementation of a neural network that does not require a random number generator, characterized in that the hidden unit is put into a non-ignition state when the ignition probability P (h 0) is exceeded. 深層学習に用いる乱数生成器が不要な処理層を備えたニューラルネットワークであって、
最下流の前記処理層を除いた任意の処理層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).
請求項7記載の乱数生成器が不要なニューラルネットワークにおいて、前記処理層Aは制限付きボルツマンマシンの可視層、前記処理層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).
JP2016156471A 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 Active JP6831990B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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