WO2016174725A1 - Computer, and calculation method using neural network - Google Patents

Computer, and calculation method using neural network Download PDF

Info

Publication number
WO2016174725A1
WO2016174725A1 PCT/JP2015/062767 JP2015062767W WO2016174725A1 WO 2016174725 A1 WO2016174725 A1 WO 2016174725A1 JP 2015062767 W JP2015062767 W JP 2015062767W WO 2016174725 A1 WO2016174725 A1 WO 2016174725A1
Authority
WO
WIPO (PCT)
Prior art keywords
neural network
nodes
data
layer
computer
Prior art date
Application number
PCT/JP2015/062767
Other languages
French (fr)
Japanese (ja)
Inventor
純一 宮越
泰幸 工藤
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2015/062767 priority Critical patent/WO2016174725A1/en
Priority to JP2017515312A priority patent/JP6205526B2/en
Publication of WO2016174725A1 publication Critical patent/WO2016174725A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N99/00Subject matter not provided for in other groups of this subclass

Definitions

  • the present invention relates to a computer and a calculation method for executing processing of an optimization problem using a neural network.
  • Processed data consists of environmental sensing data such as temperature and humidity, log data of machines such as automobiles, and log data of humans or organizations such as mail and SNS.
  • the process using data is an optimization process for searching for an optimum state of elements (people, things, information, etc.) constituting the society.
  • the optimization process is a problem for obtaining a combination of input data that minimizes or maximizes a value (evaluation value) of a predefined evaluation function.
  • a value (evaluation value) of a predefined evaluation function In general, in order to search for a combination of input data having a minimum or maximum evaluation value from among all combinations of input data, a huge amount of calculation is required. This calculation amount is obtained by multiplying the number of searches by the calculation amount of the evaluation function. Therefore, in order to reduce the amount of calculation, a calculation method for obtaining an approximate solution and reducing the number of searches is widely used.
  • the evaluation function is a composite function such as the total number of shelves, whether all shelves can be reached by a passage, or the degree of congestion. Therefore, an enormous amount of calculation is required to calculate this evaluation function.
  • Patent Document 1 proposes a method of learning an image filter operation and FFT using a neural network and obtaining an approximate solution with low power. Also, referring to Patent Document 2, the image recognition processing by the convolutional neural network (CNN) is accelerated.
  • CNN convolutional neural network
  • the neural network used in the above-described two conventional techniques has a problem that it is difficult to learn a complicated evaluation function.
  • the complex evaluation function deals with a problem such as a path problem that has a complicated interrelationship between elements of input data.
  • the input data is a vector
  • the input data is an image (matrix). For this reason, complex interrelationships cannot be reflected in the structure of the neural network.
  • each element in a specified window is connected to the synapse (feature map) of the first layer of the neural network for the input.
  • the size of the window is 3 ⁇ 3, 5 ⁇ 5, etc., as in the filter operation of an image, and the mutual relationship between the elements of the input data is uniform (for example, the image has a lattice shape, Any pixel can be applied to the upper, lower, left and right pixels).
  • this is not applicable when the interrelationship between the elements of the input data is not uniform. For example, in a scale free graph such as SNS, most elements have a correlation with a small number of elements, but a limited element (called a hub) has a correlation with a large number of elements.
  • the present invention is to provide a technique capable of speeding up the processing of an optimization problem with a complicated evaluation function.
  • a typical example of the invention disclosed in the present application is as follows. That is, a computer that includes a processor and a memory connected to the processor and that performs arithmetic processing using a neural network including a plurality of layers including one or more neurons, and is included in one layer
  • a connection is configured between one neuron and at least one neuron included in another layer, and the value input to one neuron included in the one layer is connected by the connection together with the weight.
  • Output to at least one neuron included in the other layer, and the computer is input to a neural network and graph data including a plurality of nodes and one or more edges connecting the plurality of nodes.
  • a construction section for constructing a neural network and a learning processing section for executing a learning process for determining the weights of a plurality of connections in the neural network by inputting the sample data to the neural network
  • the construction unit generates one or more neurons of each of the plurality of layers based on the plurality of nodes included in the graph data, and based on the one or more edges included in the graph data
  • the neural network is constructed by generating the connection between the one or more neurons included in each of the plurality of layers, and information on the constructed neural network is stored in the storage unit. To do.
  • FIG. 3 is an explanatory diagram illustrating an example of a configuration of a computer system according to the first embodiment.
  • 3 is an explanatory diagram illustrating an example of a neural network according to Embodiment 1.
  • FIG. FIG. 6 is an explanatory diagram illustrating an example of graph data according to the first embodiment.
  • FIG. 6 is an explanatory diagram illustrating an example of graph data according to the first embodiment. It is explanatory drawing which shows another example of the graph data of Example 1.
  • FIG. 3 is an explanatory diagram illustrating an example of a neural network constructed by the computer according to the first embodiment. 4 is a flowchart for explaining identification processing executed by the computer according to the first embodiment. It is explanatory drawing which shows the conversion from the input data x of Example 2 to graph data. 10 is a flowchart for explaining optimization problem processing executed by the computer according to the second embodiment; It is explanatory drawing which shows an example of cell expression and graphing of the shelf arrangement
  • 10 is an explanatory diagram illustrating an example of an edge label allocation method in a shelf arrangement layout candidate graph according to a third embodiment. It is explanatory drawing which shows an example of the graph data of the shelf arrangement layout candidate of Example 3.
  • 10 is a flowchart for explaining processing of an optimal layout problem executed by a computer according to a third embodiment. It is a flowchart explaining the process of the optimization problem based on the approximation algorithm which the conventional computer performs. It is a flowchart explaining the process of the optimal layout problem which the conventional computer performs.
  • Example 1 a method for constructing a neural network using graph data as an input will be described.
  • FIG. 1 is an explanatory diagram illustrating an example of a configuration of a computer system according to the first embodiment.
  • the computer system 100 includes a plurality of computers 101 and a storage system 102, and the plurality of computers 101 and the storage system 102 are connected via a network 103.
  • the computer system 100 of this embodiment includes three computers 101-1, 101-2, and 101-3. Note that the number of computers 101 may be smaller than three or larger than three.
  • the network 103 may be WAN (Wide Area Network), LAN (Local Area Network), SAN (Storage Area Network), and the like. Note that the present embodiment is not limited to the type of the network 103.
  • the network connecting each of the plurality of computers 101 and the network connecting each of the plurality of computers 101 and the storage system 102 may be different networks.
  • the computer 101 executes neural network construction processing, arithmetic processing using the neural network, and the like.
  • the computer 101 includes a processor 110, a memory 111, and a communication interface 112, and each component is connected to each other via a bus 114.
  • the processor 110 includes one or more CPUs 115 that execute arithmetic processing.
  • the CPU 115 implements the functions of the computer 101 by executing a program stored in the memory 111.
  • processing executed on the computer 101 is executed by one or more CPUs 115.
  • One CPU 115 may execute a plurality of processes.
  • the CPU 115 may be an arithmetic unit such as an FPGA and a GPU.
  • the memory 111 stores a program executed by the CPU 115 (processor 110) and information used by the program.
  • the memory 111 includes a memory space allocated to one process executed by the CPU 115. Note that the memory space may be secured on the memory areas of the plurality of memories 111, or may be secured on the memory area of one memory 111.
  • the memory 111 may include a memory space for a plurality of processes. The program and information stored in the memory 111 will be described later.
  • the communication interface 112 communicates with an external device via the network 103.
  • the processor 110 accesses another computer 101 or the storage system 102 via the communication interface 112.
  • the storage system 102 stores various data used by the computer 101.
  • the storage system 102 includes a processor 130, a memory 131, a communication interface 132, a disk interface 133, and a plurality of HDDs (Hard Disk Drives) 134, and each component is connected to each other via a bus 135.
  • the processor 130, the memory 131, and the communication interface 132 are the same as the processor 110, the memory 111, and the communication interface 112.
  • the disk interface 133 is an interface for connecting to a plurality of HDDs 134.
  • the HDD 134 is a storage device that stores various data.
  • the memory 111 stores a program for realizing the data processing unit 120.
  • the CPU 115 that executes the data processing unit 120 executes a learning process and an identification process.
  • the CPU 115 constructs a neural network and determines connection (edge) weights between neurons in the constructed neural network.
  • the identification process the CPU 115 performs predetermined identification by inputting data to be identified into the constructed neural network.
  • the data processing unit 120 may be composed of a plurality of program modules.
  • the data processing unit 120 may include a construction unit that builds a neural network, a learning processing unit that executes learning processing, and an identification processing unit that executes identification processing.
  • the structure with which each computer module is provided in a different computer 101 may be sufficient.
  • FIG. 2 is an explanatory diagram illustrating an example of the neural network according to the first embodiment.
  • the neural network 200 shown in FIG. 2 includes three layers: an input layer 201, an intermediate layer 202, and an output layer 203. Each layer is composed of one or more neurons 211. The neuron 211 in each layer is connected to at least one neuron 211 in another layer. Specifically, the neuron 211 in the input layer 201 is connected to at least one neuron 211 in the intermediate layer 202, and the neuron 211 in the intermediate layer 202 is connected to at least one neuron 211 in the output layer 203. In the following description, an edge connecting between the neurons 211 is also referred to as a connection 212. Connection 212 represents the output of data between neurons 211.
  • a value input to each neuron 211 is output to a neuron 211 in another layer connected by the connection 212 together with an arbitrary weight.
  • the weight represents the strength of connection between the neurons 211, and is determined by a learning process described later. The above is the description of the neural network. Returning to the description of FIG.
  • the memory 111 stores graph data 121, sample data 122, and a weight table 123.
  • the graph data 121 is data defining a graph structure composed of nodes corresponding to arbitrary elements and edges connecting the nodes. Details of the graph data 121 will be described later with reference to FIG.
  • the sample data 122 is data used in learning processing using a neural network.
  • the weight table 123 is information for managing weights that are processing results of the neural network learning process. Details of the weight table 123 will be described later with reference to FIG.
  • the graph data 121 and the sample data 122 are information stored in the storage system 102.
  • the CPU 115 acquires the graph data 121 and the sample data 122 from the storage system 102 and loads the acquired graph data 121 and the sample data 122 into the memory 111.
  • FIG. 3 is an explanatory diagram illustrating an example of the graph data 121 according to the first embodiment.
  • the graph data 121 includes an edge ID 301, a node ID 302, a label 303, and an edge attribute 304.
  • Edge ID 301 is edge identification information.
  • the node ID 302 is identification information of a node connected via an edge corresponding to the edge ID 301.
  • the direction of the edge is managed by an edge attribute 304 described later.
  • the label 303 is an edge label given by classifying edges based on length, direction, and the like.
  • the edge attribute 304 is edge attribute information.
  • edge length, edge direction, and the like are managed as edge attribute information.
  • FIG. 4 is an explanatory diagram illustrating an example of the graph of the first embodiment.
  • the graph shown in FIG. 4 is a graph corresponding to the graph data 121 shown in FIG.
  • the graph shown in FIG. 4 includes three nodes I0, I1, and I2, and includes five edges E0, E1, E2, E3, and E4.
  • the edge E0 and the edge E2 have the edge length “1” and the same direction “south”.
  • the edge E1 and the edge E3 have an edge length of “1” and an orientation of “north”.
  • the edge 4 has an edge length of “2” and a direction of “north”. Therefore, the same label “0” is given to the edge E0 and the edge E2, and the same label “1” is also given to the edge E1 and the edge E3.
  • the label “2” is given to the edge 4.
  • the number of labels to be given is more than the combination of edge length and orientation set.
  • the labels are also 0, 1, 2, and so on. Are prepared, and combinations and labels are associated with each other.
  • graph data 121 may be managed separately for data for managing the node structure and data for managing the edge structure.
  • FIG. 5 is an explanatory diagram showing another example of the graph data 121 of the first embodiment.
  • the graph data 121 shown in FIG. 5 includes edge structure information 500 and node structure information 510.
  • the edge ID 501, node ID 502, label 503, and edge attribute 504 of the edge structure information 500 are the same as the edge ID 301, node ID 302, label 303, and edge attribute 304.
  • the node structure information 510 includes a node ID 511, an edge ID (outflow) 512, an edge ID (inflow) 513, and a node attribute 514.
  • the node ID 511 is the same as the node ID 302.
  • the edge ID (outflow) 512 is identification information of an edge flowing out from the node corresponding to the node ID 511. That is, the node is a node that is the start point of the edge corresponding to the edge ID (outflow) 512.
  • the edge ID (inflow) 513 is identification information of an edge flowing into the node corresponding to the node ID 511. That is, the node is a node that is an end point of the edge corresponding to the edge ID (inflow) 513.
  • the node attribute 514 is node attribute information.
  • the node type and the like are managed as edge attribute information.
  • the node type indicates a shelf or a passage.
  • FIG. 6 is an explanatory diagram illustrating an example of the weight table 123 according to the first embodiment.
  • the weight table 123 includes a label 601, a weight label 602, and edge information 603.
  • the label 601 is the same as the label 303.
  • the weight label 602 is a label given by classifying the edge weights in the neural network.
  • the weight label 602 corresponds to the label 601. That is, the label 601 is an edge label in the graph data, and the weight label 602 is an edge label in the neural network.
  • Edge information 603 is identification information of connections in the neural network to which the same weight label 602 is assigned.
  • the connection is also described as a map edge.
  • a map edge composed of edges having the same correlation (topology) between nodes, that is, the same length, direction, etc., is subjected to the same correction when the weight is corrected in the learning process.
  • the computer 101 holds the weight table 123 that abstracts and manages the topology between nodes, thereby realizing high-speed learning processing and identification processing.
  • graph data For example, as graph data, consider data indicating a road network in which nodes represent intersections and edges represent connections between intersections. The correlation between the elements of the graph data is that there is a second intersection at a north distance 1 of the first intersection, the first intersection and the second intersection are connected by the first edge, and the third intersection It is assumed that there is a fourth intersection at a distance 1 in the north direction, and the third intersection and the fourth intersection are connected by the second edge.
  • edges with the same label also share the neural network weight label.
  • edges connect between different nodes, if the topology between the nodes is the same, each edge can be handled without distinction. That is, the topology between nodes is abstracted.
  • FIG. 7 is a flowchart illustrating the learning process executed by the computer 101 according to the first embodiment.
  • the computer 101 When the computer 101 receives an instruction to start processing, the computer 101 starts processing described below.
  • the CPU 115 acquires the graph data 121 from the storage system 102 and stores it in the memory 111 (step S701).
  • the CPU 115 executes a neural network construction process using the acquired graph data 121 (step S702). Details of the construction process of the neural network will be described later with reference to FIG.
  • the CPU 115 acquires the sample data 122 from the storage system 102 and stores it in the memory 111 (step S703).
  • the CPU 115 starts a loop process of error back propagation processing (step S704).
  • the CPU 115 repeatedly executes the processes from step S704 to step S708.
  • the loop process Ends.
  • the CPU 115 starts a loop process for sample data (step S705).
  • the processing inside the loop is executed for each piece of sample data for the plurality of sample data acquired in step S703.
  • the CPU 115 executes error back propagation processing for one sample data (step S706).
  • the CPU 115 receives a certain sample data, compares the output result of the neural network with respect to the input and the teacher data corresponding to the sample data, and reduces the error between the two data.
  • the weights from the layer close to the output layer (intermediate layer) to the input layer are updated in order. That is, the weight of the input data is updated in the direction opposite to the output direction.
  • the CPU 115 executes the above-described processing for each of the plurality of sample data 122.
  • the error back-propagation process in step S706 the update of the weight for arbitrary sample data is performed only once.
  • the error back propagation process is executed a plurality of times in order to minimize the error. Specifically, the CPU 115 repeatedly performs error back propagation processing on each of the plurality of sample data 122 until a predetermined condition is satisfied.
  • the loop process of the error back propagation process is performed for convergence of the total error of a plurality of sample data by the error back propagation method.
  • the weights of the plurality of sample data 122 are updated.
  • the CPU 115 determines whether or not error back-propagation processing has been executed for all sample data (step S707).
  • the CPU 115 If it is determined that the error back-propagation process has not been performed on all sample data, the CPU 115 returns to step S705 and executes the same process.
  • the CPU 115 determines whether or not a predetermined condition is satisfied (step S708).
  • the CPU 115 If it is determined that the predetermined condition is not satisfied, the CPU 115 returns to step S704 and executes the same processing.
  • the CPU 115 stores the learning result in the memory 111 (step S709). Thereafter, the CPU 115 ends the process. Note that the learning result may be stored in the storage system 102.
  • the learning result includes information such as information indicating the configuration of the constructed neural network and information in which the edge label is associated with the calculated weight.
  • FIG. 8 is a flowchart illustrating a neural network construction process executed by the computer 101 according to the first embodiment.
  • 9A and 9B are explanatory diagrams illustrating a flow of construction of a feature map graph according to the first embodiment.
  • FIG. 10 is an explanatory diagram illustrating an example of a neural network constructed by the computer 101 according to the first embodiment.
  • definition information including graph data 121, parameters related to the structure of the neural network, the number of dimensions of the output layer (number of nodes), and the like are input.
  • the parameters relating to the structure of the neural network include the number of layers of the neural network, the number of feature map graphs included in one intermediate layer, and the like.
  • the feature map graph shows a group of neurons constituting one intermediate layer. That is, the intermediate layer includes one or more feature map graphs. As will be described later, the feature map graph includes a plurality of map nodes. Map nodes correspond to neurons.
  • CPU 115 sets an input layer and an output layer of the neural network (step S801).
  • the CPU 115 sets a node group of the graph data 121 as an input layer. That is, one node of the graph data 121 is set as one neuron in the input layer. Further, the CPU 115 sets an output layer including the same number of nodes as the number of dimensions of the output layer.
  • the CPU 115 starts loop processing for constructing a feature map graph using the graph data 121 (step S802).
  • the loop processing for constructing the feature map graph is repeatedly executed for the number of stages of the designated neural network.
  • the CPU 115 generates a map node (neuron) of the feature map graph (step S803).
  • the feature map graph indicates the feature corresponding to the weight table for each map node included in the previous layer of the intermediate layer including the feature map graph.
  • the feature map graph is a graph showing the characteristics of the three-way road.
  • a plurality of such feature map graphs are generated in one layer, and a complex topology can be expressed by configuring a neural network using layers including a plurality of feature map graphs. That is, a complicated evaluation function such as a nonlinear evaluation function can be expressed.
  • step S803 specifically, the CPU 115 assigns identification information of the feature map graph, and generates the same number of map nodes as the number of nodes included in the graph data 121 as shown in FIG. 9A. That is, intermediate layer neurons are generated. At this time, the nodes of the graph data 121 and the map nodes of the feature map graph are associated one-to-one.
  • map node F0 corresponds to node I0
  • map node F1 corresponds to node I1
  • map node F2 corresponds to node I2.
  • the CPU 115 When it is necessary to set a plurality of feature map graphs in one layer, the CPU 115 generates a map node of the feature map graph according to the same procedure as described above.
  • the CPU 115 generates a map edge connecting the node of the graph data 121 and the map node of the feature map graph based on the graph data 121 (step S804).
  • the CPU 115 generates an edge connecting the nodes of the graph data 121 as a map edge connecting the node of the graph data 121 and the node of the feature map graph. That is, a connection that connects the neurons in the input layer and the neurons in the intermediate layer is generated.
  • the CPU 115 first selects a target map node from among a plurality of map nodes included in the graph data 900 corresponding to the input layer. Based on the graph data 900, the CPU 115 identifies a node connected to the node corresponding to the target map node via an edge. The CPU 115 generates a map edge between the map node corresponding to the identified node included in the feature map graph and the target map node.
  • a map edge is generated based on the same procedure. That is, the CPU 115 selects a target map node from a plurality of map nodes included in the input side intermediate layer. Based on the graph data 900, the CPU 115 identifies a node connected to the node corresponding to the target map node via an edge. The CPU 115 generates a map edge between a map node corresponding to the identified node included in the output-side feature map graph and the target map node.
  • the edge E0 of the graph data 121 is an edge from the node I0 to the node I1
  • an edge is generated from the node I0 to the node F1 corresponding to the node I1, and temporarily stored in the memory 111 as the map edge FM0_E0.
  • the edge E1 of the graph data 121 is an edge from the node I1 to the node I0
  • an edge is generated from the node I1 to the node F0 corresponding to the node I0, and temporarily stored in the memory 111 as the map edge FM0_E1.
  • Similar processing is executed for other map edges.
  • the map edge as shown in FIG. 9B is generated by the processing described above.
  • the CPU 115 generates a weight table 123 for the weight of the map edge connecting the graph data and the feature map graph (step S805). Specifically, the following processing is executed.
  • the CPU 115 generates an empty weight table 123.
  • the CPU 115 refers to the label 303 of the graph data 121 and creates as many entries in the weight table 123 as the number of label types.
  • the CPU 115 sets the value of the label 303 to the label 601 of each generated entry. Further, the CPU 115 generates a weight label associated with each label according to a predetermined standard, and sets the generated weight label in the weight label 602.
  • the CPU 115 acquires the edge ID 301 of the edge having the same value of the label 303, specifies the map edge corresponding to the acquired edge ID 301, and sets the specified map edge identification information in the edge information 603.
  • the above is the description of the process in step S805.
  • CPU 115 determines whether or not the number of layers of the designated neural network has been generated (step S806).
  • the CPU 115 When it is determined that the number of layers of the designated neural network is not generated, the CPU 115 returns to step S802 and repeatedly executes the same processing.
  • the CPU 115 When it is determined that the number of layers of the designated neural network is generated, the CPU 115 generates a connection between the output layer and the intermediate layer immediately before the output layer (step S807). Thereafter, the CPU 115 ends the neural network construction process.
  • the CPU 115 connects a map node and all the neurons included in the output layer to each map node included in the feature map graph of the intermediate layer immediately before the output layer. Create an edge. That is, each neuron included in the output layer and each map node (neuron) included in the feature map graph of the intermediate layer immediately before the output layer are connected in a complete bipartite graph.
  • the neural network as shown in FIG. 10 is constructed by the above processing.
  • the neural network in FIG. 10 includes graph data 900 that is an input layer, three intermediate layers, and an output layer 920. Each intermediate layer is composed of a two-stage feature map graph 910.
  • a weight table 123-1 is provided from the nodes included in the graph data 900 to the feature map graph 910-2 for the edges connecting the nodes included in the graph data 900 and the nodes included in the feature map graph 910-1.
  • a weight table 123-2 is generated for edges to included nodes.
  • the feature map graph 910-3 has a weight table 123-3
  • the feature map graph 910-4 has a weight table 123-4
  • the feature map graph 910-5 has a weight table 123-5
  • the feature map graph 910-6 has generated.
  • Information on the constructed neural network is stored in the memory 111 in the form of input layer node and edge information, number of feature map graphs of each layer, weight table of each feature map graph, and output layer weight table. .
  • Information about the constructed neural network may be stored in the storage system 102.
  • FIG. 11 is a flowchart illustrating the identification processing executed by the computer 101 according to the first embodiment.
  • the computer 101 starts the processing described below when receiving an instruction to start processing or when data to be identified is input.
  • the CPU 115 acquires the graph data 121 from the storage system 102 and stores it in the memory 111 (step S1101).
  • the topology of the graph data 121 acquired during the learning process and the topology of the graph data 121 acquired during the identification process may be different.
  • the CPU 115 executes a neural network reconstruction process using the acquired graph data 121 (step S1102).
  • the same processing as in FIG. 8 is executed using the acquired graph data 121.
  • the processing in step S805 is partially different.
  • the CPU 115 acquires the weight label generated in the learning process from the memory 111 without generating the weight label again, and generates the weight table 123 using the acquired weight label. Further, since the weight corresponding to the weight label is calculated in the learning process, a weight is given to each edge of the neural network based on the calculated value.
  • the weight label is assigned based on the attribute of the edge connecting the nodes. Therefore, even if the graph data 121 is different, the same weight label is assigned to the edge having the same attribute. Therefore, processing using the learning result is executed.
  • the CPU 115 acquires the target data from the storage system 102 or the like and stores it in the memory 111 (step S1103).
  • the CPU 115 performs signal propagation using a neural network (step S1104), and stores an output result (output vector) in the memory 111 (step S1105). Note that the output result may be stored in the storage system 102.
  • the complex interrelation can be reflected in the structure of the neural network. That is, it becomes possible to learn a complicated evaluation function.
  • the speeding up of the optimization problem processing using the neural network described in the first embodiment will be described.
  • the second embodiment will be described focusing on differences from the first embodiment.
  • the configuration of the computer system 100 according to the second embodiment is the same as that of the computer system 100 according to the first embodiment, the description thereof is omitted.
  • the configurations of the computer 101 and the storage system 102 according to the second embodiment are the same as those of the computer 101 and the storage system 102 according to the first embodiment, and thus description thereof is omitted.
  • the value of the evaluation function that is, the input data x1 to The problem is to determine the value or state of xn.
  • an approximation algorithm is used to reduce the calculation amount.
  • the approximation algorithm include a Monte Carlo method, a particle method, a genetic algorithm, and simulated annealing.
  • the approximation algorithm as described above reduces the amount of calculation related to the optimization problem by reducing the combination of the input data x1 to xn.
  • FIG. 18 is a flowchart for explaining processing of an optimization problem based on an approximation algorithm executed by a conventional computer.
  • an optimization problem is considered in which a vector x composed of n components xi is input data and the evaluation function f (x1,..., Xn) is minimized.
  • the subscript i is an integer from 1 to n.
  • step S1801 After the computer initializes the input data x (step S1801), the computer proceeds to step S1802.
  • the calculator calculates an evaluation function using the value of the input data x (step S1802). Specifically, the calculator calculates an evaluation value by substituting the initial value of each component xi into the evaluation function after determining the initial value of each component xi of the input data.
  • step S1803 the computer determines whether or not the calculated evaluation value is smaller than the current minimum value. If the evaluation value is calculated using the initial value of the input data x, there is no minimum value at this point. Therefore, the computer proceeds to step S1807 without executing the determination process in step S1803.
  • the calculator determines a combination (search point) of the values of each component xi (step S1807). Thereafter, the computer returns to step S1802 and executes the same processing. Note that the search point determination method varies depending on the approximation algorithm used.
  • the calculator updates the calculated evaluation value as the minimum value (step S1804).
  • the computer determines whether or not the current minimum value is smaller than the threshold value (step S1805).
  • the computer determines a combination (search point) of the values of each component xi (step S1807). When it is determined that the current minimum value is smaller than the threshold value, the computer outputs a combination of values of each component xi that minimizes the evaluation value (step S1806), and ends the process.
  • the conventional approximation algorithm reduces the number of searches.
  • the amount of calculation of the evaluation function for each search point increases, which becomes a problem of speeding up the processing of the optimization problem.
  • Example 2 shows an example in which the calculation processing of the evaluation function is accelerated using a neural network.
  • the computer 101 converts the input data x into graph data, and executes the learning process of the first embodiment using the graph data as an input.
  • a method for converting the input data x into graph data will be described.
  • FIG. 12 is an explanatory diagram showing conversion from input data x to graph data in the second embodiment.
  • the input data x is a three-dimensional vector.
  • the components of the input data x are x0, x1, and x2.
  • the computer 101 defines each component x0, x1, and x2 of the input data 1100 as a node.
  • the computer 101 generates an edge connecting nodes based on the characteristics of the vector x in the three-dimensional space. For example, a method of generating an edge when the average value of the vector x is smaller than a threshold value, or an edge when a distance from a reference point in a three-dimensional space (for example, Euclidean distance or Manhattan distance) is smaller than the threshold value.
  • a generation method is conceivable.
  • a method for determining an edge label in the learning process for example, when a method of generating an edge based on a distance is used, it can be determined based on a positional relationship between a reference point and each coordinate.
  • the process is executed using the evaluation value corresponding to the vector x converted into the graph data as the teacher data.
  • the teacher data is “0” when the evaluation value is less than or equal to the threshold value, and the teacher data is “1” when the evaluation value is greater than the threshold value.
  • Shall By defining in this way, when the evaluation value is smaller than the threshold value, the neural network is constructed so that the output becomes “0”.
  • FIG. 13 is a flowchart for explaining the optimization problem processing executed by the computer 101 according to the second embodiment.
  • the same steps as those of the conventional optimization problem processing are denoted by the same reference numerals, and the description of the processing is omitted.
  • the computer 101 initializes the input data x (step S1801), and then calculates an evaluation value using a neural network (step S1301).
  • the computer 101 executes the arithmetic processing using the neural network by inputting the value of each component of the input data to the node of the input layer in the neural network corresponding to the component xi.
  • the evaluation value calculation process using the neural network can be performed at high speed because the calculation amount is smaller than that of a general evaluation function calculation process.
  • the output when the evaluation value calculated using the neural network is smaller than the threshold value, the output is “0”.
  • the computer 101 determines whether or not the evaluation value calculated using the neural network is “0” (step S1302).
  • step S1807 If it is determined that the evaluation value calculated using the neural network is not “0”, the computer 101 proceeds to step S1807.
  • the computer 101 calculates an evaluation function using the value of the input data x (step S1802).
  • the calculation processing of the neural network which is a combination of the product-sum calculation processing, requires less calculation amount than the calculation processing using a complicated evaluation function.
  • the accuracy of the evaluation value calculated using the neural network is lower than that using the evaluation function.
  • the processing of the optimization problem is speeded up by using the evaluation value calculation processing using the neural network as a kind of filter. That is, by calculating the evaluation function only when the evaluation value is “0”, the number of executions of the arithmetic processing using the evaluation function can be reduced.
  • the arithmetic processing using the neural network is handled as the search processing for the optimum solution with a coarse granularity.
  • different algorithms need to be constructed in search processing for optimal solutions with different granularities.
  • the data processing unit 120 has a function (graph data generation unit) that analyzes input data and generates graph data based on the analysis result.
  • the analysis result includes the arrangement of a plurality of nodes, the distance between edges connecting the nodes, and the like.
  • FIG. 19 is a flowchart for explaining the optimal layout problem processing executed by a conventional computer.
  • the computer receives an initial layout 1920 (step S1901).
  • the initial layout 1920 includes information such as the shape of the target warehouse and the restricted entry area 1921 in the warehouse.
  • the computer sets the entrance / exit of the warehouse which is the initial layout 1920 (step S1902). Specifically, the computer sets a predetermined number of gateways 1922 at predetermined positions in the initial layout 1920. In addition, the number and position of an entrance / exit shall be given previously.
  • the layout in which the entrance / exit is set becomes a layout 1930 as shown in FIG.
  • the computer generates a plurality of shelf arrangement layout candidates 1940 by setting a predetermined number of shelves 1923 at predetermined positions in the warehouse corresponding to the layout 1930 (step S1903).
  • the computer receives the layout 1930 and outputs a plurality of shelf arrangement layout candidates 1940 having different numbers of shelves and different arrangements of shelves.
  • a plurality of shelf arrangement layout candidates 1940 having different numbers of shelves and different arrangements of shelves.
  • an optimization method such as simulated annealing is used.
  • N shelf arrangement layout candidates having different shelf arrangements are output.
  • an evaluation function for optimizing the shelf arrangement for example, the number of shelves and the shape of the arrangement can be considered.
  • the computer starts a loop process for the shelf arrangement layout candidate 1940 (step S1904). Specifically, the computer selects a target shelf arrangement layout candidate 1940 from among a plurality of shelf arrangement layout candidates 1940.
  • the computer executes a path optimization process for the selected shelf arrangement layout candidate 1940 (step S1905).
  • the optimization process of the passage and the passage direction is executed on the target shelf arrangement layout candidate 1940.
  • the computer calculates a passage layout layout candidate 1950 as a result of the optimization process.
  • An arrow 1924 of the path layout layout candidate 1950 indicates the path and the direction of the path.
  • One passage arrangement layout candidate 1950 is output for one shelf arrangement layout candidate 1940.
  • the passage and passage direction indicate, for example, a passage such as a shelf or a cart on which a load is placed and the traveling direction thereof.
  • the evaluation function of the optimization process in the passage and the passage direction the entrance / exit and the path length of each shelf can be considered. Further, it is assumed that the layout having the smallest evaluation value is output as the path layout layout candidate 1950.
  • the computer determines whether or not the passage optimization processing has been completed for all shelf arrangement layout candidates 1940 (step S1906).
  • the computer selects a new shelf arrangement layout candidate 1940 and executes the same process.
  • the computer selects the optimal layout 1960 from the N path layout layout candidates 1950 (step S1907).
  • the computer selects the optimum layout 1960 from the passage arrangement layout candidates 1950 based on the value of the evaluation function of the shelf arrangement optimization, that is, the evaluation value, and processes the selected optimum layout 1960. Output as a result.
  • the path optimization process for one shelf arrangement layout candidate 1940 corresponds to an evaluation function calculation process. Therefore, in this embodiment, the processing speed is increased by applying arithmetic processing using a neural network to the path optimization processing.
  • one shelf arrangement layout candidate 1940 is input to the computer, and the computer outputs one passage arrangement layout candidate 1950 as an output.
  • the computer 101 first converts the input shelf arrangement layout candidate 1940 into graph data in order to realize the optimization processing shown in the first and second embodiments.
  • a method of converting the shelf arrangement layout candidate 1940 into graph data will be described with reference to FIGS.
  • FIG. 14 is an explanatory diagram illustrating an example of cell representation and graphing of the shelf arrangement layout candidate 1940 according to the third embodiment.
  • FIG. 15 is an explanatory diagram illustrating an example of an edge label assignment method in the graph of the shelf arrangement layout candidate 1940 according to the third embodiment.
  • FIG. 16 is an explanatory diagram illustrating an example of the graph data of the shelf arrangement layout candidate 1940 according to the third embodiment.
  • the computer 101 divides the shelf arrangement layout candidate 1940 into cells as shown in FIG. Further, the computer 101 sets values corresponding to the restricted entry area 1921, the entrance 1922, the shelf 1923, and the passage 1924 in each cell.
  • the computer 101 sets values corresponding to the restricted entry area 1921, the entrance 1922, the shelf 1923, and the passage 1924 in each cell.
  • “ ⁇ 1” is set in the restricted entry area 1921
  • “0.5” is set in the entrance 1922
  • 0” is set in the shelf 1923
  • “1” is set in the passage 1924.
  • shelf arrangement layout candidate 1940 can be expressed as a set of cells as shown in FIG.
  • the computer 101 graphs the set of cells.
  • graphing of a set of cells focusing on the cell 1410-1 and the cell 1410-2 will be described.
  • the computer 101 generates a node corresponding to each cell such as the cell 1410-1 and the cell 1410-2.
  • the computer 101 generates an edge between the node 1440-1 corresponding to the cell 1410-1 and another node, and also generates an edge between the node 1411-1 corresponding to the cell 1410-2 and the other node. Is generated.
  • an edge is generated between two cells in the vertical direction from the cell 1410-1 and the cell 1410-1, and two cells in the horizontal direction of the cell 1410-1 and the cell 1410-1 are generated.
  • An edge is generated between -1.
  • an edge is generated between two cells in the upward direction from the cell 1410-2 and the cell 1410-2, and two cells in the left-right direction of the cell 1410-2
  • An edge is generated with the cell 1410-2. For example, an edge is generated between the node 1440-1 and the node 1440-2, and an edge is generated between the node 1440-1 and the node 1440-3.
  • the set of cells focused on the cell 1410-1 is converted into a graph as shown in the graph 1 (1430-1), and the set of cells focused on the cell 1410-2 is converted to the graph 2 ( 1430-2).
  • the edge connecting the nodes can be freely set to a specific shape such as a square or a rhombus, and a size.
  • the prohibition rule that no edge is generated between cells having a value of “ ⁇ 1” is applied.
  • a pre-defined label table 1600 is used for assigning labels to edges.
  • numbers (labels) “1” to “8” are assigned according to the direction and distance of the cell that is the end point of the edge from the cell that is the start point of the edge.
  • the computer 101 assigns labels to the edges based on the direction and distance between the cell of interest and other cells.
  • the edge 1510-1 is an edge that is connected to the node 1440-2 that is “distance 1” “upward” from the node 1440-1, so The label “1” is assigned to 1510-1. Further, since the edge 1510-2 is an edge that is connected to the node 1440-2 that is “distance 2” “upward” from the node 1440-1, the computer 101 assigns the label “5” to the edge 1510-2. . On the other hand, different labels are assigned to the edges 1510-3 and 1510-4 whose directions are opposite to those of the edges 1510-3 and 1510-4.
  • the computer 101 assigns the label “2” to the edge 1510-3.
  • the computer 101 assigns the label “6” to the edge 1510-4. .
  • the computer 101 executes the above-described processing for all edges.
  • the shelf arrangement layout candidate 1940 is converted into graph data as shown in FIG. In FIG. 16, in order to avoid the complexity of the figure, the labels “5”, “6”, “7”, and “8” assigned to the edge of “distance 2” are connected by the edge and the edge. No nodes are omitted.
  • the computer 101 executes a neural network construction process using a plurality of graph data of each of the plurality of shelf arrangement layout candidates 1940 as input data. Note that the neural network construction process is the same as that of the first embodiment, and a description thereof will be omitted.
  • FIG. 17 is a flowchart for explaining the optimum layout problem processing executed by the computer 101 according to the third embodiment.
  • the same steps as those of the conventional optimization problem processing are denoted by the same reference numerals, and the description of the processing is omitted.
  • the computer 101 receives the shelf arrangement layout candidate 1940 selected in step S1904 and calculates an evaluation value using a neural network (step S1701).
  • step S1701 the same processing as step S1301 of the second embodiment is executed.
  • the evaluation function is different. In this embodiment, when the evaluation value calculated using the neural network is smaller than the threshold value, the output is “0”.
  • the computer 101 determines whether or not the evaluation value calculated using the neural network is “0” (step S1702).
  • step S1906 If it is determined that the evaluation value calculated using the neural network is not “0”, the computer 101 proceeds to step S1906.
  • step S1905 When it is determined that the evaluation value calculated using the neural network is “0”, the computer 101 executes a path optimization process (step S1905).
  • step S1903 “923” shelf layout layout candidates 1940 are determined. Of the “923” shelf layout layout candidates 1940, “200” shelf layout layout candidates 1940 are input to the computer 101 as sample data for the learning process. The remaining “723” shelf layout layout candidates 1940 are handled as unknown data.
  • the learning accuracy for “200” sample data is 100%, and the learning accuracy for all data including unknown data is 97%.
  • the processing of the present embodiment outputs the same optimal layout 1960 as the conventional optimization problem processing. Therefore, the calculation result has the same accuracy as the conventional one.
  • the number of data on which the passage optimization process has been executed is about 3% of the “923” shelf layout layout candidates 1940, which can realize a speed increase of 5 times that of the conventional process.
  • this invention is not limited to the above-mentioned Example, Various modifications are included. Further, for example, the above-described embodiments are described in detail for easy understanding of the present invention, and are not necessarily limited to those provided with all the described configurations. Further, a part of the configuration of each embodiment can be added to, deleted from, or replaced with another configuration.
  • each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • the present invention can also be realized by software program codes that implement the functions of the embodiments.
  • a storage medium in which the program code is recorded is provided to the computer, and a CPU included in the computer reads the program code stored in the storage medium.
  • the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code itself and the storage medium storing it constitute the present invention.
  • Examples of storage media for supplying such program codes include flexible disks, CD-ROMs, DVD-ROMs, hard disks, SSDs (Solid State Drives), optical disks, magneto-optical disks, CD-Rs, magnetic tapes, A non-volatile memory card, ROM, or the like is used.
  • program code for realizing the functions described in this embodiment can be implemented by a wide range of programs or script languages such as assembler, C / C ++, Perl, Shell, PHP, Java, and the like.
  • the program code is stored in a storage means such as a hard disk or memory of a computer or a storage medium such as a CD-RW or CD-R.
  • the CPU included in the computer may read and execute the program code stored in the storage unit or the storage medium.
  • control lines and information lines indicate those that are considered necessary for the explanation, and do not necessarily indicate all the control lines and information lines on the product. All the components may be connected to each other.

