Почему мы используем градиент функции потерь для обновления веса и смещения нейронной сети?
Например:
new_weight = old_weight - learning_rate * gradient
Другими словами, как градиент помогает нам правильно обновлять вес и смещение.
Это грубое упрощение: градиент представляет собой многомерную производную, спрессованную в «единую структуру». Производная говорит вам, где локальное изменение. Градиент сообщает вам, где есть локальные изменения во всех измерениях, которые вы рассматриваете.
Рассмотрим трехмерный случай: наш мир. Представьте, что вы поднимаетесь на гору. Предположим, ваш прицел ограничен 3 метрами для вашей позиции. Ваша цель - достичь вершины.
Вы начинаете с точки, и вы смотрите вокруг. Поскольку вы видите на 3 метра от своей позиции в свою сторону, вы выбираете идти туда, где видите, что склон круче. Оглядываясь по сторонам, вы вычисляете уклон и корректируете свою скорость.
В вашем уравнении, помните, что это грубый пример, вы говорите: «Гм, в первый раз, когда я проверил, мое направление было 124 градуса, теперь, глядя на градиент, мое направление должно быть 10 градусов. Какое направление мне выбрать сейчас».
learning rate
или ваше уравнение — это коэффициент, который вы можете интерпретировать как «трение» или «доверие»: вы не хотите менять свое направление на 114 градусов за один раз, вместо этого вы хотите измениться в зависимости от величины новая мера.
Вы обнаруживаете, что новое направление должно быть на 114 градусов (124-10) меньше текущего. Таким образом, если у вас низкая скорость обучения, ваше новое направление повлияет меньше, чем в случае, когда скорость обучения выше.
Этот пример обобщается по нескольким измерениям.