WO2021079447A1 - 表示方法、表示プログラム及び情報処理装置 - Google Patents

表示方法、表示プログラム及び情報処理装置 Download PDF

Info

Publication number
WO2021079447A1
WO2021079447A1 PCT/JP2019/041586 JP2019041586W WO2021079447A1 WO 2021079447 A1 WO2021079447 A1 WO 2021079447A1 JP 2019041586 W JP2019041586 W JP 2019041586W WO 2021079447 A1 WO2021079447 A1 WO 2021079447A1
Authority
WO
WIPO (PCT)
Prior art keywords
model
data
concept drift
deal
index
Prior art date
Application number
PCT/JP2019/041586
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 JP2021553217A priority Critical patent/JP7363912B2/ja
Priority to PCT/JP2019/041586 priority patent/WO2021079447A1/ja
Publication of WO2021079447A1 publication Critical patent/WO2021079447A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Definitions

  • the present invention relates to a display method, a display program, and an information processing device.
  • concept drift means that the quality of data input to the AI system changes over time.
  • the AI system makes various inferences using a learner on the input data.
  • learning of the learner is performed at the time of development. Therefore, when concept drift occurs, the accuracy of the AI system may decrease relatively.
  • the above method has a problem that the calculation cost may increase.
  • a method of ensemble a plurality of learning devices and perform a majority vote is known.
  • the amount of calculation may increase.
  • the purpose is to detect concept drift with a small amount of calculation.
  • the computer acquires the operational data input to the model. Based on the acquired operational data, the computer calculates a first index indicating the magnitude of the output result of the model due to the time change of the tendency of the operational data. The computer calculates the second index by dividing the calculated first index by the periodic unit time of the operation data. The computer determines whether or not a concept drift that the user needs to address has occurred, based on a comparison of the calculated second index with a preset threshold. When it is determined that the concept drift that the user needs to deal with has occurred, the computer displays information indicating that the concept drift that the user needs to deal with has occurred on the display screen.
  • FIG. 1 is a diagram for explaining concept drift.
  • FIG. 2 is a diagram showing a configuration example of the detection device of the first embodiment.
  • FIG. 3 is a diagram for explaining a processing flow of the detection device.
  • FIG. 4 is a diagram for explaining the parameters of the neural network.
  • FIG. 5 is a diagram for explaining the replica model.
  • FIG. 6 is a diagram for explaining a method of acquiring the distribution of the output with respect to the training data.
  • FIG. 7 is a diagram for explaining a method of acquiring the output distribution with respect to the operation data.
  • FIG. 8 is a diagram showing an example of changes in KLD.
  • FIG. 9 is a diagram showing an example of a change in distribution.
  • FIG. 10 is a diagram showing an example of a monthly display screen when concept drift does not occur.
  • FIG. 10 is a diagram showing an example of a monthly display screen when concept drift does not occur.
  • FIG. 11 is a diagram showing an example of a monthly display screen when incremental drift occurs.
  • FIG. 12 is a diagram showing an example of a detailed display screen.
  • FIG. 13 is a diagram showing an example of a monthly display screen when a sudden drift occurs.
  • FIG. 14 is a diagram showing an example of a monthly display screen when recurring drift occurs.
  • FIG. 15 is a diagram showing an example of a daily display screen.
  • FIG. 16 is a flowchart showing a processing flow during learning of the detection device.
  • FIG. 17 is a flowchart showing a processing flow during operation of the detection device.
  • FIG. 18 is a diagram for explaining the parameters of the decision tree.
  • FIG. 19 is a diagram illustrating a hardware configuration example.
  • the detection device of the embodiment can be said to be an information processing device that executes the detection method and the display method.
  • concept drift a trained model in which training is performed using training data with a known label is called an original model.
  • the model in this embodiment is assumed to be a classifier that estimates and classifies the class to which the data belongs based on the features.
  • the classifier calculates a score for each class for each data and classifies based on the score.
  • the score may be the probability that the data belongs to each class.
  • the classifier may classify two classes such as whether or not it is normal, or may classify three or more classes.
  • FIG. 1 is a diagram for explaining concept drift.
  • the left and right figures of FIG. 1 are drawn on a plane in which the horizontal axis and the vertical axis are different feature quantities, the data points at the time of learning and operation of each class, and the curve representing the original model. ..
  • the data points of ⁇ , ⁇ , and ⁇ in FIG. 1 correspond to the data belonging to class A, class B, and class C, respectively.
  • the original model can classify the data of each class with high accuracy at the time of learning.
  • the distributions of class B and class C change significantly, and the classification accuracy of the original model decreases.
  • concept drift is a phenomenon in which the quality of data changes during model operation compared to during learning. In other words, the change in the output result of the model due to the time change of the tendency of the operational data becomes large. Then, as shown in FIG. 1, when concept drift occurs, the accuracy of the model may be relatively lowered.
  • the model classifies each stock into one of "buy”, “sell”, and “neutral” in stock trading.
  • the model trained with the data of 2018 shows high accuracy in the beginning of 2019, but the tendency of the data changes in the middle of 2019, and the accuracy may decrease.
  • the model uses conditions such as temperature and brightness of the manufacturing environment and predetermined measured values obtained in each process as feature quantities to determine whether or not the product is a defective product. be able to. In this case, it is conceivable that changes in the environment or the like appear as concept drift and the determination accuracy of the model decreases.
  • the detection device of this embodiment can be applied to any model affected by the above concept drift.
  • the detection device of this embodiment detects concept drift using a plurality of replica models generated from the original model. Since the generation of the replica model does not require learning, the detection device can generate the replica model with a small amount of calculation.
  • the true class to which the data during operation belongs is unknown, but for the sake of explanation in Fig. 1, the data points during operation are also assigned the shapes of ⁇ , ⁇ , and ⁇ corresponding to each class. ing.
  • the detection device of this embodiment is intended to detect concept drift that the user needs to deal with even if the true class of data during operation is unknown.
  • measures may be taken such as automatic or manual retraining of the original model and exclusion of inappropriate data that caused the concept drift. ..
  • FIG. 2 is a diagram showing a configuration example of the detection device of the first embodiment.
  • the detection device 10 includes a communication unit 11, an input unit 12, an output unit 13, a storage unit 14, and a control unit 15.
  • the communication unit 11 is an interface for communicating data with other devices.
  • the communication unit 11 is a NIC (Network Interface Card), and may be used to communicate data via the Internet.
  • NIC Network Interface Card
  • the input unit 12 is an interface for receiving data input.
  • the input unit 12 may be an input device such as an input device such as a keyboard or a mouse.
  • the output unit 13 is an interface for outputting data.
  • the output unit 13 may be an output device such as a display or a speaker. Further, the input unit 12 and the output unit 13 may input / output data to / from an external storage device such as a USB memory.
  • the storage unit 14 is an example of a storage device that stores data, a program executed by the control unit 15, and the like, such as a hard disk and a memory.
  • the storage unit 14 stores the original model information 141, the replica model information 142, and the distribution information 143.
  • the original model information 141 is information such as parameters for constructing the original model.
  • the original model information 141 is the weight and bias of each layer.
  • Replica model information 142 is information such as parameters for constructing a replica model.
  • the algorithms of the replica model and the original model are common. Therefore, for example, if the algorithm of the original model is a neural network, the algorithm of the replica model is also a neural network.
  • the replica model information 142 is the weight and bias of each layer of the neural network.
  • Distribution information 143 is information regarding the distribution of the output of the replica model at the time of learning.
  • the distribution information 143 is information that serves as a reference for evaluating the data during operation and detecting the concept drift that the user needs to deal with.
  • the distribution information 143 may be sufficient information for calculating the evaluation value of the operation data.
  • the distribution information 143 may be all or part of the output of the replica model, or may be a distribution parameter indicating the distribution of the output of the replica model. The method of acquiring the output distribution of the replica model will be described later.
  • control unit 15 for example, a program stored in an internal storage device is executed with RAM as a work area by a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a GPU (Graphics Processing Unit), or the like. Is realized by. Further, the control unit 15 may be realized by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array), for example.
  • the control unit 15 includes a learning unit 151, a generation unit 152, a calculation unit 153, a detection unit 154, and a display control unit 155.
  • FIG. 3 is a diagram for explaining a processing flow of the detection device.
  • the processing of the detection device 10 is divided into a learning phase and an operation phase.
  • the detection device 10 generates the original model information 141, the replica model information 142, and the distribution information 143.
  • the detection device 10 detects the concept drift that the user needs to deal with by using the original model information 141, the replica model information 142, and the distribution information 143.
  • the learning unit 151 First, the processing of the learning phase will be described. As shown in step S11 of FIG. 3, the learning unit 151 generates an original model based on the learning data.
  • the learning unit 151 can perform learning by a known method. For example, if the original model is a neural network, the learning unit 151 performs learning by the back-propagation method.
  • the generation unit 152 generates a plurality of replica models by changing predetermined parameters of the trained original model.
  • a plurality of replica models generated by the generation unit 152 may be referred to as a replica model group.
  • the original model is an example of the first model.
  • the replica model is an example of the second model.
  • the generation unit 152 generates a plurality of neural networks as a replica model by changing the weights and biases in a predetermined layer of the trained original model neural network.
  • FIG. 4 is a diagram for explaining the parameters of the neural network.
  • weights w_a1, w_a2, w_b1, w_b2, w_c1, w_c2, w_d1, w_d2 and biases b1 and b2 are set between the output layer and the hidden layer of the neural network of the original model. ..
  • the generation unit 152 generates a replica model by multiplying the weight and the bias by a random number.
  • ⁇ _i be a random number that follows a normal distribution with a mean of 1.0 and a standard deviation of 0.3.
  • the generation unit 152 uses the weights w ⁇ _a1, w ⁇ _b1, w ⁇ _c1, w ⁇ _d1, w ⁇ _a2, w ⁇ _b2 between the output layer and the hidden layer as the first replica model.
  • W'_c2, w'_d2, and biases b'1 and b'2 are set to generate a neural network.
  • the generation unit 152 generates the replica model so that the distance from the original model is within a narrow range to some extent. For example, the generation unit 152 generates a replica model by multiplying a predetermined parameter by a random number according to a normal distribution having an average of 1.0 and a standard deviation of 0.3.
  • the calculation unit 153 calculates the output for the data actually input to the model. As shown in step S12 of FIG. 3, the calculation unit 153 stores the information regarding the distribution of the output obtained by inputting the training data used for learning the original model into the replica model as the distribution information 143 in the storage unit 14. .. Further, the calculation unit 153 may use not only the output of the replica model group but also the information regarding the distribution including the output of the original model as the distribution information 143.
  • the learning unit 151 works with the calculation unit 153 to perform learning by optimizing the output of the model.
  • the generation unit 152 can generate the replica model without performing the calculation by the calculation unit 153.
  • FIG. 5 is a diagram for explaining the replica model.
  • the replica model group can be said to be a curve group dispersed around the original model, which is a curve, with a predetermined variation, or a region formed by the curve group.
  • the replica model group shows the same classification result as the original model group.
  • each replica model may show different classification results for data points located near the curve of the original model.
  • the detection device 10 of the present embodiment detects the concept drift that the user needs to deal with by paying attention to the change of each output of the replica model group with the passage of time.
  • FIG. 6 is a diagram for explaining a method of acquiring the output distribution with respect to the training data.
  • the original model classifies the data into one of class A, class B, and class C.
  • the detection device 10 uses, for example, 70 learning data for each class for learning. Further, it is assumed that the detection device 10 generates, for example, 1,000 replica models.
  • the calculation unit 153 applies the training data s 1 , s 2 , ..., And s 70 , which are known to belong to the class C, to the replica models r 1 , r 2 , and r 1000 , respectively.
  • the score is the probability that the data belongs to each class.
  • (A0.0, B0.0, C1.0) indicates that the probability that the data belongs to class A is 0.0, the probability that the data belongs to class B is 0.0, and the probability that the data belongs to class C is 1.0.
  • the calculation unit 153 inputs the operation data to the original model and calculates the output.
  • the output is the score for each class to be classified.
  • the output unit 13 can output the score for each class or the information for identifying the class having the highest score as the classification result.
  • the learning data and the operation data may be time-series data.
  • the training data can be said to be the data at the time of training of the original model among the time series data.
  • the operational data can be said to be the data of a predetermined time after the learning time among the time series data.
  • the detection unit 154 differs between the distribution of the output obtained by inputting the training data into the replica model and the distribution of the output obtained by inputting the operational data into the replica model. Is detected.
  • the operational data is an example of predetermined data different from the learning data.
  • the calculation unit 153 inputs operational data to each replica model and calculates the output.
  • the detection unit 154 acquires the distribution of the output calculated by the calculation unit 153. Further, the detection unit 154 acquires the distribution of the output obtained by inputting the training data into the replica model from the distribution information 143.
  • FIG. 7 is a diagram for explaining a method of acquiring the output distribution with respect to the operation data.
  • the calculation unit 153 inputs the operation data u 1 classified into the class C by the original model into each of the replica models r 1 , r 2 , ..., And r 1000 , and inputs each class. Calculate the score of.
  • the calculation unit 153 can calculate the score by real-time processing as shown in FIG. 7.
  • the calculation unit 153 may collectively calculate the score by batch processing a plurality of operational data.
  • the detection unit 154 determines the KLD (Kullback-Leibler variance) between the score distribution obtained by inputting the training data into the replica model and the score distribution obtained by inputting the operational data into the replica model. Based on this, the difference is detected.
  • KLD is an example of an index showing the magnitude of the difference between distributions.
  • the detection unit 154 calculates the KLD of the probability distribution P (i) of the score of the training data and the probability distribution Q (i) of the score of the operation data as in the equation (1).
  • i is an identifier indicating the classification.
  • the detection unit 154 calculates the sum of the D KLs for the class A, the class B, and the class C as in the equation (2). Then, the detection unit 154, when the sum of D KL or calculated D KL of each class is equal to or higher than the threshold, detecting the concept drift that the user must correspond.
  • FIG. 8 is a diagram showing an example of changes in KLD.
  • the "sample ID” is an ID for identifying individual data included in the operational data.
  • “correct answer” is the true correct answer class of operational data.
  • "prediction” is a classification result based on the original model.
  • the classification result and the correct answer match, and all KLDs have a small value of 0.5 or less.
  • the classification result does not match the correct answer and the KLD takes a large value of 30 or more.
  • the KLD tends to increase when the classification result and the correct answer do not match, but even if the classification result matches the correct answer, only the KLD may increase.
  • FIG. 9 is a diagram showing an example of a change in distribution.
  • t represents a fixed time such as a day, a week, or a month.
  • each histogram in FIG. 9 is a plot of the scores output by each replica model with respect to the data classified into the class C by the original model.
  • the display control unit 155 can display the distribution comparison result by the detection unit 154 and the concept drift detection result on the screen via the output unit 13.
  • FIG. 10 is a diagram showing an example of a monthly display screen when concept drift does not occur. As shown in FIG. 10, the display control unit 155 displays the monthly change in KLD as a line graph on the monthly display screen. Further, the display control unit 155 displays the screen transition menu when the data point is clicked. The screen transition menu includes items "display details" and "display on a daily basis". The transition destination screen will be described later.
  • Display example of display device screen Here, a display example of the display screen of the display device will be described with reference to FIGS. 11 to 15. Information indicating that a concept drift that the user needs to deal with has occurred is displayed on the screen of the display device.
  • concept drift such as incremental drift, sudden drift, and recurring drift.
  • Incremental drift is a phenomenon in which the accuracy of the model gradually decreases due to concept drift.
  • Sudden drift is a phenomenon in which the accuracy of a model drops sharply due to concept drift.
  • Recurring drift is a phenomenon in which the accuracy of a model decreases only at a specific timing on a periodic time axis due to concept drift.
  • the accuracy of the model decreases relatively as the tendency of the data changes, but the accuracy of the model that the user can tolerate varies from user to user. For example, consider the case where the model classifies each stock into one of "buy”, “sell”, and “neutral” in stock trading. In this case, since it is necessary to maintain a state in which the accuracy of the model is high, it is necessary to immediately perform re-learning with the data of the new tendency when the accuracy of the model deteriorates even a little. Then, it is necessary to update the currently operating model to the retrained model. On the other hand, consider the case of determining whether the indoor environment is hot or not.
  • the timing for re-learning the model can be determined according to the accuracy of the model that the user can tolerate.
  • FIG. 11 is a diagram showing an example of a monthly display screen when incremental drift occurs.
  • the generation unit 152 acquires the operation data input to the trained model. Then, the generation unit 152 calculates an index indicating the magnitude of the change in the output result of the model due to the time change of the tendency of the operation data based on the acquired operation data.
  • the generation unit 152 determines whether or not a concept drift that the user needs to deal with has occurred based on the comparison between the calculated index and the preset threshold value. When it is determined that the concept drift that the user needs to deal with has occurred, the generation unit 152 causes the display screen to display information indicating that the concept drift that the user needs to deal with has occurred.
  • the generation unit 152 generates a plurality of replica models by changing predetermined parameters of the original model, which is a model for calculating a score for classifying data into one of a plurality of classes.
  • the detection unit 154 has an index indicating the magnitude of the difference between the distribution of the score obtained by inputting the training data into the replica model and the distribution of the output obtained by inputting the operational data into the replica model when the threshold value or more. In some cases, it detects that a concept drift has occurred that the user needs to address.
  • the detection unit 154 replicas the distribution of scores obtained by inputting the training data at the time of learning of the original model into the replica model and the data of each of the plurality of times after the learning time among the time series data. Get the distribution of scores obtained by inputting into the model. Then, the detection unit 154 detects that a concept drift that the user needs to deal with has occurred when the index indicating the magnitude of the difference in each distribution is equal to or greater than the threshold value. In addition, the display control unit 155 displays information on each index of the plurality of times on the screen. Then, the display control unit 155 further detects that the concept drift that the user needs to deal with has generated the information regarding the index of the time when it is detected that the concept drift that the user needs to deal with has occurred. Display in a manner different from the information regarding the index of time not being used.
  • the detection unit 154 sets a threshold value for an index indicating the magnitude of the difference in each distribution.
  • the threshold can be set according to the accuracy of the model that the user can tolerate.
  • the detection unit 154 receives a value related to the accuracy of the model that can be tolerated by the user. Then, the detection unit 154 sets a value corresponding to the received value as a threshold value.
  • the threshold value can be set by using the information on the accuracy of the model required in the industry.
  • the detection unit 154 identifies the accuracy of the model required in the industry from the user's industry information. Then, the detection unit 154 determines the threshold value from the accuracy of the specified model. For example, with the accuracy of a model that detects a defective product from an image of a product, even one defective product must not be overlooked, so it is necessary to set a threshold value according to the high accuracy.
  • the display control unit 155 displays each index of a plurality of times as a line graph.
  • the display control unit 155 corresponds to the time when the user needs to deal with the concept drift and corresponds to the time when the user does not detect the concept drift. Display so that at least one of color, shape, and size is different.
  • the display control unit 155 displays information indicating the generated concept drift on the display screen, and displays the concept drift that the user needs to deal with and the concept drift that the user does not need to deal with in different modes. To display.
  • the generation unit 152 displays each index of a plurality of times on the display screen as a line graph.
  • the generation unit 152 has detected that the concept drift that the user needs to deal with has occurred at a point corresponding to the time when the concept drift that the user needs to deal with has occurred. Display so that at least one of the color, shape, and size is different from the point corresponding to no time.
  • the display control unit 155 displays the data points before October 2018, which have not detected the concept drift that the user needs to deal with, with white circles.
  • the display control unit 155 displays the data points of November 2018, which detected the concept drift that the user needs to deal with, with a black circle and a large circle surrounding the circle.
  • the display control unit 155 displays a message that incremental drift has occurred in the vicinity of the data point in November 2018 when the concept drift that the user needs to deal with is detected.
  • the display control unit 155 may display a message by a tooltip.
  • the display control unit 155 displays the detailed display screen when "display details" is selected from the transition menu.
  • FIG. 12 is a diagram showing an example of a detailed display screen.
  • the display control unit 155 displays a detailed display screen of a histogram of the output distribution obtained by inputting the training data into the replica model and a histogram showing the output distribution obtained by inputting the data at the specified time into the replica model. To display.
  • Each histogram may be similar to that described with reference to FIG. Further, the display control unit 155 may display the value of each variable of the input data corresponding to the selected data point.
  • the learning unit 151 When the learning unit 151 detects that the concept drift that the user needs to deal with has occurred, the learning unit 151 displays information indicating that the concept drift that the user needs to deal with has occurred on the display screen of the display device. At this time, the learning unit 151 receives from the user whether or not to execute the re-learning. Then, when the user accepts to execute the re-learning, the learning unit 151 extracts the latest operational data at the time when the concept drift that the user needs to deal with occurs from the time-series data. .. Specifically, the learning unit 151 extracts operational data before a preset period from the time when the concept drift that the user needs to deal with occurs. Then, the learning unit 151 executes re-learning using the operational data and generates a new model.
  • the learning unit 151 executes re-learning using a neural network.
  • the learning unit 151 can perform re-learning using the input data displayed on the detailed display screen as learning data.
  • the label of the learning data in the re-learning may be manually assigned, or may be automatically assigned based on the output of the original model and the replica model.
  • the learning unit 151 inputs the extracted operational data from the input layer and propagates it forward to the neural network. Then, the classification result obtained from the output layer is compared with the correct answer (correct example / negative example) of the user operation to obtain the error. Further, the error back propagation method propagates the error between the classification result and the correct answer to the neural network in the direction opposite to that at the time of classification, and changes the parameters of each layer of the neural network to approach the optimum solution.
  • a neural network has been described as a learning model, the present invention is not limited to this, and other machine learning such as a logistic regression model or a support vector machine can also be adopted.
  • the learning unit 151 changes the current original model to a newly generated model.
  • FIG. 13 is a diagram showing an example of a monthly display screen when a sudden drift occurs.
  • the generation unit 152 acquires the operation data input to the trained model. Then, the generation unit 152 calculates an index indicating the magnitude of the change in the output result of the model due to the time change of the tendency of the operation data based on the acquired operation data, and the calculated index is used in time series. Identify changes in indicators. Further, the generation unit 152 determines whether or not a concept drift that the user needs to deal with has occurred based on the comparison between the change in the specified index and the preset threshold value. When it is determined that the concept drift that the user needs to deal with has occurred, the generation unit 152 causes the display screen to display information indicating that the concept drift that the user needs to deal with has occurred.
  • the display control unit 155 displays information indicating the generated concept drift on the display screen, and displays the concept drift that the user needs to deal with and the concept drift that the user does not need to deal with in different modes. Display on the screen.
  • the generation unit 152 displays each index of a plurality of times on the display screen as a line graph.
  • the generation unit 152 has detected that the concept drift that the user needs to deal with has occurred at a point corresponding to the time when the concept drift that the user needs to deal with has occurred. Display so that at least one of the color, shape, and size is different from the point corresponding to no time.
  • the generation unit 152 generates a plurality of replica models by changing predetermined parameters of the original model, which is a model for calculating a score for classifying data into one of a plurality of classes. Then, the detection unit 154 replicas the distribution of the score obtained by inputting the training data at the time of learning of the original model into the replica model and the data of each of the plurality of times after the learning time among the time series data. Get the distribution of scores obtained by inputting into the model. Further, the detection unit 154 detects that a concept drift that the user needs to deal with occurs when the change in the time series of the index indicating the magnitude of the difference of each distribution satisfies a predetermined condition.
  • the detection unit 154 detects that a concept drift that the user needs to deal with occurs when the amount of change in the index in time series is equal to or greater than the threshold value. As shown in FIG. 13, since the KLD increased sharply in November 2018, the detection unit 154 detects that the sudden drift occurred in November 2018. In this case, it is assumed that the KLD is 10 or less, which is the threshold of incremental drift, but the amount of change between October 2018 and November 2018 is more than the threshold of sudden drift.
  • the display control unit 155 displays a message that sudden drift has occurred near the data point in November 2018 when the concept drift that the user needs to deal with is detected. On the other hand, the display control unit 155 displays the data points before October 2018, which have not detected the concept drift that the user needs to deal with, with white circles.
  • the learning unit 151 detects that the learned user needs to deal with the concept drift, the learning unit 151 displays information indicating that the user needs to deal with the concept drift on the display screen of the display device. To display. At this time, the learning unit 151 receives from the user whether or not to execute the re-learning. Then, when the user accepts to execute the re-learning, the learning unit 151 extracts the latest operational data at the time when the concept drift that the user needs to deal with occurs from the time-series data. .. Specifically, the learning unit 151 extracts operational data before a preset period from the time when the concept drift that the user needs to deal with occurs. The learning unit 151 relearns using the operation data before the preset period.
  • the KLD on the monthly display screen described so far may be, for example, the total value of the daily KLD.
  • the generation unit 152 generates a plurality of replica models by changing predetermined parameters of the original model, which is a model for calculating a score for classifying the data into one of a plurality of classes.
  • the detection unit 154 replicas the distribution of the score obtained by inputting the training data at the time of learning of the original model into the replica model and the data of each of the plurality of times after the learning time among the time series data. Get the distribution of scores obtained by inputting into the model.
  • the display control unit 155 displays on the screen the total value of the indexes indicating the magnitude of the difference of each distribution acquired by the detection unit 154 at regular intervals.
  • the detection unit 154 detects that a concept drift that the user needs to deal with has occurred when the index or the total value is equal to or greater than the threshold value. That is, the detection unit 154 detects that a concept drift that the user needs to deal with is generated based on the daily KLD and / or the monthly KLD. In this case, for example, even if the total KLD of a certain month does not exceed the first threshold value, if the KLD of one day of the day of the month is equal to or more than the second threshold value, the detection unit 154 , It is possible to detect that a concept drift that the user needs to deal with has occurred.
  • the display control unit 155 When the display control unit 155 detects a concept drift that the user needs to deal with, the display control unit 155 displays information on the concept drift on the screen. For example, the display control unit 155 displays a message to the effect that the concept drift has occurred on the monthly display screen even when the display control unit 155 detects that the concept drift that the user needs to deal with has occurred from the daily KLD. You may.
  • the display control unit 155 switches between a screen for displaying information on a plurality of indicators for each time and a screen for displaying information on the total value for each fixed period. For example, the display control unit 155 displays the daily display screen when "display by day" is selected from the monthly display transition menu.
  • FIG. 14 is a diagram showing an example of a monthly display screen when recurring drift occurs.
  • FIG. 15 is a diagram showing an example of a daily display screen.
  • the generation unit 152 acquires the operation data input to the trained model. Then, the generation unit 152 calculates the first index indicating the magnitude of the change in the output result of the model due to the time change of the tendency of the operation data based on the acquired operation data. Further, the generation unit 152 calculates the second index obtained by dividing the calculated first index by the periodic unit time of the operation data, and sets the calculated second index and the preset threshold value. Based on the comparison, determine if there is a concept drift that the user needs to address. When it is determined that the concept drift that the user needs to deal with has occurred, the generation unit 152 causes the display screen to display information indicating that the concept drift that the user needs to deal with has occurred.
  • the display control unit 155 displays information indicating the generated concept drift on the display screen, and displays the concept drift that the user needs to deal with and the concept drift that the user does not need to deal with in different modes. Display on the screen.
  • the generation unit 152 displays each index of a plurality of times on the display screen as a line graph.
  • the generation unit 152 has detected that the concept drift that the user needs to deal with has occurred at a point corresponding to the time when the concept drift that the user needs to deal with has occurred. Display so that at least one of the color, shape, and size is different from the point corresponding to no time.
  • the display control unit 155 displays a message that recurring drift has occurred near the data point in November 2018 when the concept drift that the user needs to deal with is detected. On the other hand, the display control unit 155 displays the data points before October 2018, which have not detected the concept drift that the user needs to deal with, with white circles.
  • the generation unit 152 generates a plurality of replica models by changing predetermined parameters of the original model, which is a model for calculating a score for classifying data into one of a plurality of classes. Then, the detection unit 154 replicas the distribution of the score obtained by inputting the training data at the time of learning of the original model into the replica model and the data of each of the plurality of times after the learning time among the time series data. Get the distribution of scores obtained by inputting into the model. Further, the detection unit 154 detects that a concept drift that the user needs to deal with occurs when the index indicating the magnitude of the difference of each distribution satisfies a predetermined condition at a constant cycle. For example, the detection unit 154 detects that a concept drift that the user needs to deal with has occurred when the index exceeds the threshold value at regular intervals.
  • the display control unit 155 displays the KLD together with the date and the day of the week on the daily display screen.
  • the KLD of 11/6 (Wednesday), 11/13 (Wednesday), 11/20 (Wednesday), and 11/27 (Wednesday) is 0.4 or more of the threshold value. From this, the detection unit 154 detects that the concept drift that the user needs to deal with periodically occurs every Wednesday every other week.
  • the display control unit 155 detects the concept drift that the user needs to deal with, and is the data point of 11/6 (Wednesday), 11/13 (Wednesday), 11/20 (Wednesday), and 11/27 (Wednesday). Display a message in the vicinity.
  • the learning unit 151 uses the time-series data that satisfies a predetermined condition as a new model. To learn. For example, in the example of FIG. 15, the learning unit 151 may learn a new model for Wednesday using only the data of every Wednesday. That is, the learning unit 151 learns the operational data of Wednesday, November 2018, which the user needs to deal with.
  • the learning unit 151 detects that the concept drift that the user needs to deal with has occurred, the display screen of the display device displays information indicating that the concept drift that the user needs to deal with has occurred. To display. At this time, the learning unit 151 receives from the user whether or not to execute the re-learning. Then, when the user accepts to execute the re-learning, the learning unit 151 extracts the latest operational data at the time when the concept drift that the user needs to deal with occurs from the time-series data. .. Specifically, the learning unit 151 extracts operational data in the same time unit before a preset period, starting from the time when the concept drift that the user needs to deal with occurs. The learning unit 151 relearns using the operation data before the preset period.
  • FIG. 16 is a flowchart showing a processing flow during learning of the detection device.
  • the detection device 10 generates an original model by learning the training data (step S101).
  • the detection device 10 generates a replica model group in which predetermined parameters of the original model are changed (step S102).
  • the detection device 10 saves information regarding the distribution of the output when the training data is input to the replica model group (step S103).
  • FIG. 17 is a flowchart showing a processing flow during learning of the detection device.
  • the detection device 10 calculates the output when the operation data is input to the original model (step S201).
  • the detection device 10 can obtain an inference result based on the output calculated in step S201.
  • the detection device 10 acquires the distribution of the output when the operation data is input to the replica model group (step S202). Then, the detection device 10 calculates an index for evaluating the difference between the distribution acquired at the time of operation and the distribution acquired at the time of learning (step S203).
  • the distribution acquired during operation is the distribution acquired by the detection device 10 in step S202.
  • the distribution acquired at the time of learning was acquired by the detection device 10 in step S103 of FIG. Also, for example, the index is KLD.
  • the detection device 10 determines whether or not the index satisfies the condition (step S204). When the index satisfies the condition (step S204, Yes), the detection device 10 detects the concept drift and outputs an alert (step S205). The alert may be, for example, a message as shown in FIG. If the index does not satisfy the condition (step S204, No), the detection device 10 outputs an inference result based on the output of the original model (step S206).
  • the conditions here are the conditions for detecting each type of concept drift described above.
  • the generation unit 152 generates a plurality of replica models by changing predetermined parameters of the trained original model.
  • the detection unit 154 has an output distribution obtained by inputting the training data used for training the original model into the replica model and an output distribution obtained by inputting predetermined data different from the training data into the replica model. Detect differences. As described above, if the original model has already been generated, the detection device 10 can generate a replica model without learning and detect the concept drift. As a result, the detection device 10 can detect the concept drift with a small amount of calculation.
  • the detection unit 154 acquires the distribution of the output obtained by inputting the learning data used for learning the original model into the replica model, which is the data at the time of learning the original model among the time series data.
  • the detection unit 154 acquires the distribution of the output obtained by inputting the data at a predetermined time after the learning time into the replica model among the time series data.
  • the detection unit 154 detects the difference in each distribution. In this way, the detection device 10 can evaluate the difference in the output distribution of the time-series data at the time of learning and at the time of operation. As a result, the detection device 10 can detect the concept drift in the time series data with a small amount of calculation.
  • the generation unit 152 generates a plurality of replica models by changing predetermined parameters of the original model, which is a model for calculating a score for classifying data into one of a plurality of classes.
  • the detection unit 154 determines the KLD (Kullback-Leibler variance) between the distribution of the score obtained by inputting the training data into the replica model and the distribution of the output obtained by inputting predetermined data different from the training data into the replica model. Based on this, the difference is detected. As described above, the detection device 10 can easily evaluate the difference between distributions by using KLD.
  • the generation unit 152 generates a replica model by multiplying a predetermined parameter by a random number according to a normal distribution having an average of 1.0 and a standard deviation of 0.3. In this way, the detection device 10 can prevent the gap between the original model and the replica model from becoming too large. As a result, the detection device 10 can reduce erroneous detection of concept drift.
  • the generation unit 152 generates a plurality of neural networks as a replica model by changing the weights and biases in a predetermined layer of the trained original model neural network. As a result, the detection device 10 can generate a replica model when the original model is a neural network.
  • the generation unit 152 generates a plurality of SVMs as replica models by changing the weights and biases of each feature amount in the identification function of the SVMs that are the trained original models. As a result, the detection device 10 can generate a replica model when the original model is an SVM.
  • the generation unit 152 generates a plurality of logistic regression models as replica models by changing the weights and biases of each feature amount in the determination function of the logistic regression model which is the trained original model. As a result, the detection device 10 can generate a replica model when the original model is a logistic regression model.
  • the generation unit 152 generates a plurality of decision trees as a replica model by changing the threshold value of the information gain of the decision tree which is the learned original model. As a result, the detection device 10 can generate a replica model when the original model is a decision tree.
  • the detection unit 154 detects a difference
  • the learning unit 151 relearns the original model using predetermined data.
  • the detection device 10 can adapt the original model to the concept drift.
  • the generation unit 152 generates a plurality of replica models by changing predetermined parameters of the original model, which is a model for calculating a score for classifying data into one of a plurality of classes.
  • the index indicating the magnitude of the difference between the score distribution obtained by inputting the training data into the replica model and the output distribution obtained by inputting the operational data into the replica model is equal to or greater than the threshold value. Detects that a concept drift has occurred that the user needs to address. As a result, the detection device 10 can detect the incremental drift with a small amount of calculation.
  • the detection unit 154 uses the distribution of scores obtained by inputting the training data at the time of training of the original model into the replica model and the data of each of the plurality of times after the training to the replica model among the time series data. Get the distribution of the score obtained by inputting.
  • the detection unit 154 detects that a concept drift that the user needs to deal with has occurred when the index indicating the magnitude of the difference in each distribution is equal to or greater than the threshold value.
  • the display control unit 155 displays information on each index of a plurality of times on the screen.
  • the display control unit 155 further provides information on an index of time when it is detected that a concept drift that the user needs to deal with has been provided, and also relates to an index of time that the user has not detected the concept drift that needs to be dealt with. Display in a manner different from the information. As a result, the detection device 10 can detect the incremental drift of the time series data and present the detection result in an intuitive manner.
  • the display control unit 155 displays each index of a plurality of times as a line graph.
  • the display control unit 155 corresponds to the time when it is detected that the concept drift that the user needs to deal with occurs at the time when the concept drift that the user needs to deal with is not detected. Display the corresponding points so that at least one of color, shape, and size is different.
  • the detection device 10 can detect the incremental drift of the time series data and present the detection result in an intuitive manner.
  • the display control unit 155 displays on the screen a histogram of the output distribution obtained by inputting the training data into the replica model and a histogram showing the output distribution obtained by inputting the data at the specified time into the replica model. Let me. As a result, the detection device 10 can present the occurrence of concept drift from various aspects and promote the understanding of the user.
  • the learning unit 151 detects that the concept drift that the user needs to deal with has occurred, the learning unit 151 is the latest in the time series data at the time when the concept drift that the user needs to deal with is detected. Relearn the original model using the data. As a result, the detection device 10 can adapt the original model to the incremental drift.
  • the generation unit 152 generates a plurality of replica models by changing predetermined parameters of the original model, which is a model for calculating a score for classifying data into one of a plurality of classes.
  • the detection unit 154 uses the distribution of scores obtained by inputting the training data at the time of training of the original model into the replica model and the data of each of the plurality of times after the training to the replica model among the time series data. Get the distribution of the score obtained by inputting.
  • the detection unit 154 detects that a concept drift that the user needs to deal with occurs when the time-series change of the index indicating the magnitude of the difference of each distribution satisfies a predetermined condition. As a result, the detection device 10 can detect the sudden drift of the time series data with a small amount of calculation.
  • the detection unit 154 detects that a concept drift that the user needs to deal with has occurred when the amount of change in the index in time series is equal to or greater than the threshold value. As a result, the detection device 10 can detect the sudden drift of the time series data.
  • the learning unit 151 detects that the concept drift that the user needs to deal with has occurred, the learning unit 151 is the latest in the time series data at the time when the concept drift that the user needs to deal with is detected. Relearn the original model using the data. As a result, the detection device 10 can adapt the original model to the sudden drift.
  • the generation unit 152 generates a plurality of replica models by changing predetermined parameters of the original model, which is a model for calculating a score for classifying data into one of a plurality of classes.
  • the detection unit 154 uses the distribution of scores obtained by inputting the training data at the time of training of the original model into the replica model and the data of each of the plurality of times after the training to the replica model among the time series data. Get the distribution of the score obtained by inputting.
  • the display control unit 155 displays on the screen the total value of the indexes indicating the magnitude of the difference of each distribution acquired by the detection unit 154 at regular intervals. As a result, the detection device 10 can detect that a concept drift that the user needs to deal with in a predetermined period has occurred with a small amount of calculation.
  • the detection unit 154 detects that a concept drift that the user needs to deal with has occurred when the index or the total value is equal to or greater than the threshold value.
  • the display control unit 155 detects a concept drift that the user needs to deal with, the display control unit 155 displays information on the concept drift on the screen.
  • the detection device 10 can detect the occurrence of concept drift that the user needs to address in both a narrow time range and a wide time range.
  • the display control unit 155 switches between a screen for displaying information on a plurality of indicators for each time and a screen for displaying information on the total value for each fixed period.
  • the detector 10 can present information about both narrow time range and wide time range concept drift.
  • the learning unit 151 detects that the concept drift that the user needs to deal with has occurred, the learning unit 151 is the latest in the time series data at the time when the concept drift that the user needs to deal with is detected. Relearn the original model using the data. As a result, the detection device 10 can adapt the original model to the concept drift.
  • the generation unit 152 generates a plurality of replica models by changing predetermined parameters of the original model, which is a model for calculating a score for classifying data into one of a plurality of classes.
  • the detection unit 154 uses the distribution of scores obtained by inputting the training data at the time of training of the original model into the replica model and the data of each of the plurality of times after the training to the replica model among the time series data. Get the distribution of the score obtained by inputting.
  • the detection unit 154 detects that a concept drift that the user needs to deal with occurs when the index indicating the magnitude of the difference in each distribution satisfies a predetermined condition at a constant cycle. As a result, the detection device 10 can detect the recurring drift of the time series data with a small amount of calculation.
  • the detection unit 154 detects that a concept drift that the user needs to deal with has occurred when the index exceeds the threshold value at regular intervals. As a result, the detection device 10 can detect the recurring drift of the time series data.
  • the learning unit 151 detects that a concept drift that the user needs to deal with has occurred, the learning unit 151 learns a new model by using the time-series data that satisfies a predetermined condition. Do. As a result, the detection device 10 can adapt the new model to the recurring drift.
  • the detection device 10 can detect concept drift even when the algorithm of each model is an algorithm other than the neural network.
  • the algorithm may be SVM (Support Vector Machine).
  • the generation unit 152 generates a plurality of SVMs as replica models by changing the weights and biases for each feature amount in the discriminant function of the SVMs that are the trained original models. Equation (3) is an SVM identification function.
  • the generation unit 152 generates a replica model by multiplying the weight a i and the bias b of the discrimination function by a random number. Similar to the neural network example described above, the generator 152 can multiply each parameter by a random number that follows a normal distribution with a mean of 1.0 and a standard deviation of 0.3.
  • the generation unit 152 can generate a plurality of logistic regression models as replica models by changing the weights and biases of each feature amount in the determination function of the logistic regression model which is the trained original model. .. Equation (4) is a decision function of logistic regression.
  • the generation unit 152 generates a replica model by multiplying the weight w i and the bias b of the determination function by a random number. Similar to the neural network example described above, the generator 152 can multiply each parameter by a random number that follows a normal distribution with a mean of 1.0 and a standard deviation of 0.3.
  • the generation unit 152 can generate a plurality of decision trees as a replica model by changing the threshold value of the information gain of the decision tree which is the trained original model.
  • the generation unit 152 generates a replica model by multiplying the threshold value of the information gain of each question by a random number. Similar to the neural network example described above, the generator 152 can multiply each parameter by a random number that follows a normal distribution with a mean of 1.0 and a standard deviation of 0.3.
  • FIG. 18 is a diagram for explaining the parameters of the decision tree.
  • the threshold of information gain for the question “Temperature 25 ° C or higher?" Is 25.
  • the generation unit 152 uses values such as 25.1 and 24.5 obtained by multiplying 25 by a random number to generate a decision tree with questions such as "temperature 25.1 ° C or higher?" And "temperature 24.5 ° C or higher?" As a replica model. Can be done.
  • each component of each device shown in the figure is a functional concept, and does not necessarily have to be physically configured as shown in the figure. That is, the specific form of distribution and integration of each device is not limited to the one shown in the figure. That is, all or a part thereof can be functionally or physically distributed / integrated in an arbitrary unit according to various loads, usage conditions, and the like. Further, each processing function performed by each device may be realized by a CPU and a program analyzed and executed by the CPU, or may be realized as hardware by wired logic.
  • FIG. 19 is a diagram illustrating a hardware configuration example.
  • the detection device 10 includes a communication interface 10a, an HDD (Hard Disk Drive) 10b, a memory 10c, and a processor 10d. Further, the parts shown in FIG. 19 are connected to each other by a bus or the like.
  • HDD Hard Disk Drive
  • the communication interface 10a is a network interface card or the like, and communicates with other servers.
  • the HDD 10b stores a program and a DB that operate the functions shown in FIG.
  • the processor 10d is a hardware that operates a process that executes each function described in FIG. 2 or the like by reading a program that executes the same processing as each processing unit shown in FIG. 2 from the HDD 10b or the like and expanding the program into the memory 10c. It is a wear circuit. That is, this process executes the same function as each processing unit of the detection device 10. Specifically, the processor 10d reads a program having the same functions as the learning unit 151, the generation unit 152, the calculation unit 153, the detection unit 154, and the display control unit 155 from the HDD 10b or the like. Then, the processor 10d executes a process of executing the same processing as the learning unit 151, the generation unit 152, the calculation unit 153, the detection unit 154, the display control unit 155, and the like.
  • the detection device 10 operates as an information processing device that executes the detection method or the display method by reading and executing the program. Further, the detection device 10 can realize the same function as that of the above-described embodiment by reading the program from the recording medium by the medium reading device and executing the read program.
  • the program referred to in the other embodiment is not limited to being executed by the detection device 10.
  • the present invention can be similarly applied when another computer or server executes a program, or when they execute a program in cooperation with each other.
  • This program can be distributed via networks such as the Internet.
  • this program is recorded on a computer-readable recording medium such as a hard disk, flexible disk (FD), CD-ROM, MO (Magneto-Optical disk), DVD (Digital Versatile Disc), and is recorded from the recording medium by the computer. It can be executed by being read.

