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

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

Функция затрат

Вот интересное определение функции стоимости, которую я нашел в отношении науки о данных.

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

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

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

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

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

Что такое градиентный спуск?

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

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

2. Если альфа (α) слишком велика, градиентный спуск может не сойтись и выйти за минимум.

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

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

Отказ от градиентного спуска

  1. Необходимо установить скорость обучения (альфа α) для вашей обучающей выборки.
  2. Требуется много итераций, чтобы сходиться к локальным оптимумам.
  3. Сходимость может занять некоторое время, чтобы сойтись или не сойтись вообще, если правильная скорость обучения (альфа α) не установлена.

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

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

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

сравнивая нормальное уравнение с градиентным спуском, вы видите:

  • Нет необходимости устанавливать какое-либо начальное значение θ или устанавливать значение для (альфа α).
  • Нет необходимости в итерациях

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

Выбор между градиентным спуском и нормальным уравнением

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

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

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

Резюме

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

Ваше здоровье.