← Назад к вопросам

Какая формула градиентного спуска?

1.0 Junior🔥 131 комментариев
#Статистика и A/B тестирование

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI29 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Формула градиентного спуска

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

Базовая формула

θ_{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.