Abstract

情報処理装置は、モデルに入力される運用データを取得する。情報処理装置は、取得した運用データに基づいて、運用データの傾向の時間変化に起因するモデルの出力結果の大きさを示す第一の指標を算出する。情報処理装置は、算出された第一の指標を、運用データの周期的な単位時間で区分した第二の指標を算出する。情報処理装置は、算出された第二の指標と予め設定された閾値との比較に基づいて、ユーザが対応する必要のあるコンセプトドリフトが発生したか否かを判定する。情報処理装置は、ユーザが対応する必要のあるコンセプトドリフトが発生したと判定された場合は、ユーザが対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示画面に表示させる。

Description

表示方法、表示プログラム及び情報処理装置
 本発明は、表示方法、表示プログラム及び情報処理装置に関する。
 従来、コンセプトドリフトを検出するための手法が提案されている。ここで、コンセプトドリフトとは、AIシステムに入力されるデータの質が時間の経過とともに変化していくことである。AIシステムは、入力されたデータに対して学習器を用いた各種推論を行うものである。また、学習器の学習は開発時に行われる。このため、コンセプトドリフトが発生すると、AIシステムの精度が相対的に低下する場合がある。
Tegjyot Singh Sethi, Mehmed Kantardzic, "On the reliable detection of concept drift from streaming unlab ele d data", Expert Systems With Applications 82 (2017) 77-99
 しかしながら、上記の手法には、計算コストが大きくなる場合があるという問題がある。例えば、従来、複数の学習器をアンサンブルし多数決を行う手法が知られている。この手法では、複数の学習器のそれぞれについて学習を行う必要があるため、計算量が増大する場合がある。
 1つの側面では、少ない計算量でコンセプトドリフトを検出することを目的とする。
 1つの態様において、コンピュータは、モデルに入力される運用データを取得する。コンピュータは、取得した運用データに基づいて、運用データの傾向の時間変化に起因するモデルの出力結果の大きさを示す第一の指標を算出する。コンピュータは、算出された第一の指標を、運用データの周期的な単位時間で区分した第二の指標を算出する。コンピュータは、算出された第二の指標と予め設定された閾値との比較に基づいて、ユーザが対応する必要のあるコンセプトドリフトが発生したか否かを判定する。コンピュータは、ユーザが対応する必要のあるコンセプトドリフトが発生したと判定された場合は、ユーザが対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示画面に表示させる。
 1つの側面では、少ない計算量でコンセプトドリフトを検出することができる。
