WO2020217371A1 - 学習システム、データ生成装置、データ生成方法、及びデータ生成プログラム - Google Patents

学習システム、データ生成装置、データ生成方法、及びデータ生成プログラム Download PDF

Info

Publication number
WO2020217371A1
WO2020217371A1 PCT/JP2019/017585 JP2019017585W WO2020217371A1 WO 2020217371 A1 WO2020217371 A1 WO 2020217371A1 JP 2019017585 W JP2019017585 W JP 2019017585W WO 2020217371 A1 WO2020217371 A1 WO 2020217371A1
Authority
WO
WIPO (PCT)
Prior art keywords
output
data
training data
learning
neural network
Prior art date
Application number
PCT/JP2019/017585
Other languages
English (en)
French (fr)
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 CN201980093941.5A priority Critical patent/CN113557536B/zh
Priority to JP2021515399A priority patent/JP7164028B2/ja
Priority to EP19925954.0A priority patent/EP3961555A4/en
Priority to US17/441,316 priority patent/US20220172046A1/en
Priority to PCT/JP2019/017585 priority patent/WO2020217371A1/ja
Publication of WO2020217371A1 publication Critical patent/WO2020217371A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0012Biomedical image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Definitions

  • the present invention relates to a learning system, a data generator, a data generation method, and a data generation program.
  • Patent Document 1 it is determined whether the inspection target imaged in the image is normal or abnormal based on the learned first neural network, and when it is determined that the inspection target is abnormal, An inspection device that classifies the type of the anomaly based on the learned second neural network has been proposed.
  • a neural network is an example of a learning model in supervised learning.
  • Other examples of learning models in supervised learning include various models such as support vector machines, linear regression models, decision tree models, and the like.
  • the classifier is trained to output an output value that matches the corresponding correct answer data given the image data, which is the training data. According to the trained classifier, it is possible to perform a predetermined classification task on unknown image data.
  • the performance of this trained classifier basically depends on the number of samples of training data. That is, as the number of samples of training data increases, the performance of the classifier can be improved, for example, the quality of the product can be classified accurately, the state of the driver can be classified accurately, and so on.
  • supervised learning a plurality of learning data sets composed of a combination of image data which is training data and correct answer data indicating the correct answer of the classification task for the image data are used as learning data.
  • the work of assigning the correct answer data to the image data is usually performed manually by the operator. Therefore, it takes time and effort to add correct answer data to the image data, and it costs money to prepare a large number of samples.
  • active learning has been attempted to improve the performance of the classifier with a small amount of sample.
  • the degree to which a sample of training data without correct answer data contributes to the performance improvement of the classifier is evaluated based on a predetermined index. Then, based on the evaluation result, a sample having a high degree of contribution to performance improvement is extracted, and correct answer data is given to the extracted sample.
  • Non-Patent Document 1 proposes a method using the output values of a plurality of neural networks as an index as a method for evaluating the degree to which each sample contributes to the performance improvement of the classifier. Specifically, a sample of image data to which correct answer data has already been added is prepared, and a plurality of trained neural networks are constructed. Then, the instability of the output value of each trained neural network with respect to the sample of the training data to which the correct answer data is not given is evaluated.
  • Non-Patent Document 1 has the following problems. That is, in this method, the instability of the output of each neural network with respect to the sample to which the correct answer data is not given is evaluated by applying the output value obtained from the output layer of each neural network to the acquisition function.
  • a softmax layer is used as the output layer of each neural network in order to carry out the classification task, and the output value of the softmax layer has an acquisition function for calculating entropy and the like. It has been applied.
  • estimation tasks that can be set for image data are not limited to classification tasks that classify some features.
  • the estimation tasks that can be set for the image data include, for example, other types of tasks such as regression tasks and segmentation.
  • regression tasks for example, continuous values such as the probability that a specific feature appears are derived.
  • segmentation for example, an image area such as a portion in which a specific feature appears is extracted.
  • the output format of the neural network may differ depending on the type of this task. Therefore, it is difficult to use the same type of acquisition function for neural networks with different types of tasks. In other words, it is difficult to use the acquisition function set for the classification task as it is as the acquisition function for other types of tasks, and the acquisition function is changed according to the output format of the output layer that depends on the task type. Become. Therefore, in the conventional method, there is a problem that it is difficult to carry out active learning by using an index common to neural networks having different task types.
  • One aspect of the present invention has been made in view of such circumstances, and an object of the present invention is to enable active learning to be carried out by using a common index even in neural networks having different task types. To provide technology.
  • the present invention adopts the following configuration in order to solve the above-mentioned problems.
  • the learning system acquires a plurality of first training data sets each composed of a combination of the first training data and the first correct answer data indicating the features included in the first training data.
  • a learning processing unit that performs machine learning of a plurality of neural networks using the first data acquisition unit and the acquired plurality of first learning data sets, and each neural network is from the input side.
  • a plurality of layers arranged side by side on the output side are included, and the plurality of layers include an output layer arranged on the output side most and a layer of interest arranged on the input side of the output layer, and the machine learning is performed.
  • the learning processing unit including training each neural network so that the output values output from the attention layer of each neural network match each other, and a plurality of second training data are acquired.
  • an output value is acquired from the attention layer of each neural network, and the attention of each neural network is obtained.
  • An evaluation unit that calculates an evaluation value indicating the instability of the output of each neural network with respect to the second training data of each case based on the output value acquired from the layer, and an evaluation unit for determining that the instability is high.
  • the learning processing unit includes a generation unit that generates a set, and the learning processing unit uses the plurality of first training data sets and the at least one or more second training data sets to perform machine learning of the plurality of neural networks. Is performed again, or supervised learning of a learning model different from the plurality of neural networks is performed.
  • the format of the output layer of the neural network depends on the type of estimation task to be learned by the neural network, such as using the softmax layer as the output layer to perform the classification task.
  • the format of the layer (for example, the intermediate layer) arranged on the input side of the output layer of the neural network can be set regardless of the type of the estimation task. For example, assume a situation where a convolutional neural network is used to perform an estimation task for image data. In this scene, an intermediate layer of a common output format such as a convolutional layer, a pooling layer, a fully connected layer, etc. is used regardless of the type of estimation task to be learned (that is, between convolutional neural networks to learn different estimation tasks). It can be used.
  • each neural network including a plurality of layers the layer arranged on the input side from the output layer is set as the attention layer.
  • the attention layer may be arbitrarily set from layers other than the output layer.
  • machine learning using a plurality of first training data sets when the first training data is input, an output value matching the first correct answer data is output from the output layer and an output value output from the attention layer.
  • each neural network is trained to perform an estimation task on unknown input data, and the attention layer of each neural network is the same for the input data capable of appropriately performing the estimation task. Or trained to output an approximate output value.
  • the output of the attention layer of each neural network varies only by the former training, but by further implementing the latter training, the output of the attention layer of each neural network is matched. There is.
  • the output value of the attention layer of each neural network varies, that is, the high output instability is sufficient for each neural network for that sample. Indicates that the performance cannot perform the estimation task. Therefore, it is presumed that the sample contributes to the performance improvement of the estimator that performs the estimation task.
  • the learning system related to the configuration uses this to extract the second training data that is estimated to contribute to the performance improvement of the estimator.
  • the learning system according to the configuration is based on the output value of the attention layer of each neural network, and the instability of the output of each neural network with respect to the second training data (that is, the sample of the training data) of each case.
  • the evaluation value indicating is calculated.
  • the relationship between the output value and the evaluation value of the attention layer of each neural network may be mathematically described by the acquisition function. In this case, by substituting the output value of the attention layer of each neural network into the acquisition function, it is possible to calculate the evaluation value indicating the instability of the output of each neural network with respect to the second training data of each case.
  • the learning system according to the configuration extracts at least one second training data whose evaluation value satisfies the condition for determining that the instability is high from the plurality of second training data.
  • a common index eg, the same acquisition function
  • the second training data estimated to contribute to the performance improvement of the estimator can be appropriately extracted. Therefore, according to the learning system related to the configuration, active learning can be performed by using a common index even in neural networks having different task types.
  • the learning system related to the configuration generates at least one second learning data set by adding the second correct answer data to at least one extracted second training data. Then, the learning system related to the configuration uses the first learning data set and the second learning data set to perform re-learning of each neural network or supervised learning of a new learning model. As a result, it is possible to construct a high-performance estimator while suppressing the number of samples of training data to which correct answer data is given.
  • each neural network does not have to be particularly limited as long as it includes a plurality of layers, and may be appropriately selected according to the embodiment.
  • a fully connected neural network a convolutional neural network, a recursive neural network, or the like may be used.
  • the output format of the output layer may be set according to the type of task to be performed by each neural network.
  • the layer of interest may be appropriately selected from layers other than the output layer.
  • an intermediate layer such as a convolutional layer, a pooling layer, and a fully connected layer may be set as the layer of interest.
  • the configuration of each layer may be appropriately set.
  • the type of the learning model may not be particularly limited as long as supervised learning can be carried out, and may be appropriately selected depending on the embodiment.
  • a support vector machine for example, a support vector machine, a linear regression model, a decision tree model, or the like may be used.
  • the type of training data does not have to be particularly limited and may be appropriately selected according to the embodiment.
  • image data, sound data, numerical data, text data and the like may be used.
  • Estimating features may include classification, regression, segmentation, and the like.
  • the feature may include any element that can be inferred from the data.
  • the estimation task for example, a task of estimating the state (good or bad) of the product reflected in the image data, a task of estimating the state of the driver from the sensing data obtained by observing the driver, and a vital of the target person.
  • the task of estimating the health condition of the subject from the data can be mentioned.
  • Estimating a feature may include predicting some element of the future.
  • the feature may include a precursor to an element that will appear in the future.
  • the correct answer data may be appropriately determined according to the estimation task to be acquired.
  • the correct answer data may be composed of, for example, information indicating the category of the feature, information indicating the probability that the feature appears, information indicating the value of the feature, information indicating the range in which the feature appears, and the like.
  • each neural network may be a convolutional neural network
  • the attention layer may be a convolutional layer. According to this configuration, active learning can be performed by using a common index even in convolutional neural networks having different types of tasks.
  • the fact that the output values output from the attention layer of each neural network match each other is the attention derived from the feature map output from the convolutional layer of each convolutional neural network.
  • the maps may match each other.
  • the attention map has properties similar to the output of the softmax function. Therefore, the acquisition function applied to the softmax layer can be used as it is for the attention map. That is, the conventional acquisition function used for the classification task can be used to derive the evaluation value for the second training data of each case from the output value of the attention layer. Therefore, according to the configuration, since the conventional arithmetic module can be partially used, the introduction cost of the present invention can be suppressed.
  • the plurality of layers of each neural network may include arithmetic parameters used for arithmetic.
  • Training each of the neural networks means that, for each of the first training data sets, when the first training data is input to each of the neural networks, the output value output from the output layer of each of the neural networks is used.
  • the value of the calculation parameter of each neural network so as to reduce the error from the first correct answer data and to reduce the error between the output values output from the attention layer of each neural network. You may be prepared to repeat the adjustment.
  • the learning rate regarding the error between the output values output from the attention layer may be set to increase each time the adjustment of the value of the calculation parameter is repeated. In the early stages of learning, the output values of the attention layer of each neural network can differ significantly.
  • the calculation parameters are, for example, the weight of the connection between each neuron, the threshold value of each neuron, and the like.
  • each training data may be composed of image data showing the product, and the feature may be related to the state of the product.
  • active learning can be performed by using a common index even in neural networks having different task types.
  • the product shown in the image data may be, for example, a product transported on a production line of electronic devices, electronic parts, automobile parts, chemicals, foods, and the like.
  • the electronic component may be, for example, a board, a chip capacitor, a liquid crystal, a winding of a relay, or the like.
  • the automobile parts may be, for example, connecting rods, shafts, engine blocks, power window switches, panels and the like.
  • the chemical may be, for example, a packaged tablet, an unpackaged tablet, or the like.
  • the product may be a final product produced after the completion of the manufacturing process, an intermediate product produced in the middle of the manufacturing process, or an initial product prepared before the manufacturing process is completed. You may.
  • the state of the product may be, for example, related to the presence or absence of defects.
  • the features may relate to product defects such as scratches, stains, cracks, dents, burrs, color unevenness, foreign matter contamination and the like.
  • each training data may be composed of sensing data obtained by a sensor that observes the state of the subject, and the feature may be related to the state of the subject.
  • active learning can be performed by using a common index even in neural networks having different task types. ..
  • the type of the sensor is not particularly limited as long as it can observe the state of a person (subject, subject), and may be appropriately selected according to the embodiment.
  • a camera, a vital sensor, or the like may be used.
  • the camera for example, a general RGB camera, a depth camera, an infrared camera, or the like may be used.
  • the vital sensor for example, a thermometer, a sphygmomanometer, a pulse rate monitor and the like may be used.
  • the sensing data may be composed of image data, vital measurement data, and the like.
  • the state of the person may include, for example, the health state of the person.
  • the method for expressing the health state does not have to be particularly limited, and may be appropriately selected depending on the embodiment.
  • the state of health may be expressed by, for example, whether or not the person is healthy, whether or not there is a sign of illness, and the like.
  • the state of the person is, for example, the degree of drowsiness indicating the degree of drowsiness of the person, the degree of fatigue indicating the degree of fatigue of the person, the degree of margin indicating the degree of margin for driving the person, or these. Combinations may be included.
  • the form of the present invention does not have to be limited to the above learning system.
  • the device according to one aspect of the present invention can obtain, for example, from the learning system according to each of the above forms, for example, a portion for performing machine learning of each neural network, and second training data having a high degree of contribution to improving the performance of the estimator. It may be configured by extracting a part such as a portion to be extracted.
  • a device corresponding to a part of each neural network that performs machine learning may be referred to as a learning device.
  • a device corresponding to a portion that extracts a second training data having a high degree of contribution to improving the performance of the estimator may be referred to as a data generator.
  • the embodiment of the present invention may include a device that utilizes an estimator (learned neural network or learning model) constructed by machine learning using the first learning data set and the second learning data set.
  • a device that utilizes an estimator may be referred to as an estimator.
  • the name of the estimation device may be changed according to the type of estimation task.
  • the learning device acquires a plurality of first training data sets each composed of a combination of the first training data and the first correct answer data indicating the features included in the first training data.
  • a learning processing unit that performs machine learning of a plurality of neural networks using the first data acquisition unit and the acquired plurality of first learning data sets, and each neural network is from the input side.
  • a plurality of layers arranged side by side on the output side are included, and the plurality of layers include an output layer arranged on the output side most and a layer of interest arranged on the input side of the output layer, and the machine learning is performed.
  • the learning processing unit includes training each of the neural networks so that the output values output from the attention layer of the respective neural networks match each other.
  • the data generation device has a plurality of first training data each composed of a combination of the first training data and the first correct answer data indicating the characteristics included in the first training data.
  • a model acquisition unit that acquires a plurality of neural networks trained by machine learning using a set, and each neural network includes a plurality of layers arranged side by side from an input side to an output side, and the plurality of layers are included.
  • the layer includes an output layer arranged on the output side most and a layer of interest arranged on the input side of the output layer, and each neural network is subjected to the machine learning for the first training data set.
  • an output value matching the first correct answer data is output from the output layer of each neural network, and is output from the attention layer of each neural network.
  • a model acquisition unit that is trained so that the output values match each other, a data acquisition unit that acquires a plurality of second training data, and each of the trained neural networks are provided with the second training data of each case.
  • An evaluation unit that calculates an evaluation value indicating the instability of the output of the network, and at least one second training data in which the evaluation value satisfies the condition for determining the instability is the second of the plurality of cases.
  • the said It includes a generation unit that generates at least one or more second training data sets each composed of a combination of the second training data and the second correct answer data.
  • the data generation device may further include an output unit that outputs the generated at least one or more second learning data sets so that they can be used for supervised learning of the learning model.
  • one aspect of the present invention includes all or a part of each of the above configurations. It may be an information processing method to be realized, a program, or a storage medium that stores such a program and can be read by a computer or other device, machine, or the like.
  • the storage medium that can be read by a computer or the like is a medium that stores information such as a program by electrical, magnetic, optical, mechanical, or chemical action.
  • a computer comprises a plurality of first training data composed of a combination of the first training data and the first correct answer data indicating the characteristics included in the first training data.
  • a plurality of layers arranged side by side are included, and the plurality of layers include an output layer arranged on the most output side and a attention layer arranged on the input side of the output layer, and perform the machine learning.
  • a step including training each neural network and a step of acquiring a plurality of second training data are trained so that the output values output from the attention layer of each neural network match each other.
  • a step of acquiring an output value from the attention layer of each neural network by inputting the second training data of each case into each of the neural networks, and the output acquired from the attention layer of each neural network. Based on the value, the evaluation value satisfies the step of calculating the evaluation value indicating the instability of the output of each neural network with respect to the second training data of each case and the condition for determining that the instability is high.
  • the step of extracting at least one second training data from the plurality of second training data and each of the extracted at least one second training data are included in the second training data.
  • the machine learning of the plurality of neural networks is performed again using the first training data set of the above and the at least one or more second training data sets, or a teacher of a learning model different from the plurality of neural networks. There are steps to carry out learning and information processing methods to execute.
  • a computer is configured by a combination of the first training data and the first correct answer data showing the characteristics included in the first training data, respectively.
  • a step of acquiring a plurality of neural networks trained by machine learning using a data set, each of which includes a plurality of layers arranged side by side from an input side to an output side, and the plurality of layers. Includes an output layer arranged most on the output side and a layer of interest arranged on the input side of the output layer, and each of the neural networks is subjected to the machine learning for each of the first training data sets.
  • an output value matching the first correct answer data is output from the output layer of each neural network, and an output output from the attention layer of each neural network is output.
  • a step in which the values are trained to match each other a step of acquiring a plurality of second training data, and the step of inputting the second training data of each case into each of the trained neural networks. The output of each neural network with respect to the second training data of each case based on the step of acquiring the output value from the attention layer of each neural network and the output value acquired from the attention layer of each neural network.
  • At least one second training data in which the evaluation value satisfies the step of calculating the evaluation value indicating the instability of the above and the condition for determining that the instability is high is extracted from the plurality of second training data.
  • the second training data and the second training data It is an information processing method that executes a step of generating at least one or more second learning data sets each composed of a combination of the second correct answer data.
  • a plurality of first training data and a plurality of first correct answer data indicating features included in the first training data are combined in a computer.
  • the layer includes an output layer arranged on the output side most and a layer of interest arranged on the input side of the output layer, and each neural network is subjected to the machine learning for each of the first training data sets.
  • an output value matching the first correct answer data is output from the output layer of each neural network, and is output from the attention layer of each of the neural networks.
  • a step of training the output values to match each other a step of acquiring a plurality of second training data, and inputting the second training data of each case into each of the trained neural networks. Based on the step of acquiring the output value from the attention layer of each neural network and the output value acquired from the attention layer of each neural network, the respective neural networks for the second training data of each case.
  • the step of calculating the evaluation value indicating the instability of the output of the above, and at least one second training data in which the evaluation value satisfies the condition for determining the instability is the plurality of second training data.
  • the second training It is a program for executing a step of generating at least one or more second training data sets each composed of a combination of data and the second correct answer data.
  • FIG. 1 schematically illustrates an example of a situation in which the present invention is applied.
  • FIG. 2 schematically illustrates an example of the hardware configuration of the learning device according to the embodiment.
  • FIG. 3 schematically illustrates an example of the hardware configuration of the data generation device according to the embodiment.
  • FIG. 4 schematically illustrates an example of the hardware configuration of the estimation device according to the embodiment.
  • FIG. 5A schematically illustrates an example of the software configuration of the learning device according to the embodiment.
  • FIG. 5B schematically illustrates an example of the software configuration of the learning device according to the embodiment.
  • FIG. 6 schematically illustrates an example of the software configuration of the data generation device according to the embodiment.
  • FIG. 7 schematically illustrates an example of the software configuration of the estimation device according to the embodiment.
  • FIG. 8 illustrates an example of the processing procedure of the learning device according to the embodiment.
  • FIG. 9 illustrates an example of the machine learning processing procedure of the learning device according to the embodiment.
  • FIG. 10 illustrates an example of the processing procedure of the data generator according to the embodiment.
  • FIG. 11 illustrates an example of the processing procedure of the learning device according to the embodiment.
  • FIG. 12 illustrates an example of the processing procedure of the estimation device according to the embodiment.
  • FIG. 13 schematically illustrates an example of another situation to which the present invention is applied.
  • FIG. 14A schematically illustrates an example of the hardware configuration of the inspection device according to another form.
  • FIG. 14B schematically illustrates an example of the software configuration of the inspection device according to another form.
  • FIG. 15 schematically illustrates an example of another situation to which the present invention is applied.
  • FIG. 14A schematically illustrates an example of the hardware configuration of the inspection device according to another form.
  • FIG. 14B schematically illustrates an example of the software configuration of the inspection device according to another form.
  • FIG. 16A schematically illustrates an example of the hardware configuration of the monitoring device according to another form.
  • FIG. 16B schematically illustrates an example of the software configuration of the monitoring device according to another form.
  • FIG. 17 schematically illustrates an example of another situation to which the present invention is applied.
  • the present embodiment an embodiment according to one aspect of the present invention (hereinafter, also referred to as “the present embodiment”) will be described with reference to the drawings.
  • the embodiments described below are merely examples of the present invention in all respects. Needless to say, various improvements and modifications can be made without departing from the scope of the present invention. That is, in carrying out the present invention, a specific configuration according to the embodiment may be appropriately adopted.
  • the data appearing in the present embodiment are described in natural language, but more specifically, the data is specified in a pseudo language, commands, parameters, machine language, etc. that can be recognized by a computer.
  • FIG. 1 schematically illustrates an example of a scene in which the present invention is applied.
  • the estimation system 100 is a series of processes including a process of generating a learning data set, a process of performing machine learning of a learning model, and a process of performing a predetermined estimation task using a trained learning model. It is configured to perform information processing.
  • the estimation system 100 includes a learning system 101 and an estimation device 3.
  • the learning system 101 is configured to execute a process of performing machine learning of a learning model including a neural network and a process of generating a learning data set in the above series of information processing.
  • the learning system 101 includes a learning device 1 and a data generation device 2 according to each process.
  • the learning device 1 is a computer configured to execute machine learning (supervised learning) of a learning model using a plurality of learning data sets.
  • the learning device 1 performs machine learning of the learning model for different purposes in each of the two phases.
  • the learning device 1 uses the prepared learning data set (first learning data set 121) to a high degree of contributing to the performance improvement of the estimator, that is, it is worth giving correct answer data.
  • the data generation device 2 uses a plurality of neural networks trained by this machine learning to generate a new training data set (second training data set 227).
  • the learning device 1 further uses the generated new learning data set to perform machine learning of the learning model for use in performing the estimation task.
  • the estimation device 3 uses the learning model trained by this machine learning to perform a predetermined estimation task on the target data.
  • the learning device 1 acquires a plurality of first learning data sets 121.
  • Each first learning data set 121 is composed of a combination of the first training data 122 and the first correct answer data 123.
  • the type of the first training data 122 does not have to be particularly limited, and may be appropriately selected according to the estimation task to be acquired by the learning model.
  • the first training data 122 may be, for example, image data, sound data, numerical data, text data, or the like.
  • the learning model learns the ability to estimate the features included in the sensing data obtained by the sensor S. Therefore, in the present embodiment, the first training data 122 is sensing data obtained by the sensor S or a sensor of the same type.
  • the type of the sensor S does not have to be particularly limited, and may be appropriately selected according to the estimation task to be acquired by the learning model.
  • the sensor S may be, for example, a camera, a microphone, an encoder, a lidar (light detection and ringing) sensor, a vital sensor, an environment sensor, or the like.
  • the camera is, for example, a general digital camera configured to acquire an RGB image, a depth camera configured to acquire a depth image, an infrared camera configured to image an amount of infrared rays, and the like.
  • the vital sensor may be, for example, a thermometer, a sphygmomanometer, a pulse rate monitor, or the like.
  • the environment sensor may be, for example, a photometer, a thermometer, a hygrometer, or the like.
  • a camera is selected for the sensor S, and the first training data 122 is the image data of the product obtained by the camera. Is selected.
  • the first correct answer data 123 shows the features included in the first training data 122. That is, the first correct answer data 123 is configured to indicate the correct answer of a predetermined estimation task for the first training data 122.
  • the first correct answer data 123 may be composed of, for example, information indicating a feature category, information indicating a probability that a feature appears, information indicating a value of a feature, information indicating a range in which a feature appears, and the like.
  • the first correct answer data 123 indicates, for example, whether or not the product contains defects, the types of defects contained in the product, the range of defects contained in the product, and the like. It may be configured as follows.
  • the predetermined estimation task is to estimate some features contained in the predetermined data. This "estimating the characteristics" may include performing some classification, regressing some value, performing segmentation, and the like.
  • the feature may include any element that can be inferred from the data.
  • the estimation task in addition to the task of estimating the state (good or bad) of the product reflected in the above image data, for example, the task of estimating the state of the driver from the sensing data obtained by observing the driver, the target.
  • the task of estimating the health condition of the subject from the vital data of the subject can be mentioned.
  • Estimating a feature may include predicting some element of the future. In this case, the feature may include a precursor to an element that will appear in the future.
  • the learning device 1 uses the acquired plurality of first learning data sets 121 to perform machine learning of a plurality of neural networks.
  • the learning device 1 performs machine learning of two neural networks (50, 51) as a plurality of neural networks.
  • they will be referred to as a first neural network 50 and a second neural network 51, respectively.
  • the number of neural networks to be machine-learned in this first phase is not limited to two, and may be three or more.
  • Each neural network (50, 51) is configured to include a plurality of layers arranged side by side from the input side to the output side. Then, the plurality of layers of each neural network (50, 51) are configured to include an output layer arranged on the output side most and a layer of interest arranged on the input side of the output layer.
  • the structure for example, the number of layers, the type of each layer, the number of neurons contained in each layer, the connection relationship between neurons in adjacent layers, etc.
  • the type of each neural network (50, 51) are not particularly limited. It may be appropriately determined according to the embodiment.
  • the structures of the two neural networks (50, 51) may be different from each other.
  • the layer of interest may be appropriately selected from layers other than the output layer. For the attention layer, for example, an input layer, an intermediate layer, or the like may be selected. An intermediate layer is preferably selected as the layer of interest.
  • the first neural network 50 is at least three or more of an input layer 501 arranged on the most input side, an output layer 507 arranged on the most output side, and an attention layer 503 arranged as an intermediate layer. Contains a layer of.
  • the second neural network 51 includes at least three or more layers of the input layer 511 arranged on the input side most, the output layer 517 arranged on the output side most, and the attention layer 513 arranged as an intermediate layer. Includes.
  • a convolutional neural network is used for each neural network (50, 51).
  • a convolutional layer is selected for each attention layer (503, 513).
  • each neural network (50, 51) is trained so that the output values output from the attention layer (503, 513) match each other.
  • each neural network (50, 51) is trained to perform an estimation task on unknown input data of the same type as the first training data 122, and the attention layer (503, 513) is trained. Trained to output identical or similar output values to input data that can properly perform the estimation task. While the output of the attention layer (503, 513) of each neural network (50, 51) varies only by the former training, the output of the attention layer (503, 513) can be obtained by further performing the latter training. Will be consistent.
  • the data generation device 2 is a computer configured to generate a new learning data set by utilizing the properties of the attention layer (503, 513). Specifically, the data generation device 2 acquires a plurality of neural networks trained as described above by machine learning using the plurality of first training data sets 121. In the present embodiment, the data generation device 2 can acquire the above two neural networks (50, 51). In addition, the data generation device 2 acquires a plurality of second training data 221.
  • the second training data 221 of each case is the same type of data as the first training data 122. In the present embodiment, the second training data 221 of each case is a sample of training data to which correct answer data is not assigned.
  • the data generation device 2 pays attention to each neural network (50, 51) by inputting the second training data 221 of each case into each trained neural network (50, 51).
  • the output value is acquired from the layer (503, 513).
  • the data generation device 2 has an evaluation value 222 indicating the instability of the output of each neural network (50, 51) with respect to the second training data 221 of each case based on the output value acquired from the attention layer (503, 513). Is calculated.
  • each neural network (50, 51) is trained so that the outputs of the attention layer (503, 513) are matched. Therefore, when a sample of training data is given to each neural network (50, 51), the output value of the attention layer (503, 513) varies, that is, the output instability is high, that is, each neural network (50). , 51) show that the estimation task cannot be performed with sufficient performance for the sample. Therefore, it is presumed that the sample contributes to the performance improvement of the estimator that performs the estimation task, that is, it is highly valuable to give the correct answer data.
  • the data generation device 2 extracts at least one or more second training data 223s whose evaluation value 222 satisfies the condition for determining that the instability is high from the plurality of second training data 221s. To do. Further, the data generation device 2 sets the correct answer of the predetermined estimation task for the second training data 223 to the features included in the second training data 223 for each of the extracted at least one second training data 223. ) Is accepted for input of the second correct answer data 225. The second correct answer data 225 is the same type of data as the first correct answer data 123. Then, the data generation device 2 generates at least one or more second training data sets 227 by adding the input second correct answer data 225 to the corresponding second training data 223. Each generated second training data set 227 is composed of a combination of the second training data 223 and the second correct answer data 225.
  • each neural network (50, 51) When the first training data 122 is input to each of the first training data sets 121, each neural network (50, 51) outputs an output value corresponding to the first correct answer data 123 in the output layer (507, 517). It is also trained to output from. Therefore, each neural network (50, 51) can be used not only for extracting the second training data 223 but also for executing a predetermined estimation task. Therefore, each neural network (50, 51) may also be used to perform the estimation task.
  • the learning device 1 acquires at least one generated second learning data set 227. Then, the learning device 1 may re-execute the machine learning of each neural network (50, 51) by using the plurality of first learning data sets 121 and at least one or more second learning data sets 227. .. Alternatively, the learning device 1 uses a plurality of first training data sets 121 and at least one or more second training data sets 227 for supervised learning of a learning model different from each neural network (50, 51). May be carried out. By supervised learning, the trained learning model is configured to be available for performing a predetermined estimation task, as well as each trained neural network (50, 51).
  • the estimation device 3 is configured to use the learned learning model constructed by the learning device 1 as an estimator and perform a predetermined estimation task for the target data. It is a computer.
  • the trained learning model any of the first neural network 50, the second neural network 51, and another learning model may be used.
  • the estimation device 3 acquires target data to be executed for performing the estimation task.
  • the sensor S is connected to the estimation device 3.
  • the estimation device 3 acquires the target data from the sensor S.
  • the estimation device 3 inputs the acquired target data into the trained learning model and executes arithmetic processing of the trained learning model.
  • the estimation device 3 acquires an output value corresponding to the result of estimating the features included in the target data from the trained learning model.
  • the estimation device 3 outputs information regarding the estimation result.
  • each neural network (50, 51) the layer arranged on the input side of the output layer (507, 517) is selected as the attention layer (503, 517).
  • the format of the output layer (507, 517) of each neural network (50, 51) depends on the type of estimation task to be learned. On the other hand, the format of the layer arranged on the input side of the output layer (507, 517) of each neural network (50, 51) can be set regardless of the type of estimation task. Therefore, in the present embodiment, in each neural network (50, 51), the output of the output layer (507, 517) arranged on the input side of the output layer (507, 517) is used to use the output of each case. 2 Evaluate the instability of the output for the training data 221.
  • the common index does not depend on the type of task to be acquired by each neural network (50, 51). Can be used to evaluate the output instability of each neural network (50, 51) with respect to the second training data 221 of each case.
  • the training to match the output values of the above-mentioned attention layer (503, 513) is performed, it is estimated that the degree of contribution to the performance improvement of the estimator is high based on the evaluation result. 2 Training data 223 can be appropriately extracted. Therefore, according to the present embodiment, it becomes possible to carry out active learning by using a common index even in neural networks having different task types.
  • the learning device 1, the data generation device 2, and the estimation device 3 are connected to each other via a network.
  • the type of network may be appropriately selected from, for example, the Internet, a wireless communication network, a mobile communication network, a telephone network, a dedicated network, and the like.
  • the method of exchanging data between the devices 1 to 3 does not have to be limited to such an example, and may be appropriately selected according to the embodiment. For example, data may be exchanged between the devices 1 to 3 using a storage medium.
  • the learning device 1, the data generation device 2, and the estimation device 3 are separate computers.
  • the configuration of the estimation system 100 does not have to be limited to such an example, and may be appropriately determined according to the embodiment.
  • at least one pair of the learning device 1, the data generating device 2, and the estimating device 3 may be an integral computer.
  • at least one of the learning device 1, the data generation device 2, and the estimation device 3 may be configured by a plurality of computers.
  • FIG. 2 schematically illustrates an example of the hardware configuration of the learning device 1 according to the present embodiment.
  • the learning device 1 is a computer to which the control unit 11, the storage unit 12, the communication interface 13, the input device 14, the output device 15, and the drive 16 are electrically connected. ..
  • the communication interface is described as "communication I / F".
  • the control unit 11 includes a CPU (Central Processing Unit), a RAM (Random Access Memory), a ROM (Read Only Memory), and the like, which are hardware processors, and is configured to execute information processing based on a program and various data.
  • the storage unit 12 is an example of a memory, and is composed of, for example, a hard disk drive, a solid state drive, or the like. In the present embodiment, the storage unit 12 stores various information such as the learning program 81, the first data pool 85, the first learning result data 125, and the second learning result data 127.
  • the learning program 81 is a program for causing the learning device 1 to execute information processing (FIGS. 8, 9, and 11) described later regarding machine learning in each of the above phases.
  • the learning program 81 includes a series of instructions for the information processing.
  • the first data pool 85 stores data sets used for machine learning (first learning data set 121 and second learning data set 227).
  • the first learning result data 125 shows information about each trained neural network (50, 51) generated by the machine learning of the first phase.
  • the second learning result data 127 shows information about the trained learning model generated by the machine learning of the second phase.
  • Each learning result data (125, 127) is obtained as a result of executing the learning program 81. Details will be described later.
  • the communication interface 13 is, for example, a wired LAN (Local Area Network) module, a wireless LAN module, or the like, and is an interface for performing wired or wireless communication via a network.
  • the learning device 1 can perform data communication via a network with another information processing device (for example, a data generation device 2, an estimation device 3, etc.).
  • the input device 14 is, for example, a device for inputting a mouse, a keyboard, or the like.
  • the output device 15 is, for example, a device for outputting a display, a speaker, or the like.
  • the operator can operate the learning device 1 via the input device 14 and the output device 15.
  • the input device 14 and the output device 15 may be integrally configured by a touch panel display or the like.
  • the drive 16 is, for example, a CD drive, a DVD drive, or the like, and is a drive device for reading a program stored in the storage medium 91.
  • the type of the drive 16 may be appropriately selected according to the type of the storage medium 91.
  • At least one of the learning program 81 and the first data pool 85 may be stored in the storage medium 91.
  • the storage medium 91 stores the information of the program or the like by electrical, magnetic, optical, mechanical or chemical action so that the information of the program or the like recorded by the computer or other device or machine can be read. It is a medium to do.
  • the learning device 1 may acquire at least one of the learning program 81 and the first data pool 85 from the storage medium 91.
  • FIG. 2 illustrates a disc-type storage medium such as a CD or DVD as an example of the storage medium 91.
  • the type of the storage medium 91 is not limited to the disc type, and may be other than the disc type.
  • Examples of storage media other than the disk type include semiconductor memories such as flash memories.
  • the components can be omitted, replaced, or added as appropriate according to the embodiment.
  • the control unit 11 may include a plurality of hardware processors.
  • the hardware processor may be composed of a microprocessor, an FPGA (field-programmable gate array), a DSP (digital signal processor), or the like.
  • the storage unit 12 may be composed of a RAM and a ROM included in the control unit 11. At least one of the communication interface 13, the input device 14, the output device 15, and the drive 16 may be omitted.
  • the learning device 1 may be composed of a plurality of computers. In this case, the hardware configurations of the computers may or may not match. Further, the learning device 1 may be a general-purpose server device, a general-purpose PC (Personal Computer), or the like, in addition to an information processing device designed exclusively for the provided service.
  • FIG. 3 schematically illustrates an example of the hardware configuration of the data generation device 2 according to the present embodiment.
  • the data generation device 2 is a computer in which the control unit 21, the storage unit 22, the communication interface 23, the input device 24, the output device 25, and the drive 26 are electrically connected. is there.
  • the control units 21 to drive 26 of the data generation device 2 according to the present embodiment may be configured in the same manner as the control units 11 to drive 16 of the learning device 1, respectively.
  • control unit 21 includes a CPU, RAM, ROM, etc., which are hardware processors, and is configured to execute various information processing based on programs and data.
  • the storage unit 22 is composed of, for example, a hard disk drive, a solid state drive, or the like. In the present embodiment, the storage unit 22 stores various information such as the data generation program 82, the second data pool 87, and the first learning result data 125.
  • the data generation program 82 is a program for causing the data generation device 2 to execute the information processing (FIG. 10) described later that generates at least one or more second learning data sets 227.
  • the data generation program 82 includes a series of instructions for the information processing.
  • the second data pool 87 accumulates the second training data 221 to which the correct answer data is not assigned. Details will be described later.
  • the communication interface 23 is, for example, a wired LAN module, a wireless LAN module, or the like, and is an interface for performing wired or wireless communication via a network.
  • the data generation device 2 can perform data communication via the network with another information processing device (for example, the learning device 1).
  • the input device 24 is, for example, a device for inputting a mouse, a keyboard, or the like.
  • the output device 25 is, for example, a device for outputting a display, a speaker, or the like.
  • the operator can operate the data generation device 2 via the input device 24 and the output device 25.
  • the input device 24 and the output device 25 may be integrally configured by a touch panel display or the like.
  • the drive 26 is, for example, a CD drive, a DVD drive, or the like, and is a drive device for reading a program stored in the storage medium 92. At least one of the data generation program 82, the second data pool 87, and the first learning result data 125 may be stored in the storage medium 92. Further, the data generation device 2 may acquire at least one of the data generation program 82, the second data pool 87, and the first learning result data 125 from the storage medium 92.
  • the type of the storage medium 92 may be a disc type or may be other than the disc type.
  • the components can be omitted, replaced, or added as appropriate according to the embodiment.
  • the control unit 21 may include a plurality of hardware processors.
  • the hardware processor may be composed of a microprocessor, FPGA, DSP and the like.
  • the storage unit 22 may be composed of a RAM and a ROM included in the control unit 21. At least one of the communication interface 23, the input device 24, the output device 25, and the drive 26 may be omitted.
  • the data generation device 2 may be composed of a plurality of computers. In this case, the hardware configurations of the computers may or may not match.
  • the data generation device 2 may be a general-purpose server device, a general-purpose PC, or the like, in addition to an information processing device designed exclusively for the provided service.
  • FIG. 4 schematically illustrates an example of the hardware configuration of the estimation device 3 according to the present embodiment.
  • the control unit 31, the storage unit 32, the communication interface 33, the input device 34, the output device 35, the drive 36, and the external interface 37 are electrically connected. It is a computer.
  • the external interface is described as "external I / F".
  • the control units 31 to drive 36 of the estimation device 3 may be configured in the same manner as the control units 11 to drive 16 of the learning device 1, respectively.
  • control unit 31 includes a CPU, RAM, ROM, etc., which are hardware processors, and is configured to execute various information processing based on programs and data.
  • the storage unit 32 is composed of, for example, a hard disk drive, a solid state drive, or the like.
  • the storage unit 32 stores various information such as the estimation program 83 and the second learning result data 127.
  • the estimation program 83 is a program for causing the estimation device 3 to execute the information processing (FIG. 12) described later, which estimates the features included in the target data, by using the generated learned learning model.
  • the estimation program 83 includes a series of instructions for the information processing. Details will be described later.
  • the communication interface 33 is, for example, a wired LAN module, a wireless LAN module, or the like, and is an interface for performing wired or wireless communication via a network.
  • the estimation device 3 can perform data communication via the network with another information processing device (for example, the learning device 1).
  • the input device 34 is, for example, a device for inputting a mouse, a keyboard, or the like.
  • the output device 35 is, for example, a device for outputting a display, a speaker, or the like. The operator can operate the estimation device 3 via the input device 34 and the output device 35.
  • the input device 34 and the output device 35 may be integrally configured by a touch panel display or the like.
  • the drive 36 is, for example, a CD drive, a DVD drive, or the like, and is a drive device for reading a program stored in the storage medium 93. At least one of the estimation program 83 and the second learning result data 127 may be stored in the storage medium 93. Further, the estimation device 3 may acquire at least one of the estimation program 83 and the second learning result data 127 from the storage medium 93.
  • the type of the storage medium 93 may be a disc type or may be other than the disc type.
  • the external interface 37 is, for example, a USB (Universal Serial Bus) port, a dedicated port, or the like, and is an interface for connecting to an external device.
  • the type and number of the external interfaces 37 may be appropriately selected according to the type and number of connected external devices.
  • the estimation device 3 is connected to the sensor S via the external interface 37.
  • the sensor S is used to acquire the target data that is the target of the estimation task.
  • the type and location of the sensor S need not be particularly limited and may be appropriately determined according to the type of estimation task to be performed.
  • a camera may be selected for the sensor S, and the camera is conveyed by the production line.
  • the product may be arranged as appropriate so that it can be observed.
  • the estimation device 3 may be connected to the sensor S via the communication interface 33 instead of the external interface 37.
  • the components can be omitted, replaced, or added as appropriate according to the embodiment.
  • the control unit 31 may include a plurality of hardware processors.
  • the hardware processor may be composed of a microprocessor, FPGA, DSP and the like.
  • the storage unit 32 may be composed of a RAM and a ROM included in the control unit 31. At least one of the communication interface 33, the input device 34, the output device 35, the drive 36, and the external interface 37 may be omitted.
  • the estimation device 3 may be composed of a plurality of computers. In this case, the hardware configurations of the computers may or may not match. Further, the estimation device 3 may be a general-purpose server device, a general-purpose PC, or the like, in addition to an information processing device designed exclusively for the provided service.
  • the control unit 11 of the learning device 1 expands the learning program 81 stored in the storage unit 12 into the RAM. Then, the control unit 11 controls each component by interpreting and executing the instruction included in the learning program 81 expanded in the RAM by the CPU.
  • the learning device 1 operates as a computer including a data acquisition unit 111, a learning processing unit 112, and a storage processing unit 113 as software modules. That is, in the present embodiment, each software module of the learning device 1 is realized by the control unit 11 (CPU).
  • the data acquisition unit 111 is composed of a plurality of combinations of the first training data 122 and the first correct answer data 123 showing the characteristics included in the first training data 122.
  • the first training data set 121 of the above is acquired.
  • the data acquisition unit 111 is an example of the "first data acquisition unit" of the present invention.
  • the training data set is stored in the first data pool 85.
  • the data acquisition unit 111 can acquire a plurality of first learning data sets 121 from the first data pool 85.
  • the learning processing unit 112 uses the acquired plurality of first learning data sets 121 to perform machine learning of a plurality of neural networks.
  • the learning processing unit 112 performs machine learning of two neural networks (50, 51).
  • Each neural network (50, 51) includes a plurality of layers arranged side by side from the input side to the output side.
  • the plurality of layers are the output layer (507, 517) arranged on the output side most and the attention layer (503, 503,) arranged on the input side of the output layer (507, 517). 513) is included.
  • the output value corresponding to the first correct answer data 123 is output layer ( It includes training each neural network (50, 51) so that the output values output from the layer of interest (503, 513) as well as output from 507, 517) match each other.
  • the storage processing unit 113 generates information about each trained neural network (50, 51) constructed by the above machine learning as the first learning result data 125. Then, the storage processing unit 113 stores the generated first learning result data 125 in a predetermined storage area.
  • the predetermined storage area may be, for example, a RAM in the control unit 11, a storage unit 12, a storage medium 91, an external storage device, or a combination thereof.
  • each neural network (50, 51) is a convolutional neural network.
  • a convolutional neural network generally includes a convolutional layer, a pooling layer, and a fully connected layer.
  • the convolution layer is a layer that performs a convolution operation on given data.
  • the convolution operation corresponds to a process of calculating the correlation between a given data and a predetermined filter. For example, by convolving an image, a shading pattern similar to the shading pattern of the filter can be detected from the input image.
  • the convolutional layer is a neuron corresponding to this convolutional operation, and includes neurons that connect to a part of the output of the input or the layer placed before (input side) of its own layer.
  • the pooling layer is a layer for performing a pooling treatment.
  • the pooling process discards part of the information on the position where the response of the given data to the filter is strong, and realizes the invariance of the response to the minute position change of the feature appearing in the data. For example, in the pooling layer, the largest value in the filter is extracted and the other values are removed.
  • a fully connected layer is a layer that comprises one or more neurons and connects all the neurons between adjacent layers.
  • each neural network (50, 51) includes a plurality of layers (501 to 507, 511 to 517) arranged side by side from the input side to the output side.
  • An input layer (501, 511) is arranged on the most input side.
  • the input layer (501, 511) is a convolutional layer.
  • the output of this input layer (501, 511) is connected to the input of the pooling layer (502, 512).
  • the convolutional layers and the pooling layers may be arranged alternately.
  • a plurality of convolutional layers may be arranged consecutively.
  • a convolutional neural network often employs a structure that includes a portion including one or more convolutional layers and one or more pooling layers, and the output of this portion is input to a fully connected layer.
  • the attention layer (503, 513) is arranged as an intermediate layer in the portion where the convolutional layer and the pooling layer are arranged.
  • This attention layer (503, 513) is a convolutional layer.
  • a pooling layer (504, 514) is arranged on the most output side of this portion, and the output of the pooling layer (504, 514) is connected to the input of the fully connected layer (506, 516).
  • the fully connected layer is two layers, and the fully connected layer arranged on the output side is the output layer (507, 517).
  • the format of the output layer (507, 517) may be appropriately selected according to the type of estimation task.
  • the output layer (507, 517) may be configured to output the probability of occurrence of each category.
  • the output layer (507, 517) may include neurons corresponding to each category.
  • the output layer (507, 517) may be composed of a softmax layer.
  • the output layer (507, 517) may be configured to output the value to be regressed. In this case, the output layer (507,517) may include neurons depending on the number of values to be regressed.
  • the output layer (507, 517) is made to output the extracted range (for example, the center position and the number of pixels). It may be configured in.
  • the output layer (507, 517) may include neurons according to the format indicating this range.
  • each neural network (50, 51) does not have to be limited to such an example, and may be appropriately determined according to the embodiment.
  • Each neural network (50, 51) may include other types of layers other than the above layers, such as a regularization layer and a dropout layer.
  • the structures of the neural networks (50, 51) are the same, but the structures of the neural networks (50, 51) may be different from each other.
  • the plurality of layers (501 to 507, 511 to 517) of each neural network (50, 51) include arithmetic parameters used for arithmetic. Specifically, neurons in adjacent layers are appropriately connected to each other, and a weight (connection load) is set for each connection. In addition, a threshold value is set for each neuron included in each layer (501 to 507, 511 to 517). Basically, the output of each neuron is determined by whether or not the sum of the products of each input and each weight exceeds the threshold value.
  • each layer (501 to 507, 511 to 517) is sequentially propagated in the forward propagation direction from the input side.
  • Is composed by determining the firing of each neuron.
  • the weight of the connection between each neuron and the threshold value of each neuron included in each layer (501 to 507, 511 to 517) are examples of arithmetic parameters.
  • Training each of the above neural networks (50, 51) means that for each first training data set 121, when the first training data 122 is input to the input layer (501, 511), the output layer (507, 517) The first error between the output value output from the first correct answer data 123 and the first correct answer data 123 is reduced, and the second error between the output values output from the attention layer (503, 513) is reduced. It may be provided to repeatedly adjust the values of the arithmetic parameters of the neural network (50, 51).
  • the degree to which the value of the calculation parameter is updated can be adjusted by the learning rate.
  • the learning rate for each error may be set as appropriate.
  • the learning rate may be given as a set value or may be given by the operator's designation.
  • the learning rate regarding the first error between the output value output from the output layer (507, 517) and the first correct answer data 123 may be set to be constant.
  • the learning rate regarding the second error between the output values output from the attention layer (503, 513) may be set to increase each time the adjustment of the value of the calculation parameter is repeated.
  • each neural network (50, 51) may have arithmetic parameters that are not subject to adjustment.
  • the output value of the convolutional layer is called a feature map.
  • the fact that the output values output from the attention layer (503, 513) of each neural network (50, 51) match each other is a feature output from the attention layer (503, 513) which is a convolutional layer.
  • the attention maps (62, 63) derived from the maps (60, 61) may match each other. That is, the second error may be calculated based on the discrepancy of the attention maps (62, 63).
  • the data acquisition unit 111 acquires at least one or more second training data sets 227 generated by the data generation device 2.
  • the learning processing unit 112 may re-execute the machine learning of each neural network (50, 51) using the plurality of first learning data sets 121 and at least one or more second learning data sets 227.
  • the learning processing unit 112 uses a plurality of first learning data sets 121 and at least one or more second learning data sets 227 to teach a learning model 52 different from each neural network (50, 51). Yes Learning may be carried out.
  • Supervised learning is a type of machine learning.
  • the learning model 52 is trained to output an output value corresponding to each corresponding correct answer data (123, 225) for each input of training data (122, 223).
  • the type of the learning model 52 may not be particularly limited as long as supervised learning can be carried out, and may be appropriately selected according to the embodiment.
  • a neural network for example, a neural network, a support vector machine, a linear regression model, a decision tree model, or the like may be used.
  • the trained training model is at least one of a neural network (50, 51) and a training model 52.
  • the storage processing unit 113 generates information about the learned learning model as the second learning result data 127. Then, the storage processing unit 113 stores the generated second learning result data 127 in a predetermined storage area.
  • the predetermined storage area may be, for example, a RAM in the control unit 11, a storage unit 12, a storage medium 91, an external storage device, or a combination thereof.
  • the storage destination of the second learning result data 127 may be the same as the storage destination of the first learning result data 125, or may be different.
  • FIG. 6 schematically illustrates an example of the software configuration of the data generation device 2 according to the present embodiment.
  • the control unit 21 of the data generation device 2 expands the data generation program 82 stored in the storage unit 22 into the RAM. Then, the control unit 21 controls each component by interpreting and executing the instruction included in the data generation program 82 expanded in the RAM by the CPU.
  • the data generation device 2 according to the present embodiment has the model acquisition unit 211, the data acquisition unit 212, the evaluation unit 213, the extraction unit 214, the generation unit 215, and the output unit 216 as software modules. Operates as a computer. That is, in the present embodiment, each software module of the data generation device 2 is also realized by the control unit 21 (CPU) in the same manner as the learning device 1.
  • the model acquisition unit 211 acquires a plurality of neural networks trained in the first phase.
  • the model acquisition unit 211 can acquire the two trained neural networks (50, 51) by acquiring the first learning result data 125.
  • the data acquisition unit 212 acquires a plurality of second training data 221.
  • the data acquisition unit 212 is an example of the “second data acquisition unit” of the present invention.
  • training data to which correct answer data is not assigned is accumulated in the second data pool 87.
  • the data acquisition unit 212 can acquire a plurality of second training data 221s from the second data pool 87.
  • the evaluation unit 213 includes each trained neural network (50, 51) by holding the first learning result data 125.
  • the evaluation unit 213 sets each trained neural network (50, 51) with reference to the first learning result data 125.
  • the evaluation unit 213 outputs a value from the attention layer (503, 513) of each neural network (50, 51). To get.
  • the evaluation unit 213 determines the evaluation value 222 indicating the instability of the output of each neural network (50, 51) with respect to the second training data 221 of each case based on the output value acquired from the attention layer (503, 513). calculate.
  • each neural network (50, 51) is a convolutional neural network
  • each attention layer (503, 513) is a convolutional layer.
  • the evaluation unit 213 can acquire the feature map (65, 66) as the output value of the attention layer (503, 513).
  • the evaluation unit 213 calculates the attention map (67, 68) from the feature map (65, 66), and based on the calculated attention map (67, 68), the evaluation value 222 for the second training data 221 of each case. Can be calculated.
  • the extraction unit 214 extracts at least one second training data 223 from which the evaluation value 222 satisfies the condition for determining that the instability is high from the plurality of second training data 221.
  • the generation unit 215 indicates the characteristics included in the second training data 223 (that is, the correct answer of the predetermined estimation task for the second training data 223) for each of at least one extracted second training data 223.
  • the input of the second correct answer data 225 is accepted.
  • the generation unit 215 generates at least one or more second learning data sets 227 by adding the input second correct answer data 225 to the corresponding second training data 223.
  • Each generated second training data set 227 is composed of a combination of the second training data 223 and the second correct answer data 225.
  • the output unit 216 outputs at least one generated second learning data set 227 so that it can be used for supervised learning of the learning model.
  • the output unit 216 may store the second learning data set 227 in the first data pool 85 in this output processing.
  • the generated second learning data set 227 is stored in a state in which it can be used for supervised learning of the learning model.
  • FIG. 7 schematically illustrates an example of the software configuration of the estimation device 3 according to the present embodiment.
  • the control unit 31 of the estimation device 3 expands the estimation program 83 stored in the storage unit 32 into the RAM. Then, the control unit 31 controls each component by interpreting and executing the instruction included in the estimation program 83 expanded in the RAM by the CPU.
  • the estimation device 3 is configured as a computer including a data acquisition unit 311, an estimation unit 312, and an output unit 313 as software modules. That is, in the present embodiment, each software module of the estimation device 3 is also realized by the control unit 31 (CPU) in the same manner as the learning device 1.
  • the data acquisition unit 311 acquires the target data 321.
  • the estimation unit 312 includes the learned learning model 70 as an estimator by holding the second learning result data 127.
  • the trained learning model 70 may be at least one of the neural network (50, 51) trained by the machine learning of the second phase and the learning model 52.
  • the estimation unit 312 sets the learned learning model 70 with reference to the second learning result data 127.
  • the estimation unit 312 inputs the acquired target data 321 into the learned learning model 70, and executes arithmetic processing of the learned learning model 70. As a result, the estimation unit 312 acquires an output value corresponding to the result of estimating the feature included in the target data 321 from the trained learning model 70. That is, the estimation unit 312 can perform the estimation task for the target data 321 by using the learned learning model 70 by this arithmetic processing.
  • the output unit 313 outputs information regarding the estimation result.
  • the trained learning model that can be used in the estimation device 3 does not have to be limited to the trained learning model constructed by the machine learning of the second phase, and is constructed by the machine learning of the first phase. It may be at least one of the neural networks (50, 51).
  • the estimation unit 312 includes at least one of the trained neural networks (50, 51) by holding the first learning result data 125.
  • the estimation unit 312 may perform an estimation task for the target data 321 by utilizing at least one of the trained neural networks (50, 51).
  • each software module of the learning device 1, the data generation device 2, and the estimation device 3 will be described in detail in an operation example described later.
  • an example in which each software module of the learning device 1, the data generation device 2, and the estimation device 3 is realized by a general-purpose CPU is described.
  • some or all of the above software modules may be implemented by one or more dedicated processors.
  • software modules may be omitted, replaced, or added as appropriate according to the embodiment.
  • FIG. 8 is a flowchart showing an example of a processing procedure related to machine learning in the first phase of the learning device 1 according to the present embodiment.
  • the processing procedure described below is an example of a learning method. However, the processing procedure described below is only an example, and each processing may be changed as much as possible. Further, with respect to the processing procedure described below, steps can be omitted, replaced, and added as appropriate according to the embodiment.
  • Step S101 the control unit 11 operates as the data acquisition unit 111 to acquire a plurality of first learning data sets 121.
  • Each first training data set 121 is composed of a combination of the first training data 122 and the first correct answer data 123 showing the features included in the first training data 122.
  • the storage unit 12 holds the first data pool 85 that stores the learning data set generated in advance.
  • the control unit 11 acquires a plurality of first learning data sets 121 from the first data pool 85 of the storage unit 12.
  • the storage destination of the first data pool 85 does not have to be limited to the storage unit 12, and may be appropriately selected according to the embodiment.
  • the first data pool 85 may be held in, for example, a storage medium 91, an external storage device, or the like.
  • the external storage device may be an external storage device connected to the learning device 1.
  • the external storage device may be, for example, a data server such as NAS (Network Attached Storage).
  • the first data pool 85 may be held in another computer.
  • the control unit 11 can access the first data pool 85 via the communication interface 13, the drive 16, and the like, and acquire a plurality of first learning data sets 121.
  • the acquisition source of the first learning data set 121 does not have to be limited to the first data pool 85.
  • the control unit 11 may generate the first learning data set 121.
  • the control unit 11 may acquire the first learning data set 121 generated by another computer.
  • the control unit 11 may acquire a plurality of first learning data sets 121 by at least one of them.
  • the method of generating each first training data set 121 is appropriately determined according to the type of the first training data 122 and the type of the estimation task to be acquired by the training model (that is, the information indicated by the first correct answer data 123). May be selected.
  • a sensor of the same type as the sensor S is prepared, and the sensing data of each case generated by observing under various conditions with the prepared sensor is acquired as the first training data 122.
  • the observation target may be appropriately selected according to the estimation task to be acquired by the learning model.
  • the first correct answer data 123 showing the features appearing in the first training data 122 of each case is associated with the obtained first training data 122 of each case.
  • each first training data set 121 can be generated.
  • Each first learning data set 121 may be automatically generated by the operation of the computer, or may be manually generated by the operation of the operator. Further, each of the first learning data sets 121 may be generated by the learning device 1 or by a computer other than the learning device 1.
  • the control unit 11 automatically or manually executes the above-mentioned series of processes by an operation via the operator's input device 14, thereby performing a plurality of processes.
  • the first training data set 121 can be acquired.
  • the control unit 11 uses, for example, a network, a storage medium 91, or the like to generate a plurality of first learning data sets 121 generated by the other computer. Can be obtained.
  • a plurality of first training data sets 121 may be generated by automatically or manually executing the series of processes by an operator. Some first training data sets 121 may be generated by the learning device 1, and other first training data sets 121 may be generated by one or more other computers.
  • the number of the first learning data sets 121 to be acquired does not have to be particularly limited, and may be appropriately selected according to the embodiment.
  • the control unit 11 proceeds to the next step S102.
  • Step S102 the control unit 11 operates as a learning processing unit 112, and uses the acquired plurality of first learning data sets 121 to perform machine learning of a plurality of neural networks.
  • the control unit 11 performs machine learning of two neural networks (50, 51).
  • Each neural network (50, 51) includes a plurality of layers (501 to 507, 511 to 517) arranged side by side from the input side to the output side.
  • the plurality of layers (501 to 507, 511 to 517) are the output layer (507, 517) arranged on the most output side and the attention layer (503, 513) arranged on the input side of the output layer (507, 517).
  • the control unit 11 uses the first training data 122 of each first learning data set 121 as input data.
  • the control unit 11 uses the first correct answer data 123 as teacher data for the output of the output layer (507, 517).
  • the control unit 11 uses as teacher data that the output of the attention layer (503, 513) matches the output of the attention layer (503, 513).
  • the control unit 11 executes the learning process of each neural network (50, 51) based on these data. For this learning process, a batch gradient descent method, a stochastic gradient descent method, a mini-batch gradient descent method, or the like may be used.
  • FIG. 9 illustrates an example of the processing procedure of machine learning by the learning device 1 according to the present embodiment.
  • the process of step S102 according to the present embodiment includes the following processes of steps S201 to S206.
  • the processing procedure described below is only an example, and each processing may be changed as much as possible. Further, with respect to the processing procedure described below, steps can be omitted, replaced, and added as appropriate according to the embodiment.
  • step S201 the control unit 11 prepares each neural network (50, 51) to be processed by machine learning.
  • each neural network (50, 51) to be prepared for example, number of layers, type of each layer, number of neurons contained in each layer, connection relationship between neurons in adjacent layers, etc.
  • weight of connection between neurons may be given by a template or by input of an operator.
  • the template may include information about the structure of the neural network and information about the initial values of the arithmetic parameters of the neural network.
  • the attention layer may be specified in advance in the template or may be specified by the operator.
  • the control unit 11 may specify a layer having a common output format in each of the prepared neural networks (50, 51), and appropriately determine the layer of interest from the specified layer.
  • the criteria for determining the layer of interest may be set arbitrarily. In the criteria for determining the layer of interest, for example, attributes such as the number of output layers and the type of layer may be specified. The control unit 11 may determine the layer of interest from the identified layers according to the set criteria.
  • control unit 11 may prepare each neural network (50, 51) to be processed based on the learning result data obtained by performing the past machine learning. Good.
  • control unit 11 proceeds to the next step S202.
  • Step S202 the control unit 11 inputs the first training data 122 to the input layer (501, 511) for each first learning data set 121, and executes arithmetic processing of each neural network (50, 51). That is, the control unit 11 determines the firing of each neuron included in each layer (501 to 507, 511 to 517) in order from the input side. As a result of this arithmetic processing, the control unit 11 can acquire an output value corresponding to the result of executing the estimation task for the first training data 122 from the output layer (507, 517).
  • the control unit 11 acquires the output value of the attention layer (503, 513) by executing the operations from the input layer (501, 511) to the attention layer (503, 513). can do.
  • the control unit 11 proceeds to the next step S203.
  • Step S203 the control unit 11 calculates the first error between the output value from the output layer (507, 517) and the first correct answer data 123 for each first learning data set 121.
  • a known error function such as a mean square error or a cross entropy error may be used to calculate the first error.
  • the error function is a function that evaluates the difference between the output and the teacher data, and the larger the difference, the larger the value of the loss function.
  • the control unit 11 calculates the gradient of the first error and back-propagates the calculated gradient by the back propagation method, so that the arithmetic parameters included in each layer (501 to 507, 511 to 517) are included.
  • the control unit 11 calculates the error (for example, the weight of the connection between each neuron, the threshold value of each neuron, etc.). Then, the control unit 11 updates the value of the calculation parameter based on each calculated error. As a result, the control unit 11 sets the value of the calculation parameter of each neural network (50, 51) so that the output value output from the output layer (507, 517) and the first error of the first correct answer data 123 become smaller. To adjust.
  • the degree to which the value of the calculation parameter is updated is adjusted by the learning rate.
  • the learning rate determines the degree to which the values of arithmetic parameters are updated in machine learning. The larger the learning rate, the larger the update amount of the calculation parameter, and the smaller the learning rate, the smaller the update amount of the calculation parameter.
  • the control unit 11 updates the value of the calculation parameter with the value obtained by multiplying each error by the learning rate.
  • the learning rate for the first error may be given as appropriate.
  • the initial value of the learning rate regarding the first error may be given, for example, by the operator's designation, or may be given as a set value.
  • Step S204 the control unit 11 calculates a second error between the output values output from the attention layer (503, 513) for each first learning data set 121.
  • a known error function such as a mean square error may be used depending on the output format of the layer of interest (503, 513).
  • the attention layer (503, 513) is a convolutional layer
  • the control unit 11 may acquire the feature map (60, 61) as the output value of the attention layer (503, 513) in step S202. it can.
  • the control unit 11 calculates the attention map (62, 63) from the feature map (60, 61).
  • the method of calculating the attention map from the feature map does not have to be particularly limited, and may be appropriately selected depending on the embodiment.
  • the control unit 11 may calculate the attention map (62, 63) by summing the absolute values of each element of the feature map (60, 61) in the channel direction.
  • each element of the feature map (60, 61) corresponds to a pixel.
  • the number of channels in the feature map (60, 61) corresponds to the number of filters by the convolutional layer and the number of channels of input data.
  • the control unit 11 may calculate the attention map (62, 63) by summing the nth power of the absolute value of each element of the feature map (60, 61) in the channel direction. n may be any number.
  • control unit 11 calculates the nth power of the absolute value of each element of the feature map (60, 61), and extracts the maximum value of the calculated nth power value in the channel direction to obtain an attention map. (62, 63) may be calculated.
  • a known method may be adopted as a method for calculating the attention map from the feature map.
  • control unit 11 can calculate the second error between the output values of the attention layer (503, 513) by calculating the mean square error of the calculated attention maps (62, 63). ..
  • the method for calculating the second error does not have to be limited to such an example, and may be appropriately determined according to the embodiment.
  • the control unit 11 may calculate the second error directly from the feature map (60, 61).
  • the control unit 11 calculates the gradient of the second error, and back-propagates the calculated gradient from the attention layer (503, 513) to the input layer (501, 511) by the error back propagation method. Then, the error of the calculation parameter included in the input layer (501, 511) to the attention layer (503, 513) is calculated. Then, the control unit 11 updates the values of the calculation parameters included in the input layer (501, 511) to the attention layer (503, 513) based on each calculated error. As a result, the control unit 11 controls each neural network so that the second error between the output values of the attention layer (503, 513) becomes small (that is, in the direction in which the attention maps (62, 63) match each other). Adjust the values of the calculation parameters of (50, 51).
  • the adjustment of the calculation parameter due to the second error does not have to be limited to such an example, and may not necessarily be executed in both neural networks (50, 51).
  • the control unit 11 may use one of the two neural networks (50, 51) as a reference and adjust only the calculation parameters of the other one. That is, in step S204, the control unit 11 adjusts the values of the arithmetic parameters included from at least one of the input layers of the neural network (50, 51) to the layer of interest.
  • the control unit 11 may adjust the values of the calculation parameters of all the neural networks.
  • the control unit 11 may adjust the values of the calculation parameters of the remaining neural networks with reference to any one of them.
  • the degree to which the value of the calculation parameter is updated is adjusted by the learning rate.
  • the learning rate for the second error may be given as appropriate.
  • the learning rate regarding the second error may be given by the operator's designation, or may be given as a set value, for example.
  • step S205 the control unit 11 determines whether or not to repeat the machine learning process (that is, the adjustment of the value of the calculation parameter of each neural network (50, 51)).
  • Criteria for determining whether or not to repeat may be set as appropriate. For example, a specified number of times machine learning may be repeated may be set. The specified number of times may be given as appropriate. This specified number of times may be given, for example, by a set value or by an operator's designation. In this case, the control unit 11 determines whether or not the number of times the series of processes of steps S202 to S204 has been executed has reached the specified number of times. If the number of times the series of processes is executed has not reached the specified number of times, the control unit 11 determines that the machine learning process is repeated. On the other hand, when the number of times the series of processes is executed reaches the specified number of times, the control unit 11 determines that the machine learning process is not repeated.
  • control unit 11 may repeat the machine learning process until each of the above errors becomes equal to or less than the threshold value. In this case, if each of the above errors exceeds the threshold value, the control unit 11 determines that the machine learning process is repeated. On the other hand, when each of the above errors is equal to or less than the threshold value, the control unit 11 determines that the machine learning process is not repeated.
  • This threshold may be set as appropriate. The threshold value may be given, for example, by a set value or by an operator's designation.
  • control unit 11 proceeds to the next step S206. On the other hand, when it is determined that the machine learning process is not repeated, the control unit 11 ends the machine learning process.
  • step S206 the control unit 11 increases the value of the learning rate related to the second error.
  • the amount of increase in the learning rate may be appropriately determined.
  • the control unit 11 may increase the value of the learning rate with respect to the second error by adding a constant value to the original value of the learning rate.
  • the control unit 11 may determine the value of the learning rate by using a function that defines the relationship between the number of executions and the value of the learning rate so that the value becomes larger as the number of executions increases. Good. It may be set so that the increase amount of the learning rate becomes smaller as the number of executions increases.
  • the control unit 11 repeats the process from step S202.
  • the learning rate regarding the second error is set to increase each time the adjustment of the value of the calculation parameter is repeated.
  • the output values of the attention layer (503, 513) of each neural network (50, 51) may differ greatly.
  • the control unit 11 gradually increases the learning rate related to the second error by this step S206. Learning can be properly converged.
  • the setting of the learning rate regarding the second error does not have to be limited to such an example, and may be appropriately selected according to the embodiment.
  • the setting of the learning rate regarding the second error may be set to a constant value.
  • the process of this step S206 may be omitted, and the control unit 11 may repeat the process from step S202 without changing the value of the learning rate regarding the second error.
  • the learning rate for the first error may be set as appropriate.
  • the control unit 11 may set the learning rate for the first error to increase each time the adjustment of the value of the calculation parameter is repeated, as well as the learning rate for the second error. In this case, the control unit 11 repeats the process from step S202 after increasing the value of the learning rate regarding the first error, as in the process of step S206.
  • the learning rate for the first error may be set to a constant value. In this case, the learning rate regarding the first error remains a constant value, and the control unit 11 repeats the process from step S202.
  • each neural network (50, 51) inputs the first training data 122 to each neural network (50, 51) for each first training data set 121, and the first correct answer is obtained.
  • the output value suitable for the data 123 is trained to be output from the output layer (507, 517).
  • each neural network (50, 51) is trained so that the output values output from the attention layer (503, 513) match each other.
  • each neural network (50, 51) has an attention map (62, 63) derived from the feature map (60, 61) output from the attention layer (503, 513) so as to coincide with each other. Be trained. This "matching" may include the occurrence of a subthreshold error.
  • the control unit 11 proceeds to the next step S103.
  • the machine learning process does not have to be limited to such an example, and may be appropriately changed according to the embodiment.
  • the processing order of steps S203 and S204 may be interchanged.
  • the processes of step S203 and step S204 may be executed in parallel.
  • the control unit 11 instead of repeatedly and continuously executing the processes of steps S203 and S204 as described above, or repeatedly and continuously executing the processes, the control unit 11 repeatedly executes the processes of steps S203 and S204 independently and continuously. You may.
  • Step S103 the control unit 11 operates as the storage processing unit 113, and generates information about each trained neural network (50, 51) constructed by machine learning as the first learning result data 125.
  • the first training result data 125 is configured so that each trained neural network (50, 51) can be reproduced.
  • the first learning result data 125 may include information indicating the structure of each neural network (50, 51) and the value of the calculation parameter. Then, the control unit 11 stores the generated first learning result data 125 in a predetermined storage area.
  • the predetermined storage area may be, for example, a RAM in the control unit 11, a storage unit 12, a storage medium 91, an external storage device, or a combination thereof.
  • the external storage device may be, for example, a data server such as NAS.
  • the control unit 11 may store the first learning result data 125 in the data server via the network by using the communication interface 13. Further, the external storage device may be, for example, an external storage device connected to the learning device 1. When the first learning result data 125 is saved, the control unit 11 ends a series of processes related to machine learning in the first phase.
  • FIG. 10 is a flowchart showing an example of a processing procedure related to the generation of the learning data set by the data generation device 2 according to the present embodiment.
  • the processing procedure described below is an example of a data generation method. However, the processing procedure described below is only an example, and each processing may be changed as much as possible. Further, with respect to the processing procedure described below, steps can be omitted, replaced, and added as appropriate according to the embodiment.
  • step S301 the control unit 21 operates as the model acquisition unit 211 to acquire a plurality of neural networks trained in the first phase.
  • the control unit 21 acquires the two trained neural networks (50, 51) by acquiring the first learning result data 125.
  • the first learning result data 125 generated by the learning device 1 may be provided to the data generation device 2 at an arbitrary timing.
  • the control unit 11 of the learning device 1 may transfer the first learning result data 125 to the data generation device 2 as the process of the step S103 or separately from the step S103. By accepting this transfer, the control unit 21 may acquire the first learning result data 125. Further, for example, the control unit 21 may acquire the first learning result data 125 by accessing the learning device 1 or the data server via the network by using the communication interface 23. Further, for example, the control unit 21 may acquire the first learning result data 125 via the storage medium 92. Before executing this step S301, the first learning result data 125 may already be stored in the storage unit 22 by any of the above acquisition processes. In this case, the control unit 21 may acquire the first learning result data 125 from the storage unit 22. When the first learning result data 125 is acquired, the control unit 21 proceeds to the next step S302.
  • the first learning result data 125 may be incorporated in the data generation device 2 in advance. In this case, the process of step S301 may be omitted. Further, the model acquisition unit 211 may be omitted from the software configuration of the data generation device 2.
  • Step S302 the control unit 21 operates as the data acquisition unit 212 and acquires a plurality of second training data 221.
  • the second training data 221 is the same type of data as the first training data 122.
  • a second data pool 87 for accumulating training data to which correct answer data is not assigned is held in the storage unit 22.
  • the control unit 21 acquires a plurality of second training data 221s from the second data pool 87 of the storage unit 22.
  • the storage destination of the second data pool 87 does not have to be limited to the storage unit 22, and may be appropriately selected according to the embodiment.
  • the second data pool 87 may be held in, for example, a storage medium 92, an external storage device, or the like.
  • the external storage device may be an external storage device connected to the data generation device 2.
  • the external storage device may be, for example, a data server such as NAS.
  • the second data pool 87 may be held in another computer.
  • the control unit 21 can access the second data pool 87 via the communication interface 23, the drive 26, and the like, and acquire a plurality of second training data 221s.
  • the acquisition source of the second training data 221 does not have to be limited to the second data pool 87.
  • the control unit 21 may generate the second training data 221.
  • the control unit 21 may acquire the second training data 221 generated by another computer.
  • the control unit 21 can acquire the second training data 221 generated by another computer via, for example, a network, a storage medium 92, or the like.
  • the control unit 21 may acquire a plurality of second training data 221s by at least one of them.
  • the method of generating the second training data 221 may be the same as the method of generating the first training data 122.
  • the second training data 221 may be automatically generated by the operation of the computer, or may be manually generated by the operation of the operator.
  • the data generation device 2 may generate a part of the plurality of second training data 221s, and another computer may generate the rest.
  • the number of the second training data 221 to be acquired does not have to be particularly limited, and may be appropriately selected according to the embodiment.
  • the control unit 21 proceeds to the next step S303.
  • Step S303 the control unit 21 operates as the evaluation unit 213 and sets each trained neural network (50, 51) with reference to the first learning result data 125. Then, the control unit 21 inputs the second training data 221 of each case to the input layer (501, 511) of each trained neural network (50, 51), and the attention layer of each neural network (50, 51). The arithmetic processing up to (503, 513) is executed. That is, the control unit 21 inputs the second training data 221 of each case to the input layer (501, 511), and includes the input layer (501, 511) to the attention layer (503, 513) in order from the input side. The firing of each neuron is determined. As a result, the control unit 21 acquires the output value from the attention layer (503, 513) of each neural network (50, 51). When the output value from the attention layer (503, 513) is acquired, the control unit 21 proceeds to the next step S304.
  • Step S304 the control unit 21 operates as the evaluation unit 213 and evaluates the instability of the output of each neural network (50, 51) with respect to the second training data 221 of each case based on the acquired output value.
  • the value 222 is calculated.
  • the relationship between the output value of the attention layer (503, 513) and the evaluation value 222 may be mathematically described by the acquisition function.
  • the acquisition function may be appropriately defined so that the larger the variation in the output values of the attention layer (503, 513), the higher the instability of the calculated evaluation value 222.
  • the control unit 21 can calculate the evaluation value 222 for the second training data 221 of each case by substituting the output value acquired from the attention layer (503, 513) into the acquisition function.
  • the attention layer (503, 513) is a convolutional layer, and the output value of the attention layer (503, 513) is acquired as a feature map (65, 66).
  • the control unit 21 calculates the attention map (67, 68) from the feature map (65, 66).
  • the method of calculating the attention map (67, 68) may be the same as the method of calculating the attention map (62, 63).
  • control unit 21 normalizes the attention map (67, 68) so that the sum of all the elements becomes 1.
  • the normalized attention map (67, 68) has properties similar to the output of the softmax function. Therefore, the control unit 21 may apply the acquisition function used for the output of the softmax function to the normalized attention map (67, 68). For example, the control unit 21 may calculate any of H, I, and V of the following formulas 1 to 3 as the evaluation value 222.
  • s indicates each element of the attention map
  • i indicates the value of each element of the attention map.
  • p (s i
  • x, w t ) indicates the probability that each element of the attention map has a value i.
  • x indicates the input data (that is, the second training data 221)
  • w t indicates each neural network.
  • S indicates the number of elements of the attention map.
  • t indicates the index of the neural network, and T indicates the number of neural networks (2 in this embodiment).
  • the overline shows the average value.
  • the method for calculating the evaluation value 222 does not have to be limited to such an example, and may be appropriately determined according to the embodiment.
  • the control unit 21 proceeds to the next step S305.
  • Step S305 the control unit 21 operates as the extraction unit 214, and at least one second training data 223 for which the evaluation value 222 satisfies the condition for determining that the instability is high is used as a plurality of second training data. Extract from 221.
  • the conditions for extracting the second training data 223 do not have to be particularly limited, and may be appropriately set according to the embodiment.
  • the control unit 21 may extract an arbitrary number of second training data 223s from a plurality of second training data 221s from the one with the highest instability. In this case, the number to be extracted may be given as a set value or may be given by the operator's specification. Further, for example, the control unit 21 may compare the evaluation value 222 with the threshold value and extract the second training data 223 whose instability exceeds the threshold value from the plurality of second training data 221. In this case, the threshold value may be given as a set value or may be given by the operator's designation. After extracting at least one second training data 223, the control unit 21 proceeds to the next step S306.
  • Step S306 the control unit 21 operates as the generation unit 215, and for each of at least one extracted second training data 223, the feature included in the second training data 223 (that is, the second training data).
  • the input of the second correct answer data 225 indicating the correct answer) of the predetermined estimation task for 223 is accepted.
  • the control unit 21 associates the input second correct answer data 225 with the corresponding second training data 223.
  • the control unit 21 generates at least one or more second learning data sets 227 composed of a combination of the second training data 223 and the second correct answer data 225, respectively.
  • the method of accepting the input of the second correct answer data 225 does not have to be particularly limited, and may be appropriately set according to the embodiment.
  • the control unit 21 may accept an operator's input via the input device 24. Further, for example, when there is an estimator that performs the same type of estimation task for data of the same type as the second training data 223, the control unit 21 may accept input of the estimation result of this estimator. .. That is, the control unit 21 may use this estimator to acquire the result of performing a predetermined estimation task for the second training data 223 as the second correct answer data 225.
  • the type of the estimator does not have to be particularly limited, and may be appropriately selected depending on the embodiment. This estimator may be similar to, for example, the trained learning model 70.
  • the control unit 21 proceeds to the next step S307.
  • Step S307 the control unit 21 operates as an output unit 216 and outputs at least one generated second learning data set 227 so that it can be used for supervised learning of the learning model.
  • the output method is not particularly limited and may be appropriately selected according to the embodiment.
  • the control unit 21 may store the generated second learning data set 227 in the first data pool 85 in this output process.
  • the generated second learning data set 227 is stored by the learning device 1 in a state where it can be used for supervised learning of the learning model.
  • the control unit 21 may transmit the generated second learning data set 227 to a computer that executes supervised learning of the learning model in this output process.
  • the control unit 21 may store the generated second learning data set 227 in a predetermined storage area in a state where it can be acquired by a computer that executes supervised learning of the learning model. ..
  • the predetermined storage area may be, for example, a RAM in the control unit 21, a storage unit 22, a storage medium 92, an external storage device, or a combination thereof.
  • the external storage device may be, for example, a data server such as NAS, or an external storage device connected to the data generation device 2.
  • FIG. 11 is a flowchart showing an example of a processing procedure related to machine learning in the second phase of the learning device 1 according to the present embodiment.
  • the processing procedure described below is an example of a learning method. However, the processing procedure described below is only an example, and each processing may be changed as much as possible.
  • the learning method may further include the learning method and the data generation method of the first phase. Further, with respect to the processing procedure described below, steps can be omitted, replaced, and added as appropriate according to the embodiment.
  • Step S501 the control unit 11 operates as the data acquisition unit 111 to acquire at least one or more second learning data sets 227 generated by the data generation device 2.
  • control unit 11 can acquire at least one or more second learning data sets 227 from the first data pool 85 after the process of step S307.
  • the acquisition destination of the second learning data set 227 does not have to be limited to such an example, and may be appropriately selected according to the embodiment.
  • the control unit 11 may acquire the second learning data set 227 directly or indirectly from the data generation device 2.
  • control unit 11 acquires a plurality of one or more first learning data sets 121 in the same manner as in step S101.
  • the control unit 11 proceeds to the next step S502.
  • Step S502 the control unit 11 operates as the learning processing unit 112, and performs machine learning of the learning model using the plurality of first learning data sets 121 and at least one or more second learning data sets 227. ..
  • the control unit 11 re-executes machine learning of each neural network (50, 51) by using the plurality of first learning data sets 121 and at least one or more second learning data sets 227 as the process of step S502. You may. In this re-learning, machine learning of at least one of the plurality of neural networks may be omitted. In this embodiment, machine learning of at least one of the two neural networks (50, 51) may be omitted.
  • the output value of the output layer (507, 517) is set to each correct answer data (123, 225) for the input of each training data (122, 223).
  • Step S203 and training to match the output values of the attention layer (503, 513) with each other (step S204) may be performed.
  • only the former training may be performed and the latter training may be omitted. That is, only training to match the output value of the output layer (507, 517) to each correct answer data (123, 225) may be executed.
  • the control unit 11 uses a plurality of first training data sets 121 and at least one or more second training data sets 227 as the processing of step S502, and is different from each neural network (50, 51).
  • Supervised learning of the learning model 52 may be carried out.
  • the type of the learning model 52 is not particularly limited as long as supervised learning can be performed, and may be appropriately selected according to the embodiment.
  • a support vector machine, a linear regression model, a decision tree model, or the like may be used for the learning model 52.
  • the structure of the learning model 52 may be the same as any of the neural networks (50, 51), or different from both of the neural networks (50, 51). May be good.
  • the learning model 52 In supervised learning, for each learning data set (121, 227), for each training data (122, 223) input, the learning model 52 has an output value that matches each corresponding correct answer data (123, 225). Is trained to output.
  • the supervised learning method may be appropriately selected according to the type of the learning model 52.
  • a known method such as error back propagation method, regression analysis, or random forest may be adopted.
  • the trained learning model 52 is trained to be used to perform a predetermined estimation task, similarly to each trained neural network (50, 51).
  • the trained training model is at least one of a neural network (50, 51) and a training model 52.
  • the control unit 11 proceeds to the next step S503.
  • Step S503 the control unit 11 operates as the storage processing unit 113 and generates information on the learned learning model as the second learning result data 127.
  • the second learning result data 127 is configured to be able to reproduce the learned learning model constructed by the process of step S502.
  • the second training result data 127 may include information indicating the structure of the trained training model and the values of the calculation parameters.
  • the control unit 11 stores the generated second learning result data 127 in a predetermined storage area.
  • the predetermined storage area may be, for example, a RAM in the control unit 11, a storage unit 12, a storage medium 91, an external storage device, or a combination thereof.
  • the external storage device may be, for example, a data server such as NAS.
  • the control unit 11 may store the second learning result data 127 in the data server via the network by using the communication interface 13. Further, the external storage device may be, for example, an external storage device connected to the learning device 1.
  • the storage destination of the second learning result data 127 may be the same as the storage destination of the first learning result data 125, or may be different. When the second learning result data 127 is saved, the control unit 11 ends a series of processes related to machine learning in the second phase.
  • the generated second learning result data 127 may be provided to the estimation device 3 at an arbitrary timing.
  • the control unit 11 may transfer the second learning result data 127 to the estimation device 3 as the process of step S503 or separately from the process of step S503.
  • the estimation device 3 may acquire the second learning result data 127 by accepting this transfer. Further, for example, the estimation device 3 may acquire the second learning result data 127 by accessing the learning device 1 or the data server via the network by using the communication interface 33. Further, for example, the estimation device 3 may acquire the second learning result data 127 via the storage medium 93.
  • the second learning result data 127 may be incorporated in the estimation device 3 in advance.
  • step S502 when each neural network (50, 51) is retrained in the same manner as in step S102, the generated second learning result data 127 is provided to the data generation device 2 at an arbitrary timing. May be done.
  • each retrained neural network (50, 51) may be used for the generation process of the training data set.
  • the generation process of this training data set and the re-learning process of each neural network (50, 51) may be repeatedly executed alternately.
  • FIG. 12 is a flowchart showing an example of the processing procedure of the estimation device 3 according to the present embodiment.
  • the processing procedure described below is an example of an estimation method. However, the processing procedure described below is only an example, and each processing may be changed as much as possible.
  • the estimation method may further include the learning method and the data generation method. Further, with respect to the processing procedure described below, steps can be omitted, replaced, and added as appropriate according to the embodiment.
  • Step S701 the control unit 31 operates as the data acquisition unit 311 and acquires the target data 321 to be the target for executing the estimation task.
  • the estimation device 3 is connected to the sensor S via an external interface 37. Therefore, the control unit 31 acquires the sensing data generated by the sensor S as the target data 321 via the external interface 37.
  • the route for acquiring the target data 321 does not have to be limited to such an example, and may be appropriately determined according to the embodiment.
  • the sensor S may be connected to another computer different from the estimation device 3.
  • the control unit 31 may acquire the target data 321 by accepting the transmission of the target data 321 from another computer.
  • the control unit 31 proceeds to the next step S702.
  • Step S702 the control unit 31 operates as the estimation unit 312 and estimates the features included in the acquired target data 321 by using the learned learning model 70.
  • the trained learning model 70 is at least one of the neural network (50, 51) trained by the machine learning of the second phase and the learning model 52.
  • the control unit 31 sets the learned learning model 70 with reference to the second learning result data 127. Then, the control unit 31 inputs the acquired target data 321 into the learned learning model 70, and executes the arithmetic processing of the learned learning model 70.
  • the arithmetic processing may be appropriately selected according to the type of the trained learning model 70.
  • the control unit 31 acquires an output value corresponding to the result of estimating the feature included in the target data 321 from the trained learning model 70. That is, the control unit 31 can estimate the features included in the target data 321 by this arithmetic processing.
  • the control unit 31 proceeds to the next step S703.
  • step S703 the control unit 31 operates as an output unit 313 and outputs information regarding the estimation result.
  • the output destination and the content of the information to be output may be appropriately determined according to the embodiment.
  • the control unit 31 may output the result of estimating the features included in the target data 321 to the output device 35 as it is. Further, for example, the control unit 31 may execute some information processing based on the estimation result. Then, the control unit 31 may output the result of executing the information processing as information regarding the estimation result. The output of the result of executing this information processing may include outputting a specific message such as a warning according to the estimation result, controlling the operation of the controlled device according to the estimation result, and the like. ..
  • the output destination may be, for example, an output device 35, a control target device, or the like.
  • the trained learning model that can be used by the estimation device 3 does not have to be limited to the trained learning model 70 constructed by machine learning in the second phase.
  • At least one of the neural networks (50, 51) constructed by the machine learning of the first phase may be utilized in the estimation device 3.
  • the first learning result data 125 generated in the first phase may be provided to the estimation device 3 at an arbitrary timing.
  • the first learning result data 125 may be incorporated in the estimation device 3 in advance.
  • the estimation device 3 utilizes at least one of the neural networks (50, 51) trained in the first phase instead of the trained training model 70, and uses at least one of the neural networks (50, 51) trained in the first phase to perform steps S701 to S703. The process may be executed.
  • the layer arranged on the input side of the output layer (507, 517) is selected as the attention layer (503, 517).
  • the format of the output layer (507, 517) of each neural network (50, 51) depends on the type of estimation task to be learned.
  • the format of the layer arranged on the input side of the output layer (507, 517) of each neural network (50, 51) can be set regardless of the type of estimation task.
  • step S102 when only the training (step S203) for matching the output value of the output layer (507, 517) with the first correct answer data 123 is executed for the input of the first training data 122.
  • the output value of each attention layer (503, 513) varies with respect to the same input data. Therefore, in the present embodiment, in the machine learning of step S102, along with the training of step S203, the training of matching the output values of the attention layer (503, 513) by step S204 with each other is executed.
  • steps S304 and S305 the instability of the output for the second training data 221 of each case can be appropriately evaluated based on the output value of the attention layer (503, 513).
  • the common index does not depend on the type of task to be acquired by each neural network (50, 51). Can be used to evaluate the output instability of each neural network (50, 51) with respect to the second training data 221 of each case. That is, even if the output format of the output layer (507, 517) of each neural network (50, 51) is changed according to the type of the estimation task, in step S304, the acquisition function is not changed, and the first item of each case is changed. 2 Output instability with respect to training data 221 can be evaluated.
  • step S305 since the training for matching the output values of the attention layer (503, 513) is executed in step S204, in step S305, the performance of the estimator is improved based on the evaluation result.
  • the second training data 223, which is presumed to be high, can be appropriately extracted. Therefore, according to the present embodiment, it becomes possible to carry out active learning by using a common index even in neural networks having different task types.
  • the learning device 1 according to the present embodiment further uses the second training data 223 extracted by active learning to efficiently generate a learned learning model with higher performance. be able to. Then, the estimation device 3 according to the present embodiment can accurately perform a predetermined estimation task by using the learned learning model generated in the second phase.
  • the estimation system 100 according to the above embodiment is applied to a scene where features included in the sensing data obtained by the sensor S are estimated.
  • the scope of application of the above embodiment is not limited to such an example.
  • the above embodiment is applicable to any situation in which an arbitrary estimation task is performed on any kind of data.
  • a modified example in which the application scene is limited will be illustrated.
  • FIG. 13 schematically illustrates an example of an application scene of the inspection system 100A according to the first modification.
  • This modified example is an example in which the above embodiment is applied to a scene in which a visual inspection of a product R transported on a production line is performed.
  • the inspection system 100A according to the present embodiment includes a learning device 1, a data generation device 2, and an inspection device 3A. Similar to the above embodiment, the learning device 1, the data generating device 2, and the inspection device 3A may be connected to each other via a network.
  • the inspection system 100A may be configured in the same manner as the above embodiment except that the data to be handled is different.
  • the learning device 1 performs machine learning of each neural network (50, 51) by using the plurality of first learning data sets 121 in the first phase.
  • the data generation device 2 utilizes each neural network (50, 51) trained in the machine learning of the first phase to generate at least one or more second training data sets 227.
  • the learning device 1 uses a plurality of first training data sets 121 and at least one or more second training data sets 227 to retrain or new each neural network (50, 51). Supervised learning of the learning model 52 is carried out.
  • Each training data (122, 223) is image data showing the product R.
  • Product R may be, for example, an electronic device, an electronic component, an automobile component, a chemical, a food, or the like.
  • the electronic component may be, for example, a board, a chip capacitor, a liquid crystal, a winding of a relay, or the like.
  • the automobile parts may be, for example, connecting rods, shafts, engine blocks, power window switches, panels and the like.
  • the chemical may be, for example, a packaged tablet, an unpackaged tablet, or the like.
  • Product R may be a final product produced after the completion of the manufacturing process, an intermediate product produced in the middle of the manufacturing process, or an initial product prepared before the manufacturing process is completed. There may be.
  • Each training data (122, 223) can be obtained by photographing the product R with a camera SA or a camera of the same type.
  • the type of camera does not have to be particularly limited.
  • the camera for example, a general digital camera configured to acquire an RGB image, a depth camera configured to acquire a depth image, an infrared camera configured to image an amount of infrared rays, or the like is used. May be done.
  • each training data (122, 223) relate to the state of product R.
  • the state of the product R may be related to the presence or absence of defects such as scratches, stains, cracks, dents, burrs, color unevenness, and foreign matter contamination.
  • each correct answer data (123, 225) indicates, for example, whether or not the product R contains a defect, the type of the defect contained in the product R, the range of the defect contained in the product R, and the like. It may be configured.
  • Each correct answer data (123, 225) may be obtained by input of the operator. Further, the result of estimating the state of the product R reflected in each training data (122, 223) by using an estimator trained to estimate the state of the product R reflected in the image data is each correct answer data (123, 123, It may be acquired as 225).
  • the learning device 1 uses the training data (122, 223) and the correct answer data (123, 225) of the training model (each neural network (50, 51) and the learning model 52). Perform machine learning (at least one).
  • the learning model is configured to be able to perform the task of estimating the state of the product reflected in the image data.
  • the learning device 1 generates information about the learned learning model as the second learning result data 127A by the process of step S503, and stores the generated second learning result data 127A in a predetermined storage area.
  • the inspection device 3A corresponds to the estimation device 3.
  • the inspection device 3A may be configured in the same manner as the estimation device 3 except that the data to be handled is different.
  • the second learning result data 127A may be provided to the inspection device 3A at an arbitrary timing.
  • the inspection device 3A is connected to the camera SA.
  • the inspection device 3A acquires the target image data in which the product R is captured by photographing the product R with the camera SA.
  • the inspection device 3A estimates the state of the product R based on the acquired target image data by using the learned learning model constructed by the learning device 1.
  • FIG. 14A schematically illustrates an example of the hardware configuration of the inspection device 3A according to this modification.
  • the inspection device 3A according to this modification is the control unit 31, the storage unit 32, the communication interface 33, the input device 34, the output device 35, the drive 36, and the external device, similarly to the estimation device 3.
  • the interface 37 is an electrically connected computer.
  • the inspection device 3A is connected to the camera SA via the external interface 37.
  • the camera SA may be appropriately arranged at a place where the product R can be photographed.
  • the camera SA may be arranged in the vicinity of the conveyor device that conveys the product R.
  • the hardware configuration of the inspection device 3A does not have to be limited to such an example.
  • the inspection device 3A may be a general-purpose server device, a general-purpose PC, a PLC (programmable logic controller), or the like, in addition to an information processing device designed exclusively for the provided service.
  • the storage unit 32 of the inspection device 3A stores various information such as the inspection program 83A and the second learning result data 127A.
  • the inspection program 83A and the second learning result data 127A correspond to the estimation program 83 and the second learning result data 127 according to the above embodiment.
  • At least one of the test program 83A and the second learning result data 127A may be stored in the storage medium 93. Further, the inspection device 3A may acquire at least one of the inspection program 83A and the second learning result data 127A from the storage medium 93.
  • FIG. 14B schematically illustrates an example of the software configuration of the inspection device 3A according to this modification. Similar to the above embodiment, the software configuration of the inspection device 3A is realized by executing the inspection program 83A by the control unit 31. As shown in FIG. 14B, the software configuration of the inspection device 3A is the same as the software configuration of the estimation device 3 except that the data to be handled is replaced with the image data from the sensing data. As a result, the inspection device 3A executes a series of processes related to the inspection process in the same manner as the estimation process of the estimation device 3.
  • step S701 the control unit 31 operates as the data acquisition unit 311 and acquires the target image data 321A in which the product R to be visually inspected is captured from the camera SA.
  • step S702 the control unit 31 operates as the estimation unit 312 and estimates the state of the product R reflected in the acquired target image data 321A by using the learned learning model 70A.
  • the control unit 31 sets the learned learning model 70A with reference to the second learning result data 127A.
  • the trained learning model 70A is at least one of the neural network (50, 51) trained by the machine learning of the second phase and the learning model 52.
  • the control unit 31 inputs the acquired target image data 321A into the learned learning model 70A, and executes arithmetic processing of the learned learning model 70A. As a result, the control unit 31 acquires an output value corresponding to the result of estimating the state of the product R reflected in the target image data 321A from the trained learning model 70A.
  • the control unit 31 operates as an output unit 313 and outputs information regarding the result of estimating the state of the product R.
  • the output destination and the output information may be appropriately determined according to the embodiment as in the above embodiment.
  • the control unit 31 may output the result of estimating the state of the product R to the output device 35 as it is.
  • the control unit 31 may output a warning to notify the defect to the output device 35.
  • the inspection device 3A is connected to a conveyor device (not shown) that conveys the product R, the product R without defects and the product R with defects are divided based on the result of estimating the state of the product R.
  • the conveyor device may be controlled to be conveyed on another line.
  • active learning can be performed by using a common index even in neural networks with different task types in the scene of constructing an estimator used for visual inspection.
  • the second training data 223 extracted by active learning can be further used to efficiently generate a trained learning model with higher performance.
  • the inspection device 3A can accurately perform the visual inspection of the product R by using the trained learning model generated thereby.
  • FIG. 15 schematically illustrates an example of an application scene of the monitoring system 100B according to the second modification.
  • This modified example is an example in which the above embodiment is applied to a scene where the state of the subject is estimated.
  • FIG. 15 as an example of a scene of predicting the state of the target person, a scene of monitoring the state of the driver RB of the vehicle is illustrated.
  • the driver RB is an example of a subject.
  • the monitoring system 100B according to the present embodiment includes a learning device 1, a data generation device 2, and a monitoring device 3B. Similar to the above embodiment, the learning device 1, the data generating device 2, and the monitoring device 3B may be connected to each other via a network.
  • the monitoring system 100B may be configured in the same manner as the above embodiment except that the data to be handled is different.
  • the learning device 1 performs machine learning of each neural network (50, 51) by using the plurality of first learning data sets 121 in the first phase.
  • the data generation device 2 utilizes each neural network (50, 51) trained in the machine learning of the first phase to generate at least one or more second training data sets 227.
  • the learning device 1 uses a plurality of first training data sets 121 and at least one or more second training data sets 227 to retrain or new each neural network (50, 51). Supervised learning of the learning model 52 is carried out.
  • Each training data (122, 223) is composed of sensing data obtained by a sensor that observes the state of the subject.
  • the type of the sensor is not particularly limited as long as it can observe the state of a person (subject, subject), and may be appropriately selected depending on the embodiment.
  • a camera SB1 and a vital sensor SB2 are used as an example of a sensor for observing the state of a person.
  • Each training data (122, 223) is obtained by observing the state of the subject (driver) with the camera SB1, the vital sensor SB2, and a sensor of the same type.
  • the camera SB1 for example, a general RGB camera, a depth camera, an infrared camera, or the like may be used.
  • the vital sensor SB for example, a thermometer, a sphygmomanometer, a pulse rate monitor and the like may be used.
  • Each training data (122, 223) is composed of image data and vital measurement data.
  • each training data (122, 223) relate to the condition of the subject.
  • the state of the subject includes, for example, the degree of drowsiness indicating the degree of drowsiness of the subject, the degree of fatigue indicating the degree of fatigue of the subject, the degree of margin indicating the degree of margin for driving of the subject, or a combination thereof. It may be.
  • each correct answer data (123, 225) may be configured to indicate, for example, the type of the state of the subject, the numerical value indicating the state of the subject, the range in which the subject is captured, and the like.
  • Each correct answer data (123, 225) may be obtained by input of the operator.
  • the result of estimating the state of the subject from each training data (122, 223) using an estimator trained to estimate the state of the subject from the sensing data is used as each correct answer data (123, 225). May be obtained.
  • the learning device 1 uses the training data (122, 223) and the correct answer data (123, 225) of the training model (each neural network (50, 51) and the learning model 52). Perform machine learning (at least one).
  • the learning model is configured to be able to perform the task of estimating the state of the subject from the sensing data.
  • the learning device 1 generates information about the learned learning model as the second learning result data 127B by the process of step S503, and stores the generated second learning result data 127B in a predetermined storage area.
  • the monitoring device 3B corresponds to the estimation device 3.
  • the monitoring device 3B may be configured in the same manner as the estimation device 3 except that the data to be handled is different.
  • the second learning result data 127B may be provided to the monitoring device 3B at an arbitrary timing.
  • the target sensing data is acquired from the camera SB1 and the vital sensor SB2.
  • the monitoring device 3B estimates the state of the driver RB based on the acquired sensing data by using the learned learning model constructed by the learning device 1.
  • FIG. 16A schematically illustrates an example of the hardware configuration of the monitoring device 3B according to this modification.
  • the monitoring device 3B according to the present modification is the control unit 31, the storage unit 32, the communication interface 33, the input device 34, the output device 35, the drive 36, and the external device, similarly to the estimation device 3.
  • the interface 37 is an electrically connected computer.
  • the monitoring device 3B is connected to the camera SB1 and the vital sensor SB2 via the external interface 37.
  • the camera SB1 may be appropriately arranged at a place where the driver RB can be photographed.
  • the vital sensor SB2 may be appropriately arranged at a place where the vitals of the driver RB can be measured.
  • the hardware configuration of the monitoring device 3B does not have to be limited to such an example. With respect to the specific hardware configuration of the monitoring device 3B, components can be omitted, replaced, and added as appropriate according to the embodiment.
  • the monitoring device 3B may be a general-purpose computer, a mobile phone including a smartphone, an in-vehicle device, or the like, in addition to an information processing device designed exclusively for the provided service.
  • the storage unit 32 of the monitoring device 3B stores various information such as the monitoring program 83B and the second learning result data 127B.
  • the monitoring program 83B and the second learning result data 127B correspond to the estimation program 83 and the second learning result data 127 according to the above embodiment.
  • At least one of the monitoring program 83B and the second learning result data 127B may be stored in the storage medium 93. Further, the monitoring device 3B may acquire at least one of the monitoring program 83B and the second learning result data 127B from the storage medium 93.
  • FIG. 16B schematically illustrates an example of the software configuration of the monitoring device 3B according to this modification. Similar to the above embodiment, the software configuration of the monitoring device 3B is realized by executing the monitoring program 83B by the control unit 31. As shown in FIG. 16B, the software configuration of the monitoring device 3B is the same as the software configuration of the estimation device 3 except that the data to be handled is the sensing data obtained by the sensor that observes the state of the person. As a result, the monitoring device 3B executes a series of processes related to the monitoring process in the same manner as the estimation process of the estimation device 3.
  • step S701 the control unit 31 operates as the data acquisition unit 311 and acquires the target sensing data 321B from the sensor that observes the state of the driver RB.
  • the camera SB1 and the vital sensor SB2 are connected to the monitoring device 3B as the sensors. Therefore, the acquired target sensing data 321B is composed of image data obtained from the camera SB1 and vital measurement data obtained from the vital sensor SB2.
  • step S702 the control unit 31 operates as the estimation unit 312 and estimates the state of the driver RB from the acquired target sensing data 321B by using the learned learning model 70B. Specifically, the control unit 31 sets the trained learning model 70B with reference to the second learning result data 127B.
  • the trained learning model 70B is at least one of the neural network (50, 51) trained by the machine learning of the second phase and the learning model 52.
  • the control unit 31 inputs the acquired target sensing data 321B into the learned learning model 70B, and executes arithmetic processing of the learned learning model 70B. As a result, the control unit 31 acquires an output value corresponding to the result of estimating the state of the driver RB from the target sensing data 321B from the learned learning model 70B.
  • step S703 the control unit 31 operates as an output unit 313 and outputs information regarding the result of estimating the state of the driver RB.
  • the output destination and the content of the information to be output may be appropriately determined according to the embodiment.
  • the control unit 31 may output the result of estimating the state of the driver RB to the output device 35 as it is. Further, for example, the control unit 31 may execute some information processing based on the estimation result. Then, the control unit 31 may output the result of executing the information processing as information regarding the estimation result.
  • the control unit 31 may output a specific message such as a warning to the output device 35 according to the estimated state of the driver RB.
  • a specific message such as a warning to the output device 35 according to the estimated state of the driver RB.
  • the control unit 31 determines whether or not at least one of the estimated sleepiness and fatigue exceeds the threshold value. May be determined.
  • the threshold value may be set as appropriate. Then, when at least one of the degree of drowsiness and the degree of fatigue exceeds the threshold value, the control unit 31 outputs a warning to the output device 35 to urge the driver RB to stop at a parking lot or the like and take a break. May be good.
  • control unit 31 may control the automatic driving operation of the vehicle based on the result of estimating the state of the driver RB.
  • the vehicle is configured to be able to switch between an automatic driving mode in which the system controls the running of the vehicle and a manual driving mode in which the driving of the vehicle is controlled by steering the driver RB.
  • the control unit 31 when the vehicle is traveling in the automatic driving mode and the driver RB or the system accepts the switch from the automatic driving mode to the manual driving mode, the control unit 31 has an estimated margin of the driver RB. It may be determined whether or not the degree exceeds the threshold value. Then, when the margin of the driver RB exceeds the threshold value, the control unit 31 may allow switching from the automatic operation mode to the manual operation mode. On the other hand, when the margin of the driver RB is equal to or less than the threshold value, the control unit 31 may not allow the switching from the automatic driving mode to the manual driving mode and may maintain the driving in the automatic driving mode.
  • the control unit 31 may determine whether or not at least one of the estimated drowsiness and fatigue exceeds the threshold value. Then, when at least one of the drowsiness and the fatigue exceeds the threshold value, the control unit 31 switches from the manual operation mode to the automatic operation mode and instructs the vehicle to stop at a safe place such as a parking lot. May be sent to the vehicle system. On the other hand, if this is not the case, the control unit 31 may maintain the running of the vehicle in the manual driving mode.
  • control unit 31 may determine whether or not the estimated margin is equal to or less than the threshold value. Then, when the margin is equal to or less than the threshold value, the control unit 31 may send a deceleration command to the vehicle system. On the other hand, if this is not the case, the control unit 31 may maintain the running of the vehicle by the operation of the driver RB.
  • active learning can be performed by using a common index even in neural networks with different task types in the scene of constructing an estimator for estimating the state of the subject.
  • the second training data 223 extracted by active learning can be further used to efficiently generate a trained learning model with higher performance.
  • the monitoring device 3B can accurately perform the task of estimating the state of the driver RB by using the learned learning model generated thereby.
  • the target person for which the state is estimated does not have to be limited to the driver RB of the vehicle illustrated in FIG. 15, and may include any person.
  • the target person for which the state is predicted may include, for example, a worker who works in an office, a factory, or the like, a person to be measured whose vital signs are measured, and the like.
  • FIG. 17 schematically illustrates an example of another scene for predicting the state of the subject.
  • the diagnostic system 100C illustrated in FIG. 17 includes a learning device 1, a data generation device 2, and a diagnostic device 3C.
  • the diagnostic device 3C corresponds to the monitoring device 3B.
  • the diagnostic device 3C is connected to the vital sensor SC, and the target sensing data of the person to be measured is acquired by the vital sensor SC.
  • the diagnostic device 3C estimates the state of the person to be measured by the same processing as that of the monitoring device 3B.
  • the state of the person being measured may include the health state of the person being measured.
  • the state of health may include, for example, whether or not he is healthy, whether or not there is a sign of illness, and the like.
  • Each correct answer data (123, 225) may be configured to indicate, for example, the type of health condition of the person, the probability of getting the target disease, and the like.
  • each neural network (50, 51) a convolutional neural network is used for each neural network (50, 51).
  • the type of each neural network (50, 51) does not have to be limited to such an example, and may be appropriately selected according to the embodiment.
  • a fully connected neural network, a recursive neural network, or the like may be used for each neural network (50, 51).
  • each neural network (50, 51) may be composed of a combination of neural networks having a plurality of different structures. The structure of each neural network (50, 51) does not have to be particularly limited, and may be appropriately set according to the embodiment.
  • the attention layer (503, 513) is a convolutional layer arranged as an intermediate layer of the convolutional neural network.
  • the layer of interest (503, 513) does not have to be limited to the convolutional layer, and may be appropriately selected according to the embodiment.
  • an intermediate layer such as a pooling layer or a fully connected layer may be set as the layer of interest.
  • the pooling layer for pooling the output of the convolutional layer that is, the pooling layer arranged immediately after the convolutional layer
  • the output of this convolutional layer should be treated in the same manner as the output of the convolutional layer. Can be done.
  • the evaluation value 222 can be calculated from the output value of the pooling layer by the same method as that of the above embodiment (any of the formulas 1 to 3). Further, when a fully connected layer including a plurality of neurons (nodes) is set as a layer of interest, the output of this fully connected layer can be treated in the same manner as the output of the convolutional layer. Therefore, the evaluation value 222 can be calculated from the output value of the fully connected layer by the same method as that of the above embodiment (any of the formulas 1 to 3). On the other hand, when the fully connected layer including one neuron (node) is set as the attention layer, the evaluation value 222 can be calculated from the output value of the fully connected layer by the method of the above formula 3.
  • the learning device 1 executes both the machine learning of the first phase and the machine learning of the second phase.
  • the learning device 1 and the data generating device 2 are separate computers.
  • the configuration of the learning system 101 does not have to be limited to such an example.
  • the machine learning of the first phase and the machine learning of the second phase may be executed by different computers.
  • the learning device 1 and the data generation device 2 may be configured by an integrated computer.
  • the data generation device 2 is the target to which the evaluation value 222 derived by each neural network (50, 51) is given the correct answer data from the second training data 221 to which the correct answer data is not given. 2 It is used to extract training data 223.
  • the data generation device 2 is, for example, one or more trainings estimated to contribute to the performance improvement of the estimator from a plurality of training data to which correct answer data has already been added, that is, a plurality of training data sets.
  • the evaluation value 222 may be used to extract the data set.
  • the extraction process of this learning data set can be executed by the same processing procedure as the extraction process of the second training data 223. In this case, correct answer data may be added to the second training data 221.
  • Step S306 may be omitted from the above processing procedure of the data generation device 2.
  • the generation unit 215 may be omitted from the software configuration of the data generation device 2.
  • estimation unit 313 ... output unit, 321 ... Target data, 83 ... estimation program, 93 ... storage medium, 50 ... 1st neural network, 501 ... Input layer, 503 ... Attention layer, 507 ... Output layer, 51 ... Second neural network, 511 ... Input layer, 513 ... Attention layer, 517 ... Output layer, 52 ... Learning model, 70 ... Estimator

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Radiology & Medical Imaging (AREA)
  • Image Analysis (AREA)

