Встречается на собеседованиях • сегодня

Как работает стохастический градиентный спуск

Стохастический градиентный спуск (SGD) — это итеративный метод оптимизации, который обновляет параметры модели на основе градиента функции потерь, вычисленного для одного случайного примера (или небольшой подвыборки — mini-batch) на каждой итерации. В отличие от обычного градиентного спуска, который использует весь датасет, SGD быстрее и менее требователен к памяти, но более шумный.

Как работает:

  1. Выбирается случайный пример (или mini-batch) из данных.
  2. Вычисляется градиент функции потерь только для этого примера.
  3. Параметры обновляются в направлении, противоположном градиенту:
    [
    \theta = \theta - \eta \cdot \nabla_\theta J(\theta; x_i, y_i)
    ]
    где (\eta) — скорость обучения, (x_i, y_i) — текущий пример.

Пример с кодом (Python):

python
import numpy as np

def sgd(X, y, lr=0.01, epochs=100):
    theta = np.zeros(X.shape[1])
    for _ in range(epochs):
        for i in range(len(X)):
            grad = 2 * (X[i].dot(theta) - y[i]) * X[i]  # Градиент MSE для одного примера
            theta -= lr * grad
    return theta

Плюсы:

  • Быстрая сходимость на больших данных.
  • Меньше вычислительных затрат на итерацию.

Минусы:

  • Шумные обновления могут замедлить сходимость.
  • Требует настройки скорости обучения и расписания её уменьшения.

Часто используют модификации (Momentum, Adam) для стабилизации обучения.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы