Source: http://www.google.com/patents/US5324991?dq=6985872
Timestamp: 2014-12-18 23:57:20
Document Index: 464618306

Matched Legal Cases: ['Application No. 62', 'art 304', 'art 306', 'arts 303', 'arts 303', 'art 306', 'art 306', 'art 306', 'art 306', 'arts 3031', 'arts 3031', 'art 3100', 'art 3100', 'art 3100', 'art 3100', 'art 3100', 'art 3100', 'art 3100', 'art 3100', 'art 3100', 'art 3100', 'art 3100', 'art 3100', 'art 3100', 'art 3100', 'art 701', 'art 701', 'art 701', 'art 701', 'art 701', 'art 701', 'art 701', 'art 701', 'art 701', 'art 701', 'art 701', 'art 701']

Patent US5324991 - Neuron unit and neuron unit network - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsA neuron unit processes a plurality of binary input signals and outputs a neuron output signal which is indicative of a result of the processing. The neuron unit is provided with a plurality of first gates respectively for carrying out a logical operation on a binary input signal and a weighting coefficient,...http://www.google.com/patents/US5324991?utm_source=gb-gplus-sharePatent US5324991 - Neuron unit and neuron unit networkAdvanced Patent SearchPublication numberUS5324991 APublication typeGrantApplication numberUS 07/989,605Publication dateJun 28, 1994Filing dateDec 11, 1992Priority dateJul 12, 1989Fee statusPaidPublication number07989605, 989605, US 5324991 A, US 5324991A, US-A-5324991, US5324991 A, US5324991AInventorsToshiyuki Furuta, Hiroyuki Horiguchi, Hirotoshi Eguchi, Atsuo Hashimoto, Sugitaka Oteki, Toshihiro Tsukagoshi, Satoshi Otsuki, Eiki Aono, Shuji Motomura, Takahiro WatanabeOriginal AssigneeRicoh Company, Ltd.Export CitationBiBTeX, EndNote, RefManPatent Citations (9), Non-Patent Citations (16), Referenced by (7), Classifications (4), Legal Events (4) External Links: USPTO, USPTO Assignment, EspacenetNeuron unit and neuron unit networkUS 5324991 AAbstract A neuron unit processes a plurality of binary input signals and outputs a neuron output signal which is indicative of a result of the processing. The neuron unit is provided with a plurality of first gates respectively for carrying out a logical operation on a binary input signal and a weighting coefficient, a second gate for carrying out a logical operation on an excitatory output signal of each of the first gates, a third gate for carrying out a logic operation on an inhibitory output signal of each of the first gates, a fourth gate for synthesizing output signals of the second and third gates and outputting the neuron output signal, and a generating circuit for generating the weighting coefficients which are supplied to each of the first gates. The generating circuit for generating one weighting coefficient includes a random number generator for generating random numbers, and a comparator for comparing each random number r with a predetermined value q and for outputting a pulse signal having first and second values depending on whether each random number r is such that r≦q or r>q, and each weighting coefficient is described by a pulse density.
What is claimed is: 1. A neuron unit for processing a plurality of binary input signals and for outputting a neuron output signal which is indicative of a result of the processing, said neuron unit comprising:a plurality of first gate means, respectively for carrying out a logical operation on a binary input signal and a weighting coefficient; a second gate means, coupled to said first gate means, for carrying out a logical operation on an excitatory output signal of each of said first gate means; a third gate means, coupled to said first gate means, for carrying out a logic operation on an inhibitory output signal of each of said first gate means; a fourth gate means, coupled to said second and third gate means, for synthesizing output signals of said second and third gate means and outputting the neuron output signal; and generating means, coupled to said first gate means, for generating the weighting coefficients which are supplied to each of said first gate means, said generating means for generating one weighting coefficient including a random number generator for generating random numbers, and a comparator for comparing each random number r output from the random number generator with a predetermined value r and for outputting a pulse signal having first and second values depending on whether each random number r is such that r≦q or r>q, each weighting coefficient being described by a pulse density which is defined by at least one of a number of the first values and a number of the second values of the pulse signal within a predetermined time, where the first and second values are arranged at random and the first and second values respectively correspond to high and low binary signal levels. 2. The neuron unit as claimed in claim 1, wherein said generating means further includes a register for storing the predetermined value q.
3. The neuron unit as claimed in claim 1, wherein the random number generator of said generating means includes a linear feedback shift register which successively shifts bits of an initial value set therein in response to clock pulses.
4. The neuron unit as claimed in claim 1, wherein the random number generator of said generating means includes an n-bit shift register having an input part for successively shifting bits of an initial value set therein in response to clock pulses, an exclusive-OR circuit for obtaining an exclusive-OR of two arbitrary ones of n outputs of the shift register, and a switching circuit for selectively outputting one of an output of the exclusive-OR circuit and an arbitrary one of the n outputs of the shift register in response to a control signal, said switching circuit supplying an output thereof to the input part of the shift register.
5. The neuron unit as claimed in claim 1, wherein the random number generator of said generating means includes an n-bit shift register having an input part for successively shifting bits of an initial value set therein in response to clock pulses, a switching circuit for selectively outputting one of two arbitrary ones of n outputs of the shift register in response to a control signal, and an exclusive-OR circuit for obtaining an exclusive-OR of an arbitrary one of the n outputs of the shift register and an output of the switching circuit, said exclusive-OR circuit supplying an output thereof to the input part of the shift register.
6. The neuron unit as claimed in claim 1, wherein the random number generator of said generating means includes a linear feedback shift register having an input part, and output control means, coupled to the linear feedback shift register, for operating to block an output of the linear feedback shift register if a number of clock pulses counted by the linear feedback shift register reaches M until N more clock pulses are input to the linear feedback shift register, where M denotes a number of clock pulses required to generate pulses from the linear feedback shift register amounting to one period of a maximum length linearly recurring sequence signal, and N denotes a predetermined number such that N<M.
7. The neuron unit as claimed in claim 6, wherein the random number generator of said generating means further includes a means for changing the value N every time the output control means operates.
8. The neuron unit as claimed in claim 1, wherein the random number generator of said generating means includes an n-bit shift register having an input part for successively shifting bits of an initial value set therein in response to clock pulses, an exclusive-OR circuit for obtaining an exclusive-OR of a fixed one of n outputs of the shift register and an arbitrary one of n outputs of the shift register, and selector means for selecting the arbitrary one of the n outputs of the shift register to a different one of the n outputs every time a random pulse sequence is output from the shift register for a predetermined time, said exclusive-OR circuit supplying an output thereof to the input part of the shift register.
9. The neuron unit as claimed in claim 8, wherein the selector means of said generating means includes a counter for counting pulses of a predetermined signal, and a selector, coupled to the counter and specific ones of the n outputs of the shift register, for selectively supplying one of the specific ones of the n outputs depending on a counted value of the counter.
10. The neuron unit as claimed in claim 8, wherein the selector means of said generating means includes an m-bit shift register for shifting pulses of a predetermined signal, and a selector, coupled to the m-bit shift register and specific ones of the n outputs of the n-bit shift register, for selectively supplying one of the specific ones of the n outputs depending on a value stored in the m-bit shift register.
11. The neuron unit as claimed in claim 8, wherein the selector means of said generating means includes a linear feedback shift register for shifting pulses of a predetermined signal, and a selector, coupled to the linear feedback shift register and specific ones of the n outputs of the n-bit shift register, for selectively supplying one of the specific ones of the n outputs depending on an output value of the linear feedback shift register.
12. The neuron unit as claimed in claim 1, wherein the random number generator of said generating means includes first means for generating random pulses corresponding to the random numbers in response to clock pulses, and said generating means further includes:second means for counting the random pulses output from said first means, third means for comparing a counted value of the second means with a preset value, and blocking means for blocking the clock pulses from being supplied to the first means depending on a comparison result of the third means. 13. The neuron unit as claimed in claim 12, wherein the said first means includes a linear feedback shift register which successively shifts bits of an initial value set therein in response to the clock pulses, and said generating means further includes fourth means for changing the initial value set in the linear feedback shift register when a number of the clock pulses supplied to the random number generator reaches a number required for said first means to generate the random pulses amounting to one period thereof.
14. The neuron unit as claimed in claim 1, wherein the random number generator of said generating means includes:a plurality of linear feedback shift registers responsive to clock pulses, switching means, coupled to the linear feedback shift registers, for connecting the linear feedback shift registers to form a single shift register in a first mode and for disconnecting the linear feedback shift registers into independent registers in a second mode, and bit generating means, coupled to the single shift register, for generating at least one bit, an initial value being set in each of the linear feedback shift registers when the switching means switches to the second mode after the bit from the bit generating means is transferred to the single shift register during the first mode of the switching means. 15. The neuron unit as claimed in claim 14, wherein the bit generating means includes a linear feedback shift register having a predetermined number of stages, and each linear feedback shift register of the random number generator has a number of stages greater than the predetermined number.
This application is a continuation-in-part application of U.S. patent application entitled "NEURON UNIT AND NEURON UNIT NETWORK", filed Nov. 4, 1992 and assigned Ser. No. 07/971,476, which is a divisional application of U.S. patent application Ser. No. 07/856,645, filed Mar. 24, 1992, now U.S. Pat. No. 5,185,851, which is a divisional application of U.S. patent application Ser. No. 07/550,404, filed Jul. 10, 1990, now U.S. Pat. No. 5,131,073, issued Jul. 14, 1992.
BACKGROUND OF THE INVENTION The present invention generally relates to neuron unit, and more particularly to a neuron unit which resembles neurons and is applicable to neural computers. The present invention also relates to a neuron unit network which includes a plurality of such neuron units which are coupled to form a hierarchical network structure.
FIG. 1 shows an example of a conventional neuron unit proposed in a Japanese Laid-Open Patent Application No. 62-295188. The neuron unit includes a plurality of amplifiers 1 having an S-curve transfer function, and a resistive feedback circuit network 2 which couples outputs of each of the amplifiers 1 to inputs of amplifiers in another layer as indicated by a one-dot chain line. A time constant circuit 3 made up of a grounded capacitor and a grounded resistor is coupled to an input of each of the amplifiers 1. Input currents I1, I2, . . . , IN are respectively applied to the inputs of the amplifiers I, and an output is derived from a collection of output voltages of the amplifiers 1.
Another object of the present invention is to provide a neuron unit for processing a plurality of binary input signals and for outputting a neuron output signal which is indicative of a result of the processing, comprising a plurality of first gate means, respectively for carrying out a logical operation on a binary input signal and a weighting coefficient, a second gate means, coupled to the first gate means, for carrying out a logical operation on an excitatory output signal of each of the firs gate means, a third gate means, coupled to the first gate means, for carrying out a logic operation on an inhibitory output signal of each of the first gate means, a fourth gate means, coupled to the second and third gate means, for synthesizing output signals of the second and third gate means and outputting the neuron output signal, and generating means, coupled to the first gate means, for generating the weighting coefficients which are supplied to each of the first gate means, where the generating means for generating one weighting coefficient includes a random number generator for generating random numbers, and a comparator for comparing each random number r output from the random number generator with a predetermined value r and for outputting a pulse signal having first and second values depending on whether each random number r is such that r≦q or r>q, and each weighting coefficient is described by a pulse density which is defined by at least one of a number of the first values and a number of the second values of the pulse signal within a predetermined time, where the first and second values are arranged at random and the first and second values respectively correspond to high and low binary signal levels. According to the neuron unit of the present invention, it is possible to supply each weighting coefficient in the form of a pulse signal having the first and second values arranged at random to describe its pulse density.
FIGS. 5(A), 5(B), 6(A) through 6(C), 7(A) through 7(C) and 8(A) through 8(C) are timing charts for explaining the operation of the first and second embodiments;
FIGS. 15(A) through 15(C) are timing charts for explaining the operation of the third embodiment;
FIG. 16 is a circuit diagram showing an essential part of a modification of the third embodiment;
FIG. 17 is a system block diagram showing an essential part of a fourth embodiment of the neuron unit according to the present invention;
FIGS. 18A through 18D are circuit diagrams respectively showing a first embodiment of a random number generator shown in FIG. 17 with slightly different connections;
FIGS. 19A through 19D respectively show bit sequence of the M sequence generated from the random number generators shown in FIGS. 18A through 18D;
FIGS. 20A through 20D respectively show random number sequences generated from the random number generators shown in FIGS. 18A through 18D;
FIG. 21 is a circuit diagram showing a second embodiment of the random number generator;
FIG. 22 is a circuit diagram showing an embodiment of a switching circuit shown in FIG. 21;
FIG. 23 is a flow chart for explaining the operation of the second embodiment of the random number generator;
FIG. 24 is a circuit diagram showing a third embodiment of the random number generator;
FIG. 25 is a circuit diagram showing an embodiment of a random pulse generator;
FIG. 26 is a circuit diagram showing another embodiment of the random pulse generator;
FIG. 27 is a circuit diagram showing a fourth embodiment of the random number generator;
FIG. 28 is a diagram for explaining the relationship of the counter content, feedback position and the characteristic polynomial in the fourth embodiment of the random number generator;
FIG. 29 is a circuit diagram showing a fifth embodiment of the random number generator;
FIG. 30 is a diagram for explaining the operation of the fifth embodiment of the random number generator;
FIG. 31 is a system block diagram showing the first embodiment of the random number generator together with the essential part of the fourth embodiment of the neuron unit;
FIG. 32 is a system block diagram showing an sixth embodiment of the random number generator together with the essential part of the fourth embodiment of the neuron unit;
FIG. 33 is a system block diagram showing an essential part of a fifth embodiment of the neuron unit according to the present invention;
FIG. 34 is a system block diagram showing an essential part of a sixth embodiment of the neuron unit according to the present invention;
FIG. 35 is a system block diagram showing an essential part of a seventh embodiment of the neuron unit according to the present invention;
FIG. 36 is a circuit diagram showing a bit generating part shown in FIG. 35;
FIG. 37 is a circuit diagram showing an essential part of LFSRs shown in FIG. 35; and
FIG. 38 is a flow chart for explaining the operation of the seventh embodiment of the neuron unit according to the present invention.
In the first and second embodiments, the input and output signals are synchronized binary signals. For example, the signals have a binary value "0" or "1". The quantity of an input signal Vij is described by a pulse density, that is, a number of "1"s within a predetermined time. FIGS. 5(A) and 5(B) respectively show the input signal Vij and a synchronizing clock signal ck for a case where information "0.5" is described by the input signal Vij. In this case, there are five "1"s and five "0" s within a predetermined time amounting to ten pulses of the synchronizing clock signal ck. It is desirable that the "1" s and "0" s of the input signal Vij are arranged at random.
As described before, there are two types of couplings (or weighting), namely, the excitation and inhibition types. When making numerical calculations. The excitation and inhibition types are described by positive and negative signs on the weighting coefficient. In the case of the conventional analog neuron unit, when the weighting coefficient Tij is the inhibition type and the sign on the weighting coefficient Tij is negative, an inverting amplifier is used to make an inversion and a coupling to another neuron is made via a resistance which corresponds to the weighting coefficient Tij.
On the other hand, in the first and second embodiments, the couplings are divided into the excitation group and the inhibition group depending on the positive and negative signs on the weighting coefficient. Then, the calculation up to the part where the logical sum of the input pulse sequence and the pulse sequence of the weighting coefficient is obtained is carried out for each group. Thereafter, a measure is taken so that the neuron unit 11 outputs "1" only when the output of the excitation group is "1" and the output of the inhibition group is "0".
This measure is realized by the output part c shown in FIGS. 3 and 4, that is, by obtained a logical product of a negative of the output of the inhibition group and the output of the excitation group. As a result, it is possible to realize both the excitation type coupling and the inhibition type coupling by the digital neuron unit. FIG. 8(A) shows the output of the excitation group, FIG. 8(B) shows the output of the negative of the output of the inhibition group, and FIG. 8(C) shows the output of the neuron unit 11.
In the first embodiment, the input state is already divided into the excitation group and the inhibition group by providing the input lines 12aj for the excitation group and the input lines 12bj for the inhibition group. In other words, the relationship of the input and the coupling (or weighting) is fixed, and the logical products and logical sums are calculated for each group.
E=(&#954;)&#931;(yi -ti)2 &#916;Tij =&#948;E/&#948;Tij                  (2)
B) The weighting coefficient Tij is newly obtained from the error signal δ using the following set of formulas (4). ##EQU1##
D) The error signal is obtained in the previous layer using the following set of formulas (6). ##EQU3##
In FIG. 14, input signals V1, V2, . . . are described in pulse densities, that is, the number of "1" s within a predetermined time.
FIG. 16 shows an essential part of a modification of the third embodiment. In FIG. 16, an output part c3 is made up of the inverter 16 and the OR gate 47. The inverter 16 inverts the logical sum output from the OR gate 15b for the inhibition group. The OR gate 47 obtains a logical sum of the logical sum output from the OR gate 15a for the excitation group and an inverted logical sum output from the inverter 16. Hence, the output part c3 outputs a value "0" only when both outputs of the OR gate 15a and the inverter 16 are "0", and otherwise outputs a value "1".
In the embodiments described above, each shift register which stores the weighting coefficient Tij must have a number of bits corresponding to the required pulse length because the weighting coefficient Tij is described by a random pulse sequence (train). If the calculations or operations are to be carried out with a high accuracy, it is essential that the pulse length is set long. For example, if the signal accuracy of 7 bits is considered, the random pulse sequence must have a bit length (pulse length) of 128 (=27) bits. In this case, in order to store the weighting coefficient Tij, each corresponding shift register must have 128 bits.
In the neuron unit network which is made up of a plurality of neuron units which are coupled, the number of neuron units which are coupled is several hundred to several thousand, for example. For this reason, an extremely large number of shift registers or memory means having the relatively large bit length is required to store all of the weighting coefficients Tij. Therefore, the scale of the hardware becomes large and the production cost becomes high. As a result, when the neuron units are formed on a semiconductor integrated circuit device, the number of neuron units which can be formed on the chip area becomes extremely limited. On the other hand, the amount of data to be transferred for the purpose of initially setting each weighting coefficient Tij into the corresponding shift register or memory means becomes extremely large, thereby requiring a very long time to complete the initial setting operation.
Accordingly, a description will hereinafter be given of embodiments in which the above described problems are eliminated.
FIG. 17 shows an essential part of a fourth embodiment of the neuron unit according to the present invention. In FIG. 17, those parts which are the same as those corresponding parts in FIG. 3 are designated by the same reference numerals, and a description thereof will be omitted.
In this embodiment, a random number generator 31, a comparator 32 and a register 33 are provided in place of a shift register 13aj shown in FIG. 3. The random number generator 31 generates a random number and supplies the random number to the comparator 32. On the other hand, the register 33 stores a binary data corresponding to the weighting coefficient Tij. The comparator 32 compares the random number from the random number generator 31 with the data from the register 33, and outputs a pulse indicative of the comparison result to the AND gate 14aj. As a result, a random pulse sequence having a pulse density corresponding to the binary data stored in the register 33, that is, the weighting coefficient Tij, is output from the comparator 32.
For example, if the random number generator 31 generates a 7-bit random number from "1" to "127" and the register 33 stores a 7-bit data indicating "30", the comparator 32 can be designed to output a data "1" if the 7-bit random number is less than or equal to "30". In this case, the random number generator 31 generates a number which is less than or equal to "30" 30 times in one random number generation period in which the number from "1" to "127" and excluding "0" is generated once at random. Hence, the comparator 32 outputs a random pulse sequence having a pulse density of "30/127", that is, a random pulse sequence in which the data "1" appears 30 times at random within one random number generation period.
Compared to the case where a 128-bit shift register 13aj is used, this embodiment merely requires a 7-bit register 33. Accordingly, it is possible to simplify both the circuit construction and the operation of setting the initial value into the register 33. Although this embodiment uses the random number generator 31 and the comparator 32 in addition to the register 33, the increase in the hardware is small compared to the large hardware reduction that can be achieved by using the 7-bit register 33 in place of the 128-bit shift register 13aj, particularly when the large number of registers used is taken into consideration.
Of course, the circuit part made up of the random number generator 31, the comparator 32 and the register 33 may be used in place of the shift registers of the other embodiments described above, namely, the shift registers 19ij and 13a1.
FIG. 18A shows a first embodiment of the random number generator 31. In FIG. 18, the random number generator 31 includes an exclusive-OR gate 305 and 7 flip-flops 3021 through 3027 which are connected as shown. A clock signal is input to a terminal 307 and is applied to clock terminals CK of each of the flip-flops 3021 through 3027. The 7 flip-flops 3021 through 3027 form a 7-bit linear feedback shift register (LFSR) 302 together with the exclusive-OR gate 305. An initial value is set in the LFSR 302, and the LFSR 302 thereafter repeats a shift operation. As a result, a number from "1" to "127" and excluding "0" is generated once at random within one random number generation period. This random number which is generated from the LFSR 302 is defined by bits A1 through A7, where A7 denotes the most significant bit (MSB) and A1 denotes the least significant bit (LSB), for example. However, the bits A.sub. 7 and A1 may respectively denote the LSB and the MSB.
The output of the flip-flop 3021 is input to the exclusive-OR gate 305 in FIG. 18, but the output of any of the flip-flops 3021 through 3026 may be input to the exclusive-OR gate 305 as shown in FIGS. 18B through 18D.
Next, a description will be given of the reason why the random pulse sequence generated from the random number generators 31 shown in FIGS. 18A through 18D actually becomes regular to a certain extent The random number generators 31 shown in FIGS. 18B through 18D constructions which are basically the same as that of the random number generator 31 shown in FIG. 18A, except for one of the signals input to the exclusive-OR gate 305.
If the bit stored in the flip-flop 3021 at a time t is denoted by At, a bit A.sub.(t-i+j) which is stored in the flip-flop 3021 a time i-j before is stored in the flip-flop 3021+i at a time (t+j). Hence, a bit A.sub.(t-i-1) is stored in the flip-flop 3021+1 at a time (t-1).
For example, in the case of the random number generator 31 shown in FIG. 18C, the bit At stored in the flip-flop 3021 of the first stage is the value which is output from the exclusive-OR gate 305 based on the bits stored in the flip-flops 3024 and 3027 of the fourth and seventh stages at the time (t-1). Because the exclusive-OR gate 305 carries out a modulo-2 addition of the bits, the bit At stored in the flip-flop 3021 of the first stage can be described by the following formula (7), where "mod2" denotes a modulo-2 addition.
At =A.sub.(t-4) +A.sub.(t-7) (mod2)                   (7)
When setting an initial value into the LFSR 302 having 7 stages, each of the 7 bits can either take the value "0" or "1" and there are 27 =128 possible initial values. If all of the 7 bits of the initial value are "0", the value output from the LFSR 302 will not change, and the value "0000000" is excluded from the initial value. If at least one of the 7 bits of the initial value has the value "1", the value output from the LFSR 302 will successively change to one of the 127 possible values with a predetermined period.
If the bit At stored in the flip-flop 3021 of the first stage can be described by the formula (7), it is known that the bit sequence of the bit At is a pseudo random sequence having a period (27 -1). In other words, each of the random number generators 31 shown in FIGS. 18A through 18D can generate (27 -1) bit sequences in one period, and it is thus possible to output integers from "1" to "127" by reading the 7 bits of the bit sequences as a binary number.
When reading the bit sequences output from the random number generator 31 as the binary number, it is possible to consider the bit A1 output from the first stage as the LSB and the bit A7 output from the last (seventh) stage as the MSB or vice versa. But for the sake of convenience, it will be assumed hereunder that the bit A1 output from the first stage is the LSB and the bit A7 output from the last stage is the MSB of the binary value.
If it is assumed that ci (=1, 2, . . . , p) is an integer "0" or "1", where cp =1, a recurrence formula which describes At by ci becomes as follows. ##EQU4## A characteristic polynomial of this recurrence formula (8) can be described as follows.
f(x)=1+c1 x+c2 x2 +. . . +cp xp   (9)
A random number sequence which is made up of random pulses generated by the recurrence formula (8) has a period which is 2.sup. p-1 or less in length, and the characteristic polynomial which has a maximum period within this range is called a primitive polynomial. The bit sequence of At generated by such a primitive polynomial and having the period of 2p -1 is called a p order maximum length linearly recurring sequence (hereinafter simply referred to as a M sequence).
For example, the bit sequence of At generated by the formula (7) can be described by a seventh order M sequence corresponding to the primitive polynomial f(x)=1+x4 +x7. In the case of the random number generators 31 using the LFSR 302 having 7 stages and generating the bit sequence of the seventh order M sequence, the number of kinds of random number generators 31 is limited to 4 as shown in FIGS. 18A through 18D. The primitive polynomial and the recurrence formula of each of the random number generators 31 shown in FIGS. 18A through 18D are shown below.
______________________________________[A] Random number generator 31 shown in FIG. 18A:Primitive Polynomial: f(x) 1 + x + x7Recurrence Formula: At = A.sub.(t-1) + A.sub.(t-7)(mod2)Bit Sequence of M sequence: FIG. 19AGenerated Random Number Sequence: FIG.20A[B] Random number generator 31 shown in FIG. 18B:Primitive Polynomial: f(x) 1 + x3 + x7Recurrence Formula: At = A.sub.(t-3) + A.sub.(t-7)(mod2)Bit Sequence of M sequence: FIG. 19BGenerated Random Number Sequence: FIG. 20B[C] Random number generator 31 shown in FIG. 18C:Primitive Polynomial: f(x) 1 + x4 + x7Recurrence Formula: At = A.sub.(t-4) + A.sub.(t-7)(mod2)Bit Sequence of M sequence: FIG. 19CGenerated Random Number Sequence: FIG. 20C[D] Random number generator 31 shown in FIG. 18D:Primitive Polynomial: f(x) 1 + x6 + x7Recurrence Formula: At = A.sub.(t- 6) + A.sub.(t-7)(mod2)Bit Sequence of M sequence: FIG. 19DGenerated Random Number Sequence: FIG. 20D______________________________________
Therefore, the random number generators 31 shown in FIGS. 18A through 18D respectively generate bit sequences of the M sequence such that the period of the random pulses becomes a maximum, and the random nature of the generated pulses in each period is extremely satisfactory. Since it is known beforehand that the period of the bit sequence output from such random number generators 31 is a maximum, it is possible to generate signals having random pulse positions by modulating the generated pulses by the pulse density or the number of pulses.
For example, in the case where a signal having a pulse density of 10/127 is demanded of the random number generator 31 which generates 127 random numbers, it is possible to generate a signal having random pulse positions and the pulse density of 10/127 by outputting the random pulses if the number generated is "1" to "10" and blocking the random pulses if the number generated is "11" to "127". This signal passing and blocking functions can be realized by the comparator 32 shown in FIG. 17, for example.
As described above, the random number generator 31 can make the period of the pseudo random pulses or the random numbers a maximum because the bit sequence of the M sequence is generated. However, the pulses generated from the random number generator 31 are pseudo random pulses and are reproducible. In other words, when the random number generators 31 are driven continuously, the same pulses are output after each period, and the random nature of the generated pulses over a plurality of periods is poor.
Next, a description will be given of other embodiments of the random number generator 31 in which the random nature of the pulses generated over a plurality of periods is improved.
FIG. 21 shows a second embodiment of the random number generator 31. In FIG. 21, those parts which are the same as those corresponding parts in FIGS. 18A through 18D are designated by the same reference numerals, and a description thereof will be omitted. In FIG. 21, the illustration of the signal lines for inputting the clock signal will be omitted so as to simplify the drawing.
In FIG. 21, a switching circuit 309 receives the bit b6 output from an output part 304 of the flip-flop 3027 of the last stage and the output of the exclusive-OR gate 305, and selectively outputs one of these signals in response to a control signal which is received from a terminal 314. The output of the switching circuit 309 is supplied to an input part 306 of the flip-flop 3021 of the first stage. In this case, the exclusive-OR gate 305 receives the bits b0 and b6 respectively output from the output parts 303 and 304 of the flip-flops 3021 and 3027. Hence, the LFSR 302 is formed by the flip-flops 3021 through 3027, the exclusive-OR gate 305 and the switching circuit 309.
FIG. 22 shows an embodiment of the switching circuit 309. This switching circuit 309 includes an OR gate 310, AND gates 311 and 312, and an inverter 313 which are connected as shown. The control signal is input to the terminal 314, and the bits b0 and b6 output from the output parts 303 and 304 of the flip-flops 3021 and 3027 are respectively input to terminals 317 and 316. An output of the OR gate 310 is output from a terminal 318 and is supplied to the input part 306 of the flip-flop 3021 as the output of the switching circuit 309.
Normally, the switching circuit 309 selectively outputs the output of the exclusive-OR gate 305 in response to the control signal. In this case, the connection of the random number generator 31 shown in FIG. 21 is the same as that shown in FIG. 18A. But since the random pulses will be repeated periodically if this connection is fixed, this embodiment switches the connection of the switching circuit 309 in response to the control signal after a predetermined number of bits are shifted in the LFSR 302.
For example, this predetermined number of bits corresponds to the number of bits which are shifted in the LFSR 302 during one period of the random pulses. When the connection of the switching circuit 309 is switched to selectively output the bit b6 from the flip-flop 3027, the initial value set in the LFSR 302 after one period of the random pulses is changed from the original initial value by shifting an arbitrary number of bits in the LFSR 302. Thereafter, the connection of the switching circuit 309 is returned to selectively output the output of the exclusive-OR gate 305. Therefore, it is possible to guarantee the random nature of the random pulses over a plurality of periods of the random pulses.
Next, a description will be given of the operation of the random number generator 31 shown in FIG. 21, by referring to FIG. 23.
In FIG. 23, a step S1 sets a predetermined binary value in the LFSR 302 from an external unit (not shown) via the input part 306 of the flip-flop 3021 of the first stage. A step S2 supplies the control signal to the switching circuit 309 via the terminal 314 so that the output of the exclusive-OR gate 305 is coupled to the input part 306 of the flip-flop 3021 via the switching circuit 309, and applies the clock signal to the clock terminals of the flip-flops 3021 through 3027 so as to successively shift the bits in the LFSR 302 in response to the clock signal. A step S3 obtains the exclusive-OR of the bit output from the flip-flop 3021 of the first stage and the bit output from the flip-flop 3027 of the last stage, thereby feeding back the output of the exclusive-OR gate 305 to the input part 306 of the flip-flop 3021 of the first stage. A step S4 successively shifts the content of the LFSR 302 while inputting the output of the exclusive-OR gate 305. As a result, a step S5 generates random numbers or pulses described by each content of the LFSR 302. The generated random numbers are described by binary numbers, but may be converted into decimal numbers ranging from "1" to "127".
A step S6 decides whether or not one period of the random pulses have been generated. The process returns to the step S3 if the decision result in the step S6 is NO. On the other hand, if the decision result in the step S6 is YES, a step S7 supplies the control signal to the switching circuit 309 via the terminal 314 so as to switch the connection of the switching circuit 309 for a certain time. As a result, the switching circuit 309 selectively outputs the output of the flip-flop 3027 of the last stage to the flip-flop 3021 of the first stage. In this particular case, the certain time is set so that the content of the LFSR 302 is shifted by 1 bit. Hence, a step S8 applies the clock signal to the flip-flops 3021 through 3027 and shifts the content of the LFSR 302 by 1 bit so as to set a new initial value which is different from the original initial value, and the process returns to the step S2. Of course, the step S8 may shift the content of the LFSR 302 by an arbitrary number of bits by appropriately setting the certain time in the step S7.
Therefore, after one period of the random pulses, the original initial value set in the LFSR 302 is changed to a new initial value which is different from the original initial value. For this reason, the random nature of the random pulses generated from the random number generator 31 shown in FIG. 21 is improved compared to that of the random number generators 31 shown in FIGS. 18A through 18D.
The exclusive-OR gate 305 shown in FIG. 2 receives the outputs of the flip-flops 3021 and 3027. However, the exclusive-OR gate 305 may receive the outputs of the flip-flop 3027 and a flip-flop other than the flip-flop 3021, as may be readily understood from the random number generators 31 shown in FIGS. 18A through 18D described above. Furthermore, the connection of the switching circuit 309 may be switched before one period of the random pulses elapses.
Next, a description will be given of a third embodiment of the random number generator 31, by referring to FIG. 24. In FIG. 24, those parts which are the same as those corresponding parts in FIG. 21 are designated by the same reference numerals, and a description thereof will be omitted.
In FIG. 24, the switching circuit 309 is coupled between one of the inputs of the exclusive-OR gate 305 and the output parts 3031 and 3032 of the flip-flops 3021 and 3022. The switching circuit 309 selectively outputs the output from one of the flip-flops 3021 and 3022 in response to the control signal which is received via the terminal 314, and the connection of the switching circuit 309 is switched for every period of the random pulses. The exclusive-OR gate 305 receives the output of the switching circuit 309 and the output of the flip-flop 3027, and supplies the output thereof to the flip-flop 3021 of the first stage.
According to the random number generator 31 shown in FIG. 24, it is possible to change the inputs of the exclusive-OR gate 305 for every one period of the random pulses. As a result, the period of the random pulses effectively becomes approximately twice those of the random number generators 31 shown in FIGS. 18A through 18D, and the random character of the random pulses is improved.
Of course, the output parts which are connected to the switching circuit 309 is not limited to the output parts 3031 and 3032 of the flip-flops 3021 and 3022, and the output parts of other flip-flops may be used.
Next, a description will be given of an embodiment of a random pulse generator, by referring to FIG. 25.
The random pulse generator 431 shown in FIG. 25 includes a LFSR 410, an output control circuit 411, and an AND gate 412 which are connected as shown. Reference clock pulses are applied to a terminal 407. M clock pulses are required to generate random pulses amounting to a maximum period of the random pulses. The clock pulses supplied to the LFSR 410 and the output control circuit 411, and the AND gate 412 receives the outputs of the LFSR 410 and the output control circuit 411.
The output control circuit 411 is made up of AND gates 413 and 414, frequency dividing counters 415 and 416, and an inverter 417 which are connected as shown. The frequency dividing counter 415 has a frequency dividing ratio of 1/N and the frequency dividing counter 416 has a frequency dividing ratio of 1/M, where N <M.
If predetermined bits are initially set in the LFSR 410 and the clock pulses are input to the terminal 407, the random pulses generated by the LFSR 410 in response to the clock pulses are output via the AND gate 412.
As described above, the pulses generated by the LFSR 410 are pseudo random pulses and the same pulses are repeated after one period. Hence, in this embodiment, after the LFSR 410 generates random pulses amounting to one period thereof in response to M clock pulses, N clock pulses are thereafter input to the LFSR 410 to resume the generation of the random pulses and improve the random nature of the generated random pulses.
In the initial state, the clock pulses are only input to the 1/M frequency dividing counter 416 of the output control circuit 411 via the AND gates 413 and 414. Hence, the initial state of the output control circuit 411 is set so that the 1/M frequency dividing counter 416 outputs a value "0". This output value "0" of the 1/M frequency dividing counter 416 is inverted by the inverter 417, and the output value "1" of the inverter 417 is input to one input of the AND gate 412. As a result, the AND gate 412 passes the random pulses generated by the LFSR 410.
When the number of clock pulses received from the terminal 407 reaches M from the initial state of the output control circuit 411, the output value of the 1/M frequency dividing counter 416 becomes "1" and the inverter 417 outputs the value "0" which is input to one input of the AND gate 412. Thus, the AND gate 412 blocks the random pulses which are generated by the LFSR 410. In this state, the clock pulses are input to only the 1/N frequency dividing counter 415 of the output control circuit 411 via the AND gates 413 and 414. The 1/N frequency dividing counter 415 continuously outputs the value "0" until the number of clock pulses received reaches N. When the number of clock pulses input to the terminal 407 reaches N in the state where the random pulses generated from the LFSR 410 are blocked by the AND gate 412, the output value of the 1/N frequency dividing counter 415 becomes "1", and the output control circuit 411 returns to its initial state. After the output control circuit 411 returns to its initial state, the AND gate 412 resumes output of the random pulses generated from the LFSR 410.
Therefore, when the random pulses amounting to one period are output from the LFSR 410, the output of the random pulses is resumed after N clock pulses are input to the LFSR 410. As a result, the same pulses are prevented from being output after one period, and the random nature of the random pulses generated from the random number generator 31 is improved.
Next, a description will be given of another embodiment of the random pulse generator, by referring to FIG. 26. In FIG. 26, those parts which are the same as those corresponding parts in FIG. 25 are designated by the same numerals, and a description thereof will be omitted.
The random pulse generator 431 shown in FIG. 26 includes the LFSR 410, the output control circuit 411, AND gates 419 and 420, a LFSR 421, and an inverter 422 which are connected as shown. In other words, the output of the AND gate 419 is connected directly to the input of the LFSR 410, while the output of the AND gate 420 is coupled to the input of the LFSR 410 via the LFSR 421. Furthermore, the output of the output control circuit 411 is fed back directly to the AND gate 419 on one hand, and is fed back to the AND gate 420 via the inverter 422 on the other. The generation of the random pulses in response to the clock pulses is made by the n order LFSR 410 The m order LFSR 421 has a number of stages smaller than that of the n order LFSR 410 (n>m), and functions as a set value changing means for changing the number N of clock pulses input to the LFSR 410 every time after the output control circuit 411 operates.
Similarly as in the case of the random pulse generator 431 shown in FIG. 25, after the LFSR 410 outputs the random pulses amounting to one period in response to M clock pulses, the output of the random pulses is stopped and is resumed after N' clock pulses are input to the LFSR 410. In this state, when the output value of the output control circuit 411 becomes "0" in order to block the output random pulses of the LFSR 410, the clock pulses from the terminal 407 are input directly to the output control circuit 411 on one hand and is input to the LFSR 410 via the LFSR 421 on the other. Hence, the number of clock pulses input to the LFSR 410 is irregularly modulated until N clock pulses are input to the output control circuit 411 and the output of the random pulses is resumed, and the number N' of clock pulses input to the LFSR 410 is changed every time the output control circuit 411 operates. In other words, when the random pulses amounting to one period are output from the LFSR 410, the output of the random pulses is stopped and is resumed after a certain number of clock pulses are input to the LFSR 410, where this certain number changes for each period of the random pulses. Consequently, the random nature of the generated random pulses is extremely satisfactory in this embodiment.
Of course, the set value changing means is not limited to the LFSR 421 which changes the number N of clock pulses by modulation of the clock pulses, and the number N of clock pulses may be changed by other set value changing means.
Next, a description will be given of a fourth embodiment of the random number generator 31, by referring to FIG. 27. In FIG. 27, those parts which are the same as those corresponding parts in FIG. 24 are designated by the same reference numerals, and a description thereof will be omitted.
The random number generator 31 shown in FIG. 27 includes a 7-bit shift register 501, a selector 502, a 2-bit binary counter 503, and an exclusive-OR gate 305 which are connected as shown. The shift register 501, the exclusive-OR gate 305 and the selector 502 form the LFSR 302. Count clock pulses are input to a terminal 507, and shift clock pulses are input to a terminal 506. An output 505 of the shift register 501 is made up of bits b0 through b6, where b0 is regarded as the LSB of the binary random value and the bit b6 is regarded as the MSB of the binary random value.
The binary counter 503 sequentially outputs values "00", "01", "10" and "11" when counting the count clock pulses from the terminal 507, and the output of the binary counter 503 is supplied to the selector 502. As shown in FIG. 28 (A) and (B), the selector 502 outputs a register data bit r1 of the shift register 501 in response to the output "00" of the binary counter 503, a register data bit r2 in response to the output "01", a register data bit r3 in response to the output "10", and a register data bit r4 in response to the output "11". The output of the selector 502 is fed back to the shift register 501 via the exclusive-OR gate 305.
For example, if the initial value of the binary counter 503 is "00" and an initial value "0000001" is set in the shift register 501, the selector 502 first selectively feeds back the register data bit r1 and the random numbers 64, 1, 3, 7, 15, 31, . . . described by the characteristic polynomial 1+x+x7 shown in FIG. 28 (C) are sequentially output from the shift register 501 by inputting 127 shift clock pulses via the terminal 506. Next, at least one count clock is input to the terminal 507. For example, if one count clock is input to the terminal 507, the count of the binary counter 503 advances by one, that is, changes from the initial value "00" to the value "01", and the selector 502 thereafter switches the feedback from the register data bit r1 to the register data bit r6.
When 127 shift clock pulses are input from the terminal 506 in this state, the random numbers 64, 1, 2, 4, 8, 16, 32, . . . described by the characteristic polynomial 1+x6 +x7 shown in FIG. 28 (C) are sequentially output from the shift register 501. These random numbers are generated in a sequence different from that of before.
The count clock pulses input to the terminal 507 need only be controlled so that at least one count clock pulse is input for every predetermined period. Further, the binary counter 503 is not limited to the 2-bit counter and may be an n bit counter. In this case, m bits out of the n bits are decoded and the decoded output is used to control the selector 502.
As in the case of the previously described embodiments of the random number generators, the number of bits of the shift register 501 forming the LFSR 302 is not limited to 7. If the number of bits of the shift register 501 is other than 7, the feedback position (that is, the register data bits) used may be other than the 4 positions shown in FIG. 27. In other words, the number of bits of the shift register 501 and the number and positions of the feedback are not limited to those of the described embodiment.
According to this embodiment of the random number generator 31 shown in FIG. 27, the feedback position is cyclically updated as shown in FIG. 28 every time the random number sequence is repeatedly generated, so that a different kind of random number sequence is generated each time.
Next, a description will be given of a fifth embodiment of the random number generator 31, by referring to FIG. 29. In FIG. 29, those parts which are the same as those corresponding parts in FIG. 27 are designated by the same reference numerals, and a description thereof will be omitted.
The random pulse generator 31 shown in FIG. 29 includes a first LFSR 302A, a 2-bit shift register 513, and a second LFSR 302 which is identical to the LFSR 302 shown in FIG. 27.
The selector 502 of the LFSR 502 receives the output of the 2-bit shift register 513 and switches the feedback position of the shift register 501 based thereon. The selector 502 selects the register data bit r11 of the shift register 501 if the output of the shift register 513 is "00", selects the register data bit r16 if the output of the shift register 513 is "01", selects the register data bit r14 if the output of the shift register 513 is "10", and selects the register data bit r13 if the output of the shift register 513 is "11".
The shift out terminal of the first LFSR 302A is connected to the shift input terminal of the shift register 513, so that the shift out data of the first LFSR 302A can be input to the shift register 513. The feedback position of the first LFSR 302A is fixed to the register position r31, so as to generate the random number sequence described by the characteristic formula 1+x+x7.
For example, an initial value "11" is set in the shift register 513, an initial value "0000001" is set in the shift register 501 of the second LFSR 302, and an initial value "1011100" is set in the shift register 501A of the first LFSR 302A. In this case, the content of the shift register 503 is "11", and the register data bit r13 of the shift register 501 is selectively fed back to the shift register 501 via the selector 502 and the exclusive-OR gate 305. By inputting 127 shift clock pulses to the terminal 506 in this state, the random number sequence made up of the random numbers 64, 1, 2, 4, 9, 18, 36, . . . described in binary are sequentially output as the output 505 of the second LFSR 302.
Next, at least one shift clock pulse is input to the terminal 512. For example, if only one shift clock pulse is input to the terminal 512, the content of the shift register 513 changes from "11" to "01", and the feedback position of the second LFSR 302 changes from r13 to r16. When 127 shift clock pulses are input again to the terminal 506 in this state, the random number sequence made up of the random numbers 64, 1, 2, 4, 8, 16, 32, . . . are obtained as the output 505 of the second LFSR 302. The sequence of the random numbers generated in this case is different from that of the random numbers generated previously. Thereafter, the content of the shift register 513 changes to "01", "00", "10", . . . as shown in FIG. 30 every time the random pulses amounting to one period are output from the second LFSR 302. Thus, it is possible to generate the random numbers having mutually different sequences for each period of the random pulses.
In addition, the binary number sequence generated by the first LFSR 302A is a M sequence signal. For this reason, the content of the shift register 501A changes at random at every repetition.
Of course, the number of bits of the registers 501 and 501A is not limited to 7, and the feedback position of the first LFSR 302A is not limited to that shown in FIG. 29.
FIG. 31 shows the first embodiment of the random number generator 31 shown in FIG. 18A together with the essential part of the fourth embodiment of the neuron unit according to the present invention shown in FIG. 17.
In FIG. 31, the register 33 is set from a keyboard (not shown) or the like. A decimal number is set from the keyboard and this decimal number is converted into a binary signal and output to the comparator 32. The binary output of the register 33 is fixed to a value from 1 to 127 if the register 33 has 7 bits, for example. If the decimal value "10" is set in the register 33, for example, the comparator 32 compares the 7-bit output of the register 33 describing the decimal number "10" with the 7-bit output from the LFSR 302 in response to each clock pulse applied to the terminal 307. The comparator 32 outputs the value "1" via a terminal 390 if the 7-bit output of the LFSR 302 is less than or equal to the 7-bit output of the register 33, and otherwise outputs the value "0". Hence, the output value of the comparator 32 has the value "1" at a rate of 10/127.
But since the random pulses output from the LFSR 302 has a periodic nature dependent on the order of the LFSR 302 as described above, it is preferable to improve the random nature of the output value of the comparator 32.
FIG. 32 shows a sixth embodiment of the random number generator 31 together with the essential part of the fourth embodiment of the neuron unit shown in FIG. 17. In FIG. 32, those parts which are the same as those corresponding parts in FIGS. 21, 22 and 31 are designated by the same reference numerals, and a description thereof will be omitted.
According to this embodiment, the random nature of the output value of the comparator 32 is improved compared to that shown in FIG. 31, because the 7-bit output of the LFSR 302 does not have a cyclic pattern due to the provision of the switching circuit 309.
In FIG. 32, the initial value of the LFSR 302 may be set from a terminal 393 by switching the connection of a switch 392 to a terminal 394 from the terminal 318.
Next, a description will be given of a fifth embodiment of the neuron unit according to the present invention, by referring to FIG. 33. In FIG. 33, those parts which are the same as those corresponding parts in FIGS. 31 and 32 are designated by the same reference numerals, and a description thereof will be omitted.
In this embodiment, a random pulse generating part 3100 is made up of the random number generator 31, the comparator 32 and the register 33 shown in FIG. 17, where the random number generator 31 has a construction identical to that shown in FIGS. 31, 33 and 34. If a decimal number set in the register 33 is "10", the random pulse sequence which is output from the terminal 390 is the same after 10 random pulses are generated. In other words, after 10 random pulses are generated, the output bits of the LFSR 302 of the random number generator 31 are all "0" until one period of the random pulses ends, and there is no need to generate any random pulses from the LFSR 302 after 10 random pulses are generated. Hence, this embodiment utilizes this feature of the LFSR 302 and obtains a predetermined number of random pulses by inputting no clock pulse to the LFSR 302 after the number of random pulses are generated, so as to eliminate the periodic nature of the LFSR 302.
In this embodiment, a random pulse counter 616 is connected to the output of the random pulse generating part 3100, and the 7-bit output of the counter 616 is supplied to a comparator 3200, as shown in FIG. 33. In addition, the clock pulses input to the terminal 307 are supplied to the random pulse generating part 3100 via an AND gate 623 which also receives the output of the comparator 3200.
The comparator 3200 outputs the value "1" if the 7-bit output of the counter 616 is smaller than the 7-bit output of the register 3300, and otherwise outputs the value "0". The 7-bit output of the register 3300 has a fixed value selected from "1" to "127", for example.
If the number of random pulses counted in the counter 616, that is, the value output from the counter 616, is denoted by R, and the fixed value output from the register 3300 is denoted by Q, the comparator 3200 outputs the value "1" if R<Q and otherwise outputs the value "0". Because the output of the comparator 3200 is fed back to the AND gate 623, the supply of the clock pulses to the random pulse generating part 3100 is stopped when R=Q. As a result, the generation of the random pulses by the random pulse generating part 3100 is interrupted, and the periodic nature of the random pulses output from the random pulse generating part 3100 is eliminated.
The generation of the random pulses from the random pulse generating part 3100 for next period of the random pulses, without the need to reset the initial value of the LFSR 302. Accordingly, the random characteristic of the random pulses output via the terminal 390 is improved.
The fifth embodiment is particularly effective if the value Q is small. However, if the value Q is large, it becomes frequently necessary to input a number of clock pulses amounting to more than one period of the random pulses generated by the LFSR 302 in order to count the value Q. Hence, in this case, it is necessary to change the initial value of the LFSR 302 as done in the sixth embodiment which will be described hereunder.
FIG. 34 shows an essential part of a sixth embodiment of the neuron unit according to the present invention. In FIG. 34, those parts which are the same as those corresponding parts in FIG. 33 are designated by the same reference numerals, and a description thereof will be omitted.
In FIG. 34, a frequency dividing counter 626 is provided between the AND gate 623 and the random number generator 31. This frequency dividing counter 626 has the function of counting the clock pulses which are supplied from the terminal 307 to the random pulse generating part 3100 via the AND gate 623, and the function of supplying the output thereof to the random pulse generating part 3100 only when the number of clock pulses counted corresponds to one period of the generated random pulses. In other words, the frequency dividing counter 626 also functions to change the initial value set in the LFSR 302 of the random pulse generating part 3100.
Because the initial value set in the LFSR 302 of the random pulse generating part 3100 is changed by the output of the frequency dividing counter 626 after the frequency dividing counter 626 counts a number of clock pulses required to generate the random pulses amounting to one period, the random pulse sequence output from the random pulse generating part 3100 is different for each period of the random pulses. As a result, the periodic nature of the pulses output from the random pulse generating part 3100 is eliminated, and the random characteristic of the random pulse sequence output via the terminal 390 is improved. Of course, the frequency dividing counter 626 is reset automatically after the frequency dividing counter 626 counts the number of clock pulses required to generate the random pulses amounting to one period.
The method of changing the initial value set in the LFSR 302 of the random pulse generating part 3100 is of course not limited to that using the frequency dividing counter 626 shown in FIG. 34, and various other variations are possible.
In the neuron unit according to the present invention, it is necessary to use a plurality of weighting coefficients. Hence, a plurality of circuit systems having a circuit construction such as those shown in FIGS. 17 and 31 through 34 must be provided. In other words, it is necessary to provide a plurality of random number generators. When providing a plurality of random number generators, it is preferable to provide random number generators having the same construction in order to minimize the cost and simplify the production process.
However, if the random number generators are identical in construction and are set with the same initial value, the random number sequences generated therefrom naturally become the same. For this reason, it is desirable to take measures so that mutually different initial values are set in the random number generators. Furthermore, if all of the bits of the initial value are "0", the random numbers which are generated will be fixed to "0", and it is therefore necessary to prevent such an initial value from being set in the random number generators.
FIG. 35 shows an essential part of a seventh embodiment of the neuron unit according to the present invention. FIG. 35 only shows a plurality of random number generators which are linked so that mutually different initial values are set therein. In FIG. 35, those parts which are the same as those corresponding parts in FIG. 21 are designated by the same reference numerals, and a description thereof will be omitted.
In FIG. 35, a plurality of LFSRs 3021 through 3025 are linked via respective switching circuits 309. In addition, a bit generating part 701 is connected to the LFSR 3021 via a switching circuit 309.
For example, the bit generating part 701 is made up of a LFSR having 5 bits as shown in FIG. 36. In addition, the LFSRs 3021 through 3027 respectively have constructions which are basically the same as that of the LFSR 302 shown in FIG. 21 except for the feedback position, and respectively have 7 bits, for example. FIG. 37 shows the constructions of only the LFSRs 3022 and 3023 for the sake of convenience. In FIG. 37, the illustration of the clock signal line is omitted for the sake of convenience. In FIGS. 36 and 37, those parts which are the same as those corresponding parts in FIG. 21 are designated by the same reference numerals, and a description thereof will be omitted. Normally, each switching circuit 309 is connected to input the output of the exclusive-OR gate 305 to the flip-flop 3021 of the first stage of the respective LFSR 302J, where J=1 to 5.
In FIG. 38, a step S11 sets a predetermined initial value into the bit generating part 701. A step S12 controls each switching circuit 309 to disconnect the connection of the output of the exclusive-OR gate 305 to the input of the corresponding LFSR 302J and to connect the output of the LFSR 302J to the input of the LFSR 302(J+1). In this embodiment, the output of the LFSR 3025 is not connected to a switching circuit, and the switching circuit 309 connects the output of the bit generating part 701 to the LFSR 3021. When the LFSRs 3021 through 3025 are linked by the switching circuits 309, a shift register having 35 (=5�7) stages is formed.
In this state, a step S13 inputs 29 (=7� (5-1)+1) or more clock pulses to the bit generating part 701 and each of the LFSRs 3021 through 3025. As a result, at least one bit having the value "1" is set in each of the LFSRs 3021 through 3025 by the bit sequence output from the bit generating part 701 in response to the clock pulses. After the input of such a bit sequence, a step S14 controls each switching circuit 309 to return the connection to the normal connection. In other words, 5 7-bit LFSRs are formed from 1 35-bit shift register by the switching of the switching circuits 309.
In this embodiment, a low-level control signal (that is, a value "0") supplied to each switching circuit 309 via the terminal 314 connects the output of the exclusive-OR gate 305 to the input of the corresponding LFSR 302J, and a high-level control signal (that is, a value "1") switches the connection to the output of the LFSR of the preceding stage. Such a control signal may be generated from a control circuit (not shown) by known means.
Because the LFSR forming the bit generating part 701 is 5 bits and the initial value thereof is set so that the number of continuous bits having the value "0" is less than 5, at least one bit having the value "1" is set in each of the LFSRs 3021 through 3025. Therefore, it is possible to prevent all of the bits of the initial value from becoming "0" in each of the LFSRs 3021 through 3025. Furthermore, because the setting of the initial value is made via the linearly connected LFSRs 3021 through 3025, mutually different initial values are automatically set in each of the LFSRs 3021 through 3025 approximately at the same time.
It is desirable that the bit sequence output from the bit generating part 701 is also at random. If the period of the bit sequence output from the bit generating part 701 is an integral multiple of the number of stages of each LFSR 302J, the period of the initial value of each LFSR 302J becomes short. For this reason, it is desirable that the period of the bit sequence output from the bit generating part 701 is not an integral multiple of the number of stages of each LFSR 302J.
For example, if the period of the bit sequence output from the bit generating part 701 is "35", the same bit is input for every 5 (=35/7) 7-bit LFSRs, and thus, the random characteristic of the generated random pulses will deteriorate if more than 5 7-bit LFSRs are linked. But if the period of the sequence output from the bit generating part 701 is "36", it is possible to simultaneously set mutually different initial values to a maximum of 36 7-bit LFSRs without deteriorating the random characteristic of the generated random pulses. Therefore, the concept of linking a plurality of LFSRs to simultaneously set mutually different initial values is particularly effective when used in the neuron unit according to the present invention.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4518866 *Sep 28, 1982May 21, 1985Psychologics, Inc.Method of and circuit for simulating neuronsUS4893255 *May 31, 1988Jan 9, 1990Analog Intelligence Corp.Spike transmission for neural networksUS4951243 *Oct 12, 1989Aug 21, 1990Analog Intelligence CorporationProbabilistic pulse train randomization deviceUS4994982 *Dec 22, 1988Feb 19, 1991U.S. Philips CorporationNeural network system and circuit for use thereinUS4996648 *Oct 27, 1987Feb 26, 1991Jourjine Alexander NNeural network using random binary codeUS5131073 *Jul 10, 1990Jul 14, 1992Ricoh Company, Ltd.Neuron unit and neuron unit networkUS5175798 *Oct 15, 1990Dec 29, 1992University College LondonDigital artificial neuron based on a probabilistic ramUS5259064 *Jan 24, 1992Nov 2, 1993Ricoh Company, Ltd.Signal processing apparatus having at least one neural network having pulse density signals as inputs and outputsJPH01244567A * Title not available* Cited by examinerNon-Patent CitationsReference1Ito, T., et al., "A Neural Network Model Extracting Features From Speech Signals", Electronic Information Communication Society Papers, Feb. 1987, vol. J70-D, No. 2.2 *Ito, T., et al., A Neural Network Model Extracting Features From Speech Signals , Electronic Information Communication Society Papers , Feb. 1987, vol. J70 D, No. 2.3K. Fukushima, "Cognitron", Electronic Communication Society National Conference, 1974.4K. Fukushima, "Improvement in Pattern-Selectivity of a Cognitron", Electronic Communication Society Papers Oct. 1979, vol. J62-A, No. 10.5 *K. Fukushima, Cognitron , Electronic Communication Society National Conference, 1974.6 *K. Fukushima, Improvement in Pattern Selectivity of a Cognitron , Electronic Communication Society Papers Oct. 1979, vol. J62 A, No. 10.7Kamada et al., "Digital Neuron Model", Electronic Information Communication Society Spring National Conference, 1988.8 *Kamada et al., Digital Neuron Model , Electronic Information Communication Society Spring National Conference, 1988.9Murray et al., "A Novel Computation and Signalling Method for VLSI Neural Networks", Digest of Technical Papers, ESSCIRC '87, Thirteenth European Solid-State Circuits Conference, Sep. 23-25, 1987.10Murray et al., "Asynchronous Arithmetic for VLSI Neural Systems", Electronic Letters, Jun. 4, 1987, vol. 23, No. 12.11 *Murray et al., A Novel Computation and Signalling Method for VLSI Neural Networks , Digest of Technical Papers, ESSCIRC 87, Thirteenth European Solid State Circuits Conference, Sep. 23 25, 1987.12 *Murray et al., Asynchronous Arithmetic for VLSI Neural Systems , Electronic Letters , Jun. 4, 1987, vol. 23, No. 12.13W. Banzhaf, "On a Simple Stochastic Neuron-like Unit", Biological Cybernetics, vol. 60, No. 2, 1988, pp. 153-160.14 *W. Banzhaf, On a Simple Stochastic Neuron like Unit , Biological Cybernetics , vol. 60, No. 2, 1988, pp. 153 160.15Yoshida et al., "Neural Coupling Model of Visual Domain", Electronic Communication Society National Conference, 1974.16 *Yoshida et al., Neural Coupling Model of Visual Domain , Electronic Communication Society National Conference, 1974.* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS5455891 *Oct 4, 1993Oct 3, 1995Georgia Tech Research CorporationSystem and method for a learning neural network for generating random directions for weight changesUS5630024 *Jan 17, 1995May 13, 1997Nippon Telegraph And Telephone CorporationMethod and apparatus for processing using neural network with reduced calculation amountUS5966313 *Jul 10, 1997Oct 12, 1999Nec CorporationApparatus and method for generating random numbersUS6496815May 24, 2000Dec 17, 2002Denso CorporationNeuron, hierarchical neural network using the neuron, and multiplying circuit used for multiplying process in the neuronUS7425781Dec 28, 2005Sep 16, 2008Denso CorporationElectric power switching apparatus providing reduced degree of noise interference with radio communicationUS7489415Jul 15, 2004Feb 10, 2009Ricoh Company, Ltd.Document processing systemUS7973960Jan 14, 2009Jul 5, 2011Ricoh Company, Ltd.Document processing system* Cited by examinerClassifications U.S. Classification706/41International ClassificationG06N3/063Cooperative ClassificationG06N3/063European ClassificationG06N3/063Legal EventsDateCodeEventDescriptionNov 22, 2005FPAYFee paymentYear of fee payment: 12Sep 27, 2001FPAYFee paymentYear of fee payment: 8Sep 25, 1997FPAYFee paymentYear of fee payment: 4Jun 15, 1993ASAssignmentOwner name: RICOH COMPANY, LTD., JAPANFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FURUTA, TOSHIYUKI;HORIGUCHI, HIROYUKI;EGUCHI, HIROTOSHI;AND OTHERS;REEL/FRAME:006609/0149Effective date: 19930604RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services©2012 Google