МЛР
Материал из MachineLearning.
| Строка 1: | Строка 1: | ||
{{Задание|Касперский Иван|Константин Воронцов|{{дата|6|1|2009}}, а сейчас {{дата}}}}  | {{Задание|Касперский Иван|Константин Воронцов|{{дата|6|1|2009}}, а сейчас {{дата}}}}  | ||
| - | Многомерная линейная регрессия — это [[регрессия]] в n-мерном пространстве.  | + | Многомерная линейная регрессия — это [[линейная регрессия]] в n-мерном пространстве.  | 
== Многомерная линейная регрессия ==  | == Многомерная линейная регрессия ==  | ||
| - | Имеется множество объектов <tex>X = \mathbb{R} ^n</tex> и множество ответов <tex>Y = \mathbb{R}</tex>. Также имеется набор <tex>n</tex> вещественнозначных признаков <tex>f_j(x), \ j=1, \ \ldots , \ n</tex>. Введём матричные обозначения: матрицу информации <tex>F</tex>, целевой вектор <tex>y</tex>   | + | Имеется множество объектов <tex>X = \mathbb{R} ^n</tex> и множество ответов <tex>Y = \mathbb{R}</tex>. Также имеется набор <tex>n</tex> вещественнозначных признаков <tex>f_j(x), \ j=1, \ \ldots , \ n</tex>. Введём матричные обозначения: матрицу информации <tex>F</tex>, целевой вектор <tex>y</tex>, вектор параметров <tex>\alpha</tex> и диагональную матрицу весов:  | 
| - | :<tex>F=\(f_1\ \dots\ f_n\)\;,\ \ f_i=\(f_i(x_1)<br>\ \vdots<br>f_i(x_l)\)\;, \ \ y=\(y_1<br>\ \vdots<br>y_l\)\;, \ \ \ \alpha=\(\alpha_1<br>\ \vdots<br>\alpha_n\)\   | + | :<tex>F=\(f_1\ \dots\ f_n\)\;,\ \ f_i=\(f_i(x_1)<br>\ \vdots<br>f_i(x_l)\)\;, \ \ y=\(y_1<br>\ \vdots<br>y_l\)\;, \ \ \ \alpha=\(\alpha_1<br>\ \vdots<br>\alpha_n\)\ ,\ \ W=diag(\sqrt{\lambda _1},\ \ldots,\ \sqrt{\lambda _l})</tex>  | 
Алгоритм:  | Алгоритм:  | ||
| Строка 9: | Строка 9: | ||
Оценим качество его работы на выборке <tex>X^l = (x_i,\ y_i)_{i=1}^l \in X*Y</tex> [[Метод наименьших квадратов| методом наименьших квадратов]]:  | Оценим качество его работы на выборке <tex>X^l = (x_i,\ y_i)_{i=1}^l \in X*Y</tex> [[Метод наименьших квадратов| методом наименьших квадратов]]:  | ||
| - | :<tex>Q(\alpha, X^l)\ =\ \sum_{i=1}^  | + | :<tex>Q(\alpha, X^l)\ =\ \sum_{i=1}^lw_i(a(x_i) - y_i)^2 \rightarrow \min_{\alpha \in \mathbb{R}^n}</tex>, или, в матричных обозначениях,<br />  | 
| - | :<tex>Q(\alpha)\ =\ \parallel (F\alpha\ -\ y)\parallel^2 \rightarrow \min_{\alpha \in \mathbb{R}^n}</tex>.  | + | :<tex>Q(\alpha)\ =\ \parallel W(F\alpha\ -\ y)\parallel^2 \rightarrow \min_{\alpha \in \mathbb{R}^n}</tex>.  | 
| - | Найдём минимум <tex>Q(\alpha)</tex> по α:  | + | Задача с произвольной матрицей весов легко приводится к единичной матрице весов заменой <tex>F' = WF\ ,\ y' = Wy\ </tex>:  | 
| + | :<tex>Q(\alpha)\ =\ \parallel F'\alpha\ -\ y'\parallel^2\ =\ (F'\alpha\ -\ y')^\top(F'\alpha\ -\ y')</tex>.  | ||
| + | |||
| + | Таким образом, в дальнейшем будем рассматривать только задачу с единичными весами.  | ||
| + | |||
| + | Найдём минимум <tex>Q(\alpha)</tex> по ''α'':  | ||
:<tex>\frac{\partial Q (\alpha)}{\partial \alpha} = 2 F^T (F\alpha - y) = 0\ \Rightarrow\ (F^TF)\alpha = F^Ty</tex>.<br />  | :<tex>\frac{\partial Q (\alpha)}{\partial \alpha} = 2 F^T (F\alpha - y) = 0\ \Rightarrow\ (F^TF)\alpha = F^Ty</tex>.<br />  | ||
Если <tex>rank(F^TF) = n</tex>, то можно обращать матрицу <tex>F^TF\ \text{:}\ \alpha^* = (F^TF)^{-1}F^Ty = F^+y</tex>, где введено обозначение <tex>F^+ = (F^TF)^{-1}F^T</tex>.  | Если <tex>rank(F^TF) = n</tex>, то можно обращать матрицу <tex>F^TF\ \text{:}\ \alpha^* = (F^TF)^{-1}F^Ty = F^+y</tex>, где введено обозначение <tex>F^+ = (F^TF)^{-1}F^T</tex>.  | ||
| Строка 31: | Строка 36: | ||
А так как <tex>\parallel \alpha \parallel^2 \ =\ \alpha ^T \alpha</tex>, то <br />  | А так как <tex>\parallel \alpha \parallel^2 \ =\ \alpha ^T \alpha</tex>, то <br />  | ||
:<tex>\parallel \alpha ^*\parallel^2 \ =\ \parallel UD^{-1}V^Ty \parallel^2 \ =\ y^TVD^{-T}U^TUD^{-1}V^Ty\ =\ y^TVD^{-2}V^Ty\ =\ \parallel D^{-1}V^Ty \parallel^2\ =\ \sum_{j=1}^{n} \frac1{\alpha _j} (v_j^T,\ y)^2.</tex>  | :<tex>\parallel \alpha ^*\parallel^2 \ =\ \parallel UD^{-1}V^Ty \parallel^2 \ =\ y^TVD^{-T}U^TUD^{-1}V^Ty\ =\ y^TVD^{-2}V^Ty\ =\ \parallel D^{-1}V^Ty \parallel^2\ =\ \sum_{j=1}^{n} \frac1{\alpha _j} (v_j^T,\ y)^2.</tex>  | ||
| - | <  | + | ==Проблемы==  | 
| + | Основной проблемой многомерной линейной регресии является вырожденность, или, в более общем случае, [[мультиколлинеарность]] матрицы F<sup>T</sup>F, которую приходится обращать. Подобные проблемы возникают, когда среди признаков f<sub>j</sub>(x) есть почти линейно зависимые.<br />  | ||
| + | Мультиколлинеарность матрицы определяется её ''числом обусловленности'':  | ||
| + | :<tex>\mu (F^TF)\ =\ \parallel F^TF \parallel * \parallel (F^TF)^{-1} \parallel \ =\ \frac{\lambda _{max}}{\lambda _{min}}</tex>, где λ — собственные значения матрицы F<sup>T</sup>F.  | ||
| + | |||
| + | Чем больше число обусловленности, тем ближе матрица F<sup>T</sup>F к вырожденной и тем неустойчивее обратная к ней матрица. Плохая обусловленность матрицы: λ<sub>min</sub> << λ<sub>max</sub>. Матрицу принято считать плохо обусловленной, если её число обусловленности превышает 10<sup>3</sup>...10<sup>6</sup>.  | ||
| + | |||
| + | Последствия:<br />  | ||
| + | # Разброс значений α<sub>j</sub>. Появляются большие положительные и большие отрицательные коэффициенты α<sub>j</sub>. По абсолютной величине коэффициента становится невозможно судить о степени важности признака f<sub>j</sub> . Коэффициенты утрачивают интерпретируемость.  | ||
| + | # Неустойчивость решения α* при (кажущейся) устойчивости Fα*. Малые изменения данных, например, шум или добавление нового объекта, могут сильно изменить вектор коэффициентов.  | ||
| + | # Отсюда следует опасность переобучения, так как снижается обобщающая способность алгоритма.  | ||
| + | |||
| + | Для борьбы с мультиколлинеарностью применяются существуют методы:  | ||
| + | # ''[[Регуляризация]]''.  Накладываются дополнительные ограничения на норму вектора коэффициентов α. Примером могут служить [[гребневая регрессия]] или [[Лассо Тибширани|L<sub>1</sub>-регуляризация]])  | ||
| + | # ''Преобразование признаков''. Исходные n признаков с помощью некоторых преобразований переводятся в меньшее число m новых признаков. В частности, линейные преобразования приводят к [[методу главных компонент|метод главных компонент]].  | ||
| + | |||
| + | Другой важной, но существенно более простой в плане решения проблемой является разнородность признаков. Если машстабы измерений признаков существенно (на несколько порядков) различаются, то появляется опасноcть, что будут учитываться только "крупномасштабные" признаки. Чтобы этого избежать, делается ''стандартизация'' матрицы F:<br />  | ||
| + | :<tex>f_{ij}\ =\ (f_ij - \overline{f_j})/{\sigma _j}</tex>  | ||
Версия 10:21, 5 января 2010
|   |  Данная статья является непроверенным учебным заданием.
 До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.  | 
