Parameter identification program, parameter identification method, and information processing apparatus

By generating a probability density function from combined kernel functions, the method addresses inefficiencies in parameter tuning, enhancing optimization algorithm performance and reducing tuning time.

JP2025161595APending Publication Date: 2025-10-24FUJITSU LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2024064914
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-04-12
Publication Date
2025-10-24

AI Technical Summary

Technical Problem

Existing optimization algorithms face inefficiencies in parameter tuning, leading to suboptimal performance and prolonged tuning times.

Method used

A method that generates a probability density function by combining kernel functions from observed and past parameter values to efficiently identify optimal parameter values for optimization algorithms.

Benefits of technology

This approach allows for efficient identification of multiple parameter values, improving solution quality and reducing tuning time by leveraging historical trends in parameter evaluations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025161595000001_ABST
    Figure 2025161595000001_ABST
Patent Text Reader

Abstract

To efficiently identify values of a plurality of parameters used in an optimization algorithm.SOLUTION: A parameter identification program causes a computer to execute the processes of: generating a probability density function for each of a plurality of parameters used in an optimization algorithm by combining a kernel function α generated from a first value of the parameter observed in a given instance, and a kernel function β generated from a second value of the parameter identified in each of a plurality of instances; and identifying respective values of the plurality of parameters based on the probability density function generated for each of the plurality of parameters.SELECTED DRAWING: Figure 11
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a parameter specifying program, a parameter specifying method, and an information processing device. [Background technology]

[0002] Optimization algorithms such as simulated annealing (SA) and tabu search (TS) are known as methods for solving optimization problems such as combinatorial optimization problems.

[0003] In such optimization algorithms, tuning is sometimes performed to appropriately set parameters, such as hyperparameters, used when searching for an optimal solution. In this tuning, optimal parameters are identified by repeatedly setting and evaluating parameters for the problem (instance) for which the optimal solution is to be searched. One example of a parameter tuning method is the Tree-structured Parzen Estimator (TPE). [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Special Publication No. 2014-512134 [Patent Document 2] Japanese Patent Publication No. 2022-74880 [Patent Document 3] Japanese Patent Publication No. 2020-52737 [Patent Document 4] U.S. Patent Application Publication No. 2021 / 0034928 [Patent Document 5] US Patent Application Publication No. 2020 / 0240257 Summary of the Invention [Problem to be solved by the invention]

[0005] The above-described tuning techniques have room for improvement in terms of the performance of solving an optimization problem using parameters identified by tuning, or tuning time.

[0006] In one aspect, an object of the present invention is to efficiently specify values ​​of multiple parameters used in an optimization algorithm. [Means for solving the problem]

[0007] In one embodiment, the parameter identification program may cause a computer to execute the following process: for each of a plurality of parameters used in an optimization algorithm, the process may generate a probability density function of the parameter by combining a kernel function generated from a first value of the parameter observed in a predetermined instance and a kernel function generated from a second value of the parameter identified in each of a plurality of instances; and the process may identify a value of each of the plurality of parameters based on the probability density function generated for each of the plurality of parameters. [Effects of the Invention]

[0008] In one aspect, values ​​for multiple parameters used in an optimization algorithm can be efficiently identified. [Brief explanation of the drawings]

[0009] [Figure 1] 10 is a flowchart illustrating a parameter tuning method according to a comparative example. [Figure 2] 2 is a flowchart illustrating an example of a selection process shown in FIG. 1. [Figure 3] FIG. 10 is a diagram illustrating an example of classification of data points. [Figure 4] FIG. 10 is a diagram for explaining a probability density function. [Figure 5] FIG. 10 is a diagram illustrating an example of kernel density estimation. [Figure 6]FIG. 10 is a diagram illustrating an example of a graph of a probability density function. [Figure 7] FIG. 10 is a diagram illustrating an example of a method for selecting a candidate point that maximizes an acquisition function. [Figure 8] FIG. 2 is a block diagram illustrating an example of a hardware configuration of a computer that realizes the functions of an optimization device according to an embodiment. [Figure 9] FIG. 2 is a block diagram illustrating an example of the software configuration of an optimization device according to an embodiment. [Figure 10] FIG. 10 is a diagram illustrating an example of a probability density function l(x) calculated by a kernel density estimation unit. [Figure 11] 10 is a flowchart illustrating an example of the operation of an optimization device according to an embodiment. [Figure 12] FIG. 10 is a diagram illustrating an example of an evaluation function value according to a method according to an embodiment. [Figure 13] FIG. 10 is a diagram illustrating an example of tuning time according to a method according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0010] Hereinafter, embodiments of the present invention will be described with reference to the drawings. However, the embodiments described below are merely examples, and are not intended to exclude various modifications or application of techniques not explicitly described below. For example, the present embodiment can be implemented with various modifications within the scope of the spirit thereof. In the drawings used in the following description, parts with the same reference numerals represent the same or similar parts unless otherwise specified.

[0011] [A] Parameter tuning First, tuning of multiple parameters used in the optimization algorithm will be described.

[0012] Fig. 1 is a flowchart illustrating a parameter tuning method according to a comparative example. An example of a tuning method using TPE will be described below as a tuning method according to a comparative example executed by an optimization device that solves an optimization problem. The method shown in Fig. 1 is a method for finding an optimal parameter combination by repeatedly setting and evaluating parameters to be tuned. The parameters are, for example, hyperparameters.

[0013] In step S101, an instance is input to the optimization device. The instance is a specific example or case of a particular problem in the optimization problem. The optimization device executes parameter tuning processing S110 (S102 to S104) for the input instance.

[0014] In step S102, the optimization device executes a selection process to select values ​​for each of a plurality of parameters from candidate values ​​that can be set for each parameter to be tuned (candidate values ​​that each parameter can take). That is, a combination of parameter values ​​is selected. The selection process will be described later with reference to FIG. 2.

[0015] In step S103, the optimization device sets the values ​​of a plurality of parameters in the selected combination, executes a process for solving the optimization problem for the instance, and evaluates the parameters in the selected combination based on the execution result.

