WO2020250843A1 - ハイパーパラメタチューニング方法、プログラム試行システム及びコンピュータプログラム - Google Patents
ハイパーパラメタチューニング方法、プログラム試行システム及びコンピュータプログラム Download PDFInfo
- Publication number
- WO2020250843A1 WO2020250843A1 PCT/JP2020/022428 JP2020022428W WO2020250843A1 WO 2020250843 A1 WO2020250843 A1 WO 2020250843A1 JP 2020022428 W JP2020022428 W JP 2020022428W WO 2020250843 A1 WO2020250843 A1 WO 2020250843A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- hyperparameter
- parameter
- value
- description data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Definitions
- This disclosure relates to hyperparameter tuning methods, program trial systems and computer programs.
- hyperparameters such as learning rate, batch size, number of learning iterations, number of neural network layers, and number of channels. Specifically, the values of various hyperparameters are set, and the machine learning model is trained under the set hyperparameter values.
- hyperparameters of deep learning models are either manually adjusted by the user or a particular programming language such as Python. It is adjusted by executing the hyper-parameter setting program written by the user.
- the conventional hyper parameter setting program (for example, refer to https://github.com/Epistimio/orion) needs to write the code directly in the target program (machine learning model) for which you want to set the hyper parameter. It was not always very convenient.
- the present disclosure provides a method for tuning hyperparameters with improved convenience.
- one aspect of the present disclosure is that one or more processors acquire a program execution instruction including parameter description data described in a command line interface, and the one or more processors described above.
- the present invention relates to a hyperparameter tuning method in which a processor sets a hyperparameter value of a program to be optimized according to the parameter description data and acquires an evaluation value of the hyperparameter value.
- a hyperparameter setting device for a trial target model such as a deep learning model
- a user inputs a program execution instruction including parameter description data for setting hyperparameters for a user program to be tried in a command line interface such as a command prompt or console displayed on a user terminal
- the hyper parameter setting device sets the hyper parameter value in the user program according to the input parameter description data.
- a user transmits a program execution instruction including parameter description data of a hyper parameter from a command line interface.
- the hyperparameter setting device sets the hyperparameter value of the user program based on the program execution instruction including the acquired parameter description data.
- the user can search for hyperparameters without writing a program or file in the user program for setting hyperparameters. Further, for example, it is possible to search for hyperparameters suitable for the described user program to be tried regardless of the type of programming language.
- the hyperparameter refers to a parameter that controls the behavior of the machine learning algorithm.
- the machine learning model is a deep learning model, it refers to parameters such as the learning rate, batch size, and number of learning iterations that cannot be optimized by the gradient method.
- tuning of hyperparameters includes evaluation of hyperparameter values, improvement (selecting a more preferable value), optimization, and the like.
- the evaluation of the hyperparameter value means that the user program is executed using the value of a certain hyperparameter and the evaluation value is acquired.
- the program trial system 10 has a hyper parameter setting device 100, a program trial device 200, and a database 250, and is connected to the user terminal 50.
- the program trial system 10 acquires parameter description data together with the user program to be tried (for example, a deep learning model) from the user terminal 50, for example, when the user program is tried according to the acquired parameter description data and the program execution instruction.
- the program trial system 10 determines the value of the next hyper parameter based on the trial result, and repeats the trial until the end condition is satisfied.
- the program trial system 10 determines the optimum hyperparameter value for the user program based on the trial results based on the values of various hyperparameters. For example, when the user program is a deep learning model, the deep learning model trained by the optimum hyperparameter values is used for subsequent classification, prediction, and the like.
- “optimization” means to approach the optimum state, and is not limited to strictly the optimum value or state. Similarly, “optimal” is not limited to being strictly optimal.
- the program trial system 10 is composed of three physically separated devices, a hyper parameter setting device 100, a program trial device 200, and a database 250. , But is not limited to this, it may be realized by a single device that realizes the functions provided by the hyper parameter setting device 100, the program trial device 200, and the database 250. Further, the program trial system 10 according to the present disclosure may be realized by one or more processors and one or more memories.
- the user terminal 50 is, for example, a calculation device such as a personal computer or a tablet.
- the user creates and stores a user program that describes a trial target model such as a machine learning model to be trained and a deep learning model by using the user terminal 50, and stores the user program in the hyper of the program trial system 10. It is transmitted to the parameter setting device 100.
- the user terminal 50 provides the hyper parameter setting device 100 with a program execution instruction including parameter description data for designating the hyper parameters to be set in the user program.
- the user inputs a command line for starting the hyper parameter setting device 100 on a command line interface such as a command prompt or console displayed on the user terminal 50, and sets various hyper parameters. Enter a program execution instruction containing parameter description data for the command line as an option.
- the hyper parameter setting program is entered by inputting "optunash run -n 100 ---" in the command line interface on the user terminal 50.
- the execution of "optunash” and the number of trials of the user program by the execution are specified as 100 times.
- the user inputs a program execution instruction including parameter description data.
- the user inputs the user program "nn-train” to be tried.
- the user specifies, for example, the learning rate “ ⁇ learning_rate” and the number of layers “ ⁇ num_layers” as the parameter description data.
- the parameter description data may define the hyperparameter setting range by the distribution identifier and the range specified value.
- “uniform” is a distribution identifier indicating that the distribution is uniform, and the range designation values "0.01" and “ “0.1” indicates a setting range from “0.01” to "0.1”
- “--learning_rate ⁇ uniform, 0.01, 0.1 ⁇ ” is "0.01”. It is specified that the learning rate is selected by a uniform distribution in the setting range from to "0.1".
- the distribution identifier is not limited to these, for example, the distribution identifier "loguniform” indicating that the distribution is a logarithmic uniform distribution, and the distribution identifier “loguniform” indicating that the distribution is a uniform distribution selected by the specified quantization step. "Discrete_uniform”, distribution identifier "categical” that specifies the element to be selected, and the like may be used.
- the parameter description data that defines the setting range of the hyper parameter by the distribution identifier and the range specified value is input via the command line interface on the user terminal 50, and by pressing the return key, for example, the hyper parameter It is transmitted to the setting device 100.
- the hyperparameter setting device 100 has an interface unit 110 and a hyperparameter setting unit 120.
- the interface unit 110 acquires a program execution instruction including parameter description data for setting hyper parameters of the program described in the command line interface. As shown in FIG. 1, for example, a program execution instruction including a user program and parameter description data transmitted from the user terminal 50 to the hyper parameter setting device 100 is received by the interface unit 110. The interface unit 110 passes the received user program and the program execution instruction including the parameter description data to the program trial device 200 and the hyperparameter setting unit 120, respectively.
- the interface unit 110 when the interface unit 110 acquires a program execution instruction including parameter description data of various hyper parameters input to the command line interface on the user terminal 50, the interface unit 110 changes the parameter description data in the acquired program execution instruction to the hyper parameter setting unit. It is converted into a data format that can be processed by 120, and the converted parameter description data is passed to the hyper parameter setting unit 120.
- the interface unit 110 parses the program execution instruction including the acquired parameter description data and extracts a specific pattern part such as " ⁇ character string ⁇ ".
- the interface unit 110 refers to the correspondence table held in advance, specifies the parameter request corresponding to the extracted distribution identifier, and specifies the extracted range specification value as an argument. Set in the request.
- the hyperparameter setting unit 120 sets the hyperparameter value in the program according to the parameter description data. Specifically, as shown in FIG. 1, when the parameter description data is acquired from the interface unit 110, the hyper parameter setting unit 120 determines and determines the value of the hyper parameter for the user program according to the acquired parameter description data. The value of the hyper parameter is returned to the interface unit 110.
- the hyperparameter value may be selected according to the distribution identifier and range specification value of the parameter request acquired from the interface unit 110.
- the hyper parameter setting unit 120 is within the range of "0.01" to "0.1".
- Hyperparameter values may be set randomly according to a uniform distribution. Further, the hyperparameter values may be set by using Bayesian optimization, Gaussian assumptions, software for hyperparameter optimization, or the like. Further, the hyperparameter setting unit 120 may store the set hyperparameter values in the database 250.
- the interface unit 110 sends the acquired hyper-parameter value to the program trial device 200 and executes the user program according to the hyper-parameter value.
- the interface unit 110 instructs the program trial device 200 to train the deep learning model according to the value of the hyper parameter set by the hyper parameter setting unit 120.
- the program trial device 200 trains the deep learning model under the value of the instructed hyper parameter by using, for example, the training data prepared in advance, and the accuracy, execution time, and progress of the trained deep learning model.
- the trial result including the evaluation value such as the degree is returned to the interface unit 110.
- the trial result may be obtained from standard output (stdout) or as a file.
- the interface unit 110 acquires an evaluation value including an evaluation value such as accuracy, execution time, and progress of the trained deep learning model from the trial result acquired as a standard output or a file.
- an evaluation value such as accuracy, execution time, and progress of the trained deep learning model
- the evaluation value reads the last line of the input string and converts it to floating point. It may be a value obtained.
- the extraction of the evaluation value is not limited to this, and instead of reading the last line, it may be acquired by using a pattern match such as a regular expression. Alternatively, the evaluation value pattern may be specified by an argument.
- the interface unit 110 passes the acquired trial result to the hyperparameter setting unit 120.
- the hyperparameter setting unit 120 stores the acquired trial result in the database 250 in association with the applied hyperparameter value. After that, the hyper parameter setting unit 120 sets the next value of the hyper parameter according to a uniform distribution within the setting range of “0.01” to “0.1”, transmits it to the interface unit 110, and resets it.
- the user program is executed in the program trial device 200 for a specified number of trials as described above under the value of the hyperparameter.
- the program trial device 200 is, for example, a calculation device such as a server that executes a user program to be tried, such as a deep learning model.
- the program trial device 200 is shown as a calculation device different from the hyperparameter setting device 100.
- the present disclosure is not limited to this, and for example, the hyperparameter setting device 100 and the program trial device 200 may be realized by the same computing device.
- the database 250 stores the trial results of the user program to be tried under the hyperparameter values set by the hyperparameter setting unit 120. For example, after executing the user program with the specified number of trials, the user acquires the trial results including the evaluation values stored in the database 250, and determines the optimum hyperparameter value from the trial results with the values of various hyperparameters. can do.
- FIG. 3 is a sequence diagram showing a hyperparameter setting process according to an embodiment of the present disclosure.
- the hyper parameter setting process may be started by starting the hyper parameter setting application provided to the user terminal 50 by the hyper parameter setting device 100.
- step S101 the user terminal 50 uses a user program to be tried (for example, a deep learning model to be trained) and parameter description data of hyperparameters applied to the trial of the user program.
- a program execution instruction including the above is provided to the interface unit 110.
- the user uses the user terminal 50 to transmit the user program to be tried to the hyper parameter setting device 100, and also uses the user program to try the user program via the command line interface of the user terminal 50.
- a program execution command including parameter description data for instructing the hyper parameter to be input is transmitted to the hyper parameter setting device 100.
- step S102 the interface unit 110 generates a parameter request based on the parameter description data acquired from the user terminal 50, and transmits the generated parameter request to the hyper parameter setting unit 120.
- the hyperparameter setting unit 120 determines the value of the hyperparameter for the trial of the user program based on the acquired parameter request. For example, when the acquired parameter request is "trial.suggest_uniform ('learning_rate', 0.01.0.1)", the hyper parameter setting unit 120 sets from “0.01” to "0.1". Select the learning rate value according to the uniform distribution within the range.
- step S104 the hyperparameter setting unit 120 returns the determined hyperparameter value to the interface unit 110.
- step S105 the interface unit 110 generates a program execution instruction in which the parameter description data is replaced with the value of the hyper parameter, and the program trial device replaces the user program to be tried and the program execution instruction in which the value of the set hyper parameter is replaced. It sends to 200 and instructs the program trial device 200 to try the user program under the value of the hyper parameter.
- step S106 the program trial device 200 executes the user program under the acquired hyperparameter values according to the trial instruction from the interface unit 110.
- the program trial device 200 trains the deep learning model under the value of the hyper parameter set by the hyper parameter setting unit 120, and trains under the value of the hyper parameter. Evaluate the accuracy, execution time, progress, etc. of the deep learning model.
- step S107 the program trial device 200 returns a trial result including evaluation results such as accuracy, execution time, and progress to the interface unit 110.
- step S108 the interface unit 110 extracts the evaluation result from the acquired trial result and provides the extracted evaluation result to the hyperparameter setting unit 120.
- step S109 the hyper parameter setting unit 120 stores the acquired trial result in the database 250, and sets the value of the hyper parameter to be applied to the next trial when the specified number of trials has not been reached. After that, steps S104 to S109 are repeated until the specified number of trials is reached.
- step S110 the interface unit 110 provides the user terminal 50 with the trial results acquired so far as the final result.
- the hyperparameter value is Define-by-. It is set by the run method. That is, when a plurality of types of hyperparameters are set, the values of other hyperparameters are set depending on the values of one hyperparameter that has already been set.
- the user specifies the number of layers by the distribution identifier "int” and the setting range from “1” to “8".
- the user specifies the number of hidden layers by the distribution identifier "int” and the setting range from “1” to "1024 / n_layers”. That is, the setting range of the number of hidden layers is set depending on the value of the number of layers "n_layers" that has already been set.
- the values of the number of layers "n_layers” are first determined in the order specified in the command line interface, and the pair of the hyperparameter "n_layers" and the determined values is saved. Will be done.
- the setting range of the number of hidden layers "n_hiden” is set.
- the setting range of the number of hidden layers "n_1024" is determined. For example, in the specific example shown in FIG. 4, when “n_layers” is set to “2”, a pair of “n_layers” and “2” is saved and used to determine “n_hiden”. Further, when “n_layers” is set to "7”, a pair of "n_layers” and “7” is saved and used to determine "n_hiden”. That is, the value of the hyper parameter can be set by the Define-by-run method in which the value of a certain hyper parameter is set depending on the setting value of another hyper parameter.
- n_layers is 2 and n_hiden is 16
- the hyper parameter setting unit 120 sets the hyper parameters in the order described in the acquired parameter description data. Determines and saves values, and determines the values of other hyperparameters depending on the values of hyperparameters that have already been determined and saved.
- the hyperparameter setting device according to another embodiment of the present disclosure will be described with reference to FIG.
- the user program is executed for the number of trials specified by the user, but in this embodiment, the training of the user program is terminated at an early stage based on the intermediate evaluation of the trial results. That is, the trial of the user program is terminated based on the intermediate trial result of the user program tried under the set hyperparameter value.
- FIG. 5 is a sequence diagram showing hyperparameter setting processing according to another embodiment of the present disclosure.
- step S201 the user terminal 50 uses a user program to be tried (for example, a deep learning model to be trained) and parameter description data of hyperparameters applied to the trial of the user program.
- a user program to be tried for example, a deep learning model to be trained
- parameter description data of hyperparameters applied to the trial of the user program To the interface unit 110.
- step S202 the interface unit 110 generates a parameter request based on the parameter description data acquired from the user terminal 50, and transmits the generated parameter request to the hyper parameter setting unit 120.
- step S203 the hyperparameter setting unit 120 determines the value of the hyperparameter for the trial of the user program based on the acquired parameter request.
- step S204 the hyperparameter setting unit 120 returns the determined hyperparameter value to the interface unit 110.
- step S205 the interface unit 110 transmits the user program to be tried and the acquired hyper-parameter value to the program trial device 200, and instructs the program trial device 200 to try the user program under the hyper-parameter value. To do.
- step S206 the program trial device 200 executes the user program under the acquired hyperparameter values according to the trial instruction from the interface unit 110.
- the program trial device 200 trains the deep learning model through a plurality of epochs executed under the hyperparameter value set by the hyperparameter setting unit 120, for example.
- the evaluation values such as the accuracy, execution time, and progress of the deep learning model trained under the value of the hyper parameter are output as the intermediate trial result.
- step S207 the program trial device 200 returns the evaluation result in each epoch to the interface unit 110 as an intermediate trial result.
- step S208 the interface unit 110 provides the acquired intermediate trial result to the hyperparameter setting unit 120.
- step S209 the hyper parameter setting unit 120 evaluates (interim evaluation) the intermediate trial result of each epoch during execution of the user program acquired earlier than the end of the normal training, and based on the intermediate trial result, the user program Execution of may be terminated earlier than usual.
- the hyper parameter setting unit 120 may determine whether to end further training of the user program based on an intermediate evaluation value consisting of one or more intermediate trial results of accuracy, execution time, and progress.
- the intermediate trial result for the intermediate evaluation used for this early termination determination and the trial result for the final result reported to the user may be different.
- the hyper parameter setting unit 120 may end the execution of further training based on the progress, and the interface unit 110 may report the execution time to the user terminal 50 as the final result.
- step S210 the hyper parameter setting unit 120 sends an early termination instruction to the program trial device 200 and the interface unit 110 to end the execution of the user program. Then, in step S211 if the specified number of trials has not been reached, the value of the hyperparameter to be applied to the next trial is set.
- the information related to the intermediate evaluation may be arbitrarily stored in the database 250.
- the program trial device 200 continues the execution of the user program, returns to step S207, and provides the interface unit 110 with the intermediate trial result of the next epoch. After that, the flow does not correspond to early termination, and the above-mentioned processing is repeated until the termination conditions such as the completion of the processing of a predetermined number of epochs are satisfied.
- step S211 the hyper parameter setting unit 120 stores the acquired trial result in the database 250, and sets the value of the hyper parameter to be applied to the next trial when the specified number of trials has not been reached.
- steps S204 to S211 are repeated until the specified number of trials is reached.
- step S212 the interface unit 110 provides the user terminal 50 with the trial results acquired so far as the final result.
- the hyper parameter setting device 100 acquires an intermediate evaluation value by monitoring the standard output of the program trial device 200 during the execution of the user program. Every time the standard output of the program trial device 200 for each epoch is updated, the hyper-parameter setting device 100 executes, for example, a predetermined intermediate evaluation extraction function to extract intermediate evaluation values such as accuracy and MSE. Then, the hyperparameter setting device 100 determines whether to terminate the execution of the user program early based on the acquired intermediate evaluation value. For example, the execution of the user program may be stopped when the intermediate evaluation value extracted by comparing with the intermediate evaluation value of the trial for the set value of another hyper parameter is equal to or less than the average value.
- a predetermined intermediate evaluation extraction function to extract intermediate evaluation values such as accuracy and MSE.
- the hyperparameter setting device 100 compares the intermediate evaluation value at the 5th second with the intermediate evaluation value of another trial, and for example, the intermediate evaluation value at the 5th second is the intermediate evaluation value of the other trial. If it is lower than the average of the intermediate evaluation values, the trial may be stopped in the middle.
- the hyper parameter setting device 100 and the program trial device 200 may be realized by the program trial system 10 composed of a single device.
- the program trial system 10 may execute the hyperparameter setting process according to the flowchart as shown in FIG.
- step S301 the program trial system 10 acquires the user program and parameter description data from the user terminal 50. That is, the program trial system 10 acquires a user program to be tried (for example, a deep learning model to be trained) and parameter description data of hyperparameters applied to the trial of the user program.
- a user program to be tried for example, a deep learning model to be trained
- step S302 the program trial system 10 sets hyperparameters according to the hyperparameter description data.
- step S303 the program trial system 10 executes the user program according to the set hyperparameters. Specifically, the program trial system 10 repeatedly executes the user program by the number of epochs.
- step S304 the program trial system 10 acquires an intermediate evaluation value for each epoch.
- step S305 the program trial system 10 determines whether to end further repetition of the user program by the hyper parameter value set in step S302 based on the acquired intermediate evaluation value. For example, when the acquired intermediate evaluation value is less than the average of the evaluation values by the other hyper parameter values that have been executed (S305: YES), the program trial system 10 further increases the user program according to the set hyper parameter values. The repetition is stopped, and the process proceeds to step S307. On the other hand, when the acquired intermediate evaluation value is equal to or greater than the average of the evaluation values by other hyperparameter values that have already been executed (S305: NO), the program trial system 10 proceeds to step S306 without terminating the user program early. To do.
- step S306 the program trial system 10 determines whether or not the predetermined maximum number of epochs has been exceeded. If the maximum number of epochs is not exceeded (S306: NO), the program trial system 10 returns to step S304 and acquires an intermediate evaluation value of the next epoch according to the set hyperparameter value. On the other hand, when the maximum number of epochs is exceeded (S306: YES), the program trial system 10 proceeds to step S307.
- step S307 the program trial system 10 determines whether the user program has been executed for all possible values of the hyperparameters.
- the program trial system 10 ends the hyperparameter setting process.
- the program trial system 10 sets the next hyperparameter value in step S302, and sets the next hyperparameter.
- the user program is repeatedly executed for the value by the number of epochs.
- the interface unit 110 acquires parameter description data as shown in FIG. 7 from the user terminal 50.
- two identical parameter description data are input via the command line interface on the user terminal 50.
- the interface unit 110 sends a parameter request corresponding to these two parameter description data to the hyper parameter setting unit 120, and the hyper parameter setting unit 120 sends a hyper parameter to each parameter description data.
- the interface unit 110 gives the set values of the two hyper parameters to the program trial device 200, and instructs the program trial device 200 to try the user program in parallel under the values of each hyper parameter.
- each function may be a circuit composed of an analog circuit, a digital circuit, or an analog / digital mixed circuit. Further, a control circuit for controlling each function may be provided. The mounting of each circuit may be by ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array) or the like.
- the hyper parameter setting device may be configured by hardware, or may be configured by software and executed by a CPU (Central Processing Unit) or the like by information processing of the software. Good.
- the hyper parameter setting device and a program that realizes at least a part of the functions thereof may be stored in a storage medium, read by a computer, and executed.
- the storage medium is not limited to removable ones such as magnetic disks (for example, flexible disks) and optical disks (for example, CD-ROMs and DVD-ROMs), and is fixed such as SSDs (Solid State Drives) that use hard disk devices and memories. It may be a type storage medium. That is, information processing by software may be concretely implemented using hardware resources. Further, the processing by software may be implemented in a circuit such as FPGA and executed by hardware. The job may be executed by using an accelerator such as a GPU (Graphics Processing Unit), for example.
- GPU Graphics Processing Unit
- the computer can be used as the device of the above embodiment by reading the dedicated software stored in the storage medium that can be read by the computer.
- the type of storage medium is not particularly limited.
- the computer can be used as the device of the above embodiment. In this way, information processing by software is concretely implemented using hardware resources.
- FIG. 8 is a block diagram showing an example of the hardware configuration in the embodiment of the present disclosure.
- the hyper parameter setting device 100 includes a processor 101, a main storage device 102, an auxiliary storage device 103, a network interface 104, and a device interface 105, and these are realized as a computer device connected via a bus 106. it can.
- the hyperparameter setting device 100 shown in FIG. 8 includes one component, the hyperparameter setting device 100 may include a plurality of the same components. Further, although one hyper parameter setting device 100 is shown, even if software is installed in a plurality of computer devices and each of the plurality of hyper parameter setting devices 100 executes a part of different processing of the software. Good. In this case, each of the plurality of hyperparameter setting devices 100 may communicate via the network interface 104 or the like.
- the processor 101 is an electronic circuit (processing circuit, Processing circuitry) including a control unit and an arithmetic unit of the hyperparameter setting device 100.
- the processor 101 performs arithmetic processing based on data and programs input from each apparatus of the internal configuration of the hyper parameter setting apparatus 100, and outputs an arithmetic result and a control signal to each apparatus and the like.
- the processor 101 controls each component constituting the hyper parameter setting device 100 by executing an OS (Operating System) of the hyper parameter setting device 100, an application, or the like.
- the processor 101 is not particularly limited as long as it can perform the above processing.
- the hyperparameter setting device 100 and each component thereof are realized by the processor 101.
- the processing circuit may refer to one or more electric circuits arranged on one chip, or may refer to one or more electric circuits arranged on two or more chips or devices. Good. When a plurality of electronic circuits are used, each electronic circuit may communicate by wire or wirelessly.
- the main storage device 102 is a storage device that stores instructions executed by the processor 101, various data, and the like, and the information stored in the main storage device 102 is directly read by the processor 101.
- the auxiliary storage device 103 is a storage device other than the main storage device 102. Note that these storage devices mean arbitrary electronic components capable of storing electronic information, and may be memory or storage. Further, the memory includes a volatile memory and a non-volatile memory, but either of them may be used.
- a memory for storing various data in the hyper parameter setting device 100 for example, a memory may be realized by the main storage device 102 or the auxiliary storage device 103. For example, at least a part of the memory may be mounted on the main storage device 102 or the auxiliary storage device 103.
- an accelerator is provided, at least a part of the above-mentioned memory may be implemented in the memory provided in the accelerator.
- the network interface 104 is an interface for connecting to the communication network 108 wirelessly or by wire. As the network interface 104, one conforming to the existing communication standard may be used. Information may be exchanged by the network interface 104 with the external device 109A which is communicated and connected via the communication network 108.
- the external device 109A includes, for example, a camera, motion capture, an output destination device, an external sensor, an input source device, and the like. Further, the external device 109A may be a device having some functions of the components of the hyperparameter setting device 100. Then, the hyper parameter setting device 100 may receive a part of the processing result of the hyper parameter setting device 100 via the communication network 108 like a cloud service.
- the device interface 105 is an interface such as USB (Universal Serial Bus) that directly connects to the external device 109B.
- the external device 109B may be an external storage medium or a storage device.
- the memory may be realized by the external device 109B.
- the external device 109B may be an output device.
- the output device may be, for example, a display device for displaying an image, a device for outputting audio, or the like.
- a display device for displaying an image for example, there are LCD (Liquid Crystal Display), CRT (Cathode Ray Tube), PDP (Plasma Display Panel), organic EL (ElectroLuminescence) display, speaker and the like, but the present invention is not limited thereto.
- the external device 109B may be an input device.
- the input device includes devices such as a keyboard, a mouse, a touch panel, and a microphone, and gives the information input by these devices to the hyperparameter setting device 100.
- the signal from the input device is output to the processor 101.
- the interface unit 110, the hyperparameter setting unit 120, and the like of the hyperparameter setting device 100 in the present embodiment may be realized by the processor 101.
- the memory of the hyperparameter setting device 100 may be realized by the main storage device 102 or the auxiliary storage device 103.
- the hyperparameter setting device 100 may be equipped with one or more memories.
- At least one of a, b and c is not only a combination of a, b, c, ab, ac, bc and abc, but also aa. , Abb, aabbbc, etc., which includes a plurality of combinations of the same elements.
- it is an expression that covers a configuration including elements other than a, b, and c, such as a combination of abcd.
- a, b or c is not only a combination of a, b, c, ab, ac, bc, abc, but also a combination. It is an expression including a plurality of combinations of the same elements such as aa, abb, aabbbcc. In addition, it is an expression that covers a configuration including elements other than a, b, and c, such as a combination of abcd.
- Program trial system 50 User terminal 100 Hyper parameter setting device 110 Interface unit 120 Hyper parameter setting unit 101 Processor 102 Main storage device 103 Auxiliary storage device 104 Network interface 105 Device interface 108 Communication network 109 External device 200 Program trial device 250 Database
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Stored Programmes (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
利便性が向上したハイパーパラメタのチューニング方法が提供される。本開示の一態様は、1つ又は複数のプロセッサが、コマンドラインインタフェースにおいて記述された、パラメタ記述データを含むプログラム実行命令を取得することと、前記1つ又は複数のプロセッサが、前記パラメタ記述データに従って最適化対象のプログラムのハイパーパラメタの値を設定し、前記ハイパーパラメタの値の評価値を取得することと、を有するハイパーパラメタチューニング方法に関する。
Description
本開示は、ハイパーパラメタチューニング方法、プログラム試行システム及びコンピュータプログラムに関する。
機械学習モデルを訓練する際、例えば、学習率、バッチサイズ、学習イテレーション数、ニューラルネットワークの層数、チャネル数などのハイパーパラメタの調整が必要とされる。具体的には、各種ハイパーパラメタの値を設定し、設定されたハイパーパラメタ値の下で機械学習モデルが訓練される。
しかしながら、ハイパーパラメタの調整は、訓練済み深層学習モデルの精度に影響を与える一方、現状、深層学習モデルのハイパーパラメタは、ユーザによって手動により調整されているか、あるいは、Pythonなどの特定のプログラミング言語を用いてユーザによって記述されたハイパーパラメタ設定プログラムを実行することによって調整されている。また、従来のハイパーパラメタ設定プログラム(例えば、https://github.com/Epistimio/orionを参照されたい)は、ハイパーパラメタを設定したい対象のプログラム(機械学習モデル)内に直接コードを記述する必要があるなど、必ずしも利便性が高いといえるものではなかった。
本開示は、利便性が向上したハイパーパラメタのチューニング方法を提供する。
上記課題を解決するため、本開示の一態様は、1つ又は複数のプロセッサが、コマンドラインインタフェースにおいて記述された、パラメタ記述データを含むプログラム実行命令を取得することと、前記1つ又は複数のプロセッサが、前記パラメタ記述データに従って最適化対象のプログラムのハイパーパラメタの値を設定し、前記ハイパーパラメタの値の評価値を取得することと、を有するハイパーパラメタチューニング方法に関する。
以下、図面に基づいて本開示の実施の形態を説明する。以下の実施例では、深層学習モデルなどの試行対象モデルのためのハイパーパラメタ設定装置が開示される。
[本開示の概略]
本開示を概略すると、ユーザがユーザ端末上に表示されたコマンドプロンプト、コンソール等のコマンドラインインタフェースに試行対象のユーザプログラムに対するハイパーパラメタを設定するためのパラメタ記述データを含むプログラム実行命令を入力すると、ハイパーパラメタ設定装置は、入力されたパラメタ記述データに従って当該ユーザプログラムにハイパーパラメタの値を設定する。本開示によると、ユーザは、コマンドラインインタフェースから、ハイパーパラメタのパラメタ記述データを含むプログラム実行命令を送信する。ハイパーパラメタ設定装置は、取得したパラメタ記述データを含むプログラム実行命令に基づいて、ユーザプログラムのハイパーパラメタの値を設定する。これにより、ユーザは、ハイパーパラメタを設定するためのユーザプログラム内にプログラム又はファイルを記述することなく、ハイパーパラメタを探索することができる。また、例えば、プログラミング言語の種類に依らず、記述された試行対象のユーザプログラムに適したハイパーパラメタを探索することができる。
[本開示の概略]
本開示を概略すると、ユーザがユーザ端末上に表示されたコマンドプロンプト、コンソール等のコマンドラインインタフェースに試行対象のユーザプログラムに対するハイパーパラメタを設定するためのパラメタ記述データを含むプログラム実行命令を入力すると、ハイパーパラメタ設定装置は、入力されたパラメタ記述データに従って当該ユーザプログラムにハイパーパラメタの値を設定する。本開示によると、ユーザは、コマンドラインインタフェースから、ハイパーパラメタのパラメタ記述データを含むプログラム実行命令を送信する。ハイパーパラメタ設定装置は、取得したパラメタ記述データを含むプログラム実行命令に基づいて、ユーザプログラムのハイパーパラメタの値を設定する。これにより、ユーザは、ハイパーパラメタを設定するためのユーザプログラム内にプログラム又はファイルを記述することなく、ハイパーパラメタを探索することができる。また、例えば、プログラミング言語の種類に依らず、記述された試行対象のユーザプログラムに適したハイパーパラメタを探索することができる。
なお、本明細書において、ハイパーパラメタとは、機械学習アルゴリズムの挙動を制御するパラメタのことを指す。特に、機械学習モデルが深層学習モデルである場合には、学習率、バッチサイズ、学習イテレーション数等、勾配法によって最適化できないパラメタを指す。また、ハイパーパラメタのチューニングとは、ハイパーパラメタの値の評価の他、改善(より好ましい値を選択すること)や最適化等を含む。なお、ハイパーパラメタの値の評価とは、あるハイパーパラメタの値を用いてユーザプログラムを実行し、評価値を取得することを意味する。
[ハイパーパラメタ設定装置の一実施例]
まず、図1~3を参照して、本開示の一実施例によるハイパーパラメタ設定装置を説明する。図1は、本開示の一実施例によるハイパーパラメタ設定装置を示す概略図である。
[ハイパーパラメタ設定装置の一実施例]
まず、図1~3を参照して、本開示の一実施例によるハイパーパラメタ設定装置を説明する。図1は、本開示の一実施例によるハイパーパラメタ設定装置を示す概略図である。
図1に示されるように、プログラム試行システム10は、ハイパーパラメタ設定装置100、プログラム試行装置200及びデータベース250を有し、ユーザ端末50と接続される。プログラム試行システム10は、例えば、ユーザ端末50から、試行対象のユーザプログラム(例えば、深層学習モデル)と共にパラメタ記述データを取得すると、取得したパラメタ記述データとプログラム実行命令とに従ってユーザプログラムを試行する際のハイパーパラメタの値を決定及び設定し、決定したハイパーパラメタの値に基づきユーザプログラムを試行する。決定されたハイパーパラメタの値の下でのユーザプログラムの試行後、プログラム試行システム10は、試行結果に基づき次のハイパーパラメタの値を決定し、終了条件を充足するまで当該試行を繰り返す。ユーザにより指定された試行回数の終了などの所定の終了条件を充足すると、プログラム試行システム10は、各種ハイパーパラメタの値による試行結果に基づき、ユーザプログラムに最適なハイパーパラメタの値を決定する。例えば、ユーザプログラムが深層学習モデルである場合、最適なハイパーパラメタの値によって訓練された深層学習モデルが、以降の分類、予測等に利用される。なお、本明細書において、「最適化」とは、最適な状態に近づけることを指し、厳密に最適な値または状態とすることに限られない。同様に、「最適な」とは、厳密に最適であることに限られない。
図示された実施例では、プログラム試行システム10は、ハイパーパラメタ設定装置100、プログラム試行装置200及びデータベース250の3つの物理的に分離した装置から構成されているが、本開示によるプログラム試行システム10は、これに限定されるものでなく、ハイパーパラメタ設定装置100、プログラム試行装置200及びデータベース250によって提供される機能を実現する単一の装置によって実現されてもよい。また、本開示によるプログラム試行システム10は、1つ又は複数のプロセッサと、1つ又は複数のメモリとによって実現されてもよい。
ユーザ端末50は、例えば、パーソナルコンピュータ、タブレット等の計算装置である。ユーザは、例えば、ユーザ端末50を用いて、訓練対象の機械学習モデル、深層学習モデルなどの試行対象モデルを記述したユーザプログラムを作成及び格納し、また、当該ユーザプログラムをプログラム試行システム10のハイパーパラメタ設定装置100に送信する。
また、ユーザ端末50は、当該ユーザプログラムに設定されるべきハイパーパラメタを指定するためのパラメタ記述データを含むプログラム実行命令をハイパーパラメタ設定装置100に提供する。具体的には、ユーザは、ユーザ端末50上に表示されるコマンドプロンプト、コンソールなどのコマンドラインインタフェース上でハイパーパラメタ設定装置100を起動するためのコマンドラインを入力すると共に、各種ハイパーパラメタを設定するためのパラメタ記述データを含むプログラム実行命令を当該コマンドラインのオプションとして入力する。
例えば、図2に示されるように、ユーザはまずハイパーパラメタ設定装置100を起動するため、ユーザ端末50上のコマンドラインインタフェースにおいて、“optunash run -n 100 --”を入力してハイパーパラメタ設定プログラム(図2の例では“optunash“)の実行とそれによるユーザプログラムの試行回数を100回として指定する。さらに、ユーザは、パラメタ記述データを含むプログラム実行命令を入力する。
例えば、まず、ユーザは、試行対象のユーザプログラム“nn-train”を入力する。次に、ユーザはパラメタ記述データとして、例えば、学習率“--learning_rate”及び層数“--num_layers”を指定する。具体的には、パラメタ記述データは、分布識別子と範囲指定値とによってハイパーパラメタの設定範囲を規定してもよい。
ここでは、ユーザは学習率として“--learning_rate={{uniform,0.01,0.1}}”をコマンドラインのオプションとして入力する。“--learning_rate={{uniform,0.01,0.1}}”によると、“uniform”は、一様分布であることを示す分布識別子であり、範囲指定値“0.01”及び“0.1”は、“0.01”から“0.1”までの設定範囲を示し、“--learning_rate={{uniform,0.01,0.1}}”は、“0.01”から“0.1”までの設定範囲において一様分布により学習率が選択されることを指定している。
また、ユーザは層数として“--num_layers={{int,2,8}}”を入力する。“--num_layers={{int,2,8}}”によると、“int”は選択対象が整数のみであることを示す分布識別子であり、範囲指定値“2”及び“8”は、“2”から“8”までの設定範囲を示し、“--num_layers={{int,2,8}}”は、“2”から“8”までの設定範囲において層数が選択されることを指定している。
なお、分布識別子はこれらに限定されず、例えば、対数一様分布であることを示す分布識別子“loguniform”、指定された量子化ステップにより選択される一様分布であることを示す分布識別子“discrete_uniform”、選択対象の要素を指定する分布識別子“categorical”等が利用されてもよい。
このようにして、分布識別子と範囲指定値とによってハイパーパラメタの設定範囲を規定するパラメタ記述データが、ユーザ端末50上のコマンドラインインタフェースを介し入力され、例えばリターンキーを押下することで、ハイパーパラメタ設定装置100に送信される。
ハイパーパラメタ設定装置100は、インタフェース部110及びハイパーパラメタ設定部120を有する。
インタフェース部110は、コマンドラインインタフェースにおいて記述された、プログラムのハイパーパラメタを設定するためのパラメタ記述データを含むプログラム実行命令を取得する。図1に示されるように、例えば、ユーザ端末50からハイパーパラメタ設定装置100に送信されたユーザプログラム及びパラメタ記述データを含むプログラム実行命令は、インタフェース部110において受信される。インタフェース部110は、受信したユーザプログラム及びパラメタ記述データを含むプログラム実行命令をそれぞれプログラム試行装置200及びハイパーパラメタ設定部120にわたす。
例えば、インタフェース部110は、ユーザ端末50上のコマンドラインインタフェースに入力された各種ハイパーパラメタのパラメタ記述データを含むプログラム実行命令を取得すると、取得したプログラム実行命令内のパラメタ記述データをハイパーパラメタ設定部120によって処理可能なデータ形式に変換し、変換したパラメタ記述データをハイパーパラメタ設定部120にわたす。
具体的には、インタフェース部110は、取得したパラメタ記述データを含むプログラム実行命令をパーシングし、“{{文字列}}”などの特定のパタン部分を抽出する。図2に示されたパラメタ記述データの具体例では、インタフェース部110はまず、取得したパラメタ記述データから特定のパタン部分として“--learning_rate={{uniform,0.01,0.1}}”を検出すると、第1項“uniform”を分布識別子とし、第2項及び第3項“0.01”及び“0.1”を範囲指定値として抽出する。特定のパタン部分の抽出後、インタフェース部110は、予め保持している対応表などを参照して、抽出した分布識別子に対応するパラメタ要求を特定し、抽出した範囲指定値を引数として特定したパラメタ要求に設定する。
ここでは、ハイパーパラメタ設定部120にハイパーパラメタチューニングのソフトウェアOptuna(https://optuna.org/)を利用する場合を例として説明する。インタフェース部110は、“--learning_rate={{uniform,0.01,0.1}}”をSuggest APIとしてのパラメタ要求“trial.suggest_uniform(‘learning_rate’,0.01.0.1)”に変換してもよい。インタフェース部110は、変換されたパラメタ要求をハイパーパラメタ設定部120に送信する。その後、インタフェース部110は、“--num_layers={{int,2,8}}”について同様の処理を実行する。
ハイパーパラメタ設定部120は、パラメタ記述データに従ってプログラムにハイパーパラメタの値を設定する。具体的には、図1に示されるように、インタフェース部110からパラメタ記述データを取得すると、ハイパーパラメタ設定部120は、取得したパラメタ記述データに従ってユーザプログラムに対するハイパーパラメタの値を決定し、決定したハイパーパラメタの値をインタフェース部110に返す。
例えば、ハイパーパラメタの値は、インタフェース部110から取得したパラメタ要求の分布識別子及び範囲指定値に従って選択されてもよい。上述したようなパラメタ要求“trial.suggest_uniform(‘learning_rate’,0.01.0.1)”を取得すると、ハイパーパラメタ設定部120は、“0.01”から“0.1”の範囲内で一様分布に従ってランダムにハイパーパラメタの値を設定してもよい。また、ハイパーパラメタの値の設定は、ベイズ最適化やガウス仮定、ハイパーパラメタの最適化のためのソフトウェアなどを用いることにより、行われてもよい。また、ハイパーパラメタ設定部120は、設定したハイパーパラメタの値をデータベース250に記憶してもよい。
このようにしてハイパーパラメタ設定部120によって設定されたハイパーパラメタの値を取得すると、インタフェース部110は、取得したハイパーパラメタの値をプログラム試行装置200にわたし、当該ハイパーパラメタの値によってユーザプログラムを実行するようプログラム試行装置200に指示する。例えば、learning_rateが0.02であり、num_layersが3の場合には、それぞれ該当するパラメタ記述データを置換して、“nn-train --learning_rate=0.02 --num_layers=3”という実行命令(コマンド)を生成し、実行する。同様に、learning_rateが0.07であり、num_layersが6の場合には、“nn-train --learning_rate=0.07 --num_layers=6”という実行命令(コマンド)を生成し、実行する。指示したハイパーパラメタの値によるユーザプログラムの実行後、インタフェース部110は、プログラム試行装置200から試行結果を取得する。
例えば、ユーザプログラムが訓練前の深層学習モデルである場合、インタフェース部110は、ハイパーパラメタ設定部120によって設定されたハイパーパラメタの値によって深層学習モデルを訓練するようプログラム試行装置200に指示する。プログラム試行装置200は、例えば、予め準備された訓練データ等を利用して、指示されたハイパーパラメタの値の下で深層学習モデルを訓練し、訓練された深層学習モデルの精度、実行時間、進捗度などの評価値を含む試行結果をインタフェース部110に返す。
当該試行結果は、標準出力(stdout)から取得されてもよいし、あるいは、ファイルとして取得されてもよい。そして、インタフェース部110は、標準出力又はファイルとして取得した試行結果から、訓練された深層学習モデルの精度、実行時間、進捗度などの評価値を含む評価値を取得する。例えば、入力文字列を受け取り、試行結果を抽出する関数を利用して、試行結果が標準出力として取得される場合、評価値は、入力文字列の最終行を読み、それを浮動小数点に型変換した値であってもよい。しかしながら、評価値の抽出は、これに限定されず、最終行を読む代わりに、正規表現などのパターンマッチを用いて取得されてもよい。あるいは、評価値のパターンが引数によって指定できるようにしてもよい。
プログラム試行装置200から試行結果を取得すると、インタフェース部110は、取得した試行結果をハイパーパラメタ設定部120にわたす。ハイパーパラメタ設定部120は、取得した試行結果を適用されたハイパーパラメタの値と関連付けてデータベース250に記憶する。その後、ハイパーパラメタ設定部120は、例えば、“0.01”から“0.1”の設定範囲内で一様分布に従ってハイパーパラメタの次の値を設定し、インタフェース部110に送信し、再設定されたハイパーパラメタの値の下で上述したようにユーザプログラムが、指定された試行回数だけプログラム試行装置200において実行される。
プログラム試行装置200は、例えば、深層学習モデルなどの試行対象のユーザプログラムを実行するサーバなどの計算装置である。図示された実施例では、プログラム試行装置200は、ハイパーパラメタ設定装置100と別の計算装置として示されている。しかしながら、本開示はこれに限定されず、例えば、ハイパーパラメタ設定装置100とプログラム試行装置200とは同一の計算装置によって実現されてもよい。
データベース250は、ハイパーパラメタ設定部120によって設定されたハイパーパラメタの値の下での試行対象のユーザプログラムの試行結果を記憶する。例えば、指定された試行回数によるユーザプログラムの実行後、ユーザは、データベース250に記憶された評価値を含む試行結果を取得し、各種ハイパーパラメタの値による試行結果から最適なハイパーパラメタの値を決定することができる。
図3は、本開示の一実施例によるハイパーパラメタ設定処理を示すシーケンス図である。例えば、当該ハイパーパラメタ設定処理は、ハイパーパラメタ設定装置100によってユーザ端末50に提供されるハイパーパラメタ設定アプリケーションを起動することによって開始されてもよい。
図3に示されるように、ステップS101において、ユーザ端末50は、試行対象のユーザプログラム(例えば、訓練対象の深層学習モデルなど)と、当該ユーザプログラムの試行に適用されるハイパーパラメタのパラメタ記述データを含むプログラム実行命令をインタフェース部110に提供する。具体的には、例えば、ユーザは、ユーザ端末50を利用して、試行対象のユーザプログラムをハイパーパラメタ設定装置100に送信すると共に、ユーザ端末50のコマンドラインインタフェースを介し当該ユーザプログラムの試行に利用されるハイパーパラメタを指示するためのパラメタ記述データを含むプログラム実行命令をハイパーパラメタ設定装置100に送信する。
ステップS102において、インタフェース部110は、ユーザ端末50から取得したパラメタ記述データに基づきパラメタ要求を生成し、生成したパラメタ要求をハイパーパラメタ設定部120に送信する。
ステップS103において、ハイパーパラメタ設定部120は、取得したパラメタ要求に基づき、ユーザプログラムの試行のためのハイパーパラメタの値を決定する。例えば、取得したパラメタ要求が“trial.suggest_uniform(‘learning_rate’,0.01.0.1)”である場合、ハイパーパラメタ設定部120は、“0.01”から“0.1”までの設定範囲内で一様分布に従って学習率の値を選択する。
ステップS104において、ハイパーパラメタ設定部120は、決定したハイパーパラメタの値をインタフェース部110に返す。
ステップS105において、インタフェース部110は、パラメタ記述データをハイパーパラメタの値で置き換えたプログラム実行命令を生成し、試行対象のユーザプログラム及び設定されたハイパーパラメタの値で置き換えたプログラム実行命令をプログラム試行装置200に送信し、当該ハイパーパラメタの値の下でユーザプログラムを試行するようプログラム試行装置200に指示する。
ステップS106において、プログラム試行装置200は、インタフェース部110からの試行指示に従って、取得したハイパーパラメタの値の下でユーザプログラムを実行する。例えば、ユーザプログラムが深層学習モデルである場合、プログラム試行装置200は、ハイパーパラメタ設定部120によって設定されたハイパーパラメタの値の下で深層学習モデルを訓練し、当該ハイパーパラメタの値の下で訓練された深層学習モデルの精度、実行時間、進捗度などを評価する。
ステップS107において、プログラム試行装置200は、精度、実行時間、進捗度などの評価結果を含む試行結果をインタフェース部110に返す。
ステップS108において、インタフェース部110は、取得した試行結果から評価結果を抽出し、抽出した評価結果をハイパーパラメタ設定部120に提供する。
ステップS109において、ハイパーパラメタ設定部120は、取得した試行結果をデータベース250に記憶すると共に、指定された試行回数に達していない場合、次の試行に適用するハイパーパラメタの値を設定する。その後、指定された試行回数に到達するまで、ステップS104~S109が繰り返される。
指定された試行回数に到達すると、ステップS110において、インタフェース部110は、これまで取得された試行結果を最終結果としてユーザ端末50に提供する。
[ハイパーパラメタ設定装置の他の実施例]
次に、図4を参照して、本開示の他の実施例によるハイパーパラメタ設定装置を説明する。上述した実施例では、学習率と層数などの異なるタイプのハイパーパラメタ値は互いに独立して決定されたが(Define-and-run方式)、本実施例では、ハイパーパラメタ値がDefine-by-run方式で設定される。すなわち、複数タイプのハイパーパラメタが設定される際、既に設定されたあるハイパーパラメタの値に依存して他のハイパーパラメタの値が設定される。
[ハイパーパラメタ設定装置の他の実施例]
次に、図4を参照して、本開示の他の実施例によるハイパーパラメタ設定装置を説明する。上述した実施例では、学習率と層数などの異なるタイプのハイパーパラメタ値は互いに独立して決定されたが(Define-and-run方式)、本実施例では、ハイパーパラメタ値がDefine-by-run方式で設定される。すなわち、複数タイプのハイパーパラメタが設定される際、既に設定されたあるハイパーパラメタの値に依存して他のハイパーパラメタの値が設定される。
例えば、図4に示されるように、ユーザは、コマンドラインインタフェースに介してパラメタ記述データとして層数“--n_layers={{int,1,8}}”及び隠れ層数“--n_hidden={{int,1,1024/n_layers}}”を指定する。
具体的には、ユーザは、分布識別子“int”と、“1”から“8”までの設定範囲とによって層数を指定する。次に、ユーザは、分布識別子“int”と、“1”から“1024/n_layers”までの設定範囲とによって隠れ層の層数を指定する。すなわち、隠れ層の層数の設定範囲は、既に設定された層数“n_layers”の値に依存して設定される。このように、本実施例によるパラメタ記述データによると、コマンドラインインタフェースにおいて指定された順に、層数“n_layers”の値がまず決定され、ハイパーパラメタ“n_layers”と決定された値とのペアが保存される。そして、“--n_hidden={{int,1,1024/n_layers}}”に従って隠れ層の層数“n_hidden”の設定範囲を決定する際、層数“n_layers”に対応する保存されている値に依存して、隠れ層の層数“n_hidden”の設定範囲が決定される。例えば、図4に示される具体例では、“n_layers”が“2”に設定されると、“n_layers”と“2”のペアが保存され、“n_hidden”を決定するのに利用される。また、“n_layers”が“7”に設定されると、“n_layers”と“7”のペアが保存され、“n_hidden”を決定するのに利用される。すなわち、あるハイパーパラメタの値が他のハイパーパラメタの設定値に依存して設定されるというDefine-by-run方式によって、ハイパーパラメタの値が設定可能である。
また、例えば、n_layersが2であり、n_hiddenが16の場合には、それぞれ該当するパラメタ記述データを置換して、“nn-train --n_layers=2 --n_hidden=16”という実行命令(コマンド)を生成し、実行する。同様に、n_layersが7であり、n_hiddenが25の場合には、“nn-train --n_layers=7 --n_hidden=25”という実行命令(コマンド)を生成し、実行する。
このようなDefine-by-run方式によりハイパーパラメタの値が設定されるパラメタ記述データをユーザ端末50から取得すると、ハイパーパラメタ設定部120は、取得したパラメタ記述データに記述されている順にハイパーパラメタの値を決定及び保存し、既に決定及び保存されたハイパーパラメタの値に依存して他のハイパーパラメタの値を決定する。
[ハイパーパラメタ設定装置の他の実施例]
次に、図5を参照して、本開示の他の実施例によるハイパーパラメタ設定装置を説明する。上述した実施例では、ユーザにより指定された試行回数だけユーザプログラムは実行されるが、本実施例では、さらに、試行結果の中間評価に基づき、早期にユーザプログラムの訓練が終了される。すなわち、設定されたハイパーパラメタの値の下で試行されたユーザプログラムの中間的な試行結果に基づき、当該ユーザプログラムの試行が終了される。図5は、本開示の他の実施例によるハイパーパラメタ設定処理を示すシーケンス図である。
[ハイパーパラメタ設定装置の他の実施例]
次に、図5を参照して、本開示の他の実施例によるハイパーパラメタ設定装置を説明する。上述した実施例では、ユーザにより指定された試行回数だけユーザプログラムは実行されるが、本実施例では、さらに、試行結果の中間評価に基づき、早期にユーザプログラムの訓練が終了される。すなわち、設定されたハイパーパラメタの値の下で試行されたユーザプログラムの中間的な試行結果に基づき、当該ユーザプログラムの試行が終了される。図5は、本開示の他の実施例によるハイパーパラメタ設定処理を示すシーケンス図である。
図5に示されるように、ステップS201において、ユーザ端末50は、試行対象のユーザプログラム(例えば、訓練対象の深層学習モデルなど)と、当該ユーザプログラムの試行に適用されるハイパーパラメタのパラメタ記述データとをインタフェース部110に提供する。
ステップS202において、インタフェース部110は、ユーザ端末50から取得したパラメタ記述データに基づきパラメタ要求を生成し、生成したパラメタ要求をハイパーパラメタ設定部120に送信する。
ステップS203において、ハイパーパラメタ設定部120は、取得したパラメタ要求に基づき、ユーザプログラムの試行のためのハイパーパラメタの値を決定する。
ステップS204において、ハイパーパラメタ設定部120は、決定したハイパーパラメタの値をインタフェース部110に返す。
ステップS205において、インタフェース部110は、試行対象のユーザプログラム及び取得したハイパーパラメタの値をプログラム試行装置200に送信し、当該ハイパーパラメタの値の下でユーザプログラムを試行するようプログラム試行装置200に指示する。
ステップS206において、プログラム試行装置200は、インタフェース部110からの試行指示に従って、取得したハイパーパラメタの値の下でユーザプログラムを実行する。例えば、ユーザプログラムが深層学習モデルである場合、プログラム試行装置200は、ハイパーパラメタ設定部120によって設定されたハイパーパラメタの値の下で実行される複数回のエポックを通じて深層学習モデルを訓練し、例えば、各エポックの終了後などに、当該ハイパーパラメタの値の下で訓練された深層学習モデルの精度、実行時間、進捗度などの評価値を中間試行結果として出力する。
ステップS207において、プログラム試行装置200は、各エポックにおける評価結果を中間試行結果としてインタフェース部110に返す。
ステップS208において、インタフェース部110は、取得した中間試行結果をハイパーパラメタ設定部120に提供する。
ステップS209において、ハイパーパラメタ設定部120は、通常の訓練終了より早期に取得した、ユーザプログラム実行中の各エポックの中間試行結果を評価(中間評価)し、当該中間試行結果に基づき、当該ユーザプログラムの実行を通常よりも早期に終了してもよい。例えば、ハイパーパラメタ設定部120は、精度、実行時間及び進捗度の1つ以上の中間試行結果からなる中間評価値に基づき、当該ユーザプログラムの更なる訓練を終了するか判断してもよい。
また、この早期終了判定に利用される中間評価のための中間試行結果とユーザに報告される最終結果のための試行結果とは、異なるものであってもよい。例えば、ハイパーパラメタ設定部120は、進捗度に基づき更なる訓練の実行を終了してもよく、インタフェース部110は、実行時間を最終結果としてユーザ端末50に報告してもよい。
当該ユーザプログラムが早期終了すべきと判定された場合、ステップS210において、ハイパーパラメタ設定部120は、プログラム試行装置200及びインタフェース部110に早期終了指示を送信し、当該ユーザプログラムの実行を終了させる。そして、ステップS211において、指定された試行回数に達していない場合、次の試行に適用するハイパーパラメタの値を設定する。なお、中間評価にかかる情報は任意にデータベース250に記憶されてもよい。
早期終了すべきと判定されなかった場合、プログラム試行装置200は、当該ユーザプログラムの実行を継続し、ステップS207に戻って、次のエポックの中間試行結果をインタフェース部110に提供する。その後、当該フローは、早期終了に該当せず、所定のエポック数の処理が終了したなどの終了条件が充足されるまで、上述した処理を繰り返す。
そして、ステップS211において、ハイパーパラメタ設定部120は、取得した試行結果をデータベース250に記憶すると共に、指定された試行回数に達していない場合、次の試行に適用するハイパーパラメタの値を設定する。
その後、指定された試行回数に到達するまで、ステップS204~S211が繰り返される。
指定された試行回数に到達した場合、ステップS212において、インタフェース部110は、これまで取得された試行結果を最終結果としてユーザ端末50に提供する。
具体的には、ハイパーパラメタ設定装置100は、ユーザプログラムの実行中にプログラム試行装置200の標準出力を監視することによって中間評価値を取得する。各エポックに対するプログラム試行装置200の標準出力が更新される毎に、ハイパーパラメタ設定装置100は、例えば、所定の中間評価抽出関数を実行し、精度やMSEなどの中間評価値を抽出する。そして、ハイパーパラメタ設定装置100は、取得した中間評価値に基づき当該ユーザプログラムの実行を早期終了するか判断する。例えば、他のハイパーパラメタの設定値に対する試行の中間評価値と比較し、抽出した中間評価値が平均値以下であった場合、当該ユーザプログラムの実行を停止してもよい。
このような早期終了を導入することによって、例えば、100通りの値をとるハイパーパラメタを有する機械学習プログラムがあり、各ハイパーパラメタ値に対して当該機械学習プログラムを終了するのに10秒かかるとする。また、1秒毎に1つの中間評価値を出力するとする。この場合、100通りのハイパーパラメタ値の全てについて機械学習プログラムを評価するのに100×10秒=1000秒かかる。しかしながら、早期終了によると、例えば、ハイパーパラメタ設定装置100が、5秒目の中間評価値と他の試行の中間評価値とを比較し、例えば、5秒目の中間評価値が他の試行の中間評価値の平均より低い場合、当該試行を途中で停止してもよい。早期終了を導入することによって、パイパーパラメタ最適化に要する時間を短縮することができる。
また、一実施例では、ハイパーパラメタ設定装置100及びプログラム試行装置200は、単一の装置から構成されるプログラム試行システム10によって実現されてもよい。この場合、プログラム試行システム10は、図6に示されるようなフローチャートに従ってハイパーパラメタ設定処理を実行してもよい。
図6に示されるように、ステップS301において、プログラム試行システム10は、ユーザ端末50からユーザプログラム及びパラメタ記述データを取得する。すなわち、プログラム試行システム10は、試行対象のユーザプログラム(例えば、訓練対象の深層学習モデルなど)と、当該ユーザプログラムの試行に適用されるハイパーパラメタのパラメタ記述データとを取得する。
ステップS302において、プログラム試行システム10は、ハイパーパラメタ記述データに従ってハイパーパラメタを設定する。
ステップS303において、プログラム試行システム10は、設定したハイパーパラメタによってユーザプログラムを実行する。具体的には、プログラム試行システム10は、ユーザプログラムをエポック数繰り返し実行する。
ステップS304において、プログラム試行システム10は、各エポックに対する中間評価値を取得する。
ステップS305において、プログラム試行システム10は、取得した中間評価値に基づき、ステップS302において設定されたハイパーパラメタ値による更なるユーザプログラムの繰り返しを終了するか判断する。例えば、取得した中間評価値が実行済みの他のハイパーパラメタ値による評価値の平均未満である場合(S305:YES)、プログラム試行システム10は、設定されているハイパーパラメタ値によるユーザプログラムの更なる繰り返しを停止し、ステップS307に移行する。他方、取得した中間評価値が実行済みの他のハイパーパラメタ値による評価値の平均以上である場合(S305:NO)、プログラム試行システム10は、ユーザプログラムを早期終了することなく、ステップS306に移行する。
ステップS306において、プログラム試行システム10は、所定の最大エポック数を超過したか判断する。最大エポック数を超過していない場合(S306:NO)、プログラム試行システム10は、ステップS304に戻り、設定されているハイパーパラメタ値による次のエポックの中間評価値を取得する。他方、最大エポック数を超過した場合(S306:YES)、プログラム試行システム10は、ステップS307に移行する。
ステップS307において、プログラム試行システム10は、ハイパーパラメタのとりうる全ての値に対してユーザプログラムを実行済みか判断する。ハイパーパラメタのとりうる全ての値に対してユーザプログラムを実行済みである場合(S307:YES)、プログラム試行システム10は、当該ハイパーパラメタ設定処理を終了する。他方、ハイパーパラメタのとりうる全ての値に対してユーザプログラムを実行済みでない場合(S307:NO)、プログラム試行システム10は、ステップS302において、次のハイパーパラメタ値を設定し、次のハイパーパラメタ設定値に対してユーザプログラムをエポック数繰り返し実行する。
[ハイパーパラメタ設定装置の他の実施例]
次に、図7を参照して、本開示の他の実施例によるハイパーパラメタ設定装置を説明する。本実施例では、ユーザプログラムの試行が分散化される。
[ハイパーパラメタ設定装置の他の実施例]
次に、図7を参照して、本開示の他の実施例によるハイパーパラメタ設定装置を説明する。本実施例では、ユーザプログラムの試行が分散化される。
例えば、インタフェース部110は、ユーザ端末50から図7に示されるようなパラメタ記述データを取得する。図示されたパラメタ記述データから理解されうるように、2つの同一のパラメタ記述データが、ユーザ端末50上のコマンドラインインタフェースを介し入力される。当該パラメタ記述データを取得すると、インタフェース部110は、これら2つのパラメタ記述データに対応するパラメタ要求をハイパーパラメタ設定部120に送信し、ハイパーパラメタ設定部120は、各パラメタ記述データに対してハイパーパラメタの値を設定し、インタフェース部110に返す。インタフェース部110は、設定された2つのハイパーパラメタの値をプログラム試行装置200にわたし、各ハイパーパラメタの値の下でユーザプログラムを並列的に試行するようプログラム試行装置200に指示する。プログラム試行装置200による試行が終了すると、インタフェース部110は、並列的に試行されたユーザプログラムの各試行結果を取得し、ハイパーパラメタ設定部120にわたす。これにより、より短い実行時間によってユーザプログラムの試行を終了することができる。
[ハイパーパラメタ設定装置のハードウェア構成]
実施形態におけるハイパーパラメタ設定装置100において、各機能は、アナログ回路、デジタル回路又はアナログ・デジタル混合回路で構成された回路であってもよい。また、各機能の制御を行う制御回路を備えていてもよい。各回路の実装は、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等によるものであってもよい。
[ハイパーパラメタ設定装置のハードウェア構成]
実施形態におけるハイパーパラメタ設定装置100において、各機能は、アナログ回路、デジタル回路又はアナログ・デジタル混合回路で構成された回路であってもよい。また、各機能の制御を行う制御回路を備えていてもよい。各回路の実装は、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等によるものであってもよい。
上記の全ての記載において、ハイパーパラメタ設定装置の少なくとも一部はハードウェアで構成されていてもよいし、ソフトウェアで構成され、ソフトウェアの情報処理によりCPU(Central Processing Unit)等が実施をしてもよい。ソフトウェアで構成される場合には、ハイパーパラメタ設定装置及びその少なくとも一部の機能を実現するプログラムを記憶媒体に収納し、コンピュータに読み込ませて実行させるものであってもよい。記憶媒体は、磁気ディスク(例えばフレキシブルディスク)や光ディスク(例えばCD-ROMやDVD-ROM)等の着脱可能なものに限定されず、ハードディスク装置やメモリを利用するSSD(Solid State Drive)などの固定型の記憶媒体であってもよい。すなわち、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実装されるものであってもよい。さらに、ソフトウェアによる処理は、FPGA等の回路に実装され、ハードウェアが実行するものであってもよい。ジョブの実行は、例えば、GPU(Graphics Processing Unit)等のアクセラレータを使用して行ってもよい。
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
図8は、本開示の一実施例におけるハードウェア構成の一例を示すブロック図である。ハイパーパラメタ設定装置100は、プロセッサ101と、主記憶装置102と、補助記憶装置103と、ネットワークインタフェース104と、デバイスインタフェース105と、を備え、これらがバス106を介して接続されたコンピュータ装置として実現できる。
なお、図8のハイパーパラメタ設定装置100は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、1台のハイパーパラメタ設定装置100が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のハイパーパラメタ設定装置100それぞれがソフトウェアの異なる一部の処理を実行してもよい。この場合、複数のハイパーパラメタ設定装置100それぞれがネットワークインタフェース104等を介して、通信してもよい。
プロセッサ101は、ハイパーパラメタ設定装置100の制御部および演算装置を含む電子回路(処理回路、Processing circuit、Processing circuitry)である。プロセッサ101は、ハイパーパラメタ設定装置100の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ101は、ハイパーパラメタ設定装置100のOS(Operating System)や、アプリケーションなどを実行することにより、ハイパーパラメタ設定装置100を構成する各構成要素を制御する。プロセッサ101は、上記の処理を行うことができれば特に限られるものではない。ハイパーパラメタ設定装置100及びそれらの各構成要素は、プロセッサ101により実現される。ここで、処理回路とは、1チップ上に配置された1又は複数の電気回路を指してもよいし、2つ以上のチップあるいはデバイス上に配置された1又は複数の電気回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
主記憶装置102は、プロセッサ101が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置102に記憶された情報がプロセッサ101により直接読み出される。補助記憶装置103は、主記憶装置102以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。ハイパーパラメタ設定装置100内において各種データを保存するためのメモリ、例えば、メモリは、主記憶装置102又は補助記憶装置103により実現されてもよい。例えば、メモリの少なくとも一部は、この主記憶装置102又は補助記憶装置103に実装されていてもよい。別の例として、アクセラレータが備えられている場合には、前述したメモリの少なくとも一部は、当該アクセラレータに備えられているメモリ内に実装されていてもよい。
ネットワークインタフェース104は、無線又は有線により、通信ネットワーク108に接続するためのインタフェースである。ネットワークインタフェース104は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース104により、通信ネットワーク108を介して通信接続された外部装置109Aと情報のやり取りが行われてもよい。
外部装置109Aは、例えば、カメラ、モーションキャプチャ、出力先デバイス、外部のセンサ、入力元デバイスなどが含まれる。また、外部装置109Aは、ハイパーパラメタ設定装置100の構成要素の一部の機能を有する装置でもよい。そして、ハイパーパラメタ設定装置100は、ハイパーパラメタ設定装置100の処理結果の一部を、クラウドサービスのように通信ネットワーク108を介して受け取ってもよい。
デバイスインタフェース105は、外部装置109Bと直接接続するUSB(Universal Serial Bus)などのインタフェースである。外部装置109Bは、外部記憶媒体でもよいし、ストレージ装置でもよい。メモリは、外部装置109Bにより実現されてもよい。
外部装置109Bは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、有機EL(ElectroLuminescence)ディスプレイ、スピーカなどがあるが、これらに限られるものではない。
なお、外部装置109Bは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネル、マイクロフォンなどのデバイスを備え、これらのデバイスにより入力された情報をハイパーパラメタ設定装置100に与える。入力装置からの信号はプロセッサ101に出力される。
例えば、本実施形態におけるハイパーパラメタ設定装置100のインタフェース部110、ハイパーパラメタ設定部120等は、プロセッサ101により実現されてもよい。また、ハイパーパラメタ設定装置100のメモリは、主記憶装置102又は補助記憶装置103により実現されてもよい。また、ハイパーパラメタ設定装置100は、1又は複数のメモリを搭載してもよい。
本明細書において、“a,bおよびcの少なくとも1つ”は、a,b,c,a-b,a-c,b-c,a-b-cの組み合わせだけでなく、a-a,a-b-b,a-a-b-b-c-cなどの同じ要素の複数の組み合わせも含む表現である。また、a-b-c-dの組み合わせのように、a,b,c以外の要素を含む構成もカバーする表現である。
同様に、本明細書において、“a,b又はcの少なくとも1つ”は、a,b,c,a-b,a-c,b-c,a-b-cの組み合わせだけでなく、a-a,a-b-b,a-a-b-b-c-cなどの同じ要素の複数の組み合わせも含む表現である。また、a-b-c-dの組み合わせのように、a,b,c以外の要素を含む構成もカバーする表現である。
以上、本開示の実施例について詳述したが、本開示は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本開示の要旨の範囲内において、種々の変形・変更が可能である。
本出願は、2019年6月12日に出願した日本国特許出願2019-109537号の優先権の利益に基づき、これを主張するものであり、2019-109537号の全内容を本出願に援用する。
10 プログラム試行システム
50 ユーザ端末
100 ハイパーパラメタ設定装置
110 インタフェース部
120 ハイパーパラメタ設定部
101 プロセッサ
102 主記憶装置
103 補助記憶装置
104 ネットワークインタフェース
105 デバイスインタフェース
108 通信ネットワーク
109 外部装置
200 プログラム試行装置
250 データベース
50 ユーザ端末
100 ハイパーパラメタ設定装置
110 インタフェース部
120 ハイパーパラメタ設定部
101 プロセッサ
102 主記憶装置
103 補助記憶装置
104 ネットワークインタフェース
105 デバイスインタフェース
108 通信ネットワーク
109 外部装置
200 プログラム試行装置
250 データベース
Claims (9)
- 1つ又は複数のプロセッサが、パラメタ記述データを含むプログラム実行命令を取得することと、
前記1つ又は複数のプロセッサが、前記パラメタ記述データに従って最適化対象のプログラムのハイパーパラメタの値を設定し、前記ハイパーパラメタの値の評価値を取得することと、
を有するハイパーパラメタチューニング方法。 - 前記パラメタ記述データは、分布識別子と範囲指定値とによって前記ハイパーパラメタの設定範囲を規定する、請求項1記載のハイパーパラメタチューニング方法。
- 前記設定することは、既に設定された第1のハイパーパラメタの値に依存して第2のハイパーパラメタの値を設定する、請求項1又は2記載のハイパーパラメタチューニング方法。
- 前記1つ又は複数のプロセッサが、前記設定されたハイパーパラメタの値の下で試行された前記プログラムの中間的な試行結果に基づき前記プログラムの試行を終了することを更に有する、請求項1乃至3何れか一項記載のハイパーパラメタチューニング方法。
- 前記取得することは、複数のパラメタ記述データを取得することを含み、
前記設定することは、前記取得した複数のパラメタ記述データのそれぞれに対して前記ハイパーパラメタの値を設定する、請求項1乃至4何れか一項記載のハイパーパラメタチューニング方法。 - 前記パラメタ記述データは、コマンドラインインタフェースにおいて記述されたものである、
請求項1乃至5何れか一項記載のハイパーパラメタチューニング方法。 - 請求項1乃至6何れか一項記載のハイパーパラメタチューニング方法によって生成されたモデル。
- 少なくとも1つのメモリと、
少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサは、
パラメタ記述データを含むプログラム実行命令を取得することと、
前記パラメタ記述データに従って最適化対象のプログラムのハイパーパラメタの値を設定し、前記ハイパーパラメタの値の評価値を取得することと、
を実行可能に構成される、
プログラム試行システム。 - パラメタ記述データを含むプログラム実行命令を取得する処理と、
前記パラメタ記述データに従って最適化対象のプログラムのハイパーパラメタの値を設定し、前記ハイパーパラメタの値の評価値を取得する処理と、
を1又は複数台のコンピュータに実行させるコンピュータプログラムを記憶する記憶媒体。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021526074A JP7303299B2 (ja) | 2019-06-12 | 2020-06-05 | ハイパーパラメタチューニング方法、プログラム試行システム及びコンピュータプログラム |
DE112020002822.4T DE112020002822T5 (de) | 2019-06-12 | 2020-06-05 | Hyperparameteroptimierungsverfahren, Programmversuchssystem und Computerprogramm |
US17/643,661 US20220100531A1 (en) | 2019-06-12 | 2021-12-10 | Hyperparameter tuning method, program trial system, and computer program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019-109537 | 2019-06-12 | ||
JP2019109537 | 2019-06-12 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/643,661 Continuation US20220100531A1 (en) | 2019-06-12 | 2021-12-10 | Hyperparameter tuning method, program trial system, and computer program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020250843A1 true WO2020250843A1 (ja) | 2020-12-17 |
Family
ID=73781187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/022428 WO2020250843A1 (ja) | 2019-06-12 | 2020-06-05 | ハイパーパラメタチューニング方法、プログラム試行システム及びコンピュータプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220100531A1 (ja) |
JP (1) | JP7303299B2 (ja) |
DE (1) | DE112020002822T5 (ja) |
WO (1) | WO2020250843A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220335327A1 (en) * | 2021-04-19 | 2022-10-20 | Rohde & Schwarz Gmbh & Co. Kg | Electronic device and method of setting processing parameters |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220245350A1 (en) * | 2021-02-03 | 2022-08-04 | Cambium Assessment, Inc. | Framework and interface for machines |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013242604A (ja) * | 2010-09-10 | 2013-12-05 | Fixstars Multi Core Labo Corp | 実行モジュール最適化装置、実行モジュール最適化方法、およびプログラム |
JP2019003408A (ja) * | 2017-06-15 | 2019-01-10 | 株式会社日立製作所 | ハイパーパラメータの評価方法、計算機及びプログラム |
CN109816116A (zh) * | 2019-01-17 | 2019-05-28 | 腾讯科技(深圳)有限公司 | 机器学习模型中超参数的优化方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6620422B2 (ja) | 2015-05-22 | 2019-12-18 | 富士通株式会社 | 設定方法、設定プログラム、及び設定装置 |
US10565498B1 (en) * | 2017-02-28 | 2020-02-18 | Amazon Technologies, Inc. | Deep neural network-based relationship analysis with multi-feature token model |
US10217061B2 (en) * | 2017-05-17 | 2019-02-26 | SigOpt, Inc. | Systems and methods implementing an intelligent optimization platform |
US20200097853A1 (en) * | 2017-06-02 | 2020-03-26 | Google Llc | Systems and Methods for Black Box Optimization |
JP6974712B2 (ja) | 2017-10-24 | 2021-12-01 | 富士通株式会社 | 探索方法、探索装置および探索プログラム |
US11270217B2 (en) * | 2017-11-17 | 2022-03-08 | Intel Corporation | Systems and methods implementing an intelligent machine learning tuning system providing multiple tuned hyperparameter solutions |
US20190236487A1 (en) * | 2018-01-30 | 2019-08-01 | Microsoft Technology Licensing, Llc | Machine learning hyperparameter tuning tool |
JP6882356B2 (ja) | 2019-02-28 | 2021-06-02 | キヤノン株式会社 | 像加熱装置 |
-
2020
- 2020-06-05 DE DE112020002822.4T patent/DE112020002822T5/de active Pending
- 2020-06-05 WO PCT/JP2020/022428 patent/WO2020250843A1/ja active Application Filing
- 2020-06-05 JP JP2021526074A patent/JP7303299B2/ja active Active
-
2021
- 2021-12-10 US US17/643,661 patent/US20220100531A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013242604A (ja) * | 2010-09-10 | 2013-12-05 | Fixstars Multi Core Labo Corp | 実行モジュール最適化装置、実行モジュール最適化方法、およびプログラム |
JP2019003408A (ja) * | 2017-06-15 | 2019-01-10 | 株式会社日立製作所 | ハイパーパラメータの評価方法、計算機及びプログラム |
CN109816116A (zh) * | 2019-01-17 | 2019-05-28 | 腾讯科技(深圳)有限公司 | 机器学习模型中超参数的优化方法及装置 |
Non-Patent Citations (3)
Title |
---|
ANONYMOUS: "@koshian2", QIITA, 13 May 2019 (2019-05-13), pages 1 - 16, XP055771861, Retrieved from the Internet <URL:https://qiita.com/koshian2/items/1c0f781d244a6046b83e> [retrieved on 20200715] * |
TAKUYA AKIBA: "Optuna Preferred Networks Research & Development Blog", OPTUNA PREFERRED NETWORKS RESEARCH & DEVELOPMENT BLOG, 3 December 2018 (2018-12-03), pages 1 - 7, XP055771774, Retrieved from the Internet <URL:https://tech.preferred.jp/ja/blog/optuna-release> [retrieved on 20200715] * |
TEREDESAI ANKUR, KUMAR VIPIN, LI YING, ROSALES RÓMER, TERZI EVIMARIA, KARYPIS GEORGE, AKIBA TAKUYA, SANO SHOTARO, YANASE TOSHIHIKO: "Optuna: A Next-generation Hyperparameter Optimization Framework", KDD 2019 APPLIED DATA SCIENCE TRACK, 26 July 2019 (2019-07-26), pages 2623 - 2631, XP058466352, Retrieved from the Internet <URL:https://arxiv.org/abs/1907.10902> [retrieved on 20200715] * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220335327A1 (en) * | 2021-04-19 | 2022-10-20 | Rohde & Schwarz Gmbh & Co. Kg | Electronic device and method of setting processing parameters |
US12026594B2 (en) * | 2021-04-19 | 2024-07-02 | Rohde & Schwarz Gmbh & Co. Kg | Electronic device and method of setting processing parameters |
Also Published As
Publication number | Publication date |
---|---|
JP7303299B2 (ja) | 2023-07-04 |
DE112020002822T5 (de) | 2022-03-03 |
JPWO2020250843A1 (ja) | 2020-12-17 |
US20220100531A1 (en) | 2022-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10452249B2 (en) | Tooltip feedback for zoom using scroll wheel | |
US10809981B2 (en) | Code generation and simulation for graphical programming | |
WO2020250843A1 (ja) | ハイパーパラメタチューニング方法、プログラム試行システム及びコンピュータプログラム | |
WO2019137444A1 (zh) | 用于执行机器学习的特征工程的方法及系统 | |
US11507856B2 (en) | Method and apparatus for updating application | |
EP2677451A2 (en) | License verification method and apparatus, and computer readable storage medium storing program therefor | |
TW201604719A (zh) | 智能設備的控制方法及裝置 | |
US10228849B2 (en) | Method and device for providing controller | |
US9684738B2 (en) | Text-based command generation | |
CN116306396A (zh) | 芯片验证方法及装置、设备和介质 | |
CN108984623A (zh) | 数据查询条件生成方法、装置、存储介质和电子设备 | |
US20180101294A1 (en) | Information generating system, information generating device, information generating method, and information generating program | |
US11580196B2 (en) | Storage system and storage control method | |
CN116580212A (zh) | 图像生成方法、图像生成模型的训练方法、装置和设备 | |
US20120079532A1 (en) | Techniques for developing a television user interface for a secondary device | |
US10360701B2 (en) | Integrated visualization | |
US20210350027A1 (en) | Information processing apparatus, information processing method and non-transitory recording medium | |
JP7096360B2 (ja) | ミニバッチ学習装置とその作動プログラムおよび作動方法 | |
WO2019130433A1 (ja) | 情報処理結果提供システム、情報処理結果提供方法及びプログラム | |
US20180081951A1 (en) | Information generation system, a method and a non-transitory computer readable medium thereof | |
WO2024150395A1 (ja) | モデル作成支援システム、モデル作成支援方法、および記録媒体 | |
CN110430175B (zh) | 基于ac35平台的加密协议植入方法、装置及设备 | |
JP6353269B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
CN115082294A (zh) | 图像格式确定方法、装置及电子设备 | |
KR20230088939A (ko) | 데모 프로그램 생성 장치 및 방법 |
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: 20823075 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021526074 Country of ref document: JP Kind code of ref document: A |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20823075 Country of ref document: EP Kind code of ref document: A1 |