Многомерная линейная регрессия — это линейная регрессия в n-мерном пространстве.
Многомерная линейная регрессия
Имеется множество объектов  и множество ответов 
. Также имеется набор 
 вещественнозначных признаков 
. Введём матричные обозначения: матрицу информации 
, целевой вектор 
, вектор параметров 
 и диагональную матрицу весов:
Алгоритм:
.
Оценим качество его работы на выборке   методом наименьших квадратов:
, или, в матричных обозначениях,
.
Задача с произвольной матрицей весов легко приводится к единичной матрице весов заменой :
.
Таким образом, в дальнейшем будем рассматривать только задачу с единичными весами.
Найдём минимум  по α:
.
Если , то можно обращать матрицу 
, где введено обозначение 
.
В таком случае функционал качества записывается в более удобной форме:
, где
— проекционная матрица:
 — вектор, являющийся проекцией 
 на 
.
как нарисовать значок проекционной матрицы, чтобы его можно было отличить от того, на что матрица умножается?!
Теперь рассмотрим сингулярное разложение матрицы F:
.
В таких обозначениях:
, а так как
, то
в силу диагональности матрицы D.
А решение метода наименьших квадратов запишется в следующем виде:
А так как , то 
Проблемы
Основной проблемой многомерной линейной регресии является вырожденность, или, в более общем случае, мультиколлинеарность матрицы FTF, которую приходится обращать. Подобные проблемы возникают, когда среди признаков fj(x) есть почти линейно зависимые.
Мультиколлинеарность матрицы определяется её числом обусловленности:
, где λ — собственные значения матрицы FTF.
Чем больше число обусловленности, тем ближе матрица FTF к вырожденной и тем неустойчивее обратная к ней матрица. Плохая обусловленность матрицы: λmin << λmax. Матрицу принято считать плохо обусловленной, если её число обусловленности превышает 103...106.
Последствия:
- Разброс значений αj. Появляются большие положительные и большие отрицательные коэффициенты αj. По абсолютной величине коэффициента становится невозможно судить о степени важности признака fj . Коэффициенты утрачивают интерпретируемость.
 - Неустойчивость решения α* при (кажущейся) устойчивости Fα*. Малые изменения данных, например, шум или добавление нового объекта, могут сильно изменить вектор коэффициентов.
 - Отсюда следует опасность переобучения, так как снижается обобщающая способность алгоритма.
 
Для борьбы с мультиколлинеарностью применяются существуют методы:
- Регуляризация. Накладываются дополнительные ограничения на норму вектора коэффициентов α. Примером могут служить гребневая регрессия или L1-регуляризация)
 - Преобразование признаков. Исходные n признаков с помощью некоторых преобразований переводятся в меньшее число m новых признаков. В частности, линейные преобразования приводят к метод главных компонент.
 
Другой важной, но существенно более простой в плане решения проблемой является разнородность признаков. Если машстабы измерений признаков существенно (на несколько порядков) различаются, то появляется опасноcть, что будут учитываться только "крупномасштабные" признаки. Чтобы этого избежать, делается стандартизация матрицы F:

