Внутри ИИ

Линейная регрессия: функция гипотез, функция стоимости и градиентный спуск - все, что вам нужно знать!

Математика и теория, лежащие в основе самой известной техники контролируемого обучения

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

Обучение с учителем: -

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

Поскольку нас беспокоит контролируемое обучение, я буду говорить только об этом. Позвольте мне попытаться объяснить на самом простом примере. Предположим, вы много лет занимаетесь недвижимостью. Вы можете легко предсказать цену дома / собственности, просто рассмотрев несколько характеристик этого дома / собственности, таких как площадь земли, район, количество спален (в случае домов) и т. Д. Вы хотите сделать перерыв, но не делаете этого. не хочу останавливать свой бизнес. Вы нанимаете помощника, но он ничего не знает о ценах на разные дома / недвижимость. Что ты будешь делать? Лучший подход - научить вашего помощника правильно предсказывать цену дома / собственности, чтобы получать максимальную прибыль при покупке и последующей продаже. Но как вы его научите? Об этом не стоит беспокоиться. Просто возьмите с собой помощника при продаже или покупке недвижимости примерно на месяц, и через месяц он будет неплохо предсказывать. Но как он узнал? Помните, что существует связь между характеристиками дома / собственности и их ценой. Принимая во внимание особенности дома / собственности, а затем наблюдая за тем, как вы покупаете этот дом / собственность по определенной цене, ваш помощник собирал данные о различных домах и особенностях вместе с их ценами. Это центральная концепция контролируемого обучения (линейная регрессия). Сначала вы передаете некоторые данные программе и вывод для этих данных, чтобы обучить, а затем, после обучения, программа сама предсказывает вывод.

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

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

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

Для простоты мы сначала рассмотрим линейную регрессию только с одной переменной: -

Представление модели: -

Чтобы описать проблему контролируемого обучения немного более формально, наша цель состоит в том, чтобы с учетом обучающей выборки изучить функцию h: X → Y, чтобы h (x) был «хорошим» предсказателем для соответствующего y. h (x) известен как функция гипотезы.

Теперь картина может показаться вам ясной. Наша основная задача - разработать функцию h.
Мы пытаемся добиться того, чтобы построить все наборы данных на графике с входными переменными на независимой оси и выходными данными на оси Y или вторичной оси. Таким образом, у нас было бы прямое построение графика от ввода к выводу. Например:-

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

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

Одно из предсказаний - это красная линия выше. Обратите внимание, что я попытался провести линию таким образом, чтобы она была близка по отношению ко всем точкам. Поэтому нам нужно выбрать такую ​​линию, которая идеально соответствует нашему набору данных.



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

Я вошел в зону = 50, и она предсказала для нас цену примерно 580 долларов. Что, согласно нашему обучающему набору, является разумной ценой. Так как же научить компьютер предсказывать линию, соответствующую вашему набору данных? Давайте погрузимся в математику: -

Функция гипотезы: -

Функция гипотезы для этого случая: -
hθ = θ + θ1x

Не расстраивайтесь, если вы не знакомы с этим уравнением. Позвольте мне погрузиться в математику, стоящую за этим.
Я подумал, что прежде чем рассматривать формулу, вы должны иметь ссылку на различные термины, используемые в ней.
Возможно, вы знакомы с формулой для прямой, использующей наклон и точку пересечения оси y.
y = mx + b

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

Итак, theta1 - это наклон (m), а theta0 - это точка пересечения (b). Теперь вы познакомились с функцией гипотезы и с тем, почему мы используем эту функцию [конечно, мы хотим вписать линию в наш график, и это уравнение линии].

Функция квадратичной стоимости ошибки: -

На этом этапе наша основная цель - минимизировать разницу между линией и каждой точкой. Это делается путем настройки значений наклона линии (theta1) и точки пересечения оси Y (theta0) линии. Итак, мы должны найти theta0 и theta1, для которых линия имеет наименьшую ошибку.
Что я имею в виду под минимальной ошибкой? Давайте рассмотрим наш вышеупомянутый прогноз.

Стрелки показывают расстояние каждой точки от линии. Когда мы суммируем разницу для всех точек, это дает нам ошибку в этой строке. Поэтому мы должны минимизировать ошибку, чтобы получить оптимальное решение. Что мы можем сделать, так это переместить линию немного выше, ниже, изменить угол, настроив значения theta0 и theta1. Но не беспокойтесь об этом, наша программа сделает за нас сложную задачу.

Для этого мы будем использовать фиктивные значения для theta0 и theta1, поместить их в нашу функцию гипотезы и вычислить стоимость для этой строки. Повторяйте этот шаг, пока не достигнете минимальной стоимости. Как мы узнаем, какова минимальная стоимость? Я подхожу к этому, но сначала взгляну на функцию, которая вычисляет стоимость.

Напомним нашу таблицу для разных цен на дом.

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

Итак, мы вычитаем каждую точку из линии. Точку на линии, которая находится точно ниже определенной точки, можно найти, указав значение x в уравнении линии. [Если вы не знаете об уравнении линии, сначала рассмотрите его, просмотрев некоторые учебные пособия в Интернете. .]

Теперь просуммируйте все члены, используя сигму суммирования. Предел суммирования значений равен количеству баллов, и каждая точка относится к конкретному примеру обучения, поэтому наше i варьируется от 1 до m. Теперь поменяйте местами функции y и гипотезы и возьмите квадрат для учета отрицательных значений. Разделите сумму на 2 м, чтобы уменьшить стоимость. Это сделано для упрощения вычислений для компьютера. Этой частью также можно пренебречь.

У вас есть функция ошибок. Помните, что я сказал о настройке значений theta0 и theta1. Вот как мы будем рассчитывать стоимость для каждого значения theta0 и theta1.

Что ж, это приблизилось к 10-минутному чтению (кстати, я отредактировал его, когда закончил писать эту статью, прежде чем разделить ее на две части :-), и я хотел бы разделить ее на две части, чтобы дать вам некоторую паузу.



Большое спасибо за чтение. Надеюсь, эта статья поможет вам понять эту концепцию.

С уважением,

Махьяр Али,

Получите доступ к экспертному обзору - Подпишитесь на DDI Intel