[0016] In step S104, the optimization device determines whether or not to end the parameter tuning. If not to end (NO in step S104), the process proceeds to step S102. If to end (YES in step S104), the process proceeds to step S105. Whether or not to end the parameter tuning may be determined based on, for example, whether or not an evaluation result (e.g., an evaluation function value) that satisfies an end criterion has been obtained in step S103, or whether or not a predetermined number of repetitions have been performed. The evaluation function value may mean the value of the function (evaluation function) to be optimized.

[0017] In step S105, the optimization device outputs the optimum combination of parameter values, for example, the combination of parameter values ​​that has produced the best result in the parameter evaluation, and the process ends.

[0018] 1, Bayesian optimization using TPE is performed in the selection process. Bayesian optimization is a method for efficiently finding the maximum or minimum value of a function with an unknown shape, such as a black-box function.

[0019] In Bayesian optimization, the optimization device searches for parameter values ​​that maximize or minimize the evaluation value of a function whose shape is unknown by selecting the point that maximizes the evaluation value of the acquired function calculated based on the points observed so far as the next point to be observed.

[0020] Fig. 2 is a flowchart for explaining an example of the selection process shown in Fig. 1. For example, in step S102 (selection process) of Fig. 1, the optimization device selects a combination of parameter values ​​by performing Bayesian optimization for each parameter to be tuned.

[0021] In step S111, the optimization device classifies (divides) the data points observed so far.

[0022] FIG. 3 is a diagram showing an example of data point classification. The horizontal axis represents parameter values, and the vertical axis represents evaluation values. As shown in FIG. 3, the optimization device sorts data points (parameter values) observed so far in a running instance by evaluation values, for example, the value of the output variable y, and classifies (divides) them into two groups: a top group L indicated by a dashed-line frame and a bottom group G indicated by a dash-dotted-line frame. In the example of FIG. 3, points with small evaluation values, for example, points with evaluation values ​​in the top 10%, are classified into the top group L.

[0023] In step S112, the optimization device performs kernel density estimation to obtain a probability density function.

[0024] Figure 4 is a diagram to explain probability density functions. f(X) is a probability density function. In Figure 4, the horizontal axis represents the random variable X, and the vertical axis represents the probability density. A random variable is a quantity that is determined with a certain probability for each trial. For a continuous random variable, the probability corresponds to the product of the probability density and the range of the random variable. In the example of Figure 4, the area between the probability density function f(X) and the range enclosed by the random variable X(a≦X≦b), i.e., the definite integral value of the random variable X(a≦X≦b) with respect to the probability density function f(X), is the probability P(a≦X≦b).

[0025] For example, assuming parameter independence and x as the value of a certain parameter, the optimization device performs kernel density estimation for each parameter for both the top group L and the bottom group G, and calculates the probability density function l(x) for the top group L and the probability density function g(x) for the bottom group G.

[0026] FIG. 5 is a diagram illustrating an example of kernel density estimation. The horizontal axis represents parameter values, and the vertical axis represents probability density. In FIG. 5, each curve indicated by a dashed line represents a kernel function for each data point, and the curve indicated by a solid line represents a probability density function f(x) as an example of the probability density function l(x) or g(x). In kernel density estimation, the optimization device creates a kernel function for each data point and adds these kernel functions together to estimate the probability density function f(x).

[0027] An example of the kernel function is a Gaussian function. When a Gaussian function is used as the kernel function and a weight is assigned to each kernel, f(x) is expressed as, for example, the following formula (1).

number

[0028] In the above formula (1), n ​​is the number of data points, w i is the weight of each kernel function, x i is the value of each data point, and h is the bandwidth. Although the bandwidth h is fixed in Figure 5, it may be determined to a different value for each kernel function, for example, depending on the distance between adjacent data points. In the probability density function f(x) in the above formula (1), the Gaussian function is summed up while changing the variable i from 1 to n, and the integral of the value in the curly brackets is calculated as 1 / [weight w when variable i is changed from 1 to n] so that the result is 1. i The total value of [is multiplied by ].

[0029] In step S113, the optimization device samples and evaluates candidate points for each of the probability density functions l(x) and g(x) obtained by the kernel density estimation in step S112.

[0030] FIG. 6 is a diagram showing an example of a graph of probability density functions l(x) and g(x). The horizontal axis represents the parameter value, and the vertical axis represents the probability density. The optimization device calculates the parameter value x according to the probability density function l(x) at the candidate point x. + (See black dots) and select multiple candidate points x + Select the point that maximizes the acquisition function.

[0031] FIG. 7 is a diagram for explaining an example of a method for selecting a candidate point that maximizes the acquisition function. In FIG. 7, l(x + ) / g(x + ) is shown below. The horizontal axis is the parameter value, and the vertical axis is l(x + ) / g(x +) for example, in the case of TPE, the optimizer calculates l(x + ) / g(x + ) is maximized when x + l(x + ) is the candidate point x + is the value of the probability density function l(x) at (see the black dots in Figure 6), i.e., the probability density, and g(x + ) is the candidate point x + 7, the parameter value is "-0.8".

[0032] In tuning techniques, in order to improve the solution-solving performance of an optimization device, it is important to find a more appropriate combination of parameter values ​​and improve the quality of the solution. It is also important to suppress a decrease in the quality of the solution or to improve the quality of the solution while shortening the tuning time. The above-mentioned tuning techniques have room for improvement in terms of the solution performance of the optimization problem using the parameters identified by tuning or the tuning time.

[0033] Therefore, in one embodiment, a method for efficiently specifying values ​​of multiple parameters used in an optimization algorithm is described.

[0034] [B] Configuration example of an optimization device according to one embodiment An example of the configuration of an optimization device 1 (see FIG. 9) according to an embodiment will be described below.

[0035] [B-1] Hardware configuration example The optimization device 1 according to one embodiment may be a virtual server (VM: Virtual Machine) or a physical server. The functions of the optimization device 1 may be implemented by one computer or two or more computers. Furthermore, at least some of the functions of the optimization device 1 may be implemented using hardware (HW) resources and network (NW) resources provided by a cloud environment.

[0036] 8 is a block diagram showing an example of the hardware (HW) configuration of a computer 10 that realizes the functions of the optimization device 1 as an example of an embodiment. When multiple computers are used as HW resources that realize the functions of the optimization device 1, each computer may have the HW configuration exemplified in FIG.