Abstract

A computer for performing a calculation process using a neural network that is composed of a plurality of layers, each including one or more neurons, said computer being provided with: a storage unit which stores graph data comprising a plurality of nodes and one or more edges interconnecting the plurality of nodes, and also stores sample data including one or more values to be input to a neural network; and a creation unit which creates the neural network using the graph data, wherein the creation unit creates the neural network by first generating one or more neurons for each of a plurality of layers on the basis of the plurality of nodes included in the graph data, and then generating connections between the generated neurons in the plurality of layers on the basis of the one or more edges included in the graph data.

Description

計算機及びニューラルネットワークを用いた演算方法Calculation method using computer and neural network
 本発明は、ニューラルネットワークを用いた最適化問題の処理を実行する計算機及び演算方法に関する。 The present invention relates to a computer and a calculation method for executing processing of an optimization problem using a neural network.
 社会インフラ及び都市等を効率的に設計、運用するため、実社会及びサイバー空間のデータを処理し、社会インフラ等の状態を解析し、若しくは予測し、又は、社会インフラ等を制御し、若しくは誘導する技術が注目されている。 In order to efficiently design and operate social infrastructure and cities, etc., process real-world and cyberspace data, analyze or predict the state of social infrastructure, etc., or control or guide social infrastructure, etc. Technology is drawing attention.
 処理されるデータは、温度及び湿度等の環境のセンシングデータ、自動車等の機械のログデータ、並びにメール及びSNS等の人間又は組織のログデータから構成される。データを用いた処理は、社会を構成する要素(人、モノ、情報等)の最適な状態を探索する最適化処理である。 Processed data consists of environmental sensing data such as temperature and humidity, log data of machines such as automobiles, and log data of humans or organizations such as mail and SNS. The process using data is an optimization process for searching for an optimum state of elements (people, things, information, etc.) constituting the society.
 最適化処理は、予め定義された評価関数の値(評価値)が最小、又は最大となる入力データの組み合わせを求める問題である。一般に、全ての入力データの組み合わせの中から、評価値が最小又は最大となる入力データの組み合わせを探索するためには、莫大な計算量を必要とする。この計算量は、探索数と、評価関数の計算量とを乗算することによって得られる。そこで、計算量を削減するために、近似解を求めて探索数を削減する計算方法が広く利用される。 The optimization process is a problem for obtaining a combination of input data that minimizes or maximizes a value (evaluation value) of a predefined evaluation function. In general, in order to search for a combination of input data having a minimum or maximum evaluation value from among all combinations of input data, a huge amount of calculation is required. This calculation amount is obtained by multiplying the number of searches by the calculation amount of the evaluation function. Therefore, in order to reduce the amount of calculation, a calculation method for obtaining an approximate solution and reducing the number of searches is widely used.
 しかし、評価関数が非常に複雑な問題の場合、前述方法では、十分な処理の高速化が得られない。 However, when the evaluation function is a very complicated problem, the above-described method cannot provide a sufficient speedup of processing.
 例えば、単位時間のピッキング数を最大とする倉庫レイアウトの問題の場合、評価関数は総棚数及び全ての棚が通路で到達できるか、渋滞の度合い等の合成関数となる。そのため、この評価関数の計算に莫大な計算量を必要とする。 For example, in the case of a warehouse layout problem that maximizes the number of pickings per unit time, the evaluation function is a composite function such as the total number of shelves, whether all shelves can be reached by a passage, or the degree of congestion. Therefore, an enormous amount of calculation is required to calculate this evaluation function.
 前述した課題に対して、ニューラルネットワーク(NN)を用いて計算方法を学習し、効率化を図ることによって処理の高速化する方法がある。特許文献1では、ニューラルネットワークを用いて、画像のフィルタ演算やFFTを学習し、近似解であるが低電力で求める方法を提案している。また、特許文献2参照では、コンボリューショナルニューラルネットワーク(CNN)による画像認識処理の高速化を行っている。 In response to the above-mentioned problems, there is a method of speeding up processing by learning a calculation method using a neural network (NN) and improving efficiency. Patent Document 1 proposes a method of learning an image filter operation and FFT using a neural network and obtaining an approximate solution with low power. Also, referring to Patent Document 2, the image recognition processing by the convolutional neural network (CNN) is accelerated.
