У меня есть проблема оптимизации, которая включает в себя минимизацию функции, градиент которой я знаю, но фактическое значение целевой функции в любой точке неизвестно.
Я хотел бы оптимизировать функцию с помощью BFGS, но все реализации BFGS, которые я нашел, похоже, требуют знания значения цели, особенно на этапе поиска строки. Я просмотрел реализацию BFGS как на Python (scipy), так и на C++.
Очевидно, я могу использовать градиентный спуск, но я бы предпочел не изобретать велосипед здесь.
Любые идеи?
Подробнее: я хочу минимизировать h. Но мне не дано h. Мне дали h = f(g) и явную формулу для g(x). f в основном преобразует градиенты g каким-то хитрым геометрическим способом, который не слишком сложно вычислить, но невозможно проинтегрировать. Таким образом, довольно просто вычислить градиент h(x), но трудно получить явные значения для h(x).