図1は、コンセプトドリフトを説明するための図である。 図2は、実施例1の検出装置の構成例を示す図である。 図3は、検出装置の処理の流れを説明するための図である。 図4は、ニューラルネットワークのパラメータについて説明するための図である。 図5は、レプリカモデルについて説明するための図である。 図6は、学習データに対する出力の分布を取得する方法を説明するための図である。 図7は、運用データに対する出力の分布を取得する方法を説明するための図である。 図8は、KLDの変化の一例を示す図である。 図9は、分布の変化の一例を示す図である。 図10は、コンセプトドリフト非発生時の月単位表示画面の一例を示す図である。 図11は、incremental drift発生時の月単位表示画面の一例を示す図である。 図12は、詳細表示画面の一例を示す図である。 図13は、sudden drift発生時の月単位表示画面の一例を示す図である。 図14は、recurring drift発生時の月単位表示画面の一例を示す図である。 図15は、日単位表示画面の一例を示す図である。 図16は、検出装置の学習時の処理の流れを示すフローチャートである。 図17は、検出装置の運用時の処理の流れを示すフローチャートである。 図18は、決定木のパラメータについて説明するための図である。 図19は、ハードウェア構成例を説明する図である。
 以下に、本発明に係る表示方法、表示プログラム及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例により本発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。また、実施例の検出装置は、検出方法及び表示方法を実行する情報処理装置ということができる。
