складність 2/5 Безкоштовно
Gradient
Вектор часткових похідних функції: він указує напрямок найшвидшого зростання, а його довжина каже, наскільки це зростання круте.
Інтуїція
Уявіть, що ви стоїте на схилі в тумані. Вершини не видно, але ви відчуваєте під ногами, у який бік земля здіймається найкрутіше і наскільки різко.
Це і є градієнт: напрямок і величина. Напрямок — той, у який функція зростає найшвидше з місця, де ви стоїте; величина — наскільки швидко. Уся градієнтна оптимізація випливає з того, що ця інформація доступна локально, без жодного погляду на весь ландшафт.
Формальне визначення
Для функції кількох змінних градієнт — це вектор, елементи якого — часткові похідні за кожною змінною; кожна вимірює, як змінюється вихід, коли зрушити лише цей вхід, тримаючи решту незмінними [2, §4.3].
Результат — вектор у тому самому просторі, що й вхід. Функція з 10 мільйонів параметрів має градієнт із 10 мільйонів компонент, і саме тому навчання великої мережі взагалі можливе: одне обчислення дає напрямок одразу для кожного параметра.
Як це працює
Усю роботу виконують дві властивості:
Він указує вгору. Градієнт дає напрямок найшвидшого зростання, тож
мінімізація означає рух у напрямку -∇f. Звідси й мінус, що з’являється в
кожному правилі оновлення в цьому розділі [2, §4.3].
Його довжина вимірює крутизну. На крутому схилі градієнт довгий; на плато він близький до нуля. Саме тому градієнтний спуск зі сталим темпом навчання робить довгі кроки на крутому схилі й короткі біля мінімуму: кожен крок — це темп навчання, помножений на градієнт, тож цього ніхто не планує, це робить геометрія [2, §4.3].
Там, де градієнт рівно нульовий, функція пласка: це мінімум, максимум або сідлова точка. Сам градієнт не може сказати, що саме, — це може друга похідна [2, §4.3.1].
Де застосовується
- Навчання кожної нейронної мережі. Зворотне поширення — ефективний спосіб обчислити саме цей вектор [1, §5.3.3].
- Підгонка багатьох інших моделей. Логістичну регресію і градієнтний бустинг теж підганяють за допомогою градієнтів.
- Аналіз чутливості. Часткова похідна за одним входом каже, наскільки вихід на нього реагує.
- Змагальні приклади. Візьміть градієнт втрати за входом, а не за параметрами, — і крихітний крок у напрямку його знака може змінити прогноз [2, §7.13].
Чому і коли
Градієнти — причина того, що масштабне машинне навчання працює. Вони дають напрямок пошуку за ціною, порівнянною з одним обчисленням функції, хоч скільки параметрів, — і саме це робить оптимізацію мільйонів із них здійсненною [2, §6.5.3].
Вони доступні не завжди. Градієнт потребує диференційовності функції. Дискретні вибори, жорсткі пороги й недиференційовні втрати не мають градієнта саме в тій точці, де він потрібен, — тому дерева рішень будують пошуком, а не спуском [3, §1.10.7], і тому мережа, яку навчають градієнтами, бере сигмоїду там, де жорсткий поріг залишив би їй нульовий градієнт [2, §6.2.2.2].
Практичний приклад
Python 15 рядків Показати код Сховати код
import numpy as np
def f(x):
# проста чаша, крутіша вздовж другої осі
return x[0]**2 + 5 * x[1]**2
def grad(x):
return np.array([2 * x[0], 10 * x[1]])
point = np.array([3.0, 1.0])
g = grad(point)
print(g) # [ 6. 10.] — напрямок найшвидшого зростання
print(np.linalg.norm(g)) # 11.66 — наскільки тут круто
print(-g / np.linalg.norm(g)) # одиничний вектор, що вказує вниз схиломДруга компонента більша, хоча її координата менша, бо вздовж тієї осі функція зростає вп’ятеро швидше. Саме цей дисбаланс робить погано масштабовані задачі важкими для оптимізації: градієнт указує радше поперек долини, ніж уздовж неї.
Типові помилки
Градієнт локальний, і лише локальний. Він описує поверхню в одній точці. Він нічого не каже про те, чи лежить мінімум попереду і як далеко.
Нульовий градієнт не означає мінімуму. Сідлові точки теж мають нульовий градієнт, і у високих вимірностях вони ймовірніші за мінімуми [1, §12.1.2.2].
Масштаб змінює напрямок. Перемасштабуйте одну ознаку — і градієнт повернеться. Це не чисельний артефакт: саме тому масштабування ознак змінює швидкість збіжності градієнтного спуску, а іноді й те, чи він узагалі збігається.
Великий градієнт — не обов’язково великий крок. Наскільки ви насправді зрушите, залежить від темпу навчання, а це цілком окреме рішення.
Ще не прочитаноДочитайте сторінку до кінця — і вона вважатиметься прочитаною.
Зберігайте свій прогресЗ доступом назавжди кожна дочитана сторінка позначається, і ви продовжуєте з того місця, де зупинилися, на всіх своїх пристроях.
Відкрити доступПеревірте себе
3 запитання
Кожну відповідь пояснено: який розділ вона перевіряє і з якого джерела.
Джерела
- Dive into Deep Learningbook · звірено 2026-08-31https://d2l.ai/
- Deep Learning (2016)bookhttps://www.deeplearningbook.org/
- scikit-learn User Guide — Decision Treesdocs · звірено 2026-10-04https://scikit-learn.org/stable/modules/tree.html