3D поверхность
Карта высот

Параметры функции

f(x, y) =
Xmin: Xmax: Nx:
Ymin: Ymax: Ny:

Управление камерой:

 
W
 
R
T
 
 

A
S
D
F
G

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

X0: (начальная точка по X)
Y0: (начальная точка по Y)
Ne: (количество итераций)
α: (скорость обучения)
Метод:

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

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

Побороть эту проблему помогают различные методы оптимизации градиентного спуска, которых в 2019 году насчитывается около десяти. Некоторые из них используют момент импульса для выхода из локальных минимумов, некоторые делают упор на адаптивную скорость обучения, а некоторые комбинируют всё и сразу. Решить, какой именно алгоритм подойдёт для конкретной задачи довольно проблематично, поэтому приходится экспериментировать и пробовать один за другим.

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

Доступные методы оптимизации

  • Обычный градиентный спуск (SGD)
  • Градиентный спуск с моментом (SGDm)
  • Адаптивный градиент (Adagrad)
  • RMSprop
  • Adadelta
  • Ускоренные градиенты Нестерова (NAG)
  • Адаптивный момент (Adam)
  • Adamax
  • Nadam (NAG + Adam)
  • AMSgrad

Доступные функции

  • f1(x, y) = y2 - x2
  • f2(x, y) = sin x + cos y
  • f3(x, y) =
    sin (x2+y2)
    x2+y2
  • f4(x, y) = (sin
    πx
    10
    +
    1
    5
    sin
    4πx
    5
    ) * cos y