Градієнтний спуск (Gradient Descent)


Градієнтний спуск — це основний алгоритм оптимізації, який використовується для навчання моделей машинного навчання.
Його мета — знайти мінімум функції помилки (loss function), поступово оновлюючи параметри у напрямку, протилежному градієнту.


🔍 Коротке визначення #

Градієнтний спуск (Gradient Descent) — це ітеративний метод знаходження мінімуму функції $$f(\theta)$$, який оновлює параметри за правилом:

$$
\theta = \theta – \eta \nabla_\theta f(\theta)
$$

де:

  • $$\theta$$ — вектор параметрів моделі,
  • $$\eta$$ — коефіцієнт навчання (learning rate),
  • $$\nabla_\theta f(\theta)$$ — градієнт функції втрат за параметрами.

⚙️ Як працює алгоритм #

  1. Ініціалізуємо параметри $$\theta$$ випадковими значеннями.
  2. Обчислюємо градієнт $$\nabla_\theta f(\theta)$$ — напрямок найшвидшого зростання функції.
  3. Змінюємо параметри в протилежному напрямку, щоб зменшити помилку.
  4. Повторюємо кроки, поки функція втрат не стабілізується або не досягне мінімуму.

🧩 Види градієнтного спуску #

  • Batch Gradient Descent — використовує весь набір даних для одного оновлення параметрів.
  • Stochastic Gradient Descent (SGD) — оновлює параметри після кожного прикладу.
  • Mini-batch Gradient Descent — компроміс: оновлення за невеликими партіями даних.

📈 Інтуїтивне пояснення #

Градієнт показує напрямок, у якому функція зростає найшвидше.
Щоб знайти мінімум, потрібно рухатися у протилежному напрямку.
Крок $$\eta$$ визначає швидкість руху:

  • якщо $$\eta$$ занадто велике — алгоритм «перестрибує» мінімум;
  • якщо занадто мале — сходження буде дуже повільним.

🧠 Візуальне представлення #

Уявімо поверхню функції втрат.
Градієнтний спуск — це «скочування кульки» вниз по цій поверхні, доки вона не зупиниться в найнижчій точці (мінімумі).


🧮 Приклад у двовимірному випадку #

$$
f(x, y) = x^2 + y^2
$$

$$
\nabla f(x, y) = [2x, 2y]
$$

Оновлення параметрів:
$$
x_{t+1} = x_t – \eta \cdot 2x_t, \quad y_{t+1} = y_t – \eta \cdot 2y_t
$$

З часом $$(x, y)$$ наближаються до $$(0, 0)$$ — точки мінімуму.


🔧 Варіації алгоритму #

  • Momentum — враховує попередній рух, щоб прискорити збіжність.
  • Nesterov Accelerated Gradient (NAG) — модифікована версія з передбаченням кроку.
  • AdaGrad / RMSProp / Adam — адаптивні алгоритми, які автоматично змінюють $$\eta$$.

⚖️ Переваги і недоліки #

Переваги:

  • Простий у реалізації.
  • Ефективний для великих моделей.
  • Добре поєднується з іншими оптимізаторами.

Недоліки:

  • Може застрягти у локальному мінімумі.
  • Чутливий до вибору $$\eta$$.
  • Потребує нормалізації даних для стабільності.

🧩 Зв’язок з іншими поняттями #


📚 Джерела #

  • Goodfellow, I., Bengio, Y., Courville, A. Deep Learning
  • Géron, A. Hands-On Machine Learning
  • Nielsen, M. Neural Networks and Deep Learning
  • UCU DS School Notes

🏷️ Категорії: #

Машинне навчання • Оптимізація • Data Science • Штучний інтелект

What are your feelings

Updated on 14.10.2025