Цель градиентного спуска

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

Из приведенного выше графика видно, что цель алгоритма градиентного спуска состоит в том, чтобы обнаружить «x» с конечной целью, при которой «y» является минимальным. «y» здесь известна как целевая функция, над которой работает алгоритм градиентного спуска, чтобы перейти к абсолютной нижней точке.

Алгоритм градиентного спуска

Я использую задачу линейной регрессии, чтобы прояснить алгоритм градиентного спуска. Цель регрессии — ограничить сумму квадратов остатков. Мы понимаем, что функция достигает своего базового значения, когда наклон равен 0. Используя эту процедуру, мы решили проблему линейной регрессии и узнали весовой вектор. Аналогичную проблему можно решить с помощью процедуры градиентного спуска.
Градиентный спуск — это итерационный алгоритм, который начинается с неправильной точки на функции и постепенно спускается по ее наклону, пока не достигнет самого нижнего основания этой функции».
Этот алгоритм полезен в ситуациях, когда оптимальные точки не могут быть найдены путем сравнения наклона функции с 0. С учетом линейной регрессии вы можете интеллектуально планировать сумму квадратов остатков как функцию «у». и весовой вектор как «x».

Движение вниз

Это ядро ​​алгоритма. Общая идея состоит в том, чтобы начать с неправильной точки и выяснить, как обновлять эту точку с каждой итерацией с конечной целью — спускаться по склону.

Средства расчета

  1. Найдите наклон целевой функции по каждому признаку, то есть вычислите градиент функции.
  2. Выберите произвольное начальное значение для параметров.
  3. Обновите функцию наклона или градиента, соединив значения параметров.
  4. рассчитать размеры прогрессии для каждого компонента как размер шага = градиент * скорость обучения.
  5. Установите новые границы как новые параметры = старые параметры — размер шага
  6. Повторяйте шаги с 3 по 5, пока градиент не станет почти нулевым.

Упомянутая выше «скорость обучения» является адаптируемым параметром, который сильно влияет на сходимость алгоритма. Более высокие скорости обучения заставляют алгоритм делать огромные шаги вниз по склону, и он может перепрыгивать через базовую точку, таким образом пропуская ее. Таким образом, в любом случае лучше придерживаться низкой скорости обучения, например, 0,01. Также можно численно указать, что алгоритм градиентного спуска делает большие шаги вниз по склону, если начальная стадия находится высоко вверху, и делает маленькие шаги по мере приближения к цели, чтобы быть внимательным, чтобы не пропустить ее и, кроме того, быть достаточно быстрым.