Sign In to Follow Application
View All Documents & Correspondence

Inference Device And Inference Method

Abstract: According to the present invention a first intermediate layer activity calculation unit (5): acquires by referring to indices stored in a first intermediate layer storage unit (2) the activity at each node of an input layer having a connection relationship with each node of a first intermediate layer and the weight and bias value of each edge from among the activity at each node of the input layer as calculated by an input layer activity calculation unit (1) and the weight and bias value of each edge as stored in the first intermediate layer storage unit (2); and calculates the activity at each node of the first intermediate layer using the acquired activity at each node of the input layer and the acquired weight and bias value of each edge. This makes it possible to reduce the amount of calculation and the amount of memory required when inference is performed. It is also possible to obtain a higher accuracy of inference.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
22 September 2017
Publication Number
39/2017
Publication Type
INA
Invention Field
COMMUNICATION
Status
Email
Parent Application
Patent Number
Legal Status
Grant Date
2023-07-25
Renewal Date

Applicants

MITSUBISHI ELECTRIC CORPORATION
7-3, Marunouchi 2-chome, Chiyoda-ku, Tokyo 100- 8310, Japan.

Inventors

1. MATSUMOTO, Wataru
c/o Mitsubishi Electric Corporation, 7-3, Marunouchi 2-chome, Chiyoda-ku, Tokyo 100- 8310, Japan
2. YOSHIMURA, Genta
c/o Mitsubishi Electric Corporation, 7-3 Marunouchi 2 - chome, Chiyoda - ku, Tokyo 100 - 8310, Japan
3. ZHAO, Xiongxin
c/o Mitsubishi Electric Corporation, 7-3 Marunouchi 2 - chome, Chiyoda - ku, Tokyo 100 - 8310, Japan.

Specification

