В этой статье вы узнаете о методах, которые используются для нахождения параметров линии регрессии. Если вы хотите получить статистическую интуицию о линейной регрессии, я рекомендую вам взглянуть на мой предыдущий пост, в котором я бы объяснил регрессию и шаги по поиску параметров линии регрессии.

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

Линейная регрессия

Из приведенного выше рисунка хорошо видно, что по мере увеличения значения x (независимый), y (зависимый) также увеличивается линейно. Это означает, что существует линейная зависимость между x и y. В LR мы пытаемся найти кривую, которая соответствует этим точкам.

По сути, нам нужно подогнать кривую (здесь линия) так, чтобы f, представляющее собой сумму квадратов остатков (разница между фактическим и прогнозируемым значением), было минимальным. . Шаги, которые необходимо выполнить, чтобы найти эту наиболее подходящую линию, объясняются в моем предыдущем рассказе.

С точки зрения машинного обучения это f - функция стоимости, J. То есть всякий раз, когда ваше прогнозируемое значение (y_hat) отличается от фактического значения (y), вы наказываете этот прогноз стоимостью! В конце концов, мы хотим, чтобы наши прогнозы были как можно ближе к реальным значениям.

Функция стоимости J получается путем суммирования квадратов остатков для каждого наблюдения и деления их на количество наблюдений для фиксированных θ и θ . Параметры также называют весами. Они обозначают важность / вес, который мы придаем связанной функции. Предположим, есть три функции: x1, x2, x3 и θ1, θ2, θ3 - соответствующие параметры соответственно. Если θ1 ›θ2, это означает, что мы придаем большее значение функции x1, чем x2.

Стоимость J (w) меняется при изменении параметров (w).

Наша цель - найти пару w = (θ , θ ₁), которая минимизирует функцию стоимости J.

Мы можем найти эти параметры, приравняв частные производные J по параметрам к 0. (Почему? Назовите это)

Градиентный спуск

Альтернативный способ определения этих параметров - градиентный спуск. Градиентный спуск - это итерационный алгоритм. Посмотрим, что делает алгоритм GD.

Ключевой момент, о котором следует помнить, - это «В точке минимума наклон функции стоимости J с res. вес w равен 0.

Схема GD:

  1. Начните с некоторого (θ , θ ₁). Обычно мы начинаем с (0,0)
  2. Продолжайте изменять (θ , θ ₁), пока мы не достигнем минимальной точки.

Давайте разберемся с этим утверждением. Вы бы установили (θ , θ ₁) в некоторую точку, скажем (0,0). Вы подсчитаете, как стоимость J зависит от разрешения. на θ и θ отдельно . Как это делается? Возьмем частные производные от J w.r.t. θ и θ ₁. Это также называется уклоном.

Наклон J в точке (θ , θ ₁) указывает в направлении наиболее крутого подъема. т. е. наклон указывает в направлении, в котором J увеличивается больше всего. Но мы хотим, чтобы наша стоимость J уменьшилась. Итак, мы возьмем направление, противоположное нашей текущей позиции, и обновим нашу новую позицию. (Мы перескакиваем с текущей позиции на новую). Делаем это по всем параметрам. Мы повторяем эту процедуру до тех пор, пока, будем надеяться, не дойдем до минимума.

Кстати, что это за α ( альфа ), привязанное к производной? Это скорость обучения. Скорость обучения говорит о том, насколько большим должен быть наш прыжок. Если вы устанавливаете альфа на малое значение, это означает, что GD делает небольшие шаги для достижения минимума, а если альфа установлено на большое значение, это означает, что ваш алгоритм делает большие шаги при перемещении из одной позиции в другую.

Меньшая скорость обучения обычно требует большого количества итераций, чтобы сойтись. Будьте осторожны при выборе значения альфа, так как вы можете выйти за минимальную точку (отклониться), если скорость обучения высока !!! Для правильного α стоимость будет уменьшаться после каждой итерации. GD начнет делать еще меньшие шаги по мере приближения к точке минимума, поскольку наклон также изменяется в каждой позиции. (Крутизна / наклон касательной, проведенной в текущей позиции, уменьшается по мере приближения GD к минимуму. См. Изображение вверху)

Зачем нам нужен градиентный спуск?

Приравнивая частные производные J по параметрам к 0, мы можем найти точку минимума. Тем не менее, у нас есть GD. Почему ? Потому что в реальной жизни нам придется иметь дело со многими функциями (x1, x2, x3…), и в таких случаях GD дешевле в вычислительном отношении. Более подробную информацию по этому поводу вы можете найти здесь.

Метод нормального уравнения

Параметры также можно найти методом нормального уравнения. Этот метод может дать ответ всего за один шаг, в отличие от GD, который требует многих итераций.

Здесь X - это входная матрица, где каждая строка представляет наблюдение, а каждый столбец представляет функцию (1-й столбец X - это столбец единиц). y - вектор-столбец, где i-я запись имеет значение для зависимой переменной i-го обучающего примера.

В этом методе нам не нужно выбирать скорость обучения. Однако метод нормального уравнения включает в себя обращение матрицы. Поскольку обращение матриц требует больших вычислительных ресурсов, нормальное уравнение не подходит, когда имеется много независимых переменных (характеристик). Следовательно, этот метод можно использовать для тех задач, которые связаны с меньшим количеством функций.

Если вы хотите узнать, как было получено указанное выше уравнение для θ, обратитесь к this. В одной части вывода он использует матричное исчисление. Вы поймете это, даже если не знаете матричного исчисления. Но я предлагаю вам взглянуть на это. Только прочитав эту статью, я узнал, что Матричное исчисление существует!

Надеюсь, теперь у вас есть представление о различных методах, которые используются для поиска параметров линии регрессии. Если вы нашли эту статью полезной, оставьте свою поддержку в виде аплодисментов. А если возникнут сомнения, смело задавайте их в комментариях. Спасибо!