2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3  След.
 
 Re: Остаточная ошибка метода Гаусса-Ньютона
Сообщение23.05.2019, 08:29 


16/04/19
161
Это среднеквадратичное?

 Профиль  
                  
 
 Re: Остаточная ошибка метода Гаусса-Ньютона
Сообщение23.05.2019, 11:24 


07/10/15

2400
нет, просто сумма квадратов

 Профиль  
                  
 
 Re: Остаточная ошибка метода Гаусса-Ньютона
Сообщение23.05.2019, 12:31 


16/04/19
161
Настало время учиться адекватно оценивать погрешности..

И зачем надо было извращать алгоритм, который без изменений принимает на вход данный функционал? Может быть там ещё ошибки наляпаны, но теперь, хотя бы при $\alpha = 0$ и $\alpha=\infty$, вроде правильно (лень проверять в других точках).

Исходная задача наверно была не просто минимизировать функционал, а найти минимум, близкий к $\bold x = 0$, если сначала брать большое $\alpha$, а потом уменьшать. Не проще тогда было задать начальное приближение $\bold x = 0$?

 Профиль  
                  
 
 Re: Остаточная ошибка метода Гаусса-Ньютона
Сообщение23.05.2019, 14:47 


07/10/15

2400
feedinglight в сообщении #1394738 писал(а):
И зачем надо было извращать алгоритм, который без изменений принимает на вход данный функционал? Может быть там ещё ошибки наляпаны, но теперь ... вроде правильно (лень проверять в других точках).

Видимо, нелегко давать советы, и находить чужие ошибки, не имея элементарных представлений о предмете обсуждения. Проигнорировав вопрос
Andrey_Kireew в сообщении #1394632 писал(а):
feedinglight в сообщении #1394627 писал(а):
та альфа по идее должна просто попасть в матрицу $\bold J$ и никуда не вылазить из неё,

это почему же?

свою квалификацию вы подтвердили полностью. Но в целом, стремление к науке, конечно, похвально...

 Профиль  
                  
 
 Re: Остаточная ошибка метода Гаусса-Ньютона
Сообщение23.05.2019, 16:03 


16/04/19
161
Интересно было бы увидеть по-больше численных результатов :roll:

 Профиль  
                  
 
 Re: Остаточная ошибка метода Гаусса-Ньютона
Сообщение26.05.2019, 20:46 
Заслуженный участник


18/01/15
3232
Andrey_Kireew в сообщении #1394771 писал(а):
Видимо, нелегко давать советы, и находить чужие ошибки, не имея элементарных представлений о предмете обсуждения.

Andrey_Kireew
Вы сами весьма неважно объясняете, поэтому не стоит над слушателями иронизировать и т.д. У feedinglight здравый смысл вполне присутствует (хотя пока, кажется, знаний еще не много).

Объясним (для Евгений Машеров и feedinglight; впрочем, для первого большая часть нижеследующего тривиальна), какой именно вариант метода Гаусса-Ньютона используется. Обычная формулировка содержится в
Ортега, Рейнболдт, Итерационные методы решения систем со многими неизвестными, параграф 8.5; Дэннис, Шнабель, Численные методы безусловной оптимизации и решения нелинейных уравнений, пар. 10.2.

Рассмотрим отображение $F\colon{\mathbb R}^m\longrightarrow {\mathbb R}^n$, класса $C^1$. (ТС называет $\delta=(F_1(x),\ldots,F_n(x))^t$ "вектором невязок", соответствующим данному $x$).

Мы хотим найти $x\in{\mathbb R}^m$ такое, что $F(x)=\overline0$, или, по крайней мере, такое, на котором функция $r(x)=\sum_{i=1}^nF_i^2(x)$ ($\xi$, в обозначениях ТС) достигает локального минимума.

Пусть $F'(x)$ --- производная отображения $F$ в точке $x$, т.е.
$$ F'(x)=J(x)=\left( \frac{\partial F_i}{\partial x_j} (x)\right) $$
--- матрица Якоби (размера $n\times m$).
Обычный метод Ньютона есть
$$ x^{k+1}=x^k-J(x^k)^{-1} F(x^k) $$
(для случая, когда $m=n$, а матрица $J(x)$ невырождена, в том числе в точке $x_\ast$, являющейся искомым решением уравнения $F(x_\ast)=0$). (Замечание. Метод Ньютона для системы $F(x)=0$, и метод Ньютона для минимизации функции $r(x)$ --- это несколько разные вещи).