DESCRIPTION INFERENCE DEVICE AND INFERENCE METHOD TECHNICAL FIELD [0001] The present invention relates to an inference device and an inference method using a neural network. BACKGROUND ART [0002] As one of machine learning methods, neural networks have high capabilities in solving problems and are used in many types of processes, such as image recognition, sound recognition, abnormality detection, and future prediction. A hierarchical neural network is known as one of neural network structures. Learning methods thereof mainly include two types, which are supervised learning and unsupervised learning. The supervised learning is a method of tuning a connection state of a neural network such that actual output and target output match with each other after input data of a plurality of training examples and the target output are given. On the other hand, the unsupervised learning is a method of tuning a connection state of a neural network so as to extract an essential feature possessed in training examples without providing target output. [0003] An error backpropagation method (a backpropagation algorithm) belonging to supervised learning methods may cause a problem that learning results do not converge when the number of layers in a neural network increases. In order to solve the above problem, there is a method of performing pre-training on each layer by means of unsupervised learning, such as that in an auto-encoder or a restrict Boltzmann machine, to determine a default value of a connection state of a neural network. After that, the connection state of the neural network is fine-tuned by using an error backpropagation method. This method is capable of tuning of the connection state of the neural network such that actual output and target output match with each other without causing the problem that learning results do not converge. [0004] A hierarchical neural network can be represented by a graph structure which is constituted of a plurality of nodes (or joint points) and edges (or branches) connecting among the nodes. In a neural network having four layers, for example, a plurality of nodes are layered into an input layer, a first intermediate layer, a second intermediate layer, and an output layer. In this case, no edges exist among nodes belonging to the same layer, while edges exist only between every pair of adjacent layers. Note that the intermediate layers may be called as "hidden layers". Each of the edges has a parameter indicating a degree of connection between two connected nodes. This parameter is called as "edge weight". [0005] When learning or inference is performed by using the hierarchical neural network, the calculation amount and the memory amount are proportional to the number of edges. In general, nodes belonging to each of the layers are connected by edges with all nodes belonging to a layer adjacent thereto. Thus, the calculation amount and the memory amount are directly related to the number of nodes. For example, assuming that the number of nodes in the input layer is N, the number of nodes in the first intermediate layer is Mi, the number of nodes in the second intermediate layer is M2, and the number of nodes in the output layer is 1, the number of edges between the input layer and the first intermediate layer is N x Mi, the number of edges between the first intermediate layer and the second intermediate layer is Mi x M2, and the number of edges between the second intermediate layer and the output layer is M2. Therefore, the calculation amount and the memory amount upon learning or performing inference are proportional to (N x Mi + Mi x M2 + M2). [0006] Especially, when the number of nodes in the intermediate layers is proportional to the number of nodes in the input layer, the number of nodes in the input layer is N, the number of nodes in the first intermediate layer is Mi = a x N, and the number of nodes in the second intermediate layer is M2 = b x N. In this case, the total number of edges in the neural network isNxaxN + axNxbxN + b x N = (a + a x b) x N2 + b x N. Therefore, the calculation amount and the memory amount upon learning or performing inference are proportional to (a + a x b) x N2 + b x N. [0007] Hierarchical neural networks often have the configuration as described above and thus the calculation amount and the memory amount increase in proportion to the square of N which is the amount of input data, that is, the square of N which is the number of nodes in the input layer. Therefore, the calculation amount and the memory amount drastically increase as the amount of input data increases, thus resulting in problems such as shortage in computer resources, delay of a process, or increase in cost of a device. In the following Patent Literature 1, the number of edges between an input layer and an intermediate layer or the number of edges between the intermediate layer and an output layer are reduced by grouping a plurality of sets of input data based on correlation among the plurality of sets of data. CITATION LIST [0008] Patent Literature 1: JP Publication No. 2011-54200 A (FIG. 1) SUMMARY OF INVENTION [0009] Since inference devices in the conventional art are configured in the above manner, the number of edges between an input layer and an intermediate layer or the number of edges between the intermediate layer and an output layer can be reduced. However, between the input layer and the intermediate layer belonging to the same group, each node in the input layer is connected with all nodes in the intermediate layer and thus the reduction number of edges is limited. Therefore, there may cause a problem that the calculation amount and the memory amount upon inference are still large. [0010] The present invention has been devised to solve the aforementioned problem with an object to obtain an inference method and an inference device that is capable of reducing the calculation amount and the memory amount upon performing inference. A further object is to obtain an inference device and an inference method having high inference accuracy. [0011] An inference device according to the invention includes: an input layer activity level calculator to calculate, when data is given to each node of an input layer constituting a neural network, an activity level of each node of the input layer from the given data; an intermediate layer storage to store weight applied to an edge that connects a node of an intermediate layer constituting the neural network and a node of the input layer; an intermediate layer activity level calculator to acquire, from among the activity levels of the respective nodes of the input layer calculated by the input layer activity level calculator and the weight for the respective edges stored in the intermediate layer storage, an activity level of a node in the input layer that has connection with a node in the intermediate layer, and also acquire weight for a corresponding edge, and calculate an activity level of the node in the intermediate layer by using the acquired activity level of the node in the input layer and the acquired weight for the corresponding edge; and an output layer activity level calculator to calculate an activity level of each node in an output layer constituting the neural network by using the activity level of each node in the intermediate layer calculated by the intermediate layer activity level calculator. [0012] This invention has an effect of reducing the calculation amount and the memory amount upon performing inference. Another effect is that higher inference accuracy can be obtained. BRIEF DESCRIPTION OF DRAWINGS [0013] FIG. 1 is a diagram illustrating a configuration of an inference device according to Embodiment 1 of the invention. FIG. 2 is a diagram illustrating a hardware configuration of the inference device according to the Embodiment 1 of the invention. FIG. 3 is a diagram illustrating a hardware configuration when the inference device is constituted by a computer. FIG. 4 is a flowchart illustrating an inference method which refers to process contents of the inference device according to the Embodiment 1 of the invention. FIG. 5 is a flowchart illustrating process contents of an input layer activity level calculator 1, a first intermediate layer activity level calculator 5, a second intermediate layer activity level calculator 6, a third intermediate layer activity level calculator 7, and an output layer activity level calculator 9. FIG. 6 is an explanatory diagram illustrating a hierarchical neural network applied to the inference device according to the Embodiment 1 of the invention. FIG. 7 is an explanatory diagram illustrating an example of indices, edge weight, and bias values. FIG. 8 is an explanatory diagram illustrating examples of a loop formed by a plurality of edges. FIG. 9 is an explanatory diagram illustrating an exemplary neural network in which image data given to an input layer is classified into ten types. FIG. 10 is an explanatory diagram illustrating an Elman network as a recurrent neural network (RNN) which has edge connections from an input layer to a first intermediate layer, from the first intermediate layer to a second intermediate layer (a context layer), from the second intermediate layer (a context layer) to the first intermediate layer, and from the first intermediate layer to an output layer. FIG. 11 is a diagram illustrating a configuration of an inference device according to Embodiment 7 of the invention. FIG. 12 is an explanatory diagram illustrating an exemplary echo state network that is a neural network having edge connections among nodes or a self-connection within the intermediate layer, and also having an edge which connects an input layer with an output layer by skipping an intermediate layer. FIG. 13 is an explanatory diagram illustrating the echo state network in FIG. 12 by the layer. FIG. 14 is a diagram illustrating a configuration of an inference device according to an Embodiment 8 of the invention. DESCRIPTION OF EMBODIMENTS [0014] To describe the invention further in detail, embodiments for carrying out the invention will be described below along the accompanying drawings. [0015] (Embodiment 1) FIG. 1 is a diagram illustrating a configuration of an inference device according to Embodiment 1 of the invention. FIG. 2 is a diagram illustrating a hardware configuration of the inference device according to the Embodiment 1 of the invention. In FIG. 1, the exemplary inference device using a hierarchical neural network having five layers is illustrated, in which a plurality of nodes are layered into an input layer, a first intermediate layer, a second intermediate layer, a third intermediate layer, and an output layer. In FIG. 1, it is assumed that data given to the input layer is image data. In this embodiment, although the example of using the hierarchical neural network of the five layers is illustrated, it is not limited to the hierarchical neural network of five layers. A hierarchical neural network of three or four layers, or six or more layers may be used. Note that, in the case of using a hierarchical neural network of three layers, only a first intermediate layer is included as an intermediate layer. In this case, a second intermediate layer storage 3, a third intermediate layer storage 4, a second intermediate layer activity level calculator 6, and a third intermediate layer activity level calculator 7, which will be described later, are not needed. [0016] In FIGs. 1 and 2, an input layer activity level calculator 1 is implemented by an input layer activity level circuitry 11 which is constituted by a semiconductor integrated circuit or a one-chip microcomputer equipped with a central processing unit (CPU), for example. When the image data is given to each node in the input layer constituting the hierarchical neural network, the input layer activity level calculator 1 performs a process of calculating activity level of each node in the input layer from the image data. [0017] A first intermediate layer storage 2 as an intermediate layer storage is implemented by an intermediate layer storage device 12 which is composed of a storing medium, such as a RAM or a hard disk. The first intermediate layer storage 2 stores an index (or connection information) representing a relation of connection between each node in the first intermediate layer and each node in the input layer, weight applied to each of edges connecting a node in the first intermediate layer and a node in the input layer, and a bias value given to each node in the first intermediate layer. A second intermediate layer storage 3 as the intermediate layer storage is implemented by the intermediate layer storage device 12 which is composed of a storing medium, such as a RAM or a hard disk. The second intermediate layer storage 3 stores an index representing a relation of connection between each node in the second intermediate layer and each node in the first intermediate layer, weight applied to each of edges connecting a node in the second intermediate layer and a node in the first intermediate layer, and a bias value given to each node in the second intermediate layer. A third intermediate layer storage 4 as the intermediate layer storage is implemented by the intermediate layer storage device 12 which is composed of a storing medium, such as a RAM or a hard disk. The third intermediate layer storage 4 stores an index representing a relation of connection between each node in the third intermediate layer and each node in the second intermediate layer, weight applied to each of edges connecting a node in the third intermediate layer and a node in the second intermediate layer, and a bias value given to each node in the third intermediate layer. [0018] A first intermediate layer activity level calculator 5 as an intermediate layer activity level calculator is implemented by an intermediate layer activity level circuitry 13 which is constituted by a semiconductor integrated circuit or a one-chip microcomputer equipped with a central processing unit (CPU), for example. The first intermediate layer activity level calculator 5 refers to the index stored in the first intermediate layer storage 2, and acquires, from among the activity levels of the respective nodes in the input layer calculated by the input layer activity level calculator 1 and the weight for the respective edges and the bias values stored in the first intermediate layer storage 2, an activity level of each node in the input layer that is connected with each node in the first intermediate layer, weight for each of edges, and a bias value. The first intermediate layer activity level calculator 5 calculates an activity level of each node in the first intermediate layer by using the acquired activity level of each node in the input layer, the acquired weight for each of the edges, and the acquired bias value. [0019] A second intermediate layer activity level calculator 6 as the intermediate layer activity level calculator is implemented by the intermediate layer activity level circuitry 13 which is constituted by a semiconductor integrated circuit or a one-chip microcomputer equipped with a central processing unit (CPU), for example. The second intermediate layer activity level calculator 6 refers to the index stored in the second intermediate layer storage 3, and acquires, from among the activity levels of the respective nodes in the first intermediate layer calculated by the first intermediate layer activity level calculator 5 and the weight for the respective edges and the bias values stored in the second intermediate layer storage 3, an activity level of each node in the first intermediate layer that is connected with each node in the second intermediate layer, weight for each of edges, and a bias value. The second intermediate layer activity level calculator 6 calculates an activity level of each node in the second intermediate layer by using the acquired activity level of each node in the first intermediate layer, the acquired weight for each of the edges, and the acquired bias value. [0020] A third intermediate layer activity level calculator 7 that is the intermediate layer activity level calculator is implemented by the intermediate layer activity level circuitry 13 which is constituted by a semiconductor integrated circuit or a one-chip microcomputer equipped with a central processing unit (CPU), for example. The third intermediate layer activity level calculator 7 refers to the index stored in the third intermediate layer storage 4, and acquires, from among the activity levels of the respective nodes in the second intermediate layer calculated by the second intermediate layer activity level calculator 6 and the weight for the respective edges and the bias values stored in the third intermediate layer storage 4, an activity level of each node in the second intermediate layer that is connected with each node in the third intermediate layer, weight for each of edges, and a bias value. The third intermediate layer activity level calculator 7 calculates an activity level of each node in the third intermediate layer by using the acquired activity level of each node in the second intermediate layer, the acquired weight for each of the edges, and the acquired bias value. [0021] An output layer storage 8 is implemented by an output layer storage device 14 which is composed of a storing medium, such as a RAM or a hard disk. The output layer storage 8 stores an index (or connection information) representing a relation of connection between each node in the output layer and each node in the third intermediate layer, weight for each of edges connecting a node in the output layer and a node in the third intermediate layer, and a bias value given to each node in the output layer. An output layer activity level calculator 9 is implemented by an output layer activity level circuitry 15 which is constituted by a semiconductor integrated circuit or a one-chip microcomputer equipped with a central processing unit (CPU), for example. The output layer activity level calculator 9 refers to the index stored in the output layer storage 8, and acquires, from among the activity levels of the respective nodes in the third intermediate layer calculated by the third intermediate layer activity level calculator 7 and the weight for the respective edges and the bias values stored in the output layer storage 8, an activity level of each node in the third intermediate layer that is connected with each node in the output layer, weight for each of edges, and a bias value. The output layer activity level calculator 9 calculates an activity level of each node in the output layer by using the acquired activity level of each node in the third intermediate layer, the acquired weight for each of the edges, and the acquired bias value. [0022] In FIG. 1, it is assumed that the input layer activity level calculator 1, the first intermediate layer storage 2, the second intermediate layer storage 3, the third intermediate layer storage 4, the first intermediate layer activity level calculator 5, the second intermediate layer activity level calculator 6, the third intermediate layer activity level calculator 7, the output layer storage 8, and the output layer activity level calculator 9, each of which are components of the inference device, are individually constituted by dedicated hardware. Alternatively, the inference device may be constituted by a computer. FIG. 3 is a diagram illustrating a hardware configuration when the inference device is constituted by a computer. When the inference device is constituted by a computer, the first intermediate layer storage 2, the second intermediate layer storage 3, the third intermediate layer storage 4, and the output layer storage 8 are provided on a memory 21 of the computer. In addition, a program, which describes process contents of the input layer activity level calculator 1, the first intermediate layer activity level calculator 5, the second intermediate layer activity level calculator 6, the third intermediate layer activity level calculator 7, and the output layer activity level calculator 9, is stored in the memory 21 of the computer. Further, a processor 22 of the computer executes the program stored in the memory 21. FIG. 4 is a flowchart illustrating an inference method that is process contents of the inference device according to Embodiment 1 of the invention. FIG. 5 is a flowchart illustrating process contents of the input layer activity level calculator 1, the first intermediate layer activity level calculator 5, the second intermediate layer activity level calculator 6, the third intermediate layer activity level calculator 7, and the output layer activity level calculator 9. [0023] FIG. 6 is an explanatory diagram illustrating the hierarchical neural network applied to the inference device according to the Embodiment 1 of the invention. The hierarchical neural network in FIG. 6 has five layers in which a plurality of nodes are layered into an input layer, a first intermediate layer, a second intermediate layer, a third intermediate layer, and an output layer. FIG. 7 is an explanatory diagram illustrating an example of indices, edge weight, and bias values. In FIG. 7, the index as connection information of a node indicates that, for example, node "N" in a first intermediate layer is connected with nodes "0", "3", and "5" in an input layer. FIG. 7 illustrates that, for example, a weight "0.2" is applied to an edge connecting the node "N" in the first intermediate layer and the node "0" in the input layer, a weight "-0.5" is applied to an edge connecting the node "N" in the first intermediate layer and the node "3" in the input layer, and a weight "0.1" is applied to an edge connecting the node "N" in the first intermediate layer and the node "5" in the input layer. FIG. 7 further illustrates that, for example, a bias value "1.8" is applied to the node "N" in the first intermediate. [0024] Next, operations will be described. When image data is given to each node in the input layer constituting the hierarchical neural network, the input layer activity level calculator 1 calculates from the image data an activity level AIN of each node in the input layer (step ST1 in FIG. 4). In a case where the image data given to the input layer activity level calculator 1 represents, for example, an image composed of pixels having a pixel value P which ranges 0 to 255, and the pixel value P of each of the pixels is provided each node in the input layer, an activity level AIN of each node in the input layer can be calculated by the following formula (1). In this example, it is assumed that image data is input, and that normalization is performed by dividing a pixel value P of each pixel by 255, and a floating-point value (0.0 to 1.0) is obtained as the activity level AIN of each node in the input layer. Alternatively, a process, such as data thinning, quantization, or conversion, may be performed depending to the type of input data in addition to simple normalization. [0025] After the input layer activity level calculator 1 calculates the activity level AIN of each node in the input layer, the first intermediate layer activity level calculator 5 refers to the index stored in the first intermediate layer storage 2, confirms each node in the input layer connected with a node in the first intermediate layer for each node in the first intermediate layer, and acquires the activity level AIN of each node in the input layer. Specifically, for example, in the case of the node "N" in the first intermediate layer, the index stored in the first intermediate layer storage 2 represents connection to the nodes "0", "3", and "5" in the input layer. Thus, activity levels AIN-O, AIN-3, and AIN-5 of the nodes "0", "3", and "5" in the input layer are acquired from among the activity levels AIN of the respective nodes in the input layer having been calculated by the input layer activity level calculator 1. [0026] The first intermediate layer activity level calculator 5 further refers to the index stored in the first intermediate layer storage 2, confirms an edge connected with a node in the first intermediate layer for each node in the first intermediate layer, and acquires weight w for the edge from the first intermediate layer storage 2. Specifically, for example, in the case of the node "N" in the first intermediate layer, the index stored in the first intermediate layer storage 2 represents connection to the nodes "0", "3", and "5" in the input layer. Thus, a value "0.2" is acquired as weight WN-O for the edge connecting the node "N" in the first intermediate layer and the node "0" in the input layer, and a value "-0.5" is acquired as weight WN-3 for the edge connecting the node "N" in the first intermediate layer and the node "3" in the input layer. Further, a value "0.1" is further acquired as weight WN-5 for the edge connecting the node "N" in the first intermediate layer and the node "5" in the input layer. [0027] The first intermediate layer activity level calculator 5 further acquires, for each node in the first intermediate layer, a bias value BIM of a node in the first intermediate layer from the first intermediate layer storage 2. For example, in the case of the node "N" in the first intermediate layer, a value "1.8" is acquired as a bias value BIM-N. [0028] After acquiring, for each node in the first intermediate layer, the activity level AIN of each node in the input layer, the weight w, and the bias value BIM, the first intermediate layer activity level calculator 5 calculates an activity level AIM for each node in the first intermediate layer by using the acquired activity level AIN, weight w, and bias value BIM (step ST2). Exemplary calculation of an activity level AIM-N of the node "N" in the first intermediate layer will be described specifically below. [0029] First, the first intermediate layer activity level calculator 5 reads out the index stored in the first intermediate layer storage 2 (step ST 11 in FIG. 5). By referring to the index, the first intermediate layer activity level calculator 5 acquires, as a parameter used for calculation of an activity level, the activity levels AIN-O, AIN-3, and AIN-5 in the nodes "0", "3", and "5" in the input layer, the weight WN-O, WN-3, and WN-5, for edges thereof, and the bias value BIM-N of the node "N" in the first intermediate layer (step ST12). The first intermediate layer activity level calculator 5 performs product sum operation, as represented by the following formula (2), on between the activity levels AIN-O, AIN-3, and AIN-5 of the nodes "0", "3", and "5" in the input layer, and the weight WN-O, WN-3, and WN-5 for the edges (step ST 13). MADD = AIN-O x WN-O + AIN-3 X WN-3 + AIN-5 x WN-5 (2) The first intermediate layer activity level calculator 5 then adds the bias value BIM-N of the node "N" in the first intermediate layer to the operation result MADD of the product sum operation, as represented by the following formula (3) (step ST14). ADD = MADD + B i M-N (3 ) [0030] As an activation function F applied to the neural network, which is used for calculation of an activity level, a linear function, a sigmoid function, a softmax function, a rectified linear unit (ReLU) function, or other functions, are prepared in advance for the first intermediate layer activity level calculator 5. The first intermediate layer activity level calculator 5 calculates, as the activity level AIM-N of the node "N" in the first intermediate layer, a resulting value of the activation function F with the addition result ADD of the formula (3) as an argument of the activation function F, as represented by the following formula (4) (step ST15). AIM-N = F(ADD) (4) The exemplary calculation of the activity level AIM-N of the node "N" in the first intermediate layer has been described here. The activity levels AIM of other nodes in the first intermediate layer are also calculated in a similar manner. [0031] After the first intermediate layer activity level calculator 5 has calculated the activity levels AIM of the respective nodes in the first intermediate layer, the second intermediate layer activity level calculator 6 calculates an activity level A2M of each node in the second intermediate layer (step ST3 in FIG. 4). A calculation method of the activity level A2M of each node in the second intermediate layer by the second intermediate layer activity level calculator 6 is similar to the calculation method of the activity level AIM of each node in the first intermediate layer by the first intermediate layer activity level calculator 5. That is, the second intermediate layer activity level calculator 6 refers to the index stored in the second intermediate layer storage 3, confirms each node in the first intermediate layer connected with a node in the second intermediate layer for each node in the second intermediate layer, and acquires the activity level AIM of each node in the first intermediate layer. The second intermediate layer activity level calculator 6 refers to the index stored in the second intermediate layer storage 3, confirms an edge connected with a node in the second intermediate layer for each node in the second intermediate layer, and acquires weight w for the edge from the second intermediate layer storage 3. [0032] The second intermediate layer activity level calculator 6 acquires a bias value B2M of a node in the second intermediate layer from the second intermediate layer storage 3 for each node in the second intermediate layer. After acquiring, for each node in the second intermediate layer, the activity level AIM of each node in the first intermediate layer, the weight w, and the bias value B2M of the edge, the second intermediate layer activity level calculator 6 calculates the activity level A2M for each node in the second intermediate layer by using the acquired activity level AIM, weight w, and bias value B2M through a calculation method similar to that of the first intermediate layer activity level calculator 5. [0033] After the second intermediate layer activity level calculator 6 has calculated the activity levels A2M of the respective nodes in the second intermediate layer, the third intermediate layer activity level calculator 7 calculates an activity level A3M of each node in the third intermediate layer (step ST4). A calculation method of the activity level A3M of each node in the third intermediate layer by the third intermediate layer activity level calculator 7 is similar to the calculation method of the activity level AIM of each node in the first intermediate layer by the first intermediate layer activity level calculator 5. That is, the third intermediate layer activity level calculator 7 refers to the index stored in the third intermediate layer storage 4, confirms each node in the second intermediate layer connected with a node in the third intermediate layer for each node in the third intermediate layer, and acquires the activity level A2M of each node in the second intermediate layer. The third intermediate layer activity level calculator 7 refers to the index stored in the third intermediate layer storage 4, confirms an edge connected with a node in the third intermediate layer for each node in the third intermediate layer, and acquires weight w of the edge from the third intermediate layer storage 4. [0034] The third intermediate layer activity level calculator 7 acquires, for each node in the third intermediate layer, a bias value B3M of a node in the third intermediate layer from the third intermediate layer storage 4. After acquiring the activity level A2M of each node in the second intermediate layer, the weight w and the bias value B3M of the edge for each node in the third intermediate layer, the third intermediate layer activity level calculator 7 calculates the activity level A3M for each node in the third intermediate layer by using the acquired activity level A2M, weight w, and bias value B3M through a calculation method similar to that of the first intermediate layer activity level calculator 5. [0035] After the third intermediate layer activity level calculator 7 has calculated the activity levels A3M of the respective nodes in the third intermediate layer, the output layer activity level calculator 9 calculates an activity level AOUT of each node in the output layer (step ST5). A calculation method of the activity level AOUT of each node in the output layer by the output layer activity level calculator 9 is similar to the calculation method of the activity level AIM of each node in the first intermediate layer by the first intermediate layer activity level calculator 5. That is, the output layer activity level calculator 9 refers to the index stored in the output layer storage 8, confirms each node in the third intermediate layer connected with a node in the output layer for each node in the output layer, and acquires the activity level A3M of each node in the third intermediate layer. The output layer activity level calculator 9 refers to the index stored in the output layer storage 8, confirms an edge connected with a node in the output layer for each node in the output layer, and acquires weight w of the edge from the output layer storage 8. [0036] The output layer activity level calculator 9 acquires, for each node in the output layer, a bias value BOUT of a node in the output layer from the output layer storage 8. After acquiring the activity level A3M of each node in the third intermediate layer, the weight w and the bias value BOUT of the edge for each node in the output layer, the output layer activity level calculator 9 calculates the activity level AOUT for each node in the output layer by using the acquired activity level A3M, weight w, and bias value BOUT through a calculation method similar to that of the first intermediate layer activity level calculator 5. [0037] The activity level AOUT for each node in the output layer calculated by the output layer activity level calculator 9 is output as an inference result of the inference device. Specifically, for example, in a case of identifying an object captured in an image as one from among a person, a dog, a cat, and a car, the output layer is formed by four nodes. In this case, an activity level of each node is learned to be a value representing possibility of a person, a dog, a cat, or a car. When performing inference, a node having the largest activity level in the output layer is selected. If, for example, the selected node is the one for outputting possibly of a cat, "cat" is output as an inference result. Not only the simple identification result, but also processes of calculating reliability using an activity level or outputting a regression estimation value may be performed. [0038] As apparent from the above, according to the Embodiment 1, the first intermediate layer activity level calculator 5 refers to the index stored in the first intermediate layer storage 2, acquires, from among the activity levels of respective nodes in the input layer calculated by the input layer activity level calculator 1 and weight for respective edges and bias values stored in the first intermediate layer storage 2, an activity level of each node in the input layer that has connection with each node in the first intermediate layer and weight for each of edges and a bias value thereof, and calculates an activity level of each node in the first intermediate layer using the activity level of each node in the input layer and the weight for each of the edges and the bias value having been acquired. This is capable of achieving effects of reducing the calculation amount and the memory amount upon performing inference. In other words, the first intermediate layer activity level calculator 5 is only required to perform calculation on each node in the input layer that has connection with each node in the first intermediate layer, and thus the calculation amount and the memory amount upon performing inference can be drastically reduced. [0039] Moreover, the second intermediate layer activity level calculator 6 is also only required to perform calculation on each node in the first intermediate layer that has connection with nodes in the second intermediate layer and thus the calculation amount and the memory amount upon performing inference can be drastically reduced similarly to the first intermediate layer activity level calculator 5. Likewise, the third intermediate layer activity level calculator 7 is also only required to perform calculation on each node in the second intermediate layer that has connection with nodes in the third intermediate layer and thus the calculation amount and the memory amount upon performing inference can be drastically reduced similarly to the first intermediate layer activity level calculator 5. Furthermore, the output layer activity level calculator 9 is also only required to perform calculation on each node in the third intermediate layer that is connected with nodes in the output layer and thus the calculation amount and the memory amount upon performing inference can be drastically reduced similarly to the first intermediate layer activity level calculator 5. [0040] In the Embodiment 1, the first intermediate layer activity level calculator 5, the second intermediate layer activity level calculator 6, the third intermediate layer activity level calculator 7, and the output layer activity level calculator 9 perform the product sum operation on between an activity level of each node in a preceding layer and weight for an edge thereof upon calculating an activity level of each node. Alternatively, instead of the addition result ADD in the formula (3), the maximum value or an average value of activity levels of the respective nodes in the preceding layer may be used. [0041] (Embodiment 2) In the Embodiment 1 described above, each node in each of the layers constituting the neural network applied to the inference device is not connected with all nodes in a preceding or a succeeding layer, but is connected with part of the nodes. Even in this case where each node in each of the layers is connected with part of the nodes in a preceding or a succeeding layer, a loop may be formed by a plurality of edges connecting the nodes depending on a mode of connection among the nodes. In a neural network, a specific path is called a loop, which starts from a certain node and returns to this node by passing through each edge only once. The number of edges forming a loop is herein called the length of the loop. [0042] FIG. 8 is an explanatory diagram illustrating exemplary loops formed by a plurality of edges. FIGs. 8A and 8B illustrate an exemplary loop formed by four edges. FIG. 8C illustrates an exemplary loop formed by six edges. FIG. 8D illustrates an exemplary loop formed by eight edges. In a hierarchical neural network for example, a loop having a length of 4 may be formed at the shortest. Especially, the loop having a length of 4 may cause deterioration of the inference accuracy because gradient calculation information tends to propagate by an error backpropagation method upon learning. Also in a model that performs inference by bidirectional information propagation, such as a probability propagation method in a Bayesian network, a short loop causes circulation of propagation information, thereby inducing deterioration of the inference accuracy. [0043] For the reason above, in the Embodiment 2, a neural network applied to an inference device is limited to the one in which each loop is formed by six or more edges when edges connecting nodes in respective layers constituting a neural network form loops. Such the edges may be edges connecting nodes in a first intermediate layer and nodes in an input layer, edges connecting nodes in a second intermediate layer and the nodes in the first intermediate layer, edges connecting nodes in a third intermediate layer and the nodes in the second intermediate layer, and edges connecting nodes in an output layer and the nodes in the third intermediate layer. Accordingly, in the Embodiment 2, a neural network in which a loop is formed by four edges, as illustrated in FIGs. 8A and 8B, is not applied to an inference device. In contrast, a neural network in which a loop is formed by six or eight edges, as illustrated in FIGs. 8C and 8D, may be applied to an inference device. This configuration is capable achieving effects of suppressing deterioration of the inference accuracy attributable to a short loop in a neural network. In other words, the calculation amount and the memory amount can be reduced while maintaining inference accuracy. [0044] (Embodiment 3) In the Embodiment 1 described above, each node in each of the layers constituting the neural network applied to the inference device is not connected with all nodes in a preceding or a succeeding layer, but is connected with part of the nodes. Each node in the first intermediate layer may be connected with part of all nodes in the input layer, which are randomly selected from among the all nodes. Similarly, each node in the second intermediate layer may be connected with part of all nodes in the first intermediate layer, which are randomly selected from among the all nodes. Moreover, each node in the third intermediate layer may be connected with part of all nodes in the second intermediate layer, which are randomly selected from among the all nodes. Further similarly, each node in the output layer may be connected with part of all nodes in the third intermediate layer, which are randomly selected from among the all nodes. [0045] For the random selection, a criterion may be set such that an average number of connections per node in each of the layers (the output layer, the third intermediate layer, the second intermediate layer, and the first intermediate layer) with nodes in a preceding layer (the third intermediate layer, the second intermediate layer, the first intermediate layer, and the input layer, respectively) is fifty or less. Alternatively, another criterion may be imposed that an average number of connections per node in each of the layers (the output layer, the third intermediate layer, the second intermediate layer, and the first intermediate layer) with nodes in a preceding layer (the third intermediate layer, the second intermediate layer, the first intermediate layer, and the input layer, respectively) is one-tenth or less of the number of nodes in the preceding layer. [0046] In a mode where each node in each layer is connected with all nodes in a preceding layer, if assuming that the number of nodes in each layer is M and the number of nodes in a preceding layer is N, the calculation amount of activity levels and the memory amount in each layer is in N x M orders. In contrast, by setting the criterion that an average number of connections n (n

Documents

Application Documents

# Name Date
1 201747033696-TRANSLATIOIN OF PRIOIRTY DOCUMENTS ETC. [22-09-2017(online)].pdf 2017-09-22
2 201747033696-STATEMENT OF UNDERTAKING (FORM 3) [22-09-2017(online)].pdf 2017-09-22
3 201747033696-REQUEST FOR EXAMINATION (FORM-18) [22-09-2017(online)].pdf 2017-09-22
4 201747033696-PROOF OF RIGHT [22-09-2017(online)].pdf 2017-09-22
5 201747033696-PRIORITY DOCUMENTS [22-09-2017(online)].pdf 2017-09-22
6 201747033696-POWER OF AUTHORITY [22-09-2017(online)].pdf 2017-09-22
7 201747033696-FORM 18 [22-09-2017(online)].pdf 2017-09-22
8 201747033696-FORM 1 [22-09-2017(online)].pdf 2017-09-22
9 201747033696-DRAWINGS [22-09-2017(online)].pdf 2017-09-22
10 201747033696-DECLARATION OF INVENTORSHIP (FORM 5) [22-09-2017(online)].pdf 2017-09-22
11 201747033696-COMPLETE SPECIFICATION [22-09-2017(online)].pdf 2017-09-22
12 201747033696-CLAIMS UNDER RULE 1 (PROVISIO) OF RULE 20 [22-09-2017(online)].pdf 2017-09-22
13 201747033696.pdf 2017-09-26
14 Correspondence by Agent_Executed Form1_05-10-2017.pdf 2017-10-05
15 201747033696-FORM 3 [12-03-2018(online)].pdf 2018-03-12
16 201747033696-FORM 3 [12-09-2018(online)].pdf 2018-09-12
17 201747033696-FORM 3 [05-09-2019(online)].pdf 2019-09-05
18 201747033696-FORM 3 [06-03-2020(online)].pdf 2020-03-06
19 201747033696-FER.pdf 2020-07-12
20 201747033696-certified copy of translation [17-09-2020(online)].pdf 2020-09-17
21 201747033696-OTHERS [12-11-2020(online)].pdf 2020-11-12
22 201747033696-Information under section 8(2) [12-11-2020(online)].pdf 2020-11-12
23 201747033696-FORM-26 [12-11-2020(online)].pdf 2020-11-12
24 201747033696-FORM 3 [12-11-2020(online)].pdf 2020-11-12
25 201747033696-FER_SER_REPLY [12-11-2020(online)].pdf 2020-11-12
26 201747033696-DRAWING [12-11-2020(online)].pdf 2020-11-12
27 201747033696-COMPLETE SPECIFICATION [12-11-2020(online)].pdf 2020-11-12
28 201747033696-CLAIMS [12-11-2020(online)].pdf 2020-11-12
29 201747033696-ABSTRACT [12-11-2020(online)].pdf 2020-11-12
30 201747033696-FORM 3 [21-02-2022(online)].pdf 2022-02-21
31 201747033696-FORM 3 [21-02-2023(online)].pdf 2023-02-21
32 201747033696-FORM 3 [24-02-2023(online)].pdf 2023-02-24
33 201747033696-US(14)-HearingNotice-(HearingDate-10-07-2023).pdf 2023-06-26
34 201747033696-FORM-26 [07-07-2023(online)].pdf 2023-07-07
35 201747033696-Correspondence to notify the Controller [07-07-2023(online)].pdf 2023-07-07
36 201747033696-Written submissions and relevant documents [19-07-2023(online)].pdf 2023-07-19
37 201747033696-Retyped Pages under Rule 14(1) [19-07-2023(online)].pdf 2023-07-19
38 201747033696-2. Marked Copy under Rule 14(2) [19-07-2023(online)].pdf 2023-07-19
39 201747033696-PatentCertificate25-07-2023.pdf 2023-07-25
40 201747033696-IntimationOfGrant25-07-2023.pdf 2023-07-25

Search Strategy

1 searchstrategy201747033696E_29-06-2020.pdf

ERegister / Renewals

3rd: 08 Aug 2023

From 31/08/2017 - To 31/08/2018

4th: 08 Aug 2023

From 31/08/2018 - To 31/08/2019

5th: 08 Aug 2023

From 31/08/2019 - To 31/08/2020

6th: 08 Aug 2023

From 31/08/2020 - To 31/08/2021

7th: 08 Aug 2023

From 31/08/2021 - To 31/08/2022

8th: 08 Aug 2023

From 31/08/2022 - To 31/08/2023

9th: 08 Aug 2023

From 31/08/2023 - To 31/08/2024

10th: 22 Jul 2024

From 31/08/2024 - To 31/08/2025

11th: 15 Jul 2025

From 31/08/2025 - To 31/08/2026