WO2023210665A1 - 計算グラフの改善 - Google Patents
計算グラフの改善 Download PDFInfo
- Publication number
- WO2023210665A1 WO2023210665A1 PCT/JP2023/016361 JP2023016361W WO2023210665A1 WO 2023210665 A1 WO2023210665 A1 WO 2023210665A1 JP 2023016361 W JP2023016361 W JP 2023016361W WO 2023210665 A1 WO2023210665 A1 WO 2023210665A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- predetermined
- learning
- data
- information processing
- calculation graph
- Prior art date
Links
- 230000006870 function Effects 0.000 claims abstract description 101
- 230000010365 information processing Effects 0.000 claims abstract description 96
- 238000013528 artificial neural network Methods 0.000 claims abstract description 22
- 230000004913 activation Effects 0.000 claims abstract description 14
- 238000003672 processing method Methods 0.000 claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims description 135
- 230000008859 change Effects 0.000 claims description 5
- 238000012549 training Methods 0.000 abstract description 12
- 238000000034 method Methods 0.000 abstract description 9
- 238000012545 processing Methods 0.000 description 15
- 230000007786 learning performance Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000009466 transformation Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000012886 linear function Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000012887 quadratic function Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000012888 cubic function Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000015654 memory Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/0985—Hyperparameter optimisation; Meta-learning; Learning-to-learn
Definitions
- the present invention relates to an information processing method, a recording medium, and an information processing device that can provide an appropriate calculation graph.
- Patent Document 1 describes modifying a calculation graph representing a function used in a neural network.
- learning using a neural network is formulated as optimization of a loss function.
- a backpropagation method is used to minimize the output of the loss function.
- One way to implement back-propagation is to create a computation graph and then trace it back. At this time, by changing the number of nodes in the computational graph, the relationship between edges and nodes, the functions associated with each node, etc., the computational graph can have an arbitrary configuration.
- one of the objects of the present invention is to provide an information processing method, a recording medium, and an information processing device that make it possible to make a calculation graph that constitutes a neural network more appropriate.
- An information processing method includes one or more processors included in an information processing device inputting predetermined data into a predetermined learning model using a neural network expressed by a predetermined calculation graph. performing learning, modifying the predetermined data and/or the predetermined calculation graph, the function being associated with a predetermined node of a predetermined layer in the predetermined calculation graph and the output value of the function; Of the activation functions to be input, the method includes changing the function, the changing, obtaining a learning result of the learning using changed predetermined data and/or a predetermined calculation graph, and the learning.
- a prediction model generated by the supervised learning which inputs predetermined data and outputs a specific calculation graph, is executed.
- the present invention it is possible to provide an information processing method, a program, and an information processing device that make it possible to make a calculation graph that constitutes a neural network more appropriate.
- FIG. 1 is a diagram illustrating an example of a system configuration according to an embodiment.
- FIG. 1 is a diagram illustrating an example of a physical configuration of an information processing device according to an embodiment.
- FIG. 1 is a diagram illustrating an example of processing blocks of an information processing device according to an embodiment. It is a figure showing an example of a part of layer concerning an embodiment.
- FIG. 1 is a diagram illustrating an example of processing blocks of an information processing device according to an embodiment. It is a figure which shows an example of the information regarding the calculation graph based on embodiment.
- FIG. 7 is a diagram illustrating an example of related data between information regarding predetermined data and information regarding an appropriate calculation graph according to the embodiment.
- 2 is a flowchart illustrating an example of a process related to generation of a predictive model according to an embodiment. 2 is a flowchart illustrating an example of processing in an information processing apparatus used by a user according to an embodiment.
- FIG. 1 is a diagram showing an example of a system configuration according to an embodiment.
- the server 10 and each information processing device 20A, 20B, 20C, and 20D are connected to be able to transmit and receive data via a network.
- the information processing device is not individually distinguished, it is also referred to as the information processing device 20.
- the server 10 is an information processing device that can collect and analyze data, and may be composed of one or more information processing devices.
- the information processing device 20 is an information processing device that can perform machine learning, such as a smartphone, a personal computer, a tablet terminal, a server, or a connected car. Note that the information processing device 20 may be a device that is connected directly or indirectly to invasive or non-invasive electrodes that sense brain waves, and is capable of analyzing, transmitting and receiving brain wave data.
- the server 10 uses, for example, various data sets to input one of the data sets into a learning model that uses a neural network expressed by one of various computational graphs. Execute. At this time, the server 10 associates and stores the learning performance for a predetermined data set and a predetermined calculation graph.
- the server 10 uses learning results (for example, learning performance) using an arbitrary data set and an arbitrary calculation graph as training data, and makes a prediction that identifies a calculation graph with high learning performance for predetermined data. Train and generate models.
- learning results for example, learning performance
- the server 10 may change the calculation graph by changing the function associated with each node of the calculation graph. Note that this function is preferably a differentiable function in consideration of the error backpropagation method.
- FIG. 2 is a diagram illustrating an example of the physical configuration of the information processing device 10 according to the embodiment.
- the information processing device 10 includes one or more CPUs (Central Processing Unit) 10a corresponding to a calculation section, a RAM (Random Access Memory) 10b corresponding to a storage section, and a ROM (Read Only Memory) 10c corresponding to a storage section. , a communication section 10d, an input section 10e, and a display section 10f. These components are connected to each other via a bus so that they can transmit and receive data.
- CPUs Central Processing Unit
- RAM Random Access Memory
- ROM Read Only Memory
- the information processing device 10 is composed of one computer, but the information processing device 10 may be realized by combining a plurality of computers or a plurality of calculation units. Further, the configuration shown in FIG. 2 is an example, and the information processing device 10 may have configurations other than these, or may not have some of these configurations.
- the CPU 10a is a control unit that performs control related to the execution of programs stored in the RAM 10b or ROM 10c, and performs calculations and processing of data.
- the CPU 10a runs a learning program (learning program) that performs learning using a learning model to examine a more appropriate calculation graph, and a learning program that generates a predictive model that outputs an appropriate calculation graph when arbitrary data is input.
- This is an arithmetic unit that executes a program (prediction program) that performs the following.
- the CPU 10a receives various data from the input section 10e and the communication section 10d, and displays the data calculation results on the display section 10f or stores them in the RAM 10b.
- the RAM 10b is a storage unit in which data can be rewritten, and may be formed of, for example, a semiconductor storage element.
- the RAM 10b stores programs executed by the CPU 10a, calculation graph data related to various calculation graphs, prediction models for predicting appropriate calculation graphs, information regarding learning target data, and correspondence relationships between appropriate calculation graphs corresponding to this data. Data such as related data shown may be stored. Note that these are just examples, and the RAM 10b may store data other than these, or some of them may not be stored.
- the ROM 10c is a storage unit from which data can be read, and may be composed of, for example, a semiconductor storage element.
- the ROM 10c may store, for example, a learning program or data that is not rewritten.
- the communication unit 10d is an interface that connects the information processing device 10 to other devices.
- the communication unit 10d may be connected to a communication network such as the Internet.
- the input unit 10e receives data input from the user, and may include, for example, a keyboard and a touch panel.
- the display unit 10f visually displays the calculation results by the CPU 10a, and may be configured by, for example, an LCD (Liquid Crystal Display). Displaying the calculation results on the display unit 10f can contribute to XAI (eXplainable AI).
- the display unit 10f may display learning results and function data, for example.
- the learning program may be provided by being stored in a computer-readable storage medium such as the RAM 10b or ROM 10c, or may be provided via a communication network connected by the communication unit 10d.
- the CPU 10a executes a learning program to realize various operations described below using FIG. 3.
- the information processing device 10 may include an LSI (Large-Scale Integration) in which a CPU 10a, a RAM 10b, and a ROM 10c are integrated.
- the information processing device 10 may include a GPU (Graphical Processing Unit) or an ASIC (Application Specific Integrated Circuit).
- the configuration of the information processing device 20 is similar to the configuration of the information processing device 10 shown in FIG. 2, so the description thereof will be omitted. Further, the information processing device 10 and the information processing device 20 only need to have a CPU 10a, a RAM 10b, etc., which are basic configurations for data processing, and do not need to be provided with an input section 10e or a display section 10f. . Further, the input section 10e and the display section 10f may be connected from the outside using an interface.
- FIG. 3 is a diagram illustrating an example of processing blocks of the information processing device 10 according to the embodiment.
- the information processing device 10 includes an acquisition section 11 , a first learning section 12 , a changing section 13 , a second learning section 14 , an association section 15 , an output section 16 , and a storage section 17 .
- the storage unit 17 may be realized by a RAM 10b and/or a ROM 10c.
- the acquisition unit 11 acquires predetermined data.
- the acquisition unit 11 may acquire known data sets such as image data, series data, text data, etc. as the predetermined data.
- the acquisition unit 11 may acquire data stored in the storage unit 17 or data transmitted by another information processing device.
- the first learning unit 12 performs learning by inputting the predetermined data acquired by the acquisition unit 11 into a predetermined learning model 12a that uses a neural network expressed by a predetermined calculation graph.
- the first learning unit 12 uses a plurality of learning models 12a with different calculation graphs. Which calculation graph to use may be set as appropriate for a predetermined problem to be learned or a predetermined data set.
- the first learning unit 12 also acquires learning results (for example, learning performance) learned using each of the plurality of learning models 12a.
- the predetermined problem includes, for example, a problem of classifying, generating, and/or optimizing at least one of image data, series data, and text data.
- the image data includes still image data and moving image data.
- the series data includes voice data and stock price data.
- the predetermined learning model 12a is a learning model including a neural network, and includes, for example, an image recognition model, a series data analysis model, a robot control model, a reinforcement learning model, a voice recognition model, a voice generation model, an image generation model, It includes at least one such as a natural language processing model.
- the predetermined learning model 12a is a CNN (Convolutional Neural Network), RNN (Recurrent Neural Network), DNN (Deep Neural Network), LSTM (Long Short-Term Memory), bidirectional LSTM, DQN ( It may be any one of the following: deep Q-Network), VAE (Variational AutoEncoder), GANs (Generative Adversarial Networks), flow-based generative models, etc.
- CNN Convolutional Neural Network
- RNN Recurrent Neural Network
- DNN Deep Neural Network
- LSTM Long Short-Term Memory
- DQN It may be any one of the following: deep Q-Network), VAE (Variational AutoEncoder), GANs (Generative Adversarial Networks), flow-based generative models, etc.
- the learning model 12a includes a model obtained by pruning, quantizing, distilling, or transferring a learned model. Note that these are just examples, and the first learning unit 12 may perform machine learning of the learning model for problems other than these.
- the changing unit 13 changes predetermined data and/or predetermined calculation graphs. For example, the changing unit 13 sequentially changes the predetermined data input to the first learning unit 12 one by one from among the plurality of predetermined data. Further, when learning has been performed on all predetermined data, the changing unit 13 selects one of the plurality of calculation graphs and changes the calculation graph in order to use another calculation graph. This makes it possible to perform learning on any combination of predetermined data and predetermined calculation graphs. For example, the changing unit 13 may sequentially change the predetermined data and/or the predetermined calculation graph so that all combinations of the predetermined data and the predetermined calculation graph are learned, or if the predetermined conditions are met. The predetermined data and/or the predetermined calculation graph may be sequentially changed until the condition is satisfied. Furthermore, the changing unit 13 selects one of the first function associated with the predetermined node of the predetermined layer in the predetermined calculation graph and the activation function (second function) that inputs the output value of this first function. including changing the first function.
- the activation function second function
- the acquisition unit 11 or the first learning unit 12 acquires the learning results of learning using the changed predetermined data and/or the predetermined calculation graph. For example, the acquisition unit 11 or the first learning unit 12 acquires learning results learned using various combinations of predetermined data and/or predetermined calculation graphs.
- the first learning unit 12 performs learning by inputting the predetermined data changed by the changing unit 13 into the learning model 12a, or by inputting the predetermined data into the learning model 12a to which the changed predetermined calculation graph is applied. It may also include acquiring learning results. As described above, the first learning unit 12 performs learning using the current learning model 12a when the predetermined data is changed, and applies the changed calculation graph when the predetermined calculation graph is changed. Then, predetermined data is input to the updated learning model 12a to perform learning.
- the acquisition unit 11 performs learning using the predetermined data and/or the predetermined calculation graph changed by the change unit 13 by another information processing device, and includes acquiring learning results from the other information processing device. But that's fine.
- the acquisition unit 11 acquires each learning result from each information processing device 20 that has been trained using different predetermined data and different calculation graphs.
- the server 10 transmits arbitrary data and arbitrary computational graphs to each information processing device 20, and instructs each information processing device 20 to perform learning using the transmitted arbitrary data and arbitrary computational graphs. You may.
- the second learning unit 14 uses learning data including arbitrary data and arbitrary calculation graphs on which learning has been performed, and learning results when learning is performed using arbitrary data and arbitrary calculation graphs. Do some learning. For example, the second learning unit 14 performs supervised learning using training data whose correct label is a learning result (for example, learning performance) obtained when learning is performed using arbitrary data and an arbitrary calculation graph.
- a learning result for example, learning performance
- the training data includes training data in which the correct label is the classification performance when trained using an image dataset and various computational graphs, or training data that uses a text dataset and various computational graphs as the correct label. This includes training data that uses character recognition results learned as correct labels.
- the second learning unit 14 is a predictive model generated by supervised learning, and generates a predictive model that inputs predetermined data and outputs a specific calculation graph. For example, when inputting arbitrary data, the second learning unit 14 generates a prediction model that outputs a calculation graph appropriate for this data.
- the second learning unit 14 when image data is input to the prediction model, the second learning unit 14 outputs an appropriate calculation graph based on the characteristics of this image data.
- An appropriate computational graph is, for example, a computational graph that has the best classification performance for the features of this image data among various computational graphs.
- Various computational graphs include computational graphs that differ in the number of layers, the number of nodes in each layer, the relationship between nodes and edges, and the like.
- association unit 15 associates information regarding the predetermined data with information regarding the calculation graph output by the prediction model.
- the association unit 15 stores, in the storage unit 17, related data in which feature information of predetermined data is associated with information that identifies the specified calculation graph. Related data will be described later using FIG. 7, for example.
- the server 10 can specify a calculation graph suitable for the learning target data without learning.
- the second learning unit 14 may perform learning when the learning target data is not stored in the related data. As a result, the processing load on the server 10 can be reduced, and the processing efficiency of the server 10 can be improved.
- the output unit 16 may output the calculation graph predicted by the second learning unit 14 to another information processing device 20.
- the output unit 16 may transmit predetermined data and output an appropriate computation graph corresponding to the predetermined data to the information processing device 20 that has requested acquisition of the appropriate computation graph. Further, the output unit 16 may output the predicted calculation graph to the storage unit 17.
- the changing unit 13 is a first function associated with a predetermined node of a predetermined layer in a predetermined calculation graph, and changes the output value from each node of the layer immediately before the predetermined layer. It may also include changing the first function that is acquired and transformed. For example, the changing unit 13 changes the first function for converting the output value of each node into one, to a differentiable function such as a nonlinear quadratic function or cubic function instead of a linear linear function. It's okay. It is preferable that the first function is a differentiable function in consideration of the error back propagation method.
- y represents the output
- w represents the weight matrix
- x represents the input vector
- b represents the bias vector.
- FIG. 4 is a diagram illustrating an example of a portion of layers according to the embodiment.
- layer L-1 shown in FIG. 4 there are four nodes, and the output values of each node are h 01 , h 02 , h 03 , and 1.
- Output value 1 is bias.
- each node of layer L generally generates an output value by sequentially performing linear transformation and nonlinear transformation (activation function) on the output value of the previous layer L-1.
- u 11 and u 12 shown in FIG. 4 are calculated using the following equations (1) and (2).
- equation (7) can be written as equation (7) by defining the input vector H 0 , weight matrix W 10 , bias vector B 1 , and output U 1 as follows.
- U 1 W 10 ⁇ H 0 +B 1 ...Formula (7)
- a linear transformation (W 10 ⁇ H 0 ) is performed on the output value of the previous layer, but this first function is a differentiable function, such as a quadratic function or A cubic function or the like may also be used.
- the output value of the loss function when using another nonlinear function may be smaller than the output value of the loss function when using a linear function. That is, a small value of the loss function means that the error between the correct value and the predicted value is small and the learning performance is high.
- the output value of the first function is input to the second function, which is the activation function.
- the first learning unit 12 performs learning using a calculation graph that is associated with each node and includes various functions as a first function that converts the output value of the previous layer into one value. This makes it possible to check whether the output value of the loss function in the case of nonlinear transformation corresponding to a predetermined function is smaller than the output value of the loss function in the case of linear transformation. For predetermined data, if the output value of the loss function in the case of nonlinear transformation becomes smaller, this will be reflected in the prediction model through supervised learning by the second learning unit 14. Therefore, if data that is the same as or similar to predetermined data is input to the prediction model, it is assumed that a calculation graph including a nonlinear transformation function will be output. Since this calculation graph is a calculation graph in which the output value of the loss function is smaller, it is possible to improve its learning performance. Furthermore, various computational graphs include graphs that have the same number of nodes, edges, etc., but different functions associated with each node.
- FIG. 5 is a diagram illustrating an example of processing blocks of the information processing device 20 according to the embodiment.
- the information processing device 20 includes an acquisition section 21, a learning section 22, an output section 23, and a storage section 24.
- the information processing device 20 may be configured with a general-purpose computer.
- the acquisition unit 21 may acquire information regarding a predetermined calculation graph and information regarding a predetermined data set along with instructions for distributed learning from another information processing device (for example, the server 10).
- the information regarding the predetermined computation graph may be information indicating the configuration of the computation graph or information indicating a function for converting the output value from the previous layer, which is associated with each node of the computation graph.
- the information regarding the predetermined data set may be the data set itself, or may be information indicating the storage location where the predetermined data set is stored.
- the learning unit 22 performs learning by inputting a predetermined data set to be learned to a learning model 22a that performs learning using a predetermined calculation graph.
- the learning unit 22 controls the learning results after learning to be fed back to the server 10.
- the learning results include, for example, learning performance and may further include learning time.
- the learning unit 22 may select the learning model 22a depending on the type of data set to be learned and/or the problem to be solved.
- the predetermined learning model 22a is a learning model including a neural network, and includes, for example, an image recognition model, a series data analysis model, a robot control model, a reinforcement learning model, a voice recognition model, a voice generation model, an image generation model, It includes at least one such as a natural language processing model.
- the predetermined learning model 22a is a CNN (Convolutional Neural Network), RNN (Recurrent Neural Network), DNN (Deep Neural Network), LSTM (Long Short-Term Memory), bidirectional LSTM, DQN ( It may be any one of the following: deep Q-Network), VAE (Variational AutoEncoder), GANs (Generative Adversarial Networks), flow-based generative models, etc.
- CNN Convolutional Neural Network
- RNN Recurrent Neural Network
- DNN Deep Neural Network
- LSTM Long Short-Term Memory
- DQN It may be any one of the following: deep Q-Network), VAE (Variational AutoEncoder), GANs (Generative Adversarial Networks), flow-based generative models, etc.
- the learning model 22a includes a model obtained by pruning, quantizing, distilling, or transferring a learned model. Note that these are just examples, and the learning unit 22 may perform machine learning of the learning model for problems other than these.
- the output unit 23 outputs information regarding the learning results of distributed learning to other information processing devices.
- the output unit 23 outputs information regarding the learning results by the learning unit 22 to the server 10.
- the information regarding the learning results of distributed learning includes learning performance and may further include learning time, as described above.
- the storage unit 24 stores data regarding the learning unit 22.
- the storage unit 24 stores a predetermined data set 24a, data acquired from the server 10, data in the middle of learning, information regarding learning results, and the like.
- the information processing device 20 executes distributed learning applying a predetermined calculation graph to a predetermined dataset based on instructions from another information processing device (for example, the server 10), and transfers the learning results to the server 10. It will be possible to provide feedback.
- the output unit 23 outputs information regarding predetermined data to another information processing device (for example, the server 10).
- the output unit 23 may output predetermined data (for example, a data set to be studied), or may output feature information of the predetermined data.
- the acquisition unit 21 acquires a calculation graph corresponding to predetermined data from another information processing device.
- the acquired calculation graph is a calculation graph appropriate for the predetermined data that has been predicted by another information processing device using a prediction model.
- the predetermined calculation graph also includes a first function that is specified according to predetermined data among a first function associated with a predetermined node of a predetermined layer and an activation function that inputs an output value of the first function. May include.
- the learning unit 22 applies the acquired calculation graph to a predetermined learning model 22a.
- the learning model 22a may apply a calculation graph to the learning model 22a used for the learning described above.
- the learning model 22a may be a learning model acquired from another information processing device 10, or may be a learning model managed by the own device.
- the learning unit 22 inputs predetermined data into the learning model 22a to which the calculation graph is applied and obtains learning results. Since this learning result is a result of learning using a calculation graph suitable for predetermined data, learning performance can be improved.
- the acquisition unit 21 acquires a first function associated with a predetermined node of a predetermined layer in the computation graph, and obtains an output value from each node of a layer immediately before the predetermined layer, as a computation graph to be obtained.
- the method may include obtaining a first function to obtain and transform.
- FIG. 6 is a diagram illustrating an example of information regarding the calculation graph according to the embodiment.
- the first function is associated with each function ID as information regarding the calculation graph.
- an example of various computational graphs is a computational graph in which the first function associated with each node of the computational graph is arbitrary.
- FIG. 7 is a diagram illustrating an example of related data that associates information regarding predetermined data and information regarding an appropriate calculation graph according to the embodiment.
- data set type A is associated with a first function with function ID "A001”
- data type B is associated with a first function with function ID "A002”.
- the data shown in FIG. 7 is an example of the related data 17c shown in FIG. 3.
- FIG. 8 is a flowchart illustrating an example of processing related to generation of a predictive model according to the embodiment. The process shown in FIG. 8 is executed by the information processing device 10.
- the first learning unit 12 of the information processing device 10 performs learning by inputting predetermined data into a predetermined learning model using a neural network expressed by a predetermined calculation graph.
- the predetermined data may be selected from the data set 17a of the storage unit 17, may be predetermined data received from another device via a network, or may be predetermined data input in response to a user operation. You may obtain it.
- the first calculation graph may be set as the predetermined calculation graph by default.
- step S104 the changing unit 13 of the information processing device 10 changes the predetermined data and/or the predetermined calculation graph.
- the changing unit 13 changes the learning target data and changes the calculation graph according to predetermined standards.
- the changing unit 13 may include changing the first function among the first function associated with the predetermined node of the predetermined layer in the predetermined calculation graph and the activation function that inputs the output value of the first function. good.
- step S106 the first learning unit 12 of the information processing device 10 acquires the learning result of learning using the changed predetermined data and/or the predetermined calculation graph.
- step S108 the second learning unit 14 of the information processing device 10 stores the arbitrary data and arbitrary calculation graph on which learning has been performed, and the learning results obtained when learning is performed using the arbitrary data and arbitrary calculation graph. Perform supervised learning using training data containing .
- step S110 the second learning unit 14 of the information processing device 10 generates a predictive model generated by supervised learning, which inputs predetermined data and outputs a specific calculation graph.
- FIG. 9 is a flowchart illustrating an example of processing in the information processing device 20 used by the user according to the embodiment.
- the output unit 23 of the information processing device 20 outputs information regarding predetermined data to be learned to another information processing device (for example, the server 10).
- step S204 the acquisition unit 21 of the information processing device 20 acquires information indicating a calculation graph corresponding to predetermined data from another information processing device (for example, the server 10).
- the obtained calculation graph includes a first function associated with a predetermined node of a predetermined layer and an activation function that inputs an output value of the first function, which is specified according to predetermined data. But that's fine.
- step S206 the learning unit 22 of the information processing device 20 applies the acquired calculation graph to a predetermined learning model 22a.
- step S208 the learning unit 22 of the information processing device 20 inputs predetermined data to the learning model 22a to which the calculation graph is applied, and obtains a learning result.
- the embodiments described above are intended to facilitate understanding of the present invention, and are not intended to be interpreted as limiting the present invention.
- Each element included in the embodiment, as well as its arrangement, material, conditions, shape, size, etc., are not limited to those illustrated, and can be changed as appropriate. Further, it is possible to partially replace or combine the structures shown in different embodiments.
- the device including the first learning section 12 and the device including the second learning section 14 may be separate computers. In this case, the generated learning results learned by the first learning section 12 may be transmitted to the device including the second learning section 14 via the network.
- the information processing device 10 does not necessarily need to include the changing unit 13.
- the information processing device 10 may perform learning by the second learning unit 14 by acquiring each learning performance for a set of arbitrary learning target data and an arbitrary calculation graph.
- 10... Information processing device 10a... CPU, 10b... RAM, 10c... ROM, 10d... Communication unit, 10e... Input unit, 10f... Display unit, 11... Acquisition unit, 12... First learning unit, 12a... Learning model, 13... Change unit, 14... Second learning unit, 14a... Prediction model, 15... Association unit, 16... Output unit, 17... Storage unit, 17a... Data set, 17b... Calculation graph, 17c... Related data, 21... Acquisition Part, 22...Learning unit, 22a...Learning model, 23...Output unit, 24...Storage unit, 24a...Data set
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
情報処理方法は、情報処理装置に含まれる1又は複数のプロセッサが、所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデルに、所定のデータを入力して学習を行うこと、所定のデータ及び/又は所定の計算グラフを変更することであって、所定の計算グラフ内の所定のレイヤの所定のノードに関連付けられる関数及び関数の出力値を入力する活性化関数のうち、関数を変更することを含み、変更後の所定のデータ及び/又は所定の計算グラフを用いた学習の学習結果を取得すること、学習が行われた任意のデータ及び任意の計算グラフと、任意のデータ及び任意の計算グラフを用いて学習されたときの学習結果とを含む学習データを用いて、教師あり学習を行うこと、教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成すること、を実行する。
Description
本発明は、適切な計算グラフを提供可能な情報処理方法、記録媒体及び情報処理装置に関する。
近年、汎用AI(Artificial General Intelligence)の研究が行われており、学習精度を高めるため、ニューラルネットワークの構成をより複雑化して任意の問題に対応することが考えられている。下記特許文献1には、ニューラルネットワークに用いられる関数を表現する計算グラフを修正することが記載されている。
ここで、ニューラルネットワークを用いる学習は、損失関数の最適化として定式化される。損失関数の最適化として、損失関数の出力を最小化するために、誤差逆伝搬法が用いられる。誤差逆伝搬法を実装する方法の一つして、計算グラフが作成され、その逆をたどるということが行われる。このとき、計算グラフ内のノード数や、エッジとノードとの関係や、各ノードに関連付けられる関数などを変更することで、計算グラフは任意の構成が考えられる。
しかしながら、データセットの種類や解くべき問題などによって、計算グラフは異なるものが使用されてもよいが、現在一般的に利用されている計算グラフが最善であるとは限らなかった。
そこで、本発明の目的の1つは、ニューラルネットワークを構成する計算グラフを、より適切にすることを可能にする情報処理方法、記録媒体及び情報処理装置を提供する。
本発明の一態様に係る情報処理方法は、情報処理装置に含まれる1又は複数のプロセッサが、所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデルに、所定のデータを入力して学習を行うこと、前記所定のデータ及び/又は前記所定の計算グラフを変更することであって、前記所定の計算グラフ内の所定のレイヤの所定のノードに関連付けられる関数及び前記関数の出力値を入力する活性化関数のうち、前記関数を変更することを含む、前記変更すること、変更後の所定のデータ及び/又は所定の計算グラフを用いた前記学習の学習結果を取得すること、前記学習が行われた任意のデータ及び任意の計算グラフと、前記任意のデータ及び前記任意の計算グラフを用いて学習されたときの学習結果とを含む学習データを用いて、教師あり学習を行うこと、前記教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成すること、を実行する。
本発明によれば、ニューラルネットワークを構成する計算グラフを、より適切にすることを可能にする情報処理方法、プログラム及び情報処理装置を提供することができる。
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
[実施形態]
<システム構成>
図1は、実施形態に係るシステム構成の一例を示す図である。図1に示す例では、サーバ10と、各情報処理装置20A、20B、20C、20Dとが、ネットワークを介してデータ送受信可能なように接続される。情報処理装置を個別に区別しない場合は情報処理装置20とも表記する。
<システム構成>
図1は、実施形態に係るシステム構成の一例を示す図である。図1に示す例では、サーバ10と、各情報処理装置20A、20B、20C、20Dとが、ネットワークを介してデータ送受信可能なように接続される。情報処理装置を個別に区別しない場合は情報処理装置20とも表記する。
サーバ10は、データを収集、分析可能な情報処理装置であり、1つ又は複数の情報処理装置から構成されてもよい。情報処理装置20は、スマートフォン、パーソナルコンピュータ、タブレット端末、サーバ、コネクティッドカーなど、機械学習を実行可能な情報処理装置である。なお、情報処理装置20は、脳波をセンシングする侵襲型又は非侵襲型の電極に直接的又は間接的に接続されており、脳波データを解析、送受信可能な装置でもよい。
図1に示すシステムでは、サーバ10は、例えば、様々なデータセットを用いて、様々な計算グラフのいずれかにより表現されるニューラルネットワークを用いる学習モデルに、いずれかのデータセットを入力して学習を実行する。このとき、サーバ10は、所定のデータセット及び所定の計算グラフのときの学習性能を関連付けて記憶する。
次に、サーバ10は、任意のデータセットと、任意の計算グラフとを用いた学習結果(例えば学習性能)を訓練データとして、所定のデータに対して、学習性能が高い計算グラフを特定する予測モデルを学習して生成する。
これにより、所定のデータに対して学習が行われる場合、ニューラルネットワークを構成する計算グラフをより適切にすることが可能になる。また、サーバ10は、計算グラフの各ノードに関連付けられる関数を変更することで計算グラフを変更してもよい。なお、この関数は、誤差逆伝搬法を考慮して微分可能な関数が望ましい。
<ハードウェア構成>
図2は、実施形態に係る情報処理装置10の物理的構成の一例を示す図である。情報処理装置10は、演算部に相当する1又は複数のCPU(Central Processing Unit)10aと、記憶部に相当するRAM(Random Access Memory)10bと、記憶部に相当するROM(Read only Memory)10cと、通信部10dと、入力部10eと、表示部10fと、を有する。これらの各構成は、バスを介して相互にデータ送受信可能に接続される。
図2は、実施形態に係る情報処理装置10の物理的構成の一例を示す図である。情報処理装置10は、演算部に相当する1又は複数のCPU(Central Processing Unit)10aと、記憶部に相当するRAM(Random Access Memory)10bと、記憶部に相当するROM(Read only Memory)10cと、通信部10dと、入力部10eと、表示部10fと、を有する。これらの各構成は、バスを介して相互にデータ送受信可能に接続される。
本実施形態では、情報処理装置10が一台のコンピュータで構成される場合について説明するが、情報処理装置10は、複数のコンピュータ又は複数の演算部が組み合わされて実現されてもよい。また、図2で示す構成は一例であり、情報処理装置10はこれら以外の構成を有してもよいし、これらの構成のうち一部を有さなくてもよい。
CPU10aは、RAM10b又はROM10cに記憶されたプログラムの実行に関する制御やデータの演算、加工を行う制御部である。CPU10aは、より適切な計算グラフを調べるための学習モデルを用いて学習を行うプログラム(学習プログラム)や、任意のデータを入力したときに適切な計算グラフを出力する予測モデルを生成するための学習を行うプログラム(予測プログラム)を実行する演算部である。CPU10aは、入力部10eや通信部10dから種々のデータを受け取り、データの演算結果を表示部10fに表示したり、RAM10bに格納したりする。
RAM10bは、記憶部のうちデータの書き換えが可能なものであり、例えば半導体記憶素子で構成されてよい。RAM10bは、CPU10aが実行するプログラム、様々な計算グラフに関する計算グラフデータ、適切な計算グラフを予測する予測モデル、学習対象のデータに関する情報と、このデータに対応する適切な計算グラフとの対応関係を示す関連データなどのデータを記憶してもよい。なお、これらは例示であって、RAM10bには、これら以外のデータが記憶されていてもよいし、これらの一部が記憶されていなくてもよい。
ROM10cは、記憶部のうちデータの読み出しが可能なものであり、例えば半導体記憶素子で構成されてよい。ROM10cは、例えば学習プログラムや、書き換えが行われないデータを記憶してよい。
通信部10dは、情報処理装置10を他の機器に接続するインターフェースである。通信部10dは、インターネット等の通信ネットワークに接続されてよい。
入力部10eは、ユーザからデータの入力を受け付けるものであり、例えば、キーボード及びタッチパネルを含んでよい。
表示部10fは、CPU10aによる演算結果を視覚的に表示するものであり、例えば、LCD(Liquid Crystal Display)により構成されてよい。表示部10fが演算結果を表示することは、XAI(eXplainable AI:説明可能なAI)に貢献し得る。表示部10fは、例えば、学習結果や、関数データを表示してもよい。
学習プログラムは、RAM10bやROM10c等のコンピュータによって読み取り可能な記憶媒体に記憶されて提供されてもよいし、通信部10dにより接続される通信ネットワークを介して提供されてもよい。情報処理装置10では、CPU10aが学習プログラムを実行することにより、後述する図3を用いて説明する様々な動作が実現される。なお、これらの物理的な構成は例示であって、必ずしも独立した構成でなくてもよい。例えば、情報処理装置10は、CPU10aとRAM10bやROM10cが一体化したLSI(Large-Scale Integration)を備えていてもよい。また、情報処理装置10は、GPU(Graphical Processing Unit)やASIC(Application Specific Integrated Circuit)を備えていてもよい。
なお、情報処理装置20の構成は、図2に示す情報処理装置10の構成と同様であるため、その説明を省略する。また、情報処理装置10と情報処理装置20とは、データ処理を行う基本的な構成であるCPU10aやRAM10b等を有していればよく、入力部10eや表示部10fは設けられなくてもよい。また、入力部10eや表示部10fは、外部からインターフェースを用いて接続されてもよい。
<処理構成>
図3は、実施形態に係る情報処理装置10の処理ブロックの一例を示す図である。情報処理装置10は、取得部11、第1学習部12、変更部13、第2学習部14、関連付け部15、出力部16、及び記憶部17を備える。例えば、図3に示す第1学習部12、変更部13、第2学習部14、関連付け部15は、例えばCPU10aなどにより実行されて実現され、取得部11及び出力部16は、例えば通信部10dなどにより実現され、記憶部17は、RAM10b及び/又はROM10cなどにより実現され得る。
図3は、実施形態に係る情報処理装置10の処理ブロックの一例を示す図である。情報処理装置10は、取得部11、第1学習部12、変更部13、第2学習部14、関連付け部15、出力部16、及び記憶部17を備える。例えば、図3に示す第1学習部12、変更部13、第2学習部14、関連付け部15は、例えばCPU10aなどにより実行されて実現され、取得部11及び出力部16は、例えば通信部10dなどにより実現され、記憶部17は、RAM10b及び/又はROM10cなどにより実現され得る。
取得部11は、所定のデータを取得する。例えば、取得部11は、所定のデータとして、画像データ、系列データ、テキストデータなどの公知のデータセットを取得してもよい。なお、取得部11は、記憶部17に記憶されたデータを取得してもよいし、他の情報処理装置により送信されたデータを取得してもよい。
第1学習部12は、所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデル12aに、取得部11により取得された所定のデータを入力して学習を行う。例えば、第1学習部12は、計算グラフが異なる複数の学習モデル12aを使用する。いずれの計算グラフを用いるかは、学習される所定の問題、又は所定のデータセットに対して、適宜設定されるとよい。また、第1学習部12は、複数の学習モデル12aそれぞれを用いて学習した学習結果(例えば学習性能)を取得する。
所定の問題は、例えば画像データ、系列データ及びテキストデータの少なくともいずれかについて、分類、生成及び最適化の少なくともいずれかを行う問題を含む。ここで、画像データは、静止画のデータと、動画のデータとを含む。系列データは、音声データや株価のデータを含む。
また、所定の学習モデル12aは、ニューラルネットワークを含む学習モデルであり、例えば、画像認識モデル、系列データ解析モデル、ロボットの制御モデル、強化学習モデル、音声認識モデル、音声生成モデル、画像生成モデル、自然言語処理モデル等の少なくとも1つを含む。また、具体例としては、所定の学習モデル12aは、CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、DNN(Deep Neural Network)、LSTM(Long Short-Term Memory)、双方向LSTM、DQN(Deep Q-Network)、VAE(Variational AutoEncoder)、GANs(Generative Adversarial Networks)、flow-based生成モデル等のいずれかでもよい。
また、学習モデル12aは、学習済みモデルを枝刈り(Pruning)、量子化(Quantization)、蒸留(Distillation)又は転移(Transfer)して得られるモデルを含む。なお、これらは一例に過ぎず、第1学習部12は、これら以外の問題について、学習モデルの機械学習を行ってもよい。
変更部13は、所定のデータ及び/又は所定の計算グラフを変更する。例えば、変更部13は、複数の所定のデータの中から、第1学習部12に入力される所定のデータを1つずつ順に変更する。また、変更部13は、全ての所定のデータに対して学習が行われた場合、別の計算グラフを利用するため、複数の計算グラフの中から1つを選択して計算グラフを変更する。これにより、所定のデータと所定の計算グラフとの任意の組み合わせに対して学習させることが可能になる。例えば、変更部13は、所定のデータと所定の計算グラフとの全ての組み合わせが学習されるように、所定のデータ及び/又は所定の計算グラフを順に変更してもよいし、所定の条件が満たされるまで所定のデータ及び/又は所定の計算グラフを順に変更してもよい。また、変更部13は、所定の計算グラフ内の所定のレイヤの所定のノードに関連付けられる第1関数と、この第1関数の出力値を入力する活性化関数(第2関数)とのうち、第1関数を変更することを含む。
取得部11又は第1学習部12は、変更後の所定のデータ及び/又は所定の計算グラフを用いた学習の学習結果を取得する。例えば、取得部11又は第1学習部12は、様々な組み合わせの所定のデータ及び/又は所定の計算グラフを用いて学習された学習結果を取得する。
第1学習部12は、変更部13により変更された所定のデータを学習モデル12aに入力し、又は変更された所定の計算グラフを適用した学習モデル12aに所定のデータを入力して学習を行うことにより、学習結果を取得することを含んでもよい。上述したとおり、第1学習部12は、所定のデータが変更された場合は、現在の学習モデル12aを用いて学習し、所定の計算グラフが変更された場合は、変更後の計算グラフを適用し、更新された学習モデル12aに所定のデータを入力して学習を行う。
取得部11は、変更部13により変更された所定のデータ及び/又は所定の計算グラフを用いた学習が他の情報処理装置により行われ、他の情報処理装置から学習結果を取得することを含んでもよい。取得部11は、それぞれ異なる所定のデータや、それぞれ異なる計算グラフを用いて学習された各情報処理装置20から、各学習結果を取得する。例えば、サーバ10は、分散学習を実行するため、各情報処理装置20に対して、任意のデータや任意の計算グラフを送信し、送信した任意のデータや任意の計算グラフを用いた学習を指示してもよい。
第2学習部14は、学習が行われた任意のデータ及び任意の計算グラフと、任意のデータ及び任意の計算グラフを用いて学習されたときの学習結果とを含む学習データを用いて、教師あり学習を行う。例えば、第2学習部14は、任意のデータ及び任意の計算グラフを用いて学習された際の学習結果(例えば学習性能)を正解ラベルとする訓練データを用いて、教師あり学習を行う。
具体例として、訓練データは、画像のデータセット及び様々な計算グラフを用いて学習された際の分類性能を正解ラベルとする訓練データを含み、又は、テキストのデータセット及び様々な計算グラフを用いて学習された際の文字認識結果を正解ラベルとする訓練データなどを含む。
また、第2学習部14は、教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成する。例えば、第2学習部14は、任意のデータを入力すると、このデータに対して適切な計算グラフを出力する予測モデルを生成する。
具体例として、第2学習部14は、画像のデータを予測モデルに入力すると、この画像データの特徴に基づいて、この特徴に応じて適切な計算グラフを出力する。適切な計算グラフとは、例えば、様々な計算グラフの中で、この画像データの特徴に対して最も分類性能が良い計算グラフを示す。様々な計算グラフには、レイヤ数、各レイヤのノード数、ノードとエッジとの関係などが異なる計算グラフを含む。
以上の構成により、第2学習部14により生成された予測モデルを用いることで、任意のデータ(例、データセット)に対して、ニューラルネットワークを構成する計算グラフを、より適切にすることが可能になる。
また、関連付け部15は、所定のデータに関する情報と、予測モデルにより出力された計算グラフに関する情報とを関連付ける。例えば、関連付け部15は、所定のデータの特徴情報と、特定された計算グラフを識別する情報とを関連付けた関連データを記憶部17に記憶する。関連データは、例えば図7を用いて後述する。
以上の構成により、サーバ10は、学習対象データの特徴情報が関連データに記憶されていれば、学習をしなくても、その学習対象データに適した計算グラフを特定することができる。この場合、学習対象データが関連データに記憶されていない場合に、第2学習部14は学習を行うにようにしてもよい。その結果、サーバ10の処理負荷を軽減することができ、サーバ10の処理効率を向上させることが可能になる。
出力部16は、第2学習部14により予測された計算グラフを、他の情報処理装置20に出力してもよい。例えば、出力部16は、所定のデータを送信して、適切な計算グラフの取得を要求した情報処理装置20に対し、所定のデータに対応する適切な計算グラフを出力してもよい。また、出力部16は、予測された計算グラフを記憶部17に出力してもよい。
また、変更部13は、所定の計算グラフ内の所定の層(レイヤ)の所定のノードに関連付けられる第1関数であって、この所定レイヤの1つ前のレイヤの各ノードからの出力値を取得して変換する第1関数を変更することを含んでもよい。例えば、変更部13は、各ノードの出力値を1つに変換するための第1関数として、線形の1次関数ではなく、非線形の二次関数や三次関数などの微分可能な関数に変更してもよい。この第1関数は、誤差逆伝搬法が考慮されて、微分可能な関数が用いられるとよい。
一般的に、あるレイヤの各ノードの出力値を次のレイヤに渡す際に、シンプルな関数(例えばy=w×x+b)を用いて線形変換が行われる。yは出力、wは重み行列、xは入力ベクトル、bはバイアスベクトルを表す。
図4は、実施形態に係るレイヤの一部の一例を示す図である。図4に示すレイヤL-1において、4つのノードがあり、それぞれのノードの出力値はh01、h02、h03、1とする。出力値1は、バイアスである。この場合、レイヤLの各ノードでは、一般的には前のレイヤL-1の出力値に線形変換と、非線形変換(活性化関数)とを順に行って出力値が生成される。ここで、線形変換において、一般的にはu=wh+bという第1関数を用いて線形変換が行われる。例えば、図4に示すu11、u12は、以下の式(1)及び(2)を用いて算出される。
上記例では、計算グラフにおける各ノードに対して、前の層の出力値に線形変換(W10×H0)が行われるが、この第1関数として、微分可能な関数、例えば二次関数や三次関数などが用いられてもよい。これにより、線形関数を用いるときの損失関数の出力値よりも、他の非線形な関数を用いるときの損失関数の出力値の方が、小さくなる場合もあり得る。すなわち、損失関数の値が小さいということは、正解値と予測値との誤差が小さく学習性能が高いことを意味する。なお、第1関数の出力値が、活性化関数である第2関数に入力される。
第1学習部12は、各ノードに関連付けられた、前の層の出力値を1つの値に変換する第1関数として様々な関数を含む計算グラフを用いて学習する。これにより、線形変換の場合の損失関数の出力値よりも、所定の関数に相当する非線形変換の場合の損失関数の出力値の方が小さくなるか否かを調べることができる。所定のデータに対しては、非線形変換の場合の損失関数の出力値が小さくなれば、このことが第2学習部14による教師あり学習により予測モデルに反映される。したがって、所定のデータと同一又は類似するデータが予測モデルに入力されれば、非線形変換の関数を含む計算グラフが出力されることが想定される。この計算グラフは、損失関数の出力値がより小さくなるような計算グラフであるため、その学習性能を向上させることが可能になる。また、様々な計算グラフには、ノード数やエッジなどの構成は同じでも、各ノードに関連付けられる関数が異なるグラフも含まれる。
図5は、実施形態に係る情報処理装置20の処理ブロックの一例を示す図である。情報処理装置20は、取得部21、学習部22、出力部23、及び記憶部24を備える。情報処理装置20は、汎用のコンピュータで構成されてもよい。
取得部21は、他の情報処理装置(例えばサーバ10)により、分散学習の指示とともに、所定の計算グラフに関する情報や所定のデータセットに関する情報を取得してもよい。所定の計算グラフに関する情報は、計算グラフの構成を示す情報や、計算グラフの各ノードに関連付けられる、前の層からの出力値を変換する関数を示す情報でもよい。所定のデータセットに関する情報は、データセット自体でもよく、所定のデータセットが格納された格納先を示す情報でもよい。
学習部22は、所定の計算グラフを用いる学習を行う学習モデル22aに学習対象の所定のデータセットを入力して学習を行う。学習部22は、学習後の学習結果をサーバ10にフィードバックするように制御する。学習結果は、例えば、学習性能などを含み、学習時間をさらに含んでもよい。学習部22は、学習対象のデータセットの種類、及び/又は、解くべき問題に応じて、学習モデル22aを選択してもよい。
また、所定の学習モデル22aは、ニューラルネットワークを含む学習モデルであり、例えば、画像認識モデル、系列データ解析モデル、ロボットの制御モデル、強化学習モデル、音声認識モデル、音声生成モデル、画像生成モデル、自然言語処理モデル等の少なくとも1つを含む。また、具体例としては、所定の学習モデル22aは、CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、DNN(Deep Neural Network)、LSTM(Long Short-Term Memory)、双方向LSTM、DQN(Deep Q-Network)、VAE(Variational AutoEncoder)、GANs(Generative Adversarial Networks)、flow-based生成モデル等のいずれかでもよい。
また、学習モデル22aは、学習済みモデルを枝刈り(Pruning)、量子化(Quantization)、蒸留(Distillation)又は転移(Transfer)して得られるモデルを含む。なお、これらは一例に過ぎず、学習部22は、これら以外の問題について、学習モデルの機械学習を行ってもよい。
出力部23は、分散学習の学習結果に関する情報を他の情報処理装置に出力する。例えば、出力部23は、学習部22による学習結果に関する情報をサーバ10に出力する。例えば、分散学習の学習結果に関する情報は、上述したように、学習性能を含み、学習時間をさらに含んでもよい。
記憶部24は、学習部22に関するデータを記憶する。記憶部24は、所定のデータセット24aや、サーバ10から取得したデータ、学習途中のデータ、学習結果に関する情報などを記憶する。
これにより、情報処理装置20は、他の情報処理装置(例えばサーバ10)からの指示により、所定のデータセットに対して、所定の計算グラフを適用した分散学習を実行し、学習結果をサーバ10にフィードバックすることが可能になる。
また、出力部23は、所定のデータに関する情報を他の情報処理装置(例えばサーバ10)に出力する。出力部23は、所定のデータ(例えば学習対象のデータセット)を出力してもよいし、所定のデータの特徴情報を出力してもよい。
取得部21は、他の情報処理装置から、所定のデータに対応する計算グラフを取得する。取得される計算グラフは、他の情報処理装置が予測モデルを利用して予測した、所定のデータに適切な計算グラフである。また、所定の計算グラフは、所定のレイヤの所定のノードに関連付けられる第1関数と第1関数の出力値を入力する活性化関数のうち、所定のデータに応じて特定される第1関数を含んでもよい。
学習部22は、取得された計算グラフを所定の学習モデル22aに適用する。このとき、学習モデル22aは、上述した学習に用いられた学習モデル22aに計算グラフを適用してもよい。また、学習モデル22aは、他の情報処理装置10から取得される学習モデルでもよいし、自装置で管理する学習モデルでもよい。
学習部22は、計算グラフが適用された学習モデル22aに、所定のデータを入力して学習結果を取得する。この学習結果は、所定のデータに適した計算グラフを用いて学習した結果であるため、学習性能の向上を図ることができる。
また、取得部21は、取得する計算グラフとして、計算グラフ内の所定のレイヤの所定のノードに関連付けられる第1関数であって、所定レイヤの1つ前のレイヤの各ノードからの出力値を取得して変換する第1関数を取得することを含んでもよい。これにより、前レイヤの各出力値を取得して変化する方法として線形変換が一般的であるが、微分可能な任意の変換方法を利用して学習性能の向上を図ることができる。
<データ例>
図6は、実施形態に係る計算グラフに関する情報の一例を示す図である。図6に示す例では、関数IDごとに計算グラフに関する情報として第1関数が関連付けられている。例えば、様々な計算グラフの一例として、計算グラフの各ノードに関連付けられた第1関数が任意である計算グラフとする。具体例として、関数IDが「A001」の関数として一次関数「u=wh+b」が各ノードに関連付けられ、関数IDが「A002」の関数として二次関数「u=wh2+b」が各ノードに関連付けられる。なお、様々な計算グラフの一例として、前の層の出力値を入力する関数を任意とすることを説明したが、計算グラフ内のレイヤ数、各レイヤのノード数、ノードとエージとの関係を任意とする計算グラフでもよい。なお、図6に示すデータは、図3に示す計算グラフ17bのデータの一例である。
図6は、実施形態に係る計算グラフに関する情報の一例を示す図である。図6に示す例では、関数IDごとに計算グラフに関する情報として第1関数が関連付けられている。例えば、様々な計算グラフの一例として、計算グラフの各ノードに関連付けられた第1関数が任意である計算グラフとする。具体例として、関数IDが「A001」の関数として一次関数「u=wh+b」が各ノードに関連付けられ、関数IDが「A002」の関数として二次関数「u=wh2+b」が各ノードに関連付けられる。なお、様々な計算グラフの一例として、前の層の出力値を入力する関数を任意とすることを説明したが、計算グラフ内のレイヤ数、各レイヤのノード数、ノードとエージとの関係を任意とする計算グラフでもよい。なお、図6に示すデータは、図3に示す計算グラフ17bのデータの一例である。
図7は、実施形態に係る所定のデータに関する情報と、適切な計算グラフに関する情報とを関連付けた関連データの一例を示す図である。図7に示す例では、データセットの種類Aに関数ID「A001」の第1関数が関連付けられ、データの種類Bに関数「A002」の第1関数が関連付けられている。なお、図7に示すデータは、図3に示す関連データ17cの一例である。
<動作>
図8は、実施形態に係る予測モデルの生成に関する処理の一例を示すフローチャートである。図8に示す処理は、情報処理装置10により実行される。
図8は、実施形態に係る予測モデルの生成に関する処理の一例を示すフローチャートである。図8に示す処理は、情報処理装置10により実行される。
ステップS102において、情報処理装置10の第1学習部12は、所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデルに、所定のデータを入力して学習を行う。所定のデータは、記憶部17のデータセット17aから選択されてもよいし、他の装置からネットワークを介して受信された所定のデータでもよいし、ユーザ操作に応じて入力された所定のデータを取得してもよい。また、所定の計算グラフは、デフォルトで第1計算グラフが設定されていればよい。
ステップS104において、情報処理装置10の変更部13は、所定のデータ及び/又は所定の計算グラフを変更する。変更部13は、所定の基準に従って、学習対象のデータを変更したり、計算グラフを変更したりする。変更部13は、所定の計算グラフ内の所定のレイヤの所定のノードに関連付けられる第1関数及び第1関数の出力値を入力する活性化関数のうち、第1関数を変更することを含んでもよい。
ステップS106において、情報処理装置10の第1学習部12は、変更後の所定のデータ及び/又は所定の計算グラフを用いた学習の学習結果を取得する。
ステップS108において、情報処理装置10の第2学習部14は、学習が行われた任意のデータ及び任意の計算グラフと、任意のデータ及び任意の計算グラフを用いて学習されたときの学習結果とを含む学習データを用いて、教師あり学習を行う。
ステップS110で、情報処理装置10の第2学習部14は、教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成する。
以上の処理により、生成された予測モデルを利用することで、ニューラルネットワークを構成する計算グラフを、より適切にすることを可能にする。
図9は、実施形態に係るユーザが利用する情報処理装置20における処理の一例を示すフローチャートである。ステップS202において、情報処理装置20の出力部23は、学習対象の所定のデータに関する情報を他の情報処理装置(例えばサーバ10)に出力する。
ステップS204において、情報処理装置20の取得部21は、他の情報処理装置(例えばサーバ10)から、所定のデータに対応する計算グラフを示す情報を取得する。取得される計算グラフは、所定のレイヤの所定のノードに関連付けられる第1関数及び第1関数の出力値を入力する活性化関数のうち、所定のデータに応じて特定される第1関数を含んでもよい。
ステップS206において、情報処理装置20の学習部22は、取得された計算グラフを所定の学習モデル22aに適用する。
ステップS208において、情報処理装置20の学習部22は、計算グラフが適用された学習モデル22aに、所定のデータを入力して学習結果を取得する。
これにより、エッジ側の情報処理装置であっても、学習対象のデータに対して適切な計算グラフを取得して学習を行うことで、学習性能の向上を図ることができる。
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。また、第1学習部12を備える装置と、第2学習部14を備える装置とは別のコンピュータでもよい。この場合、生成された第1学習部12により学習された学習結果が、ネットワークを介して、第2学習部14を備える装置に送信されてもよい。
また、情報処理装置10は、変更部13を必ずしも設けなくてもよい。例えば、情報処理装置10は、任意の学習対象のデータと任意の計算グラフの組における各学習性能を取得して第2学習部14による学習を行ってもよい。
10…情報処理装置、10a…CPU、10b…RAM、10c…ROM、10d…通信部、10e…入力部、10f…表示部、11…取得部、12…第1学習部、12a…学習モデル、13…変更部、14…第2学習部、14a…予測モデル、15…関連付け部、16…出力部、17…記憶部、17a…データセット、17b…計算グラフ、17c…関連データ、21…取得部、22…学習部、22a…学習モデル、23…出力部、24…記憶部、24a…データセット
Claims (11)
- 情報処理装置に含まれる1又は複数のプロセッサが、
所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデルに、所定のデータを入力して学習を行うこと、
前記所定のデータ及び/又は前記所定の計算グラフを変更することであって、前記所定の計算グラフ内の所定のレイヤの所定のノードに関連付けられる関数及び前記関数の出力値を入力する活性化関数のうち、前記関数を変更することを含む、前記変更すること、
変更後の所定のデータ及び/又は所定の計算グラフを用いた前記学習の学習結果を取得すること、
前記学習が行われた任意のデータ及び任意の計算グラフと、前記任意のデータ及び前記任意の計算グラフを用いて学習されたときの学習結果とを含む学習データを用いて、教師あり学習を行うこと、
前記教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成すること、
を実行する情報処理方法。 - 前記取得することは、
変更後のデータ及び/又は計算グラフを用いて前記学習を行うことにより前記学習結果を取得することを含む、請求項1に記載の情報処理方法。 - 前記取得することは、
変更後のデータ及び/又は計算グラフを用いた前記学習が行われた他の情報処理装置から前記学習結果を取得することを含む、請求項1に記載の情報処理方法。 - 前記1又は複数のプロセッサは、
前記所定のデータに関する情報と、前記計算グラフに関する情報とを関連づけること、をさらに実行する請求項1に記載の情報処理方法。 - 前記変更することは、
前記所定のレイヤの1つ前のレイヤの各ノードからの出力値を取得して変換する前記関数を変更することを含む、請求項1に記載の情報処理方法。 - 情報処理装置に含まれる1又は複数のプロセッサに、
所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデルに、所定のデータを入力して学習を行うこと、
前記所定のデータ及び/又は前記所定の計算グラフを変更することであって、前記所定の計算グラフ内の所定のレイヤの所定のノードに関連付けられる関数及び前記関数の出力値を入力する活性化関数のうち、前記関数を変更することを含む、前記変更すること、
変更後の所定のデータ及び/又は所定の計算グラフを用いた前記学習の学習結果を取得すること、
任意の所定のデータと、任意の所定の計算グラフと、前記任意の所定のデータ及び前記任意の所定の計算グラフを用いて学習したときの学習結果とを含む学習データを用いて、教師あり学習を行うこと、
前記教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成すること、
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。 - 1又は複数のプロセッサを含む情報処理装置であって、
前記1又は複数のプロセッサは、
所定の計算グラフにより表現されるニューラルネットワークを用いる所定の学習モデルに、所定のデータを入力して学習を行うこと、
前記所定のデータ及び/又は前記所定の計算グラフを変更することであって、前記所定の計算グラフ内の所定のレイヤの所定のノードに関連付けられる関数及び前記関数の出力値を入力する活性化関数のうち、前記関数を変更することを含む、前記変更すること、
変更後の所定のデータ及び/又は所定の計算グラフを用いた前記学習の学習結果を取得すること、
任意の所定のデータと、任意の所定の計算グラフと、前記任意の所定のデータ及び前記任意の所定の計算グラフを用いて学習したときの学習結果とを含む学習データを用いて、教師あり学習を行うこと、
前記教師あり学習により生成される予測モデルであって、所定のデータを入力して特定の計算グラフを出力する予測モデルを生成すること、
を実行する情報処理装置。 - 情報処理装置に含まれる1又は複数のプロセッサが、
所定のデータに関する情報を他の情報処理装置に出力すること、
前記他の情報処理装置から、前記所定のデータに対応する計算グラフを取得することであって、前記計算グラフは、所定のレイヤの所定のノードに関連付けられる関数及び前記関数の出力値を入力する活性化関数のうち、前記所定のデータに応じて特定される前記関数を含む、前記取得すること、
前記計算グラフを所定の学習モデルに適用すること、
前記計算グラフが適用された学習モデルに、前記所定のデータを入力して学習結果を取得すること、
を実行する情報処理方法。 - 前記計算グラフを取得することは、
前記所定のレイヤの1つ前のレイヤの各ノードからの出力値を取得して変換する前記関数を取得することを含む、請求項8に記載の情報処理方法。 - 情報処理装置に含まれる1又は複数のプロセッサに、
所定のデータに関する情報を他の情報処理装置に出力すること、
前記他の情報処理装置から、前記所定のデータに対応する計算グラフを取得することであって、前記計算グラフは、所定のレイヤの所定のノードに関連付けられる関数及び前記関数の出力値を入力する活性化関数のうち、前記所定のデータに応じて特定される前記関数を含む、前記取得すること、
前記計算グラフを所定の学習モデルに適用すること、
前記計算グラフが適用された学習モデルに、前記所定のデータを入力して学習結果を取得すること、
を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。 - 情報処理装置に含まれる1又は複数のプロセッサを含む情報処理装置であって、
前記1又は複数のプロセッサが、
所定のデータに関する情報を他の情報処理装置に出力すること、
前記他の情報処理装置から、前記所定のデータに対応する計算グラフを取得することであって、前記計算グラフは、所定のレイヤの所定のノードに関連付けられる関数及び前記関数の出力値を入力する活性化関数のうち、前記所定のデータに応じて特定される前記関数を含む、前記取得すること、
前記計算グラフを所定の学習モデルに適用すること、
前記計算グラフが適用された学習モデルに、前記所定のデータを入力して学習結果を取得すること、
を実行する情報処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022-073623 | 2022-04-27 | ||
JP2022073623A JP7199121B1 (ja) | 2022-04-27 | 2022-04-27 | 計算グラフの改善 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023210665A1 true WO2023210665A1 (ja) | 2023-11-02 |
Family
ID=84784169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2023/016361 WO2023210665A1 (ja) | 2022-04-27 | 2023-04-25 | 計算グラフの改善 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7199121B1 (ja) |
WO (1) | WO2023210665A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7199121B1 (ja) * | 2022-04-27 | 2023-01-05 | 望 窪田 | 計算グラフの改善 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200074296A1 (en) * | 2018-09-05 | 2020-03-05 | Siemens Healthcare Gmbh | Learning to search deep network architectures |
JP7199121B1 (ja) * | 2022-04-27 | 2023-01-05 | 望 窪田 | 計算グラフの改善 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6942900B1 (ja) * | 2021-04-12 | 2021-09-29 | 望 窪田 | 情報処理装置、情報処理方法及びプログラム |
-
2022
- 2022-04-27 JP JP2022073623A patent/JP7199121B1/ja active Active
-
2023
- 2023-04-25 WO PCT/JP2023/016361 patent/WO2023210665A1/ja unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200074296A1 (en) * | 2018-09-05 | 2020-03-05 | Siemens Healthcare Gmbh | Learning to search deep network architectures |
JP7199121B1 (ja) * | 2022-04-27 | 2023-01-05 | 望 窪田 | 計算グラフの改善 |
Also Published As
Publication number | Publication date |
---|---|
JP2023162911A (ja) | 2023-11-09 |
JP7199121B1 (ja) | 2023-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7440420B2 (ja) | 包括的機械学習サービスを提供するアプリケーション開発プラットフォームおよびソフトウェア開発キット | |
US11093833B1 (en) | Multi-objective distributed hyperparameter tuning system | |
US12061987B2 (en) | Interpretable neural network | |
WO2023210665A1 (ja) | 計算グラフの改善 | |
US20220335293A1 (en) | Method of optimizing neural network model that is pre-trained, method of providing a graphical user interface related to optimizing neural network model, and neural network model processing system performing the same | |
JP6942900B1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
Chou et al. | Sliding-window metaheuristic optimization-based forecast system for foreign exchange analysis | |
WO2023050143A1 (zh) | 一种推荐模型训练方法及装置 | |
JP7068299B2 (ja) | 特徴量選択装置、特徴量選択方法及び特徴量選択プログラム | |
DE102022118204A1 (de) | Hardwarebewusste Maschinenlernmodellsuchmechanismen | |
Yin et al. | Optimal control by deep learning techniques and its applications on epidemic models | |
WO2024114659A1 (zh) | 一种摘要生成方法及其相关设备 | |
Zhang et al. | ReLP: reinforcement learning pruning method based on prior knowledge | |
CN116611861A (zh) | 一种消费预测方法及其相关设备 | |
CN116739154A (zh) | 一种故障预测方法及其相关设备 | |
Qiu et al. | On the promise and challenges of foundation models for learning-based cloud systems management | |
CN117746047A (zh) | 一种图像处理方法及其相关设备 | |
JP7199115B1 (ja) | 機械学習における分散学習 | |
CN114707070A (zh) | 一种用户行为预测方法及其相关设备 | |
JP7112802B1 (ja) | 学習モデルの軽量化 | |
US20230245727A1 (en) | Method for molecular representing | |
JP2023103675A (ja) | 学習モデルの個別化 | |
CN111427935B (zh) | 量化交易指标的预测和显示方法、电子设备和介质 | |
CN115017178B (zh) | 数据到文本生成模型的训练方法和装置 | |
WO2023236900A1 (zh) | 一种项目推荐方法及其相关设备 |
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: 23796405 Country of ref document: EP Kind code of ref document: A1 |