Метод наименьших квадратов с итеративным пересчётом весов
Материал из MachineLearning.
(→Описание алгоритма) |
|||
(7 промежуточных версий не показаны.) | |||
Строка 4: | Строка 4: | ||
::<tex> \beta ^ {(t + 1)} = \mathrm{arg}\min_{\beta} \sum_{i=1}^n w_i(\beta ^ {(t)})| y_i - f_i (\beta) | ^ 2 </tex> | ::<tex> \beta ^ {(t + 1)} = \mathrm{arg}\min_{\beta} \sum_{i=1}^n w_i(\beta ^ {(t)})| y_i - f_i (\beta) | ^ 2 </tex> | ||
- | = | + | =Описание алгоритма= |
- | + | Пусть нужно найти приближенное решение уравнения <tex>Ax = y</tex>, где <tex>A = (a_{ij})</tex> - матрица размера m*n, <tex> x = (x_1,...,x_n),\ y = (y_1,..., y_m)</tex><br /> | |
- | + | Первый шаг алгоритма- это идентификация весов. В начале начале матрице весов ''W'' берется за единичную <tex>W \equiv I</tex>, и методом взвешанных наименьших квадратов ищется решения следующей задачи : | |
- | + | ::<tex>WAx = Wy</tex> | |
- | + | Получаем некоторый вектор <tex>\tilde x</tex> и вычисляем невязку : | |
- | + | ::<tex>r = y - A\tilde x</tex>, | |
- | + | по которой происходит пересчет матрицы весов <tex>W</tex> с помощью некоторой неотрицательной функции <tex>f(r)</tex>. Например, можно взять <tex>f(r) = \frac 1 {|r|}</tex> : | |
- | + | ::<tex>W = diag (f(r))</tex> | |
+ | После этого, опять решаем уравнение <tex>WAx = Wy</tex>, но уже с пересчитанными весами. Процесс повторяется до тех пор, пока вектор весов не стабилизируется. <br /> | ||
+ | Решение, к которому сходится этот итеративный процесс- это минимизация некоторой функции, связанной с функцией <tex>f (x)</tex>. Например, если взять функцию <tex>f (x) = \frac 1 {|r|}</tex>, то будет минимизироваться функция <tex>\sum_i |r_i|</tex>. | ||
+ | |||
+ | =Сходимость алгоритма= | ||
+ | Алгоритм сходится не всегда. Например, выбор в качестве функции <tex>f (x) = |r| ^ p</tex>, где <tex>p \in (-1, 1]</tex> может привести к зацикливанию, и алгоритм, таким образом, не сойдется. | ||
=Пример работы алгоритма= | =Пример работы алгоритма= | ||
Строка 28: | Строка 33: | ||
где <tex>Q'(w^t)</tex> - вектор первых производных (градиент) функционала Q(w) в точке <tex>w^t</tex>, <tex>Q''(w^t)</tex> - матрица вторых производных (гессиан) функционала Q(w) в точке <tex>w^t</tex>, <tex>h_t</tex> - величина шага. | где <tex>Q'(w^t)</tex> - вектор первых производных (градиент) функционала Q(w) в точке <tex>w^t</tex>, <tex>Q''(w^t)</tex> - матрица вторых производных (гессиан) функционала Q(w) в точке <tex>w^t</tex>, <tex>h_t</tex> - величина шага. | ||
- | Обозначим <tex>\sigma_i = \sigma(y_i w^T x_i)</tex> и заметим, что производная сигмоидной функции есть <tex>\sigma'(z) = \sigma(z)(1 - \sigma(z))</tex>. | + | Обозначим <tex>\sigma_i = \sigma(y_i w^T x_i)</tex> и заметим, что производная сигмоидной функции есть <tex>\sigma'(z) = \sigma(z)(1 - \sigma(z))</tex>.<br /> |
- | Элементы градиента (вектора первых производных) функционала Q(w): | + | Элементы градиента (вектора первых производных) функционала Q(w):<br /> |
+ | ::<tex>\frac {\partial Q (t)} {\partial w_j} = -\sum_{i = 1} ^ l (1 - \sigma_i) y_i f_j (x_i),\ j = 1,...,n.</tex> | ||
- | Элементы гессиана (матрицы вторых производных) функционала Q(w): | + | Элементы гессиана (матрицы вторых производных) функционала Q(w):<br /> |
+ | ::<tex>\frac {\partial ^ 2 Q (t)} {\partial w_j \partial w_k} = - \frac {\partial} {\partial w_k} \sum_{i = 1} ^ l (1 - \sigma_i) y_i f_j (x_i) = \sum_{i = 1} ^ l (1 - \sigma_i) \sigma_i f_j (x_i) f_l (x_i),\ j = 1,...,n,\ k = 1,...,n</tex> | ||
Введём матричные обозначения:<br /> | Введём матричные обозначения:<br /> | ||
Строка 40: | Строка 47: | ||
В этих обозначениях произведение матрицы, обратной к гессиану, на вектор градиента принимает следующий вид:<br /> | В этих обозначениях произведение матрицы, обратной к гессиану, на вектор градиента принимает следующий вид:<br /> | ||
- | <tex>(Q''(w^t))^{-1} Q'(w^t) = -(F^T \Gamma ^ 2 F) ^ {-1} F^T \Gamma \tilde y = -(\tilde F ^ {T} \tilde F) ^ {-1} \tilde F^{T} \tilde y = -\tilde F ^ + \tilde y</tex> | + | ::<tex>(Q''(w^t))^{-1} Q'(w^t) = -(F^T \Gamma ^ 2 F) ^ {-1} F^T \Gamma \tilde y = -(\tilde F ^ {T} \tilde F) ^ {-1} \tilde F^{T} \tilde y = -\tilde F ^ + \tilde y</tex> |
Таким образом, получается, что на каждой итерации вектор весов ''w'' ищется по следующей формуле : | Таким образом, получается, что на каждой итерации вектор весов ''w'' ищется по следующей формуле : | ||
Строка 49: | Строка 56: | ||
Таким образом, решение задачи классификации сводится к последовательности регрессионных задач, для каждой из которых веса объектов и ответы пересчитываются заново. Т.е. в данном случае мы применяем алгоритм IRLS. | Таким образом, решение задачи классификации сводится к последовательности регрессионных задач, для каждой из которых веса объектов и ответы пересчитываются заново. Т.е. в данном случае мы применяем алгоритм IRLS. | ||
- | = | + | =Литература= |
- | + | Ф.П. Васильев Численные методы решения экстремальных задач - М.: Наука, 1980. — 307 с.<br /> | |
+ | [[Машинное обучение (курс лекций, К.В.Воронцов)]] | ||
- | = | + | =См. также= |
- | + | *[[Логистическая регрессия]] | |
+ | *[[Метод стохастического градиента]] | ||
+ | *[[Многомерная линейная регрессия]] | ||
=Ссылки= | =Ссылки= | ||
Строка 60: | Строка 70: | ||
[http://mmphome.1gb.ru/data/doc/4course/mfft/lecture1.pdf Ю. И. Журавлев, Д. П. Ветров: Обобщенные Линейные Модели: Метод IRLS] | [http://mmphome.1gb.ru/data/doc/4course/mfft/lecture1.pdf Ю. И. Журавлев, Д. П. Ветров: Обобщенные Линейные Модели: Метод IRLS] | ||
- | [[Категория: | + | [[Категория:Линейная регрессия]] |
- | {{Задание|Сидоров Юрий|Константин Воронцов| | + | [[Категория:Линейные классификаторы]] |
+ | {{Задание|Сидоров Юрий|Константин Воронцов|7 января 2010}} |
Текущая версия
Метод наименьших квадратов с итеративным пересчётом весов (IRLS) - алгоритм, использующийся для решения некоторых оптимизационных задач. В частности, с помощью этого метода можно решать задачи вида:
Алгоритм является итеративным. На каждом шаге алгоритма решается задача Взвешенных наименьших квадратов:
Содержание |
Описание алгоритма
Пусть нужно найти приближенное решение уравнения , где - матрица размера m*n,
Первый шаг алгоритма- это идентификация весов. В начале начале матрице весов W берется за единичную , и методом взвешанных наименьших квадратов ищется решения следующей задачи :
Получаем некоторый вектор и вычисляем невязку :
- ,
по которой происходит пересчет матрицы весов с помощью некоторой неотрицательной функции . Например, можно взять :
После этого, опять решаем уравнение , но уже с пересчитанными весами. Процесс повторяется до тех пор, пока вектор весов не стабилизируется.
Решение, к которому сходится этот итеративный процесс- это минимизация некоторой функции, связанной с функцией . Например, если взять функцию , то будет минимизироваться функция .
Сходимость алгоритма
Алгоритм сходится не всегда. Например, выбор в качестве функции , где может привести к зацикливанию, и алгоритм, таким образом, не сойдется.
Пример работы алгоритма
Приведем пример работы алгоритма для решения задач логистической регрессии.
Пусть задано пространство объектов X и множество возможных ответов Y. Существует неизвестная целевая зависимость y* : X → Y , значения которой известны только на объектах обучающей выборки . Требуется построить алгоритм a: X → Y ,аппроксимирующий целевую зависимость y∗.
Определим функционал качества аппроксимации целевой зависимости на выборке как :
- ,
где - сигмоидная функция.
Примененим метод Ньютона-Рафсона для минимизации нелинейного функционала Q(w):
- ,
где - вектор первых производных (градиент) функционала Q(w) в точке , - матрица вторых производных (гессиан) функционала Q(w) в точке , - величина шага.
Обозначим и заметим, что производная сигмоидной функции есть .
Элементы градиента (вектора первых производных) функционала Q(w):
Элементы гессиана (матрицы вторых производных) функционала Q(w):
Введём матричные обозначения:
- - матрица признаковых описаний объектов;
- - диагональная матрица весов объектов;
- - взвешенная матрица признаковых описаний объектов;
- - взвешенный вектор ответов.
- - матрица признаковых описаний объектов;
В этих обозначениях произведение матрицы, обратной к гессиану, на вектор градиента принимает следующий вид:
Таким образом, получается, что на каждой итерации вектор весов w ищется по следующей формуле :
Легко заметить, что полученное выражение совпадает с решением задачи наименьших квадратов для многомерной линейной регрессии со взвешенными объектами и модифицированными ответами:
Таким образом, решение задачи классификации сводится к последовательности регрессионных задач, для каждой из которых веса объектов и ответы пересчитываются заново. Т.е. в данном случае мы применяем алгоритм IRLS.
Литература
Ф.П. Васильев Численные методы решения экстремальных задач - М.: Наука, 1980. — 307 с.
Машинное обучение (курс лекций, К.В.Воронцов)
См. также
Ссылки
Wikipedia: Iteratively reweighted least squares
Wicidoc: Iteratively re-weighted least squares
Ю. И. Журавлев, Д. П. Ветров: Обобщенные Линейные Модели: Метод IRLS
Данная статья является непроверенным учебным заданием.
До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |