Стохастический градиентный спуск увеличивает функцию стоимости - PullRequest
0 голосов
/ 16 мая 2018

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

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

Являются ли приращения функции стоимости ожидаемыми вСтохастический градиентный спуск?

Ответы [ 3 ]

0 голосов
/ 08 октября 2018
  • Шумная сходимость относительно.к функции потерь часто является следствием стохастического градиентного спуска.

  • Попробуйте использовать Minibatch Gradient Descent со значительным размером партии .График потерь сглаживается, так как ожидается, что средние градиенты на разных изображениях приведут в оптимальном направлении в пространстве весов.

0 голосов
/ 06 мая 2019

Stochastic Gradient Descent выполняет итерацию в пакетах обучающих данных путем вычисления градиента ошибок на выходных узлах и обратного распространения этих ошибок по сети со скоростью обучения <1. Это функция частичной ошибки, собранная только попакетное подмножество, а не весь тренировочный набор.Шаг в пространстве веса, вероятно, уменьшит ошибку в потере партии (фактически гарантированно, если скорость обучения достаточно мала), но это не означает, что это уменьшит функцию потери в течение всей тренировкизадавать.Нет никаких гарантий, что один шаг в пространстве веса улучшит совокупную потерю во всем тренировочном наборе - это полностью зависит от данных.</p>

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

(рекомендуется использовать оптимизатор, например Адам, который будет динамически адаптировать скорость обучения, чтобы управлять этим компромиссом для вас).

0 голосов
/ 16 мая 2018

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

...