米国特許第8655815号明細書US Pat. No. 8,655,815 米国特許出願公開第2014/0180989号明細書US Patent Application Publication No. 2014/0180989
 しかし、前述した2つの従来技術において用いられるニューラルネットワークでは、複雑な評価関数を学習することが困難であるという課題がある。複雑な評価関数では、経路問題等、入力データの要素間に複雑な相互関係を持つ問題を扱っているが、特許文献1では入力データがベクトル、特許文献2では入力データが画像(マトリクス)であるため、複雑な相互関係をニューラルネットワークの構造に反映することができない。 However, the neural network used in the above-described two conventional techniques has a problem that it is difficult to learn a complicated evaluation function. The complex evaluation function deals with a problem such as a path problem that has a complicated interrelationship between elements of input data. In Patent Document 1, the input data is a vector, and in Patent Document 2, the input data is an image (matrix). For this reason, complex interrelationships cannot be reflected in the structure of the neural network.
 特許文献1に記載の技術では、入力データがベクトルの場合、ニューラルネットワークの構造はベクトルの各要素とニューラルネットワークの第1層のシナプスは完全二部グラフで接続される。すなわち、入力データのある要素は、ニューラルネットワークの第1層の全てのシナプスと接続され、入力データの要素間の関係性はニューラルネットワークの内部構造に反映されない。これは、ニューラルネットワークの学習処理における収束性の大きな劣化の要因となる。 In the technique described in Patent Document 1, when the input data is a vector, the structure of the neural network is connected to each element of the vector and the synapse of the first layer of the neural network in a complete bipartite graph. That is, a certain element of input data is connected to all the synapses of the first layer of the neural network, and the relationship between the elements of the input data is not reflected in the internal structure of the neural network. This becomes a factor of great deterioration of convergence in the learning process of the neural network.
 また、特許文献2に記載の技術では、入力データがマトリクスの場合、入力に対し規定のウィンドウ内の各要素とニューラルネットワークの第1層のシナプス(特徴マップ)が接続される。前記ウィンドウの大きさは、画像のフィルタ演算のように3×3、5×5等のサイズであって、入力データの要素間の相互関係が均一な場合(例えば、画像は格子状になり、いずれの画素も上下左右の画素と相互関係を持つ)に適用ができる。しかし、入力データの要素間の相互関係が不均一な場合には、適用できない。例えば、SNS等のスケールフリーグラフで、ほとんどの要素は少数の要素と相関関係を持つが、限られた要素(ハブと呼ばれる)は多数の要素と相関関係を持つ。 In the technique described in Patent Document 2, when the input data is a matrix, each element in a specified window is connected to the synapse (feature map) of the first layer of the neural network for the input. The size of the window is 3 × 3, 5 × 5, etc., as in the filter operation of an image, and the mutual relationship between the elements of the input data is uniform (for example, the image has a lattice shape, Any pixel can be applied to the upper, lower, left and right pixels). However, this is not applicable when the interrelationship between the elements of the input data is not uniform. For example, in a scale free graph such as SNS, most elements have a correlation with a small number of elements, but a limited element (called a hub) has a correlation with a large number of elements.
 したがって、従来技術では、前述の社会インフラ等の評価関数が複雑な最適化問題の処理の高速化を実現できない。 Therefore, with the conventional technology, it is not possible to realize high-speed processing of optimization problems with complicated evaluation functions such as the aforementioned social infrastructure.
 本発明は、評価関数が複雑な最適化問題の処理の高速化を可能とする技術を提供することにある。 The present invention is to provide a technique capable of speeding up the processing of an optimization problem with a complicated evaluation function.
 本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、プロセッサ、及び前記プロセッサに接続されるメモリを備え、一つ以上のニューロンを含む複数の層から構成されるニューラルネットワークを用いた演算処理を実行する計算機であって、一つの層に含まれる一つのニューロンと、他の層に含まれる少なくとも一つのニューロンとの間には接続が構成され、前記一つの層に含まれる一つのニューロンに入力された値は、重みとともに、前記接続によって接続される前記他の層に含まれる少なくとも一つのニューロンに出力され、前記計算機は、複数のノード及び前記複数のノード間を接続する一つ以上のエッジから構成されるグラフデータ、及びニューラルネットワークに入力される一つ以上の値を格納するサンプルデータを格納する記憶部と、前記グラフデータを用いて、前記ニューラルネットワークを構築する構築部と、前記サンプルデータを前記ニューラルネットワークに入力することによって前記ニューラルネットワーク内の複数の接続の前記重みを決定する学習処理を実行する学習処理部と、を備え、前記構築部は、前記グラフデータに含まれる前記複数のノードに基づいて、前記複数の層の各々の一つ以上のニューロンを生成し、前記グラフデータに含まれる前記一つ以上のエッジに基づいて、前記複数の層の各々に含まれる前記一つ以上のニューロン間の前記接続を生成することによって前記ニューラルネットワークを構築し、前記構築されたニューラルネットワークの情報を前記記憶部に格納することを特徴とする。 A typical example of the invention disclosed in the present application is as follows. That is, a computer that includes a processor and a memory connected to the processor and that performs arithmetic processing using a neural network including a plurality of layers including one or more neurons, and is included in one layer A connection is configured between one neuron and at least one neuron included in another layer, and the value input to one neuron included in the one layer is connected by the connection together with the weight. Output to at least one neuron included in the other layer, and the computer is input to a neural network and graph data including a plurality of nodes and one or more edges connecting the plurality of nodes. A storage unit for storing sample data for storing one or more values, and the graph data. A construction section for constructing a neural network; and a learning processing section for executing a learning process for determining the weights of a plurality of connections in the neural network by inputting the sample data to the neural network, The construction unit generates one or more neurons of each of the plurality of layers based on the plurality of nodes included in the graph data, and based on the one or more edges included in the graph data, The neural network is constructed by generating the connection between the one or more neurons included in each of the plurality of layers, and information on the constructed neural network is stored in the storage unit. To do.
 本発明によれば、評価関数が複雑な最適化問題において、複雑な相関関係を反映したニューラルネットワークを構築できる。これによって、最適化問題の処理の高速な演算が可能となる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。 According to the present invention, it is possible to construct a neural network reflecting a complex correlation in an optimization problem with a complicated evaluation function. This enables high-speed computation of optimization problem processing. Problems, configurations, and effects other than those described above will become apparent from the following description of embodiments.
