Neural network

Abstract: In a neural network which includes one input layer, one or more intermediate layers and one output layer, neural elements in the input layer and neural elements in the intermediate layer are divided into groups. Arithmetic operations representing the coupling between the neural elements of the input layer and the neural elements of the intermediate layer are put into table form.

Description: BACKGROUND OF THE INVENTION This invention relates to neural networks well suited for various types of data processing and, more particularly, to techniques for reducing the size of neural-network circuitry and raising the speed at which arithmetic operations are performed in a neural network. Furthermore, the invention relates to image processing using a neural network. The fact that various processing operations are performed by neural networks has been the subject of research in recent years. In order to raise the processing accuracy of processing using a neural network, each element (neuron) constituting the neural network receives a large number of items of input data, subjects these items of input data to processing and outputs the results. Specifically, a neural network generally comprises an input layer, an intermediate layer and an output layer. For example, in a case where the number of neurons in the input layer is i and the number of neurons in the intermediate layer is j, i-number of multiplications and i-number of additions are performed by one neuron of the intermediate layer, and these multiplications and additions are performed j times by the intermediate layer as a whole. Furthermore, j-number of multiplications and j-number of additions are performed by one neuron of the output layer. These arithmetic operations, which are enormous in number, are performed whenever there is an input. In other words, the multiplication and addition operations have the form of a network. Accordingly, when a neural network is merely constructed of hardware, the scale of the circuitry is very large and processing speed is reduced as a result. Next, consider image processing by a neural network. In examples of such processing, image compression and character recognition of Chinese characters, numerals and the like have been attempted. However, studies relating to the processing of natural images by neural network, spatial filtering processing and image conversion have not yet been carried out. A review of masking processing is reported in the paper of a research group of the Image Electronics Engineers of Japan (1989). Fig. 1 is a simplified block diagram showing such a neural network for masking processing disclosed in the papers of the aforesaid research group. As shown in Fig. 1, an input layer comprises input elements for inputs Y, M, C, and an output layer similarly comprises output elements for outputs Y', M', C' obtained as the result of masking processing. Two layers are provided as intermediate layers, each of which comprises 10 or 20 nodes (neural elements, or neurons). In Fig. 1, only one intermediate layer is shown for the sake of simplicity. In the arrangement of Fig. 1, the intermediate layer has a large number of elements, namely ten, and the intermediate layer is a double layer. For this reason, the length of time needed for learning and execution is very long. The present inventors have given careful consideration to the foregoing points. Specifically, in the prior-art example of Fig. 1, the neural elements of the preceding intermediate layer and the neural elements of the succeeding intermediate layer are coupled on an equivalent basis. Similarly, the neural elements of the succeeding intermediate layer and the neural elements of the output layer are coupled on an equivalent basis. Consequently, when the coupling constants are learned, a sense of direction cannot be given to the convergence of the learning of the coupling constants because there is no difference between the neural elements of the intermediate layers. The Y, M and C image signals are mutually independent in nature. At learning, image signals for learning Y, M and C are applied to respective ones of the Y, M and C input elements of the input layer, and ideal signals Y', M' and C' resulting from masking are applied to respective ones of the Y', M' and C' output elements of the output layer. In other words, when the Y, M and C learning signals having mutually independent properties enter the neural network, convergence at learning of the coupling coefficients is in a state of disorder with regard to the coupling coefficients between the input layer and the intermediate layers and the coupling coefficients between the preceding stage of the intermediate layer and the succeeding stage of the intermediate layer. Accordingly, convergence requires a great deal of time. In addition, as the result of convergence, only the learned results regarding solely the coupling coefficients between the elements of the succeeding intermediate layer and the elements of the output layer contribute to the formation of a neural network for masking processing while maintaining the aforementioned mutually independent properties. More specifically, coefficients other than the coupling coefficients between the elements of the intermediate layers and the three elements of the output layer are decided so as to be favorable for all of the outputs Y', M', C' and Bk'. Therefore, even if, say, the ideal output of Y' has excellent accuracy, the other ideal outputs exhibit poor accuracy, or vice versa. Even if learning is repeated, a situation arises in which the coupling coefficients oscillate with a certain fixed range. Accordingly, when it is attempted to suppress the range of oscillation and execute highly precise masking, a dilemma is encountered in which the intermediate layer must be made a double layer, for example, and the number of elements in each intermediate layer must be increased. That is, since learning for masking processing is substantially decided only between the elements of the succeeding intermediate layer and the elements of the output layer, the number of intermediate-layer elements must be increased and, as a result, convergence of the learning process takes considerable time. In addition, since the result of the foregoing is that the coupling coefficients between the input and intermediate layers do not participate in masking processing, a high precision cannot be obtained in such masking processing. Greater accuracy cannot be hoped for even if the number of intermediate-layer elements is increased further. The foregoing problem essentially arises between image signals having little mutual participation, as between like ones of the image signals. Therefore, the problem does not arise only in masking processing and only when using the image signals Y, M and C; it can arise also in many types of image processing in general. Considered next will be image processing such as a technique for binarizing a multivalued image, a technique for restoring multivalued image data from binary image data, and a technique for spatial filtering. In a case where a multivalued image is binarized using a conventional binarizing method, such as the dither method, the resolution of character portions declines and edge components are lost and tend to deteriorate. With the ED (error diffusion) method, stripe patterns peculiar to binarization are produced, and the picture characteristic is not always good. Though the deterioration of character portions is less than with the dither method, the improvement is only partial. for a sufficient understanding of the ED method, see Floyd Stelnloerg; SID, International SYMP. Syp. Digest of Technical Papers 4-3 April '75. A technique for restoring a multivalued half-tone image from a binary image using a neural network has not yet been perfected. In the prior art, the best that can be done is to restore a multivalued half-tone image by applying a smoothing filter to a binary image. In such conventional restoration of a multivalued image by a smoothing filter, the resolution of character portions declines and portions of the image having a smooth density gradient do not develop a sufficient number of tones. Accordingly, a technique for restoring a multivalued image from, say, a binary image by image processing using a neural network is eagerly awaited. One proposal is in our earlier European Application 91302488.1. The characterizing feature of a neural network is that processing accuracy is greatly improved by learning. However, using a neural network in binarizing processing and multivalued restoration processing is not easy. In particular, when a binary image such as that of a character and an image of half-tones such as that of a photograph mixed with the binary image are processed simultaneously, a problem arises in which coupling coefficients diverge in the learning process. Accordingly, with regard to image processing using a neural network in the prior art, it would not be an exaggeration to say that absolutely no thought has been given to the best way to configure a network to construct a neural circuit network. In this respect, document PROCEEDINGS OF THE 1990 AMERICAN CONTROL CONFERENCE vol. 2, 23 May 1990, SAN DIEGO , USA pages 1839 - 1842 CAGLAYAN 'A neural net approach to space vehicle guidance' discloses a multilayer perceptron having three hidden layers applied to deriving closed-loop space vehicle guidance laws. The NN being trained with a database of guidance/trajectory solutions computed by a numerical optimization algorithm. The known characteristics of the optimal solution available are used to determine the network inputs and the interconnect structure. Document 1990 IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS vol. 4, 1 May 1990, NEW ORLEANS, USA pages 2951 - 2954 MARCHESI 'Design of multi-layer neural networks with powers-of-two weights' further shows a conversion table merely for performing the sigmoid function. SUMMARY OF THE INVENTION According to the present invention, a reduction in the scale of network circuitry and an increase in the processing speed of the network are achieved by: 1 ○ an approach in which the couplings between those neurons of a neural network that can be easily constructed of hardware are divided into groups; 2 ○ an approach in which the nature of data (especially image data) applied as an input to this network is taken into consideration and those neurons that are optimum with regard to this nature are divided into groups; and 3 ○ an approach in which time-consuming arithmetic operations (especially the multiplication of coupling coefficients between neurons) in each neuron are replaced by shift processing (and further, by addition processing). The present invention based upon approach 1 ○ provides a neural network as set out in claim 1. In accordance with this neural network, the arithmetic operations in the neurons of the intermediate layer are implemented by table conversion group by group, thus making it possible to reduce the scale of the circuitry. According to a preferred embodiment of the neural network of the invention constructed as set forth above, the neural elements of the input layer are divided into n-number of groups with regard to each neural element of the intermediate layer, and each neural element of the intermediate layer has n-number of processing means. According to a preferred embodiment of the neural network of the invention constructed as set forth above, the neural elements of the input layer are divided into n-number of groups with regard to each neural element of the intermediate layer, each neural element of the intermediate layer has m (m<n)-number of the processing means, and individual ones of the processing means accepts, as inputs thereto, outputs from some of the groups of the neural elements of the input layer. According to a preferred embodiment of the neural network of the invention constructed as set forth above, individual neural elements of the intermediate layer have m-number of the processing means, adding means for adding outputs from these processing means, and multiplying means for multiplying the results of addition by a coupling coefficient W kj between a neural element of the intermediate layer and a neural element of the output layer that is connected to this neural element. According to a preferred embodiment of the neural network of the invention constructed as set forth above, processing based upon a sigmoid function also is put into table form. According to a preferred embodiment of the neural network of the invention constructed as set forth above, in sigmoid-function processing, the sigmoid function is approximated by first order lines. Other objects and advantages besides those discussed above shall be apparent to those skilled in the art from the description of a preferred embodiment of the invention which follows. In the description, reference is made to accompanying drawings, which form a part thereof, and which illustrate an example of the invention. Such example, however, is not exhaustive of the various embodiments of the invention, and therefore reference is made to the claims which follow the description for determining the scope of the invention. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a diagram illustrating the construction of the prior art, in which a neural network is applied to image processing; Fig. 2 is a diagram for describing, in general terms, the learning procedure of a neural network according to first through sixth embodiments of the present invention; Figs. 3A and 3B are flowcharts for describing the general learning procedure of the above-mentioned neural network; Fig. 4 is a diagram for describing the construction of a neural network according to the first embodiment; Figs. 5A through 5C are diagrams for describing various ways of performing grouping in the first embodiment; Fig. 6 is a block diagram showing the structure of neurons in the first embodiment; Fig. 7 is a circuit diagram of a circuit for extracting a binary image data block in the first embodiment; Fig. 8 is a block diagram showing the structure of a neural network according to a modification of the first embodiment; Fig. 9 is a graph showing the characteristic of a sigmoid function in the first embodiment, etc.; Fig. 10 is a diagram showing the characteristic of the approximate function of a sigmoid function used in another modification of the first embodiment; Fig. 11 is a diagram for describing the structure of a neuron according to another modification of the first embodiment; Fig. 12 is a block diagram showing the structure of neurons according to the second embodiment; Fig. 13A is a circuit diagram of a circuit for extracting a binary image data block in the second embodiment; Fig. 13B is a block diagram showing the structure of neurons according to the second embodiment; Figs. 14A and 14B are diagrams showing examples of groupings of an input image in the second embodiment; Fig. 15 is a diagram showing the construction of a neural network according to a modification of the second embodiment; and Fig. 16 is a block diagram showing the construction of neural elements in a second intermediate layer according to a modification of the second embodiment. DESCRIPTION OF THE PREFERRED EMBODIMENTS Two preferred embodiments of the present invention, as well as modifications of these embodiments, will be described with reference to the accompanying drawings. All of the embodiments employ the so-called "back-propagation method" as the learning method. The embodiments are characterized by the method of interconnecting neurons in a neural network (i.e, by the manner in which neurons are grouped ). <Learning of Neural Network> A procedure for back-propagation-type learning in a common neural network will now be described taking Fig. 2 as an example. The neural network illustrated in Fig. 2 is constituted by an input layer i comprising i-number of neurons (each of which is represented by a large circle in the drawing), an intermediate layer j comprising one layer (which comprises j-number of neurons), and an output layer k comprising a single neuron. Here the output layer k is taken to comprise one neuron in order to simplify the description; it can comprise k-number of neurons in general. In Fig. 2, the coupling between one neuron and the neurons of another layer is represented by the solid lines. For example, the neuron 1 of the intermediate layer is coupled to all neurons of the neural layers. Coupling between two layers (referred to as a "preceding layer" and a "succeeding layer", respectively) means that the neural output of the preceding layer is operated upon by being inputted to a neuron of the succeeding layer. The small circles in Fig. 2 represent coupling strength W. For example, the neuron 1 of the intermediate layer in Fig. 2 is coupled to all neurons of the input layer, so that the output jout(1) is expressed as follows: jout(1) = 1.0 1.0+exp(-Sum F1 ) where Learning of a neural network entails deciding coupling strength W ji between the input layer and the intermediate layer, and coupling strength W kj between the intermediate layer and the output layer. In order to perform learning, the initial step is to prepare, in advance, the input data for learning and an ideal output corresponding thereto, and suitably decide an initial value of the coupling strength W ji in the intermediate layer and an initial value of the coupling strength W kj in the output layer. This is the preliminary stage of learning. Next, the prepared input data is applied to the network coupled based upon the initial values, whereupon these items of data are processed first in the intermediate and then in the output layer to obtain output data from the output layer. The procedure up to this point is indicated by the flow of arrows A and B in Fig. 2. Next, the output obtained from the output layer and the prepared ideal output are compared, a teach signal (a teach signal for the output layer) is generated by the comparison, and the coupling strength W kj in the output layer is corrected by the teach signal. This process is indicted by arrow C in Fig. 2. Further, a teach signal for the intermediate layer is generated to correct the coupling strength W ji in the intermediate layer. This is the process indicated by arrow D in Fig. 2. The foregoing is the first step of learning. By repeating this learning process, the coupling strengths W ji , W kj are successively corrected toward appropriate values. As the result of learning, the updated coupling strengths are maintained within the network. The learning procedure set forth above will now be described in further detail using the flowcharts of Figs. 3A and 3B. First, at step S402, the initial values of weighting coefficients (coupling strengths) W ji , W kj are applied. In consideration of convergence in the learning process, values in the range -0.5 to +0.5 are selected. Next, at step S404, input data iout(i) for learning is selected, and this data iout(i) is set in the input layer at step S406. If this network is to be utilized in image processing, the input data iout(i) is image data of one pixel. An ideal output (ideal_out) corresponding to the input data iout(i) is prepared at step S408. The foregoing steps constitute the preliminary stage. Next, the output jout(j) of the intermediate layer is obtained in the following manner at step S410. First, the data iout(i) from the input layer is multiplied by the weighting coefficient W ji of the intermediate layer, and the sum Sum Fj thereof is calculated in accordance with Next, Sum Fj is subjected to a sigmoid function and the j-th output jout(j) of the intermediate layer is calculated in accordance with jout(j) = 1.0 1.0+exp(-Sum Fj ) Next, the output kout(k) of the output layer is obtained at step S411. This procedure is similar to that of step S410. Specifically, the output jout(j) from the intermediate layer is multiplied by the weighting coefficient W kj of the output layer, and the sum Sum Fk thereof is calculated in accordance with Next, Sum Fk is subjected to a sigmoid function and the k-th output kout(k) of the intermediate layer is calculated in accordance with kout(k) = 1.0 1.0+exp (-Sum Fk ) These output values jout(j), kout(k) are normalized by the sigmoid function. This is followed by step S412, at which the output kout(k) obtained by the foregoing and the ideal output ideal_out(k) prepared at step S408 are compared and the following is obtained as the teach signal teach_k(k) of the output layer: teach_k(k) = {ideal_out(k) - kout(k)} *kout (k)*{1 - kout(k)} Here kout(k)*{1-kout(k)} is defined as the differential of the sigmoid function kout(k). Next, at step S414, a change ΔW kj (k,j) in the weighting coefficient of the output layer is calculated in accordance with ΔW kj (k,j) = β*jout(j)*teach_k(k) + α * ΔW kj (k,j) Here α represents a constant referred to as a stabilizing constant, and β represents a constant referred to as a learning constant. These function to suppress a sudden change in ΔW kj (k,j). The weighting coefficient W kj (k,j) is updated as follows at step S415 based upon the aforementioned change ΔW kj (k,j): W kj (k,j) = W kj (k,j) + ΔW kj (k,j) This constitutes the first cycle of learning of the weighting coefficient W kj between the intermediate layer and output layer. Next, at step S416, the teach signal teach-j(j) of the intermediate layer is computed. To this end, the contribution in the backward direction from the output layer to each element of the intermediate layer is computed based upon Next, the teach signal teach j(j) of the intermediate layer is computed from Sum Bj in accordance with the following equation: teach-j(j) = jout(j)*{1 - jout(j)}*Sum Bj Next, at step S418, a change ΔW ji (j,i) in the weighting coefficient of the intermediate layer is calculated in accordance with ΔW ji (j,i) = β*iout(j)*teach_j(j) + α * ΔW ji (j,i) The weighting coefficient W kj (j,i) is updated as follows at step S420 based upon the aforementioned change ΔW ji (j,i): W ji (j,i) = W ji (j,i) + ΔW ji (j,i) Thus, learning is performed. Thus, by virtue of steps S402 through S420, the weighting coefficients W ji , W kj are learned one time from one set of input data and the corresponding ideal output. It is determined at step S422 whether the foregoing learning has been carried out with regard to all input data. If learning is still incomplete, the processing of steps S402 through S420 is repeated. It is determined at step S424 whether the number of learning cycles has attained the prescribed number. If the number of learning cycles is still inadequate, the processing of steps S402 through S422 is repeated. The foregoing is a description of a learning procedure of a common neural network based upon the back-propagation method. <First Embodiment> Operations between neurons take time not only in the neural network of the kind shown in Fig. 2 but also in neural networks in general. The reason for this, taking Fig. 2 as an example, is that processing is required in which the operation W ji *iout is performed i x j times, the sum of the products is taken and a sigmoid function is applied to the sum. If the number of intermediate layers is increased, the above-described operation in the intermediate layers increases exponentially. Accordingly, the first embodiment takes note of the fact that once coupling strengths (weighting coefficients) have been decided by carrying out learning in a neural network, this network can be put into the form of a table. Which part of a network should be put into a particular table form, and the manner in which this should be done for greatest efficiency has been studied. If logic is carried to extremes with regard to neural networks, all networks can be put into the form of a single table. However, such a table would be so voluminous in size that any attempt at realization would be impossible. Accordingly, the characterizing features of the first embodiment reside in the following two points: (1) The coupling relationships between a neuron of the input layer and each neuron of the intermediate layer are divided into two groups, and a table is created for each group. Though the actual number of groups will depend upon the number of neurons and allowability with regard to the size of a table after grouping, in this embodiment the number of groups is made two in order to facilitate the description. (2) The computation of a sigmoid function is made more efficient. Fig. 4 shows an example of the grouping of neural coupling coefficients according to the first embodiment. The grouping of Fig. 4 is applied to the i x j x 1 network of Fig. 2, namely a network of the type in which each element of an input layer comprising i-number of neurons is connected to all j-number of elements of the intermediate layer, and each element of the j-number of elements of the intermediate layer is connected to the output layer, which comprises a single element. The grouping of the first embodiment shown in Fig. 4 is performed as follows: First, to facilitate the description, the neurons of the intermediate layer are numbered m 1 , m 2 , ··· and so on. The couplings between the neuron m 1 of the intermediate layer and the neurons 1 through t-1 of the input layer are grouped as group G 1 , and the couplings between the neuron m 2 of the intermediate layer and the neurons t through i of the input layer are grouped as group G 2 . Further, the couplings between the neuron m 2 of the intermediate layer and the neurons 1 through p-1 and q through i of the input layer are grouped as group G 2 , and the couplings between the neuron m 2 of the intermediate layer and the neurons p through q-1 of the input layer are grouped as group G 1 . Thus, the neurons m 1 , m 2 are alike in that they are each involved in the same number of groups and both are coupled to all neurons of the neural layers, but they differ in the manner in which they are grouped with regard to their coupling to the neurons of the input layer. In other words, grouping relative to the neurons of the input layer differs for each neuron of the intermediate layer. Grouping of this type is applied with regard to all neurons of the intermediate layer. Figs. 5A through 5C are examples of grouping with regard to the neurons m 1 through m 3 . In the examples of Fig. 4 and Figs. 5A through 5C, the grouping differs for each element of the intermediate layer. However, the groupings can be made to coincide. The manner in which the computations in the intermediate and output layers are put into table form is indicated by the groupings of Fig. 4 and Figs. 5A through 5C. The circuit system is illustrated in Fig. 6. More specifically, the operations performed by all of the neurons of Fig. 4 are replaced by the operations implemented by j-number of arithmetic units, the addition performed by an adder 28, and the operation implemented by a table 29, as shown in Fig. 6. The operations in each of the j-number of arithmetic units of Fig. 6 approximately agree with the operations in the j-number of neurons in the intermediate layer. Each arithmetic unit comprises two arithmetic tables which perform the operation W ji x iout; one adder which adds the results of the two arithmetic operations; and one function table which performs an operation based upon a sigmoid function. As set forth earlier, the number of groups in the first embodiment is set at two, and therefore two arithmetic tables are employed. Entered in the two arithmetic tables of each arithmetic unit are the items of neural data of the input layer grouped into the groups G 1 and G 2 , as described in connection with Fig. 3 (Fig. 4 and Figs. 5A through 5C). Before describing the operation of the circuit shown in Fig. 6, a circuit for carrying out the grouping of the kind shown in Fig. 3 will be discussed with reference to Fig. 7. Fig. 7 shows a circuit for grouping the neurons of the input layer when the neural network of Fig. 4 is utilized in the image processing of a binary image, by way of example. Since the image processing (e.g., image discrimination) of a binary image requires that reference be made to pixels in a range having a two-dimensional spread, the grouping circuit is formed from line buffers (LB) and latch circuits (LT), as illustrated in Fig. 7. In the circuit of Fig. 7, an inputted binary image is applied to serially connected line buffers (LB) 1 through 3 from which delayed data of one line, two lines and three lines and obtained, respectively. Thus, data in the vertical direction of the image is obtained. The items of original binary image data and delayed data from the buffers LB first enter latches (LT) 4 through 7, whereby a delay of one pixel is carried out in the horizontal direction. The outputs of the latches enter latches (LT) 8 through 11, where a further delay of one pixel is carried out in the horizontal direction. Similarly, a delay of one pixel is successively carried out by latches 12 through 15. Thus, a pixel of interest and image data in a rectangular area surrounding this pixel are extracted. The image data in the rectangular area shall be referred to as "binary pattern data". These items of binary pattern data enter the arithmetic units of Fig. 6. For example, if the latches of Fig. 7 are five in number in the horizontal direction and five in number in the vertical direction, then 5 x 5 = 25 bits of data are outputted on 25 lines as the binary pattern data. The wiring is such that the items of data on these 100 lines will match the groupings of Fig. 4 and Figs. 5A through 5C for every neuron of the intermediate layer. The items of data enter the arithmetic units of Fig. 6 in accordance with such wiring. In each arithmetic table, ΣW ji x iout corresponding to the neuron iout of the input layer is computed for each group. For example, in an arithmetic table 16 corresponding to the computation of group G 1 of neuron m 1 , the following arithmetic operation is performed: Further, in an arithmetic table 17, the following arithmetic operation is performed: If the results from these arithmetic units 16, 17 are assumed to be sum1 and sum2, respectively, sum = sum1 + sum2 is obtained by the adders 22 through 24. In other words, the following is outputted by the adder 22: If it is attempted to put the arithmetic operations in the neurons of the intermediate layer into table form by one arithmetic table, or in other words, if an attempt is made to realize the operations in the arithmetic tables 16, 17 and adder 22 in the circuitry of Fig. 6 by one arithmetic table, a large table of 2 i bits per arithmetic unit will be required. However, if grouping is performed in the manner shown in Fig. 6, e.g., if the number of neurons in each group is assumed to be G 1 = G 2 = i/2, only two tables having a size of 2 i/2 will suffice. As a result, the circuitry can be reduced in scale. As described in connection with Eqs. (1) and (2), the output of each neuron of the intermediate layer is obtained by subjecting Sum Fj = ΣW ji *iout to a sigmoid function. Also, as described in connection with Eqs. (3) and (4), the sum Sum Fk = ΣW kj *jout(j) from each neuron of the intermediate layer is subjected to a sigmoid function, and this becomes the output of the output layer. In general, the benefits of putting arithmetic operations in table form are greater for multiplication and division than for addition and subtraction. Accordingly, function tables (25, 26, ···) of the respective arithmetic units in Fig. 6 are made tables in which the products of sigmoid function processing and W kj are calculated en masse. More specifically, if the results of subjecting the outputs sum from the respective adders (22, 23, ···) to sigmoid function processing are expressed in the functional notation "f(sum)", then the following arithmetic operations will be performed in the function tables 25, 26, ···, 27: f(sum)*W k1 f(sum)*W k2 . . f(sum)*W ki By thus taking the products the sigmoid function processing and W kj en masse, high-speed processing and a reduction in circuit scale can be obtained. The adder 28 performs the operation An arithmetic operation in accordance with Eq. (4) is performed by the sigmoid function table 29. Thus, the circuit system of Fig. 6 is such that all operations in the network illustrated in Fig. 4 are put into table form. <First Modification of the First Embodiment> In the first embodiment shown in Fig. 4, each neuron of the intermediate layer is coupled to all neurons of the input layer. Fig. 8 illustrates a modification of the first embodiment, specifically a modification in which the neurons of the intermediate layer are connected only to some of the neurons of the input layer. In Fig. 8, an element m 1 of the intermediate layer is coupled to elements i 1 , i 3 , ··· i n-1 of the input layer, and an element m 2 of the intermediate layer is coupled to elements i 2 , i 4 , ··· i n of the input layer. As seen in this modification, the neurons of the intermediate layer need not be coupled to all inputs of the input layer. <Second Modification of the First Embodiment> In the second modification, the construction of the arithmetic units in the first embodiment is further simplified. In order to achieve this simplification, the sigmoid function is approximated by a linear function. A sigmoid function f(x) generally has a characteristic of the kind shown in Fig. 9. According to the second modification, a sigmoid function having the characteristic of Fig. 9 is approximated by a linear function f'(x). As the approximating linear function, use is made of one (e.g., Fig. 10) in which the y-intercept (0.5) is identical with that of the sigmoid function. By virtue of this approximation, the second modification makes it possible to substitute the circuit arrangement of Fig. 11 for the arithmetic tables 16 - 21, the adders 22 - 24, the function tables 25 - 27 and the adder 28 of Fig. 6. This will be illustrated below. The circuitry of Fig. 11 comprises a special arithmetic table 40 for group G1, a special arithmetic table 41 for group G2, and an adder 42. In this case, if the output produced by the adder 42 is Σf'(sum)*W kj which corresponds to Σf(sum)*W kj outputted by the adder 28, then a substitution of the kind shown in Fig. 11, namely an approximation by the linear function f'(x), will be possible. Here the output sum of the adder 22 is sum = sum 1 + sum 2 Since f'(x) is a linear function, i.e., since it maintains linearity, the following is obtained by referring also to Fig. 10: f'(sum) = f'(sum 1 ) + f'(sum 2 ) - f'(o) = f'(sum 1 ) + f'(sum 2 ) - mid Accordingly, we have Σf'(sum) x W kj = Σf'(sum 1 ) x W kj + Σf'(sum 2 ) x W kj - Σf'(0) x W kj If the first and third terms on the right side of the above equation are computed by the special function tables 40, 41, respectively, of Fig. 11, and the third term (a constant) is added by either table (e.g., table 40), then the output of the adder 42 will be the left side of Eq. (19), namely Σf'(sum) x Wkj Therefore, substitution of the above-described circuit is possible. More specifically, in the special function table 40, the following is outputted in response to an input: Σf'(sum 1 ) x W kj - Σf'(mid) x W kj = Σf'(sum 1 - mid) x W kj and the special function table 41 outputs the following: Σf'(sum 2 ) x W kj Thus, it is possible to substitute the circuit arrangement of Fig. 11 for the arithmetic tables 16 - 21, the adders 22 - 24, the function tables 25 - 27 and the adder 28 of Fig. 6. <Other Modifications of the First Embodiment> One embodiment and two modifications thereof have been described above with reference to Figs. 3 through 11. Further alterations will now be described. In the foregoing embodiment and modifications, the number of groups is two. However, three of more groups can be used, as set forth earlier. In such case, the number of arithmetic tables required to be prepared in each arithmetic unit would be equal to the number of groups. Further, in the embodiment and modifications of Figs. 3 through 11, the arithmetic unit corresponding to one neuron of the intermediate layer comprises a plurality of tables and an adder. If the number of connecting lines between the input layer and the intermediate layer is reduced, one table may be substituted for one arithmetic unit in its entirety. In such case, f(ΣW ji x iout) x W kj would be written in the table with respect to an input pattern iout. Accordingly, a value which results from multiplying the output of the intermediate layer by the weighting coefficient of the output layer is obtained by the arithmetic operation of the table. <Second Embodiment> The aim of the first embodiment described above was to reduce the scale of the circuitry in an ordinary neural network. From this viewpoint, grouping of the connections between the input layer and output layer was attempted. To this end, the neurons of the input layer were divided into two groups, the individual neurons belonging to the individual groups and one neuron of the intermediate were coupled, and the input layer and intermediate layer were divided into groups. In such case, the neurons of the input layer were shared by different neurons of the intermediate layer, and arithmetic operations within each group were put into table form to the maximum extent possible. In the second embodiment to be described below, however, the neurons of the input layer and intermediate layer are divided into a plurality of groups, and there is no coupling between neurons belonging to the different groups. The data processed in each group is processed for the first time as one nerve cell in the output layer. The second embodiment will now be described in detail. Fig. 12 illustrates a grouping technique according to the second embodiment. A neural network in the second embodiment comprises one input layer, one intermediate layer and one output layer. The neurons of the input layer are divided into n-number of groups, and the neurons of the intermediate layer also are divided into n-number of groups. The number of neurons of group 1 of the input layer is h 1 , that of group 2 is h 2 , and that of group n is h n . That is, the number of neurons of the input layer is as follows: Further, the number of neurons of group 1 of the intermediate layer is f 1 , that of group 2 is f 2 , and that of group n is f n . That is, the number of neurons of the intermediate layer is as follows: It does not matter whether f m = h m or f m ≠ h m holds. The Σf i -number of outputs of the intermediate layer are coupled to one neuron of the output layer. In accordance with such coupling, the neurons of the input layer and the neurons of the intermediate layer are divided into n-number of groups, and there is no coupling between the input-layer neurons and intermediate-layer neurons belonging to different groups. By virtue of such grouping, it is possible to realize the hardware configuration described below, thereby reducing the processing in the output layer. Specifically, the arithmetic operation executed by the output layer entails multiplying the output data from the input layer of each group by the weighting coefficient of the output layer, and calculating the total sum. That is, the following arithmetic operation is executed by the output layer: If the contribution from the neurons of the intermediate layer in group m to the neurons of the output layer is defined as follows: then we have sum = sum(1) + sum(2) + ··· + sum(n) Accordingly, if sum(m) is obtained within each group and this is adopted as the output from each group, then it will suffice for the output layer to compute the total sum of the outputs from each group to obtain sum , and then subject this to the sigmoid function. The processing in each group, inclusive of computation of sum(n), is realized by conversion using a table, in the same manner as the first embodiment. Figs. 13A and 13B illustrate circuit arrangements for hardware implementation of the structure obtained by such grouping . The circuits of Figs. 13A and 13B are obtained by constructing the network of Fig. 12 out of hardware mainly for the purpose of processing a binary image. As shown in Fig. 13B, an inputted binary image is delayed in the direction of vertical pixels by a line buffer 51, and in the horizontal direction by a DF unit 52, thereby obtaining an image which surrounds the pixel of interest. The output of the DF unit 52 enters n-number arithmetic tables 53 - 54. The arithmetic tables correspond to the groups 1 - n and perform arithmetic operations up to the determination of sum(m). In other words, in each arithmetic table, only data of the input-layer neurons relating to the corresponding group within the output from the DF unit 52 are inputted, and arithmetic operations up to the determination of sum(m) are performed by table conversion. The total sum sum(m) with regard to all groups is calculated by an adder 55, and sigmoid-function processing is carried out by table conversion in a function table 56. The structures of the line buffer 51 and DF unit 52 are shown in greater detail in Fig. 13A. The line buffer comprises serially connected line buffers 61 - 63 from which delayed data of one line, two lines and three lines and obtained, respectively. Thus, data in the vertical direction of the image is obtained. In the DF unit 52, The delayed data from the line buffer 51 first enters D-type flip-flops DF77 - 74, whereby a delay of one pixel is achieved in the horizontal direction. The outputs of the these flip-flops enter flip-flops DF75 - 78, where a further delay of one pixel is achieved in the horizontal direction. Similarly, a delay of one pixel is successively achieved by flip-flops DF79 - 82. Thus, pixels peripheral to a pixel of interest are extracted. Assigned to each group are pixels, which are contained in these peripheral pixels, corresponding to the group. Examples of grouping in a case where the number of groups is two are illustrated in Fig. 14A and 14B, in which the shaded portions are adopted as group 1 and the remaining portions are adopted as group 2. Fig. 14A is an example in which 5 x 5 (= 25) pixels (neurons of the input layer) are grouped into a central portion and a peripheral portion. Fig. 14B is an example in which 5 x 5 (= 25) pixels (neurons of the input layer) are divided uniformly into two groups. The circuitry of the second embodiment in Fig. 13B will now be compared, from the viewpoint of circuit scale, with a circuit in which the arithmetic tables 53 - 54, adder 55 and function table 56 are realized by a single table. If a neural network having p-number of input elements is equally divided by n in accordance with the technique of the second embodiment in order to obtain n-number of groups, the number of required inputs of each group will by p/n for binary data, and a table capacity of 2 p/n x n will suffice with respect to the n-number of groupings. On the other hand, in a case where the entirety is implemented by one table, a table of size 2 p is required. The fact that (2 p/n x n) << 2 p holds is obvious. By way of example, if the input is 5 x 5 pixels and this is divided into five groups, 2 25 ≈ 3.4 x 6 7 will be required to achieve consolidation into one table. By contrast, 2 5 x 5 = 160 will suffice according to the second embodiment. <Modification of the Second Embodiment> A proposed modification of the second embodiment will now be described, the construction of which is shown in Fig. 15. The neural network corresponding to this modification comprises four layers, namely an input layer (p-number of neurons), a first intermediate layer (q-number of neurons), a second intermediate layer and an output layer (r-number of neurons). Let W ji represent the coupling coefficient between the input layer and the first intermediate layer, W kj the coupling coefficient between the first intermediate layer and the second intermediate layer, and W 1k the coupling coefficient between the second intermediate layer and the output layer. According to this modification, the neurons of the input layer and of the first and second intermediate layers are divided into n-number of groups. As one example, assume that the neurons belonging to the individual layers are divided into groups having the same numbers of neurons. In such case, p/n-number of neurons of the input layer, q/n-number of neurons of the first intermediate layer, and r/n-number of neurons of the second intermediate layer are adopted as one group. There is no coupling between neurons belonging to different groups. Grouping of the neurons belonging to the input layer and the first intermediate layer can be performed in exactly the same manner as the second embodiment described earlier. Specifically, the combination of the input layer and first intermediate layer can be referred to as group n (see Fig. 16) in accordance with the second embodiment. Fig. 16 illustrates the coupling between the neurons of the second intermediate layer the group n in a case where the number of neurons in the second intermediate layer is n (= r), namely in a case where the number of second intermediate-layer neurons belonging to one group is one. In Fig. 16, the combination of group n and an n-th neuron of the second intermediate layer is referred to as group n'. With regard to the neurons of the second intermediate layer, the input is multiplied by the weighting coefficient W kj of the second intermediate layer, the products within the group are summed and the value of the sigmoid function is computed. This neural network comprising four layers can also be substituted by a circuit arrangement the same as that shown in Figs. 13A and 13B. In this case, the results of the following arithmetic operations performed by the neurons would be stored in the arithmetic tables 53 - 54 illustrated in Fig. 13B. Specifically, the following contents would be stored in each table: sumi = ΣW ji x iout regarding all values iout of the input layer in each group; jout = f(sum i ) which is the value of the sigmoid function that is the output of the first intermediate layer; sum j = ΣW kj x jout with respect to this output jout; kout = f(sum j ) which is the value of the sigmoid function that is the output of the first intermediate layer; and W 1k x kout obtained by multiplying kout by the weighting coefficient W 1k in the output layer. Accordingly, the adder 55 shown in Fig. 13B performs the arithmetic operation sum k = ΣW k1 x kout and the value of the sigmoid function jout = f(sum k ) is obtained by table conversion in the function table 56. The final output is thus obtained. <Other Modifications of the Second Embodiment> In the description relating to the second embodiment set forth above, each group is completely divided with no sharing of neurons. However, this does not impose a limitation upon the invention, for it is permissible for neurons to be shared by different groups. The example of such an arrangement is shown in Fig. 17. In Fig. 17, input and intermediate layers are each composed of two groups, and the shaded element among the elements of the input layer is shared by both groups. In a case such as this, the size of the table in the hardware configuration is only doubled, for example, in comparison with the completely divided arrangement, even if the elements in each group are increased by one element from another group. A table of such size is permissible as long as it is within the allowable storage limits of the memory. In accordance with the second embodiment, as described above, the neural network is divided into a plurality of groups on the input-layer side. Therefore, the arrangement is such that part of the processing of the neurons can be realized by table conversion based on addresses with a smaller number of bits. Consequently, most of the processing in the neural network can be performed by providing several memories, and therefore the circuitry can be reduced in scale. In the output layer, on the other hand, groups divided on the input-layer side are connected, and therefore the action of the overall neural network is maintained. In each of the divided groups, moreover, there is no need to enlarge the scale of the hardware even if the intermediate layer is constituted by a number of layers. The present invention is not limited to the above embodiments and various changes and modifications can be made within the scope of the appended claims. Therefore, to apprise the public of the scope of the present invention, the following claims are made.

