Перейти до вмісту
coden

Градієнтний спуск: як навчається модель

Швидкість навчання, зигзаг у вузьких долинах, моментум, Adam, стохастичний спуск міні-пакетами і локальні мінімуми — з анімаціями справжніх траєкторій.

24 хвилин Matěj Žalmánek 2026-10-15

Серія Основи ШІ Частина 11 з 52
  1. Мапа штучного інтелекту: що є що і як усе це пов’язано
  2. Коротка історія штучного інтелекту: від Тюрінга до мовних моделей
  3. Дані, модель, тренування, інференс: основні поняття на одному прикладі
  4. Як читати математичний запис: символи, індекси, суми та квантори
  5. Множини й відношення: конструктор, з якого складаються означення в ШІ
  6. Функції й відображення: чому кожна модель у ШІ — це функція
  7. Логіка й доведення: правила, за якими міркують у ШІ
  8. Графи й дерева: структура, на якій тримаються пошук і нейронні мережі
  9. Лінійна алгебра для машинного навчання: вектори, матриці й чому ШІ передусім множить
  10. Похідні, градієнт і правило ланцюжка: як модель дізнається, у якому напрямку вчитися
  11. Градієнтний спуск: як навчається модель
  12. Що таке ймовірність: від кидка кубика до аксіом Колмогорова
  13. Умовна ймовірність і теорема Баєса: як змінити оцінку, коли дізнаєтеся щось нове
  14. Випадкова величина і функція розподілу: одна функція, яка каже про розподіл усе
  15. Функція щільності та функція маси ймовірності: чому неперервна величина має в точці ймовірність нуль
  16. Математичне сподівання, дисперсія і коваріація: де лежить розподіл, наскільки він широкий і що з чим пов’язано
  17. Огляд розподілів ймовірностей: Бернуллі, біноміальний, Пуассона, рівномірний, нормальний і експоненційний
  18. Закон великих чисел і центральна гранична теорема: чому середні поводяться так передбачувано
  19. Статистика й оцінювання параметрів: максимальна правдоподібність, MAP і довірчі інтервали
  20. Теорія інформації: ентропія, перехресна ентропія і KL-дивергенція — звідки беруться функції втрат
  21. Пошук у просторі станів: BFS, DFS, UCS і A* з анімаціями
  22. Ігри та суперник: мінімакс, альфа-бета відсікання і Monte Carlo tree search
  23. Задоволення обмежень: бектрекінг, поширення обмежень і AC-3 на судоку та мапі чеських країв
  24. Логіка й системи, засновані на знаннях: пряме і зворотне виведення, резолюція та експертні системи
  25. Планування: STRIPS, світ кубиків, евристики з релаксації та планування в AI-агентах
  26. Локальний пошук та імітація відпалу: комівояжер через обласні центри Чехії
  27. Генетичні алгоритми: популяція, схрещування, мутація і добір на рюкзаку для походу
  28. Еволюційні стратегії і генетичне програмування: від правила однієї п’ятої до закону Кеплера
  29. Оптимізація мурашиною колонією: як феромоновий слід знаходить короткий шлях
  30. Оптимізація роєм частинок: інерція, власний досвід і досвід рою
  31. Нейроеволюція: еволюція ваг і форми нейронних мереж та алгоритм NEAT
  32. Нечіткі множини й функції належності: як записати «трохи тепло»
  33. Нечітка логіка та ймовірність: чому «трохи тепло» не означає «імовірно тепло»
  34. Нечітка логіка: t-норми, імплікації та правила ЯКЩО–ТО
  35. Нечітке керування: Мамдані та Суґено від вентилятора до маятника на візку
  36. Нечітка кластеризація: алгоритм fuzzy c-means і точки між кластерами
  37. Нейро-нечіткі системи (ANFIS): нечіткі правила, які навчаються з даних
  38. Марковські ланцюги: матриця переходів, стаціонарний розподіл і PageRank
  39. Приховані марковські моделі: алгоритм Вітербі й нечесне казино
  40. Байєсівські мережі: чому трава мокра і що з цього випливає для дощувача
  41. Фільтр Калмана: як за неточними вимірюваннями оцінити, де авто і як швидко воно їде
  42. Види машинного навчання: з учителем, без учителя, з частковим залученням учителя та інші
  43. Промпти, контекст і RAG: як дати моделі правильну інформацію
  44. Варіаційні автокодувальники (VAE): нові зображення з неперервного латентного простору
  45. Генеративні змагальні мережі (GAN): фальшувальник проти детектива
  46. Дифузійні моделі: як із чистого шуму постає зображення
  47. Марковські процеси ухвалення рішень: стани, дії, винагороди й рівняння Беллмана
  48. Q-навчання і DQN: як навчитися цінності дій — від таблиці до нейронної мережі
  49. Policy gradient і PPO: навчання безпосередньо політики
  50. Як працює ШІ-агент: мовна модель у циклі з інструментами
  51. Програмування з AI-агентами: завдання, тести й перевірка
  52. Оцінювання і безпека систем ШІ: як вимірювати і як стежити

Повна програма серії Готово: 52 з 83 тем

Що ви винесете
  • Як працює градієнтний спуск і чому швидкість навчання важить найбільше.
  • Чому звичайний спуск у вузькій долині йде зигзагом і як це розв’язують моментум і Adam.
  • Чому мережі навчаються малими випадковими міні-пакетами і що означають локальні мінімуми й сідлові точки.

Що варто знати заздалегідь: Похідні, градієнт і правило ланцюжка: як модель дізнається, у якому напрямку вчитися

У попередніх частинах ми підготували все потрібне: модель — це функція з параметрами, функція втрат — це рельєф над простором параметрів, а градієнт показує найкрутіший напрям угору. Тепер поєднаємо це в алгоритм, яким навчається майже кожна нейронна мережа у світі, — градієнтний спуск. Його ідея вміщається в одне речення, а його деталі вирішують, чи навчиться модель за годину, за тиждень, чи взагалі ніколи.

1. Ідея: з гори в тумані

Означення — градієнтний спуск

Для функції втрат J(θ) виберемо початкові параметри θ0 і швидкість навчання η > 0 та повторюємо

θt+1 = θt − η ∇J(θt),

доки втрата помітно покращується.

Простими словами

Ви стоїте в густому тумані на горі й хочете спуститися в долину. Нічого не видно, лише ногами відчуваєте схил. Робите крок туди, де спуск найкрутіший, і знову озираєтеся. Градієнт — це схил, швидкість навчання — довжина кроку. Більше нічого в цьому немає.

2. Швидкість навчання: наскільки довгий крок

Довжина кроку — найважливіший вибір у всьому алгоритмі. Покажемо це на найпростішому рельєфі, параболі J(x) = x2, зі стартом у x = 4. Похідна дорівнює 2x, тож кожен крок робить x ← x − η · 2x = (1 − 2η)x. Дванадцять кроків для чотирьох різних швидкостей навчання:

параметр x (безрозмірний) втрата f(x) (безрозмірна) η = 0,1 — повільно
параметр x (безрозмірний) втрата f(x) (безрозмірна) η = 0,4 — швидко
параметр x (безрозмірний) втрата f(x) (безрозмірна) η = 0,9 — коливається
параметр x (безрозмірний) втрата f(x) (безрозмірна) η = 1,05 — розбігається
Дванадцять кроків по параболі x² для чотирьох швидкостей навчання
  • η = 0,1 — кожен крок скорочує відстань до мінімуму лише на п’яту частину. Після дванадцяти кроків кулька тільки в x ≈ 0,27.
  • η = 0,4 — кожен крок скорочує її уп’ятеро; за кілька кроків кулька практично на дні.
  • η = 0,9 — крок такий довгий, що кулька перескакує на інший бік. Проте вона наближається, бо стрибає дедалі коротшими дугами.
  • η = 1,05 — щоразу перескакує далі, ніж була: замість униз летить назовні й після дванадцяти кроків опиняється в x ≈ 12,55. Навчання розбігається.
Теорема — коли спуск по параболі збігається

Для J(x) = x2 маємо xt = (1 − 2η)t x0, тож спуск збігається тоді й лише тоді, коли |1 − 2η| < 1, тобто 0 < η < 1. Найшвидше — для η = 0,5: тоді він опиняється в мінімумі за один-єдиний крок.

Простими словами

Малий крок безпечний, але повільний. Великий крок швидкий, доки не перестрибне ціль. Надто великий крок ламає навчання: помилка замість спадати зростає, аж поки не стане нескінченною.

3. Вузькі долини й зигзаг

Справжні рельєфи — не круглі миски. Зазвичай це довгі вузькі долини: в одному напрямі круті, в іншому майже рівні. Візьмімо J(x, y) = x2/2 + 10y2, у напрямі y удвадцятеро крутішу. Звичайний спуск тут має проблему: швидкість навчання мусить бути малою через крутий напрям (інакше за y він розбігався б), а з таким малим кроком у пологому напрямі x ледве рухається. До того ж у напрямі y він постійно перескакує з боку на бік:

параметр x (безрозмірний) параметр y (безрозмірний)
Три методи у вузькій долині: скільки кроків до втрати нижче 0,01 градієнтний спуск: 36 кроківмоментум: 9 кроківAdam: 9 кроків

Кожен метод має свою найкращу швидкість навчання, знайдену перебором. І все одно звичайному спуску потрібно 36 кроків і він іде зигзагом, тоді як моментум і Adam унизу вже за 9. Чому — покажуть наступні два розділи.

4. Моментум: куля з інерцією

Означення — спуск із моментумом

vt+1 = β vt − η ∇J(θt),   θt+1 = θt + vt+1,

де v — «швидкість», а β ∈ [0, 1) визначає, скільки з неї залишиться до наступного кроку (типово 0,9; у нашій долині найкраще 0,6).

Простими словами

Замість обережного пішохода — важка куля. Там, де градієнт весь час указує однаково (уздовж долини), куля набирає швидкість. Там, де напрям чергується (поперек долини), рухи туди й назад взаємно гасяться. Зигзаг затухає, і куля розганяється вниз.

