Как новичок в области машинного обучения, самый первый метод, с которым вы столкнетесь, — это линейная регрессия. Причина этого, на мой взгляд, в том, что изучение линейной регрессии — очень удобный способ познакомиться с машинным обучением.
Итак, начнем!!!

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

Что такое линейная регрессия?

Линейная регрессия — это статистический метод обучения под наблюдением, позволяющий прогнозировать количественную переменную путем формирования линейной зависимости с одним или несколькими независимыми признаками.

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

Чтобы определить нотацию для будущего использования, мы будем обозначать x(i) «входными» переменными (годами опыта в этом примере), также называемыми входными характеристиками, а y(i) обозначать «выходную» или целевую переменную, которую мы используем. пытаясь предсказать (доход).

x₁, x₂… xn = признаки/независимые переменные
y = целевая переменная
n = количество признаков в наборе обучающих данных
m = количество строк в наборе обучающих данных
(xᵢ , yᵢ) = Одна запись в обучающем наборе данных
h(x) = y : {h(x) параметризован на θ}

Начнем с примера. Как научиться предсказывать доход человека в зависимости от многолетнего опыта и количества имеющихся у него документов об образовании?

Определение гипотезы

Чтобы выполнить контролируемое обучение, мы должны решить, как мы будем представлять функции или гипотезы. Цель регрессионного моделирования состоит в том, чтобы использовать эти независимые от x измерения для определения математической функции h(x), которая описывает взаимосвязь между входными параметрами и выходными:

Доход = h (годы опыта, количество образовательных квалификаций)

В качестве примера предположим, что мы намерены аппроксимировать y как линейную функцию от x, h.(x). Поскольку корреляция линейная, построим уравнение этой функции/гипотезы.

Гипотеза: h(x⁽ⁱ⁾) = (x⁽ⁱ⁾)ᵀ θ или θᵀ(x⁽ⁱ⁾)

Каков наилучший способ выбрать или изучить параметры из обучающего набора?
Для примеров, которые мы использовали для обучения, один подход, который имеет смысл, состоит в том, чтобы приблизить h(x) к y. Чтобы формализовать это, мы определяем функцию стоимости, чтобы понять, насколько мы далеки от фактического ответа. Эта функция называется функцией «стоимости», поскольку она вычисляет общую ошибку или стоимость между нашей оценкой и целевым числом.

Метод наименьших средних квадратов (LMS)

Метод наименьших средних квадратов также известен как правило обучения Уидроу-Хоффа. Помимо использования в машинном обучении, этот метод нашел практическое применение в таких разнообразных областях, как наушники с шумоподавлением, контроль артериального давления и устранение эха при телефонных разговорах на большие расстояния. Этот подход определяет линию, которая лучше всего соответствует наблюдаемым данным, путем минимизации суммы квадратов вертикальных отклонений между каждой точкой данных и линией (вертикальное отклонение точки равно нулю тогда и только тогда, когда она находится точно на подобранной линии) . Отмены между положительными и отрицательными числами отсутствуют, поскольку отклонения сначала возводятся в квадрат, а затем суммируются. Мы хотим выбрать θ так, чтобы минимизировать J(θ). Чтобы сделать это, давайте воспользуемся процессом поиска, который начинается с «начальной оценки» и постоянно модифицируется, чтобы уменьшить J(), пока мы не остановимся на значении .

Мы хотим выбрать θ так, чтобы минимизировать J(θ). Для этого давайте воспользуемся алгоритмом search
, который начинается с «начальной оценки» для θ и постоянно изменяет θ, чтобы уменьшить J(θ), пока, в идеале, мы не остановимся на значении θ, которое минимизирует J(θ) .

Градиент приличный

Все приводят одну аналогию, а именно, спрашивают, что бы сделали, если бы вдруг оказались в ловушке на вершине горы Эверест и должны были спуститься к основанию. Но на самом деле, с математической точки зрения, что это за проблема и как мы можем ее решить?

Честно говоря, градиент — это причудливое название наклона, который определяется частными производными функции стоимости по ее параметрам (θ). Следовательно, мы выполняем спуск по направлению градиента; поэтому он называется Градиентный спуск.

Хотя… Наклон и градиент — это не одно и то же

Как правило, слово «наклон» применяется, когда рассматриваются только две переменные.
Наклон — это фактическая касательная или производная кривой, образованной функцией, соединяющей две переменные. Он количественно определяет скорость изменения функции f(x) по отношению к x.

Таким образом, наклон = ∂𝑓/𝑥

