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

Одномерная линейная регрессия - это один из простейших алгоритмов, который предсказывает результат, когда для данных существует только одна функция.

Сначала представим модель с обозначениями,

x = входные данные / функции

y = выходные данные

м = нет. входных данных в наборе обучающих данных

Training set → Learning Algorithm → h (hypothesis function)

Эта функция гипотезы затем производит вывод для входа x,

Это также может быть записано в этой форме, которая представляет функцию наклона в математике,

где y hat - прогнозируемый результат

w и b - параметры

x - заданные входные данные

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

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

Функция затрат или убытков

Функция стоимости используется, чтобы решить, как выбрать параметры, чтобы получить наилучшее соответствие.

Здесь используется функция потерь по методу наименьших квадратов.

Чтобы минимизировать ошибку функции потерь, мы должны найти минимальные параметры, которые вызывают наименьшую ошибку.

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

Чтобы упростить функцию стоимости, предположим, что

И функция потерь становится,

Если учесть, что параметр = 1, то вход x равен выходу y. Следовательно, функция стоимости равна 0.

В этом особом случае потери будут равны нулю.

Теперь предположим, что параметр = 0,5, тогда график будет выглядеть так,

Функция потерь будет,

Сходным образом,

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

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

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

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

Предположим, у нас есть два параметра в модели. Присвоим параметрам разные значения и найдем соответствующие функции потерь. С полученными значениями параметров и величин потерь построим график (3D). График выглядит так:

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

Математически приведенный ниже алгоритм можно использовать для поиска точки минимума.

Приведенный ниже расчет повторяется до схождения:

На каждой итерации необходимо одновременно обновлять параметры. Нравится,

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

И уравнение выглядит так:

Повторять до схождения:

Для положительного наклона глобальный минимум можно найти по формуле

Для отрицательного наклона мы можем найти глобальный минимум по формуле

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

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

Для функции потерь линейной регрессии (которая является квадратичной функцией) график, который мы получаем, всегда выпуклый (чаша направлена ​​вверх). У выпуклой фигуры есть только одна точка минимума. Следовательно, эта точка минимума является как локальным минимумом, так и глобальным минимумом.

Это означает, что откуда бы мы ни выбрали точку и не начали спуск, мы всегда достигаем одной и той же точки минимума.

Примечание. Эта статья является частью # 30DaysOfData, и ее содержание является моими собственными заметками из Курса машинного обучения Andrew NG.