実施例1の計算機システムの構成の一例を示す説明図である。FIG. 3 is an explanatory diagram illustrating an example of a configuration of a computer system according to the first embodiment. 実施例1のニューラルネットワークの一例を示す説明図である。3 is an explanatory diagram illustrating an example of a neural network according to Embodiment 1. FIG. 実施例1のグラフデータの一例を示す説明図である。FIG. 6 is an explanatory diagram illustrating an example of graph data according to the first embodiment. 実施例1のグラフデータの一例を示す説明図である。FIG. 6 is an explanatory diagram illustrating an example of graph data according to the first embodiment. 実施例1のグラフデータの別例を示す説明図である。It is explanatory drawing which shows another example of the graph data of Example 1. FIG. 実施例1の重みテーブルの一例を示す説明図である。It is explanatory drawing which shows an example of the weight table of Example 1. FIG. 実施例1の計算機が実行する学習処理を説明するフローチャートである。3 is a flowchart for describing learning processing executed by the computer according to the first embodiment. 実施例1の計算機が実行するニューラルネットワークの構築処理を説明するフローチャートである。6 is a flowchart for explaining a neural network construction process executed by the computer according to the first embodiment. 実施例1の特徴マップグラフの構築の流れを示す説明図である。It is explanatory drawing which shows the flow of construction of the characteristic map graph of Example 1. FIG. 実施例1の特徴マップグラフの構築の流れを示す説明図である。It is explanatory drawing which shows the flow of construction of the characteristic map graph of Example 1. FIG. 実施例1の計算機によって構築されたニューラルネットワークの一例を示す説明図である。FIG. 3 is an explanatory diagram illustrating an example of a neural network constructed by the computer according to the first embodiment. 実施例1の計算機が実行する識別処理を説明するフローチャートである。4 is a flowchart for explaining identification processing executed by the computer according to the first embodiment. 実施例2の入力データxからグラフデータへの変換を示す説明図である。It is explanatory drawing which shows the conversion from the input data x of Example 2 to graph data. 実施例2の計算機が実行する最適化問題の処理を説明するフローチャートである。10 is a flowchart for explaining optimization problem processing executed by the computer according to the second embodiment; 実施例3の棚配置レイアウト候補のセル表現及びグラフ化の一例を示す説明図である。It is explanatory drawing which shows an example of cell expression and graphing of the shelf arrangement | positioning layout candidate of Example 3. FIG. 実施例3の棚配置レイアウト候補のグラフにおけるエッジのラベルの割り当て方法の一例を示す説明図である。FIG. 10 is an explanatory diagram illustrating an example of an edge label allocation method in a shelf arrangement layout candidate graph according to a third embodiment. 実施例3の棚配置レイアウト候補のグラフデータの一例を示す説明図である。It is explanatory drawing which shows an example of the graph data of the shelf arrangement layout candidate of Example 3. 実施例3の計算機が実行する最適レイアウト問題の処理を説明するフローチャートである。10 is a flowchart for explaining processing of an optimal layout problem executed by a computer according to a third embodiment. 従来の計算機が実行する近似アルゴリズムに基づく最適化問題の処理を説明するフローチャートである。It is a flowchart explaining the process of the optimization problem based on the approximation algorithm which the conventional computer performs. 従来の計算機が実行する最適レイアウト問題の処理を説明するフローチャートである。It is a flowchart explaining the process of the optimal layout problem which the conventional computer performs.
 実施例1では、グラフデータを入力としたニューラルネットワークの構築方法について説明する。 In Example 1, a method for constructing a neural network using graph data as an input will be described.
 図1は、実施例1の計算機システムの構成の一例を示す説明図である。 FIG. 1 is an explanatory diagram illustrating an example of a configuration of a computer system according to the first embodiment.
 図1に示すように、実施例1の計算機システム100は、複数の計算機101、及びストレージシステム102から構成され、複数の計算機101とストレージシステム102とは、ネットワーク103を介して接続される。 As shown in FIG. 1, the computer system 100 according to the first embodiment includes a plurality of computers 101 and a storage system 102, and the plurality of computers 101 and the storage system 102 are connected via a network 103.
 本実施例の計算機システム100は、3つの計算機101-1、101-2、101-3を含む。なお、計算機101の数は、3つより小さくてもいし、また、3つより大きくてもよい。 The computer system 100 of this embodiment includes three computers 101-1, 101-2, and 101-3. Note that the number of computers 101 may be smaller than three or larger than three.
 ネットワーク103は、WAN(Wide Area Network)、LAN(Local Area Network)、及びSAN(Storage Area Network)等が考えられる。なお、本実施例はネットワーク103の種別に限定されない。また、複数の計算機101の各々を接続するネットワーク、及び複数の計算機101の各々とストレージシステム102とを接続するネットワークは、異なるネットワークであってもよい。 The network 103 may be WAN (Wide Area Network), LAN (Local Area Network), SAN (Storage Area Network), and the like. Note that the present embodiment is not limited to the type of the network 103. In addition, the network connecting each of the plurality of computers 101 and the network connecting each of the plurality of computers 101 and the storage system 102 may be different networks.
 計算機101は、ニューラルネットワークの構築処理、及びニューラルネットワークを用いた演算処理等を実行する。計算機101は、プロセッサ110、メモリ111、通信インタフェース112を備え、各構成はバス114を介して互いに接続される。 The computer 101 executes neural network construction processing, arithmetic processing using the neural network, and the like. The computer 101 includes a processor 110, a memory 111, and a communication interface 112, and each component is connected to each other via a bus 114.
 プロセッサ110は、演算処理を実行する1つ以上のCPU115を含む。CPU115は、メモリ111に格納されるプログラムを実行することによって、計算機101が有する機能を実現する。また、計算機101上で実行される処理は1つ以上のCPU115によって実行される。なお、1つのCPU115が複数の処理を実行してもよい。なお、CPU115は、FPGA及びGPU等の演算器であってもよい。 The processor 110 includes one or more CPUs 115 that execute arithmetic processing. The CPU 115 implements the functions of the computer 101 by executing a program stored in the memory 111. In addition, processing executed on the computer 101 is executed by one or more CPUs 115. One CPU 115 may execute a plurality of processes. Note that the CPU 115 may be an arithmetic unit such as an FPGA and a GPU.
 メモリ111は、CPU115(プロセッサ110)が実行するプログラム及び当該プログラムによって使用される情報を格納する。また、メモリ111は、CPU115が実行する1つの処理に対して割り当てられるメモリ空間を含む。なお、当該メモリ空間は、複数のメモリ111のメモリ領域上に確保されてもよいし、また、1つのメモリ111のメモリ領域上に確保されてもよい。また、メモリ111は、複数の処理のメモリ空間を含んでもよい。メモリ111に格納されるプログラム及び情報については後述する。 The memory 111 stores a program executed by the CPU 115 (processor 110) and information used by the program. In addition, the memory 111 includes a memory space allocated to one process executed by the CPU 115. Note that the memory space may be secured on the memory areas of the plurality of memories 111, or may be secured on the memory area of one memory 111. The memory 111 may include a memory space for a plurality of processes. The program and information stored in the memory 111 will be described later.
 通信インタフェース112は、ネットワーク103を介して外部装置と通信する。本実施例では、プロセッサ110は、通信インタフェース112を介して、他の計算機101又はストレージシステム102にアクセスする。 The communication interface 112 communicates with an external device via the network 103. In this embodiment, the processor 110 accesses another computer 101 or the storage system 102 via the communication interface 112.
 ストレージシステム102は、計算機101が使用する各種データを格納する。ストレージシステム102は、プロセッサ130、メモリ131、通信インタフェース132、ディスクインタフェース133、及び複数のHDD(Hard Disk Drive)134を備え、各構成はバス135を介して互いに接続される。 The storage system 102 stores various data used by the computer 101. The storage system 102 includes a processor 130, a memory 131, a communication interface 132, a disk interface 133, and a plurality of HDDs (Hard Disk Drives) 134, and each component is connected to each other via a bus 135.
 プロセッサ130、メモリ131、及び通信インタフェース132は、プロセッサ110、メモリ111、及び通信インタフェース112と同一のものである。ディスクインタフェース133は、複数のHDD134と接続するためのインタフェースである。HDD134は、各種データを格納する記憶装置である。 The processor 130, the memory 131, and the communication interface 132 are the same as the processor 110, the memory 111, and the communication interface 112. The disk interface 133 is an interface for connecting to a plurality of HDDs 134. The HDD 134 is a storage device that stores various data.
 ここで、計算機101のメモリ111に格納されるプログラム及び情報について説明する。 Here, the program and information stored in the memory 111 of the computer 101 will be described.
 メモリ111は、データ処理部120を実現するプログラムを格納する。データ処理部120を実行するCPU115は、学習処理、及び識別処理を実行する。学習処理では、CPU115が、ニューラルネットワークを構築し、また、構築されたニューラルネットワーク内のニューロン間の接続(エッジ)の重みを決定する。識別処理では、CPU115が、識別対象であるデータを、構築されたニューラルネットワークに入力することによって所定の識別を行う。 The memory 111 stores a program for realizing the data processing unit 120. The CPU 115 that executes the data processing unit 120 executes a learning process and an identification process. In the learning process, the CPU 115 constructs a neural network and determines connection (edge) weights between neurons in the constructed neural network. In the identification process, the CPU 115 performs predetermined identification by inputting data to be identified into the constructed neural network.
 なお、データ処理部120は、複数のプログラムモジュールから構成されてもよい。例えば、データ処理部120は、ニューラルネットワークを構築する構築部、学習処理を実行する学習処理部、及び識別処理を実行する識別処理部を含んでもよい。また、それぞれのプログラムモジュールを別々の計算機101が備える構成であってもよい。 The data processing unit 120 may be composed of a plurality of program modules. For example, the data processing unit 120 may include a construction unit that builds a neural network, a learning processing unit that executes learning processing, and an identification processing unit that executes identification processing. Moreover, the structure with which each computer module is provided in a different computer 101 may be sufficient.
 ここで、ニューラルネットワークについて説明する。図2は、実施例1のニューラルネットワークの一例を示す説明図である。 Here, the neural network will be described. FIG. 2 is an explanatory diagram illustrating an example of the neural network according to the first embodiment.
 図2に示すニューラルネットワーク200は、入力層201、中間層202、及び出力層203の3層から構成される。各層は1つ以上のニューロン211から構成される。また、各層のニューロン211は、他の層の少なくとも1つのニューロン211と接続する。具体的には、入力層201のニューロン211は、中間層202の少なくとも1つのニューロン211と接続し、また、中間層202のニューロン211は、出力層203の少なくとも1つのニューロン211と接続する。以下の説明では、ニューロン211間の接続するエッジを接続212とも記載する。接続212はニューロン211間のデータの出力を表す。各ニューロン211に入力された値は、任意の重みとともに、接続212によって接続される他の層のニューロン211に出力される。重みは、ニューロン211間の接続の強さを表し、後述する学習処理によって決定される。以上が、ニューラルネットワークの説明である。図1の説明に戻る。 The neural network 200 shown in FIG. 2 includes three layers: an input layer 201, an intermediate layer 202, and an output layer 203. Each layer is composed of one or more neurons 211. The neuron 211 in each layer is connected to at least one neuron 211 in another layer. Specifically, the neuron 211 in the input layer 201 is connected to at least one neuron 211 in the intermediate layer 202, and the neuron 211 in the intermediate layer 202 is connected to at least one neuron 211 in the output layer 203. In the following description, an edge connecting between the neurons 211 is also referred to as a connection 212. Connection 212 represents the output of data between neurons 211. A value input to each neuron 211 is output to a neuron 211 in another layer connected by the connection 212 together with an arbitrary weight. The weight represents the strength of connection between the neurons 211, and is determined by a learning process described later. The above is the description of the neural network. Returning to the description of FIG.
 メモリ111は、グラフデータ121、サンプルデータ122、及び重みテーブル123を格納する。 The memory 111 stores graph data 121, sample data 122, and a weight table 123.
 グラフデータ121は、任意の要素に対応するノード、及びノード間を接続するエッジから構成されるグラフの構造を定義するデータである。グラフデータ121の詳細は図3を用いて後述する。サンプルデータ122は、ニューラルネットワークを用いた学習処理において用いられるデータである。重みテーブル123は、ニューラルネットワークの学習処理の処理結果である重みを管理する情報である。重みテーブル123の詳細は図6を用いて後述する。 The graph data 121 is data defining a graph structure composed of nodes corresponding to arbitrary elements and edges connecting the nodes. Details of the graph data 121 will be described later with reference to FIG. The sample data 122 is data used in learning processing using a neural network. The weight table 123 is information for managing weights that are processing results of the neural network learning process. Details of the weight table 123 will be described later with reference to FIG.
 なお、グラフデータ121及びサンプルデータ122は、ストレージシステム102に格納される情報である。CPU115が、ストレージシステム102からグラフデータ121及びサンプルデータ122を取得し、取得されたグラフデータ121及びサンプルデータ122をメモリ111にロードする。 Note that the graph data 121 and the sample data 122 are information stored in the storage system 102. The CPU 115 acquires the graph data 121 and the sample data 122 from the storage system 102 and loads the acquired graph data 121 and the sample data 122 into the memory 111.
 図3は、実施例1のグラフデータ121の一例を示す説明図である。 FIG. 3 is an explanatory diagram illustrating an example of the graph data 121 according to the first embodiment.
 グラフデータ121は、エッジID301、ノードID302、ラベル303、及びエッジ属性304を含む。 The graph data 121 includes an edge ID 301, a node ID 302, a label 303, and an edge attribute 304.
 エッジID301は、エッジの識別情報である。ノードID302は、エッジID301に対応するエッジを介して接続されるノードの識別情報である。なお、エッジに向きは後述するエッジ属性304にて管理される。ラベル303は、長さ、及び向き等に基づいてエッジを分類することによって付与されるエッジのラベルである。 Edge ID 301 is edge identification information. The node ID 302 is identification information of a node connected via an edge corresponding to the edge ID 301. The direction of the edge is managed by an edge attribute 304 described later. The label 303 is an edge label given by classifying edges based on length, direction, and the like.
 エッジ属性304は、エッジの属性情報である。本実施例では、エッジの長さ、エッジの方向等がエッジの属性情報として管理される。 The edge attribute 304 is edge attribute information. In this embodiment, edge length, edge direction, and the like are managed as edge attribute information.
 ここで、図3及び図4を用いてエッジのラベルについて説明する。図4は、実施例1のグラフの一例を示す説明図である。 Here, edge labels will be described with reference to FIGS. FIG. 4 is an explanatory diagram illustrating an example of the graph of the first embodiment.
 図4に示すグラフは、図3に示すグラフデータ121に対応するグラフである。図4に示すグラフは、3つのノードI0、I1、I2を含み、また、5つのエッジE0、E1、E2、E3、E4を含む。 The graph shown in FIG. 4 is a graph corresponding to the graph data 121 shown in FIG. The graph shown in FIG. 4 includes three nodes I0, I1, and I2, and includes five edges E0, E1, E2, E3, and E4.
 図3及び図4に示すように、エッジE0及びエッジE2は、エッジの長さが「1」であり、向きも同一の「南向き」である。エッジE1及びエッジE3は、エッジの長さが「1」であり、かつ、向きが「北向き」である。また、エッジ4は、エッジの長さが「2」であり、向きが「北向き」である。したがって、エッジE0及びエッジE2には、同じラベル「0」が付与され、また、エッジE1及びエッジE3についても同じラベル「1」が付与される。一方、エッジ4には、ラベル「2」が付与される。 As shown in FIGS. 3 and 4, the edge E0 and the edge E2 have the edge length “1” and the same direction “south”. The edge E1 and the edge E3 have an edge length of “1” and an orientation of “north”. The edge 4 has an edge length of “2” and a direction of “north”. Therefore, the same label “0” is given to the edge E0 and the edge E2, and the same label “1” is also given to the edge E1 and the edge E3. On the other hand, the label “2” is given to the edge 4.
 付与されるラベルの種類は、エッジの長さ及び向きのセットの組み合わせ以上の数が用意される。ここでは、前述の組み合わせの種類は、(長さ1、南向き)、(長さ1、北向き)、(長さ2、北向き)の3種類であるため、ラベルも0、1、2の3種類が用意され、組み合わせとラベルとが対応付けられる。 ・ The number of labels to be given is more than the combination of edge length and orientation set. Here, since there are three types of combinations (length 1, south direction), (length 1, north direction), and (length 2, north direction), the labels are also 0, 1, 2, and so on. Are prepared, and combinations and labels are associated with each other.
 なお、グラフデータ121は、ノードの構造を管理するデータと、エッジの構造を管理するデータとに分けて管理されてもよい。 Note that the graph data 121 may be managed separately for data for managing the node structure and data for managing the edge structure.
 図5は、実施例1のグラフデータ121の別例を示す説明図である。 FIG. 5 is an explanatory diagram showing another example of the graph data 121 of the first embodiment.
 図5に示すグラフデータ121は、エッジの構造情報500及びノードの構造情報510を含む。エッジの構造情報500のエッジID501、ノードID502、ラベル503、及びエッジ属性504は、エッジID301、ノードID302、ラベル303、及びエッジ属性304と同一のものである。 The graph data 121 shown in FIG. 5 includes edge structure information 500 and node structure information 510. The edge ID 501, node ID 502, label 503, and edge attribute 504 of the edge structure information 500 are the same as the edge ID 301, node ID 302, label 303, and edge attribute 304.
 ノードの構造情報510は、ノードID511、エッジID(流出)512、エッジID(流入)513、及びノード属性514を含む。ノードID511は、ノードID302と同一のものである。 The node structure information 510 includes a node ID 511, an edge ID (outflow) 512, an edge ID (inflow) 513, and a node attribute 514. The node ID 511 is the same as the node ID 302.
 エッジID(流出)512は、ノードID511に対応するノードから流出するエッジの識別情報である。すなわち、ノードは、エッジID(流出)512に対応するエッジの始点となるノードである。エッジID(流入)513は、ノードID511に対応するノードに流入するエッジの識別情報である。すなわち、ノードは、エッジID(流入)513に対応するエッジの終点となるノードである。 The edge ID (outflow) 512 is identification information of an edge flowing out from the node corresponding to the node ID 511. That is, the node is a node that is the start point of the edge corresponding to the edge ID (outflow) 512. The edge ID (inflow) 513 is identification information of an edge flowing into the node corresponding to the node ID 511. That is, the node is a node that is an end point of the edge corresponding to the edge ID (inflow) 513.
 ノード属性514は、ノードの属性情報である。本実施例では、ノードの種類等がエッジの属性情報として管理される。例えば、倉庫のレイアウトを表すグラフデータの場合、ノードの種類は棚又は通路等を示す。 The node attribute 514 is node attribute information. In this embodiment, the node type and the like are managed as edge attribute information. For example, in the case of graph data representing the layout of a warehouse, the node type indicates a shelf or a passage.
 図6は、実施例1の重みテーブル123の一例を示す説明図である。 FIG. 6 is an explanatory diagram illustrating an example of the weight table 123 according to the first embodiment.
 重みテーブル123は、ラベル601、重みラベル602、及びエッジ情報603を含む。ラベル601は、ラベル303と同一のものである。 The weight table 123 includes a label 601, a weight label 602, and edge information 603. The label 601 is the same as the label 303.
 重みラベル602は、ニューラルネットワーク内のエッジの重みを分類することによって付与されるラベルである。重みラベル602は、ラベル601に対応するものである。すなわち、ラベル601はグラフデータ内のエッジのラベルであり、重みラベル602はニューラルネットワーク内のエッジのラベルである。 The weight label 602 is a label given by classifying the edge weights in the neural network. The weight label 602 corresponds to the label 601. That is, the label 601 is an edge label in the graph data, and the weight label 602 is an edge label in the neural network.
 エッジ情報603は、同一の重みラベル602が付与されるニューラルネットワーク内の接続の識別情報である。本実施例では、接続をマップエッジとも記載する。 Edge information 603 is identification information of connections in the neural network to which the same weight label 602 is assigned. In this embodiment, the connection is also described as a map edge.
 グラフデータ121においてノード間の相関関係(トポロジ)が同一、すなわち、長さ及び向き等が同一であるエッジから構成されたマップエッジは、学習処理における重みの修正時に、同様の修正が行われる。そのため、本実施例では、計算機101がノード間のトポロジを抽象化して管理する重みテーブル123を保持することによって、学習処理及び識別処理の高速化を実現する。 In the graph data 121, a map edge composed of edges having the same correlation (topology) between nodes, that is, the same length, direction, etc., is subjected to the same correction when the weight is corrected in the learning process. For this reason, in this embodiment, the computer 101 holds the weight table 123 that abstracts and manages the topology between nodes, thereby realizing high-speed learning processing and identification processing.
 ここで、ノード間のトポロジの抽象化について具体的に説明する。入力データ(グラフデータ)の要素(ノード)間の相関関係が同一の場合、ニューラルネットワーク内のエッジの重みも同一にすることによって、入力データの全ての要素間の相関関係、すなわち、トポロジを抽象化する。 Here, the abstraction of topology between nodes will be described in detail. When the correlation between the elements (nodes) of the input data (graph data) is the same, the correlation between all the elements of the input data, that is, the topology is abstracted by making the edge weights in the neural network the same. Turn into.
 例えば、グラフデータとして、ノードが交差点を表し、エッジが交差点間のつながりを表す道路網を示すデータを考える。グラフデータの要素間の相関関係は、第1の交差点の北向きの距離1に第2の交差点があり、第1の交差点及び第2の交差点が第1のエッジで接続され、第3の交差点の北向きに距離1に第4の交差点があり、第3の交差点及び第4の交差点が第2のエッジで接続されているものとする。 For example, as graph data, consider data indicating a road network in which nodes represent intersections and edges represent connections between intersections. The correlation between the elements of the graph data is that there is a second intersection at a north distance 1 of the first intersection, the first intersection and the second intersection are connected by the first edge, and the third intersection It is assumed that there is a fourth intersection at a distance 1 in the north direction, and the third intersection and the fourth intersection are connected by the second edge.
 前述の4つの交差点は、それぞれ異なる地点の交差点を表すものであっても同様のトポロジを持つため、第1のエッジ及び第2のエッジは、ニューラルネットワークにおいて同様に扱うべきである。したがって、第1のエッジ及び第2のエッジには、エッジの属性(長さ1、北向き)に基づいて定められた同一のラベルが付与される。これによって、同一のラベルを持つエッジはニューラルネットワークの重みラベルも共有する。 The above-mentioned four intersections have the same topology even if they represent the intersections of different points, so the first edge and the second edge should be handled in the same manner in the neural network. Therefore, the same label determined based on the attribute of the edge (length 1, facing north) is given to the first edge and the second edge. Thus, edges with the same label also share the neural network weight label.
 これによって、異なるノード間を接続するエッジであっても、ノード間のトポロジが同一である場合、それぞれのエッジを区別することなく扱うことができる。すなわち、ノード間のトポロジが抽象化される。 Thus, even if edges connect between different nodes, if the topology between the nodes is the same, each edge can be handled without distinction. That is, the topology between nodes is abstracted.
 次に、計算機101が実行する処理について説明する。まず、図7を用いて学習処理について説明する。図7は、実施例1の計算機101が実行する学習処理を説明するフローチャートである。 Next, processing executed by the computer 101 will be described. First, the learning process will be described with reference to FIG. FIG. 7 is a flowchart illustrating the learning process executed by the computer 101 according to the first embodiment.
 計算機101は、処理開始の指示を受け付けた場合に以下で説明する処理を開始する。 When the computer 101 receives an instruction to start processing, the computer 101 starts processing described below.
 まず、CPU115は、ストレージシステム102からグラフデータ121を取得し、メモリ111に格納する(ステップS701)。CPU115は、取得されたグラフデータ121を用いてニューラルネットワークの構築処理を実行する(ステップS702)。ニューラルネットワークの構築処理の詳細は図8を用いて後述する。 First, the CPU 115 acquires the graph data 121 from the storage system 102 and stores it in the memory 111 (step S701). The CPU 115 executes a neural network construction process using the acquired graph data 121 (step S702). Details of the construction process of the neural network will be described later with reference to FIG.
 次に、CPU115は、ストレージシステム102からサンプルデータ122を取得し、メモリ111に格納する(ステップS703)。 Next, the CPU 115 acquires the sample data 122 from the storage system 102 and stores it in the memory 111 (step S703).
 次に、CPU115は、誤差逆伝播処理のループ処理を開始する(ステップS704)。本ループ処理では、CPU115は、ステップS704からステップS708の処理を繰り返し実行する。本ループ処理内で実行される誤差逆伝播処理によって算出される誤差が予め設定された閾値以下になった場合、又は、予め決められた回数だけ誤差逆伝播処理が実行された場合に、ループ処理が終了する。また、CPU115は、サンプルデータのループ処理を開始する(ステップS705)。サンプルデータのループ処理では、ステップS703において取得された複数のサンプルデータに対し、1つのサンプルデータ毎にループ内部の処理を実行する。さらに、CPU115は、1つのサンプルデータに対して誤差逆伝播処理を実行する(ステップS706)。 Next, the CPU 115 starts a loop process of error back propagation processing (step S704). In this loop process, the CPU 115 repeatedly executes the processes from step S704 to step S708. When the error calculated by the error back-propagation process executed in this loop process falls below a preset threshold value, or when the error back-propagation process is executed a predetermined number of times, the loop process Ends. Further, the CPU 115 starts a loop process for sample data (step S705). In the loop processing of sample data, the processing inside the loop is executed for each piece of sample data for the plurality of sample data acquired in step S703. Further, the CPU 115 executes error back propagation processing for one sample data (step S706).
 誤差逆伝播処理では、CPU115は、あるサンプルデータを入力とし、その入力に対するニューラルネットワークの出力結果と当該サンプルデータに対応する教師データとを比較し、2つのデータの誤差を削減するように、ニューラルネットワークの出力層に近い層(中間層)から順に入力層までの重みを更新する。すなわち、入力データが出力方向とは逆の方向に重みが更新される。 In the error back-propagation process, the CPU 115 receives a certain sample data, compares the output result of the neural network with respect to the input and the teacher data corresponding to the sample data, and reduces the error between the two data. The weights from the layer close to the output layer (intermediate layer) to the input layer are updated in order. That is, the weight of the input data is updated in the direction opposite to the output direction.
 サンプルデータのループ処理では、CPU115が、複数のサンプルデータ122の各々に対して前述した処理を実行する。ステップS706の誤差逆伝播処理では、任意のサンプルデータに対する重みの更新が1回だけ行われる。 In the sample data loop processing, the CPU 115 executes the above-described processing for each of the plurality of sample data 122. In the error back-propagation process in step S706, the update of the weight for arbitrary sample data is performed only once.
 一方、誤差逆伝播処理のループ処理では、誤差を最小にするためには、誤差逆伝播処理が複数回実行される。具体的には、CPU115が、所定の条件を満たすまで、繰り返し、複数のサンプルデータ122の各々に対して誤差逆伝播処理を実行する。 On the other hand, in the loop process of the error back propagation process, the error back propagation process is executed a plurality of times in order to minimize the error. Specifically, the CPU 115 repeatedly performs error back propagation processing on each of the plurality of sample data 122 until a predetermined condition is satisfied.
 すなわち、誤差逆伝播処理のループ処理は、誤差逆伝播法による複数のサンプルデータの合計誤差の収束のために行われる。また、サンプルデータのループ処理は、複数のサンプルデータ122に対する重みの更新が行われる。 That is, the loop process of the error back propagation process is performed for convergence of the total error of a plurality of sample data by the error back propagation method. In the sample data loop processing, the weights of the plurality of sample data 122 are updated.
 次に、CPU115は、全てのサンプルデータに対して誤差逆伝播処理が実行されたか否かを判定する(ステップS707)。 Next, the CPU 115 determines whether or not error back-propagation processing has been executed for all sample data (step S707).
 全てのサンプルデータに対して誤差逆伝播処理が実行されていないと判定された場合、CPU115は、ステップS705に戻り、同様の処理を実行する。 If it is determined that the error back-propagation process has not been performed on all sample data, the CPU 115 returns to step S705 and executes the same process.
 全てのサンプルデータに対して誤差逆伝播処理が実行されたと判定された場合、CPU115は、所定の条件を満たしたか否かを判定する(ステップS708)。 If it is determined that the error back-propagation processing has been performed on all sample data, the CPU 115 determines whether or not a predetermined condition is satisfied (step S708).
 所定の条件を満たしていないと判定された場合、CPU115は、ステップS704に戻り、同様の処理を実行する。 If it is determined that the predetermined condition is not satisfied, the CPU 115 returns to step S704 and executes the same processing.
 所定の条件を満たしたと判定された場合、CPU115は、学習結果をメモリ111に格納する(ステップS709)。その後、CPU115は、処理を終了する。なお、学習結果はストレージシステム102に格納されてもよい。 If it is determined that the predetermined condition is satisfied, the CPU 115 stores the learning result in the memory 111 (step S709). Thereafter, the CPU 115 ends the process. Note that the learning result may be stored in the storage system 102.
 学習結果には、構築されたニューラルネットワークの構成を示す情報、及びエッジのラベルと算出された重みとを対応付けた情報等の情報が含まれる。 The learning result includes information such as information indicating the configuration of the constructed neural network and information in which the edge label is associated with the calculated weight.
 図8は、実施例1の計算機101が実行するニューラルネットワークの構築処理を説明するフローチャートである。図9A及び図9Bは、実施例1の特徴マップグラフの構築の流れを示す説明図である。図10は、実施例1の計算機101によって構築されたニューラルネットワークの一例を示す説明図である。 FIG. 8 is a flowchart illustrating a neural network construction process executed by the computer 101 according to the first embodiment. 9A and 9B are explanatory diagrams illustrating a flow of construction of a feature map graph according to the first embodiment. FIG. 10 is an explanatory diagram illustrating an example of a neural network constructed by the computer 101 according to the first embodiment.
 ニューラルネットワークの構築処理では、グラフデータ121、ニューラルネットワークの構造に関するパラメタ、及び出力層の次元数(ノード数)等を含む定義情報が入力される。なお、ニューラルネットワークの構造に関するパラメタには、ニューラルネットワークの層の数、及び1つの中間層に含まれる特徴マップグラフの数等が含まれる。 In the neural network construction processing, definition information including graph data 121, parameters related to the structure of the neural network, the number of dimensions of the output layer (number of nodes), and the like are input. The parameters relating to the structure of the neural network include the number of layers of the neural network, the number of feature map graphs included in one intermediate layer, and the like.
 ここで、特徴マップグラフは、1つの中間層を構成するニューロン群を示す。すなわち、中間層は、1つ以上の特徴マップグラフを含む。後述するように特徴マップグラフは、複数のマップノードを含む。マップノードはニューロンに対応する。 Here, the feature map graph shows a group of neurons constituting one intermediate layer. That is, the intermediate layer includes one or more feature map graphs. As will be described later, the feature map graph includes a plurality of map nodes. Map nodes correspond to neurons.
 CPU115は、ニューラルネットワークの入力層及び出力層を設定する(ステップS801)。 CPU 115 sets an input layer and an output layer of the neural network (step S801).
 具体的には、CPU115は、グラフデータ121のノード群を入力層として設定する。すなわち、グラフデータ121の1つのノードが入力層の1つのニューロンとして設定される。また、CPU115は、出力層の次元数と同数のノードを含む出力層を設定する。 Specifically, the CPU 115 sets a node group of the graph data 121 as an input layer. That is, one node of the graph data 121 is set as one neuron in the input layer. Further, the CPU 115 sets an output layer including the same number of nodes as the number of dimensions of the output layer.
 次に、CPU115は、グラフデータ121を用いて特徴マップグラフを構築するループ処理を開始する(ステップS802)。特徴マップグラフを構築するループ処理は、指定されたニューラルネットワークの段数だけ繰り返し実行される。 Next, the CPU 115 starts loop processing for constructing a feature map graph using the graph data 121 (step S802). The loop processing for constructing the feature map graph is repeatedly executed for the number of stages of the designated neural network.
 まず、CPU115は、特徴マップグラフのマップノード(ニューロン)を生成する(ステップS803)。 First, the CPU 115 generates a map node (neuron) of the feature map graph (step S803).
 ここで、特徴マップグラフは、当該特徴マップグラフが含まれる中間層の前段の層に含まれる各マップノードに対し、重みテーブルに応じた特徴を示す。 Here, the feature map graph indicates the feature corresponding to the weight table for each map node included in the previous layer of the intermediate layer including the feature map graph.
 例えば、道路網において、重みテーブルが、距離が「1」である三叉路に発火する(北、南、西向きで距離1の関係に対して発火する等)場合、前段の層(例えば、入力層)に含まれる各ニューロンのうち、三叉路となっているニューロンに対応するマップノードが発火し、それ以外のマップノードは発火しない。ここで発火するとは、出力が正の大きな値をとることを表す。そのため、特徴マップグラフは三叉路の特徴を示したグラフとなる。このような特徴マップグラフを1つの層に複数生成し、また、複数の特徴マップグラフを含む層を用いてニューラルネットワークを構成することによって、複雑なトポロジを表現できる。すなわち、非線形な評価関数等の複雑な評価関数を表現できる。 For example, in a road network, when the weight table fires on a three-way road with a distance of “1” (fires for a relationship of distance 1 in the direction of north, south, west, etc.), the previous layer (eg, input layer) Among the neurons included in, the map node corresponding to the neuron that is the three-way is fired, and the other map nodes are not fired. Here, firing means that the output takes a large positive value. Therefore, the feature map graph is a graph showing the characteristics of the three-way road. A plurality of such feature map graphs are generated in one layer, and a complex topology can be expressed by configuring a neural network using layers including a plurality of feature map graphs. That is, a complicated evaluation function such as a nonlinear evaluation function can be expressed.
 ステップS803では、具体的には、CPU115が、特徴マップグラフの識別情報を割り当て、図9Aに示すようにグラフデータ121に含まれるノードの数と同数のマップノードを生成する。すなわち、中間層のニューロンが生成される。このとき、グラフデータ121のノードと特徴マップグラフのマップノードとが一対一に対応付けられる。図9Aでは、マップノードF0はノードI0に対応し、マップノードF1はノードI1に対応し、マップノードF2はノードI2に対応する。 In step S803, specifically, the CPU 115 assigns identification information of the feature map graph, and generates the same number of map nodes as the number of nodes included in the graph data 121 as shown in FIG. 9A. That is, intermediate layer neurons are generated. At this time, the nodes of the graph data 121 and the map nodes of the feature map graph are associated one-to-one. In FIG. 9A, map node F0 corresponds to node I0, map node F1 corresponds to node I1, and map node F2 corresponds to node I2.
 なお、1つの層に複数の特徴マップグラフを設定する必要がある場合、CPU115は、前述と同様の手順にしたがって特徴マップグラフのマップノードを生成する。 When it is necessary to set a plurality of feature map graphs in one layer, the CPU 115 generates a map node of the feature map graph according to the same procedure as described above.
 次に、CPU115は、グラフデータ121に基づいて、グラフデータ121のノードと特徴マップグラフのマップノードとを接続するマップエッジを生成する(ステップS804)。 Next, the CPU 115 generates a map edge connecting the node of the graph data 121 and the map node of the feature map graph based on the graph data 121 (step S804).
 具体的には、CPU115は、グラフデータ121のノード間を接続するエッジを、グラフデータ121のノードと特徴マップグラフのノードとを接続するマップエッジとして生成する。すなわち、入力層のニューロンと、中間層のニューロンとを接続する接続が生成される。 Specifically, the CPU 115 generates an edge connecting the nodes of the graph data 121 as a map edge connecting the node of the graph data 121 and the node of the feature map graph. That is, a connection that connects the neurons in the input layer and the neurons in the intermediate layer is generated.
 CPU115は、まず、入力層に対応するグラフデータ900に含まれる複数のマップノードの中から対象のマップノードを選択する。CPU115は、グラフデータ900に基づいて、対象のマップノードに対応するノードとエッジを介して接続されるノードを特定する。CPU115は、特徴マップグラフに含まれ、かつ、特定されたノードに対応するマップノードと、対象のマップノードとの間にマップエッジを生成する。 The CPU 115 first selects a target map node from among a plurality of map nodes included in the graph data 900 corresponding to the input layer. Based on the graph data 900, the CPU 115 identifies a node connected to the node corresponding to the target map node via an edge. The CPU 115 generates a map edge between the map node corresponding to the identified node included in the feature map graph and the target map node.
 2つの中間層間のマップエッジを生成する場合にも同様の手順に基づいてマップエッジが生成される。すなわち、CPU115は、入力側の中間層に含まれる複数のマップノードの中から対象のマップノードを選択する。CPU115は、グラフデータ900に基づいて、対象のマップノードに対応するノードとエッジを介して接続されるノードを特定する。CPU115は、出力側の特徴マップグラフに含まれ、かつ、特定されたノードに対応するマップノードと、対象のマップノードとの間にマップエッジを生成する。 When generating a map edge between two intermediate layers, a map edge is generated based on the same procedure. That is, the CPU 115 selects a target map node from a plurality of map nodes included in the input side intermediate layer. Based on the graph data 900, the CPU 115 identifies a node connected to the node corresponding to the target map node via an edge. The CPU 115 generates a map edge between a map node corresponding to the identified node included in the output-side feature map graph and the target map node.
 例えば、グラフデータ121のエッジE0は、ノードI0からノードI1へ向かう辺であるため、ノードI0からノードI1に対応するノードF1にエッジを生成し、マップエッジFM0_E0としてメモリ111に一時的に保持する。また、グラフデータ121のエッジE1は、ノードI1からノードI0へ向かう辺であるため、ノードI1からノードI0に対応するノードF0にエッジを生成し、マップエッジFM0_E1としてメモリ111に一時的に保持する。他のマップエッジについても同様の処理が実行される。前述した処理によって図9Bに示すようなマップエッジが生成される。 For example, since the edge E0 of the graph data 121 is an edge from the node I0 to the node I1, an edge is generated from the node I0 to the node F1 corresponding to the node I1, and temporarily stored in the memory 111 as the map edge FM0_E0. . Further, since the edge E1 of the graph data 121 is an edge from the node I1 to the node I0, an edge is generated from the node I1 to the node F0 corresponding to the node I0, and temporarily stored in the memory 111 as the map edge FM0_E1. . Similar processing is executed for other map edges. The map edge as shown in FIG. 9B is generated by the processing described above.
 次に、CPU115は、グラフデータと特徴マップグラフとの間を接続するマップエッジの重みについて重みテーブル123を生成する(ステップS805)。具体的には以下のような処理が実行される。 Next, the CPU 115 generates a weight table 123 for the weight of the map edge connecting the graph data and the feature map graph (step S805). Specifically, the following processing is executed.
 まず、CPU115は、空の重みテーブル123を生成する。CPU115は、グラフデータ121のラベル303を参照して、ラベルの種別の数だけ、重みテーブル123にエントリを生成する。 First, the CPU 115 generates an empty weight table 123. The CPU 115 refers to the label 303 of the graph data 121 and creates as many entries in the weight table 123 as the number of label types.
 CPU115は、生成された各エントリのラベル601にラベル303の値を設定する。また、CPU115は、所定の基準にしたがって、各ラベルに対応付けた重みラベルを生成し、重みラベル602に生成された重みラベルを設定する。 The CPU 115 sets the value of the label 303 to the label 601 of each generated entry. Further, the CPU 115 generates a weight label associated with each label according to a predetermined standard, and sets the generated weight label in the weight label 602.
 CPU115は、ラベル303の値が同一であるエッジのエッジID301を取得し、取得されたエッジID301に対応するマップエッジを特定し、エッジ情報603に特定されたマップエッジの識別情報を設定する。以上がステップS805の処理の説明である。 The CPU 115 acquires the edge ID 301 of the edge having the same value of the label 303, specifies the map edge corresponding to the acquired edge ID 301, and sets the specified map edge identification information in the edge information 603. The above is the description of the process in step S805.
 CPU115は、指定されたニューラルネットワークの段数だけ層を生成したか否かを判定する(ステップS806)。 CPU 115 determines whether or not the number of layers of the designated neural network has been generated (step S806).
 指定されたニューラルネットワークの段数だけ層を生成していないと判定された場合、CPU115は、ステップS802に戻り、同様の処理を繰り返し実行する。 When it is determined that the number of layers of the designated neural network is not generated, the CPU 115 returns to step S802 and repeatedly executes the same processing.
 指定されたニューラルネットワークの段数だけ層を生成したと判定された場合、CPU115は、出力層と、出力層の一つ前の中間層との間の接続を生成する(ステップS807)。その後、CPU115は、ニューラルネットワークの構築処理を終了する。 When it is determined that the number of layers of the designated neural network is generated, the CPU 115 generates a connection between the output layer and the intermediate layer immediately before the output layer (step S807). Thereafter, the CPU 115 ends the neural network construction process.
 具体的には、CPU115は、出力層の1つ前の中間層の特徴マップグラフに含まれる各マップノードに対して、一つのマップノードと、出力層に含まれる全てのニューロンとを接続するマップエッジを生成する。すなわち、出力層に含まれる各ニューロンと、出力層の1つ前の中間層の特徴マップグラフに含まれる各マップノード(ニューロン)とは完全二部グラフで接続される。 Specifically, the CPU 115 connects a map node and all the neurons included in the output layer to each map node included in the feature map graph of the intermediate layer immediately before the output layer. Create an edge. That is, each neuron included in the output layer and each map node (neuron) included in the feature map graph of the intermediate layer immediately before the output layer are connected in a complete bipartite graph.
 以上の処理によって、図10に示すようなニューラルネットワークが構築される。 The neural network as shown in FIG. 10 is constructed by the above processing.
 図10のニューラルネットワークは、入力層であるグラフデータ900、3つの中間層、及び出力層920から構成される。各中間層は2段の特徴マップグラフ910から構成される。また、グラフデータ900に含まれるノードと特徴マップグラフ910-1に含まれるノードとを接続するエッジに対して重みテーブル123-1が、グラフデータ900に含まれるノードから特徴マップグラフ910-2に含まれるノードへのエッジに対して重みテーブル123-2が生成される。また、特徴マップグラフ910-3には重みテーブル123-3、特徴マップグラフ910-4には重みテーブル123-4、特徴マップグラフ910-5には重みテーブル123-5、特徴マップグラフ910-6には重みテーブル123-6が生成される。 The neural network in FIG. 10 includes graph data 900 that is an input layer, three intermediate layers, and an output layer 920. Each intermediate layer is composed of a two-stage feature map graph 910. In addition, a weight table 123-1 is provided from the nodes included in the graph data 900 to the feature map graph 910-2 for the edges connecting the nodes included in the graph data 900 and the nodes included in the feature map graph 910-1. A weight table 123-2 is generated for edges to included nodes. The feature map graph 910-3 has a weight table 123-3, the feature map graph 910-4 has a weight table 123-4, the feature map graph 910-5 has a weight table 123-5, and the feature map graph 910-6. The weight table 123-6 is generated.
 構築されたニューラルネットワークの情報は、入力層のノード及びエッジの情報、各層の特徴量マップグラフ数、各特徴量マップグラフの重みテーブル、並びに出力層の重みテーブルという形式でメモリ111に格納される。なお、構築されたニューラルネットワークの情報は、ストレージシステム102に格納されてもよい。 Information on the constructed neural network is stored in the memory 111 in the form of input layer node and edge information, number of feature map graphs of each layer, weight table of each feature map graph, and output layer weight table. . Information about the constructed neural network may be stored in the storage system 102.
 次に、図11を用いて識別処理について説明する。図11は、実施例1の計算機101が実行する識別処理を説明するフローチャートである。 Next, the identification process will be described with reference to FIG. FIG. 11 is a flowchart illustrating the identification processing executed by the computer 101 according to the first embodiment.
 計算機101は、処理開始の指示を受け付けた場合、又は、識別対象のデータが入力された場合に以下で説明する処理を開始する。 The computer 101 starts the processing described below when receiving an instruction to start processing or when data to be identified is input.
 まず、CPU115は、ストレージシステム102からグラフデータ121を取得し、メモリ111に格納する(ステップS1101)。学習処理時に取得されたグラフデータ121のトポロジと、識別処理時に取得されたグラフデータ121のトポロジとは異なっていてもよい。 First, the CPU 115 acquires the graph data 121 from the storage system 102 and stores it in the memory 111 (step S1101). The topology of the graph data 121 acquired during the learning process and the topology of the graph data 121 acquired during the identification process may be different.
 CPU115は、取得されたグラフデータ121を用いてニューラルネットワークの再構築処理を実行する(ステップS1102)。ニューラルネットワークの再構築処理では、取得されたグラフデータ121を用いて図8と同様の処理が実行される。ただし、ステップS805の処理が一部異なる。 The CPU 115 executes a neural network reconstruction process using the acquired graph data 121 (step S1102). In the reconfiguration processing of the neural network, the same processing as in FIG. 8 is executed using the acquired graph data 121. However, the processing in step S805 is partially different.
 具体的には、CPU115は、改めて重みラベルを生成することなく、学習処理において生成された重みラベルをメモリ111から取得し、取得された重みラベル用いて重みテーブル123を生成する。また、重みラベルに対応する重みは、学習処理において算出されているため、算出された値に基づいてニューラルネットワークの各エッジに重みが与えられる。 Specifically, the CPU 115 acquires the weight label generated in the learning process from the memory 111 without generating the weight label again, and generates the weight table 123 using the acquired weight label. Further, since the weight corresponding to the weight label is calculated in the learning process, a weight is given to each edge of the neural network based on the calculated value.
 学習処理において、ノード間を接続するエッジの属性に基づいて重みラベルが割り当てられるため、異なるグラフデータ121であっても、同一の属性を有するエッジには同一の重みラベルが割り当てられる。そのため、学習結果を用いた処理が実行される。 In the learning process, the weight label is assigned based on the attribute of the edge connecting the nodes. Therefore, even if the graph data 121 is different, the same weight label is assigned to the edge having the same attribute. Therefore, processing using the learning result is executed.
 次に、CPU115は、ストレージシステム102等から対象のデータを取得し、メモリ111に格納する(ステップS1103)。 Next, the CPU 115 acquires the target data from the storage system 102 or the like and stores it in the memory 111 (step S1103).
 次に、CPU115は、ニューラルネットワークを用いた信号伝播を行い(ステップS1104)、出力結果(出力ベクトル)をメモリ111に格納する(ステップS1105)。なお、出力結果はストレージシステム102に格納されてもよい。 Next, the CPU 115 performs signal propagation using a neural network (step S1104), and stores an output result (output vector) in the memory 111 (step S1105). Note that the output result may be stored in the storage system 102.
 実施例1によれば、ノード間の複雑な相互関係をグラフデータとして入力して、ニューラルネットワークを構築することによって、複雑な相互関係をニューラルネットワークの構造に反映できる。すなわち、複雑な評価関数を学習することが可能となる。 According to the first embodiment, by inputting a complex interrelation between nodes as graph data and constructing a neural network, the complex interrelation can be reflected in the structure of the neural network. That is, it becomes possible to learn a complicated evaluation function.
 実施例2では、実施例1で説明したニューラルネットワークを用いた最適化問題の処理の高速化について説明する。以下、実施例1との差異を中心に実施例2について説明する。 In the second embodiment, the speeding up of the optimization problem processing using the neural network described in the first embodiment will be described. Hereinafter, the second embodiment will be described focusing on differences from the first embodiment.
 実施例2の計算機システム100の構成は実施例1の計算機システム100と同一であるため説明を省略する。また、実施例2の計算機101及びストレージシステム102の構成は、実施例1の計算機101及びストレージシステム102と同一であるため説明を省略する。 Since the configuration of the computer system 100 according to the second embodiment is the same as that of the computer system 100 according to the first embodiment, the description thereof is omitted. The configurations of the computer 101 and the storage system 102 according to the second embodiment are the same as those of the computer 101 and the storage system 102 according to the first embodiment, and thus description thereof is omitted.
 一般的に、最適化問題は、入力データx1~xn、評価関数f(x1、...、xn)とした場合、評価関数の値、すなわち、評価値を最大又は最小とする入力データx1~xnの値又は状態を決定する問題である。 Generally, when the optimization problem is input data x1 to xn and an evaluation function f (x1,..., Xn), the value of the evaluation function, that is, the input data x1 to The problem is to determine the value or state of xn.
 このとき、入力データx1~xnの値の組み合わせが非常に多くなると、最適化問題にかかる計算量も非常に多くなる。そのため、計算量を削減するために近似アルゴリズムが用いられる。近似アルゴリズムは、例えば、モンテカルロ法、粒子法、遺伝的アルゴリズム、及びシミュレーテッドアニーリング等が上げられる。前述したような近似アルゴリズムは、入力データx1~xnの組み合わせを削減することによって、最適化問題にかかる計算量を削減している。 At this time, if the combination of the values of the input data x1 to xn is very large, the amount of calculation related to the optimization problem will be very large. Therefore, an approximation algorithm is used to reduce the calculation amount. Examples of the approximation algorithm include a Monte Carlo method, a particle method, a genetic algorithm, and simulated annealing. The approximation algorithm as described above reduces the amount of calculation related to the optimization problem by reducing the combination of the input data x1 to xn.
 図18は、従来の計算機が実行する近似アルゴリズムに基づく最適化問題の処理を説明するフローチャートである。ここでは、n個の成分xiから構成されるベクトルxが入力データであり、かつ、評価関数f(x1、...、xn)を最小にする最適化問題を考える。なお、添字iは、1からnまでの整数である。 FIG. 18 is a flowchart for explaining processing of an optimization problem based on an approximation algorithm executed by a conventional computer. Here, an optimization problem is considered in which a vector x composed of n components xi is input data and the evaluation function f (x1,..., Xn) is minimized. The subscript i is an integer from 1 to n.
 計算機は、入力データxの初期化した後(ステップS1801)、ステップS1802に進む。計算機は、入力データxの値を用いて評価関数を計算する(ステップS1802)。具体的には、計算機は、入力データの各成分xiの初期値を決定した後、各成分xiの初期値を評価関数に代入することによって、評価値を算出する。 After the computer initializes the input data x (step S1801), the computer proceeds to step S1802. The calculator calculates an evaluation function using the value of the input data x (step S1802). Specifically, the calculator calculates an evaluation value by substituting the initial value of each component xi into the evaluation function after determining the initial value of each component xi of the input data.
 次に、計算機は、算出された評価値が現在の最小値より小さいか否かを判定する(ステップS1803)。なお、入力データxの初期値を用いて評価値が算出された場合、この時点では最小値が存在しない。そのため、計算機は、ステップS1803の判定処理を実行することなくステップS1807に進む。 Next, the computer determines whether or not the calculated evaluation value is smaller than the current minimum value (step S1803). If the evaluation value is calculated using the initial value of the input data x, there is no minimum value at this point. Therefore, the computer proceeds to step S1807 without executing the determination process in step S1803.
 算出された評価値が現在の最小値以上であると判定された場合、計算機は、各成分xiの値の組み合わせ(探索点)を決定する(ステップS1807)。その後、計算機は、ステップS1802に戻り、同様の処理を実行する。なお、探索点の決定方法は、用いられる近似アルゴリズムによって異なる。 When it is determined that the calculated evaluation value is greater than or equal to the current minimum value, the calculator determines a combination (search point) of the values of each component xi (step S1807). Thereafter, the computer returns to step S1802 and executes the same processing. Note that the search point determination method varies depending on the approximation algorithm used.
 算出された評価値が現在の最小値より小さいと判定された場合、計算機は、算出された評価値を最小値として更新する(ステップS1804)。 When it is determined that the calculated evaluation value is smaller than the current minimum value, the calculator updates the calculated evaluation value as the minimum value (step S1804).
 次に、計算機は、現在の最小値が閾値より小さいか否かを判定する(ステップS1805)。 Next, the computer determines whether or not the current minimum value is smaller than the threshold value (step S1805).
 現在の最小値が閾値以上であると判定された場合、計算機は、各成分xiの値の組み合わせ(探索点)を決定する(ステップS1807)。現在の最小値が閾値より小さいと判定された場合、計算機は、評価値が最小となる各成分xiの値の組み合わせを出力し(ステップS1806)、処理を終了する。 If it is determined that the current minimum value is greater than or equal to the threshold, the computer determines a combination (search point) of the values of each component xi (step S1807). When it is determined that the current minimum value is smaller than the threshold value, the computer outputs a combination of values of each component xi that minimizes the evaluation value (step S1806), and ends the process.
 従来の近似アルゴリズムは、探索回数を削減するものである。しかし、対象となる問題が複雑な場合、探索点毎の評価関数の計算量も多くなり、最適化問題の処理の高速化の問題となる。 The conventional approximation algorithm reduces the number of searches. However, when the target problem is complicated, the amount of calculation of the evaluation function for each search point increases, which becomes a problem of speeding up the processing of the optimization problem.
 実施例2では、評価関数の演算処理をニューラルネットワークを用いて、高速化を行う例を示す。 Example 2 shows an example in which the calculation processing of the evaluation function is accelerated using a neural network.
 まず、計算機101は、入力データxをグラフデータに変換し、当該グラフデータを入力として実施例1の学習処理を実行する。ここで、入力データxをグラフデータに変換する方法について説明する。 First, the computer 101 converts the input data x into graph data, and executes the learning process of the first embodiment using the graph data as an input. Here, a method for converting the input data x into graph data will be described.
 図12は、実施例2の入力データxからグラフデータへの変換を示す説明図である。図12に示す例では、入力データxが3次元のベクトルであるものとする。また、入力データxの成分はx0、x1、及びx2であるものとする。 FIG. 12 is an explanatory diagram showing conversion from input data x to graph data in the second embodiment. In the example shown in FIG. 12, it is assumed that the input data x is a three-dimensional vector. The components of the input data x are x0, x1, and x2.
 計算機101は、入力データ1100の各成分x0、x1、及びx2をノードとして定義する。計算機101は、3次元空間におけるベクトルxの特性に基づいてノード間を接続するエッジを生成する。例えば、ベクトルxの平均値が閾値より小さい場合にエッジを生成する方法、又は、3次元空間における基準点との間の距離(例えば、ユークリッド距離又はマンハッタン距離等)が閾値より小さい場合にエッジを生成する方法が考えられる。 The computer 101 defines each component x0, x1, and x2 of the input data 1100 as a node. The computer 101 generates an edge connecting nodes based on the characteristics of the vector x in the three-dimensional space. For example, a method of generating an edge when the average value of the vector x is smaller than a threshold value, or an edge when a distance from a reference point in a three-dimensional space (for example, Euclidean distance or Manhattan distance) is smaller than the threshold value. A generation method is conceivable.
 また、学習処理におけるエッジのラベルの決定方法としては、例えば、距離に基づいてエッジを生成する方法を用いた場合、基準点と各座標との間の位置関係に基づいて決定することができる。 Also, as a method for determining an edge label in the learning process, for example, when a method of generating an edge based on a distance is used, it can be determined based on a positional relationship between a reference point and each coordinate.
 また、誤差逆伝播処理では、グラフデータに変換されたベクトルxに対応する評価値を教師データとして用いて処理が実行される。なお、本実施例では、評価値の最小値を求める最適化問題であるため、評価値が閾値以下の場合教師データは「0」、評価値が閾値より大きい場合教師データは「1」であるものとする。このように定義することによって、評価値が閾値より小さい場合には、出力が「0」となるようにニューラルネットワークが構築される。 Further, in the error back propagation process, the process is executed using the evaluation value corresponding to the vector x converted into the graph data as the teacher data. In this embodiment, since this is an optimization problem for obtaining the minimum evaluation value, the teacher data is “0” when the evaluation value is less than or equal to the threshold value, and the teacher data is “1” when the evaluation value is greater than the threshold value. Shall. By defining in this way, when the evaluation value is smaller than the threshold value, the neural network is constructed so that the output becomes “0”.
 前述したような学習処理が終了した後、計算機101は、具体的な最適化問題の処理を開始する。図13は、実施例2の計算機101が実行する最適化問題の処理を説明するフローチャートである。なお、従来の最適化問題の処理と同一のステップには同一の符号を付し、処理の説明を省略する。 After the learning process as described above is completed, the computer 101 starts a specific optimization problem process. FIG. 13 is a flowchart for explaining the optimization problem processing executed by the computer 101 according to the second embodiment. The same steps as those of the conventional optimization problem processing are denoted by the same reference numerals, and the description of the processing is omitted.
 計算機101は、入力データxの初期化した後(ステップS1801)、ニューラルネットワークを用いて評価値を算出する(ステップS1301)。 The computer 101 initializes the input data x (step S1801), and then calculates an evaluation value using a neural network (step S1301).
 具体的には、計算機101は、入力データの各成分の値を、当該成分xiに対応するニューラルネットワーク内の入力層のノードに入力することによって、ニューラルネットワークを用いた演算処理を実行する。ニューラルネットワークを用いた評価値の算出処理は、一般的な評価関数の演算処理より計算量が少ないため、高速に行うことができる。 Specifically, the computer 101 executes the arithmetic processing using the neural network by inputting the value of each component of the input data to the node of the input layer in the neural network corresponding to the component xi. The evaluation value calculation process using the neural network can be performed at high speed because the calculation amount is smaller than that of a general evaluation function calculation process.
 また、本実施例では、ニューラルネットワークを用いて算出された評価値が閾値より小さい場合、出力は「0」となる。 In this embodiment, when the evaluation value calculated using the neural network is smaller than the threshold value, the output is “0”.
 次に、計算機101は、ニューラルネットワークを用いて算出された評価値が「0」であるか否かを判定する(ステップS1302)。 Next, the computer 101 determines whether or not the evaluation value calculated using the neural network is “0” (step S1302).
 ニューラルネットワークを用いて算出された評価値が「0」でないと判定された場合、計算機101は、ステップS1807に進む。 If it is determined that the evaluation value calculated using the neural network is not “0”, the computer 101 proceeds to step S1807.
 ニューラルネットワークを用いて算出された評価値が「0」であると判定された場合、計算機101は、入力データxの値を用いて評価関数を計算する(ステップS1802)。 When it is determined that the evaluation value calculated using the neural network is “0”, the computer 101 calculates an evaluation function using the value of the input data x (step S1802).
 一般に、積和の演算処理の組み合わせであるニューラルネットワークの演算処理の方が複雑な評価関数を用いた演算処理より計算量が少ない。一方、ニューラルネットワークを用いて算出された評価値の精度は、評価関数を用いる場合と比べて低い。 In general, the calculation processing of the neural network, which is a combination of the product-sum calculation processing, requires less calculation amount than the calculation processing using a complicated evaluation function. On the other hand, the accuracy of the evaluation value calculated using the neural network is lower than that using the evaluation function.
 そこで、実施例2では、ニューラルネットワークを用いた評価値の算出処理を一種のフィルタとして用いることによって、最適化問題の処理を高速化する。すなわち、評価値の値が「0」の場合にのみ評価関数を計算することによって、評価関数を用いた演算処理の実行回数を削減できる。 Therefore, in the second embodiment, the processing of the optimization problem is speeded up by using the evaluation value calculation processing using the neural network as a kind of filter. That is, by calculating the evaluation function only when the evaluation value is “0”, the number of executions of the arithmetic processing using the evaluation function can be reduced.
 このように、実施例2では、ニューラルネットワークを用いた演算処理が粒度の荒い最適解の探索処理として扱われる。通常、粒度の異なる最適解の探索処理では、異なるアルゴリズムを構築する必要がある。しかし、実施例2では、同一のアルゴリズムを用いて、粒度の異なる最適解の探索処理を実現できる。 As described above, in the second embodiment, the arithmetic processing using the neural network is handled as the search processing for the optimum solution with a coarse granularity. Normally, different algorithms need to be constructed in search processing for optimal solutions with different granularities. However, in the second embodiment, it is possible to realize search processing for optimal solutions with different granularities using the same algorithm.
 実施例3では、具体的な例として、倉庫の棚及び通路の最適レイアウト問題の処理の高速化について説明する。 In the third embodiment, as a specific example, the speeding up of the optimal layout problem processing of warehouse shelves and passages will be described.
 実施例3の計算機システム100の構成は実施例1の計算機システム100と同一であるため説明を省略する。また、実施例3の計算機101及びストレージシステム102の構成は、実施例1の計算機101及びストレージシステム102と同一であるため説明を省略する。なお、実施例3では、データ処理部120が、入力データを解析し、解析の結果に基づいてグラフデータを生成する機能(グラフデータ生成部)を有する。なお、解析結果には、複数ノードの配置、及びノード間を接続するエッジの距離等が含まれる。 Since the configuration of the computer system 100 of the third embodiment is the same as that of the computer system 100 of the first embodiment, the description thereof is omitted. The configurations of the computer 101 and the storage system 102 according to the third embodiment are the same as those of the computer 101 and the storage system 102 according to the first embodiment, and a description thereof will be omitted. In the third embodiment, the data processing unit 120 has a function (graph data generation unit) that analyzes input data and generates graph data based on the analysis result. The analysis result includes the arrangement of a plurality of nodes, the distance between edges connecting the nodes, and the like.
 図19は、従来の計算機が実行する最適レイアウト問題の処理を説明するフローチャートである。 FIG. 19 is a flowchart for explaining the optimal layout problem processing executed by a conventional computer.
 計算機は、まず、初期レイアウト1920を受け付ける(ステップS1901)。ここで、初期レイアウト1920には、対象となる倉庫の形状、及び倉庫内の立ち入り禁止領域1921等の情報が含まれる。 First, the computer receives an initial layout 1920 (step S1901). Here, the initial layout 1920 includes information such as the shape of the target warehouse and the restricted entry area 1921 in the warehouse.
 次に、計算機は、初期レイアウト1920である倉庫の出入口を設定する(ステップS1902)。具体的には、計算機は、初期レイアウト1920内の所定の位置に所定の数の出入口1922を設定する。なお、出入口の数及び位置は予め与えられるものとする。出入口が設定されたレイアウトは、図19に示すようなレイアウト1930になる。 Next, the computer sets the entrance / exit of the warehouse which is the initial layout 1920 (step S1902). Specifically, the computer sets a predetermined number of gateways 1922 at predetermined positions in the initial layout 1920. In addition, the number and position of an entrance / exit shall be given previously. The layout in which the entrance / exit is set becomes a layout 1930 as shown in FIG.
 次に、計算機は、レイアウト1930に対応する倉庫内に所定の位置に所定の数の棚1923を設定することによって、複数の棚配置レイアウト候補1940を生成する(ステップS1903)。 Next, the computer generates a plurality of shelf arrangement layout candidates 1940 by setting a predetermined number of shelves 1923 at predetermined positions in the warehouse corresponding to the layout 1930 (step S1903).
 具体的には、計算機は、レイアウト1930を入力として、棚の数及び棚の配置が異なる複数の棚配置レイアウト候補1940を出力する。棚の配置方法は、例えば、シミュレーテッドアニーリング等の最適化手法を用いる。ここでは、棚の配置が異なるN個の棚配置レイアウト候補が出力されるものとする。ここで、棚配置の最適化の評価関数として、例えば、棚の数や配置の形状が考えられる。 Specifically, the computer receives the layout 1930 and outputs a plurality of shelf arrangement layout candidates 1940 having different numbers of shelves and different arrangements of shelves. As an arrangement method of the shelves, for example, an optimization method such as simulated annealing is used. Here, it is assumed that N shelf arrangement layout candidates having different shelf arrangements are output. Here, as an evaluation function for optimizing the shelf arrangement, for example, the number of shelves and the shape of the arrangement can be considered.
 次に、計算機は、棚配置レイアウト候補1940のループ処理を開始する(ステップS1904)。具体的には、計算機は、複数の棚配置レイアウト候補1940の中から、対象の棚配置レイアウト候補1940を選択する。 Next, the computer starts a loop process for the shelf arrangement layout candidate 1940 (step S1904). Specifically, the computer selects a target shelf arrangement layout candidate 1940 from among a plurality of shelf arrangement layout candidates 1940.
 次に、計算機は、選択された棚配置レイアウト候補1940に対して通路の最適化処理を実行する(ステップS1905)。 Next, the computer executes a path optimization process for the selected shelf arrangement layout candidate 1940 (step S1905).
 ここでは、対象の棚配置レイアウト候補1940に対して、通路及び通路方向の最適化処理が実行される。計算機は、最適化処理の結果として、通路配置レイアウト候補1950を算出する。通路配置レイアウト候補1950の矢印1924は、通路及びその通路の方向を示す。1つの棚配置レイアウト候補1940に対して1つの通路配置レイアウト候補1950が出力される。 Here, the optimization process of the passage and the passage direction is executed on the target shelf arrangement layout candidate 1940. The computer calculates a passage layout layout candidate 1950 as a result of the optimization process. An arrow 1924 of the path layout layout candidate 1950 indicates the path and the direction of the path. One passage arrangement layout candidate 1950 is output for one shelf arrangement layout candidate 1940.
 なお、通路及び通路方向とは、例えば、棚又は荷物を載せるカート等の通路及びその進行方向を示す。ここで、通路及び通路方向の最適化処理の評価関数は出入口及び各棚の経路長等が考えられる。また、評価値が最小となるレイアウトが通路配置レイアウト候補1950として出力されるものとする。 Note that the passage and passage direction indicate, for example, a passage such as a shelf or a cart on which a load is placed and the traveling direction thereof. Here, as the evaluation function of the optimization process in the passage and the passage direction, the entrance / exit and the path length of each shelf can be considered. Further, it is assumed that the layout having the smallest evaluation value is output as the path layout layout candidate 1950.
 次に、計算機は、全ての棚配置レイアウト候補1940について通路の最適化処理が完了したか否かを判定する(ステップS1906)。 Next, the computer determines whether or not the passage optimization processing has been completed for all shelf arrangement layout candidates 1940 (step S1906).
 全ての棚配置レイアウト候補1940について通路の最適化処理が完了していないと判定された場合、計算機は、新たな棚配置レイアウト候補1940を選択し、同様の処理を実行する。一方、全ての棚配置レイアウト候補1940について通路の最適化処理が完了したと判定された場合、計算機は、N個の通路配置レイアウト候補1950の中から最適レイアウト1960を選択する(ステップS1907)。 When it is determined that the path optimization process has not been completed for all the shelf arrangement layout candidates 1940, the computer selects a new shelf arrangement layout candidate 1940 and executes the same process. On the other hand, when it is determined that the path optimization process has been completed for all the shelf layout layout candidates 1940, the computer selects the optimal layout 1960 from the N path layout layout candidates 1950 (step S1907).
 具体的には、計算機は、棚配置の最適化の評価関数の値、すなわち、評価値に基づいて、通路配置レイアウト候補1950の中から最適レイアウト1960を選択し、選択された最適レイアウト1960を処理結果として出力する。 Specifically, the computer selects the optimum layout 1960 from the passage arrangement layout candidates 1950 based on the value of the evaluation function of the shelf arrangement optimization, that is, the evaluation value, and processes the selected optimum layout 1960. Output as a result.
 前述の最適レイアウト問題の処理では、棚配置レイアウト候補1940のループ処理、及び通路の最適化処理の2つの最適化が行われる。ここで、1つの棚配置レイアウト候補1940に対する通路の最適化処理は、評価関数の演算処理に相当する。そこで、本実施例では、通路の最適化処理に対してニューラルネットワークを用いた演算処理を適用することによって処理の高速化を実現する。 In the above-described optimal layout problem processing, two optimizations are performed: loop processing of the shelf layout layout candidate 1940 and passage optimization processing. Here, the path optimization process for one shelf arrangement layout candidate 1940 corresponds to an evaluation function calculation process. Therefore, in this embodiment, the processing speed is increased by applying arithmetic processing using a neural network to the path optimization processing.
 通路の最適化処理では、1つの棚配置レイアウト候補1940が計算機に入力され、計算機は、出力として1つの通路配置レイアウト候補1950を出力する。 In the passage optimization process, one shelf arrangement layout candidate 1940 is input to the computer, and the computer outputs one passage arrangement layout candidate 1950 as an output.
 実施例3の計算機101は、実施例1及び実施例2に示す最適化処理を実現するために、まず、入力された棚配置レイアウト候補1940をグラフデータに変換する。ここで、図14から図16を用いて、棚配置レイアウト候補1940をグラフデータに変換する方法について説明する。 The computer 101 according to the third embodiment first converts the input shelf arrangement layout candidate 1940 into graph data in order to realize the optimization processing shown in the first and second embodiments. Here, a method of converting the shelf arrangement layout candidate 1940 into graph data will be described with reference to FIGS.
 図14は、実施例3の棚配置レイアウト候補1940のセル表現及びグラフ化の一例を示す説明図である。図15は、実施例3の棚配置レイアウト候補1940のグラフにおけるエッジのラベルの割り当て方法の一例を示す説明図である。図16は、実施例3の棚配置レイアウト候補1940のグラフデータの一例を示す説明図である。 FIG. 14 is an explanatory diagram illustrating an example of cell representation and graphing of the shelf arrangement layout candidate 1940 according to the third embodiment. FIG. 15 is an explanatory diagram illustrating an example of an edge label assignment method in the graph of the shelf arrangement layout candidate 1940 according to the third embodiment. FIG. 16 is an explanatory diagram illustrating an example of the graph data of the shelf arrangement layout candidate 1940 according to the third embodiment.
 計算機101は、棚配置レイアウト候補1940を図14に示すようなセルに分割する。また、計算機101は、各セルに、立ち入り禁止領域1921、出入口1922、棚1923及び通路1924に対応する値を設定する。ここでは、立ち入り禁止領域1921には「-1」、出入口1922には「0.5」、棚1923には「0」、また、通路1924には「1」が設定されるものとする。 The computer 101 divides the shelf arrangement layout candidate 1940 into cells as shown in FIG. Further, the computer 101 sets values corresponding to the restricted entry area 1921, the entrance 1922, the shelf 1923, and the passage 1924 in each cell. Here, it is assumed that “−1” is set in the restricted entry area 1921, “0.5” is set in the entrance 1922, “0” is set in the shelf 1923, and “1” is set in the passage 1924.
 以上の処理によって棚配置レイアウト候補1940を図14に示すようなセルの集合として表現できる。 Through the above processing, the shelf arrangement layout candidate 1940 can be expressed as a set of cells as shown in FIG.
 次に、計算機101は、セルの集合をグラフ化する。ここでは、セル1410-1及びセル1410-2に着目したセルの集合のグラフ化について説明する。 Next, the computer 101 graphs the set of cells. Here, graphing of a set of cells focusing on the cell 1410-1 and the cell 1410-2 will be described.
 計算機101は、セル1410-1及びセル1410-2等の各セルに対応するノードを生成する。計算機101は、セル1410-1に対応するノード1440-1と他のノードとの間にエッジを生成し、また、セル1410-2に対応するノード1411-1と他のノードとの間にエッジを生成する。 The computer 101 generates a node corresponding to each cell such as the cell 1410-1 and the cell 1410-2. The computer 101 generates an edge between the node 1440-1 corresponding to the cell 1410-1 and another node, and also generates an edge between the node 1411-1 corresponding to the cell 1410-2 and the other node. Is generated.
 本実施例では、セル1410-1から上下方向の2つ分のセルとセル1410-1との間でエッジが生成され、また、セル1410-1の左右方向の2つ分のセルとセル1410-1との間でエッジが生成される。また、本実施例では、セル1410-2から上方向に2つ分のセルとセル1410-2との間でエッジが生成され、また、セル1410-2の左右方向の2つ分のセルとセル1410-2との間でエッジが生成される。例えば、ノード1440-1とノード1440-2との間にエッジが生成され、また、ノード1440-1とノード1440-3との間にエッジが生成される。 In this embodiment, an edge is generated between two cells in the vertical direction from the cell 1410-1 and the cell 1410-1, and two cells in the horizontal direction of the cell 1410-1 and the cell 1410-1 are generated. An edge is generated between -1. Further, in this embodiment, an edge is generated between two cells in the upward direction from the cell 1410-2 and the cell 1410-2, and two cells in the left-right direction of the cell 1410-2 An edge is generated with the cell 1410-2. For example, an edge is generated between the node 1440-1 and the node 1440-2, and an edge is generated between the node 1440-1 and the node 1440-3.
 以上の処理によって、セル1410-1に着目したセルの集合は、グラフ1(1430-1)に示すようなグラフに変換され、また、セル1410-2に着目したセルの集合は、グラフ2(1430-2)に示すようなグラフに変換される。 Through the above processing, the set of cells focused on the cell 1410-1 is converted into a graph as shown in the graph 1 (1430-1), and the set of cells focused on the cell 1410-2 is converted to the graph 2 ( 1430-2).
 なお、ノード間を接続するエッジは、正方形、ひし形等の特定の形状、及び大きさ等を自由に設定できる。なお、本実施例では、値が「-1」であるセルとの間にはエッジは生成されないという禁止ルールが適用されているものとする。 Note that the edge connecting the nodes can be freely set to a specific shape such as a square or a rhombus, and a size. In the present embodiment, it is assumed that the prohibition rule that no edge is generated between cells having a value of “−1” is applied.
 次に、計算機101は、エッジにラベルを割り当てる。エッジに対するラベルの割り当てには予め定義されたラベル表1600を使用する。図16に示すラベル表1600は、エッジの起点となるセルからエッジの終点となるセルの方向及び距離に応じて「1」から「8」の番号(ラベル)が割り当てられる。計算機101は、着目するセルと他のセルの方向及び距離に基づいて、エッジにラベルを割り当てる。 Next, the computer 101 assigns a label to the edge. A pre-defined label table 1600 is used for assigning labels to edges. In the label table 1600 shown in FIG. 16, numbers (labels) “1” to “8” are assigned according to the direction and distance of the cell that is the end point of the edge from the cell that is the start point of the edge. The computer 101 assigns labels to the edges based on the direction and distance between the cell of interest and other cells.
 例えば、グラフ1(1430-1)の場合、エッジ1510-1は、ノード1440-1から「上方向」に「距離1」のノード1440-2と接続するエッジであるため、計算機101は、エッジ1510-1にラベル「1」を割り当てる。また、エッジ1510-2は、ノード1440-1から「上方向」に「距離2」のノード1440-2と接続するエッジであるため、計算機101は、エッジ1510-2にラベル「5」を割り当てる。一方、エッジ1510-3及びエッジ1510-4とは向きが逆のエッジ1510-3及びエッジ1510-4には別のラベルが割り当てられる。すなわち、エッジ1510-3は、ノード1440-2から「下方向」に「距離1」のノード1440-1と接続するエッジであるため、計算機101は、エッジ1510-3にラベル「2」を割り当てる。また、エッジ1510-4は、ノード1440-3から「下方向」に「距離2」のノード1440-1と接続するエッジであるため、計算機101は、エッジ1510-4にラベル「6」を割り当てる。 For example, in the case of graph 1 (1430-1), the edge 1510-1 is an edge that is connected to the node 1440-2 that is “distance 1” “upward” from the node 1440-1, so The label “1” is assigned to 1510-1. Further, since the edge 1510-2 is an edge that is connected to the node 1440-2 that is “distance 2” “upward” from the node 1440-1, the computer 101 assigns the label “5” to the edge 1510-2. . On the other hand, different labels are assigned to the edges 1510-3 and 1510-4 whose directions are opposite to those of the edges 1510-3 and 1510-4. That is, since the edge 1510-3 is an edge that is connected “downward” to the node 1440-1 “distance 1” from the node 1440-2, the computer 101 assigns the label “2” to the edge 1510-3. . Further, since the edge 1510-4 is an edge that is connected “downward” to the node 1440-1 at “distance 2” from the node 1440-3, the computer 101 assigns the label “6” to the edge 1510-4. .
 計算機101は、前述した処理を全てのエッジに対して実行する。以上のような処理を全てのセルに対して実行することによって、棚配置レイアウト候補1940が図16に示すようなグラフデータに変換される。なお、図16では図の煩雑さを避けるため、「距離2」であるエッジに割り当てられるラベル「5」、「6」、「7」及び「8」が割り当てられるエッジ、及びエッジによって接続されていないノードは省略している。 The computer 101 executes the above-described processing for all edges. By executing the above processing for all the cells, the shelf arrangement layout candidate 1940 is converted into graph data as shown in FIG. In FIG. 16, in order to avoid the complexity of the figure, the labels “5”, “6”, “7”, and “8” assigned to the edge of “distance 2” are connected by the edge and the edge. No nodes are omitted.
 計算機101は、複数の棚配置レイアウト候補1940の各々の複数のグラフデータを入力データとして、ニューラルネットワークの構築処理を実行する。なお、ニューラルネットワークの構築処理は実施例1と同一の処理であるため説明を省略する。 The computer 101 executes a neural network construction process using a plurality of graph data of each of the plurality of shelf arrangement layout candidates 1940 as input data. Note that the neural network construction process is the same as that of the first embodiment, and a description thereof will be omitted.
 図17は、実施例3の計算機101が実行する最適レイアウト問題の処理を説明するフローチャートである。なお、従来の最適化問題の処理と同一のステップには同一の符号を付し、処理の説明を省略する。 FIG. 17 is a flowchart for explaining the optimum layout problem processing executed by the computer 101 according to the third embodiment. The same steps as those of the conventional optimization problem processing are denoted by the same reference numerals, and the description of the processing is omitted.
 計算機101は、ステップS1904において選択された棚配置レイアウト候補1940を入力として、ニューラルネットワークを用いて評価値を算出する(ステップS1701)。ここでは、実施例2のステップS1301と同様の処理が実行される。ただし、評価関数が異なる。本実施例では、ニューラルネットワークを用いて算出された評価値が閾値より小さい場合、出力は「0」となる。 The computer 101 receives the shelf arrangement layout candidate 1940 selected in step S1904 and calculates an evaluation value using a neural network (step S1701). Here, the same processing as step S1301 of the second embodiment is executed. However, the evaluation function is different. In this embodiment, when the evaluation value calculated using the neural network is smaller than the threshold value, the output is “0”.
 次に、計算機101は、ニューラルネットワークを用いて算出された評価値が「0」であるか否かを判定する(ステップS1702)。 Next, the computer 101 determines whether or not the evaluation value calculated using the neural network is “0” (step S1702).
 ニューラルネットワークを用いて算出された評価値が「0」でないと判定された場合、計算機101は、ステップS1906に進む。 If it is determined that the evaluation value calculated using the neural network is not “0”, the computer 101 proceeds to step S1906.
 ニューラルネットワークを用いて算出された評価値が「0」であると判定された場合、計算機101は、通路の最適化処理を実行する(ステップS1905)。 When it is determined that the evaluation value calculated using the neural network is “0”, the computer 101 executes a path optimization process (step S1905).
 ここで、具体的な倉庫を例に、図17を適用した場合の演算処理の精度及び速度について述べる。ここでは、縦が「23」、横が「23」の倉庫を想定する。また、ステップS1903において、「923」個の棚配置レイアウト候補1940が決定されたものとする。また、「923」個の棚配置レイアウト候補1940のうち、「200」個の棚配置レイアウト候補1940を学習処理のサンプルデータとして計算機101に入力する。なお、残りの「723」個の棚配置レイアウト候補1940は、未知のデータとして扱う。 Here, taking a specific warehouse as an example, the accuracy and speed of arithmetic processing when FIG. 17 is applied will be described. Here, it is assumed that the warehouse is “23” vertically and “23” horizontally. In step S1903, “923” shelf layout layout candidates 1940 are determined. Of the “923” shelf layout layout candidates 1940, “200” shelf layout layout candidates 1940 are input to the computer 101 as sample data for the learning process. The remaining “723” shelf layout layout candidates 1940 are handled as unknown data.
 このとき、「200」個のサンプルデータに対する学習精度は100%であり、未知のデータを含めた全データに対する学習精度は97%となる。 At this time, the learning accuracy for “200” sample data is 100%, and the learning accuracy for all data including unknown data is 97%.
 本実施例では評価関数の最小値を求める問題であるため、評価値の下から10位のサンプルデータに着目した場合、当該サンプルデータは全てのニューラルネットワークにおいて評価値が低いと判定される。そのため、評価関数の最小値を求める問題に、ニューラルネットワークの出力を用いて、所定のデータに対する評価関数の演算処理をスキップしても最終的な出力結果は変わらない。したがって、本実施例の処理は、従来の最適化問題の処理と同一の最適レイアウト1960が出力される。したがって、演算結果は従来と同一の精度となる。 In this embodiment, since it is a problem of obtaining the minimum value of the evaluation function, when attention is paid to the 10th sample data from the bottom of the evaluation value, it is determined that the sample data has a low evaluation value in all the neural networks. Therefore, the final output result does not change even if the calculation function of the evaluation function for the predetermined data is skipped by using the output of the neural network for the problem of obtaining the minimum value of the evaluation function. Therefore, the processing of the present embodiment outputs the same optimal layout 1960 as the conventional optimization problem processing. Therefore, the calculation result has the same accuracy as the conventional one.
 一方、通路の最適化処理が実行されたデータの数は「923」個の棚配置レイアウト候補1940のうちの3%程度となり、従来の処理より5倍の高速化が実現できる。 On the other hand, the number of data on which the passage optimization process has been executed is about 3% of the “923” shelf layout layout candidates 1940, which can realize a speed increase of 5 times that of the conventional process.
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。 In addition, this invention is not limited to the above-mentioned Example, Various modifications are included. Further, for example, the above-described embodiments are described in detail for easy understanding of the present invention, and are not necessarily limited to those provided with all the described configurations. Further, a part of the configuration of each embodiment can be added to, deleted from, or replaced with another configuration.
 また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるCPUが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。 In addition, each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit. The present invention can also be realized by software program codes that implement the functions of the embodiments. In this case, a storage medium in which the program code is recorded is provided to the computer, and a CPU included in the computer reads the program code stored in the storage medium. In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code itself and the storage medium storing it constitute the present invention. Examples of storage media for supplying such program codes include flexible disks, CD-ROMs, DVD-ROMs, hard disks, SSDs (Solid State Drives), optical disks, magneto-optical disks, CD-Rs, magnetic tapes, A non-volatile memory card, ROM, or the like is used.
 また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java等の広範囲のプログラム又はスクリプト言語で実装できる。 Further, the program code for realizing the functions described in this embodiment can be implemented by a wide range of programs or script languages such as assembler, C / C ++, Perl, Shell, PHP, Java, and the like.
 さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるCPUが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。 Furthermore, by distributing the program code of the software that realizes the functions of the embodiments via a network, the program code is stored in a storage means such as a hard disk or memory of a computer or a storage medium such as a CD-RW or CD-R. The CPU included in the computer may read and execute the program code stored in the storage unit or the storage medium.
 上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。 In the above-described embodiments, the control lines and information lines indicate those that are considered necessary for the explanation, and do not necessarily indicate all the control lines and information lines on the product. All the components may be connected to each other.

