Class Hyperband
- java.lang.Object
-
- ai.libs.jaicore.basic.algorithm.AAlgorithm<I,O>
-
- ai.libs.jaicore.basic.algorithm.ASolutionCandidateIterator<I,O>
-
- ai.libs.jaicore.basic.algorithm.AOptimizer<MultiFidelitySoftwareConfigurationProblem<java.lang.Double>,Hyperband.HyperbandSolutionCandidate,Hyperband.MultiFidelityScore>
-
- ai.libs.jaicore.ml.hpo.multifidelity.hyperband.Hyperband
-
- All Implemented Interfaces:
java.lang.Iterable<org.api4.java.algorithm.events.IAlgorithmEvent>,java.util.concurrent.Callable<Hyperband.HyperbandSolutionCandidate>,java.util.Iterator<org.api4.java.algorithm.events.IAlgorithmEvent>,org.api4.java.algorithm.IAlgorithm<MultiFidelitySoftwareConfigurationProblem<java.lang.Double>,Hyperband.HyperbandSolutionCandidate>,org.api4.java.algorithm.IOptimizationAlgorithm<MultiFidelitySoftwareConfigurationProblem<java.lang.Double>,Hyperband.HyperbandSolutionCandidate,Hyperband.MultiFidelityScore>,org.api4.java.algorithm.ISolutionCandidateIterator<MultiFidelitySoftwareConfigurationProblem<java.lang.Double>,Hyperband.HyperbandSolutionCandidate>,org.api4.java.common.control.ICancelable,org.api4.java.common.control.ILoggingCustomizable,org.api4.java.common.event.IEventEmitter<java.lang.Object>,org.api4.java.common.event.IRelaxedEventEmitter
public class Hyperband extends ai.libs.jaicore.basic.algorithm.AOptimizer<MultiFidelitySoftwareConfigurationProblem<java.lang.Double>,Hyperband.HyperbandSolutionCandidate,Hyperband.MultiFidelityScore>
HyperBand is a simple but effective hyper-parameter optimization technique, heavily relying on a technique called successive halving. Given a maximum amount of allocatable resources r_max and an integer parameter eta > 1, it allocates resources in a clever way, racing randomly sampled solution candidates with increasing resources for more promising ones. For more details, refer to the published paper by Li et al. from 2018: Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization. In: Journal of Machine Learning research 18 (2018) 1-52
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classHyperband.HyperbandSolutionCandidateclassHyperband.MultiFidelityScore
-
Constructor Summary
Constructors Constructor Description Hyperband(IHyperbandConfig config, MultiFidelitySoftwareConfigurationProblem<java.lang.Double> problem)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IHyperbandConfiggetConfig()org.api4.java.algorithm.events.IAlgorithmEventnextWithException()-
Methods inherited from class ai.libs.jaicore.basic.algorithm.AOptimizer
call, getBestScoreKnownToExist, getBestSeenSolution, getLoggerName, nextSolutionCandidate, nextSolutionCandidateEvent, setBestSeenSolution, setLoggerName, tellAboutBestScoreKnownToExist, updateBestSeenSolution
-
Methods inherited from class ai.libs.jaicore.basic.algorithm.ASolutionCandidateIterator
collectAllSolutions
-
Methods inherited from class ai.libs.jaicore.basic.algorithm.AAlgorithm
activate, announceTimeoutDetected, avoidReinterruptionOnShutdownOnCurrentThread, cancel, checkAndConductTermination, checkTermination, computeTimeoutAware, getActivationTime, getDeadline, getId, getInput, getListeners, getNumCPUs, getRemainingTimeToDeadline, getState, getTimeout, getTimeoutPrecautionOffset, hasNext, hasThreadBeenInterruptedDuringShutdown, interruptThreadAsPartOfShutdown, isCanceled, isShutdownInitialized, isStopCriterionSatisfied, isTimeoutDefined, isTimeouted, iterator, next, post, registerActiveThread, registerListener, resolveShutdownInterruptOnCurrentThread, setConfig, setDeadline, setMaxNumThreads, setNumCPUs, setState, setTimeout, setTimeout, setTimeoutPrecautionOffset, shutdown, terminate, unregisterActiveThread, unregisterThreadAndShutdown
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
-
-
Constructor Detail
-
Hyperband
public Hyperband(IHyperbandConfig config, MultiFidelitySoftwareConfigurationProblem<java.lang.Double> problem)
-
-
Method Detail
-
nextWithException
public org.api4.java.algorithm.events.IAlgorithmEvent nextWithException() throws java.lang.InterruptedException, org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException, org.api4.java.algorithm.exceptions.AlgorithmTimeoutedException, org.api4.java.algorithm.exceptions.AlgorithmException- Throws:
java.lang.InterruptedExceptionorg.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledExceptionorg.api4.java.algorithm.exceptions.AlgorithmTimeoutedExceptionorg.api4.java.algorithm.exceptions.AlgorithmException
-
getConfig
public IHyperbandConfig getConfig()
- Specified by:
getConfigin interfaceorg.api4.java.algorithm.IAlgorithm<MultiFidelitySoftwareConfigurationProblem<java.lang.Double>,Hyperband.HyperbandSolutionCandidate>- Overrides:
getConfigin classai.libs.jaicore.basic.algorithm.AAlgorithm<MultiFidelitySoftwareConfigurationProblem<java.lang.Double>,Hyperband.HyperbandSolutionCandidate>
-
-