Abstract

本発明の一側面に係る学習システムは、各第1学習データセットについて、第1訓練データを入力すると、第1正解データに適合する出力値が出力層から出力されると共に、出力層よりも入力側に配置された注目層から出力される出力値が互いに適合するように、各ニューラルネットワークを訓練する。学習システムは、訓練された各ニューラルネットワークの注目層の出力値に基づいて、各件の第2訓練データに対する出力の不安定性を評価し、評価の結果に基づいて、第2正解データを付与する対象にする第2訓練データを抽出する。

Description

学習システム、データ生成装置、データ生成方法、及びデータ生成プログラム
 本発明は、学習システム、データ生成装置、データ生成方法、及びデータ生成プログラムに関する。
 近年、製品の良否を検査する場面、ドライバをモニタリングする場面等の様々な場面で、得られた画像データに対して分類タスクを遂行するために、ニューラルネットワークにより構成された分類器の開発が行われている。例えば、特許文献1では、学習済みの第1のニューラルネットワークに基づいて画像に写る検査対象物が正常であるか異常であるかを判定し、検査対象物が異常であると判定した場合に、学習済みの第2のニューラルネットワークに基づいて当該異常の種類を分類する検査装置が提案されている。
 ニューラルネットワークは、教師あり学習における学習モデルの一例である。教師あり学習における学習モデルのその他の例として、例えば、サポートベクタマシン、線形回帰モデル、決定木モデル等の様々なモデルが挙げられる。教師あり学習では、分類器は、訓練データである画像データを与えると、対応する正解データに適合する出力値を出力するように訓練される。学習済みの分類器によれば、未知の画像データに対して所定の分類タスクを遂行することができる。
 この学習済みの分類器の性能は、基本的には、学習データのサンプル数に依存する。すなわち、学習データのサンプル数が多いほど、例えば、製品の良否を精度よく分類したり、ドライバの状態を精度よく分類したりする等、分類器の性能を高めることができる。しかしながら、教師あり学習では、訓練データである画像データ、及び当該画像データに対する分類タスクの正解を示す正解データの組み合わせによりそれぞれ構成された複数の学習データセットが学習データとして利用される。この画像データに対して正解データを付与する作業は、通常は、オペレータによる手作業で行われる。そのため、画像データに正解データを付与するのに手間がかかり、沢山のサンプルを用意するのにはコストがかかってしまう。
 そこで、近年、少量のサンプルで分類器の性能の向上を図るアクティブラーニングが試みられている。アクティブラーニングでは、所定の指標に基づいて、正解データの付与されていない訓練データのサンプルが分類器の性能向上に寄与する程度を評価する。そして、その評価結果に基づいて、性能向上に寄与する程度の高いサンプルを抽出し、抽出されたサンプルに対して正解データを付与する。これにより、正解データを付与する訓練データのサンプル数を抑えつつ、得られた学習データセットを使用した教師あり学習により、性能の高い分類器を構築することができる。
 非特許文献1では、各サンプルが分類器の性能向上に寄与する程度を評価する方法として、複数のニューラルネットワークの出力値を指標に利用した方法が提案されている。具体的には、既に正解データの付与されている画像データのサンプルを用意して、複数の学習済みのニューラルネットワークを構築する。そして、正解データの付与されていない学習データのサンプルに対する各学習済みのニューラルネットワークの出力値の不安定性を評価する。
 各学習済みのニューラルネットワークの出力値の不安定性が高いほど、既に得られている学習データでは、そのサンプルに対して十分な性能で分類タスクを遂行する分類器が構築されておらず、そのサンプルは、分類器の性能向上に寄与する程度が高いことを示す。そのため、不安定性の高いサンプルに対して正解データを付与して、新たな学習データセットを生成する。そして、生成された新たな学習データセット及び既に用意された学習データセットを使用して、ニューラルネットワークの再学習を実施する。これにより、正解データを付与する訓練データのサンプル数を抑えつつ、性能の高い分類器を構築することができる。