Claims (14)

  1.  プロセッサ、及び前記プロセッサに接続されるメモリを備え、一つ以上のニューロンを含む複数の層から構成されるニューラルネットワークを用いた演算処理を実行する計算機であって、
     一つの層に含まれる一つのニューロンと、他の層に含まれる少なくとも一つのニューロンとの間には接続が構成され、
     前記一つの層に含まれる一つのニューロンに入力された値は、重みとともに、前記接続によって接続される前記他の層に含まれる少なくとも一つのニューロンに出力され、
     前記計算機は、
     複数のノード及び前記複数のノード間を接続する一つ以上のエッジから構成されるグラフデータ、及びニューラルネットワークに入力される一つ以上の値を格納するサンプルデータを格納する記憶部と、
     前記グラフデータを用いて、前記ニューラルネットワークを構築する構築部と、
     前記サンプルデータを前記ニューラルネットワークに入力することによって前記ニューラルネットワーク内の複数の接続の前記重みを決定する学習処理を実行する学習処理部と、
     を備え、
     前記構築部は、
     前記グラフデータに含まれる前記複数のノードに基づいて、前記複数の層の各々の一つ以上のニューロンを生成し、
     前記グラフデータに含まれる前記一つ以上のエッジに基づいて、前記複数の層の各々に含まれる前記一つ以上のニューロン間の前記接続を生成することによって前記ニューラルネットワークを構築し、
     前記構築されたニューラルネットワークの情報を前記記憶部に格納することを特徴とする計算機。
    A computer comprising a processor and a memory connected to the processor, and executing a calculation process using a neural network composed of a plurality of layers including one or more neurons,
    A connection is formed between one neuron included in one layer and at least one neuron included in another layer,
    A value input to one neuron included in the one layer is output to at least one neuron included in the other layer connected by the connection together with a weight,
    The calculator is
    A storage unit for storing a plurality of nodes and graph data composed of one or more edges connecting the plurality of nodes, and sample data for storing one or more values input to the neural network;
    Using the graph data, a construction unit that constructs the neural network;
    A learning processing unit that executes a learning process for determining the weights of a plurality of connections in the neural network by inputting the sample data to the neural network;
    With
    The construction unit
    Generating one or more neurons of each of the plurality of layers based on the plurality of nodes included in the graph data;
    Constructing the neural network by generating the connection between the one or more neurons included in each of the plurality of layers based on the one or more edges included in the graph data;
    A computer characterized in that information of the constructed neural network is stored in the storage unit.
  2.  請求項1に記載の計算機であって、
     前記複数の層は、複数のニューロンを含む入力層、前記複数のニューロンを含む一つ以上の中間層、及び前記一つ以上のニューロンを含む出力層を含み、
     前記構築部は、
     前記出力層の設定に関する第1の設定情報を含む定義情報を受け付け、
     前記第1の設定情報に基づいて、前記出力層を生成し、
     前記グラフデータに含まれる複数のノードの各々に対応するニューロンを含む前記入力層を生成し、
     前記グラフデータに含まれる複数のノードの各々に対応するニューロンを含むマップグラフを一つ以上生成することによって中間層を生成することを特徴とする計算機。
    The computer according to claim 1,
    The plurality of layers includes an input layer including a plurality of neurons, one or more intermediate layers including the plurality of neurons, and an output layer including the one or more neurons,
    The construction unit
    Receiving definition information including first setting information regarding the setting of the output layer;
    Based on the first setting information, the output layer is generated,
    Generating the input layer including neurons corresponding to each of a plurality of nodes included in the graph data;
    An intermediate layer is generated by generating one or more map graphs including neurons corresponding to each of a plurality of nodes included in the graph data.
  3.  請求項2に記載の計算機であって、
     前記定義情報は、一つの中間層に含まれる前記マップグラフの数に関する第2の設定情報を含み、
     前記構築部は、
     前記入力層、前記中間層、及び前記出力層を含む前記ニューラルネットワークを構成する場合に、前記第2の設定情報に基づいて前記マップグラフを一つ以上生成することによって前記中間層を生成し、
     前記入力層に含まれる一つのニューロンを選択し、
     前記グラフデータを参照して、前記選択されたニューロンに対応するノードとエッジを介して接続されるノードを特定し、
     前記中間層に含まれ、かつ、前記特定されたノードに対応するニューロンと、前記選択されたニューロンとの間に前記接続を生成し、
     前記一つ以上のマップグラフに含まれる複数のニューロンの各々と、前記出力層に含まれる全てのニューロンとの間に前記接続を生成することを特徴とする計算機。
    The computer according to claim 2,
    The definition information includes second setting information regarding the number of the map graphs included in one intermediate layer,
    The construction unit
    When configuring the neural network including the input layer, the intermediate layer, and the output layer, generating the intermediate layer by generating one or more map graphs based on the second setting information,
    Select one neuron included in the input layer,
    With reference to the graph data, a node connected to the node corresponding to the selected neuron via an edge is identified,
    Creating the connection between a neuron included in the intermediate layer and corresponding to the identified node and the selected neuron;
    A computer that generates the connection between each of a plurality of neurons included in the one or more map graphs and all neurons included in the output layer.
  4.  請求項3に記載の計算機であって、
     前記グラフデータは、前記ノード間の相関関係に基づいて決定されたエッジのラベルを含み、
     前記構築部は、一つのラベルと、当該ラベルが付与されたエッジに基づいて生成された前記複数の接続とを対応付けた重みテーブルを生成し、前記生成された重みテーブルを前記記憶部に格納し、
     前記学習処理部は、
     前記サンプルデータと前記重みテーブルを用いた誤差逆伝播処理を実行することによって、同一の前記ラベルが付与された前記接続の重みを決定し、
     前記ラベルと前記接続の重みとを対応付けた情報を前記記憶部に格納することを特徴とする計算機。
    The computer according to claim 3, wherein
    The graph data includes an edge label determined based on a correlation between the nodes;
    The construction unit generates a weight table in which one label is associated with the plurality of connections generated based on the edge to which the label is attached, and stores the generated weight table in the storage unit And
    The learning processing unit
    By performing an error back propagation process using the sample data and the weight table, the weight of the connection given the same label is determined,
    Information that associates the label with the connection weight is stored in the storage unit.
  5.  請求項3に記載の計算機であって、
     前記計算機は、任意のデータの識別に用いる評価関数及び前記学習処理部が出力した学習済のニューラルネットワークを用いて任意のデータに対する識別処理を実行する識別処理部を備え、
     前記ニューラルネットワークは、前記評価関数に対応するニューラルネットワークであり、
     前記識別処理部は、
     対象のデータの入力を受け付けた場合、前記ニューラルネットワークに前記対象のデータを入力することによって第1の演算処理を実行し、
     前記第1の演算処理の出力値に基づいて、前記評価関数を用いた第2の演算処理を実行するか否かを判定し、
     前記第2の演算処理を実行すると判定された場合、前記対象のデータを前記評価関数に入力することによって前記第2の演算処理を実行し、
     前記第2の演算処理の出力値に基づいて、前記対象のデータの識別を行うことを特徴とする計算機。
    The computer according to claim 3, wherein
    The computer includes an identification processing unit that executes identification processing for arbitrary data using an evaluation function used for identification of arbitrary data and a learned neural network output by the learning processing unit,
    The neural network is a neural network corresponding to the evaluation function;
    The identification processing unit
    When receiving input of target data, the first calculation process is executed by inputting the target data to the neural network,
    Based on the output value of the first calculation process, it is determined whether to execute the second calculation process using the evaluation function,
    If it is determined to execute the second arithmetic processing, the second arithmetic processing is executed by inputting the target data into the evaluation function;
    A computer that identifies the target data based on an output value of the second arithmetic processing.
  6.  請求項5に記載の計算機であって、
     前記対象のデータを解析し、前記解析の結果に基づいて、前記複数のノードを生成し、前記複数のノード間の相関関係に基づいて一つ以上のエッジを生成することによって前記グラフデータを生成し、前記記憶部に格納するグラフデータ生成部を備えることを特徴とする計算機。
    The computer according to claim 5, wherein
    Analyzing the target data, generating the plurality of nodes based on the result of the analysis, and generating the graph data by generating one or more edges based on a correlation between the plurality of nodes And a graph data generation unit stored in the storage unit.
  7.  請求項6に記載の計算機であって、
     前記複数のノード間の相関関係は、前記複数のノードの各々の配置、及び前記ノード間の距離であることを特徴とする計算機。
    The computer according to claim 6, wherein
    The correlation between the plurality of nodes is an arrangement of each of the plurality of nodes and a distance between the nodes.
  8.  プロセッサ、及び前記プロセッサに接続されるメモリを備える計算機が実行するニューラルネットワークを用いた演算方法であって、
     前記ニューラルネットワークは、一つ以上のニューロンを含む複数の層から構成され、
     一つの層に含まれる一つのニューロンと、他の層に含まれる少なくとも一つのニューロンとの間には接続が構成され、
     前記一つの層に含まれる一つのニューロンに入力された値は、重みとともに、前記接続によって接続される前記他の層に含まれる少なくとも一つのニューロンに出力され、
     前記メモリは、複数のノード及び前記複数のノード間を接続する一つ以上のエッジから構成されるグラフデータ、及びニューラルネットワークに入力される一つ以上の値を格納するサンプルデータを格納し、
     前記ニューラルネットワークを用いた演算方法は、
     前プロセッサが、前記グラフデータに含まれる前記複数のノードに基づいて、前記複数の層の各々の一つ以上のニューロンを生成する第1のステップと、
     前記プロセッサが、前記グラフデータに含まれる前記一つ以上のエッジに基づいて、前記複数の層の各々に含まれる前記一つ以上のニューロン間の前記接続を生成することによって前記ニューラルネットワークを構築し、前記構築されたニューラルネットワークの情報を前記メモリに格納する第2のステップと、
     前記プロセッサが、前記サンプルデータを前記ニューラルネットワークに入力することによって前記ニューラルネットワーク内の複数の接続の前記重みを決定する学習処理を実行し、前記学習処理の結果を前記メモリに格納する第3のステップと、
     を含むことを特徴とするニューラルネットワークを用いた演算方法。
    An arithmetic method using a neural network executed by a processor and a computer having a memory connected to the processor,
    The neural network is composed of a plurality of layers including one or more neurons,
    A connection is formed between one neuron included in one layer and at least one neuron included in another layer,
    A value input to one neuron included in the one layer is output to at least one neuron included in the other layer connected by the connection together with a weight,
    The memory stores graph data composed of a plurality of nodes and one or more edges connecting the plurality of nodes, and sample data for storing one or more values input to a neural network,
    The calculation method using the neural network is:
    A first step of generating a one or more neurons of each of the plurality of layers based on the plurality of nodes included in the graph data;
    The processor constructs the neural network by generating the connection between the one or more neurons included in each of the plurality of layers based on the one or more edges included in the graph data. A second step of storing information of the constructed neural network in the memory;
    The processor executes a learning process for determining the weights of a plurality of connections in the neural network by inputting the sample data to the neural network, and stores a result of the learning process in the memory. Steps,
    A calculation method using a neural network characterized by comprising:
  9.  請求項8に記載のニューラルネットワークを用いた演算方法であって、
     前記複数の層は、複数のニューロンを含む入力層、前記複数のニューロンを含む一つ以上の中間層、及び前記一つ以上のニューロンを含む出力層を含み、
     前記第1のステップは、
     前記プロセッサが、前記出力層の設定に関する第1の設定情報を含む定義情報を受け付けるステップと、
     前記プロセッサが、前記第1の設定情報に基づいて、前記出力層を生成するステップと、
     前記プロセッサが、前記グラフデータに含まれる複数のノードの各々に対応するニューロンを含む前記入力層を生成するステップと、
     前記プロセッサが、前記グラフデータに含まれる複数のノードの各々に対応するニューロンを含むマップグラフを一つ以上生成することによって中間層を生成するステップと、を含むことを特徴とするニューラルネットワークを用いた演算方法。
    A calculation method using the neural network according to claim 8,
    The plurality of layers includes an input layer including a plurality of neurons, one or more intermediate layers including the plurality of neurons, and an output layer including the one or more neurons,
    The first step includes
    The processor accepting definition information including first setting information relating to the setting of the output layer;
    The processor generating the output layer based on the first setting information;
    The processor generating the input layer including a neuron corresponding to each of a plurality of nodes included in the graph data;
    Using the neural network, wherein the processor includes generating an intermediate layer by generating one or more map graphs including neurons corresponding to each of a plurality of nodes included in the graph data. Calculation method.
  10.  請求項9に記載のニューラルネットワークを用いた演算方法であって、
     前記定義情報は、一つの中間層に含まれる前記マップグラフの数に関する第2の設定情報を含み、
     前記第1のステップは、前記プロセッサが、前記入力層、前記中間層、及び前記出力層を含む前記ニューラルネットワークを構成する場合に、前記第2の設定情報に基づいて前記マップグラフを一つ以上生成することによって前記中間層を生成するステップを含み、
     前記第2のステップは、
     前記プロセッサが、前記入力層に含まれる一つのニューロンを選択するステップと、
     前記プロセッサが、前記グラフデータを参照して、前記選択されたニューロンに対応するノードとエッジを介して接続されるノードを特定するステップと、
     前記プロセッサが、前記中間層に含まれ、かつ、前記特定されたノードに対応するニューロンと、前記選択されたニューロンとの間に前記接続を生成するステップと、
     前記プロセッサが、前記一つ以上のマップグラフに含まれる複数のニューロンの各々と、前記出力層に含まれる全てのニューロンとの間に前記接続を生成するステップと、を含むことを特徴とするニューラルネットワークを用いた演算方法。
    A calculation method using the neural network according to claim 9,
    The definition information includes second setting information regarding the number of the map graphs included in one intermediate layer,
    In the first step, when the processor constitutes the neural network including the input layer, the intermediate layer, and the output layer, one or more map graphs are generated based on the second setting information. Generating the intermediate layer by generating,
    The second step includes
    The processor selecting a neuron included in the input layer;
    The processor refers to the graph data and identifies a node connected to a node corresponding to the selected neuron via an edge;
    The processor generating the connection between a neuron included in the intermediate layer and corresponding to the identified node and the selected neuron;
    Generating a connection between each of a plurality of neurons included in the one or more map graphs and all of the neurons included in the output layer; Calculation method using a network.
  11.  請求項10に記載のニューラルネットワークを用いた演算方法であって、
     前記グラフデータは、前記ノード間の相関関係に基づいて決定されたエッジのラベルを含み、
     前記第2のステップは、前記プロセッサが、一つのラベルと、当該ラベルが付与されたエッジに基づいて生成された前記複数の接続とを対応付けた重みテーブルを生成し、前記生成された重みテーブルを前記メモリに格納するステップを含み、
     前記第3のステップは、
     前記プロセッサが、前記サンプルデータと前記重みテーブルを用いた誤差逆伝播処理を実行することによって、同一の前記ラベルが付与された前記接続の重みを決定するステップと、
     前記プロセッサが、前記ラベルと前記接続の重みとを対応付けた情報を前記メモリに格納するステップと、を含むことを特徴とするニューラルネットワークを用いた演算方法。
    A calculation method using the neural network according to claim 10,
    The graph data includes an edge label determined based on a correlation between the nodes;
    In the second step, the processor generates a weight table in which one label is associated with the plurality of connections generated based on an edge to which the label is attached, and the generated weight table Storing in the memory,
    The third step includes
    The processor determines a weight of the connection given the same label by executing an error back propagation process using the sample data and the weight table;
    And a step of storing, in the memory, information in which the processor associates the label with the connection weight in the memory.
  12.  請求項10に記載のニューラルネットワークを用いた演算方法であって、
     前記ニューラルネットワークは、任意のデータの識別に用いる評価関数に対応するニューラルネットワークであり、
     前記ニューラルネットワークを用いた演算方法は、
     前記プロセッサが、対象のデータの入力を受け付けた場合、前記学習処理が実行されたニューラルネットワークに前記対象のデータを入力することによって第1の演算処理を実行するステップと、
     前記プロセッサが、前記第1の演算処理の出力値に基づいて、前記評価関数を用いた第2の演算処理を実行するか否かを判定するステップと、
     前記プロセッサが、前記第2の演算処理を実行すると判定された場合、前記対象のデータを前記評価関数に入力することによって前記第2の演算処理を実行するステップと、
     前記プロセッサが、前記第2の演算処理の出力値に基づいて、前記対象のデータの識別を行うステップと、を含むことを特徴とするニューラルネットワークを用いた演算方法。
    A calculation method using the neural network according to claim 10,
    The neural network is a neural network corresponding to an evaluation function used for identifying arbitrary data,
    The calculation method using the neural network is:
    When the processor receives input of target data, executing the first calculation process by inputting the target data to the neural network on which the learning process has been executed;
    A step of determining whether or not the processor executes a second calculation process using the evaluation function based on an output value of the first calculation process;
    When it is determined that the processor executes the second arithmetic processing, the second arithmetic processing is executed by inputting the target data into the evaluation function;
    A step of identifying the target data based on an output value of the second calculation process; and a calculation method using a neural network.
  13.  請求項12に記載のニューラルネットワークを用いた演算方法であって、
     前記プロセッサが、前記対象のデータを解析するステップと、
     前記プロセッサが、前記解析の結果に基づいて、前記複数のノードを生成し、前記複数のノード間の相関関係に基づいて一つ以上のエッジを生成することによって前記グラフデータを生成し、前記メモリに格納するステップと、を含むことを特徴とするニューラルネットワークを用いた演算方法。
    A calculation method using the neural network according to claim 12,
    The processor analyzing the data of interest;
    The processor generates the graph data by generating the plurality of nodes based on a result of the analysis, and generating one or more edges based on a correlation between the plurality of nodes, and the memory And a step of storing in a neural network.
  14.  請求項13に記載のニューラルネットワークを用いた演算方法であって、
     前記複数のノード間の相関関係は、前記複数のノードの各々の配置、及び前記ノード間の距離であることを特徴とするニューラルネットワークを用いた演算方法。
    A calculation method using the neural network according to claim 13,
    The correlation method between the plurality of nodes is an arrangement of each of the plurality of nodes and a distance between the nodes.
