LBFGS для невыпуклой целевой функции

Я использую реализацию Scipy LBFGS для минимизации невыпуклой целевой функции. Результат не так уж и плох. Но статус конвергенции "ABNORMAL_TERMINATION_IN_LNSRCH".

Возможно ли, что это связано с тем, что моя целевая функция невыпукла? Или это может означать, что мои градиенты (аналитически рассчитанные вручную и переданные в качестве аргумента в LBFGS Scipy) неверны?


person Satarupa Guha    schedule 23.10.2015    source источник
comment
Скорее всего ваш градиент неправильный. Невыпуклость означает только то, что вообще вы не найдете глобальный минимум.   -  person cel    schedule 23.10.2015
comment
@cel OK .. На самом деле я несколько раз проверял свои градиенты. Насколько мне известно, я не знаю ничего лучшего. Может ли это быть результатом негладкой функции?   -  person Satarupa Guha    schedule 24.10.2015
comment
Все стандартные процедуры оптимизации требуют гладких целевых функций.   -  person cel    schedule 24.10.2015
comment
@cel - Значит, если моя целевая функция не является гладкой, это может привести к таким ненормальным завершениям?   -  person Satarupa Guha    schedule 25.10.2015


Ответы (1)


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

person Shamane Siriwardhana    schedule 19.12.2018