特開2012-026982号公報
William H. Beluch, Tim Genewein, Andreas Nurnberger, Jan M. Kohler, "The power of ensembles for active learning in image classification", The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp.9368-9377, 2018
 本件発明者は、この非特許文献1のような、複数のニューラルネットワークを利用したアクティブラーニングの方法には、次のような問題点があることを見出した。すなわち、この方法では、各ニューラルネットワークの出力層から得られた出力値を獲得関数に適用することで、正解データの付与されていないサンプルに対する各ニューラルネットワークの出力の不安定性が評価されている。非特許文献1では、分類タスクを遂行するために、各ニューラルネットワークの出力層にはソフトマックス層が利用されており、ソフトマックス層の出力値には、エントロピー等を算出するための獲得関数が適用されている。
 しかしながら、画像データに対して設定可能な推定タスクの種類は、何らかの特徴を分類する分類タスクに限られない。画像データに対して設定可能な推定タスクには、例えば、回帰タスク、セグメンテーション等の他の種類のタスクが存在する。回帰タスクでは、例えば、特定の特徴が現れている確率等の連続値が導出される。セグメンテーションでは、例えば、特定の特徴の写る部分等の画像領域が抽出される。
 ニューラルネットワークの出力形式は、このタスクの種類に応じて異なり得る。そのため、タスクの種類の異なるニューラルネットワークに同一種類の獲得関数を利用することは困難である。つまり、分類タスクに設定された獲得関数をそのまま他の種類のタスクの獲得関数として利用することは困難であり、タスクの種類に依存する出力層の出力形式に応じて獲得関数を変更することになる。したがって、従来の方法では、タスクの種類が異なるニューラルネットワークに共通の指標を利用して、アクティブラーニングを実施することは困難であるという問題点が存在する。
 なお、この問題点は、画像データを訓練データとして利用する場面に限られず、音データ、数値データ、テキストデータ等の様々な種類のデータを訓練データとして利用するあらゆる場面で生じる。また、複数種類のデータを訓練データとして利用する場面にも同様の問題点が生じる。任意の種類のデータに対して任意の推定タスクを遂行するための推定器を生成するあらゆる場面で教師あり学習を利用することができ、それぞれの場面で、タスクの種類が異なるニューラルネットワークに共通の指標を利用して、アクティブラーニングを実施することは困難であるという問題点が生じ得る。
 本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、タスクの種類が異なるニューラルネットワークでも共通の指標を利用して、アクティブラーニングを実施可能にするための技術を提供することである。
 本発明は、上述した課題を解決するために、以下の構成を採用する。
 すなわち、本発明の一側面に係る学習システムは、第1訓練データ、及び当該第1訓練データに含まれる特徴を示す第1正解データの組み合わせによりそれぞれ構成された複数の第1学習データセットを取得する第1データ取得部と、取得された前記複数の第1学習データセットを使用して、複数のニューラルネットワークの機械学習を実施する学習処理部であって、前記各ニューラルネットワークは、入力側から出力側に並んで配置された複数の層を含み、前記複数の層は、最も出力側に配置された出力層及び当該出力層よりも入力側に配置された注目層を含み、前記機械学習を実施することは、前記各第1学習データセットについて、前記各ニューラルネットワークに前記第1訓練データを入力すると、前記各ニューラルネットワークの前記出力層から前記第1正解データに適合する出力値が出力されると共に、前記各ニューラルネットワークの前記注目層から出力される出力値が互いに適合するように、前記各ニューラルネットワークを訓練することを含む、学習処理部と、複数件の第2訓練データを取得する第2データ取得部と、訓練された前記各ニューラルネットワークに前記各件の第2訓練データを入力することで前記各ニューラルネットワークの前記注目層から出力値を取得し、前記各ニューラルネットワークの前記注目層から取得された前記出力値に基づいて、前記各件の第2訓練データに対する前記各ニューラルネットワークの出力の不安定性を示す評価値を算出する評価部と、前記不安定性が高いと判定するための条件を前記評価値が満たす少なくとも1件以上の第2訓練データを前記複数件の第2訓練データから抽出する抽出部と、抽出された前記少なくとも1件以上の第2訓練データそれぞれに対して、前記第2訓練データに含まれる特徴を示す第2正解データの入力を受け付けることで、前記第2訓練データ及び前記第2正解データの組み合わせによりそれぞれ構成された少なくとも1つ以上の第2学習データセットを生成する生成部と、を備え、前記学習処理部は、前記複数の第1学習データセット及び前記少なくとも1つ以上の第2学習データセットを使用して、前記複数のニューラルネットワークの機械学習を再度実施する、又は前記複数のニューラルネットワークとは別の学習モデルの教師あり学習を実施する。
 例えば、分類タスクを遂行するために出力層にソフトマックス層を利用する等、ニューラルネットワークの出力層の形式は、当該ニューラルネットワークに習得させる推定タスクの種類に依存する。これに対して、ニューラルネットワークの出力層より入力側に配置される層(例えば、中間層等)の形式は、推定タスクの種類に依存せずに設定可能である。例えば、画像データに対する推定タスクを遂行するために畳み込みニューラルネットワークを利用する場面を想定する。この場面において、習得させる推定タスクの種類に依存せず(すなわち、異なる推定タスクを習得させる畳み込みニューラルネットワークの間で)、畳み込み層、プーリング層、全結合層等の共通の出力形式の中間層を利用することができる。
 そこで、当該構成に係る学習システムでは、複数の層を含む各ニューラルネットワークにおいて、出力層より入力側に配置された層を注目層に設定する。注目層は、出力層以外の層から任意に設定されてよい。そして、複数の第1学習データセットを使用した機械学習において、第1訓練データを入力すると、第1正解データに適合する出力値が出力層から出力されると共に、注目層から出力される出力値が互いに適合するように、各ニューラルネットワークを訓練する。この機械学習により、各ニューラルネットワークは、未知の入力データに対して推定タスクを遂行可能に訓練されると共に、各ニューラルネットワークの注目層は、推定タスクを適切に遂行可能な入力データに対して同一又は近似する出力値を出力するように訓練される。つまり、この機械学習では、前者の訓練のみでは各ニューラルネットワークの注目層の出力はばらつくのに対して、後者の訓練を更に実施することで、各ニューラルネットワークの注目層の出力の整合を図っている。
 そのため、訓練データのサンプルを各ニューラルネットワークに与えたときに、各ニューラルネットワークの注目層の出力値がばらつく、すなわち、出力の不安定性が高いことは、各ニューラルネットワークがそのサンプルに対して十分な性能で推定タスクを遂行することができないことを示す。よって、そのサンプルは、推定タスクを遂行する推定器の性能向上に寄与する程度が高いと推定される。当該構成に係る学習システムは、これを利用して、推定器の性能向上に寄与する程度の高いと推定される第2訓練データを抽出する。
 具体的には、当該構成に係る学習システムは、各ニューラルネットワークの注目層の出力値に基づいて、各件の第2訓練データ(すなわち、訓練データのサンプル)に対する各ニューラルネットワークの出力の不安定性を示す評価値を算出する。各ニューラルネットワークの注目層の出力値と評価値との間の関係は、獲得関数により数学的に記述されてよい。この場合、各ニューラルネットワークの注目層の出力値を獲得関数に代入することで、各件の第2訓練データに対する各ニューラルネットワークの出力の不安定性を示す評価値を算出することができる。当該構成に係る学習システムは、不安定性が高いと判定するための条件を評価値が満たす少なくとも1件以上の第2訓練データを複数の第2訓練データから抽出する。
 したがって、当該構成に係る学習システムでは、例えば、畳み込み層、プーリング層、全結合層等の出力形式が共通する層を注目層に設定することで、ニューラルネットワークに遂行させるタスクの種類に依存せずに、共通の指標(例えば、同一の獲得関数)を用いて、各サンプルに対する各ニューラルネットワークの出力の不安定性を評価することができる。すなわち、ニューラルネットワークに遂行させるタスクの種類に応じて、出力の不安定性を評価するための指標を変更しなくてもよい。そして、その評価の結果に基づいて、推定器の性能向上に寄与する程度の高いと推定される第2訓練データを適切に抽出することができる。よって、当該構成に係る学習システムによれば、タスクの種類が異なるニューラルネットワークでも共通の指標を利用して、アクティブラーニングを実施することができるようになる。
 また、当該構成に係る学習システムは、抽出された少なくとも1件以上の第2訓練データに第2正解データを付与することで、少なくとも1件以上の第2学習データセットを生成する。そして、当該構成に係る学習システムは、第1学習データセット及び第2学習データセットを使用して、各ニューラルネットワークの再学習又は新たな学習モデルの教師あり学習を実施する。これにより、正解データを付与する訓練データのサンプル数を抑えつつ、性能の高い推定器を構築することができる。
 なお、各ニューラルネットワークは、複数の層を含んでいれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各ニューラルネットワークには、全結合型ニューラルネットワーク、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等が用いられてよい。出力層の出力形式は、各ニューラルネットワークに遂行させるタスクの種類に応じて設定されてよい。注目層は、出力層以外の層から適宜選択されてよい。例えば、畳み込み層、プーリング層、全結合層等の中間層が注目層に設定されてよい。各層の構成は、適宜設定されてよい。学習モデルは、教師あり学習を実施可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。学習モデルには、例えば、サポートベクタマシン、線形回帰モデル、決定木モデル等が用いられてよい。
 訓練データの種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。訓練データには、例えば、画像データ、音データ、数値データ、テキストデータ等が用いられてよい。特徴を推定することには、分類すること、回帰すること、セグメンテーションを行うこと等が含まれてよい。特徴は、データから推定可能なあらゆる要素を含んでよい。推定タスクの一例として、例えば、画像データに写る製品の状態(良否)を推定するタスク、運転者を観察することで得られたセンシングデータから当該運転者の状態を推定するタスク、対象者のバイタルデータから当該対象者の健康状態を推定するタスク等を挙げることができる。特徴を推定することには、未来の何らかの要素を予測することが含まれてよい。この場合、特徴は、未来に現れる要素の予兆を含んでよい。正解データは、習得させる推定タスクに応じて適宜決定されてよい。正解データは、例えば、特徴のカテゴリを示す情報、特徴の表れる確率を示す情報、特徴の値を示す情報、特徴の写る範囲を示す情報等により構成されてよい。
 上記一側面に係る学習システムにおいて、前記各ニューラルネットワークは、畳み込みニューラルネットワークであってよく、前記注目層は、畳み込み層であってよい。当該構成によれば、タスクの種類が異なる畳み込みニューラルネットワークでも共通の指標を利用して、アクティブラーニングを実施することができるようになる。
 上記一側面に係る学習システムにおいて、前記各ニューラルネットワークの前記注目層から出力される出力値が互いに適合することは、前記各畳み込みニューラルネットワークの前記畳み込み層より出力される特徴マップから導出されるアテンションマップが互いに一致することであってよい。アテンションマップは、ソフトマックス関数の出力に類似する特性を有している。そのため、ソフトマックス層に適用される獲得関数をそのままアテンションマップにも利用することができる。つまり、各件の第2訓練データに対する評価値を注目層の出力値から導出するのに、分類タスクに利用される従来の獲得関数を利用することができる。したがって、当該構成によれば、部分的に従来の演算モジュールを利用することができるため、本発明の導入コストを抑えることができる。
 上記一側面に係る学習システムにおいて、前記各ニューラルネットワークの前記複数の層は、演算に利用される演算パラメータを備えてよい。前記各ニューラルネットワークを訓練することは、前記各第1学習データセットについて、前記各ニューラルネットワークに前記第1訓練データを入力したときに、前記各ニューラルネットワークの前記出力層から出力される出力値と前記第1正解データとの誤差が小さくなるように、かつ前記各ニューラルネットワークの前記注目層から出力される出力値の間の誤差が小さくなるように、前記各ニューラルネットワークの前記演算パラメータの値の調整を繰り返すことを備えてよい。前記注目層から出力される出力値の間の誤差に関する学習率は、前記演算パラメータの値の調整を繰り返す度に大きくなるように設定されてよい。学習の初期段階では、各ニューラルネットワークの注目層の出力値は大きく相違する可能性がある。当該構成によれば、この注目層の出力値の誤差に対する学習率を徐々に高くすることで、各ニューラルネットワークの注目層の出力値を互いに適合させるための学習を適切に収束させることができる。なお、演算パラメータは、例えば、各ニューロン間の結合の重み、各ニューロンの閾値等である。
 上記一側面に係る学習システムにおいて、前記各訓練データは、製品の写る画像データにより構成されてよく、前記特徴は、前記製品の状態に関するものであってよい。当該構成によれば、外観検査に利用する推定器を構築する場面において、タスクの種類が異なるニューラルネットワークでも共通の指標を利用して、アクティブラーニングを実施することができるようになる。
 なお、画像データに写る製品は、例えば、電子機器、電子部品、自動車部品、薬品、食品等の製造ラインで搬送される製品であってよい。電子部品は、例えば、基盤、チップコンデンサ、液晶、リレーの巻線等であってよい。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等であってよい。薬品は、例えば、包装済みの錠剤、未包装の錠剤等であってよい。製品は、製造過程完了後に生成される最終品であってもよいし、製造過程の途中で生成される中間品であってもよいし、製造過程を経過する前に用意される初期品であってもよい。製品の状態は、例えば、欠陥の有無に関するものであってよい。これに応じて、特徴は、例えば、傷、汚れ、クラック、打痕、バリ、色ムラ、異物混入等の製品の欠陥に関するものであってよい。
 上記一側面に係る学習システムにおいて、前記各訓練データは、被験者の状態を観察するセンサにより得られたセンシングデータにより構成されてよく、前記特徴は、前記被験者の状態に関するものであってよい。当該構成によれば、対象者の状態を推定するための推定器を構築する場面において、タスクの種類が異なるニューラルネットワークでも共通の指標を利用して、アクティブラーニングを実施することができるようになる。
 なお、センサは、人物(被験者、対象者)の状態を観察可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。センサには、例えば、カメラ、バイタルセンサ等が用いられてよい。カメラには、例えば、一般的なRGBカメラ、深度カメラ、赤外線カメラ等が用いられてよい。バイタルセンサには、例えば、体温計、血圧計、脈拍計等が用いられてよい。これに応じて、センシングデータは、画像データ、バイタルの測定データ等により構成されてよい。また、人物の状態は、例えば、人物の健康状態を含んでよい。健康状態を表現する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。健康状態は、例えば、健康であるか否か、病気になる予兆があるか否か等により表現されてよい。人物が運転者である場合、人物の状態は、例えば、人物の眠気の度合いを示す眠気度、人物の疲労の度合いを示す疲労度、人物の運転に対する余裕の度合いを示す余裕度、又はこれらの組み合わせを含んでもよい。
 本発明の形態は、上記学習システムに限られなくてもよい。本発明の一側面に係る装置は、例えば、上記各形態に係る学習システムから、例えば、各ニューラルネットワークの機械学習を実施する部分、推定器の性能向上に寄与する程度の高い第2訓練データを抽出する部分等の一部分を抽出することにより構成されてよい。各ニューラルネットワークの機械学習を実施する部分に対応する装置は学習装置と称されてよい。推定器の性能向上に寄与する程度の高い第2訓練データを抽出する部分に対応する装置はデータ生成装置と称されてよい。また、本発明の形態は、第1学習データセット及び第2学習データセットを使用した機械学習により構築された推定器(学習済みのニューラルネットワーク又は学習モデル)を利用する装置を含んでもよい。推定器を利用する装置は推定装置と称されてよい。推定装置の呼び方は、推定タスクの種類に応じて変更されてよい。
 例えば、本発明の一側面に係る学習装置は、第1訓練データ、及び当該第1訓練データに含まれる特徴を示す第1正解データの組み合わせによりそれぞれ構成された複数の第1学習データセットを取得する第1データ取得部と、取得された前記複数の第1学習データセットを使用して、複数のニューラルネットワークの機械学習を実施する学習処理部であって、前記各ニューラルネットワークは、入力側から出力側に並んで配置された複数の層を含み、前記複数の層は、最も出力側に配置された出力層及び当該出力層よりも入力側に配置された注目層を含み、前記機械学習を実施することは、前記各第1学習データセットについて、前記各ニューラルネットワークに前記第1訓練データを入力すると、前記各ニューラルネットワークの前記出力層から前記第1正解データに適合する出力値が出力されると共に、前記各ニューラルネットワークの前記注目層から出力される出力値が互いに適合するように、前記各ニューラルネットワークを訓練することを含む、学習処理部と、を備える。
 また、例えば、本発明の一側面に係るデータ生成装置は、第1訓練データ、及び当該第1訓練データに含まれる特徴を示す第1正解データの組み合わせによりそれぞれ構成された複数の第1学習データセットを使用した機械学習により訓練された複数のニューラルネットワークを取得するモデル取得部であって、前記各ニューラルネットワークは、入力側から出力側に並んで配置された複数の層を含み、前記複数の層は、最も出力側に配置された出力層及び当該出力層よりも入力側に配置された注目層を含み、前記各ニューラルネットワークは、前記機械学習により、前記各第1学習データセットについて、前記各ニューラルネットワークに前記第1訓練データを入力すると、前記各ニューラルネットワークの前記出力層から前記第1正解データに適合する出力値が出力されると共に、前記各ニューラルネットワークの前記注目層から出力される出力値が互いに適合するように訓練されている、モデル取得部と、複数件の第2訓練データを取得するデータ取得部と、訓練された前記各ニューラルネットワークに前記各件の第2訓練データを入力することで前記各ニューラルネットワークの前記注目層から出力値を取得し、前記各ニューラルネットワークの前記注目層から取得された前記出力値に基づいて、前記各件の第2訓練データに対する前記各ニューラルネットワークの出力の不安定性を示す評価値を算出する評価部と、前記不安定性が高いと判定するための条件を前記評価値が満たす少なくとも1件以上の第2訓練データを前記複数件の第2訓練データから抽出する抽出部と、抽出された前記少なくとも1件以上の第2訓練データそれぞれに対して、前記第2訓練データに含まれる特徴を示す第2正解データの入力を受け付けることで、前記第2訓練データ及び前記第2正解データの組み合わせによりそれぞれ構成された少なくとも1つ以上の第2学習データセットを生成する生成部と、を備える。
 上記一側面に係るデータ生成装置は、生成された前記少なくとも1つ以上の第2学習データセットを学習モデルの教師あり学習に使用可能に出力する出力部を更に備えてもよい。
 また、上記各形態に学習システム、学習装置、データ生成装置、推定装置、及び推定装置を含むシステムそれぞれの別の態様として、本発明の一側面は、以上の各構成の全部又はその一部を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
 例えば、本発明の一側面に係る学習方法は、コンピュータが、第1訓練データ、及び当該第1訓練データに含まれる特徴を示す第1正解データの組み合わせによりそれぞれ構成された複数の第1学習データセットを取得するステップと、取得された前記複数の第1学習データセットを使用して、複数のニューラルネットワークの機械学習を実施するステップであって、前記各ニューラルネットワークは、入力側から出力側に並んで配置された複数の層を含み、前記複数の層は、最も出力側に配置された出力層及び当該出力層よりも入力側に配置された注目層を含み、前記機械学習を実施することは、前記各第1学習データセットについて、前記各ニューラルネットワークに前記第1訓練データを入力すると、前記各ニューラルネットワークの前記出力層から前記第1正解データに適合する出力値が出力されると共に、前記各ニューラルネットワークの前記注目層から出力される出力値が互いに適合するように、前記各ニューラルネットワークを訓練することを含む、ステップと、複数件の第2訓練データを取得するステップと、訓練された前記各ニューラルネットワークに前記各件の第2訓練データを入力することで前記各ニューラルネットワークの前記注目層から出力値を取得するステップと、前記各ニューラルネットワークの前記注目層から取得された前記出力値に基づいて、前記各件の第2訓練データに対する前記各ニューラルネットワークの出力の不安定性を示す評価値を算出するステップと、前記不安定性が高いと判定するための条件を前記評価値が満たす少なくとも1件以上の第2訓練データを前記複数件の第2訓練データから抽出するステップと、抽出された前記少なくとも1件以上の第2訓練データそれぞれに対して、前記第2訓練データに含まれる特徴を示す第2正解データの入力を受け付けることで、前記第2訓練データ及び前記第2正解データの組み合わせによりそれぞれ構成された少なくとも1つ以上の第2学習データセットを生成するステップと、前記複数の第1学習データセット及び前記少なくとも1つ以上の第2学習データセットを使用して、前記複数のニューラルネットワークの機械学習を再度実施する、又は前記複数のニューラルネットワークとは別の学習モデルの教師あり学習を実施するステップと、を実行する情報処理方法である。
 例えば、本発明の一側面に係るデータ生成方法は、コンピュータが、第1訓練データ、及び当該第1訓練データに含まれる特徴を示す第1正解データの組み合わせによりそれぞれ構成された複数の第1学習データセットを使用した機械学習により訓練された複数のニューラルネットワークを取得するステップであって、前記各ニューラルネットワークは、入力側から出力側に並んで配置された複数の層を含み、前記複数の層は、最も出力側に配置された出力層及び当該出力層よりも入力側に配置された注目層を含み、前記各ニューラルネットワークは、前記機械学習により、前記各第1学習データセットについて、前記各ニューラルネットワークに前記第1訓練データを入力すると、前記各ニューラルネットワークの前記出力層から前記第1正解データに適合する出力値が出力されると共に、前記各ニューラルネットワークの前記注目層から出力される出力値が互いに適合するように訓練されている、ステップと、複数件の第2訓練データを取得するステップと、訓練された前記各ニューラルネットワークに前記各件の第2訓練データを入力することで前記各ニューラルネットワークの前記注目層から出力値を取得するステップと、前記各ニューラルネットワークの前記注目層から取得された前記出力値に基づいて、前記各件の第2訓練データに対する前記各ニューラルネットワークの出力の不安定性を示す評価値を算出するステップと、前記不安定性が高いと判定するための条件を前記評価値が満たす少なくとも1件以上の第2訓練データを前記複数件の第2訓練データから抽出するステップと、抽出された前記少なくとも1件以上の第2訓練データそれぞれに対して、前記第2訓練データに含まれる特徴を示す第2正解データの入力を受け付けることで、前記第2訓練データ及び前記第2正解データの組み合わせによりそれぞれ構成された少なくとも1つ以上の第2学習データセットを生成するステップと、を実行する、情報処理方法である。
 また、例えば、本発明の一側面に係るデータ生成プログラムは、コンピュータに、第1訓練データ、及び当該第1訓練データに含まれる特徴を示す第1正解データの組み合わせによりそれぞれ構成された複数の第1学習データセットを使用した機械学習により訓練された複数のニューラルネットワークを取得するステップであって、前記各ニューラルネットワークは、入力側から出力側に並んで配置された複数の層を含み、前記複数の層は、最も出力側に配置された出力層及び当該出力層よりも入力側に配置された注目層を含み、前記各ニューラルネットワークは、前記機械学習により、前記各第1学習データセットについて、前記各ニューラルネットワークに前記第1訓練データを入力すると、前記各ニューラルネットワークの前記出力層から前記第1正解データに適合する出力値が出力されると共に、前記各ニューラルネットワークの前記注目層から出力される出力値が互いに適合するように訓練されている、ステップと、複数件の第2訓練データを取得するステップと、訓練された前記各ニューラルネットワークに前記各件の第2訓練データを入力することで前記各ニューラルネットワークの前記注目層から出力値を取得するステップと、前記各ニューラルネットワークの前記注目層から取得された前記出力値に基づいて、前記各件の第2訓練データに対する前記各ニューラルネットワークの出力の不安定性を示す評価値を算出するステップと、前記不安定性が高いと判定するための条件を前記評価値が満たす少なくとも1件以上の第2訓練データを前記複数件の第2訓練データから抽出するステップと、抽出された前記少なくとも1件以上の第2訓練データそれぞれに対して、前記第2訓練データに含まれる特徴を示す第2正解データの入力を受け付けることで、前記第2訓練データ及び前記第2正解データの組み合わせによりそれぞれ構成された少なくとも1つ以上の第2学習データセットを生成するステップと、を実行させるための、プログラムである。
 本発明によれば、タスクの種類が異なるニューラルネットワークでも共通の指標を利用して、アクティブラーニングを実施することができるようになる。
