У меня есть проблема оптимизации, которую я реализую с помощью SLSQP в scipy.minimize.Моя целевая функция f (x) - это серия функций Python, которая объединяет стандартную арифметику плюс условные выражения, циклы и более сложные математические операции.
В настоящее время я использую конечную разность, чтобы найти градиент, но по мере увеличения размера вектора решения (~ 4000) это становится невероятно медленным.Учитывая сложность функции f (x), аналитическое решение может оказаться невозможным.Вместо этого я рассматриваю аппроксимацию функции через некоторый полином, а затем нахожу аналитическое решение этой функции.
Это хорошее решение моей проблемы?Точность не так важна, что я не могу допустить ошибки в несколько%.Если да, то как мне это сделать?У меня есть общее представление о том, как приближать функции, но я относительно неопытен на практике.
Есть ли другие направления, на которые я должен обратить внимание, если это не очень хорошая идея?