R nlminb Что на самом деле означает ложная сходимость?

Я использую функцию nlminb для максимизации функции и получил конвергенцию (Convergence =0) с сообщением false-Convergence.

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

Может кто-нибудь указать мне на порт документации nlminb или объясните, что означает ложная конвергенция?

Я также попробовал другую функцию оптимизации, но, хотя nlminb немного неясен, похоже, он быстрее сходится с любой другой функцией к правильному ответу. Нужно выполнить еще тест, чтобы убедиться. Даже используя nlminb через optimx значительно медленнее.

Было бы хорошо, если бы мы лучше поняли, как работает эта функция. Кодеры Fortran не стесняются помочь, пожалуйста.

Изменить Я должен был найти код ранее. Здесь это, но это все еще неясно. Может ли кто-нибудь помочь

1 ответ

Решение

Это репост / адаптация моего ответа от r-sig-смешанных моделей

[... Оптимизатор nlminb ()... основан на библиотеках PORT.

Документы, связанные с ?nlminb раньше был в http://netlib.bell-labs.com/cm/cs/cstr/153.pdf: http://www.netlib.org/port/cs/cstr говорит

port / readme указывает на "Сводку использования выбранных подпрограмм оптимизации", иногда называемую ДОКУМЕНТАЦИЕЙ ПО ОПТИМИЗАЦИИ ПОРТА в http://netlib.bell-labs.com/cm/cs/cstr/153.ps.gz или http://netlib.bell-labs.com/cm/cs/cstr/153.pdf

... но эти ссылки не работают (port/readme все еще там, но ни одна из предоставленных ссылок не работает...).

Мне удалось найти документы через Google Scholar, и я разместил чуть более удобную PDF-версию.

Единственный полезный материал, который я мог найти в этих документах, был:

п. 5: ложная сходимость: градиент ∇f(x) может быть вычислен неправильно, другие допуски на останов могут быть слишком жесткими, или f или ∇f могут быть прерывистыми вблизи текущей итерации x.

п. 9: V(XFTOL) - V(34) - допуск ложной сходимости. Возврат с IV(1) = 8 происходит, если более благоприятный критерий остановки не выполняется и если шаг масштабированной длины не более V (XFTOL) пробуется, но не принимается. "Масштабная длина" в смысле (5.1). Такой возврат обычно означает, что есть ошибка в вычислении ∇f(x), или допустимые допуски сходимости (V(RFCTOL), V(XCTOL) и, возможно, V(AFCTOL)) слишком малы для точности, к которой f (x) вычисляется (см. §9), или ∇f (или само f) разрывно вблизи x. Ошибка в вычислении ∇f(x) обычно приводит к ложной сходимости только после нескольких итераций - часто в первой. По умолчанию = 100*MACHEP.

п. 13: Иногда оценка f (x) включает в себя обширные вычисления, такие как выполнение моделирования или адаптивной числовой квадратуры или интегрирование обыкновенного или дифференциального уравнения в частных производных. В таких случаях значение, вычисленное для f (x), скажем, f̃ (x), может содержать существенную ошибку (в глазах алгоритма оптимизации). Чтобы исключить некоторые сообщения "ложной сходимости" и бесполезные оценки функций, необходимо увеличить допуски на останов и, когда используются аппроксимации производных конечных разностей, увеличить размеры шагов, используемых при оценке производных.

Другие вопросы по тегам