Определить начальные параметры нелинейной подгонки без информации - PullRequest
0 голосов
/ 27 апреля 2018

Мне было интересно, существует ли технический способ выбора начальных параметров для такого рода задач (поскольку они могут принимать практически любую форму). Мой вопрос возникает из-за того, что мое решение мало зависит от исходных параметров (как обычно). Моя подгонка состоит из 10 параметров и приблизительно 5120 точек данных (x, y, z) и имеет нелинейные ограничения. Я делал это грубой силой, то есть, пытался произвольно выбирать параметры и пытаться наблюдать закономерность, но это ни к чему не привело.

Я также пытался использовать генетический алгоритм MATLAB (чтобы найти глобальный оптимум), но безуспешно, поскольку, похоже, моя функция имеет массу локальных минимумов.

Для решения моей проблемы мне просто необходимо каким-то образом определить причины выбора начальных параметров.

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Без какого-либо понимания модели и вероятных значений параметров пространство поиска слишком велико для чего-либо выполнимого. Подумайте, что просто попытка десяти значений для каждого параметра соответствует десяти миллиардам комбинаций. Там нет волшебного черного ящика.

0 голосов
/ 27 апреля 2018

Вы можете попробовать Байесовская оптимизация , чтобы найти глобальный оптимум для дорогих функций черного ящика. Matlab описывает его реализацию [bayesopt] [2] как

Выбор оптимальных гиперпараметров машинного обучения с помощью байесовской оптимизации

но вы можете использовать его для оптимизации любой функции. Байесовская оптимизация работает, обновляя прежнее представление о распределении функций по наблюдаемым данным.

Чтобы ускорить оптимизацию, я бы рекомендовал добавить ваши существующие данные с помощью входных аргументов InitialX и InitialObjective.

...