I have a function which takes 22 real-valued parameters as input that returns a real value. The function is reasonably fast for low return values (ms/seconds/minutes), but takes much longer (minutes/hours) to compute for high/optimal values. The noise will also increase with higher values.

I expect the function to contain many local maxima, and I cannot use vanilla gradient descent.

I want to find the parameters that maximize the expected return value.

As this is going to run on a desktop computer, I don't mind storing all inputs and results in memory, as the limitation is probably going to be the run-time anyway.

Do you have any suggestions for an appropriate optimization algorithm?

  • 1
    $\begingroup$ Did you already try something and find it unsuitable? I suppose it's hard to avoid evaluating the function itself at points where it is slow. $\endgroup$ – Juho May 17 '13 at 0:16
  • $\begingroup$ Did you find a solution to your problem? Gaussian processes work well to minimize number of evaluations of an expensive function you are trying to optimize. What is your problem anyways? $\endgroup$ – anthonybell Apr 11 '16 at 12:20
  • $\begingroup$ @anthonybell The problem was training a tetris AI. i.e. values of a feature vector => number of lines before game over. We solved it to some degree using a reinforcement learning algorithm which I can't remember the name of... youtube.com/watch?v=DXgtzFiRHdc $\endgroup$ – bobbaluba Apr 12 '16 at 9:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.