package de.jungblut.online.minimizer; import java.util.function.Supplier; import java.util.stream.Stream; import de.jungblut.math.DoubleVector; import de.jungblut.online.ml.FeatureOutcomePair; public interface StochasticMinimizer { /** * Minimizes the given stochastic cost function on the supplied streams for * the given amount of passes over the data. * * @param start the start parameters. * @param streamSupplier the supplier for the data training streams. * @param costFunction the cost function to minimize. * @param numPasses the number of passes over the streams. * @param verbose true if progress should be printed to the log. * @return the optimized set of parameters. */ public DoubleVector minimize(DoubleVector start, Supplier<Stream<FeatureOutcomePair>> streamSupplier, StochasticCostFunction costFunction, int numPasses, boolean verbose); }