[コンセプトドリフトについて]
 まず、コンセプトドリフトについて説明する。ここで、ラベルが既知の学習データを用いて学習が行われた学習済みのモデルをオリジナルモデルと呼ぶ。また、本実施例におけるモデルは、特徴量を基にデータが属するクラスを推定し分類する分類器であるものとする。分類器は、各データについてクラスごとのスコアを計算し、スコアに基づいて分類を行う。ここで、スコアは、データが各クラスに属する確率であってもよい。また、分類器は、正常であるか否か等の2つのクラスの分類を行うものであってもよいし、3つ以上のクラスの分類を行うものであってもよい。
 図1は、コンセプトドリフトを説明するための図である。図1の左図及び右図は、横軸及び縦軸がそれぞれ異なる特徴量である平面上に、各クラスの学習時及び運用時におけるデータ点、及びオリジナルモデルを表す曲線を描画したものである。図1の○、△、×のデータ点は、それぞれクラスA、クラスB、クラスCに属するデータに対応している。
 図1の左図に示すように、学習時において、オリジナルモデルは各クラスのデータを高い精度で分類することができている。一方で、運用時においては、特にクラスBとクラスCの分布が大きく変化し、オリジナルモデルの分類精度が低下している。このように、モデルの運用時に、学習時と比べてデータの質が変化していく現象がコンセプトドリフトである。言い換えれば、運用データの傾向の時間変化に起因するモデルの出力結果の変化が大きくなることである。そして、図1に示すように、コンセプトドリフトが発生すると、モデルの精度が相対的に低下する場合がある。
 例えば、モデルが、株式取引において、各銘柄を「買い」、「売り」、「中立」のいずれかに分類するものである場合を考える。この場合、2018年のデータで学習を行ったモデルが、2019年初頭には高い精度を示すが、2019年半ばにはデータの傾向が変わり、精度が低下するというケースが考えられる。
 また、室内環境が暑いか否かを判断するためのモデルの学習を、6月のデータを使って行った場合、8月には、モデルの判断結果がユーザの感覚と合わなくなっていることが考えられる。これは、人間が暑さになれる暑熱馴化がコンセプトドリフトとして現れるためである。例えば、ユーザは、6月には暑いと感じていた室温に対して8月には暑いと感じなくなる場合がある。
 また、あるプログラムがマルウェアであるか否かに分類するモデルの分類精度は、マルウェアの進化にともなって発生するコンセプトドリフトにより低下していくことが考えられる。既存の手法では検知されないようなマルウェアが日夜開発されているため、時間経過によりそれまで知られていなかった特徴を持つマルウェアが出現する場合がある。
 また、例えば、モデルは、製造ラインにおいて、製造環境の温度や明るさ等の条件、及び各工程で得られる所定の測定値を特徴量とし、成果物が不良品であるか否かを判定することができる。この場合、環境の変化等がコンセプトドリフトとして現れ、モデルの判定精度が低下することが考えられる。
 本実施例の検出装置は、上記のようなコンセプトドリフトの影響を受けるあらゆるモデルに適用することができる。本実施例の検出装置は、オリジナルモデルから生成した複数のレプリカモデルを用いてコンセプトドリフトの検出を行う。レプリカモデルの生成には学習を要しないため、検出装置は少ない計算量でレプリカモデルを生成することができる。
 なお、多くの場合、運用時のデータが属する真のクラスは不明であるが、図1では説明のため、運用時のデータ点についても各クラスに対応する○、△、×の各形状を割り当てている。本実施例の検出装置は、運用時のデータの真のクラスが不明であってもユーザが対応する必要のあるコンセプトドリフトを検出することを目的としている。
 また、ユーザが対応する必要のあるコンセプトドリフトが検出された場合、自動又は手動でのオリジナルモデルの再学習、及びコンセプトドリフトの原因となった不適正なデータの除外といった対策が講じられる場合がある。
