The present embodiment relates to an estimation program, an estimation method, and an estimation device.
Simulation techniques that search for an input parameter (x) for realizing a certain state (y) have conventionally been used in various fields such as disaster analysis and personalized medicine.
Related art is disclosed in Japanese Laid-open Patent Publication No. 2011-185880, Japanese Laid-open Patent Publication No. 2016-8564 and Japanese Laid-open Patent Publication No. 2004-62440.
According to an aspect of the embodiments, a non-transitory computer-readable recording medium records an estimation program causing a computer to execute processing which includes: calculating a reconfiguration error from an input result value and a reconfiguration value that is estimated by a first estimator, which estimates a parameter value from a result value learned on a basis of past data, and a second estimator, which estimates a result value from a parameter value, by using a specific result value or a neighborhood result value in a neighborhood of the specific result value; searching for a first result value that minimizes a sum of a substitute error that is calculated from the input result value and the specific result value and the reconfiguration error; and outputting a parameter value that is estimated from the first result value by using the first estimator.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
FIG. g is a diagram describing a simulation according to the first embodiment.
For example, a set of input and output that is an execution result of a past simulation is used as training data, and an estimator is learned that estimates an input from an output. Then, using the estimator learned, an input (x) is estimated that outputs a desired output (y).
However, in a case where a desired value is away from the training data and deviates from a range that can be estimated by the estimator, estimation accuracy is degraded.
For example, in a case where a parameter (x) is estimated that causes an extreme situation (y) such as a flood, it is likely that the extreme situation (y) is not included in past simulation results, and in such a case, the parameter (x) estimated becomes far from the training data, and reliability decreases. In addition, in a case where a parameter (x) is estimated whose output (y) matches actual data, the actual data is not necessarily included in a range that can be realized by a simulator, and may deviate from the training data. Note that, it is conceivable to prepare various and huge training data in advance, but it is very time-consuming and unrealistic.
In one aspect, an estimation program, estimation method, and estimation device capable of improving the estimation accuracy may be provided.
Hereinafter, embodiments will be described of an estimation program, estimation method, and estimation device disclosed in the present application in detail with reference to the drawings. Note that, the present invention is not limited to the embodiments, and the embodiments can be appropriately combined within the scope of no contradiction.
A simulation device 10 according to a first embodiment is a computer device for estimating an input corresponding to a certain output with high accuracy with respect to a black box function such as a simulator. For example, the simulation device 10 is used for estimation of a parameter that causes an extreme situation such as a flood that is not included in past simulation results, estimation of a parameter whose output matches actual data, or the like.
Generally, when considered as a simple prediction problem of an input parameter of a simulator, a simulation is executed aiming to minimize an error of a prediction result (x) with respect to an output (y). However, in practice, an error of an estimated parameter (x) is not important, and it is important to minimize an error between a prediction target (y) and a result s(x) in a case where the (x) is applied to the simulator.
The simulation device 10 according to the first embodiment therefore does not estimate data that is originally intended to be estimated, but instead estimates similar data within a range that can be accurately estimated. Specifically, the simulation device 10 does not directly solve a problem of estimating an actual estimation target (y), but solves the problem by replacing it to a problem of estimating another (y′) that can be estimated from training data and is as close as possible to the (y). For example, the simulation device 10 performs estimation of an error (application error) in a case where a certain input (x) is applied to a black box function s(x). Then, the simulation device 10 estimates an input (x) with respect to substitute data (y′) instead of the actual estimation target (y), the substitute data (y′) existing in a range where it is estimated that the application error is small and being a neighborhood value in the neighborhood of the (y).
In other words, the simulation device 10 uses together learning of an estimator that estimates the output from the input and learning of an estimator that estimates the input from the output, to estimate a range of the output that can be estimated accurately, whereby degradation of estimation accuracy is suppressed even in a case where a desired value is away from a set of the training data and deviates from a range that can be estimated by the estimator.
Functional Configuration
The communication unit 11 is a processing unit that controls communication between other devices, and is, for example, a communication interface, or the like. For example, the communication unit 11 receives an instruction to start processing from an administrator terminal or the like, accepts an input of the training data and test data, and transmits an estimation result to the administrator terminal.
The storage unit 12 is an example of a storage device that stores programs and data, and is, for example, a memory, a hard disk, or the like. The storage unit 12 stores a training data DB 13, a test data DB 14, and an estimation result DB 15.
The training data DB 13 is a database that stores, as the training data, a set of input and output that is an execution result of a past simulation,
The test data DB 14 is a database that stores assumed actual data.
Here, a relationship will be described between the training data and test data assumed in the first embodiment.
The estimation result DB 15 is a database that stores an estimation result by the control unit 20 described later. For example, the estimation result DB 15 stores an estimated value of an input estimator enc(y1, y2) when a total error described later is less than a threshold value.
The control unit 20 is a processing unit that controls the entire simulation device 10, and is, for example, a processor, or the like. The control unit 20 includes a training unit 21, an input estimation unit 22, an output estimation unit 23, and a substitute data generation unit 24. Note that, the training unit 21, the input estimation unit 22, the output estimation unit 23, and the substitute data generation unit 24 each are an example of an electronic circuit included in the processor, or an example of a process executed by the processor. In addition, the substitute data generation unit 24 is an example of a calculation unit, a search unit, and an output unit.
The training unit 21 is a processing unit that learns an input estimator enc(y) by using the training data and learns an output estimator dec(x) by using the training data.
The input estimation unit 22 is a processing unit that estimates an input (x) from an output (y) by using the input estimator enc(y). For example, the input estimation unit 22 applies an output (y1, y2) of the test data to the estimator enc(y) learned by the training unit 21, to estimate an input (x). Then, the input estimation unit 22 outputs the input (x) estimated to the output estimation unit 23.
The output estimation unit 23 is a processing unit that estimates an output (y) from an input (x) by using the output estimator dec(x). For example, the output estimation unit 23 applies the (x) input from the input estimation unit 22 to the estimator dec(x) learned by the training unit 21, to estimate an output (y). Then, the output estimation unit 23 outputs the output (y) estimated to the substitute data generation unit 24.
The substitute data generation unit 24 is a processing unit that generates substitute data (y) instead of an actual estimation target (y), the substitute data (y′) existing in a range where it is estimated that an error (application error) is small, and inputs the substitute data (y′) to the input estimation unit 22. In addition, the substitute data generation unit 24 is a processing unit that obtains, by optimization, the substitute data (y′) that minimizes a sum total (total error) of a substitute error that is a difference between the actual estimation target (y) and the substitute data (y′), and a reconfiguration error that is a difference between the (y′) and (y″) reconfigured from the (y′).
Simulation Processing
Here, a simulation according to the first embodiment will be described.
Then, the substitute data generation unit 24 calculates a reconfiguration error that is a difference between the substitute data (y′), and the reconfigured data (y″=dec(enc(y′))) estimated by the estimator dec(x). Subsequently, the substitute data generation unit 24 calculates a total error that is a total of the substitute error and the reconfiguration error. Thereafter, in a case where the total error does not converge, the substitute data generation unit 24 calculates new substitute data (y′) that makes the total error smaller, and again repeats estimation by the estimator enc(y) and the estimator dec(x). Then, in a case where the total error converges, the substitute data generation unit 24 outputs the (x) at that time as an estimation result.
Note that, the simulation device 10 according to the first embodiment does not aim to minimize an error of the input (x), but aims to minimize an error (total error is its estimation) of a result s(enc(y)) of applying the estimated enc(y) to the simulator, so that the estimation target y may be changed.
Here, a relationship between each piece of data and the error will be described. As illustrated in the right diagram of
Calculation of Reconfiguration Error
Next, a method of calculation of a reconfiguration error will be described.
Subsequently, the output estimation unit 23 applies the input (x) to the estimator dec(x), to estimate an output (y1, y2). For example, the output estimation unit 23 calculates the output (y1=6.569, y2=3.284) by using the learning result “y1=1.9171*x+0.3238, y2=0.9686*x+0.1286”.
Then, the substitute data generation unit 24 calculates 4.578 that is the Euclidean distance between the output (y1, y2) of the test data and the estimation result (y1=6.569, y2=3.284), as a reconfiguration error (L2). Then, the substitute data generation unit 24 generates substitute data and causes each estimator to execute estimation processing until the reconfiguration error (L2) becomes less than or equal to a threshold value.
Generation of Substitute Data
Subsequently, generation of substitute data will be described.
Here, the substitute data generation unit 24 obtains, by optimization, substitute data (y′) that minimizes the sum total (total error) of a difference (substitute error) between the actual estimation target (y) and the substitute data (y′), and a difference (reconfiguration error) between the substitute data (y′) and the reconfigured data (y″) reconfigured from the substitute data (y′).
For example, in a case where the total number of the training data is small at less than or equal to a threshold value, and the estimation accuracy of the substitute error is considered to be insufficient, the substitute data generation unit 24 can also use, for calculation of the total error, a weighted sum in which the weight of the reconfiguration error is reduced. More specifically, the substitute data generation unit 24 can also calculate the total error by reducing the weight of the reconfiguration error, such as estimation error+0.8*recombination error=total error.
In addition, in a case where the estimator enc and the estimator dec each are configured as a differentiable function such as a neural network, the substitute data generation unit 24 can also optimize the substitute data (y′) by using the gradient of the total error with respect to the (y′). More specifically, when the total error is L=f(y), in a case where the enc and the dec each are configured as a differentiable function such as a neural network, the f is differentiable. In this case, for a certain y, a small value (generally a vector) to be added to the y can be obtained to reduce the L By using this property, starting from an appropriate y, the gradient of the total error L with respect to the y is obtained, and the y is sequentially moved in the downward direction of the gradient, whereby the y with a small L can be efficiently obtained. As a method of using such a gradient (gradient method), an update equation of the re-steep descent method can be used, but update equations of various other methods can be used.
Next, a specific example of the simulation will be described.
Here, since the total error (4.578) is greater than or equal to a threshold value (for example, 2), the substitute data generation unit 24 generates the substitute data y′ (y1=2.0, y2=2.5) to reduce the reconfiguration error by using the method described above. Then, the input estimation unit 22 applies the input estimator enc(y) to the substitute data y′ (y1=2.0, y2=2.5) to estimate the input (x)=2.559, and the output estimation unit 23 applies the input (x) to the estimator dec(x) to estimate an output y″ (y1, y2). As a result, the substitute data generation unit 24 calculates the reconfiguration error (3.448) and the substitute error (0.500) of the output y′ and the output y″, and calculates the total error (3.948).
Thus, the substitute data generation unit 24 sequentially generates substitute data and repeats estimation by each estimator until the total error is less than the threshold value. Then, when the substitute data y′ is (y1=3.0, y2=1.5), the total error is 1.849 and becomes less than the threshold value, so that the estimated value “1.420” of the input estimator enc(y1, y2) at this time is output to the estimation result DB 15 as the estimation result. Note that, in a case where it is known that the test data is data far from the training data, it is also possible that the substitute data is first generated after the processing starts without execution of estimation using the test data, and then the estimation using the substitute data is started.
Flow of Processing
Thereafter, the substitute data generation unit 24 generates the substitute data y′ from the test data y (S103). Then, the input estimation unit 22 estimates the input x with respect to the substitute data y′ by using the input estimator enc(y) (S104), and the output estimator 23 estimates the y″ with respect to the input x by using the output estimator dec(x) (S105).
Thereafter, the substitute data generation unit 24 calculates the substitute error that is the difference between the y and the y′ (S106), and calculates the reconfiguration error that is the difference between the y′ and the y″ (S107). Then, the substitute data generation unit 24 calculates a sum total L of the substitute error and the reconfiguration error (S108), and in a case where the L does not converge (S109: No), corrects the substitute data y′ in the direction of decreasing the L (S110) and then S104 and the subsequent steps are executed.
On the other hand, in a case where the L has converged (S109: Yes), the substitute data generation unit 24 outputs the x at that time (S111).
Effects
As described above, in the estimation method for estimating the parameter value from the result value by using the estimator, in a case where the value in the neighborhood of the result value can be used, the simulation device 10 can estimate the parameter value by using the neighborhood value with which the estimation accuracy is high. In other words, the simulation device 10 can estimate the range of the output that can be accurately estimated by using the learning of estimating the output from the input together with the learning of estimating the input from the output, and the estimation with respect to outliers becomes robust, and the estimation accuracy can be improved.
That is, in a case where parameter estimation is performed that causes an extreme situation such as a flood included in past simulation results, the estimation accuracy decreases even if the extreme situation is estimated as it is as in the general method, but the decrease in estimation accuracy can be suppressed by estimation of an input (for example, rainfall) that causes a situation close to the flood.
Although an embodiment of the present invention has been described above, the present invention may be implemented in various forms in addition to the above embodiment. A different embodiment will therefore be described below.
Learning of Estimator
For example, the simulation device 10 can also learn the estimator enc and the estimator dec so that the reconfiguration error with respect to the training data is reduced at the time of learning, by using the AutoEncoder method.
As illustrated in
In addition, as illustrated in (c) of
Generation of Substitute Data
For example, the simulation device 10 can generate substitute data by using various methods other than the method described above. For example, the simulation device 10 can express a set of training data as a straight fine by using an approximate value, an average value, or the like, and generate substitute data so that test data approaches the straight line.
System
Pieces of information including the processing procedure, control procedure, specific name, various types of data and parameters described above in the document or illustrated in the drawings may be changed in any ways unless otherwise specified.
In addition, each component of each device illustrated in the drawings is functionally conceptual, and thus the devices do not have to be physically configured as illustrated in the drawings. In other words, a specific form of distribution and integration of each of the devices is not limited to that illustrated in the drawings. That is, all or a part thereof may be configured by being functionally or physically distributed/integrated in any units depending on various loads, usage situations, and the like. Further, all or any part of 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 using wired logic.
Hardware Configuration
The communication interface 10a is a network interface card or the like that controls communication of another device. The HDD 10b is an example of a storage device that stores programs, data, and the like.
Examples of the memory 10c include a random access memory (RAM) such as a synchronous dynamic random access memory (SDRAM), a read only memory (ROM), and a flash memory. Examples of the processor 10d include a central processing unit (CPU), a digital signal processor (DSP), a field programmable gate array (FPGA), and a programmable logic device (PLD).
In addition, the simulation device 10 operates as an information processing device that executes an estimation method by reading and executing a program. That is, the simulation device 10 executes a program that executes functions similar to the training unit 21, the input estimation unit 22, the output estimation unit 23, and the substitute data generation unit 24. As a result, the simulation device 10 can execute a process that executes the functions similar to the training unit 21, the input estimation unit 22, the output estimation unit 23, and the substitute data generation unit 24. Note that, this program referred to in other embodiments is not limited to being executed by the simulation device 10. For example, the present invention can be similarly applied to a case where another computer or server executes the program, or a case where such computer and server cooperatively execute the program.
This program can be distributed via a network such as the Internet. In addition, this program is recorded on a computer-readable recording medium such as a hard disk, flexible disk (FD), CD-ROM, magneto-optical disk (MO), or digital versatile disc (DVD), and can be executed by being read from the recording medium by the computer.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2017-097669 | May 2017 | JP | national |
This application is a continuation application of International Application PCT/JP2018/016379 filed on Apr. 20, 2018 and designated the U.S., the entire contents of which are incorporated herein by reference. The International Application PCT/JP2018/016379 is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2017-097669, filed on May 16, 2017, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2018/016379 | Apr 2018 | US |
Child | 16653236 | US |