[0037] As shown in FIG. 8, the computer 10 may, as a HW configuration, illustratively include a processor 10a, a graphics processing unit 10b, a memory 10c, a storage unit 10d, an IF (Interface) unit 10e, an IO (Input / Output) unit 10f, and a reading unit 10g.

[0038] The processor 10a is an example of a processing unit that performs various controls and calculations. The processor 10a may be connected to each block in the computer 10 via a bus 10j so that they can communicate with each other. The processor 10a may be a multiprocessor including multiple processors, a multi-core processor having multiple processor cores, or a configuration having multiple multi-core processors.

[0039] The processor 10a may be, for example, an integrated circuit (IC) such as a CPU, MPU, APU, DSP, ASIC, or FPGA. Note that the processor 10a may be a combination of two or more of these integrated circuits. CPU is an abbreviation for Central Processing Unit, MPU is an abbreviation for Micro Processing Unit, APU is an abbreviation for Accelerated Processing Unit, DSP is an abbreviation for Digital Signal Processor, ASIC is an abbreviation for Application Specific IC, and FPGA is an abbreviation for Field-Programmable Gate Array.

[0040] The graphics processing device 10b controls screen display for an output device such as a monitor in the IO unit 10f. The graphics processing device 10b may also be configured as an accelerator that executes machine learning processing and inference processing using a machine learning model. The graphics processing device 10b may be various types of arithmetic processing devices, such as a GPU (Graphics Processing Unit), an APU, a DSP, an ASIC, an FPGA, or other integrated circuits (ICs).

[0041] The memory 10c and the storage unit 10d each store various types of data, programs, and other information. Examples of the memory 10c include one or both of a volatile memory such as a dynamic random access memory (DRAM) and a nonvolatile memory such as a persistent memory (PM). Examples of the storage unit 10d include various storage devices such as a magnetic disk device such as a hard disk drive (HDD), a semiconductor drive device such as a solid state drive (SSD), and a nonvolatile memory. Examples of the nonvolatile memory include a flash memory, a storage class memory (SCM), and a read-only memory (ROM).

[0042] The storage unit 10d may store a program 10h (parameter identification program) that realizes all or part of the various functions of the computer 10. For example, the processor 10a of the optimization device 1 can realize the function of a control unit 8 (see FIG. 9), which will be described later, by expanding the program 10h stored in the storage unit 10d into the memory 10c and executing it.

[0043] The IF unit 10e is an example of a communication IF that controls the connection and communication between the optimization device 1 and other computers. For example, the IF unit 10e may include an adapter that complies with electrical communications (e.g., LAN (Local Area Network)) such as Ethernet (registered trademark) or optical communications such as FC (Fibre Channel). The adapter may support one or both of wireless and wired communication methods. The program 10h may be downloaded to the computer 10 from a network via the communication IF and stored in the storage unit 10d.

[0044] The IO unit 10f may include one or both of an input device and an output device. Examples of input devices include a keyboard, a mouse, and a touch panel. Examples of output devices include a monitor, a projector, and a printer. The IO unit 10f may also include a touch panel that combines an input device and an output device. The output device may be connected to the graphics processing device 10b.

[0045] The reading unit 10g is an example of a reader that reads data and program information recorded on the recording medium 10i. The reading unit 10g may include a connection terminal or device to which the recording medium 10i can be connected or inserted. Examples of the reading unit 10g include an adapter that complies with USB (Universal Serial Bus) or the like, a drive device that accesses a recording disk, and a card reader that accesses a flash memory such as an SD card. Note that the recording medium 10i may store the program 10h, and the reading unit 10g may read the program 10h from the recording medium 10i and store it in the memory unit 10d.

[0046] Examples of the recording medium 10i include non-transitory computer-readable recording media such as magnetic / optical disks and flash memories. Examples of magnetic / optical disks include flexible disks, CDs (Compact Discs), DVDs (Digital Versatile Discs), Blu-ray Discs, and HVDs (Holographic Versatile Discs). Examples of flash memories include semiconductor memories such as USB memories and SD cards.

[0047] The above-described HW configuration of the computer 10 is an example. Therefore, the HW in the computer 10 may be increased or decreased (for example, adding or deleting any block), divided, integrated in any combination, or the HW may be added or deleted as needed.

[0048] [B-2] Software configuration example FIG. 9 is a block diagram showing an example of the software configuration of an optimization device 1 according to an embodiment. The optimization device 1 is an example of a computer or information processing device, and is an example of a parameter identification device that executes a parameter identification process to identify values ​​of multiple parameters used in an optimization algorithm. The multiple parameters are an example of parameters used to search for a solution to a predetermined instance using an optimization algorithm. The optimization device 1 may also execute a solution process for an optimization problem, such as a combinatorial optimization problem, for the instance.

[0049] In the following description, the optimization device 1 executes a solution process for an optimization problem for an instance using parameters identified by the parameter identification process, for example, hyperparameters, but is not limited to this. The optimization device 1 may be, for example, a device that executes the parameter identification process out of the parameter identification process and the solution process, and may output (provide) the identified parameters to another optimization device that executes the solution process.

[0050] As illustrated in Fig. 9, the optimization device 1 includes a memory unit 2, a data point classification unit 3, a kernel density estimation unit 4, a combination selection unit 5, a parameter evaluation unit 6, and an output unit 7. The data point classification unit 3, the kernel density estimation unit 4, the combination selection unit 5, the parameter evaluation unit 6, and the output unit 7 are examples of a control unit 8. The control unit 8 may execute a process for solving an optimization problem. The functions of the control unit 8 may be realized, for example, by a processor 10a of a computer 10 shown in Fig. 8 executing a program 10h loaded in a memory 10c.

[0051] The memory unit 2 stores various data used in the execution of the parameter identification process by the optimization device 1. For example, the memory unit 2 may be capable of storing instance information 2a, performance information 2b, and optimal parameter values ​​2c. The memory unit 2 may be realized, for example, by the storage areas of one or both of the memory 10c and the storage unit 10d of the computer 10 shown in FIG. 8.

[0052] The instance information 2a is information about an instance for which an optimal solution is to be searched, and is an example of a predetermined instance. The instance information 2a is, for example, a specific example or case of a specific problem in the optimization problem, in other words, information indicating the conditions for the solution process of the optimization problem.

