Английское определение слова «оптимизация» — это «действие по наилучшему или наиболее эффективному использованию ситуации или ресурса». Точно так же в машинном обучении (ML) и искусственном интеллекте (AI) идея повышения производительности модели одна и та же.

Но как проверить производительность модели? Ответом на этот вопрос являются Функции стоимости.

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

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

Оптимизация градиентного спуска (GD)

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

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

Понимание градиентного спуска через аналогии

Лучшей аналогией для описания БГ является представление о нем как о «спуске на дно долины».

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

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

Как это работает?

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

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

После вычисления градиента алгоритм регулирует значение параметров, используя следующее уравнение:

ОБНОВЛЕННЫЙ ПАРАМЕТР = СТАРЫЙ ПАРАМЕТР — (LEARNING_RATE * GRADIENT)

где :

  • Скорость обучения. Представляет размер шага, который алгоритм использует для настройки значения параметра, указывающего на скорость в GD.
  • Градиент — указывает направление самого крутого спуска. Математически это частная производная первого порядка, соответствующая обновляемому параметру.

Значение скорости обучения

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

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

Варианты градиентного спуска

Существует три популярных варианта GD, которые различаются в зависимости от объема обучающих данных, используемых для обновления параметров. Они есть :

  1. Пакетный градиентный спуск
  2. Стохастический градиентный спуск
  3. Мини-пакетный градиентный спуск

Пакетный градиентный спуск (Пакетный GD)

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

Стохастический градиентный спуск (SGD)

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

Мини-пакетный градиентный спуск (Mini-Batch GD)

Этот метод объединяет в себе лучшее из обоих методов — Batch GD и SGD. Он разбивает все данные на небольшие партии и проверяет одну партию за раз и обновляет коэффициенты модели.

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

Резюме

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

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

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

Оставайтесь любопытными!

Ссылка :

  1. https://stepupanalytics.com/gradient-descent-relating-it-with-real-life-analogies/
  2. https://chelseatroy.com/2017/02/07/machine-learning-intuition-cost-function-optimization/
  3. https://builtin.com/data-science/gradient-descent

Первоначально опубликовано на сайте Бумеранг аналитики.