図1は、本発明の適用される場面の一例を模式的に例示する。 図2は、実施の形態に係る学習装置のハードウェア構成の一例を模式的に例示する。 図3は、実施の形態に係るデータ生成装置のハードウェア構成の一例を模式的に例示する。 図4は、実施の形態に係る推定装置のハードウェア構成の一例を模式的に例示する。 図5Aは、実施の形態に係る学習装置のソフトウェア構成の一例を模式的に例示する。 図5Bは、実施の形態に係る学習装置のソフトウェア構成の一例を模式的に例示する。 図6は、実施の形態に係るデータ生成装置のソフトウェア構成の一例を模式的に例示する。 図7は、実施の形態に係る推定装置のソフトウェア構成の一例を模式的に例示する。 図8は、実施の形態に係る学習装置の処理手順の一例を例示する。 図9は、実施の形態に係る学習装置の機械学習の処理手順の一例を例示する。 図10は、実施の形態に係るデータ生成装置の処理手順の一例を例示する。 図11は、実施の形態に係る学習装置の処理手順の一例を例示する。 図12は、実施の形態に係る推定装置の処理手順の一例を例示する。 図13は、本発明が適用される他の場面の一例を模式的に例示する。 図14Aは、他の形態に係る検査装置のハードウェア構成の一例を模式的に例示する。 図14Bは、他の形態に係る検査装置のソフトウェア構成の一例を模式的に例示する。 図15は、本発明が適用される他の場面の一例を模式的に例示する。 図16Aは、他の形態に係る監視装置のハードウェア構成の一例を模式的に例示する。 図16Bは、他の形態に係る監視装置のソフトウェア構成の一例を模式的に例示する。 図17は、本発明が適用される他の場面の一例を模式的に例示する。
 以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
 §1 適用例
 まず、図1を用いて、本発明が適用される場面の一例について説明する。図1は、本発明を適用した場面の一例を模式的に例示する。
 本実施形態に係る推定システム100は、学習データセットを生成する処理、学習モデルの機械学習を実施する処理、及び訓練された学習モデルを利用して所定の推定タスクを遂行する処理を含む一連の情報処理を実行するように構成される。本実施形態では、推定システム100は、学習システム101及び推定装置3を備えている。
 本実施形態に係る学習システム101は、上記一連の情報処理のうち、ニューラルネットワークを含む学習モデルの機械学習を実施する処理、及び学習データセットを生成する処理を実行するように構成される。本実施形態では、学習システム101は、それぞれの処理に応じて、学習装置1及びデータ生成装置2を備えている。
 本実施形態に係る学習装置1は、複数の学習データセットを使用して、学習モデルの機械学習(教師あり学習)を実行するように構成されたコンピュータである。本実施形態では、学習装置1は、2つのフェーズそれぞれで、異なる目的で学習モデルの機械学習を実施する。
 第1のフェーズでは、学習装置1は、用意された学習データセット(第1学習データセット121)を使用して、推定器の性能向上に寄与する程度の高い、すなわち、正解データを付与する価値の高い訓練データの抽出に利用する複数のニューラルネットワークの機械学習を実施する。データ生成装置2は、この機械学習により訓練された複数のニューラルネットワークを利用して、新たな学習データセット(第2学習データセット227)を生成する。一方、第2のフェーズでは、学習装置1は、生成された新たな学習データセットを更に使用して、推定タスクの遂行に利用するための学習モデルの機械学習を実施する。推定装置3は、この機械学習により訓練された学習モデルを利用して、対象データに対して所定の推定タスクを遂行する。
 具体的に、第1のフェーズでは、学習装置1は、複数の第1学習データセット121を取得する。各第1学習データセット121は、第1訓練データ122及び第1正解データ123の組み合わせにより構成される。
 第1訓練データ122の種類は、特に限定されなくてもよく、学習モデルに習得させる推定タスクに応じて適宜選択されてよい。第1訓練データ122は、例えば、画像データ、音データ、数値データ、テキストデータ等であってよい。図1の例では、センサSにより得られるセンシングデータに含まれる特徴を推定する能力を学習モデルに習得させる場面を想定している。そのため、本実施形態では、第1訓練データ122は、センサS又はこれと同種のセンサにより得られるセンシングデータである。
 センサSの種類は、特に限定されなくてもよく、学習モデルに習得させる推定タスクに応じて適宜選択されてよい。センサSは、例えば、カメラ、マイクロフォン、エンコーダ、Lidar(light detection and ranging)センサ、バイタルセンサ、環境センサ等であってよい。カメラは、例えば、RGB画像を取得するよう構成された一般的なデジタルカメラ、深度画像を取得するように構成された深度カメラ、赤外線量を画像化するように構成された赤外線カメラ等であってよい。バイタルセンサは、例えば、体温計、血圧計、脈拍計等であってよい。環境センサは、例えば、光度計、温度計、湿度計等であってよい。一例として、画像に写る製品の外観検査をする能力を学習モデルに習得させる場合には、センサSには、カメラが選択され、第1訓練データ122には、カメラにより得られる製品の写る画像データが選択される。
 第1正解データ123は、第1訓練データ122に含まれる特徴を示す。すなわち、第1正解データ123は、第1訓練データ122に対する所定の推定タスクの正解を示すように構成される。第1正解データ123は、例えば、特徴のカテゴリを示す情報、特徴の表れる確率を示す情報、特徴の値を示す情報、特徴の写る範囲を示す情報等により構成されてよい。一例として、上記外観検査を実施する場合には、第1正解データ123は、例えば、製品に欠陥が含まれるか否か、製品に含まれる欠陥の種類、製品に含まれる欠陥の範囲等を示すように構成されてよい。
 所定の推定タスクは、所定のデータに含まれる何らかの特徴を推定することである。この「特徴を推定すること」には、何らかの分類を行うこと、何らかの値を回帰すること、セグメンテーションを行うこと等が含まれてよい。特徴は、データから推定可能なあらゆる要素を含んでよい。推定タスクの一例として、上記画像データに写る製品の状態(良否)を推定するタスクの他、例えば、運転者を観察することで得られたセンシングデータから当該運転者の状態を推定するタスク、対象者のバイタルデータから当該対象者の健康状態を推定するタスク等を挙げることができる。特徴を推定することには、未来の何らかの要素を予測することが含まれてよい。この場合、特徴は、未来に現れる要素の予兆を含んでよい。
 学習装置1は、取得された複数の第1学習データセット121を使用して、複数のニューラルネットワークの機械学習を実施する。本実施形態では、学習装置1は、複数のニューラルネットワークとして2つのニューラルネットワーク(50、51)の機械学習を実施する。以下では、説明の便宜上、それぞれを第1ニューラルネットワーク50及び第2ニューラルネットワーク51と称する。ただし、この第1のフェーズで機械学習の対象となるニューラルネットワークの数は、2つに限られなくてもよく、3つ以上であってもよい。
 各ニューラルネットワーク(50、51)は、入力側から出力側に並んで配置された複数の層を含むように構成される。そして、各ニューラルネットワーク(50、51)の複数の層は、最も出力側に配置された出力層及び出力層よりも入力側に配置される注目層を含むように構成される。各ニューラルネットワーク(50、51)の構造(例えば、層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等)及び種類それぞれは、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。2つのニューラルネットワーク(50、51)の構造は互いに異なっていてもよい。また、注目層は、出力層以外の層から適宜選択されてよい。注目層には、例えば、入力層、中間層等が選択されてよい。注目層には、中間層が選択されるのが好ましい。
 図1の例では、第1ニューラルネットワーク50は、最も入力側に配置された入力層501、最も出力側に配置された出力層507、及び中間層として配置された注目層503の少なくとも3つ以上の層を含んでいる。同様に、第2ニューラルネットワーク51は、最も入力側に配置された入力層511、最も出力側に配置された出力層517、及び中間層として配置された注目層513の少なくとも3つ以上の層を含んでいる。本実施形態では、後述するとおり、各ニューラルネットワーク(50、51)には、畳み込みニューラルネットワークが用いられる。また、各注目層(503、513)には、畳み込み層が選択される。
 学習装置1は、複数の第1学習データセット121を使用した機械学習において、第1訓練データ122を入力すると、第1正解データ123に適合する出力値が出力層(507、517)から出力されると共に、注目層(503、513)から出力される出力値が互いに適合するように、各ニューラルネットワーク(50、51)を訓練する。この機械学習により、各ニューラルネットワーク(50、51)は、第1訓練データ122と同種の未知の入力データに対して推定タスクを遂行可能に訓練されると共に、注目層(503、513)は、推定タスクを適切に遂行可能な入力データに対して同一又は近似する出力値を出力するように訓練される。前者の訓練のみでは、各ニューラルネットワーク(50、51)の注目層(503、513)の出力はばらつくのに対して、後者の訓練を更に実施することで、注目層(503、513)の出力は整合するようになる。
 これに対して、本実施形態に係るデータ生成装置2は、この注目層(503、513)の性質を利用して、新たな学習データセットを生成するように構成されたコンピュータである。具体的に、データ生成装置2は、複数の第1学習データセット121を使用した機械学習により、上記のとおり訓練された複数のニューラルネットワークを取得する。本実施形態では、データ生成装置2は、上記2つのニューラルネットワーク(50、51)を取得することができる。また、データ生成装置2は、複数件の第2訓練データ221を取得する。各件の第2訓練データ221は、上記第1訓練データ122と同種のデータである。本実施形態では、各件の第2訓練データ221は、正解データの付与されていない訓練データのサンプルである。
 続いて、本実施形態に係るデータ生成装置2は、訓練された各ニューラルネットワーク(50、51)に各件の第2訓練データ221を入力することで、各ニューラルネットワーク(50、51)の注目層(503、513)から出力値を取得する。データ生成装置2は、注目層(503、513)から取得された出力値に基づいて、各件の第2訓練データ221に対する各ニューラルネットワーク(50、51)の出力の不安定性を示す評価値222を算出する。
 各ニューラルネットワーク(50、51)は、上記のとおり、注目層(503、513)の出力が整合するように訓練されている。そのため、訓練データのサンプルを各ニューラルネットワーク(50、51)に与えたときに、注目層(503、513)の出力値がばらつく、すなわち、出力の不安定性が高いことは、各ニューラルネットワーク(50、51)がそのサンプルに対して十分な性能で推定タスクを遂行することができないことを示す。よって、そのサンプルは、推定タスクを遂行する推定器の性能向上に寄与する程度が高い、すなわち、正解データを付与する価値の高いものと推定される。
 そこで、本実施形態に係るデータ生成装置2は、不安定性が高いと判定するための条件を評価値222が満たす少なくとも1件以上の第2訓練データ223を複数件の第2訓練データ221から抽出する。更に、データ生成装置2は、抽出された少なくとも1件以上の第2訓練データ223それぞれに対して、第2訓練データ223に含まれる特徴(すなわち、第2訓練データ223に対する所定の推定タスクの正解)を示す第2正解データ225の入力を受け付ける。第2正解データ225は、第1正解データ123と同種のデータである。そして、データ生成装置2は、入力された第2正解データ225を対応する第2訓練データ223に付与することで、少なくとも1つ以上の第2学習データセット227を生成する。生成された各第2学習データセット227は、第2訓練データ223及び第2正解データ225の組み合わせにより構成される。
 なお、各ニューラルネットワーク(50、51)は、各第1学習データセット121について、第1訓練データ122が入力されると、第1正解データ123に適合する出力値を出力層(507、517)から出力するようにも訓練されている。そのため、上記の第2訓練データ223の抽出だけではなく、所定の推定タスクの遂行にも、各ニューラルネットワーク(50、51)を利用することができる。そのため、各ニューラルネットワーク(50、51)は、当該推定タスクの遂行にも利用されてよい。
 次に、第2のフェーズでは、本実施形態に係る学習装置1は、生成された少なくとも1つ以上の第2学習データセット227を取得する。そして、学習装置1は、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)の機械学習を再度実行してもよい。または、学習装置1は、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)とは別の学習モデルの教師あり学習を実施してもよい。教師あり学習により、学習済みの学習モデルは、学習済みの各ニューラルネットワーク(50、51)と同様に、所定の推定タスクの遂行に利用可能に構成される。
 これに対して、本実施形態に係る推定装置3は、学習装置1により構築された学習済みの学習モデルを推定器として利用し、対象データに対して所定の推定タスクを遂行するように構成されたコンピュータである。学習済みの学習モデルには、上記第1ニューラルネットワーク50、第2ニューラルネットワーク51、及び別の学習モデルのいずれが利用されてもよい。
 具体的に、推定装置3は、推定タスクを遂行する対象となる対象データを取得する。本実施形態では、推定装置3には、センサSが接続されている。推定装置3は、このセンサSから対象データを取得する。次に、推定装置3は、取得された対象データを学習済みの学習モデルに入力して、学習済みの学習モデルの演算処理を実行する。これにより、推定装置3は、対象データに含まれる特徴を推定した結果に対応する出力値を学習済みの学習モデルから取得する。そして、推定装置3は、推定の結果に関する情報を出力する。
 以上のとおり、本実施形態では、各ニューラルネットワーク(50、51)において、出力層(507、517)よりも入力側に配置された層が注目層(503、517)に選択される。各ニューラルネットワーク(50、51)の出力層(507、517)の形式は、習得させる推定タスクの種類に依存する。これに対して、各ニューラルネットワーク(50、51)の出力層(507、517)より入力側に配置される層の形式は、推定タスクの種類に依存せずに設定可能である。そこで、本実施形態では、各ニューラルネットワーク(50、51)において、出力層(507、517)よりも入力側に配置された出力層(507、517)の出力を利用して、各件の第2訓練データ221に対する出力の不安定性を評価する。
 ただし、機械学習において、第1訓練データ122の入力に対して、出力層(507、517)の出力値を第1正解データ123に適合させる訓練のみを実行した場合には、同一の入力データに対して、各注目層(503、513)の出力値はばらついてしまう。そこで、本実施形態では、機械学習において、当該訓練と共に、注目層(503、513)の出力値を互いに適合させる訓練を実行する。これにより、注目層(503、513)の出力が上記評価に利用可能となる。
 したがって、本実施形態では、出力形式の共通する層を注目層(503、513)に設定することで、各ニューラルネットワーク(50、51)に習得させるタスクの種類に依存せずに、共通の指標を用いて、各件の第2訓練データ221に対する各ニューラルネットワーク(50、51)の出力の不安定性を評価することができる。また、上記の注目層(503、513)の出力値を互いに適合させる訓練を実行しているため、その評価の結果に基づいて、推定器の性能向上に寄与する程度の高いと推定される第2訓練データ223を適切に抽出することができる。よって、本実施形態によれば、タスクの種類が異なるニューラルネットワークでも共通の指標を利用して、アクティブラーニングを実施することができるようになる。
 なお、図1の例では、学習装置1、データ生成装置2、及び推定装置3は、ネットワークを介して互いに接続されている。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。ただし、各装置1~3の間でデータをやりとりする方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、各装置1~3の間では、記憶媒体を利用して、データがやりとりされてよい。
 また、図1の例では、学習装置1、データ生成装置2、及び推定装置3は、それぞれ別個のコンピュータである。しかしながら、推定システム100の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、学習装置1、データ生成装置2、及び推定装置3のうちの少なくともいずれかのペアは一体のコンピュータであってよい。また、例えば、学習装置1、データ生成装置2、及び推定装置3のうちの少なくともいずれかは、複数台のコンピュータにより構成されてよい。
 §2 構成例
 [ハードウェア構成]
 <学習装置>
 次に、図2を用いて、本実施形態に係る学習装置1のハードウェア構成の一例について説明する。図2は、本実施形態に係る学習装置1のハードウェア構成の一例を模式的に例示する。
 図2に示されるとおり、本実施形態に係る学習装置1は、制御部11、記憶部12、通信インタフェース13、入力装置14、出力装置15、及びドライブ16が電気的に接続されたコンピュータである。なお、図2では、通信インタフェースを「通信I/F」と記載している。
 制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、学習プログラム81、第1データプール85、第1学習結果データ125、第2学習結果データ127等の各種情報を記憶する。
 学習プログラム81は、上記各フェーズの機械学習に関する後述の情報処理(図8、図9、及び図11)を学習装置1に実行させるためのプログラムである。学習プログラム81は、当該情報処理の一連の命令を含む。第1データプール85は、機械学習に利用されるデータセット(第1学習データセット121及び第2学習データセット227)を蓄積する。第1学習結果データ125は、第1のフェーズの機械学習により生成された学習済みの各ニューラルネットワーク(50、51)に関する情報を示す。第2学習結果データ127は、第2のフェーズの機械学習により生成された学習済みの学習モデルに関する情報を示す。各学習結果データ(125、127)は、学習プログラム81を実行した結果として得られる。詳細は後述する。
 通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。学習装置1は、この通信インタフェース13を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、データ生成装置2、推定装置3等)と行うことができる。
 入力装置14は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置15は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置14及び出力装置15を介して、学習装置1を操作することができる。入力装置14及び出力装置15は、タッチパネルディスプレイ等により一体的に構成されてもよい。
 ドライブ16は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ16の種類は、記憶媒体91の種類に応じて適宜選択されてよい。上記学習プログラム81及び第1データプール85の少なくともいずれかは、この記憶媒体91に記憶されていてもよい。
 記憶媒体91は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。学習装置1は、この記憶媒体91から、上記学習プログラム81及び第1データプール85の少なくともいずれかを取得してもよい。
 ここで、図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
 なお、学習装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、入力装置14、出力装置15及びドライブ16の少なくともいずれかは省略されてもよい。学習装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、学習装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC(Personal Computer)等であってもよい。
 <データ生成装置>
 次に、図3を用いて、本実施形態に係るデータ生成装置2のハードウェア構成の一例について説明する。図3は、本実施形態に係るデータ生成装置2のハードウェア構成の一例を模式的に例示する。
 図3に示されるとおり、本実施形態に係るデータ生成装置2は、制御部21、記憶部22、通信インタフェース23、入力装置24、出力装置25、及びドライブ26が電気的に接続されたコンピュータである。本実施形態に係るデータ生成装置2の制御部21~ドライブ26はそれぞれ、上記学習装置1の制御部11~ドライブ16それぞれと同様に構成されてよい。
 すなわち、制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部22は、データ生成プログラム82、第2データプール87、第1学習結果データ125等の各種情報を記憶する。
 データ生成プログラム82は、少なくとも1つ以上の第2学習データセット227を生成する後述の情報処理(図10)をデータ生成装置2に実行させるためのプログラムである。データ生成プログラム82は、当該情報処理の一連の命令を含む。第2データプール87は、正解データの付与されていない第2訓練データ221を蓄積する。詳細は後述する。
 通信インタフェース23は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。データ生成装置2は、この通信インタフェース23を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、学習装置1)と行うことができる。
 入力装置24は、例えば、マウス、キーボード等の入力を行うための装置である。出力装置25は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置24及び出力装置25を介して、データ生成装置2を操作することができる。入力装置24及び出力装置25は、タッチパネルディスプレイ等により一体的に構成されてもよい。
 ドライブ26は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体92に記憶されたプログラムを読み込むためのドライブ装置である。上記データ生成プログラム82、第2データプール87、及び第1学習結果データ125のうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、データ生成装置2は、記憶媒体92から、上記データ生成プログラム82、第2データプール87、及び第1学習結果データ125のうちの少なくともいずれかを取得してもよい。記憶媒体92の種類は、ディスク型であってもよいし、ディスク型以外であってもよい。
 なお、データ生成装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、入力装置24、出力装置25及びドライブ26の少なくともいずれかは省略されてもよい。データ生成装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、データ生成装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってもよい。
 <推定装置>
 次に、図4を用いて、本実施形態に係る推定装置3のハードウェア構成の一例について説明する。図4は、本実施形態に係る推定装置3のハードウェア構成の一例を模式的に例示する。
 図4に示されるとおり、本実施形態に係る推定装置3は、制御部31、記憶部32、通信インタフェース33、入力装置34、出力装置35、ドライブ36、及び外部インタフェース37が電気的に接続されたコンピュータである。なお、図4では、外部インタフェースを「外部I/F」と記載している。推定装置3の制御部31~ドライブ36はそれぞれ、上記学習装置1の制御部11~ドライブ16それぞれと同様に構成されてよい。
 すなわち、制御部31は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部32は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部32は、推定プログラム83、第2学習結果データ127等の各種情報を記憶する。
 推定プログラム83は、生成された学習済みの学習モデルを利用して、対象データに含まれる特徴を推定する後述の情報処理(図12)を推定装置3に実行させるためのプログラムである。推定プログラム83は、当該情報処理の一連の命令を含む。詳細は後述する。
 通信インタフェース33は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。推定装置3は、この通信インタフェース33を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、学習装置1)と行うことができる。
 入力装置34は、例えば、マウス、キーボード等の入力を行うための装置である。出力装置35は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置34及び出力装置35を介して、推定装置3を操作することができる。入力装置34及び出力装置35は、タッチパネルディスプレイ等により一体的に構成されてもよい。
 ドライブ36は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体93に記憶されたプログラムを読み込むためのドライブ装置である。上記推定プログラム83及び第2学習結果データ127のうちの少なくともいずれかは、記憶媒体93に記憶されていてもよい。また、推定装置3は、記憶媒体93から、上記推定プログラム83及び第2学習結果データ127のうちの少なくともいずれかを取得してもよい。記憶媒体93の種類は、ディスク型であってもよいし、ディスク型以外であってもよい。
 外部インタフェース37は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース37の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、推定装置3は、外部インタフェース37を介して、センサSに接続される。
 センサSは、推定タスクの対象となる対象データを取得するのに利用される。センサSの種類及び配置場所は、特に限定されなくてもよく、遂行する推定タスクの種類に応じて適宜決定されてよい。一例として、製造ラインで搬送される製品であって、画像に写る製品の外観検査を実施する場合には、センサSには、カメラが選択されてよく、そのカメラは、製造ラインにより搬送される製品を観測可能なように適宜配置されてよい。なお、センサSが通信インタフェースを備える場合、推定装置3は、外部インタフェース37ではなく、通信インタフェース33を介して、センサSに接続されてよい。
 なお、推定装置3の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部31は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部32は、制御部31に含まれるRAM及びROMにより構成されてもよい。通信インタフェース33、入力装置34、出力装置35、ドライブ36及び外部インタフェース37の少なくともいずれかは省略されてもよい。推定装置3は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、推定装置3は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってもよい。
 [ソフトウェア構成]
 <学習装置>
 次に、図5A及び図5Bを用いて、本実施形態に係る学習装置1のソフトウェア構成の一例について説明する。図5A及び図5Bは、本実施形態に係る学習装置1のソフトウェア構成の一例を模式的に例示する。
 学習装置1の制御部11は、記憶部12に記憶された学習プログラム81をRAMに展開する。そして、制御部11は、RAMに展開された学習プログラム81に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図5A及び図5Bに示されるとおり、本実施形態に係る学習装置1は、データ取得部111、学習処理部112、及び保存処理部113をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、学習装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
 (第1のフェーズ)
 図5Aに示されるとおり、第1のフェーズでは、データ取得部111は、第1訓練データ122、及び第1訓練データ122に含まれる特徴を示す第1正解データ123の組み合わせによりそれぞれ構成された複数の第1学習データセット121を取得する。データ取得部111は、本発明の「第1データ取得部」の一例である。本実施形態では、第1データプール85に学習データセットが蓄積されている。データ取得部111は、第1データプール85から複数の第1学習データセット121を取得することができる。
 学習処理部112は、取得された複数の第1学習データセット121を使用して、複数のニューラルネットワークの機械学習を実施する。本実施形態では、学習処理部112は、2つのニューラルネットワーク(50、51)の機械学習を実施する。各ニューラルネットワーク(50、51)は、入力側から出力側に並んで配置された複数の層を含んでいる。各ニューラルネットワーク(50、51)において、複数の層は、最も出力側に配置された出力層(507、517)及び出力層(507、517)よりも入力側に配置された注目層(503、513)を含んでいる。上記機械学習を実施することは、各第1学習データセット121について、各ニューラルネットワーク(50、51)に第1訓練データ122を入力すると、第1正解データ123に適合する出力値が出力層(507、517)から出力されると共に、注目層(503、513)から出力される出力値が互いに適合するように、各ニューラルネットワーク(50、51)を訓練することを含む。
 保存処理部113は、上記機械学習により構築された学習済みの各ニューラルネットワーク(50、51)に関する情報を第1学習結果データ125として生成する。そして、保存処理部113は、生成された第1学習結果データ125を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、記憶媒体91、外部記憶装置又はこれらの組み合わせであってよい。
 (ニューラルネットワーク)
 次に、各ニューラルネットワーク(50、51)の一例について説明する。本実施形態では、各ニューラルネットワーク(50、51)は、畳み込みニューラルネットワークである。
 畳み込みニューラルネットワークは、一般的に、畳み込み層、プーリング層、及び全結合層を備えている。畳み込み層は、与えられたデータに対する畳み込み演算を行う層である。畳み込み演算とは、与えられたデータと所定のフィルタとの相関を算出する処理に相当する。例えば、画像の畳み込みを行うことで、フィルタの濃淡パターンと類似する濃淡パターンを入力される画像から検出することができる。畳み込み層は、この畳み込み演算に対応するニューロンであって、入力又は自分の層よりも前(入力側)に配置された層の出力の一部の領域に結合するニューロンを備えている。プーリング層は、プーリング処理を行う層である。プーリング処理は、与えられたデータのフィルタに対する応答の強かった位置の情報を一部捨て、当該データ内に現れる特徴の微小な位置変化に対する応答の不変性を実現する。例えば、プーリング層では、フィルタ内の最も大きな値が抽出され、それ以外の値が削除される。全結合層は、1又は複数のニューロンを備え、隣接する層の間のニューロン全てを結合した層である。
 図5Aの例では、各ニューラルネットワーク(50、51)は、入力側から出力側に並んで配置された複数の層(501~507、511~517)を備えている。最も入力側には、入力層(501、511)が配置されている。入力層(501、511)は、畳み込み層である。この入力層(501、511)の出力は、プーリング層(502、512)の入力に接続されている。このように、畳み込み層とプーリング層とは交互に配置されてよい。或いは、複数の畳み込み層が連続して配置されてよい。畳み込みニューラルネットワークでは、1又は複数の畳み込み層及び1又は複数のプーリング層を含む部分を備え、この部分の出力が全結合層に入力される構造を採用することが多い。
 本実施形態では、この畳み込み層及びプーリング層が配置される部分において、注目層(503、513)は、中間層として配置されている。この注目層(503、513)は、畳み込み層である。この部分の最も出力側には、プーリング層(504、514)が配置されており、プーリング層(504、514)の出力が全結合層(506、516)の入力に接続されている。図5Aの例では、全結合層は2層であり、最も出力側に配置される全結合層が、出力層(507、517)である。
 出力層(507、517)の形式は、推定タスクの種類に応じて適宜選択されてよい。一例として、各ニューラルネットワーク(50、51)に分類タスクの遂行を習得させる場合には、出力層(507、517)は、各カテゴリの発生確率を出力するように構成されてよい。この場合、出力層(507、517)は、各カテゴリに対応するニューロンを含んでよい。この出力層(507、517)は、ソフトマックス層により構成されてよい。また、その他の例として、各ニューラルネットワーク(50、51)に回帰タスクの遂行を習得させる場合、出力層(507、517)は、回帰される値を出力するように構成されてよい。この場合、出力層(507、517)は、回帰される値の数に応じたニューロンを含んでよい。更に、その他の例として、各ニューラルネットワーク(50、51)にセグメンテーションの遂行を習得させる場合、出力層(507、517)は、抽出される範囲(例えば、中心位置及び画素数)を出力するように構成されてよい。この場合、出力層(507、517)は、この範囲を示す形式に応じたニューロンを含んでよい。
 なお、各ニューラルネットワーク(50、51)の構造は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。各ニューラルネットワーク(50、51)は、例えば、正規化層、ドロップアウト層等の上記の層以外の他の種類の層を備えてもよい。図5Aの例では、ニューラルネットワーク(50、51)の構造は同じであるが、ニューラルネットワーク(50、51)の構造は互いに相違していてもよい。
 各ニューラルネットワーク(50、51)の複数の層(501~507、511~517)は、演算に利用される演算パラメータを備えている。具体的には、隣接する層のニューロン同士は適宜結合され、各結合には重み(結合荷重)が設定されている。また、各層(501~507、511~517)に含まれる各ニューロンには閾値が設定されている。基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。つまり、各ニューラルネットワーク(50、51)の演算処理は、入力層(501、511)に入力データが入力されたときに、入力側から順に順伝播方向に、各層(501~507、511~517)に含まれる各ニューロンの発火判定を行うことにより構成される。各層(501~507、511~517)に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、演算パラメータの一例である。
 上記各ニューラルネットワーク(50、51)を訓練することは、各第1学習データセット121について、第1訓練データ122を入力層(501、511)に入力したときに、出力層(507、517)から出力される出力値と第1正解データ123との第1誤差が小さくなるように、かつ注目層(503、513)から出力される出力値の間の第2誤差が小さくなるように、各ニューラルネットワーク(50、51)の演算パラメータの値の調整を繰り返すことを備えてよい。
 この調整を繰り返す過程において、演算パラメータの値を更新する程度を学習率により調節することができる。各誤差に関する学習率は、適宜設定されてよい。学習率は、設定値として与えられてもよいし、オペレータの指定により与えられてもよい。また、例えば、出力層(507、517)から出力される出力値と第1正解データ123との第1誤差に関する学習率は一定に設定されてよい。一方、注目層(503、513)から出力される出力値の間の第2誤差に関する学習率は、演算パラメータの値の調整を繰り返す度に大きくなるように設定されてよい。
 なお、プーリング層(502、504、512、514)は、学習による調整の対象となる演算パラメータを有していない。このように、各ニューラルネットワーク(50、51)は、調整の対象とならない演算パラメータを有してもよい。
 また、畳み込み層の出力値は、特徴マップと称される。本実施形態において、各ニューラルネットワーク(50、51)の注目層(503、513)から出力される出力値が互いに適合することは、畳み込み層である注目層(503、513)より出力される特徴マップ(60、61)から導出されるアテンションマップ(62、63)が互いに一致することであってよい。すなわち、第2誤差は、アテンションマップ(62、63)の不一致性に基づいて算出されてよい。
 (第2のフェーズ)
 図5Bに示されるとおり、第2のフェーズでは、データ取得部111は、データ生成装置2により生成された少なくとも1つ以上の第2学習データセット227を取得する。学習処理部112は、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)の機械学習を再度実行してもよい。または、学習処理部112は、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)とは別の学習モデル52の教師あり学習を実施してもよい。教師あり学習は、機械学習の一種である。教師あり学習では、学習モデル52は、各訓練データ(122、223)の入力に対して、対応する各正解データ(123、225)に適合する出力値を出力するように訓練される。学習モデル52は、教師あり学習を実施可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。この学習モデル52には、例えば、ニューラルネットワーク、サポートベクタマシン、線形回帰モデル、決定木モデル等が用いられてよい。
 上記機械学習により、所定の推定タスクの遂行に利用可能な学習済みの学習モデルが構築される。この学習済みの学習モデルは、ニューラルネットワーク(50、51)及び学習モデル52のうちの少なくともいずれかである。保存処理部113は、この学習済みの学習モデルに関する情報を第2学習結果データ127として生成する。そして、保存処理部113は、生成された第2学習結果データ127を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、記憶媒体91、外部記憶装置又はこれらの組み合わせであってよい。第2学習結果データ127の保存先は、第1学習結果データ125の保存先と同じであってもよいし、異なっていてもよい。
 <データ生成装置>
 次に、図6を用いて、本実施形態に係るデータ生成装置2のソフトウェア構成の一例について説明する。図6は、本実施形態に係るデータ生成装置2のソフトウェア構成の一例について模式的に例示する。
 データ生成装置2の制御部21は、記憶部22に記憶されたデータ生成プログラム82をRAMに展開する。そして、制御部21は、RAMに展開されたデータ生成プログラム82に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図6に示されるとおり、本実施形態に係るデータ生成装置2は、モデル取得部211、データ取得部212、評価部213、抽出部214、生成部215、及び出力部216をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、データ生成装置2の各ソフトウェアモジュールも、上記学習装置1と同様に、制御部21(CPU)により実現される。
 モデル取得部211は、第1のフェーズで訓練された複数のニューラルネットワークを取得する。本実施形態では、モデル取得部211は、第1学習結果データ125を取得することで、訓練された上記2つのニューラルネットワーク(50、51)を取得することができる。データ取得部212は、複数件の第2訓練データ221を取得する。データ取得部212は、本発明の「第2データ取得部」の一例である。本実施形態では、第2データプール87に正解データの付与されていない訓練データが蓄積されている。データ取得部212は、第2データプール87から複数件の第2訓練データ221を取得することができる。
 評価部213は、第1学習結果データ125を保持することで、訓練された各ニューラルネットワーク(50、51)を備える。評価部213は、第1学習結果データ125を参照して、訓練された各ニューラルネットワーク(50、51)の設定を行う。評価部213は、訓練された各ニューラルネットワーク(50、51)に各件の第2訓練データ221を入力することで、各ニューラルネットワーク(50、51)の注目層(503、513)から出力値を取得する。評価部213は、注目層(503、513)から取得された出力値に基づいて、各件の第2訓練データ221に対する各ニューラルネットワーク(50、51)の出力の不安定性を示す評価値222を算出する。
 本実施形態では、各ニューラルネットワーク(50、51)は畳み込みニューラルネットワークであり、各注目層(503、513)は畳み込み層である。評価部213は、注目層(503、513)の出力値として特徴マップ(65、66)を取得することができる。評価部213は、特徴マップ(65、66)からアテンションマップ(67、68)を算出し、算出されたアテンションマップ(67、68)に基づいて、各件の第2訓練データ221に対する評価値222を算出することができる。
 抽出部214は、不安定性が高いと判定するための条件を評価値222が満たす少なくとも1件以上の第2訓練データ223を複数件の第2訓練データ221から抽出する。生成部215は、抽出された少なくとも1件以上の第2訓練データ223それぞれに対して、第2訓練データ223に含まれる特徴(すなわち、第2訓練データ223に対する所定の推定タスクの正解)を示す第2正解データ225の入力を受け付ける。そして、生成部215は、入力された第2正解データ225を対応する第2訓練データ223に付与することで、少なくとも1つ以上の第2学習データセット227を生成する。生成された各第2学習データセット227は、第2訓練データ223及び第2正解データ225の組み合わせにより構成される。
 出力部216は、生成された少なくとも1つ以上の第2学習データセット227を学習モデルの教師あり学習に使用可能に出力する。一例として、出力部216は、この出力処理において、第2学習データセット227を第1データプール85に格納してもよい。これにより、生成された第2学習データセット227は、学習モデルの教師あり学習に使用可能な状態で保存される。
 <推定装置>
 次に、図7を用いて、本実施形態に係る推定装置3のソフトウェア構成の一例について説明する。図7は、本実施形態に係る推定装置3のソフトウェア構成の一例を模式的に例示する。
 推定装置3の制御部31は、記憶部32に記憶された推定プログラム83をRAMに展開する。そして、制御部31は、RAMに展開された推定プログラム83に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図7に示されるとおり、本実施形態に係る推定装置3は、データ取得部311、推定部312、及び出力部313をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、推定装置3の各ソフトウェアモジュールも、上記学習装置1と同様に、制御部31(CPU)により実現される。
 データ取得部311は、対象データ321を取得する。推定部312は、第2学習結果データ127を保持することで、学習済みの学習モデル70を推定器として備える。学習済みの学習モデル70は、上記第2のフェーズの機械学習により訓練されたニューラルネットワーク(50、51)及び学習モデル52のうちの少なくともいずれかであってよい。推定部312は、第2学習結果データ127を参照して、学習済みの学習モデル70の設定を行う。
 推定部312は、取得された対象データ321を学習済みの学習モデル70に入力して、学習済みの学習モデル70の演算処理を実行する。これにより、推定部312は、対象データ321に含まれる特徴を推定した結果に対応する出力値を学習済みの学習モデル70から取得する。つまり、推定部312は、この演算処理により、学習済みの学習モデル70を利用して、対象データ321に対する推定タスクを遂行することができる。出力部313は、推定の結果に関する情報を出力する。
 なお、推定装置3で利用可能な学習済みの学習モデルは、第2のフェーズの機械学習により構築された学習済みの学習モデルに限られなくてもよく、第1のフェーズの機械学習により構築されたニューラルネットワーク(50、51)の少なくともいずれかであってよい。この場合、推定部312は、第1学習結果データ125を保持することで、学習済みのニューラルネットワーク(50、51)の少なくともいずれかを備える。推定部312は、この学習済みのニューラルネットワーク(50、51)の少なくともいずれかを利用して、対象データ321に対する推定タスクを遂行してもよい。
 <その他>
 学習装置1、データ生成装置2及び推定装置3の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、学習装置1、データ生成装置2及び推定装置3の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、学習装置1、データ生成装置2及び推定装置3それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
 §3 動作例
 (A)第1のフェーズにおける機械学習
 次に、図8を用いて、本実施形態に係る第1のフェーズにおける学習装置1の動作例について説明する。図8は、本実施形態に係る学習装置1の第1のフェーズにおける機械学習に関する処理手順の一例を示すフローチャートである。以下で説明する処理手順は、学習方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
 (ステップS101)
 ステップS101では、制御部11は、データ取得部111として動作し、複数の第1学習データセット121を取得する。各第1学習データセット121は、第1訓練データ122、及び当該第1訓練データ122に含まれる特徴を示す第1正解データ123の組み合わせにより構成される。本実施形態では、予め生成された学習データセットを蓄積する第1データプール85が記憶部12に保持されている。制御部11は、記憶部12の第1データプール85から複数の第1学習データセット121を取得する。
 ただし、第1データプール85の保存先は、記憶部12に限られなくてもよく、実施の形態に応じて適宜選択されてよい。第1データプール85は、例えば、記憶媒体91、外部記憶装置等に保持されていてもよい。外部記憶装置は、学習装置1に接続された外付けの記憶装置であってよい。或いは、外部記憶装置は、例えば、NAS(Network Attached Storage)等のデータサーバであってよい。また、第1データプール85は、他のコンピュータに保持されていてもよい。この場合、制御部11は、通信インタフェース13、ドライブ16等を介して、第1データプール85にアクセスし、複数の第1学習データセット121を取得することができる。
 また、第1学習データセット121の取得源は、第1データプール85に限られなくてもよい。例えば、制御部11は、第1学習データセット121を生成してもよい。或いは、制御部11は、他のコンピュータにより生成された第1学習データセット121を取得してもよい。制御部11は、少なくともいずれかにより、複数の第1学習データセット121を取得してもよい。
 なお、各第1学習データセット121を生成する方法は、第1訓練データ122の種類、及び学習モデルに習得させる推定タスクの種類(すなわち、第1正解データ123により示される情報)に応じて適宜選択されてよい。一例として、センサSと同種のセンサを用意し、用意したセンサにより様々な条件で観測を行うことで生成される各件のセンシングデータを第1訓練データ122として取得する。観測の対象は、学習モデルに習得させる推定タスクに応じて適宜選択されてよい。そして、得られた各件の第1訓練データ122に対して、当該各件の第1訓練データ122に現れる特徴を示す第1正解データ123を関連付ける。これにより、各第1学習データセット121を生成することができる。
 各第1学習データセット121は、コンピュータの動作により自動的に生成されてもよいし、オペレータの操作により手動的に生成されてもよい。また、各第1学習データセット121の生成は、学習装置1により行われてもよいし、学習装置1以外の他のコンピュータにより行われてもよい。各第1学習データセット121を学習装置1が生成する場合、制御部11は、自動的に又はオペレータの入力装置14を介した操作により手動的に上記一連の処理を実行することで、複数の第1学習データセット121を取得することができる。一方、各第1学習データセット121を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の第1学習データセット121を取得することができる。他のコンピュータでは、自動的に又はオペレータの操作により手動的に上記一連の処理を実行することで、複数の第1学習データセット121が生成されてよい。一部の第1学習データセット121が学習装置1により生成され、その他の第1学習データセット121が1又は複数の他のコンピュータにより生成されてよい。
 取得される第1学習データセット121の件数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。複数の第1学習データセット121を取得すると、制御部11は、次のステップS102に処理を進める。
 (ステップS102)
 ステップS102では、制御部11は、学習処理部112として動作し、取得された複数の第1学習データセット121を使用して、複数のニューラルネットワークの機械学習を実施する。本実施形態では、制御部11は、2つのニューラルネットワーク(50、51)の機械学習を実施する。
 各ニューラルネットワーク(50、51)は、入力側から出力側に並んで配置された複数の層(501~507、511~517)を含んでいる。複数の層(501~507、511~517)は、最も出力側に配置された出力層(507、517)及び出力層(507、517)よりも入力側に配置された注目層(503、513)を含んでいる。制御部11は、各第1学習データセット121の第1訓練データ122を入力データとして利用する。制御部11は、出力層(507、517)の出力に対して、第1正解データ123を教師データとして利用する。制御部11は、注目層(503、513)の出力に対して、当該注目層(503、513)の出力が一致することを教師データとして利用する。制御部11は、これらのデータに基づいて、各ニューラルネットワーク(50、51)の学習処理を実行する。この学習処理には、バッチ勾配降下法、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。
 <機械学習>
 ここで、図9を更に用いて、ステップS102における機械学習の処理の一例を詳細に説明する。図9は、本実施形態に係る学習装置1による機械学習の処理手順の一例を例示する。本実施形態に係るステップS102の処理は、以下のステップS201~ステップS206の処理を含む。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
 (ステップS201)
 ステップS201では、制御部11は、機械学習の処理対象となる各ニューラルネットワーク(50、51)を用意する。
 用意する各ニューラルネットワーク(50、51)の構造(例えば、層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等)、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。テンプレートは、ニューラルネットワークの構造に関する情報、及びニューラルネットワークの演算パラメータの初期値に関する情報を含んでよい。
 注目層は、テンプレートにおいて予め指定されていてもよいし、オペレータにより指定されてもよい。或いは、制御部11は、用意された各ニューラルネットワーク(50、51)内で出力形式が共通する層を特定し、特定された層から注目層を適宜決定してもよい。注目層を決定する基準は、任意に設定されてよい。注目層を決定する基準では、例えば、層の出力数、層の種類等の属性が指定されてよい。制御部11は、設定された基準に従って、特定された層から注目層を決定してもよい。
 また、再学習を行う場合には、制御部11は、過去の機械学習を行うことで得られた学習結果データに基づいて、処理対象となる各ニューラルネットワーク(50、51)を用意してもよい。
 処理対象の各ニューラルネットワーク(50、51)を用意すると、制御部11は、次のステップS202に処理を進める。
 (ステップS202)
 ステップS202では、制御部11は、各第1学習データセット121について、第1訓練データ122を入力層(501、511)に入力し、各ニューラルネットワーク(50、51)の演算処理を実行する。すなわち、制御部11は、入力側から順に、各層(501~507、511~517)に含まれる各ニューロンの発火判定を行う。この演算処理の結果、制御部11は、出力層(507、517)から、第1訓練データ122に対して推定タスクを遂行した結果に対応する出力値を取得することができる。また、この演算処理の過程で、入力層(501、511)から注目層(503、513)までの演算を実行することで、制御部11は、注目層(503、513)の出力値を取得することができる。注目層(503、513)及び出力層(507、517)それぞれからの出力値を取得すると、制御部11は、次のステップS203に処理を進める。
 (ステップS203)
 ステップS203では、制御部11は、各第1学習データセット121について、出力層(507、517)からの出力値と第1正解データ123との第1誤差を算出する。第1誤差の算出には、平均二乗誤差、交差エントロピー誤差等の公知の誤差関数が用いられてよい。誤差関数は、出力と教師データとの差分を評価する関数であり、当該差分が大きいほど、損失関数の値は大きくなる。制御部11は、第1誤差の勾配を算出し、誤差逆伝播(Back propagation)法により、算出された勾配を逆伝播することで、各層(501~507、511~517)に含まれる演算パラメータ(例えば、各ニューロン間の結合の重み、各ニューロンの閾値等)の誤差を算出する。そして、制御部11は、算出された各誤差に基づいて、演算パラメータの値を更新する。これにより、制御部11は、出力層(507、517)から出力される出力値と第1正解データ123の第1誤差が小さくなるように、各ニューラルネットワーク(50、51)の演算パラメータの値を調整する。
 第1誤差について、演算パラメータの値を更新する程度は、学習率により調節される。学習率は、機械学習において演算パラメータの値を更新する度合いを定める。学習率が大きいほど演算パラメータの更新量が大きくなり、学習率が小さいほど演算パラメータの更新量が小さくなる。この場合、制御部11は、学習率を各誤差に掛け合わせて得られた値により、演算パラメータの値を更新する。第1誤差に関する学習率は、適宜与えられてよい。第1誤差に関する学習率の初期値は、例えば、オペレータの指定により与えられてもよいし、設定値として与えられてもよい。第1誤差に基づいて、各ニューラルネットワーク(50、51)の演算パラメータの値の調整が完了すると、制御部11は、次のステップS204に処理を進める。
 (ステップS204)
 ステップS204では、制御部11は、各第1学習データセット121について、注目層(503、513)から出力される出力値の間の第2誤差を算出する。第2誤差の算出には、注目層(503、513)の出力形式に応じて、平均二乗誤差等の公知の誤差関数が用いられてよい。
 本実施形態では、注目層(503、513)は畳み込み層であり、制御部11は、ステップS202において、注目層(503、513)の出力値として特徴マップ(60、61)を取得することができる。制御部11は、特徴マップ(60、61)からアテンションマップ(62、63)を算出する。特徴マップからアテンションマップを算出する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
 例えば、制御部11は、特徴マップ(60、61)の各要素の絶対値をチャンネル方向に合計することで、アテンションマップ(62、63)を算出してもよい。入力データが画像データである場合、特徴マップ(60、61)の各要素は画素に対応する。特徴マップ(60、61)のチャンネル数は、畳み込み層によるフィルタの数及び入力データのチャンネル数に対応する。また、例えば、制御部11は、特徴マップ(60、61)の各要素の絶対値のn乗をチャンネル方向に合計することで、アテンションマップ(62、63)を算出してもよい。nは、任意の数であってよい。また、例えば、制御部11は、特徴マップ(60、61)の各要素の絶対値のn乗を算出し、算出されたn乗の値の最大値をチャンネル方向に抽出することで、アテンションマップ(62、63)を算出してもよい。この他、特徴マップからアテンションマップを算出する方法には、公知の方法が採用されてよい。
 続いて、制御部11は、算出されたアテンションマップ(62、63)の平均二乗誤差を算出することで、注目層(503、513)の出力値の間の第2誤差を算出することができる。なお、第2誤差を算出する方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、制御部11は、特徴マップ(60、61)から直接的に第2誤差を算出してもよい。
 次に、制御部11は、第2誤差の勾配を算出し、誤差逆伝播法により、算出された勾配を注目層(503、513)から入力層(501、511)の方に逆伝播することで、入力層(501、511)から注目層(503、513)までに含まれる演算パラメータの誤差を算出する。そして、制御部11は、算出された各誤差に基づいて、入力層(501、511)から注目層(503、513)までに含まれる演算パラメータの値を更新する。これにより、制御部11は、注目層(503、513)の出力値の間の第2誤差が小さくなるように(すなわち、アテンションマップ(62、63)が互いに一致する方向に)、各ニューラルネットワーク(50、51)の演算パラメータの値を調整する。
 なお、第2誤差による演算パラメータの調整は、このような例に限定されなくてもよく、必ずしも両方のニューラルネットワーク(50、51)において実行されなくてもよい。例えば、制御部11は、ステップS204において、2つのニューラルネットワーク(50、51)のうちの一方を基準にし、残りの方の演算パラメータのみを調整するようにしてもよい。すなわち、ステップS204では、制御部11は、ニューラルネットワーク(50、51)のうちの少なくともいずれかの入力層から注目層までに含まれる演算パラメータの値を調節する。3つ以上のニューラルネットワークが機械学習の処理の対象となる場合には、制御部11は、全てのニューラルネットワークの演算パラメータの値を調整してもよいしもよい。或いは、制御部11は、いずれか1つを基準にし、残りのニューラルネットワークの演算パラメータの値を調整するようにしてもよい。
 また、第2誤差について、第1誤差と同様に、演算パラメータの値を更新する程度は、学習率により調節される。第2誤差に関する学習率は、適宜与えられてよい。第2誤差に関する学習率は、例えば、オペレータの指定により与えられてもよいし、設定値として与えられてもよい。第2誤差に基づいて、演算パラメータの値の調整が完了すると、制御部11は、次のステップS205に処理を進める。
 (ステップS205及びS206)
 ステップS205では、制御部11は、機械学習の処理(すなわち、各ニューラルネットワーク(50、51)の演算パラメータの値の調整)を繰り返すか否かを判定する。
 繰り返すか否かを判定する基準は、適宜設定されてよい。例えば、機械学習を繰り返す規定回数が設定されてよい。規定回数は適宜与えられてよい。この規定回数は、例えば、設定値により与えられてもよいし、オペレータの指定により与えられてもよい。この場合、制御部11は、ステップS202~ステップS204の一連の処理を実行した回数が規定回数に到達したか否かを判定する。当該一連の処理を実行した回数が規定回数に到達していない場合、制御部11は、機械学習の処理を繰り返すと判定する。他方、当該一連の処理を実行した回数が規定回数に到達した場合、制御部11は、機械学習の処理を繰り返さないと判定する。
 また、例えば、上記各誤差が閾値以下になるまで、制御部11は、機械学習の処理を繰り返してもよい。この場合、上記各誤差が閾値を超えている場合、制御部11は、機械学習の処理を繰り返すと判定する。他方、上記各誤差が閾値以下である場合、制御部11は、機械学習の処理を繰り返さないと判定する。この閾値は、適宜設定されてよい。閾値は、例えば、設定値により与えられてもよいし、オペレータの指定により与えられてもよい。
 機械学習の処理を繰り返すと判定した場合、制御部11は、次のステップS206に処理を進める。一方、機械学習の処理を繰り返さないと判定した場合、制御部11は、機械学習の処理を終了する。
 ステップS206では、制御部11は、第2誤差に関する学習率の値を大きくする。学習率の増加量は、適宜決定されてよい。例えば、制御部11は、学習率の元の値に一定の値を加算することで、第2誤差に関する学習率の値を大きくしてもよい。また、例えば、制御部11は、実行回数が多いほど大きな値になるように実行回数と学習率の値との間の関係を規定した関数を利用して、学習率の値を決定してもよい。実行回数が多いほど、学習率の増加量が小さくなるように設定されてもよい。第2誤差に関する学習率の値を変更した後、制御部11は、ステップS202から処理を繰り返す。これにより、本実施形態では、第2誤差に関する学習率は、演算パラメータの値の調整を繰り返す度に大きくなるように設定される。
 機械学習の初期段階では、各ニューラルネットワーク(50、51)の注目層(503、513)の出力値は大きく相違する可能性がある。制御部11は、このステップS206により、第2誤差に関する学習率を徐々に大きな値にすることで、各ニューラルネットワーク(50、51)の注目層(503、513)の出力値を互いに適合させるための学習を適切に収束させることができる。
 ただし、第2誤差に関する学習率の設定は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、第2誤差に関する学習率の設定は、一定の値に設定されてもよい。この場合、本ステップS206の処理は省略されてよく、制御部11は、第2誤差に関する学習率の値を変更せずに、ステップS202から処理を繰り返してもよい。
 なお、第1誤差に関する学習率は適宜設定されてよい。制御部11は、第2誤差に関する学習率と同様に、第1誤差に関する学習率を、演算パラメータの値の調整を繰り返す度に大きくなるように設定してもよい。この場合、制御部11は、ステップS206の処理と同様に、第1誤差に関する学習率の値も大きくした後に、ステップS202から処理を繰り返す。或いは、第1誤差に関する学習率は、一定の値に設定されてもよい。この場合、第1誤差に関する学習率は一定の値のままで、制御部11は、ステップS202から処理を繰り返す。
 以上により、ステップS203及びステップS204の処理を繰り返した後、制御部11は、機械学習の処理を終了する。ステップS203の処理が繰り返されることで、各ニューラルネットワーク(50、51)は、各第1学習データセット121について、各ニューラルネットワーク(50、51)に第1訓練データ122を入力すると、第1正解データ123に適合する出力値が出力層(507、517)から出力されるように訓練される。加えて、ステップS204の処理が繰り返されることで、各ニューラルネットワーク(50、51)は、注目層(503、513)から出力される出力値が互いに適合するように訓練される。本実施形態では、各ニューラルネットワーク(50、51)は、注目層(503、513)より出力される特徴マップ(60、61)から導出されるアテンションマップ(62、63)が互いに一致するように訓練される。この「一致する」ことには、閾値以下の誤差が生じることが含まれてよい。機械学習の処理が完了すると、制御部11は、次のステップS103に処理を進める。
 なお、機械学習の処理は、このような例に限定されなくてもよく、実施の形態に応じて適宜変更されてよい。例えば、ステップS203及びステップS204の処理の順序は入れ替わってもよい。或いは、ステップS203及びステップS204の処理は並列に実行されてもよい。また、上記のようにステップS203及びステップS204の処理を繰り返し連続して実行するのではなく、又は繰り返し連続して実行すると共に、制御部11は、ステップS203及びステップS204の処理を単独で繰り返し実行してもよい。
 (ステップS103)
 図8に戻り、ステップS103では、制御部11は、保存処理部113として動作し、機械学習により構築された学習済みの各ニューラルネットワーク(50、51)に関する情報を第1学習結果データ125として生成する。第1学習結果データ125は、訓練された各ニューラルネットワーク(50、51)を再現可能に構成される。例えば、第1学習結果データ125は、各ニューラルネットワーク(50、51)の構造及び演算パラメータの値を示す情報を含んでよい。そして、制御部11は、生成された第1学習結果データ125を所定の記憶領域に保存する。
 所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、記憶媒体91、外部記憶装置又はこれらの組み合わせであってよい。外部記憶装置は、例えば、NAS等のデータサーバであってもよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに第1学習結果データ125を格納してもよい。また、外部記憶装置は、例えば、学習装置1に接続された外付けの記憶装置であってよい。第1学習結果データ125を保存すると、制御部11は、第1のフェーズにおける機械学習に関する一連の処理を終了する。
 (B)学習データセットの生成
 次に、図10を用いて、本実施形態に係るデータ生成装置2の動作例について説明する。図10は、本実施形態に係るデータ生成装置2による学習データセットの生成に関する処理手順の一例を示すフローチャートである。以下で説明する処理手順は、データ生成方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
 (ステップS301)
 ステップS301では、制御部21は、モデル取得部211として動作し、第1のフェーズで訓練された複数のニューラルネットワークを取得する。本実施形態では、制御部21は、第1学習結果データ125を取得することで、訓練された上記2つのニューラルネットワーク(50、51)を取得する。
 学習装置1により生成された第1学習結果データ125は、任意のタイミングでデータ生成装置2に提供されてよい。例えば、学習装置1の制御部11は、上記ステップS103の処理として又は上記ステップS103とは別に、第1学習結果データ125をデータ生成装置2に転送してもよい。制御部21は、この転送を受け付けることで、第1学習結果データ125を取得してもよい。また、例えば、制御部21は、通信インタフェース23を利用して、学習装置1又はデータサーバにネットワークを介してアクセスすることで、第1学習結果データ125を取得してもよい。また、例えば、制御部21は、記憶媒体92を介して、第1学習結果データ125を取得してもよい。本ステップS301を実行する前に、上記いずれかの取得処理により、第1学習結果データ125既に記憶部22に格納されていてもよい。この場合、制御部21は、記憶部22から第1学習結果データ125を取得してもよい。第1学習結果データ125を取得すると、制御部21は、次のステップS302に処理を進める。
 なお、第1学習結果データ125は、データ生成装置2に予め組み込まれていてもよい。この場合、ステップS301の処理は省略されてよい。また、データ生成装置2のソフトウェア構成からモデル取得部211は省略されてよい。
 (ステップS302)
 ステップS302では、制御部21は、データ取得部212として動作し、複数件の第2訓練データ221を取得する。第2訓練データ221は、第1訓練データ122と同種のデータである。本字氏形態では、正解データの付与されていない訓練データを蓄積する第2データプール87が記憶部22に保持されている。制御部21は、記憶部22の第2データプール87から複数件の第2訓練データ221を取得する。
 ただし、第2データプール87の保存先は、記憶部22に限られなくてもよく、実施の形態に応じて適宜選択されてよい。第2データプール87は、例えば、記憶媒体92、外部記憶装置等に保持されていてもよい。外部記憶装置は、データ生成装置2に接続された外付けの記憶装置であってもよい。或いは、外部記憶装置は、例えば、NAS等のデータサーバであってよい。また、第2データプール87は、他のコンピュータに保持されてもよい。この場合、制御部21は、通信インタフェース23、ドライブ26等を介して、第2データプール87にアクセスし、複数件の第2訓練データ221を取得することができる。
 また、第2訓練データ221の取得源は、第2データプール87に限られなくてもよい。例えば、制御部21は、第2訓練データ221を生成してもよい。或いは、制御部21は、他のコンピュータにより生成された第2訓練データ221を取得してもよい。この場合、制御部21は、例えば、ネットワーク、記憶媒体92等を介して、他のコンピュータにより生成された第2訓練データ221を取得することができる。制御部21は、少なくともいずれかにより、複数件の第2訓練データ221を取得してもよい。
 なお、第2訓練データ221を生成する方法は、上記第1訓練データ122を生成する方法と同様であってよい。第2訓練データ221は、コンピュータの動作により自動的に生成されてもよいし、オペレータの操作により手動的に生成されてもよい。複数件の第2訓練データ221のうちの一部をデータ生成装置2が生成し、残りを他のコンピュータが生成してもよい。
 取得される第2訓練データ221の件数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。複数件の第2訓練データ221を取得すると、制御部21は、次のステップS303に処理を進める。
 (ステップS303)
 ステップS303では、制御部21は、評価部213として動作し、第1学習結果データ125を参照して、訓練された各ニューラルネットワーク(50、51)の設定を行う。そして、制御部21は、訓練された各ニューラルネットワーク(50、51)の入力層(501、511)に各件の第2訓練データ221を入力し、各ニューラルネットワーク(50、51)の注目層(503、513)までの演算処理を実行する。すなわち、制御部21は、各件の第2訓練データ221を入力層(501、511)に入力し、入力側から順に、入力層(501、511)から注目層(503、513)までに含まれる各ニューロンの発火判定を行う。これにより、制御部21は、各ニューラルネットワーク(50、51)の注目層(503、513)から出力値を取得する。注目層(503、513)からの出力値を取得すると、制御部21は、次のステップS304に処理を進める。
 (ステップS304)
 ステップS304では、制御部21は、評価部213として動作し、取得された出力値に基づいて、各件の第2訓練データ221に対する各ニューラルネットワーク(50、51)の出力の不安定性を示す評価値222を算出する。
 注目層(503、513)の出力値と評価値222との間の関係は、獲得関数により数学的に記述されてよい。獲得関数は、注目層(503、513)の出力値のばらつきが大きいほど、算出される評価値222が高い不安定性を示すように適宜定義されてよい。制御部21は、注目層(503、513)から取得された出力値を獲得関数に代入することで、各件の第2訓練データ221に対する評価値222を算出することができる。
 一例として、本実施形態では、注目層(503、513)は畳み込み層であり、注目層(503、513)の出力値は、特徴マップ(65、66)として取得される。制御部21は、特徴マップ(65、66)からアテンションマップ(67、68)を算出する。アテンションマップ(67、68)を算出する方法は、上記アテンションマップ(62、63)を算出する方法と同様であってよい。
 続いて、制御部21は、全ての要素の総和が1になるように、アテンションマップ(67、68)を正規化する。正規化されたアテンションマップ(67、68)は、ソフトマックス関数の出力と同様の性質を有する。そのため、制御部21は、ソフトマックス関数の出力に利用される獲得関数を、正規化されたアテンションマップ(67、68)に適用してもよい。例えば、制御部21は、以下の式1~式3のH、I、及びVのいずれかを評価値222として算出してもよい。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
