Градієнтний спуск — це основний алгоритм оптимізації, який використовується для навчання моделей машинного навчання.
Його мета — знайти мінімум функції помилки (loss function), поступово оновлюючи параметри у напрямку, протилежному градієнту.
🔍 Коротке визначення #
Градієнтний спуск (Gradient Descent) — це ітеративний метод знаходження мінімуму функції $$f(\theta)$$, який оновлює параметри за правилом:
$$
\theta = \theta – \eta \nabla_\theta f(\theta)
$$
де:
- $$\theta$$ — вектор параметрів моделі,
- $$\eta$$ — коефіцієнт навчання (learning rate),
- $$\nabla_\theta f(\theta)$$ — градієнт функції втрат за параметрами.
⚙️ Як працює алгоритм #
- Ініціалізуємо параметри $$\theta$$ випадковими значеннями.
- Обчислюємо градієнт $$\nabla_\theta f(\theta)$$ — напрямок найшвидшого зростання функції.
- Змінюємо параметри в протилежному напрямку, щоб зменшити помилку.
- Повторюємо кроки, поки функція втрат не стабілізується або не досягне мінімуму.
🧩 Види градієнтного спуску #
- 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$$.
- Потребує нормалізації даних для стабільності.
🧩 Зв’язок з іншими поняттями #
- Машинне навчання (ML)
- Оптимізація (Optimization)
- Функція втрат (Loss Function)
- Алгоритм
- Backpropagation
- Нейронна мережа
📚 Джерела #
- 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 • Штучний інтелект