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


9

Я пытаюсь понять оптимизацию градиентного спуска в алгоритмах ML (машинного обучения). Я понимаю , что есть стоимость функция, где цель состоит в том, чтобы свести к минимуму ошибки у - у . В случае , когда вес ш 1 , ж 2 оптимизируются , чтобы дать минимальную ошибку, и используются в частных производных, она изменяется как и на каждом шаге или это сочетание (например, в течение нескольких итераций только является изменилось, и когда больше не уменьшает ошибку, производная начинается сY^-Yвес1,вес2w1w2w1w1w2)? Приложение может быть моделью линейной регрессии, моделью логистической регрессии или алгоритмами повышения.

Ответы:


10

Градиентный спуск обновляет все параметры на каждом шаге. Вы можете увидеть это в правиле обновления:

вес(T+1)знак равновес(T)-ηе(вес(T)),

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

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

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

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


Таким образом, алгоритм может использовать различные комбинации, такие как увеличение w1, уменьшение в w2зависимости от направления от частной производной для достижения локальных минимумов, и просто для подтверждения того, что алгоритм не всегда будет давать глобальные минимумы?
Pb89

и помогает ли частная производная объяснить, насколько нужно увеличить или уменьшить w1и / w2или что достигается за счет скорости / сокращения обучения, в то время как частная производная обеспечивает только направление спуска?
Pb89

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

Если величина также определяется градиентом, то какова роль усадки или скорости обучения?
Pb89

е(Икс)вес(T)η

7

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

На каждой итерации алгоритм будет изменять все веса одновременно на основе вектора градиента. На самом деле градиент - это вектор. Длина градиента равна количеству весов в модели.

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

Вот интересный ответ по алгоритму без градиента

Можно ли обучить нейронную сеть без обратного распространения?


1

Целью градиентного спуска является минимизация функции стоимости. Эта минимизация достигается путем корректировки весов для вашего случая w1 и w2. Вообще таких весов могло быть n .

Градиентный спуск выполняется следующим образом:

  1. инициализировать веса случайным образом.
  2. вычислить функцию стоимости и градиент с инициализированными весами.
  3. Обновление весов. Может случиться, что для некоторых весов градиент равен O, в этом случае эти весы не изменятся после обновления. Например: допустим, градиент равен [1,0], W2 останется неизменным.
  4. проверьте функцию стоимости с обновленными весами, если уменьшение является достаточно приемлемым, продолжите итерации, в противном случае завершите.

при обновлении весов, вес которых (W1 или W2) изменяется, полностью определяется градиентом. Все веса обновляются (некоторые веса могут не меняться в зависимости от градиента).


«если декремент достаточно приемлем, продолжайте итерации, в противном случае завершите», есть ли значение по умолчанию, которое применяется в пакетах python ( sklearn) или R, таких как caret? Это может быть указано пользователем только в созданной вручную функции градиентного спуска?
Pb89

1

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

Проверьте здесь .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.