1. Введение: Реальные данные и “оптимальная” модель
Данные, наблюдаемые в реальном мире, почти всегда содержат “шум” или “дисперсию”. Чтобы найти скрытые закономерности в таких данных и предсказать будущее или оценить неизвестные данные, нам необходимо построить математическую модель, которая наилучшим образом соответствует данным.
Самым фундаментальным методом, который до сих пор играет чрезвычайно важную роль в качестве основы современного машинного обучения, является метод наименьших квадратов (Method of Least Squares).
В этой статье, вместо того чтобы просто заучивать формулы, мы глубоко исследуем, “почему это вычисление находит линию наилучшего соответствия” с прекрасной геометрической точки зрения линейной алгебры (ортогональная проекция).
2. Интуитивная идея метода наименьших квадратов
Предположим, у нас есть $n$ точек данных $(x_1, y_1), (x_2, y_2), \dots, (x_n, y_n)$. При построении этих точек на диаграмме рассеяния они могут не выстраиваться в идеальную прямую, но в целом они, кажется, следуют тенденции определенной линии.
В это время пусть уравнение прямой, аппроксимирующей данные, будет $y = c + dx$. (Здесь точка пересечения с осью $y$ — $c$, а наклон — $d$).
Для каждой точки данных $x_i$ значение, предсказанное этой линией, равно $\hat{y}_i = c + d x_i$. Ошибка (остаток) $e_i$ возникает между фактическим наблюдаемым значением $y_i$ и предсказанным значением $\hat{y}_i$.
$$ e_i = y_i - \hat{y}_i = y_i - (c + d x_i) $$Метод наименьших квадратов — это метод поиска параметров $c$ и $d$, которые минимизируют сумму квадратов ошибок. Сумма квадратов ошибок $E$ определяется следующим образом:
$$ E = \sum_{i=1}^{n} e_i^2 = \sum_{i=1}^{n} (y_i - c - d x_i)^2 \quad (\text{Определение функции ошибки}) $$Причина возведения в квадрат заключается в предотвращении взаимного уничтожения положительных и отрицательных ошибок, а также в том, что оно обладает мощным преимуществом — математически дифференцируемо и легко поддается обработке.
flowchart TD
Data["Сбор данных"] --> Formulate["Формулирование модели"]
Formulate --> Error["Определение функции ошибки"]
Error --> Minimize["Минимизация функции ошибки"]
Minimize --> Optimal["Определение оптимальных параметров"]
3. Формулировка с использованием линейной алгебры и “Неразрешимые уравнения”
Истинная красота метода наименьших квадратов проявляется, когда мы переписываем это, используя язык матриц и векторов, то есть линейную алгебру.
Предполагая, что все точки данных идеально лежат на прямой $y = c + dx$, мы получаем следующие $n$ уравнений:
$$ \begin{cases} c + d x_1 = y_1 \\\\ c + d x_2 = y_2 \\\\ \vdots \\\\ c + d x_n = y_n \end{cases} $$Выражая это в матричной форме, получаем:
$$ \begin{bmatrix} 1 & x_1 \\ 1 & x_2 \\ \vdots & \vdots \\ 1 & x_n \end{bmatrix} \begin{bmatrix} c \\ d \end{bmatrix}
\begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} $$
Мы записываем это просто как $A\mathbf{x} = \mathbf{b}$. Здесь,
- $A$ — это $n \times 2$ Матрица плана (Design Matrix)
- $\mathbf{x} = \begin{bmatrix} c \\\\ d \end{bmatrix}$ — это вектор параметров, который мы хотим найти
- $\mathbf{b}$ — это вектор целевой переменной наблюдаемых значений
Когда данные имеют дисперсию (3 или более точек не лежат на одной прямой), не существует решения $\mathbf{x}$, которое идеально удовлетворяет этому уравнению $A\mathbf{x} = \mathbf{b}$. То есть система уравнений несовместна.
4. Геометрическая перспектива: Пространство столбцов и ортогональная проекция
Что геометрически означает, что уравнение $A\mathbf{x} = \mathbf{b}$ не может быть решено?
Умножение матрицы $A$ на вектор $\mathbf{x}$ означает создание линейной комбинации каждого вектора-столбца матрицы $A$. Пространство, созданное всеми возможными линейными комбинациями $A$, называется пространством столбцов $A$ и записывается как $C(A)$.
$$ A\mathbf{x} \in C(A) $$Отсутствие решения означает, что вектор $\mathbf{b}$ лежит вне этого пространства столбцов $C(A)$.
То, что мы ищем, — это не идеальное решение, а вектор в пределах $C(A)$, который находится как можно ближе к $\mathbf{b}$. Назовем его $A\hat{\mathbf{x}}$. В это время расстояние (в квадрате) между вектором $\mathbf{b}$ и $A\hat{\mathbf{x}}$ минимизируется. Это в точности метод наименьших квадратов.
Геометрически точка, дающая кратчайшее расстояние от определенной точки $\mathbf{b}$ в пространстве до определенной плоскости $C(A)$, есть не что иное, как основание перпендикуляра, опущенного из $\mathbf{b}$ на $C(A)$. Это называется ортогональной проекцией.
Если пусть вектор ошибки будет $\mathbf{e} = \mathbf{b} - A\hat{\mathbf{x}}$, условием кратчайшего расстояния является то, что “вектор ошибки $\mathbf{e}$ ортогонален пространству столбцов $C(A)$”.
Быть ортогональным пространству столбцов $C(A)$ означает быть ортогональным всем векторам-столбцам матрицы $A$. Это означает, что вектор ошибки $\mathbf{e}$ принадлежит левому нуль-пространству транспонированной матрицы $A^T$ матрицы $A$. То есть,
$$ A^T \mathbf{e} = \mathbf{0} \quad (\text{Условие ортогональности}) $$5. Вывод нормального уравнения
Подставим $\mathbf{e} = \mathbf{b} - A\hat{\mathbf{x}}$ в приведенное выше условие ортогональности.
$$ A^T (\mathbf{b} - A\hat{\mathbf{x}}) = \mathbf{0} $$$$ A^T \mathbf{b} - A^T A \hat{\mathbf{x}} = \mathbf{0} $$Перегруппировав это, мы получим следующее чрезвычайно важное уравнение.
$$ A^T A \hat{\mathbf{x}} = A^T \mathbf{b} \quad (\text{Нормальное уравнение}) $$Это уравнение называется нормальным уравнением. Исходное $A\mathbf{x} = \mathbf{b}$ не имело решения, но это нормальное уравнение, умноженное на $A^T$ слева с обеих сторон, всегда имеет решение. Более того, если векторы-столбцы $A$ линейно независимы, $A^T A$ становится обратимой (имеет обратную матрицу), и оптимальное решение $\hat{\mathbf{x}}$ однозначно определяется следующим образом:
$$ \hat{\mathbf{x}} = (A^T A)^{-1} A^T \mathbf{b} $$Эта формула — один из самых красивых результатов в статистике и машинном обучении. Вы можете прийти к этому выводу исключительно через геометрическую концепцию ортогональности без использования математического анализа.
flowchart LR
b["Вектор b"] -->|"Ортогональная проекция"| p["Вектор проекции p = A x_hat"]
p --> C["Пространство столбцов C(A)"]
b -->|"Вектор ошибки e"| p
e["e = b - A x_hat"] -.->|"Ортогонально"| C
6. Пример реализации на Python
Давайте на самом деле вычислим это с помощью программы, а не только в теории. Используя NumPy, библиотеку численных вычислений на Python, вы можете реализовать нормальное уравнение очень легко.
| |
Запуск этого кода вычисляет точку пересечения и наклон прямой, которая наилучшим образом соответствует заданным точкам данных. За кулисами вычисление матрицы, полученное ранее, выполняется в точности так, как есть.
7. Заключение и дальнейшее развитие
Метод наименьших квадратов — самый мощный и стандартный метод оценки параметров модели на основе данных. Используя знания математического анализа, его можно вывести как “точку, где градиент функции ошибки становится равным 0”, но при понимании его с точки зрения линейной алгебры как “ортогональной проекции на пространство столбцов”, красота его математической структуры выделяется.
Этот метод не ограничивается простой подгонкой прямой (простая регрессия). Добавляя такие члены, как $x^2, x^3$, к столбцам матрицы плана $A$, его можно естественным образом расширить до полиномиальной регрессии, а также его можно развить в взвешенный метод наименьших квадратов, который взвешивает важность каждой точки данных.
В качестве первого шага к приближению к истине, стоящей за данными, существенное понимание метода наименьших квадратов имеет неизмеримую ценность.