Итерационный процесс
$$ x^{k+1}=x^k-\lambda_k J(x^k)^{-1} F(x^k) $$
--- демпфированный метод Ньютона. $\lambda_k$ выбираются так, чтобы обеспечить убывание $r(x^{k+1})<r(x^k)$ (например).

-- 26.05.2019, 19:56 --

В общем же случае (когда $m\ne n$ или $J(x)$ вырождено) формула модифицируется как
$$ x^{k+1}=x^k-\lambda_k J(x^k)^+\ F(x^k), $$
где $A^+$ --- псевдообратная по Муру-Пенроузу матрицы $A$. Это (демпфированный) метод Гаусса-Ньютона.
Если $A$ --- $n\times m$ матрица, причем $m\leq n$ и $\operatorname{rk}(A)=m$, то $A^+=(A^tA)^{-1}A^t$. В этом случае формула приобретает вид
$$ x^{k+1}=x^k-\lambda_k (J(x^k)^tJ(x^k))^{-1}J(x^k)^t\ F(x^k).$$

Вообще говоря, взятие псевдообратной --- неустойчивая операция. Причина в том, что $A^tA$ может быть вырождена. Поэтому прибегают к такой регуляризации:
$$ x^{k+1}=x^k-\lambda_k (J(x^k)^tJ(x^k)+\alpha_kE_m)^{-1}J(x^k)^t\ F(x^k), $$
где $\alpha_k>0$. Это называется "метод Левенберга-Марквардта". Формула из стартового поста ТС --- это как раз формула метода ЛМ. (Замечание. Разные названия, связанные с методом Ньютона, часто употребляются одни вместо других. Тут есть путаница).

ТС, как я понял, использует следующую регуляризацию ГН (в исправленном посте). Возьмем какое-либо $\beta>0$. Рассмотрим такое отображение
$$ \widetilde F=\widetilde F_\beta\colon{\mathbb R}^m\longrightarrow {\mathbb R}^{n+m}, \qquad \widetilde F_\beta(x)=(F(x), \beta x)^t\,.$$
Также рассмотрим
$$\widetilde r_\beta(x)=|\widetilde F_\beta(x)|^2= \sum_{i=1}^n F_i^2(x) +\beta^2|x|^2.$$
Ясно, что когда $\beta\longrightarrow0$, то точка минимума для $\widetilde r_\beta(x)$ стремится к таковой для $r(x)$. С другой стороны, соответствующая матрица Якоби есть
$$ \widetilde J_\beta(x)=\begin{pmatrix} J(x) \\ \beta E_m \end{pmatrix} $$
и тем самым имеет ранг $m$. Поэтому можно рассмотреть демпфированную итерацию Гаусса-Ньютона для $\widetilde F_\beta(x)$. Она имеет вид
$$ x^{k+1}=x^k-\lambda_k (\widetilde J_\beta(x^k)^t\widetilde J_\beta(x^k))^{-1}\widetilde J_\beta(x^k)^t\ \widetilde F_\beta(x^k).$$
После небольших преобразований последняя формула переписывается как
$$ x^{k+1}=x^k-\lambda_k (J(x^k)^tJ(x^k)+\beta^2E_m)^{-1}(J(x^k)^t F(x^k)+\beta^2x).$$
Обозначая $\beta^2=\alpha$, получим ту же формулу, что и ТС.

 Профиль  
                  
 
 Re: Остаточная ошибка метода Гаусса-Ньютона
Сообщение27.05.2019, 01:51 


07/10/15

2400
В дополнение к обзору vpb приведу полноценный алгоритм Ньютона для МНК:
$$ \bold x_{k+1}=\bold x_k-\lambda_k (\bold J_k^T \bold J_k+\sum\limits_{i=1}^{m}\delta_i \bold H_i+\alpha \bold E_m)^{-1}(\bold J_k^T \bold \delta +\alpha \bold [x-x_0]). \qquad (1) $$
Нетрудно заметить, что все описанные ранее алгоритмы являются частным случаем (1).