[機能構成]
 図2を用いて、実施例に係る検出装置の構成を説明する。図2は、実施例1の検出装置の構成例を示す図である。図2に示すように、検出装置10は、通信部11、入力部12、出力部13、記憶部14及び制御部15を有する。
 通信部11は、他の装置との間でデータの通信を行うためのインタフェースである。例えば、通信部11は、NIC(Network Interface Card)であり、インターネットを介してデータの通信を行うものであってもよい。
 入力部12は、データの入力を受け付けるためのインタフェースである。例えば、入力部12は、キーボードやマウス等の入力装置等の入力装置であってもよい。また、出力部13は、データを出力するためのインタフェースである。出力部13は、ディスプレイやスピーカ等の出力装置であってもよい。また、入力部12及び出力部13は、USBメモリ等の外部記憶装置との間でデータの入出力を行うものであってもよい。
 記憶部14は、データや制御部15が実行するプログラム等を記憶する記憶装置の一例であり、例えばハードディスクやメモリ等である。記憶部14は、オリジナルモデル情報141、レプリカモデル情報142及び分布情報143を記憶する。
 オリジナルモデル情報141は、オリジナルモデルを構築するためのパラメータ等の情報である。例えば、オリジナルモデルがニューラルネットワークである場合、オリジナルモデル情報141は、各層の重み及びバイアスである。
 レプリカモデル情報142は、レプリカモデルを構築するためのパラメータ等の情報である。本実施例では、レプリカモデルとオリジナルモデルのアルゴリズムは共通であるものとする。このため、例えば、オリジナルモデルのアルゴリズムがニューラルネットワークであれば、レプリカモデルのアルゴリズムもニューラルネットワークである。この場合、レプリカモデル情報142は、ニューラルネットワークの各層の重み及びバイアスである。また、レプリカモデルは複数であってもよく、その場合、レプリカモデル情報142は複数のレプリカモデルのそれぞれに対応するパラメータである。レプリカモデルを生成する方法については後述する。
 分布情報143は、学習時のレプリカモデルの出力の分布に関する情報である。分布情報143は、運用時のデータを評価し、ユーザが対応する必要のあるコンセプトドリフトを検出するための基準となる情報である。分布情報143は、運用時のデータを評価値を計算するために十分な情報であればよい。例えば、分布情報143は、レプリカモデルの出力の全部又は一部であってもよいし、レプリカモデルの出力の分布を示す分布パラメータであってもよい。レプリカモデルの出力の分布を取得する方法については後述する。
 制御部15は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部15は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。制御部15は、学習部151、生成部152、計算部153、検出部154及び表示制御部155を有する。
 図3に示す処理の流れに沿って、制御部15の各部の詳細を説明する。図3は、検出装置の処理の流れを説明するための図である。検出装置10の処理は、学習フェーズと運用フェーズに分けられる。学習フェーズにおいて、検出装置10は、オリジナルモデル情報141、レプリカモデル情報142及び分布情報143を生成する。一方、運用フェーズにおいて、検出装置10は、オリジナルモデル情報141、レプリカモデル情報142及び分布情報143を用いてユーザが対応する必要のあるコンセプトドリフトの検出を行う。
(学習フェーズ)
 まず、学習フェーズの処理について説明する。図3のステップS11に示すように、学習部151は、学習データを基にオリジナルモデルを生成する。学習部151は、既知の手法で学習を行うことができる。例えば、オリジナルモデルがニューラルネットワークであれば、学習部151は、誤差逆伝播法により学習を行う。
 次に、生成部152は、学習済みのオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。以降の説明では、生成部152によって生成された複数のレプリカモデルをレプリカモデル群と呼ぶ場合がある。また、オリジナルモデルは第一のモデルの一例である。また、レプリカモデルは第二のモデルの一例である。
 生成部152は、学習済みのオリジナルモデルであるニューラルネットワークの所定の層における重み及びバイアスを変化させることにより、複数のニューラルネットワークをレプリカモデルとして生成する。
 図4は、ニューラルネットワークのパラメータについて説明するための図である。図4に示すように、オリジナルモデルのニューラルネットワークの出力層と隠れ層との間には、重みw_a1、w_a2、w_b1、w_b2、w_c1、w_c2、w_d1、w_d2及びバイアスb1、b2が設定されている。生成部152は、重み及びバイアスに、乱数を掛けることによりレプリカモデルを生成する。
 ε_iを、平均が1.0、標準偏差が0.3である正規分布に従う乱数であるものとする。このとき、生成部152は、1つ目のレプリカモデルとして、出力層と隠れ層との間に、重みw´_a1、w´_b1、w´_c1、w´_d1、w´_a2、w´_b2、w´_c2、w´_d2、及びバイアスb´1、b´2が設定されたニューラルネットワークを生成する。ただし、各パラメータは、例えばw´_a1 = w_a1 * 1.04、w´_a2 = w_a2 * 0.91、…、w´_d2 = w_d2 * 1.13、b1´ = b1 * 0.83, 、b2´ = b2 * 1.35のよう表される。
 レプリカモデルとオリジナルモデルとのかい離が大きすぎると、コンセプトドリフトの誤検出が起きやすくなる場合がある。このため、生成部152は、オリジナルモデルとのかい離がある程度狭い範囲に収まるようにレプリカモデルを生成する。例えば、生成部152は、所定のパラメータに平均が1.0、標準偏差が0.3である正規分布に従う乱数を掛けることによりレプリカモデルを生成する。
 計算部153は、実際にモデルに入力されたデータに対する出力を計算する。図3のステップS12に示すように、計算部153は、オリジナルモデルの学習に用いられた学習データをレプリカモデルに入力して得られる出力の分布に関する情報を分布情報143として記憶部14に格納する。また、計算部153は、レプリカモデル群の出力だけでなく、オリジナルモデルの出力を含めた分布に関する情報を分布情報143としてもよい。
 なお、学習部151は、計算部153と連動し、モデルの出力を最適化することによって学習を行う。一方で、生成部152は、計算部153による計算を行うことなくレプリカモデルを生成することができる。
 ここで、図5を用いて、レプリカモデルについて説明する。図5は、レプリカモデルについて説明するための図である。レプリカモデルを図1と同様の平面に描画すると、図5のように表される。すなわち、レプリカモデル群は、曲線であるオリジナルモデルの周囲に所定のばらつきを持って分散する曲線群、又は曲線群が形成する領域ということができる。
 図5の左図に示すように、学習時においては、レプリカモデル群は、オリジナルモデル群と同様の分類結果を示す。一方、図5の右図に示すように、運用時においては、オリジナルモデルの曲線の近傍に位置するデータ点に対しては、各レプリカモデルが異なる分類結果を示す場合がある。本実施例の検出装置10は、レプリカモデル群のそれぞれの出力の時間経過に伴う変化に着目してユーザが対応する必要のあるコンセプトドリフトを検出する。
 図6は、学習データに対する出力の分布を取得する方法を説明するための図である。本実施例では、オリジナルモデルは、データをクラスA、クラスB、クラスCのいずれかに分類するものとする。また、検出装置10は、各クラスごとに例えば70個の学習データを学習に用いるものとする。また、検出装置10は、例えば1,000個のレプリカモデルを生成するものとする。
 このとき、図6に示すように、計算部153は、クラスCに属することが既知の学習データs1、s2、…、s70のそれぞれを、レプリカモデルr1、r2、r1000のそれぞれに入力して、各クラスのスコアを計算する。例えば、スコアは、データが各クラスに属する確率である。例えば、(A0.0, B0.0, C1.0)は、データがクラスAに属する確率が0.0、クラスBに属する確率が0.0、クラスCに属する確率が1.0であることを示している。
(運用フェーズ)
 次に、運用フェーズの処理について説明する。図3のステップS21に示すように、計算部153は、オリジナルモデルに運用データを入力し、出力を計算する。例えば、出力は、分類対象のクラスごとのスコアである。このとき、出力部13は、分類結果として、クラスごとのスコア、又は最もスコアが大きかったクラスを特定する情報を出力することができる。
 また、学習データ及び運用データは時系列のデータであってもよい。このとき、学習データは、時系列のデータのうち、オリジナルモデルの学習時のデータということができる。一方、運用データは、時系列のデータのうち、学習時より後の所定の時間のデータということができる。
 そして、図3のステップS22に示すように、検出部154は、学習データをレプリカモデルに入力して得られる出力の分布と、運用データをレプリカモデルに入力して得られる出力の分布との差異を検出する。運用データは、学習データと異なる所定のデータの一例である。
 計算部153は、運用データを各レプリカモデルに入力し出力を計算する。検出部154は、計算部153によって計算された出力の分布を取得する。また、検出部154は、学習データをレプリカモデルに入力して得られる出力の分布を、分布情報143から取得する。
 図7は、運用データに対する出力の分布を取得する方法を説明するための図である。ここでは、運用データは1つであるものとする。また、前述の通り、例えば1,000個のレプリカモデルが生成されているものとする。
 このとき、図7に示すように、計算部153は、オリジナルモデルがクラスCに分類した運用データu1を、レプリカモデルr1、r2、…、r1000のそれぞれに入力して、各クラスのスコアを計算する。なお、運用データが単数の場合、図7のように、計算部153は、リアルタイム処理によりスコアを計算することができる。一方で、計算部153は、複数の運用データをまとめてバッチ処理によりスコアを計算してもよい。
 図3に戻り、検出部154は、学習データをレプリカモデルに入力して得られるスコアの分布と、運用データをレプリカモデルに入力して得られるスコアの分布とのKLD(Kullback-Leibler divergence)を基に、差異を検出する。KLDは、分布間の差異の大きさを示す指標の一例である。検出部154は、学習データのスコアの確率分布P(i)と運用データのスコアの確率分布Q(i)とのKLDを(1)式のように計算する。ただし、iは区分を示す識別子である。
Figure JPOXMLDOC01-appb-M000001
 さらに、検出部154は、(2)式のように、クラスA、クラスB及びクラスCについてのDKLの和を計算する。そして、検出部154は、各クラスのDKL又は計算したDKLの和が閾値以上である場合に、ユーザが対応する必要のあるコンセプトドリフトを検出する。
Figure JPOXMLDOC01-appb-M000002
 図8は、KLDの変化の一例を示す図である。「サンプルID」は、運用データに含まれる個別のデータを識別するためのIDである。また、ここでは、「正解」は、運用データの真の正解クラスである。また、「予測」は、オリジナルモデルによる分類結果である。
 図8に示すように、学習時又は学習直後においては、分類結果と正解が合致し、全てのKLDが0.5以下と小さい値を取っている。一方、運用時においては、分類結果と正解が合致しないものや、KLDが30以上の大きい値を取るものが多くなる。なお、分類結果と正解が合致しない場合にKLDは大きくなる傾向があるが、分類結果と正解が合致していたとしても、KLDだけが増加していく場合もある。
 図9を用いて、時間経過に伴う分布の変化について説明する。図9は、分布の変化の一例を示す図である。tは日、週、月等の一定の時間を表す。また、図9の各ヒストグラムは、オリジナルモデルがクラスCに分類したデータに対して、各レプリカモデルが出力したスコアをプロットしたものである。t=0のヒストグラムは、学習データに対するスコアをプロットしたものである。また、t=1以降のヒストグラムは、運用データに対するスコアをプロットしたものである。
 図9に示すように、t=0のヒストグラムでは、70個の学習データ全てに対し、1,000個のレプリカモデルの全てが(A0.0, B0.0, C1.0)というスコアを出力したことを示している。また、t=0の時点のKLDは0である。なお、オリジナルモデルの学習方法やレプリカモデルの生成方法によっては、t=0のヒストグラムにも多少のばらつきが発生する場合がある。
 そして、時間が経過するに従って、クラスBのスコアとクラスCのスコアのヒストグラムにばらつきが発生する。例えば、t=1の時点では、1個の運用データに対して1,000個のレプリカモデルのうちの多くが、(A0.0, B0.1, C0.9)のようなスコアを出力し始めている。さらに、t=2の時点では、クラスBに対して大きいスコアを出力するレプリカモデルが増加する。さらに、t=3の時点では、クラスCのスコアとクラスBのスコアが逆転するようなレプリカモデルが増加する。また、ヒストグラムのばらつきが大きくなるに従い、KLDも大きくなっている。
 検出部154がユーザが対応する必要のあるコンセプトドリフトを検出するための閾値は、データの分類が実施される業務の業種や内容及び求められる精度等によって異なる。例えば、図9の例において、KLDの閾値が10である場合、検出部154は、t=2の時点でユーザが対応する必要のあるコンセプトドリフトを検出する。
 表示制御部155は、検出部154による分布の比較結果及びコンセプトドリフトの検出結果を出力部13を介して画面に表示することができる。図10は、コンセプトドリフト非発生時の月単位表示画面の一例を示す図である。図10に示すように、表示制御部155は、月単位表示画面に、月ごとのKLDの変化を折れ線グラフで表示する。さらに、表示制御部155は、データ点がクリックされると、画面遷移メニューを表示する。画面遷移メニューには、「詳細を表示」及び「日単位で表示」という項目が含まれる。遷移先の画面については後述する。
