Градиентный спуск.Что это такое ?
Разберёмся на примере:
Представьте, что вы находитесь среди гор, причём вы стоите на одной из вершин, и ваша задача - это спуститься вниз в самую глубокую точку, но при этом вы не понимаете - спускаетесь вы или нет, когда идёте вперёд. Но у вас в руке есть компас, который показывает, где находится самая высока точка среди вас этого горного массива. И вы уверенно шагаете напротив направления этой стрелки. 🏞
Градиентный спуск - это ваше движение для нахождения локального минимума функции вдоль градиента.
Градиент - это ваш компас, то есть вектор, который показывает направление наибольшее возрастания некоторой скалярной величины.
Градиент функции — это вектор, координатами которого являются частные производные этой функции по всем её переменным, грубо говоря, показывает точку куда смотрит ваш компас в вашем пространстве
Этапы градиентного спуска для функции одной переменной на картинке:
1️⃣ Мы появились в какой-то точке X_start, около которой хотим найти минимум функции
2️⃣ Затем мы находим наш градиент (направление нашего компаса)
3️⃣ И с определённой длиной шага спускаемся против направления нашего градиента. Определённая длина - это какое-то число, с которым мы будем спускаться вниз. Оно означает длину нашего шага. Назовём его learning_rate. Зачем это нужно, расскажу чуть позже.
4️⃣ Спустившись, мы получили новую точку X. И теперь повторяем всё с самого начало - то есть X_start = X
И наша финальная формула выглядит так: X = X_start - learning_rate * Градиент
Так как градиент - это вектор, который состоит из чисел. Они могут быть большими или маленькими. И мы можем спокойно перепрыгнуть наш минимум или вовсе не дойти до него. Поэтому для контроля мы используем Learning rate, он уменьшает наш шаг 🏃♀️
Подробнее можно посмотреть здесь или здесь
#DataScience