[0053] The performance information 2b is past results (experimental results), for example, parameter tuning results for multiple instances executed earlier than a predetermined instance. The performance information 2b includes, for example, the values ​​(combinations of parameter values) of multiple parameters (hyperparameters) identified in the tuning process for each of the multiple instances. Note that the multiple instances may be multiple instances (similar instances) that all belong to a common field but have different problems (optimization problems) and solutions obtained by solving the problems. An example of a field is IT (Information Technology) drug discovery.

[0054] In the performance information 2b, the parameter tuning process executed in the past may be the method according to one embodiment, or another method (for example, a method according to a comparative example), or these may be mixed. Furthermore, the performance information 2b may be calculated by the optimization device 1, or may be calculated by another optimization device.

[0055] The control unit 8 may receive, for example, at least one of the instance information 2a and the performance information 2b from another computer (not shown) via the IF unit 10e and the network, and store it in a storage area.

[0056] In the parameter tuning process, the control unit 8 repeatedly sets and evaluates a plurality of parameters to be tuned for a problem (instance) for which an optimal solution is to be searched, thereby identifying an optimal combination of parameter values.

[0057] The data point classification unit 3, kernel density estimation unit 4, and combination selection unit 5 perform a selection process to select values ​​for each of multiple parameters from candidate values ​​that can be set for each parameter to be tuned (candidate values ​​that each parameter can take).

[0058] In repeated processing, the data point classification unit 3 classifies (divides) the data points observed up to that point. For example, as shown in Fig. 3, the data point classification unit 3 sorts the data points observed up to that point in the running instance by evaluation value, for example, the value of the output variable y, and classifies them into two groups: a top group L indicated by a dashed line frame (for example, points with evaluation values ​​in the top 10%) and a bottom group G indicated by a dashed line frame.

[0059] The kernel density estimation unit 4 performs kernel density estimation based on the currently running instance indicated by the instance information 2a and a plurality of past instances indicated by the performance information 2b, thereby obtaining a probability density function.

[0060] For example, as shown in FIG. 5, the kernel density estimation unit 4 may create a kernel function for each of the data points in a subgroup G of data points observed in the running instance, and calculate the probability density function g(x) by adding up these kernel functions.

[0061] Furthermore, the kernel density estimator 4 performs the following process in calculating the probability density function l(x). The kernel density estimator 4 generates a kernel function α for each of the parameter values ​​(first values) observed in the currently running instance, for example, each of the data points in the top group L (see FIG. 5). The kernel density estimator 4 also generates a kernel function β for each of the multiple parameter values ​​(multiple second values) identified in multiple past instances. The kernel density estimator 4 then combines the kernel functions α and β according to a predetermined weight to generate the parameter probability density function l(x).

[0062] Here, in the kernel density estimation in TPE shown in Figure 5 (see step S112 in Figure 2), kernel functions are generated from data points observed in the running instance, and the probability density function is calculated by adding up these kernel functions.

[0063] In contrast, the kernel density estimation unit 4 uses multiple parameter values ​​identified in multiple past instances in addition to the currently running instance when generating the probability density function l(x). By incorporating trends in multiple past instances in this way, for example, parameter values ​​evaluated as optimal values ​​in tuning in multiple past instances can be used to generate the probability density function l(x).

[0064] This enables efficient tuning of hyperparameters, improving the quality of the solution. Furthermore, the improvement in solution quality reduces the number of searches for combinations of hyperparameter values, for example, the number of loops of steps S102 to S104 shown in Fig. 1, thereby shortening the tuning time.

[0065] The combination selection unit 5 selects a combination of parameter values ​​by sampling and evaluating candidate points for each of the probability density functions l(x) and g(x) acquired by the kernel density estimation unit 4. For example, as shown in FIG. 6, the combination selection unit 5 selects a parameter value x according to the probability density function l(x) as a candidate point x + (See black dots) and select multiple candidate points x + From the above, find the point that maximizes the acquisition function, for example, l(x + ) / g(x + ) is maximized when x + The combination selection unit 5 selects (specifies) the value x selected for each parameter. + is output as a combination of parameter values.

[0066] The parameter evaluation unit 6 evaluates the parameters based on the combination of parameter values ​​selected by the selection process. For example, the parameter evaluation unit 6 sets the values ​​of multiple parameters in the selected combination, executes a process for solving the optimization problem for the instance, and evaluates the parameters in the selected combination based on the execution result. Note that the tuning process by the parameter evaluation unit 6 may be similar to the parameter evaluation process (step S103) shown in FIG. 1, for example.

[0067] The output unit 7 outputs (stores) the values ​​of each of the multiple parameters identified by the parameter evaluation unit 6 as optimal parameter values ​​2c in the memory unit 2. The optimal parameter values ​​2c are a combination of optimal parameter values, and are used, for example, as setting values ​​of hyperparameters when a solution process for an optimization problem is executed. The output unit 7 may transmit the optimal parameter values ​​2c to another computer (not shown) via the IF unit 10e and a network.

[0068] [C] Explanation of kernel density estimation part Next, we will explain the details of the kernel density estimation process by the kernel density estimation unit 4. First, as a comparative example, a calculation example of the probability density function l(x) calculated from the kernel function of the running instance by the TPE method is shown in the following formula (2).

number

[0069] In order to incorporate the trends in the above-mentioned multiple past instances in the calculation of the probability density function l(x), the kernel density estimation unit 4 may calculate the probability density function l(x), for example, according to the calculation formula shown in Equation (3) below.

number

[0070] In the above formulas (2) and (3), x is the value of a certain parameter, i.e., a data point. n is the number of data points observed in the running instance, i.e., the instance for which the optimal solution is being searched. 1i is a weight added (e.g., multiplied) for each data point observed in the running instance, and is an example of a first weight. i is the value of the parameter at each data point. h is the bandwidth.

[0071] In the above formula (3), m is the number of past instances. 2j is a weight added (for example, multiplied) for each past instance, and is an example of a second weight. j is an optimal parameter value tuned for each of a plurality of past instances, and is an example of the second value. Note that in the above formula (3), the part shown in the following formula (4) is an example of the kernel function α, and the part shown in the following formula (5) is an example of the kernel function β.

number