Figure JPOXMLDOC01-appb-M000003
 なお、sは、アテンションマップの各要素を示し、iは、アテンションマップの各要素の値を示す。p(s=i|x,wt)は、アテンションマップの各要素が値iである確率を示す。xは、入力データ(すなわち、第2訓練データ221)を示し、wtは、各ニューラルネットワークを示す。Sはアテンションマップの要素数を示す。tは、ニューラルネットワークのインデックスを示し、Tは、ニューラルネットワークの数(本実施形態では、2)を示す。オーバーラインは、平均値を示す。ただし、評価値222を算出する方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。各件の第2訓練データ221に対する評価値222を算出すると、制御部21は、次のステップS305に処理を進める。
 (ステップS305)
 ステップS305では、制御部21は、抽出部214として動作し、不安定性が高いと判定するための条件を評価値222が満たす少なくとも1件以上の第2訓練データ223を複数件の第2訓練データ221から抽出する。
 第2訓練データ223を抽出するための条件は、特に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。例えば、制御部21は、不安定性の最も高いものから任意数の第2訓練データ223を複数件の第2訓練データ221から抽出してもよい。この場合、抽出する数は、設定値として与えられてもよいし、オペレータの指定により与えられてよい。また、例えば、制御部21は、評価値222と閾値とを比較し、不安定性が閾値を超える第2訓練データ223を複数件の第2訓練データ221から抽出してもよい。この場合、閾値は、設定値として与えられてもよいし、オペレータの指定により与えられてもよい。少なくとも1件以上の第2訓練データ223を抽出すると、制御部21は、次のステップS306に処理を進める。
 (ステップS306)
 ステップS306では、制御部21は、生成部215として動作し、抽出された少なくとも1件以上の第2訓練データ223それぞれに対して、第2訓練データ223に含まれる特徴(すなわち、第2訓練データ223に対する所定の推定タスクの正解)を示す第2正解データ225の入力を受け付ける。続いて、制御部21は、入力された第2正解データ225を対応する第2訓練データ223に関連付ける。これにより、制御部21は、第2訓練データ223及び第2正解データ225の組み合わせによりそれぞれ構成される少なくとも1つ以上の第2学習データセット227を生成する。
 第2正解データ225の入力を受け付ける方法は、特に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。例えば、制御部21は、入力装置24を介してオペレータの入力を受け付けてもよい。また、例えば、第2訓練データ223と同種のデータに対して同種の推定タスクを遂行する推定器が存在する場合には、制御部21は、この推定器の推定結果の入力を受け付けてもよい。すなわち、制御部21は、この推定器を利用して、第2訓練データ223に対して所定の推定タスクを遂行した結果を第2正解データ225として取得してもよい。この推定器の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。この推定器は、例えば、学習済みの学習モデル70と同様であってよい。少なくとも1つ以上の第2学習データセット227を生成すると、制御部21は、次のステップS307に処理を進める。
 (ステップS307)
 ステップS307では、制御部21は、出力部216として動作し、生成された少なくとも1つ以上の第2学習データセット227を学習モデルの教師あり学習に使用可能に出力する。
 出力方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。一例として、制御部21は、この出力処理において、生成された第2学習データセット227を第1データプール85に格納してもよい。これにより、生成された第2学習データセット227は、学習装置1により学習モデルの教師あり学習に使用可能な状態で保存される。その他の例として、制御部21は、この出力処理において、生成された第2学習データセット227を、学習モデルの教師あり学習を実行するコンピュータに対して送信してもよい。また、その他の例として、制御部21は、生成された第2学習データセット227を、学習モデルの教師あり学習を実行するコンピュータが取得可能な状態で、所定の記憶領域に保存してもよい。所定の記憶領域は、例えば、制御部21内のRAM、記憶部22、記憶媒体92、外部記憶装置又はこれらの組み合わせであってよい。外部記憶装置は、例えば、NAS等のデータサーバであってもよいし、データ生成装置2に接続された外付けの記憶装置であってもよい。生成された少なくとも1つ以上の第2学習データセット227を出力すると、制御部21は、学習データセットの生成に関する一連の処理を終了する。
 (C)第2のフェーズにおける機械学習
 次に、図11を用いて、本実施形態に係る第2のフェーズにおける学習装置1の動作例について説明する。図11は、本実施形態に係る学習装置1の第2のフェーズにおける機械学習に関する処理手順の一例を示すフローチャートである。以下で説明する処理手順は、学習方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。学習方法には、上記第1のフェーズの学習方法及びデータ生成方法が更に含まれてもよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
 (ステップS501)
 ステップS501では、制御部11は、データ取得部111として動作し、データ生成装置2により生成された少なくとも1つ以上の第2学習データセット227を取得する。
 本実施形態では、制御部11は、上記ステップS307の処理の後、第1データプール85から少なくとも1つ以上の第2学習データセット227を取得することができる。ただし、第2学習データセット227の取得先は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部11は、データ生成装置2から直接的に又は間接的に第2学習データセット227を取得してもよい。
 更に、制御部11は、上記ステップS101と同様に、複数の1つ以上の第1学習データセット121を取得する。各学習データセット(121、227)を取得すると、制御部11は、次のステップS502に処理を進める。
 (ステップS502)
 ステップS502では、制御部11は、学習処理部112として動作し、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、学習モデルの機械学習を実施する。
 制御部11は、ステップS502の処理として、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)の機械学習を再度実行してもよい。この再学習において、複数のニューラルネットワークのうちの少なくともいずれかの機械学習が省略されてもよい。本実施形態では、2つのニューラルネットワーク(50、51)のうちの少なくとも一方の機械学習が省略されてもよい。
 また、この再学習において、第1のフェーズのステップS102と同様に、各訓練データ(122、223)の入力に対して、出力層(507、517)の出力値を各正解データ(123、225)に適合させる訓練(ステップS203)、及び注目層(503、513)の出力値を互いに適合させる訓練(ステップS204)の両方が実行されてもよい。或いは、前者の訓練のみが実行され、後者の訓練は省略されてよい。つまり、出力層(507、517)の出力値を各正解データ(123、225)に適合させる訓練のみが実行されてよい。
 または、制御部11は、ステップS502の処理として、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)とは別の学習モデル52の教師あり学習を実施してもよい。この学習モデル52は、教師あり学習を実施可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。この学習モデル52には、ニューラルネットワークの他、例えば、サポートベクタマシン、線形回帰モデル、決定木モデル等が用いられてよい。学習モデル52にニューラルネットワークを採用する場合、学習モデル52の構造は、各ニューラルネットワーク(50、51)のいずれかと同じであってもよいし、ニューラルネットワーク(50、51)の両方と相違してもよい。
 教師あり学習では、学習モデル52は、各学習データセット(121、227)について、各訓練データ(122、223)の入力に対して、対応する各正解データ(123、225)に適合する出力値を出力するように訓練される。教師あり学習の方法は、学習モデル52の種類に応じて適宜選択されてよい。教師あり学習の方法には、誤差逆伝播法、回帰分析、ランダムフォレスト等の公知の方法が採用されてよい。これにより、学習済みの学習モデル52は、学習済みの各ニューラルネットワーク(50、51)と同様に、所定の推定タスクの遂行に利用可能に訓練される。
 上記機械学習により、学習済みの学習モデルが構築される。この学習済みの学習モデルは、ニューラルネットワーク(50、51)及び学習モデル52のうちの少なくともいずれかである。機械学習の処理が完了すると、制御部11は、次のステップS503に処理を進める。
 (ステップS503)
 ステップS503では、制御部11は、保存処理部113として動作し、上記学習済みの学習モデルに関する情報を第2学習結果データ127として生成する。第2学習結果データ127は、ステップS502の処理により構築された学習済みの学習モデルを再現可能に構成される。例えば、第2学習結果データ127は、学習済みの学習モデルの構造及び演算パラメータの値を示す情報を含んでよい。そして、制御部11は、生成された第2学習結果データ127を所定の記憶領域に保存する。
 所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、記憶媒体91、外部記憶装置又はこれらの組み合わせであってよい。外部記憶装置は、例えば、NAS等のデータサーバであってもよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに第2学習結果データ127を格納してもよい。また、外部記憶装置は、例えば、学習装置1に接続された外付けの記憶装置であってよい。第2学習結果データ127の保存先は、第1学習結果データ125の保存先と同じであってもよいし、異なっていてもよい。第2学習結果データ127を保存すると、制御部11は、第2のフェーズにおける機械学習に関する一連の処理を終了する。
 なお、生成された第2学習結果データ127は、任意のタイミングで推定装置3に提供されてよい。例えば、制御部11は、ステップS503の処理として又はステップS503の処理とは別に、第2学習結果データ127を推定装置3に転送してもよい。推定装置3は、この転送を受け付けることで、第2学習結果データ127を取得してもよい。また、例えば、推定装置3は、通信インタフェース33を利用して、学習装置1又はデータサーバにネットワークを介してアクセスすることで、第2学習結果データ127を取得してもよい。また、例えば、推定装置3は、記憶媒体93を介して、第2学習結果データ127を取得してもよい。第2学習結果データ127は、推定装置3に予め組み込まれてもよい。
 また、ステップS502において、上記ステップS102と同様に、各ニューラルネットワーク(50、51)の再学習を実施した場合、生成された第2学習結果データ127は、任意のタイミングでデータ生成装置2に提供されてよい。これにより、再学習された各ニューラルネットワーク(50、51)が、上記学習データセットの生成処理に利用されてよい。この学習データセットの生成処理と各ニューラルネットワーク(50、51)の再学習の処理とは交互に繰り返し実行されてよい。
 (D)推定タスクの遂行
 次に、図12を用いて、本実施形態に係る推定装置3の動作例について説明する。図12は、本実施形態に係る推定装置3の処理手順の一例を示すフローチャートである。以下で説明する処理手順は、推定方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。推定方法には、上記学習方法及びデータ生成方法が更に含まれてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
 (ステップS701)
 ステップS701では、制御部31は、データ取得部311として動作し、推定タスクを遂行する対象となる対象データ321を取得する。本実施形態では、推定装置3は、外部インタフェース37を介してセンサSに接続されている。そのため、制御部31は、外部インタフェース37を介して、センサSにより生成されるセンシングデータを対象データ321として取得する。
 ただし、対象データ321を取得する経路は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、推定装置3とは異なる他のコンピュータにセンサSが接続されていてもよい。この場合、制御部31は、他のコンピュータから対象データ321の送信を受け付けることで、対象データ321を取得してもよい。対象データ321を取得すると、制御部31は、次のステップS702に処理を進める。
 (ステップS702)
 ステップS702では、制御部31は、推定部312として動作し、学習済みの学習モデル70を利用して、取得された対象データ321に含まれる特徴を推定する。
 本実施形態では、学習済みの学習モデル70は、上記第2のフェーズの機械学習により訓練されたニューラルネットワーク(50、51)及び学習モデル52のうちの少なくともいずれかである。制御部31は、第2学習結果データ127を参照して、学習済みの学習モデル70の設定を行う。そして、制御部31は、取得された対象データ321を学習済みの学習モデル70に入力して、学習済みの学習モデル70の演算処理を実行する。演算処理は、学習済みの学習モデル70の種類に応じて適宜選択されてよい。これにより、制御部31は、対象データ321に含まれる特徴を推定した結果に対応する出力値を学習済みの学習モデル70から取得する。つまり、制御部31は、この演算処理により、対象データ321に含まれる特徴を推定することができる。対象データ321に含まれる特徴の推定が完了すると、制御部31は、次のステップS703に処理を進める。
 (ステップS703)
 ステップS703では、制御部31は、出力部313として動作し、推定の結果に関する情報を出力する。
 出力先及び出力する情報の内容はそれぞれ、実施の形態に応じて適宜決定されてよい。例えば、制御部31は、対象データ321に含まれる特徴を推定した結果をそのまま出力装置35に出力してもよい。また、例えば、制御部31は、推定の結果に基づいて、何らかの情報処理を実行してもよい。そして、制御部31は、その情報処理を実行した結果を推定の結果に関する情報として出力してもよい。この情報処理を実行した結果の出力には、推定の結果に応じて警告等の特定のメッセージを出力すること、推定の結果に応じて制御対象装置の動作を制御すること等が含まれてよい。出力先は、例えば、出力装置35、制御対象装置等であってよい。推定の結果に関する情報の出力が完了すると、制御部31は、学習済みの学習モデル70を利用した推定処理に関する一連の処理を終了する。
 なお、推定装置3で利用可能な学習済みの学習モデルは、第2のフェーズの機械学習により構築された学習済みの学習モデル70に限られなくてもよい。第1のフェーズの機械学習により構築されたニューラルネットワーク(50、51)の少なくともいずれかが推定装置3で利用されてもよい。この場合、第1のフェーズで生成された第1学習結果データ125が、任意のタイミングで推定装置3に提供されてよい。或いは、第1学習結果データ125は、推定装置3に予め組み込まれてもよい。これにより、推定装置3は、上記学習済みの学習モデル70の代わりに、第1のフェーズで学習済みのニューラルネットワーク(50、51)の少なくともいずれかを利用して、上記ステップS701~ステップS703の処理を実行してもよい。
 [特徴]
 以上のとおり、本実施形態では、各ニューラルネットワーク(50、51)において、出力層(507、517)よりも入力側に配置された層が注目層(503、517)に選択される。各ニューラルネットワーク(50、51)の出力層(507、517)の形式は、習得させる推定タスクの種類に依存する。これに対して、各ニューラルネットワーク(50、51)の出力層(507、517)より入力側に配置される層の形式は、推定タスクの種類に依存せずに設定可能である。
 ただし、ステップS102の機械学習において、第1訓練データ122の入力に対して、出力層(507、517)の出力値を第1正解データ123に適合させる訓練(ステップS203)のみを実行した場合には、同一の入力データに対して、各注目層(503、513)の出力値はばらついてしまう。そこで、本実施形態では、ステップS102の機械学習において、ステップS203の訓練と共に、ステップS204による注目層(503、513)の出力値を互いに適合させる訓練を実行する。これにより、ステップS304及びステップS305において、注目層(503、513)の出力値に基づいて、各件の第2訓練データ221に対する出力の不安定性を適切に評価することができるようになる。
 したがって、本実施形態では、出力形式の共通する層を注目層(503、513)に設定することで、各ニューラルネットワーク(50、51)に習得させるタスクの種類に依存せずに、共通の指標を用いて、各件の第2訓練データ221に対する各ニューラルネットワーク(50、51)の出力の不安定性を評価することができる。つまり、各ニューラルネットワーク(50、51)の出力層(507、517)の出力形式を推定タスクの種類に応じて変更した場合でも、ステップS304において、獲得関数を変更せずに、各件の第2訓練データ221に対する出力の不安定性を評価することができる。また、ステップS204により、注目層(503、513)の出力値を互いに適合させる訓練を実行しているため、ステップS305では、その評価の結果に基づいて、推定器の性能向上に寄与する程度の高いと推定される第2訓練データ223を適切に抽出することができる。よって、本実施形態によれば、タスクの種類が異なるニューラルネットワークでも共通の指標を利用して、アクティブラーニングを実施することができるようになる。
 また、本実施形態に係る学習装置1は、第2のフェーズにおいて、アクティブラーニングにより抽出された第2訓練データ223を更に使用して、より性能の高い学習済みの学習モデルを効率的に生成することができる。そして、本実施形態に係る推定装置3は、第2のフェーズにより生成された学習済みの学習モデルを利用することで、所定の推定タスクを精度よく遂行することができる。
 §4 変形例
 以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
 <4.1>
 上記実施形態に係る推定システム100は、センサSにより得られるセンシングデータに含まれる特徴を推定する場面に適用されている。しかしながら、上記実施形態の適用範囲は、このような例に限定される訳ではない。上記実施形態は、任意の種類のデータに対して任意の推定タスクを遂行するあらゆる場面に適用可能である。以下、適用場面を限定した変形例を例示する。
 (A)外観検査の場面
 図13は、第1変形例に係る検査システム100Aの適用場面の一例を模式的に例示する。本変形例は、製造ラインで搬送される製品Rの外観検査を行う場面に上記実施形態を適用した例である。図13に示されるとおり、本実施形態に係る検査システム100Aは、学習装置1、データ生成装置2、及び検査装置3Aを備えている。上記実施形態と同様に、学習装置1、データ生成装置2、及び検査装置3Aは、ネットワークを介して互いに接続されてよい。
 本変形例に係る検査システム100Aは、取り扱うデータが異なる点を除き、上記実施形態と同様に構成されてよい。上記実施形態と同様に、学習装置1は、第1のフェーズにおいて、複数の第1学習データセット121を使用して、各ニューラルネットワーク(50、51)の機械学習を実施する。データ生成装置2は、第1のフェーズの機械学習で訓練された各ニューラルネットワーク(50、51)を利用して、少なくとも1つ以上の第2学習データセット227を生成する。学習装置1は、第2のフェーズにおいて、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)の再学習又は新たな学習モデル52の教師あり学習を実施する。
 各訓練データ(122、223)は、製品Rの写る画像データである。製品Rは、例えば、電子機器、電子部品、自動車部品、薬品、食品等であってよい。電子部品は、例えば、基盤、チップコンデンサ、液晶、リレーの巻線等であってよい。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等であってよい。薬品は、例えば、包装済みの錠剤、未包装の錠剤等であってよい。製品Rは、製造過程完了後に生成される最終品であってもよいし、製造過程の途中で生成される中間品であってもよいし、製造過程を経過する前に用意される初期品であってもよい。
 各訓練データ(122、223)は、カメラSA又はこれと同種のカメラにより製品Rを撮影することで得られる。カメラの種類は、特に限定されなくてもよい。カメラには、例えば、RGB画像を取得するよう構成された一般的なデジタルカメラ、深度画像を取得するように構成された深度カメラ、赤外線量を画像化するように構成された赤外線カメラ等が用いられてよい。
 各訓練データ(122、223)に含まれる特徴は、製品Rの状態に関する。製品Rの状態は、例えば、傷、汚れ、クラック、打痕、バリ、色ムラ、異物混入等の欠陥の有無に関するものであってよい。これに応じて、各正解データ(123、225)は、例えば、製品Rに欠陥が含まれるか否か、製品Rに含まれる欠陥の種類、製品Rに含まれる欠陥の範囲等を示すように構成されてよい。各正解データ(123、225)は、オペレータの入力により得られてもよい。また、画像データに写る製品Rの状態を推定するように訓練された推定器を利用して、各訓練データ(122、223)に写る製品Rの状態を推定した結果が各正解データ(123、225)として取得されてもよい。
 第2のフェーズでは、学習装置1は、上記各訓練データ(122、223)及び各正解データ(123、225)を使用して、学習モデル(各ニューラルネットワーク(50、51)及び学習モデル52の少なくともいずれか)の機械学習を実施する。これにより、学習モデルは、画像データに写る製品の状態を推定するタスクを遂行可能に構成される。学習装置1は、上記ステップS503の処理により、当該学習済みの学習モデルに関する情報を第2学習結果データ127Aとして生成し、生成された第2学習結果データ127Aを所定の記憶領域に保存する。
 検査装置3Aは、上記推定装置3に対応する。検査装置3Aは、取り扱うデータが異なる点を除き、上記推定装置3と同様に構成されてよい。第2学習結果データ127Aは、任意のタイミングで検査装置3Aに提供されてよい。本変形例では、検査装置3Aは、カメラSAに接続される。検査装置3Aは、カメラSAにより製品Rを撮影することで、当該製品Rの写る対象画像データを取得する。検査装置3Aは、学習装置1により構築された学習済みの学習モデルを利用して、取得された対象画像データに基づいて、製品Rの状態を推定する。
 <検査装置のハードウェア構成>
 図14Aは、本変形例に係る検査装置3Aのハードウェア構成の一例を模式的に例示する。図14Aに示されるとおり、本変形例に係る検査装置3Aは、上記推定装置3と同様に、制御部31、記憶部32、通信インタフェース33、入力装置34、出力装置35、ドライブ36、及び外部インタフェース37が電気的に接続されたコンピュータである。検査装置3Aは、外部インタフェース37を介してカメラSAに接続される。カメラSAは、製品Rを撮影可能な場所に適宜配置されてよい。例えば、カメラSAは、製品Rを搬送するコンベア装置の近傍に配置されてよい。ただし、検査装置3Aのハードウェア構成は、このような例に限定されなくてもよい。検査装置3Aの具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。検査装置3Aは、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC、PLC(programmable logic controller)等であってもよい。
 本変形例に係る検査装置3Aの記憶部32は、検査プログラム83A、第2学習結果データ127A等の各種情報を記憶する。検査プログラム83A及び第2学習結果データ127Aは、上記実施形態に係る推定プログラム83及び第2学習結果データ127に対応する。検査プログラム83A及び第2学習結果データ127Aのうちの少なくともいずれかは、記憶媒体93に記憶されていてもよい。また、検査装置3Aは、記憶媒体93から、検査プログラム83A及び第2学習結果データ127Aのうちの少なくともいずれかを取得してもよい。
 <検査装置のソフトウェア構成及び動作例>
 図14Bは、本変形例に係る検査装置3Aのソフトウェア構成の一例を模式的に例示する。上記実施形態と同様に、検査装置3Aのソフトウェア構成は、制御部31による検査プログラム83Aの実行により実現される。図14Bに示されるとおり、取り扱うデータがセンシングデータから画像データに置き換わる点を除き、検査装置3Aのソフトウェア構成は、上記推定装置3のソフトウェア構成と同様である。これにより、検査装置3Aは、上記推定装置3の推定処理と同様に、検査処理に関する一連の処理を実行する。
 すなわち、ステップS701では、制御部31は、データ取得部311として動作し、外観検査の対象となる製品Rの写る対象画像データ321AをカメラSAから取得する。ステップS702では、制御部31は、推定部312として動作し、学習済みの学習モデル70Aを利用して、取得された対象画像データ321Aに写る製品Rの状態を推定する。具体的には、制御部31は、第2学習結果データ127Aを参照して、学習済みの学習モデル70Aの設定を行う。学習済みの学習モデル70Aは、上記第2のフェーズの機械学習により訓練されたニューラルネットワーク(50、51)及び学習モデル52のうちの少なくともいずれかである。制御部31は、取得された対象画像データ321Aを学習済みの学習モデル70Aに入力して、学習済みの学習モデル70Aの演算処理を実行する。これにより、制御部31は、対象画像データ321Aに写る製品Rの状態を推定した結果に対応する出力値を学習済みの学習モデル70Aから取得する。
 ステップS703では、制御部31は、出力部313として動作し、製品Rの状態を推定した結果に関する情報を出力する。出力先及び出力情報はそれぞれ、上記実施形態と同様に、実施の形態に応じて適宜決定されてよい。例えば、制御部31は、製品Rの状態を推定した結果をそのまま出力装置35に出力してもよい。また、例えば、制御部31は、製品Rに欠陥が含まれる場合に、そのことを知らせるための警告を出力装置35に出力してもよい。また、例えば、検査装置3Aが製品Rを搬送するコンベア装置(不図示)に接続される場合、製品Rの状態を推定した結果に基づいて、欠陥のない製品Rと欠陥のある製品Rとを別のラインで搬送されるようにコンベア装置を制御してもよい。
 本変形例によれば、外観検査に利用する推定器を構築する場面において、タスクの種類が異なるニューラルネットワークでも共通の指標を利用して、アクティブラーニングを実施することができるようになる。また、アクティブラーニングにより抽出された第2訓練データ223を更に使用して、より性能の高い学習済みの学習モデルを効率的に生成することができる。検査装置3Aは、これにより生成された学習済みの学習モデルを利用することで、製品Rの外観検査を精度よく遂行することができる。
 (B)対象者の状態を推定する場面
 図15は、第2変形例に係る監視システム100Bの適用場面の一例を模式的に例示する。本変形例は、対象者の状態を推定する場面に上記実施形態を適用した例である。図15では、対象者の状態を予測する場面の一例として、車両の運転者RBの状態を監視する場面が例示されている。運転者RBは、対象者の一例である。図15に示されるとおり、本実施形態に係る監視システム100Bは、学習装置1、データ生成装置2、及び監視装置3Bを備えている。上記実施形態と同様に、学習装置1、データ生成装置2、及び監視装置3Bは、ネットワークを介して互いに接続されてよい。
 本変形例に係る監視システム100Bは、取り扱うデータが異なる点を除き、上記実施形態と同様に構成されてよい。上記実施形態と同様に、学習装置1は、第1のフェーズにおいて、複数の第1学習データセット121を使用して、各ニューラルネットワーク(50、51)の機械学習を実施する。データ生成装置2は、第1のフェーズの機械学習で訓練された各ニューラルネットワーク(50、51)を利用して、少なくとも1つ以上の第2学習データセット227を生成する。学習装置1は、第2のフェーズにおいて、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)の再学習又は新たな学習モデル52の教師あり学習を実施する。
 各訓練データ(122、223)は、被験者の状態を観察するセンサにより得られたセンシングデータにより構成される。センサは、人物(被験者、対象者)の状態を観察可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。図15の例では、人物の状態を観察するセンサの一例として、カメラSB1及びバイタルセンサSB2が用いられる。
 各訓練データ(122、223)は、カメラSB1及びバイタルセンサSB2並びにこれらと同種のセンサにより被験者(運転者)の状態を観察することで得られる。カメラSB1には、例えば、一般的なRGBカメラ、深度カメラ、赤外線カメラ等が用いられてよい。また、バイタルセンサSBには、例えば、体温計、血圧計、脈拍計等が用いられてよい。各訓練データ(122、223)は、画像データ及びバイタルの測定データにより構成される。
 各訓練データ(122、223)に含まれる特徴は、被験者の状態に関する。本変形例では、被験者の状態は、例えば、被験者の眠気の度合いを示す眠気度、被験者の疲労の度合いを示す疲労度、被験者の運転に対する余裕の度合いを示す余裕度、又はこれらの組み合わせを含んでもよい。これに応じて、各正解データ(123、225)は、例えば、被権者の状態の種別、被験者の状態を示す数値、被験者の写る範囲等を示すように構成されてよい。各正解データ(123、225)は、オペレータの入力により得られてもよい。また、センシングデータから対象者の状態を推定するように訓練された推定器を利用して、各訓練データ(122、223)から被験者の状態を推定した結果が各正解データ(123、225)として取得されてもよい。
 第2のフェーズでは、学習装置1は、上記各訓練データ(122、223)及び各正解データ(123、225)を使用して、学習モデル(各ニューラルネットワーク(50、51)及び学習モデル52の少なくともいずれか)の機械学習を実施する。これにより、学習モデルは、センシングデータから対象者の状態を推定するタスクを遂行可能に構成される。学習装置1は、上記ステップS503の処理により、当該学習済みの学習モデルに関する情報を第2学習結果データ127Bとして生成し、生成された第2学習結果データ127Bを所定の記憶領域に保存する。
 監視装置3Bは、上記推定装置3に対応する。監視装置3Bは、取り扱うデータが異なる点を除き、上記推定装置3と同様に構成されてよい。第2学習結果データ127Bは、任意のタイミングで監視装置3Bに提供されてよい。本変形例では、カメラSB1及びバイタルセンサSB2から対象センシングデータを取得する。監視装置3Bは、学習装置1により構築された学習済みの学習モデルを利用して、取得されたセンシングデータに基づいて、運転者RBの状態を推定する。
 <監視装置のハードウェア構成>
 図16Aは、本変形例に係る監視装置3Bのハードウェア構成の一例を模式的に例示する。図16Aに示されるとおり、本変形例に係る監視装置3Bは、上記推定装置3と同様に、制御部31、記憶部32、通信インタフェース33、入力装置34、出力装置35、ドライブ36、及び外部インタフェース37が電気的に接続されたコンピュータである。監視装置3Bは、外部インタフェース37を介して、カメラSB1及びバイタルセンサSB2に接続される。カメラSB1は、運転者RBを撮影可能な場所に適宜配置されてよい。バイタルセンサSB2は、運転者RBのバイタルを測定可能な場所に適宜配置されてよい。ただし、監視装置3Bのハードウェア構成は、このような例に限定されなくてもよい。監視装置3Bの具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。監視装置3Bは、提供されるサービス専用に設計された情報処理装置の他、汎用のコンピュータ、スマートフォンを含む携帯電話、車載装置等であってもよい。
 本変形例に係る監視装置3Bの記憶部32は、監視プログラム83B、第2学習結果データ127B等の各種情報を記憶する。監視プログラム83B及び第2学習結果データ127Bは、上記実施形態に係る推定プログラム83及び第2学習結果データ127に対応する。監視プログラム83B及び第2学習結果データ127Bのうちの少なくともいずれかは、記憶媒体93に記憶されていてもよい。また、監視装置3Bは、記憶媒体93から、監視プログラム83B及び第2学習結果データ127Bのうちの少なくともいずれかを取得してもよい。
 <監視装置のソフトウェア構成及び動作例>
 図16Bは、本変形例に係る監視装置3Bのソフトウェア構成の一例を模式的に例示する。上記実施形態と同様に、監視装置3Bのソフトウェア構成は、制御部31による監視プログラム83Bの実行により実現される。図16Bに示されるとおり、取り扱うデータが人物の状態を観察するセンサにより得られたセンシングデータである点を除き、監視装置3Bのソフトウェア構成は、上記推定装置3のソフトウェア構成と同様である。これにより、監視装置3Bは、上記推定装置3の推定処理と同様に、監視処理に関する一連の処理を実行する。
 すなわち、ステップS701では、制御部31は、データ取得部311として動作し、運転者RBの状態を観察するセンサから対象センシングデータ321Bを取得する。本変形例では、当該センサとしてカメラSB1及びバイタルセンサSB2が監視装置3Bに接続されている。そのため、取得される対象センシングデータ321Bは、カメラSB1から得られる画像データ及びバイタルセンサSB2から得られるバイタルの測定データにより構成される。
 ステップS702では、制御部31は、推定部312として動作し、学習済みの学習モデル70Bを利用して、取得された対象センシングデータ321Bから運転者RBの状態を推定する。具体的には、制御部31は、第2学習結果データ127Bを参照して、学習済みの学習モデル70Bの設定を行う。学習済みの学習モデル70Bは、上記第2のフェーズの機械学習により訓練されたニューラルネットワーク(50、51)及び学習モデル52のうちの少なくともいずれかである。制御部31は、取得された対象センシングデータ321Bを学習済みの学習モデル70Bに入力して、学習済みの学習モデル70Bの演算処理を実行する。これにより、制御部31は、対象センシングデータ321Bから運転者RBの状態を推定した結果に対応する出力値を学習済みの学習モデル70Bから取得する。
 ステップS703では、制御部31は、出力部313として動作し、運転者RBの状態を推定した結果に関する情報を出力する。出力先及び出力する情報の内容はそれぞれ、実施の形態に応じて適宜決定されてよい。例えば、制御部31は、運転者RBの状態を推定した結果をそのまま出力装置35に出力してもよい。また、例えば、制御部31は、推定の結果に基づいて、何らかの情報処理を実行してもよい。そして、制御部31は、その情報処理を実行した結果を推定の結果に関する情報として出力してもよい。
 当該情報処理の一例として、制御部31は、推定される運転者RBの状態に応じて、警告等の特定のメッセージを出力装置35に出力してもよい。具体例として、運転者RBの眠気度及び疲労度の少なくとも一方を運転者RBの状態として推定した場合、制御部31は、推定された眠気度及び疲労度の少なくとも一方が閾値を超えるか否かを判定してもよい。閾値は適宜設定されてよい。そして、眠気度及び疲労度の少なくとも一方が閾値を超えている場合に、制御部31は、駐車場等に停車し、休憩を取るように運転者RBに促す警告を出力装置35に出力してもよい。
 また、例えば、車両が自動運転動作可能に構成されている場合、制御部31は、運転者RBの状態を推定した結果に基づいて、車両の自動運転の動作を制御してもよい。一例として、車両が、システムにより車両の走行を制御する自動運転モード及び運転者RBの操舵により車両の走行を制御する手動運転モードの切り替えが可能に構成されていると想定する。
 このケースにおいて、自動運転モードで車両が走行しており、自動運転モードから手動運転モードへの切り替えを運転者RB又はシステムから受け付けた際に、制御部31は、推定された運転者RBの余裕度が閾値を超えているか否かを判定してもよい。そして、運転者RBの余裕度が閾値を超えている場合に、制御部31は、自動運転モードから手動運転モードへの切り替えを許可してもよい。一方、運転者RBの余裕度が閾値以下である場合には、制御部31は、自動運転モードから手動運転モードへの切り替えを許可せず、自動運転モードでの走行を維持してもよい。
 また、手動運転モードで車両が走行している際に、制御部31は、推定された眠気度及び疲労度の少なくとも一方が閾値を超えるか否かを判定してもよい。そして、眠気度及び疲労度の少なくとも一方が閾値を超えている場合に、制御部31は、手動運転モードから自動運転モードに切り替えて、駐車場等の安全な場所に停車するように指示する指令を車両のシステムに送信してもよい。一方で、そうではない場合には、制御部31は、手動運転モードによる車両の走行を維持してもよい。
 また、手動運転モードで車両が走行している際に、制御部31は、推定された余裕度が閾値以下であるか否かを判定してもよい。そして、余裕度が閾値以下である場合に、制御部31は、減速する指令を車両のシステムに送信してもよい。一方で、そうではない場合には、制御部31は、運転者RBの操作による車両の走行を維持してもよい。
 本変形例によれば、対象者の状態を推定するための推定器を構築する場面において、タスクの種類が異なるニューラルネットワークでも共通の指標を利用して、アクティブラーニングを実施することができるようになる。また、アクティブラーニングにより抽出された第2訓練データ223を更に使用して、より性能の高い学習済みの学習モデルを効率的に生成することができる。監視装置3Bは、これにより生成された学習済みの学習モデルを利用することで、運転者RBの状態を推定するタスクを精度よく遂行することができる。
 なお、状態を推定する対象となる対象者は、図15に例示される車両の運転者RBに限られなくてもよく、あらゆる人物を含んでよい。状態を予測する対象となる対象者は、例えば、オフィス、工場等で作業を行う作業者、バイタルを計測される被計測者等を含んでもよい。
 図17は、対象者の状態を予測する他の場面の一例を模式的に例示する。図17に例示される診断システム100Cは、学習装置1、データ生成装置2、及び診断装置3Cを備えている。診断装置3Cは、上記監視装置3Bに対応する。図17の例では、診断装置3Cは、バイタルセンサSCに接続され、このバイタルセンサSCにより被計測者の対象センシングデータを取得する。診断装置3Cは、上記監視装置3Bと同様の処理により、被計測者の状態を推定する。被計測者の状態には、当該被計測者の健康状態が含まれてよい。健康状態は、例えば、健康であるか否か、病気になる予兆があるか否か等を含んでよい。各正解データ(123、225)は、例えば、人物の健康状態の種別、対象の病気になる確率等を示すように構成されてよい。
 <4.2>
 上記実施形態では、各ニューラルネットワーク(50、51)には、畳み込みニューラルネットワークが用いられている。しかしながら、各ニューラルネットワーク(50、51)の種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各ニューラルネットワーク(50、51)には、上記畳み込みニューラルネットワークの他、全結合型ニューラルネットワーク、再帰型ニューラルネットワーク等が用いられてよい。或いは、各ニューラルネットワーク(50、51)は、複数の異なる構造を有するニューラルネットワークの組み合わせにより構成されてよい。各ニューラルネットワーク(50、51)の構造は、特に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。
 また、上記実施形態では、注目層(503、513)は、畳み込みニューラルネットワークの中間層として配置された畳み込み層である。しかしながら、注目層(503、513)は、畳み込み層に限られなくてもよく、実施の形態に応じて適宜選択されてよい。畳み込み層の他、例えば、プーリング層、全結合層等の中間層が注目層に設定されてよい。なお、畳み込み層の出力をプーリング処理するプーリング層(すなわち、畳み込み層の直後に配置されたプーリング層)を注目層に設定する場合、このプーリング層の出力は、畳み込み層の出力と同様に扱うことができる。そのため、上記実施形態と同様の方法(式1~式3のいずれか)により、プーリング層の出力値から評価値222を算出することができる。また、複数のニューロン(ノード)を含む全結合層を注目層に設定する場合も、この全結合層の出力は、畳み込み層の出力と同様に扱うことができる。そのため、上記実施形態と同様の方法(式1~式3のいずれか)により、全結合層の出力値から評価値222を算出することができる。一方、1つのニューロン(ノード)を含む全結合層を注目層に設定する場合には、上記式3の方法により、全結合層の出力値から評価値222を算出することができる。
 <4.3>
 上記実施形態では、学習装置1は、第1のフェーズの機械学習及び第2のフェーズの機械学習の両方を実行する。また、学習装置1及びデータ生成装置2は、別々のコンピュータである。しかしながら、学習システム101の構成は、このような例に限定されなくてもよい。例えば、第1のフェーズの機械学習及び第2のフェーズの機械学習はそれぞれ別のコンピュータにより実行されてよい。また、例えば、学習装置1及びデータ生成装置2は、一体のコンピュータにより構成されてよい。
 <4.4>
 上記実施形態では、データ生成装置2は、各ニューラルネットワーク(50、51)により導出される評価値222を、正解データの付与されていない第2訓練データ221から正解データを付与する対象となる第2訓練データ223を抽出するのに利用している。しかしながら、評価値222による抽出は、このような例に限定されなくてもよい。データ生成装置2は、例えば、既に正解データの付与された複数件の訓練データ、すなわち、複数件の学習データセットから推定器の性能向上に寄与する程度の高いと推定される1つ以上の学習データセットを抽出するのに、評価値222を利用してもよい。この学習データセットの抽出処理は、上記第2訓練データ223の抽出処理と同様の処理手順で実行可能である。この場合、第2訓練データ221には正解データが付与されていてもよい。データ生成装置2の上記処理手順からステップS306が省略されてもよい。また、データ生成装置2のソフトウェア構成から生成部215が省略されてよい。
 100…推定システム、101…学習システム、
 1…学習装置、
 11…制御部、12…記憶部、13…通信インタフェース、
 14…入力装置、15…出力装置、16…ドライブ、
 111…データ取得部(第1データ取得部)、
 112…学習処理部、113…保存処理部、
 121…第1学習データセット、
 122…第1訓練データ、123…第1正解データ、
 125…第1学習結果データ、127…第2学習結果データ、
 81…学習プログラム、85…第1データプール、
 91…記憶媒体、
 2…データ生成装置、
 21…制御部、22…記憶部、23…通信インタフェース、
 24…入力装置、25…出力装置、26…ドライブ、
 211…モデル取得部、
 212…データ取得部(第2データ取得部)、
 213…評価部、214…抽出部、215…生成部、
 216…出力部、
 221…第2訓練データ、222…評価値、
 223…(抽出された)第2訓練データ、
 225…第2正解データ、227…第2学習データセット、
 82…データ生成プログラム、87…第2データプール、
 92…記憶媒体、
 3…推定装置、
 31…制御部、32…記憶部、33…通信インタフェース、
 34…入力装置、35…出力装置、36…ドライブ、
 37…外部インタフェース、
 311…データ取得部、
 312…推定部、313…出力部、
 321…対象データ、
 83…推定プログラム、93…記憶媒体、
 50…第1ニューラルネットワーク、
 501…入力層、503…注目層、
 507…出力層、
 51…第2ニューラルネットワーク、
 511…入力層、513…注目層、
 517…出力層、
 52…学習モデル、
 70…推定器