Claims: A neural network the entirety of which is designed in such a manner that predetermined data processing is executed, comprising: an input layer having a plurality of neural elements divided into a plurality of groups (G1, G2); an intermediate layer comprising a plurality of neural elements, accepting, as input thereto, outputs ( iout ) from the neural elements of said input layer, multiplying first coupling coefficients (W j ) thereto, summing products of the multiplication (W j *iout ), normalizing the sum (ΣW ji * iout ) by a function (f), and outputting the normalized sum ( f ( Σ W ji *iout )); and an output layer having at least one neural element for accepting, as inputs thereto, outputs ( f (ΣW ji * iout )) from the neural elements of said intermediate layer, multiplying second coupling coefficients (W kj ) thereto, summing products of the multiplication (W kj *f (ΣW ji *iout )), normalizing the sum ( Σ W kj *f ( Σ W ji *iout )) by a function ( f ) and outputting the normalised sum ( f ( Σ W kj *f ( Σ W ji *iout ))), characterised in that each individual neural element (m 1 , m 2 , ...m j ) of said intermediate layer or said output layer includes: a plurality of first conversion tables (16-21; 53, 54), each of which performs by a conversion multiplication of coupling coefficients (W ji ) and outputs ( iout ) from neural elements belonging to a respective one of the plurality of groups of a preceding layer, and summation (ΣW ji * iout ) of the multiplication products; adding means (22-24; 55) for summing up the sum outputs from said plurality of first conversion tables; and a second conversion table (25-27; 56) which normalises, by a conversion, the sum (ΣW ji * iout ) output by said adding means. A neural network according to claim 1, wherein said plurality of first conversion tables (53, 54), adding means (55) and second conversion table (56) form the neural elements of the intermediate layer (Figure 13B). A neural network according to claim 2, wherein in each individual neural element (m 1 , m 2 , ...m j ) of said intermediate layer, each first conversion table (16-21), accepts, as input thereto, outputs from neural elements belonging to a respective one of the plurality of groups of said input layer, and converts the inputs ( iout ) to a sum (ΣW ji * iout ) of multiplication products and said second conversion table (25, 26, 27) converts the sum ( Σ W ji *iout ) output by said adding means to the product (W kj *f (ΣW ji *iout )) obtained by normalizing the sum ((ΣW ji * iout ) by the function ( f ) and multiplying by a second coupling coefficient (W kj ). A neural network according to claim 1, 2 or 3, wherein the neural elements of said input layer are divided into n groups with regard to each neural element of said intermediate layer or output layer, and each neural element of said intermediate layer or output layer has n of said first conversion tables. A neural network according to claim 4, wherein n=2. A neural network according to any preceding claim, wherein said predetermined data processing is image processing in which pixel data is inputted to each neural element of said input layer. A neural network according to claim 6, wherein n=2, and image data inputted to the neural elements of said input layer is an image block extending in two dimensions, and the image block is divided into a centrally located pixel group and a peripheral pixel group (Figure 5C). A neural network according to claim 6, wherein n=2, and image data inputted to each neural element of said input layer is an image block extending in two dimensions, and the image block is divided into two pixel groups that are distributed uniformly (Figure 14B). A neural network according to claim 1, wherein: the plurality of neural elements of said input layer are divided into n groups; within the one or more layers of said intermediate layer each has a plurality of neural elements divided in n groups; and the neural elements of individual groups of at least one of the layers of said intermediate layer are connected to the neural elements of only one group of their preceding layer (Figure 12). A neural network according to claim 9, wherein said plurality of first conversion tables (53, 54), adding means (55) and second conversion table (56) form the neural elements of the output layer (Figure 13B). A neural network according to any preceding claim, wherein the coupling coefficients of said neural network have been decided by a back-propagation method.

Inventors: MITA YOSHINOBU, MITA, YOSHINOBU
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1991
Main classification: G06F15
IPC codes: G06N3