[0072] In the above formula (4), the kernel function α is generated from the data point x (parameter value: first value) observed in the running instance, for example, the data point included in the top group L. In addition, in the above formula (5), the kernel function β is generated from the optimal parameter value (second value) x tuned (specified) in the past instance. j It is generated using

[0073] From the above formulas (3) to (5), the above formula (3) is a function of a plurality of kernel functions α generated based on a plurality of values ​​x of a parameter observed in a predetermined instance, and a plurality of values ​​x of the parameter identified in a plurality of past instances. j For example, the above formula (3) is an example of a calculation formula including a plurality of kernel functions β generated based on the weight w 1i The sum of the results of multiplying the kernel functions β by the weight w 2j In the above formula (3), the weight w when the variable i is changed from 1 to n is calculated so that the integrated result of the values ​​in the curly brackets is 1. 1i (The sum of the weights w when the variable j is changed from 1 to m) + (The weight w when the variable j is changed from 1 to m) 2j The total value of the

[0074] Fig. 10 is a diagram showing an example of the probability density function l(x) calculated by the kernel density estimation unit 4. Reference symbol B1 in Fig. 10 shows a graph of the probability density function l(x) calculated from the kernel function of the running instance according to the above formula (2) (see reference symbol B11) using a comparative example, for example, the TPE technique. Reference symbol B2 in Fig. 10 shows a graph of the probability density function l(x) calculated by the kernel density estimation unit 4 according to the above formula (3) (see reference symbol B21) from the kernel function α of the running instance and the kernel function β of the past instance.

[0075] As shown by the dashed frame in the graph of symbol B2, the kernel density estimation unit 4 uses a kernel function β obtained from past instances in addition to the kernel function α (see the graph of symbol B1) in calculating the probability density function l(x).

[0076] As a result, as shown by the solid-line frame in the graph indicated by symbol B2, the position (data point) of the highest peak in the graph of the probability density function l(x), i.e., the parameter value at which the maximum value of the probability density is obtained, changes from the graph indicated by symbol B1. In TPE, the position of the highest peak in the graph of the probability density function l(x) is more likely to be selected as the next parameter value. Therefore, the parameter values ​​determined to be optimal in past instances can be used to adjust the parameter values ​​selected in the running instance so as to contribute to improving solution performance.

[0077] [C-1] Explanation of weight determination method In the above equation (3), the weight w to be multiplied by the kernel function α is 1i and the weight w to be multiplied by the kernel function β 2j The weights w 1i and w 2j An example of each of the determination methods will be described below.

