Какая формула градиентного спуска?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Формула градиентного спуска
Градиентный спуск — это итеративный алгоритм оптимизации, который широко используется в машинном обучении для минимизации функции потерь. Основная формула выглядит следующим образом:
Базовая формула
θ_{t+1} = θ_t - α · ∇J(θ_t)
Где:
- θ_t — параметры модели на итерации t
- α — learning rate (скорость обучения)
- ∇J(θ_t) — градиент функции потерь по параметрам
Интерпретация
На каждом шаге мы движемся в направлении, противоположном градиенту. Градиент показывает направление наибольшего возрастания функции, поэтому мы идём в противоположную сторону, чтобы минимизировать потери. Это приводит к итеративному приближению к оптимальным значениям параметров.
Вычисление градиента
Для функции потерь J(θ) градиент вычисляется как вектор частных производных:
∇J(θ) = [∂J/∂θ_1, ∂J/∂θ_2, ..., ∂J/∂θ_n]
Каждый элемент показывает скорость изменения функции потерь по соответствующему параметру.
Пример с линейной регрессией
import numpy as np
def gradient_descent(X, y, learning_rate=0.01, iterations=1000):
m = X.shape[0]
n = X.shape[1]
theta = np.zeros(n)
for i in range(iterations):
# Предсказания
predictions = X @ theta
# Ошибка
error = predictions - y
# Градиент
gradient = (1/m) * (X.T @ error)
# Обновление параметров
theta = theta - learning_rate * gradient
return theta
Варианты градиентного спуска
- Batch GD — использует всю выборку для расчёта градиента, медленнее но более стабильно
- SGD (Stochastic) — использует один пример за раз, быстрее но нестабильнее
- Mini-batch GD — использует небольшой батч примеров, оптимальный баланс
Ключевые параметры
- Learning rate (α): слишком высокий приводит к расхождению алгоритма, слишком низкий — к медленной сходимости
- Количество итераций: нужно найти баланс между качеством модели и временем обучения
- Инициализация θ_0: правильная инициализация влияет на скорость сходимости и результат
Градиентный спуск остаётся одним из самых распространённых методов оптимизации в современном машинном обучении, несмотря на появление более продвинутых алгоритмов типа Adam и RMSprop.