PCT/JP2015/062767 2015-04-28 2015-04-28 Computer, and calculation method using neural network WO2016174725A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2015/062767 WO2016174725A1 (en) 2015-04-28 2015-04-28 Computer, and calculation method using neural network
JP2017515312A JP6205526B2 (en) 2015-04-28 2015-04-28 Calculation method using computer and neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/062767 WO2016174725A1 (en) 2015-04-28 2015-04-28 Computer, and calculation method using neural network

Publications (1)

Publication Number Publication Date
WO2016174725A1 true WO2016174725A1 (en) 2016-11-03

Family

ID=57198250

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/062767 WO2016174725A1 (en) 2015-04-28 2015-04-28 Computer, and calculation method using neural network

Country Status (2)

Country Link
JP (1) JP6205526B2 (en)
WO (1) WO2016174725A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018135515A1 (en) * 2017-01-23 2018-07-26 日本電気株式会社 Information processing device, neural network design method, and recording medium
CN110687905A (en) * 2019-09-11 2020-01-14 珠海市众创芯慧科技有限公司 Unmanned intelligent vehicle based on integration of multiple sensing technologies
CN111837141A (en) * 2018-05-23 2020-10-27 株式会社东芝 Information processing apparatus, information processing method, and storage medium
JP7424137B2 (en) 2019-05-22 2024-01-30 富士通株式会社 Scheduling operations

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4315386B2 (en) * 2005-03-04 2009-08-19 日本電信電話株式会社 Minimum path calculation method, apparatus thereof, and communication network using the same

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TAKAAKI KIKUCHI ET AL.: "Gene Regulatory Network Prediction using a Dynamic Gaussian Process: MCMC approach", IPSJ SIG NOTES, vol. 2011 -BI, no. 6, 23 June 2011 (2011-06-23), pages 1 - 6 *
YOICHI MOTOMURA: "Modeling with learge scale data by Bayesian networks", THE JAPANESE SOCIETY FOR ARTIFICIAL INTELLIGENCE DAI 4 KAI JOHO TOGO KENKYUKAI SHIRYO, 28 July 1997 (1997-07-28), pages 21 - 25 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018135515A1 (en) * 2017-01-23 2018-07-26 日本電気株式会社 Information processing device, neural network design method, and recording medium
JPWO2018135515A1 (en) * 2017-01-23 2019-11-14 日本電気株式会社 Information processing apparatus, neural network design method and program
JP7063274B2 (en) 2017-01-23 2022-05-09 日本電気株式会社 Information processing equipment, neural network design method and program
US11669727B2 (en) 2017-01-23 2023-06-06 Nec Corporation Information processing device, neural network design method, and recording medium
CN111837141A (en) * 2018-05-23 2020-10-27 株式会社东芝 Information processing apparatus, information processing method, and storage medium
JP7424137B2 (en) 2019-05-22 2024-01-30 富士通株式会社 Scheduling operations
CN110687905A (en) * 2019-09-11 2020-01-14 珠海市众创芯慧科技有限公司 Unmanned intelligent vehicle based on integration of multiple sensing technologies

