МЛР

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Многомерная линейная регрессия)
Строка 8: Строка 8:
Оценим качество его работы на выборке <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}^l(a(x_i) - y_i)^2 \rightarrow \min_{\alpha \in \mathbb{R}^n}</tex>, или, в матричных обозначениях,<br />
+
:<tex>Q(\alpha, X^l)\ =\ \sum_{i=1}^l(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 (F\alpha\ -\ y)\parallel^2 \rightarrow \min_{\alpha \in \mathbb{R}^n}</tex>.
Строка 21: Строка 21:
{{бледно|<small>как нарисовать значок проекционной матрицы, чтобы его можно было отличить от того, на что матрица умножается?!</small>}}
{{бледно|<small>как нарисовать значок проекционной матрицы, чтобы его можно было отличить от того, на что матрица умножается?!</small>}}
-
Теперь рассмотрим [[МЛР#Сингулярное разложение|сингулярное разложение]] матрицы F:
+
Теперь рассмотрим [[МЛР#Сингулярное разложение|сингулярное разложение]] матрицы F:<br />
 +
:<tex>F\ =\ VDU^T</tex>.
 +
В таких обозначениях:<br />
 +
:<tex>F^+\ =\ (F^TF)^{-1}F^T\ =\ (UDV^TVDU^T)^{-1}UDV^T\ =\ (UDDU^T)^{-1}UDV^T\ =\ U^{-T}D^{-2}U^{-1}UDV^T\ =\ U^{-T}D^{-2}DV^T\ =\ U^{-T}D^{-1}V^T\ =\ UD^{-1}V^T</tex>
== Сингулярное разложение ==
== Сингулярное разложение ==

Версия 23:13, 4 января 2010

Данная статья является непроверенным учебным заданием.
Студент: Участник:Касперский Иван
Преподаватель: Участник:Константин Воронцов
Срок: 6 января 2009, а сейчас 22 декабря 2024

До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}.

См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.


Многомерная линейная регрессия

Имеется множество объектов X = \mathbb{R} ^n и множество ответов Y = \mathbb{R}. Также имеется набор n вещественнозначных признаков f_j(x), \ j=1, \ \ldots , \ n. Введём матричные обозначения: матрицу информации F, целевой вектор y и вектор параметров \alpha:

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\)\ .

Алгоритм:

a(x) = \sum_{j=1}^n\alpha_jf_j(x).

Оценим качество его работы на выборке X^l = (x_i,\ y_i)_{i=1}^l \in X*Y методом наименьших квадратов:

Q(\alpha, X^l)\ =\ \sum_{i=1}^l(a(x_i) - y_i)^2 \rightarrow \min_{\alpha \in \mathbb{R}^n}, или, в матричных обозначениях,
Q(\alpha)\ =\ \parallel (F\alpha\ -\ y)\parallel^2 \rightarrow \min_{\alpha \in \mathbb{R}^n}.

Найдём минимум Q(\alpha) по α:

\frac{\partial Q (\alpha)}{\partial \alpha} = 2 F^T (F\alpha - y) = 0\ \Rightarrow\ (F^TF)\alpha = F^Ty.

Если rank(F^TF) = n, то можно обращать матрицу F^TF\ \text{:}\ \alpha^* = (F^TF)^{-1}F^Ty = F^+y, где введено обозначение F^+ = (F^TF)^{-1}F^T.


В таком случае функционал качества записывается в более удобной форме:

Q(\alpha^*) = \parallel F(F^TF)^{-1}F^Ty - y \parallel ^2 = \parallel P_{_F}y - y \parallel^2, где P_F — проекционная матрица:

P_{_F} y — вектор, являющийся проекцией y на \mathfrak{L}(f_1,\ \dots,\ f_n).
как нарисовать значок проекционной матрицы, чтобы его можно было отличить от того, на что матрица умножается?!

Теперь рассмотрим сингулярное разложение матрицы F:

F\ =\ VDU^T.

В таких обозначениях:

F^+\ =\ (F^TF)^{-1}F^T\ =\ (UDV^TVDU^T)^{-1}UDV^T\ =\ (UDDU^T)^{-1}UDV^T\ =\ U^{-T}D^{-2}U^{-1}UDV^T\ =\ U^{-T}D^{-2}DV^T\ =\ U^{-T}D^{-1}V^T\ =\ UD^{-1}V^T

Сингулярное разложение

Пусть F \in \mathbb{R}^{l x n}:\ rank(F) = n;\ l \ge n, тогда F представима в виде F = VDU^T, где:

  1. D = diag(\sqrt{\lambda _1},\ \dots,\ \sqrt{\lambda _n}),\ \lambda _j — собственные значения матрицы F^TF,\ \lambda _j \ >\ 0, j=1,\ \dots,\ n.[1]
  2. V = (v_1,\ \ldots,\ v_n),\ v_i — собственные вектора FF^T, причём V^TV = I_n.
  3. U = (u_1,\ \ldots,\ u_n),\ u_i — собственные вектора F^TF, причём U^TU = I_n.


Личные инструменты