Claims (10)

  1.  第1訓練データ、及び当該第1訓練データに含まれる特徴を示す第1正解データの組み合わせによりそれぞれ構成された複数の第1学習データセットを取得する第1データ取得部と、
     取得された前記複数の第1学習データセットを使用して、複数のニューラルネットワークの機械学習を実施する学習処理部であって、
      前記各ニューラルネットワークは、入力側から出力側に並んで配置された複数の層を含み、
      前記複数の層は、最も出力側に配置された出力層及び当該出力層よりも入力側に配置された注目層を含み、
      前記機械学習を実施することは、前記各第1学習データセットについて、前記各ニューラルネットワークに前記第1訓練データを入力すると、前記各ニューラルネットワークの前記出力層から前記第1正解データに適合する出力値が出力されると共に、前記各ニューラルネットワークの前記注目層から出力される出力値が互いに適合するように、前記各ニューラルネットワークを訓練することを含む、
    学習処理部と、
     複数件の第2訓練データを取得する第2データ取得部と、
     訓練された前記各ニューラルネットワークに前記各件の第2訓練データを入力することで前記各ニューラルネットワークの前記注目層から出力値を取得し、前記各ニューラルネットワークの前記注目層から取得された前記出力値に基づいて、前記各件の第2訓練データに対する前記各ニューラルネットワークの出力の不安定性を示す評価値を算出する評価部と、
     前記不安定性が高いと判定するための条件を前記評価値が満たす少なくとも1件以上の第2訓練データを前記複数件の第2訓練データから抽出する抽出部と、
     抽出された前記少なくとも1件以上の第2訓練データそれぞれに対して、前記第2訓練データに含まれる特徴を示す第2正解データの入力を受け付けることで、前記第2訓練データ及び前記第2正解データの組み合わせによりそれぞれ構成された少なくとも1つ以上の第2学習データセットを生成する生成部と、
    を備え、
     前記学習処理部は、前記複数の第1学習データセット及び前記少なくとも1つ以上の第2学習データセットを使用して、前記複数のニューラルネットワークの機械学習を再度実施する、又は前記複数のニューラルネットワークとは別の学習モデルの教師あり学習を実施する、
    学習システム。
  2.  前記各ニューラルネットワークは、畳み込みニューラルネットワークであり、
     前記注目層は、畳み込み層である、
    請求項1に記載の学習システム。
  3.  前記各ニューラルネットワークの前記注目層から出力される出力値が互いに適合することは、前記各畳み込みニューラルネットワークの前記畳み込み層より出力される特徴マップから導出されるアテンションマップが互いに一致することである、
    請求項2に記載の学習システム。
  4.  前記各ニューラルネットワークの前記複数の層は、演算に利用される演算パラメータを備え、
     前記各ニューラルネットワークを訓練することは、前記各第1学習データセットについて、前記各ニューラルネットワークに前記第1訓練データを入力したときに、前記各ニューラルネットワークの前記出力層から出力される出力値と前記第1正解データとの誤差が小さくなるように、かつ前記各ニューラルネットワークの前記注目層から出力される出力値の間の誤差が小さくなるように、前記各ニューラルネットワークの前記演算パラメータの値の調整を繰り返すことを備え、
     前記注目層から出力される出力値の間の誤差に関する学習率は、前記演算パラメータの値の調整を繰り返す度に大きくなるように設定される、
    請求項1から3のいずれか1項に記載の学習システム。
  5.  前記各訓練データは、製品の写る画像データにより構成され、
     前記特徴は、前記製品の状態に関する、
    請求項1から4のいずれか1項に記載の学習システム。
  6.  前記各訓練データは、被験者の状態を観察するセンサにより得られたセンシングデータにより構成され、
     前記特徴は、前記被験者の状態に関する、
    請求項1から4のいずれか1項に記載の学習システム。
  7.  第1訓練データ、及び当該第1訓練データに含まれる特徴を示す第1正解データの組み合わせによりそれぞれ構成された複数の第1学習データセットを使用した機械学習により訓練された複数のニューラルネットワークを取得するモデル取得部であって、
      前記各ニューラルネットワークは、入力側から出力側に並んで配置された複数の層を含み、
      前記複数の層は、最も出力側に配置された出力層及び当該出力層よりも入力側に配置された注目層を含み、
      前記各ニューラルネットワークは、前記機械学習により、前記各第1学習データセットについて、前記各ニューラルネットワークに前記第1訓練データを入力すると、前記各ニューラルネットワークの前記出力層から前記第1正解データに適合する出力値が出力されると共に、前記各ニューラルネットワークの前記注目層から出力される出力値が互いに適合するように訓練されている、
    モデル取得部と、
     複数件の第2訓練データを取得するデータ取得部と、
     訓練された前記各ニューラルネットワークに前記各件の第2訓練データを入力することで前記各ニューラルネットワークの前記注目層から出力値を取得し、前記各ニューラルネットワークの前記注目層から取得された前記出力値に基づいて、前記各件の第2訓練データに対する前記各ニューラルネットワークの出力の不安定性を示す評価値を算出する評価部と、
     前記不安定性が高いと判定するための条件を前記評価値が満たす少なくとも1件以上の第2訓練データを前記複数件の第2訓練データから抽出する抽出部と、
     抽出された前記少なくとも1件以上の第2訓練データそれぞれに対して、前記第2訓練データに含まれる特徴を示す第2正解データの入力を受け付けることで、前記第2訓練データ及び前記第2正解データの組み合わせによりそれぞれ構成された少なくとも1つ以上の第2学習データセットを生成する生成部と、
    を備える、
    データ生成装置。
  8.  生成された前記少なくとも1つ以上の第2学習データセットを学習モデルの教師あり学習に使用可能に出力する出力部を更に備える、
    データ生成装置。
  9.  コンピュータが、
     第1訓練データ、及び当該第1訓練データに含まれる特徴を示す第1正解データの組み合わせによりそれぞれ構成された複数の第1学習データセットを使用した機械学習により訓練された複数のニューラルネットワークを取得するステップであって、
      前記各ニューラルネットワークは、入力側から出力側に並んで配置された複数の層を含み、
      前記複数の層は、最も出力側に配置された出力層及び当該出力層よりも入力側に配置された注目層を含み、
      前記各ニューラルネットワークは、前記機械学習により、前記各第1学習データセットについて、前記各ニューラルネットワークに前記第1訓練データを入力すると、前記各ニューラルネットワークの前記出力層から前記第1正解データに適合する出力値が出力されると共に、前記各ニューラルネットワークの前記注目層から出力される出力値が互いに適合するように訓練されている、
    ステップと、
     複数件の第2訓練データを取得するステップと、
     訓練された前記各ニューラルネットワークに前記各件の第2訓練データを入力することで前記各ニューラルネットワークの前記注目層から出力値を取得するステップと、
     前記各ニューラルネットワークの前記注目層から取得された前記出力値に基づいて、前記各件の第2訓練データに対する前記各ニューラルネットワークの出力の不安定性を示す評価値を算出するステップと、
     前記不安定性が高いと判定するための条件を前記評価値が満たす少なくとも1件以上の第2訓練データを前記複数件の第2訓練データから抽出するステップと、
     抽出された前記少なくとも1件以上の第2訓練データそれぞれに対して、前記第2訓練データに含まれる特徴を示す第2正解データの入力を受け付けることで、前記第2訓練データ及び前記第2正解データの組み合わせによりそれぞれ構成された少なくとも1つ以上の第2学習データセットを生成するステップと、
    を実行する、
    データ生成方法。
  10.  コンピュータに、
     第1訓練データ、及び当該第1訓練データに含まれる特徴を示す第1正解データの組み合わせによりそれぞれ構成された複数の第1学習データセットを使用した機械学習により訓練された複数のニューラルネットワークを取得するステップであって、
      前記各ニューラルネットワークは、入力側から出力側に並んで配置された複数の層を含み、
      前記複数の層は、最も出力側に配置された出力層及び当該出力層よりも入力側に配置された注目層を含み、
      前記各ニューラルネットワークは、前記機械学習により、前記各第1学習データセットについて、前記各ニューラルネットワークに前記第1訓練データを入力すると、前記各ニューラルネットワークの前記出力層から前記第1正解データに適合する出力値が出力されると共に、前記各ニューラルネットワークの前記注目層から出力される出力値が互いに適合するように訓練されている、
    ステップと、
     複数件の第2訓練データを取得するステップと、
     訓練された前記各ニューラルネットワークに前記各件の第2訓練データを入力することで前記各ニューラルネットワークの前記注目層から出力値を取得するステップと、
     前記各ニューラルネットワークの前記注目層から取得された前記出力値に基づいて、前記各件の第2訓練データに対する前記各ニューラルネットワークの出力の不安定性を示す評価値を算出するステップと、
     前記不安定性が高いと判定するための条件を前記評価値が満たす少なくとも1件以上の第2訓練データを前記複数件の第2訓練データから抽出するステップと、
     抽出された前記少なくとも1件以上の第2訓練データそれぞれに対して、前記第2訓練データに含まれる特徴を示す第2正解データの入力を受け付けることで、前記第2訓練データ及び前記第2正解データの組み合わせによりそれぞれ構成された少なくとも1つ以上の第2学習データセットを生成するステップと、
    を実行させるための、
    データ生成プログラム。