Also Published As

Publication number Publication date
JPWO2016174725A1 (en) 2017-08-17
JP6205526B2 (en) 2017-09-27

Similar Documents

Publication Publication Date Title
Andrés et al. Efficient aerodynamic design through evolutionary programming and support vector regression algorithms
US20190130277A1 (en) Ensembling of neural network models
CA3085897A1 (en) Evolutionary architectures for evolution of deep neural networks
JP5881048B2 (en) Information processing system and information processing method
CN113449858A (en) Processing method of neural network model and related equipment
JP6205526B2 (en) Calculation method using computer and neural network
Meera et al. Retracted article: a hybrid metaheuristic approach for efficient feature selection methods in big data
US20200167660A1 (en) Automated heuristic deep learning-based modelling
CN107644051A (en) System and method for the packet of similar entity
Muneer et al. Genetic algorithm based intelligent system for estate value estimation
Wang et al. Crisscross Harris hawks optimizer for global tasks and feature selection
Zamri et al. Multi-discrete genetic algorithm in hopfield neural network with weighted random k satisfiability
Cheriguene et al. A new hybrid classifier selection model based on mRMR method and diversity measures
Karthick et al. An optimal partitioning and floor planning for VLSI circuit design based on a hybrid bio-inspired whale optimization and adaptive bird swarm optimization (WO-ABSO) algorithm
Zheng et al. Multi-class indoor semantic segmentation with deep structured model
Kuchaki Rafsanjani et al. A similarity-based mechanism to control genetic algorithm and local search hybridization to solve traveling salesman problem
Ashmore et al. A method for finding similarity between multi-layer perceptrons by forward bipartite alignment
CN116629352A (en) Hundred million-level parameter optimizing platform
Kumar et al. Twitter Data Analysis Using Hadoop and'R'and Emotional Analysis Using Optimized SVNN.
Harde et al. Design and implementation of ACO feature selection algorithm for data stream mining
Fedorchenko et al. Modified genetic algorithm to determine the location of the distribution power supply networks in the city
Babatunde et al. Comparative analysis of genetic algorithm and particle swam optimization: An application in precision agriculture
Nikolos On the use of multiple surrogates within a differential evolution procedure for high-lift airfoil design
Kampolis et al. Distributed evolutionary algorithms with hierarchical evaluation
Li et al. GAP: Goal-Aware Prediction with Hierarchical Interactive Representation for Vehicle Trajectory

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15890709

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017515312

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15890709

Country of ref document: EP

Kind code of ref document: A1