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

Функция стоимости

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

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

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



Понимание концепции градиента полезно для понимания логики алгоритма градиентного спуска. Давайте посмотрим на объяснение концепции стационарной точки в Википедии.

In mathematics, particularly in calculus, a stationary point of a 
differentiable function of one variable is a point on the graph of the function where the function’s derivative is zero.
Informally, it is a point where the function “stops” increasing or decreasing (hence the name).
For a differentiable function of several real variables, a stationary point is a point on the surface of the graph where all its partial derivatives are zero (equivalently, the gradient is zero).

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

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

Давайте посмотрим на это визуально, чтобы лучше понять, что это значит. Как мы упоминали ранее, уменьшение градиента - это уменьшение производной (наклона) точек, которые мы имеем на каждой итерации. Чтобы определить, куда идти, подставьте его в формулу, как показано на изображении. Если наклон положительный, значение тета уменьшается; Если он отрицательный, он увеличивается.

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

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

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

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

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

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



Ссылки