[0078] Weight w 1i is the weight w included in the above equation (2) 1i (The weight w included in the above formula (1) i For example, the kernel density estimation unit 4 uses a weight w 1i The weight w 1i may be determined.

[0079] Weight w 2j is adjusted so as not to give too much influence of past instances to the probability density function l(x). For example, the kernel density estimation unit 4 adjusts the weight w according to the number m of kernel functions β obtained when generating the kernel function β and the initial number N of kernel functions α obtained when generating the kernel function α. 2j may be determined.

[0080] The initial number N is the number of candidate points randomly determined in the initial stage of parameter tuning. Since the number of data points observed so far is too small in the initial stage, the control unit 8 randomly determines candidate points instead of using the "number of data points observed so far" in the TPE method. The kernel density estimation unit 4 sets the number of candidate points randomly determined in the initial stage as the initial number N.

[0081] In the initial stage of parameter tuning, the above formula (3) is set to an initial number N instead of the number n of data points observed in the running instance, as shown in the following formula (6).

number

[0082] In the above formula (6), the number of kernel functions α added in the first term in the curly brackets is the initial number N, and the number of kernel functions β added in the second term in the curly brackets is the number m. In this case, if the number m of kernel functions β is too large compared to the initial number N of kernel functions α, the probability density function l(x) will be too affected by past instances. In this case, the combination of parameter values ​​obtained by tuning using the probability density function l(x) may not be the optimal combination for the instance currently being executed.

[0083] Therefore, the kernel density estimator 4 uses the weights w 2j For example, the value shown in the following formula (7) is set as:

number

[0084] In the above formula (7), k is an adjustment coefficient. For example, in an experiment where N = 10, m = 27, and k = 2, the probability density function l(x) can be adjusted so that it is not too affected by past instances, and the weight w 2jThe effectiveness of the settings was confirmed.

[0085] [C-2] Explanation of weight setting patterns Weight w of kernel function β 2j The value of w may be constant during the tuning process for one instance, or may change as the tuning process progresses. The kernel density estimator 4 determines the weight w by, for example, one of the following patterns (i) to (iv): 2j may be set.

[0086] (i) First pattern During the parameter tuning process, the kernel density estimation unit 4 uniformly sets the weights w according to the above equation (7) 2j This allows you to set the weight w 2j can be set to a fixed value, it is possible to suppress an increase in the processing load of the optimization device 1 and to shorten the processing time.

[0087] (ii) Second pattern The kernel density estimation unit 4 calculates a weight w according to the priority (importance) of each of the past instances. 2j Adjust the value of, for example, the weight w 2j For example, the kernel density estimation unit 4 determines that the more recently executed an instance is among multiple past instances, the higher the priority, and assigns a weight w 2j You can set the value to a large value.

[0088] Hereinafter, among multiple past instances, an instance that was executed relatively close to the current time may be referred to as a "new instance," and an instance that was executed relatively far from the current time may be referred to as an "old instance."

[0089] For example, in the above formula (3) or (6), it is assumed that the instance selected according to the value of the variable j is an older instance as the value of the variable j becomes smaller, and a newer instance as the value of the variable j becomes larger. In this case, the kernel density estimation unit 4 selects a weight w 2j The smaller the value of and the larger the value of variable j, the 2j To increase the value of, for example, the weight w 2j may be set.

number

[0090] In the above formula (8), c is an adjustment coefficient. Note that if the instance selected according to the value of variable j is an older instance the larger the value of variable j, and a newer instance the smaller the value of variable j, then in the above formula (8), the above formula (7) can be divided by the variable j rather than multiplied by it. Furthermore, if the value of variable j does not correspond to the timing of execution of the instance, another variable indicating the execution order of the instance may be used instead of variable j.

[0091] This allows instances with higher priorities among multiple past instances to have a greater influence on the probability density function l(x) than instances with lower priorities, increasing the likelihood that more appropriate parameter values ​​will be selected. For example, by giving newer instances higher priorities, it becomes possible to incorporate a high proportion of recent trends in more appropriate parameter values ​​into the probability density function l(x).

[0092] Information for identifying the timing at which each of the multiple past instances was executed may be included in, for example, the performance information 2 b. Examples of such information include information indicating the timing at which the instance was executed, such as a timestamp, or information that can identify the order in which each of the multiple instances was executed, such as a serial number.

[0093] Although the above description has been given using an example in which priority is set based on the recency of an instance, this is not limiting. Priority may be set based on various information that allows a ranking to be set for each of a plurality of past instances or that allows each of a plurality of past instances to be classified.

[0094] For example, the priority may be set based on the similarity of each of a plurality of past instances to the currently running instance, with the more similar the past instance is to the currently running instance, the higher the priority. This allows more appropriate parameter values ​​identified for instances with higher similarity to the currently running instance to be incorporated into the probability density function l(x) at a higher rate. For example, when acquiring instance information 2a, the control unit 8 may calculate the similarity between the instance information 2a and each of a plurality of instances included in the performance information 2b. The calculation of the similarity may be achieved using various known techniques.

[0095] (iii) Third pattern The kernel density estimation unit 4 calculates the weights w according to the number n of kernel functions α. 2j For example, when the number n of kernel functions α is equal to or smaller than a predetermined threshold, the kernel density estimation unit 4 adjusts the value of the weight w according to the above formula (7) in the same manner as in the first pattern. 2j On the other hand, when the number n of the kernel functions α exceeds a predetermined threshold, the kernel density estimation unit 4 sets the weight w 2j may be set to a value greater than the value according to the above formula (7). As an example, the kernel density estimator 4 may set the weight w 2j may be set.

number

[0096] In the above formula (9), d is an adjustment coefficient. Th is a predetermined threshold for determining whether or not the situation in which the number m of kernel functions β is too large compared to the number n (initial number N) of kernel functions α has been resolved, and may be set based on, for example, the initial number N of kernel functions α and the number m of kernel functions β.

[0097] In this way, as the tuning process progresses, when the situation where the number m of kernel functions β is too large compared to the number n (initial number N) of kernel functions α is resolved, the kernel density estimation unit 4 adjusts the weight w 2j The value of is set to a value larger than before the cancellation. This allows the optimal parameter values ​​from past instances to be incorporated into the probability density function l(x) in an appropriate proportion, depending on the number n of kernel functions α.

[0098] In the above equation (9), the weight w 2j In the example shown, the value of d can take two values ​​depending on the comparison result between the number n of kernel functions α and the threshold Th, but the present invention is not limited to this. For example, the adjustment coefficient d may be a variable that changes depending on the value of the number n of kernel functions α. Also, instead of the threshold Th and the adjustment coefficient d, a plurality of thresholds Th1, ..., Th (p is an integer of 2 or more) may be used. p (e.g., Th1< ... < Th p ) and multiple adjustment factors d1,...,d p (e.g., d1< ... < d p ) may also be used.

[0099] (iv) Fourth pattern In the second pattern, weights w are assigned based on the priorities of each of the past instances. 2j In the third pattern, we explain how to change the weight w based on the number n of kernel functions α related to the running instance. 2j As a fourth pattern, the kernel density estimation unit 4 may execute a combination of the second and third patterns.

[0100] For example, the kernel density estimation unit 4 calculates the weight w based on the number n of kernel functions α related to the currently running instance and the priority of each of the past instances in accordance with the following formula (10) which is a combination of the above formulas (8) and (9): 2j may be changed.

number

[0101] [D] Operational example of one embodiment 11 is a flowchart illustrating an example of the operation of the optimization device 1 according to an embodiment. It is assumed that the memory unit 2 stores instance information 2a and performance information 2b.

[0102] In step S1, an instance is input to the control unit 8 from the instance information 2a.

[0103] In step S2 (S21 to S25), the data point classification unit 3, the kernel density estimation unit 4, and the combination selection unit 5 perform selection processing.

[0104] In step S21, the data point classification unit 3 classifies (divides) the data points that have been observed up to that point.

[0105] In step S22, the kernel density estimation unit 4 generates a kernel function β from optimal parameter values ​​identified in a plurality of past instances (similar instances).

[0106] In step S23, the kernel density estimation unit 4 generates a kernel function α from data points (parameter values) observed in the running instance.

[0107] In step S24, the kernel density estimator 4 calculates the weight w 1i The kernel function α multiplied by the weight w 2jThe kernel density estimation unit 4 generates a probability density function l(x) of the parameter by combining the kernel function β multiplied by the parameter β and the kernel density estimation unit 4 generates a probability density function g(x) of the parameter.

[0108] Note that steps S22 and S23 may be executed in reverse order or in parallel. Steps S22 to S24 are an example of a kernel density estimation process.

[0109] In step S25, the combination selection unit 5 samples and evaluates candidate points for each of the probability density functions l(x) and g(x). For example, the combination selection unit 5 selects a plurality of candidate points x + From l(x + ) / g(x + ) is maximized when the candidate point x + The combination selection unit 5 selects the candidate point x selected for each parameter. + is output to the parameter evaluation unit 6 as a combination of parameter values.

[0110] In step S3, the parameter evaluation unit 6 sets the values ​​of multiple parameters for the selected combination, executes a process to solve the optimization problem for the running instance, and evaluates the parameters for the selected combination based on the execution results.

[0111] In step S4, the parameter evaluation unit 6 determines whether or not to end the parameter tuning. If not (NO in step S4), the process proceeds to step S2 (S21 to S25). If to end (YES in step S4), the process proceeds to step S5. Whether or not to end the parameter tuning may be determined based on, for example, whether or not an evaluation result (e.g., an evaluation function value) that satisfies an end criterion has been obtained in step S3, or whether or not a predetermined number of repetitions have been performed.

[0112] In step S5, the output unit 7 outputs the optimal parameter value combination identified by the parameter evaluation unit 6, for example, the parameter value combination that provides the best result in the parameter evaluation, as the optimal parameter value 2c, and the process ends. The optimal parameter value 2c may be stored in the memory unit 2, for example.

[0113] As described above, according to the optimization device 1 according to one embodiment, when generating the probability density function l(x) in kernel density estimation, multiple values ​​of optimal parameters identified in multiple past instances are used in addition to the currently running instance. This enables efficient tuning of hyperparameters, thereby improving the quality of the solution and shortening the tuning time.

[0114] FIG. 12 is a diagram showing an example of an evaluation function value obtained by a method according to an embodiment. FIG. 12 shows a comparison of the results of a tuning process using a TPE as a comparative example and a tuning process in which a method according to an embodiment is applied to a TPE for an instance related to an optimization problem in IT drug discovery. In FIG. 12, for each of the comparative example and the method according to an embodiment, the calculation of the evaluation function value obtained when the optimal combination of parameter values ​​finally identified by tuning was set was performed 10 times, and the median and average values ​​of the measurement results were calculated. Furthermore, the method according to an embodiment used the optimal parameter values ​​tuned for the past 27 instances (m = 27).

[0115] As shown in Figure 12, in each of the examples of instance #0 (code C1) and instance #1 (code C2), the method of one embodiment produced better results than the comparative example in both the median and average evaluation function values, confirming its effectiveness in improving the quality of the solution.

[0116] Fig. 13 is a diagram showing an example of tuning time using a method according to an embodiment. Fig. 13 shows a comparison of processing time between a tuning process using a TPE as a comparative example and a tuning process in which the method according to an embodiment is applied to a TPE. As shown in Fig. 13, the method according to an embodiment can obtain an evaluation function value equivalent to that of the method according to the comparative example in a tuning time that is up to four times faster (one-fourth or less), confirming the effectiveness of shortening tuning time by improving the quality of the solution.

[0117] [E] Other The technology according to the embodiment described above can be implemented with the following modifications and variations.

[0118] For example, the data point classification unit 3, kernel density estimation unit 4, combination selection unit 5, parameter evaluation unit 6, and output unit 7 provided in the optimization device 1 shown in Figure 9 may be merged in any combination or may be separated.

[0119] 9 may be configured such that each processing function is realized by a plurality of devices cooperating with each other via a network. As an example, the data point classification unit 3, kernel density estimation unit 4, combination selection unit 5, parameter evaluation unit 6, and output unit 7 may be realized by an application server or a web server, and the memory unit 2 may be realized by a DB (Database) server. In this case, the web server, application server, and DB server may cooperate with each other via a network to realize the processing function of the optimization device 1.

[0120] [F] Notes The following additional notes are provided regarding the above embodiment.

[0121] (Appendix 1) generating a probability density function for each of a plurality of parameters used in the optimization algorithm by combining a kernel function generated from a first value of the parameter observed at a given instance and a kernel function generated from a second value of the parameter identified at each of a plurality of instances; determining a value for each of the plurality of parameters based on the probability density function generated for each of the plurality of parameters; A parameter-specific program that causes a computer to execute a process.

[0122] (Appendix 2) The generating process includes: a process of calculating the probability density function according to a calculation formula for the probability density function in a kernel density estimation process, the calculation formula including a plurality of kernel functions generated based on a plurality of first values ​​of the parameter observed in the predetermined instance, and a plurality of kernel functions generated based on a plurality of second values ​​of the parameter identified in the plurality of instances; 1. A parameter identification program as described in Appendix 1.

[0123] (Appendix 3) The calculation process includes: The calculation includes a process of calculating l(x), which is the probability density function, using the following formula (11) as the calculation formula. Parameter identification program according to appendix 2.

number

[0124] (Appendix 4) The generating process includes: calculating a weight to be multiplied by the kernel function generated from the second value based on the number of values ​​of the parameter observed in the predetermined instance and the number of the plurality of instances, The parameter specifying program according to any one of Supplementary Note 1 to Supplementary Note 3.

[0125] (Appendix 5) The process of calculating the weights includes: adjusting the weight value by which each of the plurality of kernel functions generated based on the plurality of second values ​​of the parameter identified in the plurality of instances is multiplied according to a priority of each of the plurality of instances. 4. A parameter identification program as described in Appendix 4.

[0126] (Appendix 6) The process of calculating the weights includes: adjusting the weight value by which each of the plurality of kernel functions generated based on the plurality of second values ​​of the parameter identified in the plurality of instances is multiplied in accordance with the number of the plurality of kernel functions generated based on the plurality of first values ​​of the parameter observed in the predetermined instance. 4. A parameter identification program as described in Appendix 4.

[0127] (Appendix 7) The process of calculating the weights includes: adjusting the weight value by which each of the plurality of kernel functions generated based on the plurality of second values ​​of the parameter identified in the plurality of instances is multiplied, in accordance with the priority of each of the plurality of instances and the number of the plurality of kernel functions generated based on the plurality of first values ​​of the parameter observed in the specified instance; 4. A parameter identification program as described in Appendix 4.

[0128] (Appendix 8) outputting the combination of the identified values ​​of the plurality of parameters as setting values ​​of the hyperparameters to be set in the solution-finding process for the predetermined instance; 8. The parameter specifying program according to any one of claims 1 to 7, which causes the computer to execute a process.

[0129] (Appendix 9) the plurality of parameters identified based on the probability density function are parameters for searching for a solution for the predetermined instance using the optimization algorithm; The parameter specifying program according to any one of Supplementary Note 1 to Supplementary Note 8.

[0130] (Appendix 10) generating a probability density function for each of a plurality of parameters used in the optimization algorithm by combining a kernel function generated from a first value of the parameter observed at a given instance and a kernel function generated from a second value of the parameter identified at each of a plurality of instances; determining a value for each of the plurality of parameters based on the probability density function generated for each of the plurality of parameters; A parameter identification method in which processing is performed by a computer.

[0131] (Appendix 11) The generating process includes: a process of calculating the probability density function according to a calculation formula for the probability density function in a kernel density estimation process, the calculation formula including a plurality of kernel functions generated based on a plurality of first values ​​of the parameter observed in the predetermined instance, and a plurality of kernel functions generated based on a plurality of second values ​​of the parameter identified in the plurality of instances; 11. The parameter determination method of claim 10.

[0132] (Appendix 12) The calculation process includes: The calculation formula includes a process of calculating l(x), which is the probability density function, using the following formula (12) as the calculation formula. 12. The parameter determination method of claim 11.

number

[0133] (Appendix 13) The generating process includes: calculating a weight to be multiplied by the kernel function generated from the second value based on the number of values ​​of the parameter observed in the predetermined instance and the number of the plurality of instances; A parameter specifying method according to any one of Supplementary Note 10 to Supplementary Note 12.

[0134] (Appendix 14) The process of calculating the weights includes: adjusting the weight value by which each of the plurality of kernel functions generated based on the plurality of second values ​​of the parameter identified in the plurality of instances is multiplied according to a priority of each of the plurality of instances. 14. The parameter determination method of claim 13.

[0135] (Appendix 15) The process of calculating the weights includes: adjusting the weight value by which each of the plurality of kernel functions generated based on the plurality of second values ​​of the parameter identified in the plurality of instances is multiplied in accordance with the number of the plurality of kernel functions generated based on the plurality of first values ​​of the parameter observed in the predetermined instance. 14. The parameter determination method of claim 13.

[0136] (Appendix 16) The process of calculating the weights includes: adjusting the weight value by which each of the plurality of kernel functions generated based on the plurality of second values ​​of the parameter identified in the plurality of instances is multiplied, in accordance with the priority of each of the plurality of instances and the number of the plurality of kernel functions generated based on the plurality of first values ​​of the parameter observed in the specified instance; 14. The parameter determination method of claim 13.

[0137] (Appendix 17) outputting the combination of the identified values ​​of the plurality of parameters as setting values ​​of the hyperparameters to be set in the solution-finding process for the predetermined instance; 17. The parameter specifying method according to any one of Supplementary Note 10 to Supplementary Note 16, wherein the processing is executed by the computer.

[0138] (Appendix 18) generating a probability density function for each of a plurality of parameters used in the optimization algorithm by combining a kernel function generated from a first value of the parameter observed at a given instance and a kernel function generated from a second value of the parameter identified at each of a plurality of instances; determining a value for each of the plurality of parameters based on the probability density function generated for each of the plurality of parameters; An information processing device comprising a control unit.

[0139] (Appendix 19) The control unit, in the generating process, calculating the probability density function according to a calculation formula for the probability density function in a kernel density estimation process, the calculation formula including a plurality of kernel functions generated based on a plurality of first values ​​of the parameter observed in the predetermined instance, and a plurality of kernel functions generated based on a plurality of second values ​​of the parameter identified in the plurality of instances; 19. The information processing device according to claim 18.

[0140] (Appendix 20) The control unit, in the calculation process, The probability density function l(x) is calculated using the following formula (13) as the calculation formula: 19. The information processing device according to claim 18.

number

[0141] 1 Optimization device 10. Computers 2 Memory section 2a Instance Information 2b Performance information 2c Optimal parameter values 3 Data point classification part 4. Kernel density estimation 5 Combination selection section 6 Parameter evaluation section 7 Output section 8 Control Unit

Claims

1. generating a probability density function for each of a plurality of parameters used in the optimization algorithm by combining a kernel function generated from a first value of the parameter observed at a given instance and a kernel function generated from a second value of the parameter identified at each of a plurality of instances; determining a value for each of the plurality of parameters based on the probability density function generated for each of the plurality of parameters; A parameter-specific program that causes a computer to execute a process.

2. The generating process includes: a process of calculating the probability density function according to a calculation formula for the probability density function in a kernel density estimation process, the calculation formula including a plurality of kernel functions generated based on a plurality of first values ​​of the parameter observed in the predetermined instance, and a plurality of kernel functions generated based on a plurality of second values ​​of the parameter identified in the plurality of instances; The parameter specifying program according to claim 1 .

3. The generating process includes: calculating a weight to be multiplied by a kernel function generated from the second value based on the number of values ​​of the parameter observed in the predetermined instance and the number of the plurality of instances; 3. The parameter specifying program according to claim 1.

4. The process of calculating the weights includes: adjusting the weight value by which each of the plurality of kernel functions generated based on the plurality of second values ​​of the parameter identified in the plurality of instances is multiplied according to a priority of each of the plurality of instances; The parameter specifying program according to claim 3 .

5. The process of calculating the weights includes: adjusting the weight value by which each of the plurality of kernel functions generated based on the plurality of second values ​​of the parameter identified in the plurality of instances is multiplied in accordance with the number of the plurality of kernel functions generated based on the plurality of first values ​​of the parameter observed in the predetermined instance. The parameter specifying program according to claim 3 .

6. The process of calculating the weights includes: adjusting the weight value to be multiplied by each of the plurality of kernel functions generated based on the plurality of second values ​​of the parameter identified in the plurality of instances, in accordance with the priority of each of the plurality of instances and the number of the plurality of kernel functions generated based on the plurality of first values ​​of the parameter observed in the specified instance; The parameter specifying program according to claim 3 .

7. the plurality of parameters identified based on the probability density function are parameters for searching for a solution for the predetermined instance using the optimization algorithm; 3. The parameter specifying program according to claim 1.

8. generating a probability density function for each of a plurality of parameters used in the optimization algorithm by combining a kernel function generated from a first value of the parameter observed at a given instance and a kernel function generated from a second value of the parameter identified at each of a plurality of instances; determining a value for each of the plurality of parameters based on the probability density function generated for each of the plurality of parameters; A parameter identification method in which processing is performed by a computer.

9. generating a probability density function for each of a plurality of parameters used in the optimization algorithm by combining a kernel function generated from a first value of the parameter observed at a given instance and a kernel function generated from a second value of the parameter identified at each of a plurality of instances; determining a value for each of the plurality of parameters based on the probability density function generated for each of the plurality of parameters; An information processing device comprising a control unit.

Citation Information

Patent Citations

  • Methods and tools for automatically generating limited sets of spectral and service profiles.

    JP2014512134A

  • Product design device and product design method

    JP2020052737A

  • Device, method and system for parameter optimization

    JP2022074880A

  • Simulated annealing accelerated optimization for real-time drilling

    US20200240257A1

  • Combinatorial bayesian optimization using a graph cartesian product

    US20210034928A1