P.S.: алгоритм Левенберга-Марквардта работает немного по другому: у него нет настраиваемого $\lambda_k$, вместо этого используется настраиваемый $\alpha$ (в методе Ньютона-Гауса он фиксирован).
Вообще, это эвристический алгоритм, не имеющий строгого обоснования. Обычно приводится такое объяснение: при большом $\alpha $ алгоритм приближается к градиентному поиску, становится устойчивее, но сходится медленнее. Иногда он представляется в такой модификации
$$ \bold x_{k+1}=\bold x_k-(\bold J_k^T \bold J_k+\alpha \cdot diag(\bold J_k^T \bold J))^{-1}\bold J_k^T \bold \delta . \qquad (2) $$
Я такой как то пробовал. Кажется работает лучше, чем с единичной диагональю. Но в таких делах всё зависит от конкретной задачи.
Ну, и самый очевидный недостаток - подбор $\alpha $ требует многократного обращения матрицы на каждой итерации, что весьма накладно.

 Профиль  
                  
 
 Re: Остаточная ошибка метода Гаусса-Ньютона
Сообщение27.05.2019, 11:54 
Заслуженный участник


18/01/15
3232
Andrey_Kireew в сообщении #1395559 писал(а):
полноценный

Поясним для посторонего читателя, что в данном случае слово "полноценный" /"неполноценный" не несет эмоциональной окраски, а означает класс алгоритмов с полным или неполным гессианом (с неполным --- это Гаусс-Ньютон, Левенберг-Марквардт.). Неполноценные в Деннис-Шнабеле трактуются в пар. 10.2, а полноценные в 10.3. Те и другие имеют свои преимущества и недостатки.

Дисклеймер: сам я по оптимизации не являюсь особым специалистом, если что.

 Профиль  
                  
 
 Re: Остаточная ошибка метода Гаусса-Ньютона
Сообщение27.05.2019, 14:03 


07/10/15

2400
Ответ на мой вопрос был найден в книге, любезно предоставленной vpb. Как ни странно, но метод Ньютона-Гаусса в общем случае не обладает свойством локальной сходимости. Об этом я и не подозревал. Для этого необходимо выполнение ряда специальных условий. В общем, с приближением к оптимальному решению сходимость у него замедляется. При некоторой остаточной невязке оптимизация может вообще остановится. Собственно это у меня и наблюдается. До предела вычислительной точности ещё очень далеко, а итеративный процесс уже перешел в установившийся режим, невязка практически не уменьшается.
Выясняется, что дело тут совсем не в регуляризации. Просто в конкретной задаче введение дополнительного слагаемого в градиент несколько изменило форму целевой функции, что и обеспечило условие локальной сходимости. На других примерах было обнаружено, что в общем случае это не решение проблемы. Даже с изменённым градиентом алгоритм так же часто останавливается, не достигнув оптимума.

 Профиль  
                  
 
 Re: Остаточная ошибка метода Гаусса-Ньютона
Сообщение27.05.2019, 15:28 


16/04/19
161
vpb
Спасибо за объяснение. Да, случай $\alpha = 0$ я рассматривал не совсем корректно. Нужно чтобы матрица обращалась.
vpb в сообщении #1395493 писал(а):
После небольших преобразований последняя формула переписывается как
$$ x^{k+1}=x^k-\lambda_k (J(x^k)^tJ(x^k)+\beta^2E_m)^{-1}(J(x^k)^t F(x^k)+\beta^2x).$$
Ну да, вроде правильно. То есть итоговая схема ТС - это просто схема Ньютона Гаусса, применённая к заданному функционалу $\xi=\bold \delta^T \bold \delta+\alpha \bold x^T\bold x.$. Значит то, что я назвал "извращением" - оптимизированный для реализации вариант записи.

Andrey_Kireew
Множители Лагранжа не пробовали?

 Профиль  
                  
 
 Re: Остаточная ошибка метода Гаусса-Ньютона
Сообщение27.05.2019, 19:56 
Заслуженный участник