PCT/JP2019/017585 2019-04-25 2019-04-25 学習システム、データ生成装置、データ生成方法、及びデータ生成プログラム WO2020217371A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201980093941.5A CN113557536B (zh) 2019-04-25 2019-04-25 学习系统、数据生成装置、数据生成方法及存储介质
JP2021515399A JP7164028B2 (ja) 2019-04-25 2019-04-25 学習システム、データ生成装置、データ生成方法、及びデータ生成プログラム
EP19925954.0A EP3961555A4 (en) 2019-04-25 2019-04-25 LEARNING SYSTEM. DATA GENERATION DEVICE, DATA GENERATION METHOD AND DATA GENERATION PROGRAM
US17/441,316 US20220172046A1 (en) 2019-04-25 2019-04-25 Learning system, data generation apparatus, data generation method, and computer-readable storage medium storing a data generation program
PCT/JP2019/017585 WO2020217371A1 (ja) 2019-04-25 2019-04-25 学習システム、データ生成装置、データ生成方法、及びデータ生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/017585 WO2020217371A1 (ja) 2019-04-25 2019-04-25 学習システム、データ生成装置、データ生成方法、及びデータ生成プログラム

Publications (1)

Publication Number Publication Date
WO2020217371A1 true WO2020217371A1 (ja) 2020-10-29

