Метод Ньютона-Гаусса
Материал из MachineLearning.
(поправил ссылку) |
|||
(12 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | Метод Ньютона-Гаусса | + | Метод Ньютона-Гаусса — это итерационный численный метод нахождения решения задачи наименьших квадратов. Является разновидностью [[Метод Ньютона. Проблема области сходимости. Метод парабол. Совмещение методов Ньютона и парабол|метода Ньютона]]. В общих чертах, этот метод использует матрицу Якобиана J производных первого порядка функции F для нахождения вектора x значений параметра, который минимизирует остаточные суммы квадратов (сумму квадратных отклонений предсказанных значений от наблюдаемых). Усовершенствованная и полезная версия метода — это так называемый метод Левенберга-Марквардта. |
=Описание метода= | =Описание метода= | ||
Строка 9: | Строка 9: | ||
<tex>[( g_k(\vec{x}) - a_k )]_{k=1}^n</tex> | <tex>[( g_k(\vec{x}) - a_k )]_{k=1}^n</tex> | ||
- | Подобного типа задачи широко распространены и имеют ряд практических применений, особенно при подборе модельной функции для некого набора данных, т.е. подбор нелинейных параметров. Пусть <tex>J(\vec{x})</tex> - матрица Якоби для функции <tex>F(\vec{x})</tex>, то есть<br> | + | Подобного типа задачи широко распространены и имеют ряд практических применений, особенно при подборе модельной функции для некого набора данных, т.е. подбор нелинейных параметров. Пусть <tex>J(\vec{x})</tex> - [[Вычисление матриц Якоби и Гессе|матрица Якоби]] для функции <tex>F(\vec{x})</tex>, то есть<br> |
<tex>J(\vec{x}) = [\frac{\partial g_i(\vec{x})}{\partial x_j }]_{i=1,j=1 }^{n, m}</tex> , где <tex>\vec{x}</tex> из <tex>\mathbb{R}^m</tex> | <tex>J(\vec{x}) = [\frac{\partial g_i(\vec{x})}{\partial x_j }]_{i=1,j=1 }^{n, m}</tex> , где <tex>\vec{x}</tex> из <tex>\mathbb{R}^m</tex> | ||
Строка 29: | Строка 29: | ||
<tex>H(\vec{x}) = J^T(\vec{x})J(\vec{x}) + Q(\vec{x})</tex>, где <br><br> | <tex>H(\vec{x}) = J^T(\vec{x})J(\vec{x}) + Q(\vec{x})</tex>, где <br><br> | ||
<tex>Q(\vec{x}) = \sum_{i=1}^m H_i(\vec{x})F_i(\vec{x})</tex><br> | <tex>Q(\vec{x}) = \sum_{i=1}^m H_i(\vec{x})F_i(\vec{x})</tex><br> | ||
- | Здесь под <tex>H_i(\vec{x})</tex> имеется ввиду матрица Гесса для функции <tex>F_i(\vec{x})</tex> ( i-ая компонента вектора <tex>\vec{F}(\vec{x}) </tex> ). <tex>J(\vec{x})</tex> - матрица Якоби для функции <tex>f(\vec{x})</tex><br> | + | Здесь под <tex>H_i(\vec{x})</tex> имеется ввиду [[Вычисление матриц Якоби и Гессе|матрица Гесса]] для функции <tex>F_i(\vec{x})</tex> ( i-ая компонента вектора <tex>\vec{F}(\vec{x}) </tex> ). <tex>J(\vec{x})</tex> - матрица Якоби для функции <tex>f(\vec{x})</tex><br> |
Если использовать итерационный процесс Ньютона для минимизации <tex>f(\vec{x})</tex>, то формула для обновления <tex>\vec{x_j}</tex> будет следующая:<br> | Если использовать итерационный процесс Ньютона для минимизации <tex>f(\vec{x})</tex>, то формула для обновления <tex>\vec{x_j}</tex> будет следующая:<br> | ||
::<tex>\vec{x_{j+1}} = \vec{x_{j}} - \left[J^T(\vec{x})J(\vec{x})+\sum_{i=1}^m \vec{F}_i(\vec{x})H_i(\vec{x})\right]^{-1}J^T(\vec{x})\vec{F}(\vec{x}).</tex><br> | ::<tex>\vec{x_{j+1}} = \vec{x_{j}} - \left[J^T(\vec{x})J(\vec{x})+\sum_{i=1}^m \vec{F}_i(\vec{x})H_i(\vec{x})\right]^{-1}J^T(\vec{x})\vec{F}(\vec{x}).</tex><br> | ||
- | Метод Ньютона | + | Метод Ньютона - Гаусса строится на предположении о том, что <tex>||J^T(\vec{x})J(\vec{x})|| >>||Q(\vec{x})||</tex>, то есть слагаемое <tex>J^T(\vec{x})J(\vec{x})</tex> доминирует над <tex>Q(\vec{x})</tex>. Также такое приближение возможно при условии, что <tex>||Q(\vec{x})||</tex> близко к 0. Это требование не соблюдается, если минимальные невязки велики, то есть если норма <tex>||F(\vec{x})||</tex>сравнима с максимальным собственным значением матрицы <tex>J^T(\vec{x})J(\vec{x})</tex>. В противном случае пренебрегаем <tex>Q(\vec{x})</tex> и получаем итерационную процедуру с формулой для обновления <tex>\vec{x_{j+1}}</tex>:<br> |
::<tex>\vec{x_{j+1}} = \vec{x_{j}} - (J^T(\vec{x_{j}})J(\vec{x_{j}}))^{-1}J^T(\vec{x_{j}})F(\vec{x_{j}}) </tex> | ::<tex>\vec{x_{j+1}} = \vec{x_{j}} - (J^T(\vec{x_{j}})J(\vec{x_{j}}))^{-1}J^T(\vec{x_{j}})F(\vec{x_{j}}) </tex> | ||
- | |||
==Преимущества и недостатки метода== | ==Преимущества и недостатки метода== | ||
- | В стандартном итерационном методе Ньютона на каждой итерации требуется вычисление и обращение матрицы Гесса, что зачастую является достаточно сложным процессом. В методе Ньютона-Гаусса подобная необходимость отпадает, причем скорость сходимости также может достигать квадратичной | + | В стандартном итерационном методе Ньютона на каждой итерации требуется вычисление и обращение матрицы Гесса, что зачастую является достаточно сложным процессом. В методе Ньютона-Гаусса подобная необходимость отпадает, причем скорость сходимости также может достигать квадратичной, хотя вторые производные и не учитываются. Также данный метод прост в реализации и присутствует в большинстве программных пакетов по прикладной математике. Тем не менее, в методе Ньютона-Гаусса часто встречается ряд проблем в ситуации, когда член второго порядка <tex>Q(\vec{x})</tex> значителен по своей величине, что приводит к некорректной работе и медленной сходимости. Улучшением метода Ньютона-Гаусса является [[алгоритм Левенберга - Марквардта]], основанный на эвристических соображениях. |
==Связь метода с многомерной линейной регрессией== | ==Связь метода с многомерной линейной регрессией== | ||
Пусть задана обучающая выборка объектов <tex>X^l</tex> и значений <tex>Y^l</tex> где <tex>\vec{x_i}</tex> из <tex>\mathbb{R}^m</tex>, а <tex>y_i</tex> из <tex>\mathbb{R}</tex>. Задача состоит в том, чтобы восстановить отображение <tex>y^*(\vec{x}):\mathbb{R}^m \to \mathbb{R}</tex>. Общий вид отображения <tex>y^*(\vec{x})</tex> будем искать в виде <tex>f(\vec{x},\vec{\alpha})</tex>, где <tex>\vec{\alpha}</tex> — вектор неизвестных параметров из <tex>\mathbb{R}^k</tex>, которые необходимо восстановить. Параметры восстанавливаются таким образом, чтобы функционал <br> | Пусть задана обучающая выборка объектов <tex>X^l</tex> и значений <tex>Y^l</tex> где <tex>\vec{x_i}</tex> из <tex>\mathbb{R}^m</tex>, а <tex>y_i</tex> из <tex>\mathbb{R}</tex>. Задача состоит в том, чтобы восстановить отображение <tex>y^*(\vec{x}):\mathbb{R}^m \to \mathbb{R}</tex>. Общий вид отображения <tex>y^*(\vec{x})</tex> будем искать в виде <tex>f(\vec{x},\vec{\alpha})</tex>, где <tex>\vec{\alpha}</tex> — вектор неизвестных параметров из <tex>\mathbb{R}^k</tex>, которые необходимо восстановить. Параметры восстанавливаются таким образом, чтобы функционал <br> | ||
<tex>Q(\vec{\alpha}) = \sum_{i=1}^l (f(\vec{x_i},\vec{\alpha}) - y_i)^2 \to min_{\vec{\alpha}}</tex>.<br> | <tex>Q(\vec{\alpha}) = \sum_{i=1}^l (f(\vec{x_i},\vec{\alpha}) - y_i)^2 \to min_{\vec{\alpha}}</tex>.<br> | ||
- | Данная задача может быть решена с помощью метода Ньютона-Гаусса. Пусть нам известно i–ое приближение точки минимума <tex>\vec{\alpha^{(i)}</tex>. Рассмотрим более подробно процесс получения приближения <tex>\vec{\alpha^{(i+1)}</tex>. Разложим функцию <tex>f( \vec{x_j},\vec{\alpha^{(i)} )</tex> в ряд Тейлора до первого члена в окрестности точки <tex>\vec{\alpha^{(i)}}</tex> :<br><br> | + | Данная задача может быть решена с помощью метода Ньютона-Гаусса. Пусть нам известно i–ое приближение точки минимума <tex>\vec{\alpha^{(i)}</tex>. Рассмотрим более подробно процесс получения приближения <tex>\vec{\alpha^{(i+1)}</tex>. Разложим функцию <tex>f( \vec{x_j},\vec{\alpha^{(i)} )</tex> в [[ряд Тейлора]] до первого члена в окрестности точки <tex>\vec{\alpha^{(i)}}</tex> :<br><br> |
<tex>f^1(\vec{x_j},\vec{\alpha}) = f(\vec{x_j},\vec{\alpha^{(i)}}) + \sum_{n=1}^k \frac{\partial f}{\partial \alpha_n }(\vec{x_j},\vec{\alpha^{(i)}})(\vec{\alpha_n} - \vec{\alpha^{(i)}_n})</tex>. | <tex>f^1(\vec{x_j},\vec{\alpha}) = f(\vec{x_j},\vec{\alpha^{(i)}}) + \sum_{n=1}^k \frac{\partial f}{\partial \alpha_n }(\vec{x_j},\vec{\alpha^{(i)}})(\vec{\alpha_n} - \vec{\alpha^{(i)}_n})</tex>. | ||
Следующее приближение <tex>\vec{\alpha^{(i+1)}</tex> будем искать таким образом, чтобы функционал <br><br> | Следующее приближение <tex>\vec{\alpha^{(i+1)}</tex> будем искать таким образом, чтобы функционал <br><br> | ||
<tex>Q^1(\vec{\alpha}) = \sum_{j=1}^l (f^1(\vec{x_j},\vec{\alpha}) - y_j)^2 \to min_{\vec{\alpha}}</tex>.<br> | <tex>Q^1(\vec{\alpha}) = \sum_{j=1}^l (f^1(\vec{x_j},\vec{\alpha}) - y_j)^2 \to min_{\vec{\alpha}}</tex>.<br> | ||
- | подставляя выражение для <tex>f^1(\vec{x_i},\vec{\alpha})</tex>, получаем задачу восстановления многомерной линейной регрессии по методу наименьших квадратов. Выпишем ее решение в общем виде: <br> | + | подставляя выражение для <tex>f^1(\vec{x_i},\vec{\alpha})</tex>, получаем задачу восстановления [[МЛР|многомерной линейной регрессии]] по [[Метод наименьших квадратов|методу наименьших квадратов]]. Выпишем ее решение в общем виде: <br> |
<tex>(\vec{\alpha^{(i+1)}} - \vec{\alpha^{(i)}}) = (F^T_i F_i)^{-1}F^T_i(y - f_i)</tex>, где <br> | <tex>(\vec{\alpha^{(i+1)}} - \vec{\alpha^{(i)}}) = (F^T_i F_i)^{-1}F^T_i(y - f_i)</tex>, где <br> | ||
- | <tex>F_i = [\frac{\partial f}{\partial \alpha_n }(\vec{x_j},\vec{\alpha^{(i)}})]_{j=1, n=1}^{l, k}</tex> | + | <tex>F_i = [\frac{\partial f}{\partial \alpha_n }(\vec{x_j},\vec{\alpha^{(i)}})]_{j=1, n=1}^{l, k}</tex> — матрица частных производных, а <br> |
<tex> y = [y_j]_{j=1}^l, <br> | <tex> y = [y_j]_{j=1}^l, <br> | ||
- | f_i = [ f(\vec{x_j},\vec{\alpha^{(i)}}) ]_{j=1}^l</tex>.<br><br> Выражая <tex>\vec{\alpha^{(i+1)}}</tex> получаем | + | f_i = [ f(\vec{x_j},\vec{\alpha^{(i)}}) ]_{j=1}^l</tex>.<br><br> Выражая <tex>\vec{\alpha^{(i+1)}}</tex> получаем итерационную формулу из метода Ньютона-Гаусса: <br> |
::<tex>\vec{\alpha^{(i+1)}} = \vec{\alpha^{(i)}} - (F^T_i F_i)^{-1}F^T_i(f_i - y)</tex>.<br><br> | ::<tex>\vec{\alpha^{(i+1)}} = \vec{\alpha^{(i)}} - (F^T_i F_i)^{-1}F^T_i(f_i - y)</tex>.<br><br> | ||
Таким образом было показано, что сложную задачу нелинейной регрессии получается свести к серии более простых стандартных задач линейной регрессии, которые решаются на каждой итерации. | Таким образом было показано, что сложную задачу нелинейной регрессии получается свести к серии более простых стандартных задач линейной регрессии, которые решаются на каждой итерации. | ||
- | + | =Литература= | |
#[[Машинное обучение (курс лекций, К.В.Воронцов)]] | #[[Машинное обучение (курс лекций, К.В.Воронцов)]] | ||
#[http://ru.wikipedia.org/wiki/Метод_Ньютона] | #[http://ru.wikipedia.org/wiki/Метод_Ньютона] | ||
Строка 69: | Строка 68: | ||
{{Задание|DenisGKolev|Константин Воронцов|6 января 2010}} | {{Задание|DenisGKolev|Константин Воронцов|6 января 2010}} | ||
+ | |||
+ | [[Категория:Нелинейная регрессия]] |
Текущая версия
Метод Ньютона-Гаусса — это итерационный численный метод нахождения решения задачи наименьших квадратов. Является разновидностью метода Ньютона. В общих чертах, этот метод использует матрицу Якобиана J производных первого порядка функции F для нахождения вектора x значений параметра, который минимизирует остаточные суммы квадратов (сумму квадратных отклонений предсказанных значений от наблюдаемых). Усовершенствованная и полезная версия метода — это так называемый метод Левенберга-Марквардта.
Содержание |
Описание метода
В методе наименьших квадратов подлежащая минимизации функция f(x) представляет собой сумму квадратов.
Под имеется ввиду следующий вектор-столбец:
Подобного типа задачи широко распространены и имеют ряд практических применений, особенно при подборе модельной функции для некого набора данных, т.е. подбор нелинейных параметров. Пусть - матрица Якоби для функции , то есть
, где из
Выбирая некоторое начальное значение последовательные приближения находят следующим образом:
Обоснование метода
Связь с итерационным методом Ньютона
Пусть необходимо найти экстремум функции многих переменных . Это равносильно нахождению точки . Если для решения этой задачи использовать итерационный метод Ньютона (метод касательных), то формула обновления для выглядит следующим образом:
Здесь под имеется ввиду матрица Гесса функции , то есть матрица вторых производных:
Когда рассматривается задача наименьших квадратов
градиент и матрица Гесса для функции принимают особый вид:
, где
Здесь под имеется ввиду матрица Гесса для функции ( i-ая компонента вектора ). - матрица Якоби для функции
Если использовать итерационный процесс Ньютона для минимизации , то формула для обновления будет следующая:
Метод Ньютона - Гаусса строится на предположении о том, что , то есть слагаемое доминирует над . Также такое приближение возможно при условии, что близко к 0. Это требование не соблюдается, если минимальные невязки велики, то есть если норма сравнима с максимальным собственным значением матрицы . В противном случае пренебрегаем и получаем итерационную процедуру с формулой для обновления :
Преимущества и недостатки метода
В стандартном итерационном методе Ньютона на каждой итерации требуется вычисление и обращение матрицы Гесса, что зачастую является достаточно сложным процессом. В методе Ньютона-Гаусса подобная необходимость отпадает, причем скорость сходимости также может достигать квадратичной, хотя вторые производные и не учитываются. Также данный метод прост в реализации и присутствует в большинстве программных пакетов по прикладной математике. Тем не менее, в методе Ньютона-Гаусса часто встречается ряд проблем в ситуации, когда член второго порядка значителен по своей величине, что приводит к некорректной работе и медленной сходимости. Улучшением метода Ньютона-Гаусса является алгоритм Левенберга - Марквардта, основанный на эвристических соображениях.
Связь метода с многомерной линейной регрессией
Пусть задана обучающая выборка объектов и значений где из , а из . Задача состоит в том, чтобы восстановить отображение . Общий вид отображения будем искать в виде , где — вектор неизвестных параметров из , которые необходимо восстановить. Параметры восстанавливаются таким образом, чтобы функционал
.
Данная задача может быть решена с помощью метода Ньютона-Гаусса. Пусть нам известно i–ое приближение точки минимума . Рассмотрим более подробно процесс получения приближения . Разложим функцию в ряд Тейлора до первого члена в окрестности точки :
.
Следующее приближение будем искать таким образом, чтобы функционал
.
подставляя выражение для , получаем задачу восстановления многомерной линейной регрессии по методу наименьших квадратов. Выпишем ее решение в общем виде:
, где
— матрица частных производных, а
.
Выражая получаем итерационную формулу из метода Ньютона-Гаусса:
- .
- .
Таким образом было показано, что сложную задачу нелинейной регрессии получается свести к серии более простых стандартных задач линейной регрессии, которые решаются на каждой итерации.
Литература
- Машинное обучение (курс лекций, К.В.Воронцов)
- [1]
- [2]
- К.П. Ловецкий, Л.А. Севастьянов, М. В. Паукшто, О.Н. Бикеев. Математический синтез оптических наноструктур
Данная статья является непроверенным учебным заданием.
До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |