Все ML-инженеры знают о линейной регрессии. Это та самая база, с которой начинает изучение алгоритмов любой новичок. Но вот парадокс: даже многие «прожженные» инженеры не всегда до конца понимают ее истинную работу под капотом.

А именно — какая у «линейки» статистическая связь с Методом Максимального Правдоподобия (MLE) и почему она так сильно «любит» MSE и нормальное распределение. В этой статье мы как раз в этом и разберемся.

Освежаем в памяти Линейную регрессию

Линейная регрессия это как “Hello world” в мире классического машинного обучения.
Ее задача — предсказать целевую переменную (таргет) y как линейную комбинацию признаков (фичей) X.

\hat{y} = w_0 + w_1x_1 + w_2x_2 + ... + w_nx_n

Что бы все это работало модель делает два довольно сильных (и почти всегда невыполнимых на практике) предположения:

  • Линейность: Каждый признак x_i влияет на таргет y линейно

  • Независимость: Признаки влияют на таргет независимо друг от друга.

Плюсы:

  • Простота и интерпретируемость: Модель легко объяснить. «Увеличиваем фичу x_1на 1, таргет y меняется на w_1».

  • Скорость и минимум гиперпараметров: В ее классическом виде она не требует подбора гиперпараметров и имеет аналитическое решение. А с градиентным спуском обычно 1 гиперпараметр.

Минусы:

  • Наивность: На практике предположения о линейности и независимости почти никогда не выполняются. Задачи нелинейны (цена квартиры зависит не только от района И метро, но и от их комбинации), а признаки часто зависят друг от друга.

  • Проблема нелинейности: Эту проблему можно "поправить", если вручную добавлять нелинейные признаки (x^2, x_1 \cdot x_2, log(x)), но это уже ручная работа.

Причина по которой используют не аналитическое решение, а только с градиентными методами, уже другая история

Метод максимального правдоподобия (Maximum Likelihood Estimation)

Важное уточнение, в любой ситуации с данными и прогнозами, всегда нужно держать в голове что есть какой - то шум \epsilon_i. Обычно туда входит все то, что мы не учли при прогнозе.

В случае линейки это выглядит вот так y_i = \mathbf{w}^T \mathbf{x}_i + \epsilon_i.

А теперь — главное предположение, на котором держится вся классическая регрессия
Мы предполагаем, что этот шум \epsilon_i распределен нормально.

То есть, мы верим, что ошибки \epsilon_i независимы, в среднем равны нулю

А раз линейное преобразование (y_i = (w_0 + w_1x_i) + \epsilon_i) — это просто сдвиг и масштабирование, а шум — «нормальный», то и наш таргет y_i тоже распределен нормально (вокруг предсказанной линии)

Откуда растут ноги?

У нас есть данные (X, Y) и крутое предположение о нормальности шума.
Теперь нам нужно каким - то образом подобрать лучшие параметры w_0 и w_1.

Тут-то нам и нужен "Метод максимального правдоподобия"

Этот метод позволяет найти такие параметры w, при которых вероятность(правдоподобие) наблюдать именно наши данные (X, Y) была бы максимальной.

Записывается это как функция правдоподобия L(\mathbf{w} | X, Y)

L(\mathbf{w} | X, Y) = P(X, Y | \mathbf{w})

Так как мы считаем, что все наши наблюдения (y_i) независимы друг от друга, мы можем расписать это «общее» правдоподобие как произведение правдоподобий для каждого отдельного объекта:

L(\mathbf{w} | X, Y) = \prod_{i} P(x_i, y_i | \mathbf{w})

Трюк с логарифмом

Тут возникает проблемка. Искать производную произведения очень тяжело и дорого. По этому мы делаем хитрый трюк, нам не нужно само значение, нам нужна максимизация. А argmax функции совпадает с argmax-ом логарифма этой функции, потому что логарифм - монотонное преобразование.

И по свойству логарифмов мы можем заменить произведение суммой логарифмов, а производную от суммы искать сильно легче)

Это называется Логарифм Правдоподобия (Log-Likelihood):

\log L(\mathbf{w} | X, Y) = \sum_{i} \log P(x_i, y_i | \mathbf{w}) \rightarrow \max

Так причем тут MSE

Чтобы это понять нам придется расписать по шагам все преобразования ММК.

Давайте распишем, чему равно P(x_i, y_i | \mathbf{w}). Выше мы предположили, что y_i распределен нормально. Вероятность P(y_i | ...)— это просто формула плотности нормального распределения

P(y_i | x_i, \mathbf{w}) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(y_i - (w_0 + w_1x_i))^2}{2\sigma^2}\right)

Теперь подставляем это в нашу формулу общего правдоподобия (произведение):

L(w_0, w_1, \sigma^2; Y) = \prod_{i=1}^{n} \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(y_i - (w_0 + w_1x_i))^2}{2\sigma^2}\right)

Не забываем про трюк с логарифмом, применяем логарифм на всю функцию, и в итоге получим:

\ell(\mathbf{w}) = -\frac{n}{2}\log(2\pi) - \frac{n}{2}\log(\sigma^2) - \frac{1}{2\sigma^2}\sum_{i=1}^{n}(y_i - (w_0 + w_1x_i))^2

Финал: Максимизация правдоподобия

Мы хотим найти w_0 и w_1, которые максимизируют эту штуку \ell(\mathbf{w}).
Чтобы найти точку максимума (или минимума) функции, нужно взять ее производную и приравнять к нулю
В нашем случае мы ищем argmax по \mathbf{w}, поэтому мы берем частные производные по w_0 и w_1 (или просто по вектору \mathbf{w}), то есть те члены где нет w производная будет равна нулю.

Что мы видим глядя на нашу фунцию?

  • Первый член (-\frac{n}{2}\log(2\pi)): Это константа. На поиск максимума не влияет. Выкидываем.

  • Второй член (-\frac{n}{2}\log(\sigma^2)): Это тоже константа (мы ищем \mathbf{w}, а не \sigma). Выкидываем.

  • Третий член (-\frac{1}{2\sigma^2}\sum_{i=1}^{n}(y_i - (w_0 + w_1x_i))^2): А вот он зависит от наших \mathbf{w}!

Смотрите: \frac{1}{2\sigma^2} — это просто положительная константа. Значит, чтобы максимизировать все выражение (которое стоит со знаком «минус»), нам нужно минимизировать то, что осталось:

\sum_{i=1}^{n}(y_i - (w_0 + w_1x_i))^2

У нас получилась SSE - сумма квадратов ошибок.
А минимизация SSE это тоже самое что и минимизация MSE так как MSE = \frac{1}{n} SSE

Вот и вся связь. Минимизировать MSE — это математически то же самое, что максимизировать правдоподобие (MLE), при условии, что мы изначально предположили, что ошибки в наших данных распределены по Гауссу (нормально).

Заключение

Буду рад выслушать ваши замечания, предложения и конструктивную критику. Также приглашаю подписаться на мой телеграм-канал, где я делюсь своими знаниями и обзорами в области машинного обучения.

Комментарии (0)