Градиентный спуск

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

На изображении выше мы видим глобальные максимумы, глобальные минимумы, локальные максимумы и локальные минимумы. Так что же это за термины? локальные минимумы - это минимумы, которые минимальны в своей окрестности, а локальные максимумы - это максимумы, которые максимальны в своей окрестности. И глобальные максимумы — это максимумы для всей функции, а глобальные минимумы — это минимум для всей функции f(x).

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

argmin(f(x))= argmax(-f(x)), давайте посмотрим на изображение ниже для большей ясности.

Для у = х²

Здесь минимальное значение x² равно 0.

Для y=-x²

Для - x² максимальное значение равно 0.

Следовательно, argmin(f(x))= argmax(-f(x)).

Зачем нам нужен градиентный спуск?

Потому что легче решить производную уравнения следующим образом:

а градиентный спуск — это итеративная функция, которая хорошо работает на современных компьютерах.

Возьмем x0. Где x0 — не что иное, как предположение, позволяющее найти оптимальные минимумы.

Затем мы делаем следующее наилучшее предположение x1, которое ближе к минимуму (который равен 0), чем x0, используя градиентный спуск.

И затем мое следующее лучшее предположение: x2, x3, x4…..и так далее. Каждый из них будет намного ближе к минимуму. Например: x2 будет ближе к минимуму, чем x1, x3 будет ближе к минимуму, чем x2 и т. д.

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

Здесь x0 — это первое значение, которое мы взяли в качестве предположения, а затем мы переходим к x1, оптимальному x, то есть минимуму.

Для следующей итерации формула становится такой:

В общем случае уравнение градиентного спуска выглядит так:

Это также называется уравнением обновления.

Здесь x i+1 — следующий шаг, а xi — текущий шаг r называется размером шага или скоростью обучения.

Для нашего удобства пусть r=1.

Здесь наклон x0 положителен, потому что tan(Θ) положителен.

то есть df/dx положителен.

Общее уравнение,

Что в конечном итоге приведет к x0 › x1.

Следовательно, x1 будет ближе к минимуму, чем x0. Точно так же мы находим x2,x3,x4 и делаем это итеративно, пока разница между xi+1 и xi не станет незначительной.

Когда разница между xi+1 и xi незначительна?

По мере продвижения к минимуму наклон будет меньше для каждой итерации.

Следовательно,

поэтому для каждой итерации dy/dx будет меньше. Поэтому мы получаем меньшую разницу в каждой итерации.

Попробуем посмотреть с отрицательной стороны, представьте, что x0 отрицательно.

Здесь наклон x0 отрицательный, потому что tan(Θ)отрицательный. Следовательно, df/dx отрицательна.

Предположим, что что-то отрицательное как -1.

Следовательно, xi+1 › xi.

x1 будет ближе к минимуму, чем x0. Точно так же мы находим x2,x3,x4 и делаем это итеративно, пока разница между xi+1 и xi не станет незначительной.

Спасибо за уделенное время.