(表示装置の画面の表示例)
 ここで、図11~図15を用いて、表示装置の表示画面の表示例について説明する。表示装置の画面には、ユーザが対応する必要のあるコンセプトドリフトが発生したことを示す情報が表示させる。ここで、コンセプトドリフトには、incremental drift、sudden drift、recurring driftといった種類があることが知られている。
 incremental driftとは、コンセプトドリフトによりモデルの精度が徐々に低下する現象をいう。sudden driftとは、コンセプトドリフトによりモデルの精度が急峻に低下する現象をいう。recurring driftとは、コンセプトドリフトによりモデルの精度が、周期的な時間軸で特定のタイミングのみ低下する現象をいう。
 なお、データの傾向が変わることでモデルの精度が相対的に低下するが、ユーザが許容できるモデルの精度は、ユーザ毎に変わってくる。例えば、モデルが、株式取引において、各銘柄を「買い」、「売り」、「中立」のいずれかに分類するものである場合を考える。この場合、モデルの精度が高い状態を維持することが必要であるため、モデルの精度が相対的に少しでも低下した場合には、即座に新しい傾向のデータによる再学習を実施する必要ある。そして、現在運用されているモデルを再学習されたモデルに更新する必要がある。一方で、室内環境が暑いか否かを判断する場合を考える。この場合では、ユーザによっては、暑さに耐性があるため、ある程度のモデルの精度の低下を許容することがあるため、新しい傾向のデータの変化が大きくなったときに、新しい傾向のデータによる再学習を実行すれば良い。そして、現在運用されているモデルを再学習されたモデルに更新する。
 つまり、ユーザが許容できるモデルの精度に応じて、モデルの再学習をするタイミングを決定することができる。
 図11は、incremental drift発生時の月単位表示画面の一例を示す図である。生成部152は、学習済みのモデルに入力される運用データを取得する。そして、生成部152は、取得した運用データに基づいて、運用データの傾向の時間変化に起因するモデルの出力結果の変化の大きさを示す指標を算出する。
 さらに、生成部152は、算出された指標と予め設定された閾値との比較に基づいて、ユーザが対応する必要のあるコンセプトドリフトが発生したか否かを判定する。生成部152は、ユーザが対応する必要のあるコンセプトドリフトが発生したと判定された場合は、ユーザが対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示画面に表示させる。
 具体的には、生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。そして、検出部154は、学習データをレプリカモデルに入力して得られるスコアの分布と、運用データをレプリカモデルに入力して得られる出力の分布との差異の大きさを示す指標が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。
 つまり、検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。そして、検出部154は、各分布の差異の大きさを示す指標が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。また、表示制御部155は、複数の時間のそれぞれの指標に関する情報を画面に表示させる。そして、表示制御部155は、さらに、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出された時間の指標に関する情報を、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出されていない時間の指標に関する情報と異なる態様で表示させる。
 このとき、検出部154は、各分布の差異の大きさを示す指標についての閾値を設定する。当該閾値は、ユーザが許容できるモデルの精度によって設定することができる。まず、検出部154は、ユーザから許容できるモデルの精度に関連する値を受け付ける。そして、検出部154は、受け付けた値に対応する値を閾値として設定する。なお、閾値の設定は、業種で求められるモデルの精度に関する情報を用いて行われることができる。検出部154は、ユーザの業種情報から、当該業種で求められるモデルの精度を特定する。そして、検出部154は、特定されたモデルの精度から閾値を決定する。例えば、製品を撮像した画像から不良品を検出するようなモデルの精度では、1つでも不良品を見逃してはいけないので、高い精度に応じた閾値を設定する必要がある。
 図11の例では、2018年7月以前の学習データを用いてオリジナルモデルの学習が行われたものとする。ここで、2018年7月、2018年8月等の月は、複数の時間の一例である。図11に示すように、2018年11月にKLDが閾値である10以上になるため、検出部154は、2018年11月にincremental driftを検出する。
 図11に示すように、表示制御部155は、複数の時間のそれぞれの指標を折れ線グラフで表示させる。表示制御部155は、折れ線グラフにおいて、ユーザが対応する必要のあるコンセプトドリフトを検出した時間に対応する点を、ユーザが対応する必要のあるコンセプトドリフトを検出していない時間に対応する点と、色、形、及び大きさの少なくともいずれかが異なるように表示させる。
 つまり、表示制御部155は、発生したコンセプトドリフトを示す情報を表示画面に表示させるとともに、ユーザが対応する必要のあるコンセプトドリフトと、ユーザが対応する必要のないコンセプトドリフトとを異なる態様で表示画面に表示させる。
 具体的には、生成部152は、複数の時間のそれぞれの指標を折れ線グラフで表示画面に表示させる。生成部152は、折れ線グラフにおいて、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出された時間に対応する点を、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出されていない時間に対応する点と、色、形、及び大きさの少なくともいずれかが異なるように表示させる。
 図11の例では、表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出していない2018年10月以前のデータ点を白抜きの丸で表示させている。一方で、表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出した2018年11月のデータ点を、黒塗りの丸及び当該丸を囲む大きいサイズの丸で表示させている。さらに、表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出した2018年11月のデータ点の近傍に、incremental driftが発生した旨のメッセージが表示される。また、表示制御部155は、ツールチップによりメッセージを表示させてもよい。
 表示制御部155は、遷移メニューの「詳細を表示」が選択されると、詳細表示画面を表示させる。図12は、詳細表示画面の一例を示す図である。表示制御部155は、学習データをレプリカモデルに入力して得られる出力の分布のヒストグラム、及び、指定された時間のデータをレプリカモデルに入力して得られる出力の分布を示すヒストグラムを詳細表示画面に表示させる。各ヒストグラムは、図9を用いて説明したものと同様のものであってもよい。さらに、表示制御部155は、選択されたデータ点に対応する入力データの各変数の値を表示させてもよい。
 学習部151は、ユーザの対応する必要のあるコンセプトドリフトが発生したことを検出した場合、ユーザの対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示装置の表示画面に表示させる。このとき、学習部151は、再学習を実行するか否かをユーザから受け付ける。そして、再学習を実行することをユーザから受け付けた場合には、学習部151は、時系列のデータのうち、ユーザの対応する必要のあるコンセプトドリフトが発生した時点における最新の運用データを抽出する。具体的には、学習部151は、ユーザの対応する必要のあるコンセプトドリフトが発生した時点を起点として、予め設定された期間前の運用データを抽出する。そして、学習部151は、運用データを用いて再学習を実行し、新たなモデルを生成する。例えば、学習部151は、ニューラルネットワークを用いて再学習を実行する。このとき、学習部151は、詳細表示画面に表示されている入力データを学習データとして再学習を行うことができる。なお、再学習における学習データのラベルは、人手によって付与されたものであってもよいし、オリジナルモデル及びレプリカモデルの出力を基に自動的に付与されたものであってもよい。
 学習部151は、抽出した運用データを入力層より入力してニューラルネットワークに順伝播させる。そして、出力層から得られる分類結果とユーザ操作の正解(正例・負例)とを比較して誤差を求める。さらに、誤差逆伝播法により、分類結果と正解との誤差を分類時と逆方向にニューラルネットワークに伝播させ、ニューラルネットワークの各階層のパラメータを変更して最適解に近づける。なお、学習モデルとして、ニューラルネットワークを用いた例を説明したが、これに限定されるものではなく、ロジスティック回帰モデルや、サポートベクターマシンなど他の機械学習を採用することもできる。学習部151は、現在のオリジナルモデルを、新たに生成されたモデルに変更する。
 図13は、sudden drift発生時の月単位表示画面の一例を示す図である。生成部152は、学習済みのモデルに入力される運用データを取得する。そして、生成部152は、取得した運用データに基づいて、運用データの傾向の時間変化に起因するモデルの出力結果の変化の大きさを示す指標を算出し、算出された指標から時系列での指標の変化を特定する。さらに、生成部152は、特定された指標の変化と予め設定された閾値との比較に基づいて、ユーザが対応する必要のあるコンセプトドリフトが発生したか否かを判定する。生成部152は、ユーザが対応する必要のあるコンセプトドリフトが発生したと判定された場合は、ユーザが対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示画面に表示させる。
 このとき、表示制御部155は、発生したコンセプトドリフトを示す情報を表示画面に表示させるとともに、ユーザが対応する必要のあるコンセプトドリフトと、ユーザが対応する必要のないコンセプトドリフトとを異なる態様で表示画面に表示させる。
 具体的には、生成部152は、複数の時間のそれぞれの指標を折れ線グラフで表示画面に表示させる。生成部152は、折れ線グラフにおいて、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出された時間に対応する点を、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出されていない時間に対応する点と、色、形、及び大きさの少なくともいずれかが異なるように表示させる。
 具体的には、生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。そして、検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。さらに、検出部154は、各分布の差異の大きさを示す指標の時系列での変化が所定の条件を満たす場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。
 つまり、検出部154は、指標の時系列での変化の量が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。図13に示すように、2018年11月にKLDが急激に増加しているため、検出部154は、2018年11月にsudden driftが発生したことを検出する。この場合、KLDはincremental driftの閾値である10以下であるものの、2018年10月と2018年11月との間の変化の量がsudden driftの閾値以上であるものとする。
 表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出した2018年11月のデータ点の近傍に、sudden driftが発生した旨のメッセージを表示させている。一方で、表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出していない2018年10月以前のデータ点を白抜きの丸で表示させている。
 さらに、学習部151は、学習済みのユーザの対応する必要のあるコンセプトドリフトが発生したことを検出した場合、ユーザの対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示装置の表示画面に表示させる。このとき、学習部151は、再学習を実行するか否かをユーザから受け付ける。そして、再学習を実行することをユーザから受け付けた場合には、学習部151は、時系列のデータのうち、ユーザの対応する必要のあるコンセプトドリフトが発生した時点における最新の運用データを抽出する。具体的には、学習部151は、ユーザの対応する必要のあるコンセプトドリフトが発生した時点を起点として、予め設定された期間前の運用データを抽出する。学習部151は、予め設定された期間前の運用データを用いて再学習を実施する。
 これまで説明した月単位表示画面のKLDは、例えば日単位のKLDの合計値であってもよい。この場合、生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。そして、検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。ここで、表示制御部155は、検出部154が取得した各分布の差異の大きさを示す指標の、一定期間ごとの合計値を画面に表示させる。
 検出部154は、指標又は合計値が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。つまり、検出部154は、日単位のKLD及び月単位のKLDの両方又はいずれかを基にユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。この場合、例えば、ある月のKLDの合計が第一の閾値を超えていない場合であっても、その月の日のうち1日のKLDが第二の閾値以上である場合、検出部154は、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出することができる。
 表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトが検出された場合、コンセプトドリフトに関する情報を画面に表示させる。例えば、表示制御部155は、日単位のKLDからユーザが対応する必要のあるコンセプトドリフトが発生したことを検出した場合であっても、月単位表示画面にコンセプトドリフトが発生した旨のメッセージを表示してもよい。
 また、表示制御部155は、複数の時間ごとの指標に関する情報を表示する画面と、一定期間ごとの合計値に関する情報を表示する画面とを切り替えて表示させる。例えば、表示制御部155は、月単位表示遷移メニューの「日単位で表示」が選択されると、日単位表示画面を表示させる。
 図14及び図15を用いて、日単位表示画面及びrecurring driftの検出について説明する。図14は、recurring drift発生時の月単位表示画面の一例を示す図である。また、図15は、日単位表示画面の一例を示す図である。
 図14の例では、月単位表示画面では、日単位のKLDの合計値が月単位のKLDとして表示されているものとする。そして、検出部154は、2018年11月に含まれる日単位のKLDに対してrecurring driftを検出したものとする。
 生成部152は、学習済みのモデルに入力される運用データを取得する。そして、生成部152は、取得した運用データに基づいて、運用データの傾向の時間変化に起因するモデルの出力結果の変化の大きさを示す第一の指標を算出する。さらに、生成部152は、算出された第一の指標を、運用データの周期的な単位時間で区分した第二の指標を算出し、算出された第二の指標と予め設定された閾値との比較に基づいて、ユーザが対応する必要のあるコンセプトドリフトが発生したか否かを判定する。生成部152は、ユーザが対応する必要のあるコンセプトドリフトが発生したと判定された場合は、ユーザが対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示画面に表示させる。
 このとき、表示制御部155は、発生したコンセプトドリフトを示す情報を表示画面に表示させるとともに、ユーザが対応する必要のあるコンセプトドリフトと、ユーザが対応する必要のないコンセプトドリフトとを異なる態様で表示画面に表示させる。
 具体的には、生成部152は、複数の時間のそれぞれの指標を折れ線グラフで表示画面に表示させる。生成部152は、折れ線グラフにおいて、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出された時間に対応する点を、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出されていない時間に対応する点と、色、形、及び大きさの少なくともいずれかが異なるように表示させる。
 表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出した2018年11月のデータ点の近傍に、recurring driftが発生した旨のメッセージを表示させている。一方で、表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出していない2018年10月以前のデータ点を白抜きの丸で表示させている。
 生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。そして、検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。さらに、検出部154は、各分布の差異の大きさを示す指標が、一定の周期で所定の条件を満たす場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。例えば、検出部154は、指標が一定期間ごとに閾値以上になる場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。
 図15に示すように、表示制御部155は、日単位表示画面に、日付及び曜日とともにKLDを表示させる。図15の例では、11/6(水)、11/13(水)、11/20(水)、11/27(水)のKLDが閾値の0.4以上である。これより、検出部154は、1週間おきの水曜日に周期的にユーザが対応する必要のあるコンセプトドリフトが発生していることを検出する。
 表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトを検出した、11/6(水)、11/13(水)、11/20(水)、11/27(水)のデータ点の近傍に、メッセージを表示させる。
 さらに、学習部151は、検出部154がユーザが対応する必要のあるコンセプトドリフトが発生したことを検出した場合、時系列のデータのうち、所定の条件を満たす時間のデータを用いて新たなモデルの学習を行う。例えば、図15の例では、学習部151は、毎週水曜日のデータのみを用いて水曜日向けの新たなモデルの学習を行ってもよい。つまり、学習部151は、ユーザの対応する必要のある、2018年11月の水曜日の運用データを学習する。
 具体的には、学習部151は、ユーザの対応する必要のあるコンセプトドリフトが発生したことを検出した場合、ユーザの対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示装置の表示画面に表示させる。このとき、学習部151は、再学習を実行するか否かをユーザから受け付ける。そして、再学習を実行することをユーザから受け付けた場合には、学習部151は、時系列のデータのうち、ユーザの対応する必要のあるコンセプトドリフトが発生した時点における最新の運用データを抽出する。具体的には、学習部151は、ユーザの対応する必要のあるコンセプトドリフトが発生した時点を起点として、予め設定された期間前の同じ時間単位の運用データを抽出する。学習部151は、予め設定された期間前の運用データを用いて再学習を実施する。