Family

ID=72941179

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/017585 WO2020217371A1 (ja) 2019-04-25 2019-04-25 学習システム、データ生成装置、データ生成方法、及びデータ生成プログラム

Country Status (5)

Country Link
US (1) US20220172046A1 (ja)
EP (1) EP3961555A4 (ja)
JP (1) JP7164028B2 (ja)
CN (1) CN113557536B (ja)
WO (1) WO2020217371A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7092228B1 (ja) * 2021-03-30 2022-06-28 沖電気工業株式会社 学習装置、学習方法およびプログラム
JP7490141B2 (ja) 2021-01-28 2024-05-24 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 画像検出方法、モデルトレーニング方法、画像検出装置、トレーニング装置、機器及びプログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220237890A1 (en) * 2021-01-22 2022-07-28 Samsung Electronics Co., Ltd. Method and apparatus with neural network training
JP7449338B2 (ja) 2021-09-03 2024-03-13 東京エレクトロンデバイス株式会社 情報処理方法、プログラム、情報処理装置及び情報処理システム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012026982A (ja) 2010-07-27 2012-02-09 Panasonic Electric Works Sunx Co Ltd 検査装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835901A (en) * 1994-01-25 1998-11-10 Martin Marietta Corporation Perceptive system including a neural network
JP2006105943A (ja) * 2004-10-08 2006-04-20 Omron Corp 知識作成装置及びパラメータ探索方法並びにプログラム製品
JP2016031746A (ja) * 2014-07-30 2016-03-07 キヤノン株式会社 情報処理装置、情報処理方法
CN105654176B (zh) * 2014-11-14 2018-03-27 富士通株式会社 神经网络系统及神经网络系统的训练装置和方法
JP6613030B2 (ja) * 2015-01-19 2019-11-27 株式会社メガチップス 判定装置、制御プログラム及び判定方法
CN106295799B (zh) * 2015-05-12 2018-11-02 核工业北京地质研究院 一种深度学习多层神经网络的实现方法
WO2017073373A1 (ja) * 2015-10-30 2017-05-04 株式会社モルフォ 学習システム、学習装置、学習方法、学習プログラム、教師データ作成装置、教師データ作成方法、教師データ作成プログラム、端末装置及び閾値変更装置
US11093826B2 (en) * 2016-02-05 2021-08-17 International Business Machines Corporation Efficient determination of optimized learning settings of neural networks
JP2018005640A (ja) * 2016-07-04 2018-01-11 タカノ株式会社 分類器生成装置、画像検査装置、及び、プログラム
JP6751235B2 (ja) * 2016-09-30 2020-09-02 富士通株式会社 機械学習プログラム、機械学習方法、および機械学習装置
CN106446209A (zh) * 2016-09-30 2017-02-22 浙江大学 一种海洋环境监测要素短期预测方法
CN109325508A (zh) * 2017-07-31 2019-02-12 阿里巴巴集团控股有限公司 知识表示、机器学习模型训练、预测方法、装置以及电子设备
KR102491546B1 (ko) * 2017-09-22 2023-01-26 삼성전자주식회사 객체를 인식하는 방법 및 장치
CN108182389B (zh) * 2017-12-14 2021-07-30 华南师范大学 基于大数据与深度学习的用户数据处理方法、机器人系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012026982A (ja) 2010-07-27 2012-02-09 Panasonic Electric Works Sunx Co Ltd 検査装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BELUCH WILLIAM H; GENEWEIN TIM; NURNBERGER ANDREAS; KOHLER JAN M: "The power of ensembles for active learning in image classification", 2018 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION, 18 June 2018 (2018-06-18), pages 9368 - 9377, XP033473863 *
See also references of EP3961555A4
WILLIAM H. BELUCHTIM GENEWEINANDREAS NIIRNBERGERJAN M. KOHLER: "The power of ensembles for active learning in image classification", IEEE CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR, 2018, pages 9368 - 9377, XP033473863, DOI: 10.1109/CVPR.2018.00976

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7490141B2 (ja) 2021-01-28 2024-05-24 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 画像検出方法、モデルトレーニング方法、画像検出装置、トレーニング装置、機器及びプログラム
JP7092228B1 (ja) * 2021-03-30 2022-06-28 沖電気工業株式会社 学習装置、学習方法およびプログラム

Also Published As

Publication number Publication date
US20220172046A1 (en) 2022-06-02
JPWO2020217371A1 (ja) 2020-10-29
EP3961555A4 (en) 2022-11-02
JP7164028B2 (ja) 2022-11-01
CN113557536A (zh) 2021-10-26
EP3961555A1 (en) 2022-03-02
CN113557536B (zh) 2024-05-31

Similar Documents

Publication Publication Date Title
WO2020217371A1 (ja) 学習システム、データ生成装置、データ生成方法、及びデータ生成プログラム
KR102166458B1 (ko) 인공신경망 기반의 영상 분할을 이용한 불량 검출 방법 및 불량 검출 장치
JP6912008B2 (ja) マシンビジョンシステム
US11715190B2 (en) Inspection system, image discrimination system, discrimination system, discriminator generation system, and learning data generation device
JP6693938B2 (ja) 外観検査装置
JP6911498B2 (ja) 学習装置、学習方法、及び学習プログラム
WO2021059909A1 (ja) データ生成システム、学習装置、データ生成装置、データ生成方法及びデータ生成プログラム
JP6844563B2 (ja) 検査装置、画像識別装置、識別装置、検査方法、及び検査プログラム
JP2016085704A (ja) 情報処理システム、情報処理装置、情報処理方法、及びプログラム
JP7059883B2 (ja) 学習装置、画像生成装置、学習方法、及び学習プログラム
WO2021100483A1 (ja) モデル生成装置、推定装置、モデル生成方法、及びモデル生成プログラム
JP7435303B2 (ja) 検査装置、ユニット選択装置、検査方法、及び検査プログラム
WO2019176989A1 (ja) 検査システム、識別システム、及び学習データ生成装置
CN115210724A (zh) 模型生成装置、推断装置、模型生成方法及模型生成程序
Katam et al. A review on technological advancements in the field of data driven structural health monitoring
JP7059889B2 (ja) 学習装置、画像生成装置、学習方法、及び学習プログラム
US20220222402A1 (en) Information processing device, information processing method, and information processing program
WO2021182000A1 (ja) パラメータ調整装置、推論装置、パラメータ調整方法、及びパラメータ調整プログラム
JP7070308B2 (ja) 推定器生成装置、検査装置、推定器生成方法、及び推定器生成プログラム
JP6889207B2 (ja) 学習装置、抽出装置、学習方法、抽出方法、学習プログラムおよび抽出プログラム
CN111699496A (zh) 神经网络型图像处理装置
CN116157803A (zh) 确定设施控制回路部件的状态的基于机器学习的直接方法
JP2021026449A (ja) 学習方法、判定方法及びプログラム

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: 19925954

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021515399

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019925954

Country of ref document: EP

Effective date: 20211125