Градиент похож на наклон, за исключением того, что функция, скорость изменения которой мы хотим измерить, зависит от более чем одной переменной, т. е. f = f(x,y). Другими словами, f является многомерным.

𝑓=∂𝑓/∂𝑥 î + ∂𝑓/∂𝑦 ĵ

Обратите внимание, что градиент возвращает векторное значение, тогда как наклон возвращает скалярное значение.

Таким образом, наклон является частным случаем оператора градиента, действующего на одномерную функцию.

Объяснение: мы понимаем направление из частной производной функции стоимости. Следовательно, если частная производная/градиент отрицательна, то наклон идет вниз, и мы должны продолжать движение в этом направлении. Кроме того, если частная производная/градиент положительна, то наклон вверх, и мы должны двигаться в противоположном направлении. Чтобы понять это, если наклон отрицательный, мы хотим, чтобы параметр увеличивался, а если наклон положительный, мы хотим, чтобы параметр уменьшался, чтобы достичь минимума.

Скорость обучения:

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

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

Получив градиент и скорость обучения, мы движемся в этом направлении, пересчитываем градиент в новом месте и повторяем процедуру.

Правило обновления:

Если наклон отрицательный, второй член станет положительным (из-за знака минус), и в результате значение параметра возрастет. Следовательно, тета смещается вправо, когда наклон отрицательный. Если наклон положителен, тета упадет и немного сдвинется влево. Когда наклон равен нулю, второй компонент становится равным нулю, а значение тета не изменяется.

Теперь давайте решим частную производную функции стоимости и подставим ее в правило обновления.

Подставив уравнение (2) в уравнение (1), мы упростим правило обновления до приведенного ниже уравнения обновления.

Мы продолжаем повторять шаг обновления для каждого обучающего примера (#m обучающих примеров), пока функция стоимости не достигнет стабильного минимального значения.

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

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

Локальный минимум или глобальный минимум??

Хорошо, казалось бы, история Gradient Descent до этого момента была довольно радостной. Ну, позвольте мне испортить это для вас. Теперь в градиентном спуске инициализация параметров всегда случайна. Таким образом, вполне вероятно, что мы можем в конечном итоге начать нашу тету с точки, из которой она никогда не сможет достичь глобального минимума. Он может застрять в локальном минимуме. Страшно прямо!!

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

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

Нормальные уравнения

Градиентный спуск дает один из способов минимизации J(θ). Давайте поговорим об альтернативном подходе, на этот раз выполняя минимизацию явно и избегая итеративного алгоритма. В этом методе мы минимизируем J(θ), явно взяв его производные по θj и установив их равными нулю. Это позволило бы нам сделать это, не составляя кучу алгебры и томов производных матриц.

Учитывая обучающий набор, определите матрицу плана X как матрицу nXd, которая содержит входные значения обучающих примеров в своих строках. Пусть Y будет n-мерным вектором, который имеет все целевые значения обучающего набора.

Теперь, поскольку гипотеза такова: h (x⁽ⁱ⁾) = (x⁽ⁱ⁾)ᵀ θ; мы можем легко убедиться, что:

Наконец, чтобы минимизировать J(θ), найдем его производную по θ и приравняем ее к нулю. Для минимизации J(θ) приравняем его производные к нулю и получим нормальные уравнения:

Установив приведенное выше уравнение в ноль, мы получим:

Таким образом, значение θ, которое минимизирует J(θ), задается уравнением в замкнутой форме. Теперь нам не нужно выполнять итеративное обновление параметров, а нужно выполнить одноэтапный расчет для определения θ.

Хотя есть преимущества и недостатки метода нормального уравнения.

Преимущества:
1) Подход с нормальным уравнением не требует итерации, и нет проблем со сходимостью.
2) Подход с нормальным уравнением не требует начального выбора для α.

Недостатки:
1) Размер вектора признаков равен n, вычисление инверсии имеет сложность (n³). Следовательно, когда n больше, метод нормального уравнения работает медленнее.

Например, когда количество признаков n очень мало, n‹1000, быстрее использовать нормальный метод для определения θ. Но когда n>10000 или даже x>10⁶, то, возможно, самое время перейти от нормального решения к градиентному методу.

Закрытие

Надеюсь, вам понравился этот подробный обзор линейной регрессии.

Дайте мне знать, что вам больше всего нравится, и что еще я могу сделать, чтобы улучшить его.

Свяжитесь со мной:

LinkedIn: https://www.linkedin.com/in/ayushisharma97/