[処理の流れ]
 図16を用いて、検出装置10の学習時の処理の流れを説明する。図16は、検出装置の学習時の処理の流れを示すフローチャートである。図16に示すように、まず、検出装置10は、学習データの学習によりオリジナルモデルを生成する(ステップS101)。次に、検出装置10は、オリジナルモデルの所定のパラメータを変化させたレプリカモデル群を生成する(ステップS102)。そして、検出装置10は、レプリカモデル群に学習データを入力したときの出力の分布に関する情報を保存する(ステップS103)。
 図17を用いて、検出装置10の学習時の処理の流れを説明する。図17は、検出装置の学習時の処理の流れを示すフローチャートである。図17に示すように、まず、検出装置10は、オリジナルモデルに運用データを入力したときの出力を計算する(ステップS201)。検出装置10は、ステップS201で計算した出力を基に推論結果を得ることができる。
 次に、検出装置10は、レプリカモデル群に運用データを入力したときの出力の分布を取得する(ステップS202)。そして、検出装置10は、運用時に取得した分布と学習時に取得した分布との差異を評価するための指標を計算する(ステップS203)。運用時に取得した分布は、検出装置10がステップS202で取得した分布である。一方、学習時に取得した分布は、検出装置10が図16のステップS103で取得したものである。また、例えば、指標はKLDである。
 ここで、検出装置10は、指標が条件を満たすか否かを判定する(ステップS204)。指標が条件を満たす場合(ステップS204、Yes)、検出装置10は、コンセプトドリフトを検出し、アラートを出力する(ステップS205)。アラートは、例えば図11に示すようなメッセージであってもよい。また、指標が条件を満たさない場合(ステップS204、No)、検出装置10は、オリジナルモデルの出力に基づく推論結果を出力する(ステップS206)。なお、ここでの条件は、前述の各種類のコンセプトドリフトを検出するための各条件である。
[効果]
 これまで説明してきたように、生成部152は、学習済みのオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。検出部154は、オリジナルモデルの学習に用いられた学習データをレプリカモデルに入力して得られる出力の分布と、学習データと異なる所定のデータをレプリカモデルに入力して得られる出力の分布との差異を検出する。このように、検出装置10は、オリジナルモデルが生成済みであれば、学習を行うことなくレプリカモデルを生成し、コンセプトドリフトの検出を行うことができる。この結果、検出装置10は、少ない計算量でコンセプトドリフトを検出することができる。
 検出部154は、時系列のデータのうち、オリジナルモデルの学習時のデータであって、オリジナルモデルの学習に用いられた学習データをレプリカモデルに入力して得られる出力の分布を取得する。検出部154は、時系列のデータのうち、学習時より後の所定の時間のデータをレプリカモデルに入力して得られる出力の分布を取得する。検出部154は、各分布の差異を検出する。このように、検出装置10は、時系列データに対する学習時及び運用時のそれぞれにおける出力の分布の差異を評価することができる。この結果、検出装置10は、少ない計算量で時系列データにおけるコンセプトドリフトを検出することができる。
 生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。検出部154は、学習データをレプリカモデルに入力して得られるスコアの分布と、学習データと異なる所定のデータをレプリカモデルに入力して得られる出力の分布とのKLD(Kullback-Leibler divergence)を基に、差異を検出する。このように、検出装置10は、KLDを用いることで容易に分布間の差異を評価することができる。
 生成部152は、所定のパラメータに平均が1.0、標準偏差が0.3である正規分布に従う乱数を掛けることによりレプリカモデルを生成する。このように、検出装置10は、オリジナルモデルとレプリカモデルとのかい離が大きくなり過ぎないようにすることができる。この結果、検出装置10は、コンセプトドリフトの誤検出を少なくすることができる。
 生成部152は、学習済みのオリジナルモデルであるニューラルネットワークの所定の層における重み及びバイアスを変化させることにより、複数のニューラルネットワークをレプリカモデルとして生成する。この結果、検出装置10は、オリジナルモデルがニューラルネットワークである場合にレプリカモデルを生成することができる。
 生成部152は、学習済みのオリジナルモデルであるSVMの識別関数における各特徴量についての重み及びバイアスを変化させることにより、複数のSVMをレプリカモデルとして生成する。この結果、検出装置10は、オリジナルモデルがSVMである場合にレプリカモデルを生成することができる。
 生成部152は、学習済みのオリジナルモデルであるロジスティック回帰モデルの決定関数における各特徴量についての重み及びバイアスを変化させることにより、複数のロジスティック回帰モデルをレプリカモデルとして生成する。この結果、検出装置10は、オリジナルモデルがロジスティック回帰モデルである場合にレプリカモデルを生成することができる。
 生成部152は、学習済みのオリジナルモデルである決定木の情報利得の閾値を変化させることにより、複数の決定木をレプリカモデルとして生成する。この結果、検出装置10は、オリジナルモデルが決定木である場合にレプリカモデルを生成することができる。
 学習部151は、検出部154が差異を検出した場合、所定のデータを用いてオリジナルモデルの再学習を行う。この結果、検出装置10は、コンセプトドリフトにオリジナルモデルを適合させることができる。
(incremental driftの検出に関する効果)
 生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。検出部154は、学習データをレプリカモデルに入力して得られるスコアの分布と、運用データをレプリカモデルに入力して得られる出力の分布との差異の大きさを示す指標が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。この結果、検出装置10は、少ない計算量でincremental driftを検出することができる。
 検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。検出部154は、各分布の差異の大きさを示す指標が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。表示制御部155は、複数の時間のそれぞれの指標に関する情報を画面に表示させる。表示制御部155は、さらに、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出された時間の指標に関する情報を、ユーザが対応する必要のあるコンセプトドリフトを検出していない時間の指標に関する情報と異なる態様で表示させる。この結果、検出装置10は、時系列データのincremental driftを検出し、検出結果を直感的な態様により提示することができる。
 表示制御部155は、複数の時間のそれぞれの指標を折れ線グラフで表示させる。表示制御部155は、折れ線グラフにおいて、ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出された時間に対応する点を、ユーザが対応する必要のあるコンセプトドリフトを検出していない時間に対応する点と、色、形、及び大きさの少なくともいずれかが異なるように表示させる。この結果、検出装置10は、時系列データのincremental driftを検出し、検出結果を直感的な態様により提示することができる。
 表示制御部155は、学習データをレプリカモデルに入力して得られる出力の分布のヒストグラム、及び、指定された時間のデータをレプリカモデルに入力して得られる出力の分布を示すヒストグラムを画面に表示させる。この結果、検出装置10は、コンセプトドリフトの発生を多様な側面から提示し、ユーザの理解を促すことができる。
 学習部151は、検出部154がユーザが対応する必要のあるコンセプトドリフトが発生したことを検出した場合、時系列のデータのうち、ユーザが対応する必要のあるコンセプトドリフトを検出した時点における最新のデータを用いてオリジナルモデルの再学習を行う。この結果、検出装置10は、incremental driftにオリジナルモデルを適合させることができる。
(sudden driftの検出に関する効果)
 生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。検出部154は、各分布の差異の大きさを示す指標の時系列での変化が所定の条件を満たす場合、ユーザが対応する必要があるコンセプトドリフトが発生したことを検出する。この結果、検出装置10は、少ない計算量で時系列データのsudden driftを検出することができる。
 検出部154は、指標の時系列での変化の量が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。この結果、検出装置10は、時系列データのsudden driftを検出することができる。
 学習部151は、検出部154がユーザが対応する必要のあるコンセプトドリフトが発生したことを検出した場合、時系列のデータのうち、ユーザが対応する必要のあるコンセプトドリフトを検出した時点における最新のデータを用いてオリジナルモデルの再学習を行う。この結果、検出装置10は、sudden driftにオリジナルモデルを適合させることができる。
(合計値表示に関する効果)
 生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。表示制御部155は、検出部154が取得した各分布の差異の大きさを示す指標の、一定期間ごとの合計値を画面に表示させる。この結果、検出装置10は、少ない計算量で所定の期間にユーザが対応する必要があるコンセプトドリフトが発生したことを検出することができる。
 検出部154は、指標又は合計値が閾値以上である場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。表示制御部155は、ユーザが対応する必要のあるコンセプトドリフトが検出された場合、コンセプトドリフトに関する情報を画面に表示させる。この結果、検出装置10は、狭い時間の範囲及び広い時間の範囲の両方でユーザが対応する必要のあるコンセプトドリフトの発生を検出することができる。
 表示制御部155は、複数の時間ごとの指標に関する情報を表示する画面と、一定期間ごとの合計値に関する情報を表示する画面とを切り替えて表示させる。この結果、検出装置10は、狭い時間の範囲及び広い時間の範囲の両方のコンセプトドリフトに関する情報を提示することができる。
 学習部151は、検出部154がユーザが対応する必要のあるコンセプトドリフトが発生したことを検出した場合、時系列のデータのうち、ユーザが対応する必要のあるコンセプトドリフトを検出した時点における最新のデータを用いてオリジナルモデルの再学習を行う。この結果、検出装置10は、コンセプトドリフトにオリジナルモデルを適合させることができる。
(recurring driftの検出に関する効果)
 生成部152は、データを複数のクラスのいずれかに分類するためのスコアを計算するモデルであるオリジナルモデルの所定のパラメータを変化させることにより、複数のレプリカモデルを生成する。検出部154は、時系列のデータのうち、オリジナルモデルの学習時の学習データをレプリカモデルに入力して得られるスコアの分布と、学習時より後の複数の時間のそれぞれのデータをレプリカモデルに入力して得られるスコアの分布とを取得する。検出部154は、各分布の差異の大きさを示す指標が、一定の周期で所定の条件を満たす場合、ユーザが対応する必要があるコンセプトドリフトが発生したことを検出する。この結果、検出装置10は、少ない計算量で時系列データのrecurring driftを検出することができる。
 検出部154は、指標が一定期間ごとに閾値以上になる場合、ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する。この結果、検出装置10は、時系列データのrecurring driftを検出することができる。
 学習部151は、検出部154がユーザが対応する必要のあるコンセプトドリフトが発生したことを検出した場合、時系列のデータのうち、所定の条件を満たす時間のデータを用いて新しいモデルの学習を行う。この結果、検出装置10は、recurring driftに新しいモデルを適合させることができる。
[他の実施例]
 上記の実施例では、オリジナルモデル及びレプリカモデルのアルゴリズムがニューラルネットワークである場合の例を説明した。一方で、検出装置10は、各モデルのアルゴリズムがニューラルネットワーク以外のアルゴリズムである場合であっても、コンセプトドリフトの検出を行うことができる。
 例えば、アルゴリズムはSVM(Support Vector Machine)であってもよい。この場合、生成部152は、学習済みのオリジナルモデルであるSVMの識別関数における各特徴量についての重み及びバイアスを変化させることにより、複数のSVMをレプリカモデルとして生成する。(3)式は、SVMの識別関数である。生成部152は、識別関数の重みai及びバイアスbに乱数を掛けることによりレプリカモデルを生成する。前述のニューラルネットワークの例と同様に、生成部152は、平均が1.0、標準偏差が0.3である正規分布に従う乱数を各パラメータに掛けることができる。