5. Adam: власний крок для кожного параметра

Означення — Adam (Кінгма і Ба, 2014)

m ← β1m + (1 − β1)g,   s ← β2s + (1 − β2)g2,   θ ← θ − η m̂ / (√ŝ + ε),

де g = ∇J(θ), усі операції покомпонентні, а m̂, ŝ — це m, s з корекцією початкового зміщення (поділені на 1 − βt). Звичайні значення: β1 = 0,9, β2 = 0,999.

Простими словами

Adam — це моментум, який до того ж для кожного параметра пам’ятає, наскільки великі градієнти в ньому бувають, і ділить на них крок. У крутому напрямі він робить коротші кроки, у пологому — довші, ніби долина розтяглася в круглу миску. Тому він іде до цілі майже прямо (на малюнку лише наприкінці трохи проскакує її, бо й далі несе інерцію) і тому сьогодні є стандартним вибором для навчання нейронних мереж.

6. Стохастичний спуск: навчання міні-пакетами

Означення — стохастичний градієнтний спуск (SGD)

Якщо втрата — це середнє за даними, J(θ) = (1/n) ∑i Li(θ), SGD замінює повний градієнт середнім за випадковим міні-пакетом B ⊂ {1, …, n}: g = (1/|B|) ∑i ∈ B ∇Li(θ). Прохід через усі дані називається епохою.

Простими словами

Обчислити градієнт за мільярдом прикладів дорого. Досить подивитися на кілька випадкових і взяти їхнє середнє: оцінка схилу трохи зашумлена, зате коштує частку роботи. За ціною одного точного кроку ви зробите сотні наближених.

На лінійній регресії з 40 точками порівняймо повний спуск (градієнт за всіма 40 точками) із SGD міні-пакетами по 4 точки:

0.10.010.001 крок (ітерація) втрата MSE (лог. шкала)
Втрата протягом 60 кроків (логарифмічна вісь) повний спуск SGD, пакети по 4

Після 60 кроків повний спуск має втрату 0,0017, а SGD — 0,0027: крива SGD горбиста, але майже така сама низька. Проте кожен крок SGD обробив лише 4 точки замість 40, тобто вдесятеро менше роботи. На справжніх даних з мільйонами прикладів ця різниця вирішальна. А шум має й перевагу: допомагає вискочити з мілких ям.

7. Локальні мінімуми й сідлові точки

Градієнтний спуск знаходить дно тієї долини, у якій почав. У опуклої функції дно лише одне, у неопуклої все залежить від старту. Функція x4 − 3x2 + x з частини про функції має два мінімуми:

локальний мінімум глобальний мінімум параметр x (безрозмірний) втрата f(x) (безрозмірна)
Той самий алгоритм, інший старт, інше дно

Кулька, що стартує в x = 2, закінчує в локальному мінімумі біля x ≈ 1,13 зі значенням ≈ −1,07. Кулька з x = −2 знаходить глобальний мінімум біля x ≈ −1,30 зі значенням ≈ −3,51. У високих вимірах нейронних мереж виявляється, що погані локальні мінімуми трапляються рідше, ніж можна було б чекати, — більшою проблемою бувають сідлові точки, місця, де градієнт дорівнює нулю, але в одному напрямі рельєф іде вгору, а в іншому вниз. Шум SGD і моментум допомагають із них зісковзнути.

8. Як це роблять на практиці

  • Adam або SGD з моментумом — два найпоширеніші варіанти. Adam добре працює одразу, SGD з моментумом після ретельного налаштування буває трохи кращим.
  • Розклад швидкості навчання — на початку повільний розгін (warmup), потім поступове зменшення. Великі кроки доречні далеко від цілі, малі — поблизу неї.
  • Розмір міні-пакета — зазвичай від 32 до тисяч прикладів; його обмежує пам’ять відеокарти.
  • Епохи й рання зупинка — дані проходять багаторазово, а навчання зупиняють, коли перестає зменшуватися помилка на даних, яких модель не бачила.
  • Нормалізація даних — коли вхідні дані мають схожий діапазон, рельєф круглішає, і спуск стає легшим.

9. Підсумок

  • Градієнтний спуск повторює θ ← θ − η∇J(θ): крок проти градієнта.
  • Швидкість навчання вирішує все: мала — повільно, велика — коливання, надто велика — розбіжність.
  • У вузьких долинах звичайний спуск іде зигзагом; моментум додає інерцію, Adam — власний крок для кожного параметра.
  • SGD обчислює градієнт за малими міні-пакетами — він шумить, але кожен крок у рази дешевший.
  • Спуск знаходить дно долини, у якій почав; у неопуклих рельєфах усе залежить від старту.

Цією частиною завершено математику, потрібну для розуміння навчання. Наступні модулі серії — імовірність, машинне навчання й нейронні мережі — будуються на ній.

Маєте іншу думку? Напишіть на support@coden-app.com.

Агент на вашому комп’ютері, керований з телефона