Как я могу узнать, какой тип градиентного спуска использовать? - PullRequest
0 голосов
/ 21 июня 2019

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

Нет кода, это просто вопрос.

1 Ответ

1 голос
/ 21 июня 2019

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

  • Пакетный градиентный спуск : Он обрабатывает все обучающие примеры для каждой итерации градиентного спуска. Но этот метод требует больших вычислительных затрат, когда число обучающих примеров велико и обычно не является предпочтительным.
  • Стохастический градиентный спуск : он обрабатывает один обучающий пример в каждой итерации. Здесь параметры обновляются после каждой итерации. Этот метод быстрее, чем метод пакетного градиентного спуска. Но это увеличивает нагрузку на систему, когда количество обучающих примеров велико за счет увеличения количества итераций.
  • Мини-пакетный градиентный спуск : Алгоритм мини-партии - это наиболее удобный и широко используемый алгоритм, который дает точные и быстрые результаты с использованием серии m обучающих примеров. В алгоритме мини-пакетирования вместо использования полного набора данных в каждой итерации мы используем набор m обучающих примеров, называемых batch, для вычисления градиента функции стоимости. Типичные размеры мини-партий варьируются от 50 до 256, но могут различаться для разных применений.

Существуют различные другие алгоритмы оптимизации, кроме вариантов градиентного спуска, такие как adam, rmsprop и т. Д.

Какой оптимизатор мы должны использовать?

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

Адам хорошо работает на практике и превосходит другие адаптивные методы.

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

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

Надеюсь, это поможет вам решить, какой из них использовать для вашей модели.

...