Figure JPOXMLDOC01-appb-M000003
 同様に、生成部152は、学習済みのオリジナルモデルであるロジスティック回帰モデルの決定関数における各特徴量についての重み及びバイアスを変化させることにより、複数のロジスティック回帰モデルをレプリカモデルとして生成することができる。(4)式は、ロジスティック回帰の決定関数である。生成部152は、決定関数の重みwi及びバイアスbに乱数を掛けることによりレプリカモデルを生成する。前述のニューラルネットワークの例と同様に、生成部152は、平均が1.0、標準偏差が0.3である正規分布に従う乱数を各パラメータに掛けることができる。
Figure JPOXMLDOC01-appb-M000004
 さらに、生成部152は、学習済みのオリジナルモデルである決定木の情報利得の閾値を変化させることにより、複数の決定木をレプリカモデルとして生成することができる。生成部152は、各質問の情報利得の閾値に乱数を掛けることによりレプリカモデルを生成する。前述のニューラルネットワークの例と同様に、生成部152は、平均が1.0、標準偏差が0.3である正規分布に従う乱数を各パラメータに掛けることができる。
 図18は、決定木のパラメータについて説明するための図である。例えば、「温度25℃以上?」という質問の情報利得の閾値は25である。生成部152は、25に乱数を掛けて得られる25.1や24.5といった値を使って、「温度25.1℃以上?」、「温度24.5℃以上?」といった質問を持つ決定木をレプリカモデルとして生成することができる。
[システム]
 上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、実施例で説明した具体例、分布、数値等は、あくまで一例であり、任意に変更することができる。
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[ハードウェア]
 図19は、ハードウェア構成例を説明する図である。図19に示すように、検出装置10は、通信インタフェース10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、図19に示した各部は、バス等で相互に接続される。
 通信インタフェース10aは、ネットワークインタフェースカード等であり、他のサーバとの通信を行う。HDD10bは、図2に示した機能を動作させるプログラムやDBを記憶する。
 プロセッサ10dは、図2に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、図2等で説明した各機能を実行するプロセスを動作させるハードウェア回路である。すなわち、このプロセスは、検出装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、学習部151、生成部152、計算部153、検出部154及び表示制御部155と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、学習部151、生成部152、計算部153、検出部154及び表示制御部155等と同様の処理を実行するプロセスを実行する。
 このように検出装置10は、プログラムを読み出して実行することで検出方法又は表示方法を実行する情報処理装置として動作する。また、検出装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、検出装置10によって実行されることに限定されるものではない。例えば、他のコンピュータ又はサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
 このプログラムは、インターネット等のネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
 10 検出装置
 11 通信部
 12 入力部
 13 出力部
 14 記憶部
 15 制御部
 151 学習部
 152 生成部
 153 計算部
 154 検出部
 155 表示制御部

Claims (8)

  1.  モデルに入力される運用データを取得し、
     取得した前記運用データに基づいて、運用データの傾向の時間変化に起因する前記モデルの出力結果の大きさを示す第一の指標を算出し、
     算出された前記第一の指標を、前記運用データの周期的な単位時間で区分した第二の指標を算出し、
     算出された前記第二の指標と予め設定された閾値との比較に基づいて、ユーザが対応する必要のあるコンセプトドリフトが発生したか否かを判定し、
     前記ユーザが対応する必要のあるコンセプトドリフトが発生したと判定された場合は、ユーザが対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示画面に表示させる
     処理をコンピュータが実行することを特徴とする表示方法。
  2.  発生したコンセプトドリフトを示す情報を表示画面に表示させるとともに、前記ユーザが対応する必要のあるコンセプトドリフトと、前記ユーザが対応する必要のないコンセプトドリフトとを異なる態様で前記表示画面に表示させる
     処理をさらに実行することを特徴とする請求項1に記載の表示方法。
  3.  データを複数のクラスのいずれかに分類するためのスコアを計算するモデルである第一のモデルの所定のパラメータを変化させることにより、複数の第二のモデルを生成し、
     時系列のデータのうち、前記第一のモデルの学習時のデータであって、前記第一のモデルの学習に用いられた学習データを前記第二のモデルに入力して得られるスコアの分布と、前記時系列のデータのうち、前記学習時より後の複数の時間のそれぞれのデータを前記第二のモデルに入力して得られるスコアの分布との差異の大きさを示す指標が、一定の周期で所定の条件を満たす場合、前記ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出する
     処理をさらに実行することを特徴とする請求項1に記載の表示方法。
  4.  前記第一の指標が一定期間ごとに閾値以上になる場合、前記ユーザが対応する必要のあるコンセプトドリフトが発生したことを検出することを特徴とする請求項1に記載の表示方法。
  5.  再学習を実行することの指示をユーザから受け付け、
    ユーザからの指示に基づいて、前記ユーザの対応する必要のあるコンセプトドリフトが発生した時点を起点として、予め設定された期間前の同じ時間単位の運用データを抽出し、
    抽出した前記予め設定された期間前の同じ時間単位の運用データを用いて再学習を実施する
     処理をさらに実行することを特徴とする請求項1に記載の表示方法。
  6.  複数の時間のそれぞれの指標を折れ線グラフで表示させ、さらに、折れ線グラフにおいて、前記ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出された時間に対応する点を、前記ユーザが対応する必要のあるコンセプトドリフトが発生したことが検出されていない時間に対応する点と、色、形、及び大きさの少なくともいずれかが異なるように表示させる
     処理をさらに実行することを特徴とする請求項1に記載の表示方法。
  7.  モデルに入力される運用データを取得し、
     取得した前記運用データに基づいて、運用データの傾向の時間変化に起因する前記モデルの出力結果の大きさを示す第一の指標を算出し、
     算出された前記第一の指標を、前記運用データの周期的な単位時間で区分した第二の指標を算出し、
     算出された前記第二の指標と予め設定された閾値との比較に基づいて、ユーザが対応する必要のあるコンセプトドリフトが発生したか否かを判定し、
     前記ユーザが対応する必要のあるコンセプトドリフトが発生したと判定された場合は、ユーザが対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示画面に表示させる
     処理をコンピュータに実行させることを特徴とする表示プログラム。
  8.  モデルに入力される運用データを取得する取得部と、
     取得した前記運用データに基づいて、運用データの傾向の時間変化に起因する前記モデルの出力結果の大きさを示す第一の指標を算出する第一の指標算出部と、
     算出された前記第一の指標を、前記運用データの周期的な単位時間で区分した第二の指標を算出する第二の指標算出部と、
     算出された前記第二の指標と予め設定された閾値との比較に基づいて、ユーザが対応する必要のあるコンセプトドリフトが発生したか否かを判定する判定部と、
     前記ユーザが対応する必要のあるコンセプトドリフトが発生したと判定された場合は、ユーザが対応する必要のあるコンセプトドリフトが発生したことを示す情報を表示画面に表示させる表示制御部と、
     を有することを特徴とする情報処理装置。
PCT/JP2019/041586 2019-10-23 2019-10-23 表示方法、表示プログラム及び情報処理装置 WO2021079447A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021553217A JP7363912B2 (ja) 2019-10-23 2019-10-23 表示方法、表示プログラム及び情報処理装置
PCT/JP2019/041586 WO2021079447A1 (ja) 2019-10-23 2019-10-23 表示方法、表示プログラム及び情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/041586 WO2021079447A1 (ja) 2019-10-23 2019-10-23 表示方法、表示プログラム及び情報処理装置

Publications (1)

Publication Number Publication Date
WO2021079447A1 true WO2021079447A1 (ja) 2021-04-29

Family

ID=75620639

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/041586 WO2021079447A1 (ja) 2019-10-23 2019-10-23 表示方法、表示プログラム及び情報処理装置

Country Status (2)

Country Link
JP (1) JP7363912B2 (ja)
WO (1) WO2021079447A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210133632A1 (en) * 2019-11-04 2021-05-06 Domino Data Lab, Inc. Systems and methods for model monitoring

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008052577A (ja) * 2006-08-25 2008-03-06 Hitachi High-Technologies Corp 稼働状況を提示することができる装置
WO2014045922A1 (ja) * 2012-09-20 2014-03-27 Jfeスチール株式会社 設備異常監視システムおよび設備異常監視方法
JP2014232494A (ja) * 2013-05-30 2014-12-11 日本電信電話株式会社 文書作成支援装置およびその動作方法
WO2017159761A1 (ja) * 2016-03-15 2017-09-21 シチズン時計株式会社 電子時計及び通信制御システム
WO2019064892A1 (ja) * 2017-09-26 2019-04-04 株式会社日立製作所 製造の管理を支援するシステム及び方法
WO2019176480A1 (ja) * 2018-03-14 2019-09-19 オムロン株式会社 学習支援装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6407841B2 (ja) * 2015-11-18 2018-10-17 ファナック株式会社 クーラントを循環させるための循環路を備えるレーザ加工ヘッド

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008052577A (ja) * 2006-08-25 2008-03-06 Hitachi High-Technologies Corp 稼働状況を提示することができる装置
WO2014045922A1 (ja) * 2012-09-20 2014-03-27 Jfeスチール株式会社 設備異常監視システムおよび設備異常監視方法
JP2014232494A (ja) * 2013-05-30 2014-12-11 日本電信電話株式会社 文書作成支援装置およびその動作方法
WO2017159761A1 (ja) * 2016-03-15 2017-09-21 シチズン時計株式会社 電子時計及び通信制御システム
WO2019064892A1 (ja) * 2017-09-26 2019-04-04 株式会社日立製作所 製造の管理を支援するシステム及び方法
WO2019176480A1 (ja) * 2018-03-14 2019-09-19 オムロン株式会社 学習支援装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LINDSTROM, P. ET AL.: "Drift detection using uncertainty distribution divergence", 2011 IEEE 11TH INTERNATIONAL CONFERENCE ON DATA MINING WORKSHOPS, 11 December 2011 (2011-12-11), pages 604 - 608, XP032100123, Retrieved from the Internet <URL:https://ieeexplore.ieee.org/abstract/document/6137435> [retrieved on 20191213], DOI: 10.1109/ICDMW.2011.70 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210133632A1 (en) * 2019-11-04 2021-05-06 Domino Data Lab, Inc. Systems and methods for model monitoring

Also Published As

Publication number Publication date
JP7363912B2 (ja) 2023-10-18
JPWO2021079447A1 (ja) 2021-04-29

Similar Documents

Publication Publication Date Title
JP2018195308A (ja) プロセス及び製造業における業績評価指標のデータに基づく最適化のための方法及びシステム
Martens et al. Performance of classification models from a user perspective
CN109726090A (zh) 计算系统中性能影响缺陷的识别
US11385782B2 (en) Machine learning-based interactive visual monitoring tool for high dimensional data sets across multiple KPIs
WO2021079444A1 (ja) 表示方法、表示プログラム及び情報処理装置
Pedziwiatr et al. Meaning maps and saliency models based on deep convolutional neural networks are insensitive to image meaning when predicting human fixations
Iwashita et al. Learning concept drift with ensembles of optimum-path forest-based classifiers
JP7070584B2 (ja) 判別モデル生成装置、判別モデル生成方法および判別モデル生成プログラム
US20220222545A1 (en) Generation method, non-transitory computer-readable storage medium, and information processing device
WO2021079447A1 (ja) 表示方法、表示プログラム及び情報処理装置
Karimi-Haghighi et al. Predicting early dropout: Calibration and algorithmic fairness considerations
WO2021079445A1 (ja) 表示方法、表示プログラム及び情報処理装置
WO2021079446A1 (ja) 表示方法、表示プログラム及び情報処理装置
JP6988995B2 (ja) 画像生成装置、画像生成方法および画像生成プログラム
WO2021079443A1 (ja) 検出方法、検出プログラム及び検出装置
US20220230028A1 (en) Determination method, non-transitory computer-readable storage medium, and information processing device
JPWO2018235841A1 (ja) グラフ構造解析装置、グラフ構造解析方法、及びプログラム
US20220222580A1 (en) Deterioration detection method, non-transitory computer-readable storage medium, and information processing device
Unceta et al. Using copies to remove sensitive data: A case study on fair superhero alignment prediction
JP7400827B2 (ja) 検出方法、検出プログラムおよび情報処理装置
KR20220141220A (ko) 다수의 kpi들에 걸친 고차원 데이터 세트들에 대한 머신 학습 기반 대화형 비주얼 모니터링 툴
Talukdar et al. Learning evaluation for intelligence
Nachev et al. Application of multilayer perceptrons for response modeling
Han et al. Machine learning techniques for price change forecast using the limit order book data
CN111563775A (zh) 人群划分方法及装置

Legal Events

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

Ref document number: 19949916

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021553217

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19949916

Country of ref document: EP

Kind code of ref document: A1