18/01/15
3232
feedinglight в сообщении #1395676 писал(а):
Множители Лагранжа не пробовали?

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

 Профиль  
                  
 
 Re: Остаточная ошибка метода Гаусса-Ньютона
Сообщение27.05.2019, 22:28 


07/10/15

2400
vpb в сообщении #1395759 писал(а):
В теме же речь о безусловной оптимизации, а множители Лагранжа используются в условной

просто эта тема является логическим продолжением предыдущей, в обсуждении которой feedinglight тоже участвовал. Поэтому он знает, что тут действительно оптимизация условная. Там есть строгое ограничение на положительные коэффициенты. Хорошее решение предложил Евгений Машеров - сделать перепараметризацию $y=log(x)$.
От множителей Лагранжа я пока особой пользы не вижу. Но я с ними и не знаком. Конечно, может в этом что то и есть.

 Профиль  
                  
 
 Re: Остаточная ошибка метода Гаусса-Ньютона
Сообщение28.05.2019, 00:56 
Заслуженный участник


18/01/15
3232
Понятно. Я думал, что эта тема отдельная.

 Профиль  
                  
 
 Re: Остаточная ошибка метода Гаусса-Ньютона
Сообщение31.05.2019, 17:52 


07/10/15

2400
Всё таки удалось реализовать полноценный алгоритм Ньютона. Быстро выяснилось, что причина "застревания" алгоритма вовсе не в игнорировании слагаемого со вторыми производными в матрице Гёссе. После ряда экспериментов, для некоторых начальных приближений, "застревание" обнаружилось и для полноценного алгоритма. Сначала было предположение, что алгоритм попадает в локальные минимумы. Но в последствие выяснилось, что это не так. В действительности, причина в нарушении условия сходимости алгоритма Ньютона (его можно найти в книге, любезно предоставленной vpb, на стр. 141):
$$\bold \nabla^T\bold H^{-1}\bold \nabla>0,\qquad (1)$$
где $\bold \nabla =\bold J^T \bold \delta +\alpha \bold x,$ $\bold H=\bold J^T \bold J+\alpha \bold E. $
Анализ изменения критерия (1) от итерации к итерации показал, что "застревание" происходит происходит сразу же после его нарушения.

Решение проблемы у меня пока такое: на каждой итерации выполняется проверка условия (1). Если оно выполняется, то осуществляется шаг в Ньютоновском направлении, с измельчением его величины до тех пор, пока не уменьшится невязка. Если же (1) не выполняется, то выполняется шаг в направлении антиградиента. Кажется, пока работает. Ещё есть идея - увеличивать $\alpha$, до тех пор, пока (1) не будет выполнено. Наверное, второй вариант будет лучше первого.

Но тут есть проблема. Условие (1) можно проверить только в полноценном алгоритме Ньютона, а он очень медленный. В методе Гаусса-Ньютона этот способ уже не помогает "застревания" иногда происходят. Можно, конечно модифицировать (1) для этого случая так
$$\bold \nabla^T\bold H^{-1}\bold \nabla>C,\qquad (2)$$
но тогда возникают проблемы с выбором константы C.

 Профиль  
                  
 
 Re: Остаточная ошибка метода Гаусса-Ньютона
Сообщение01.06.2019, 03:40 
Заслуженный участник


18/01/15
3232
Andrey_Kireew в сообщении #1396926 писал(а):
книге, любезно предоставленной vpb, на стр. 141):

Пожалуйста, на здоровье. (Для третьих лиц: имеется в виду Дэннис-Шнабель).
Andrey_Kireew в сообщении #1396926 писал(а):
Гёссе
Правильно Гессе, без ё.

Непонятно, как может нарушаться условие (1). Матрица $H=J^TJ+\alpha E$ положительно определена (и симметрична), поэтому и $H^{-1}$ положительно определена, для любой матрицы $J$ и любого $\alpha>0$, откуда $v^T H^{-1} v>0$ для любого ненулевого вектора $v$.

-- 01.06.2019, 02:55 --

Но $H'$, и $H'+\alpha E$ тоже, где $H'$ обозначает полный гессиан, может не быть положительно определенной.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2, 3  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group