Найти оптимальное решение для функции с множественными переменными с незначительным временем решения? - PullRequest
0 голосов
/ 22 февраля 2019

Итак, у меня есть проблема, когда я должен найти лучшее распределение, которое при прохождении через функцию соответствует известной поверхности.Я написал скрипт, который создает распределение с учетом некоторых параметров и выдает метрику, которая сравнивает заданную поверхность с известной, но этот скрипт занимает не пренебрежимо малое время, поэтому я не могу просто выполнить очень большой набор параметровнайти оптимальный набор параметров.Я посмотрел на симплекс-метод, и он, кажется, правильный путь, но это не совсем то, что мне нужно, потому что у меня нет точно набора линейных уравнений, и я не знаю ограничений для параметров, а скорее один метод, который даетодин выход (вот и все).Кто-нибудь может указать мне в правильном направлении, как решить эту проблему?Спасибо!

Чтобы быстро повторить мой процесс / проблему, у меня есть набор параметров (в этом пункте 2, но он будет расширен до более позднего), который определяет распределение.Это распределение используется для создания поверхности, которая сравнивается с известной поверхностью, и создается метрика ошибки.Я хочу найти оптимальный набор параметров, но не могу использовать произвольно большое количество параметров из-за нехватки времени.

1 Ответ

0 голосов
/ 23 февраля 2019

Одна ситуация, соответствующая тому, что вы задали, - это модель, в которой у вас есть разумное распределение вероятностей, которое генерирует неизвестное значение.Это неизвестное значение проходит через сложный и не математически приятный процесс и генерирует наблюдение.Ваша поверхность соответствует наблюдаемому распределению вероятностей по наблюдениям.Вы были бы рады найти параметры, которые дают хорошее соответствие наименьших квадратов между теоретическим и реальным распределением поверхности в реальной жизни.

Одним из приближений для процесса подгонки является то, что вы вычисляете сетку значений в выходном пространстве по вероятностираспределение.Каждый набор параметров дает вам вероятность для каждой точки в этой сетке.Неудобный процесс отображает каждую точку сетки здесь на ближайшую точку сетки в пространстве поверхности.Подход наименьших квадратов является квадратичным в вероятностях, рассчитанных для первой сетки, поскольку вероятности, рассчитанные для точки сетки на поверхности, представляют собой суммы вероятностей, рассчитанных для значений в первой сетке, которые отображаются на что-то ближе к этой точке вповерхность, чем любая другая точка на поверхности.Это означает, что у него есть первые (и даже вторые) производные, которые вы можете вычислить.Если ваше распределение вероятностей достаточно хорошее, вы можете использовать правило цепочки для вычисления производных для наименьших квадратов, подходящих для исходных параметров.Это означает, что вы можете использовать методы оптимизации для вычисления параметров наилучшего соответствия, которые требуют не только средства для вычисления функции, которая должна быть оптимизирована, но и ее производных, и они, как правило, более эффективны, чем методы оптимизации, которые требуют только значений функций, таких как Nelder-Mead или Torczon Simplex.См., Например, http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math4/optim/package-summary.html.

Другой возможный подход - использование алгоритма EM.Здесь EM означает ожидание-максимизация.Он может быть использован для нахождения максимально вероятных совпадений в тех случаях, когда проблема будет легкой, если вы увидите какое-то скрытое состояние, которое вы на самом деле не видите.В этом случае выходные данные, создаваемые начальным распределением, могут быть таким скрытым состоянием.Отправной точкой является http://www -prima.imag.fr / jlc / Courses / 2002 / ENSI2.RNRF / EM-tutorial.pdf .

...