Машинне навчання / ШІ
Червень 2026 · 17 хв читання · Глибоке навчання · Градієнтний спуск · Оптимізація · Останнє оновлення: 22 червня 2026 р.

Нейронні мережі та зворотне поширення — математика в основі ШІ

Автор: Команда MySimulator · Редакційна перевірка: Редакція MySimulator

Кожне зображення, розпізнане вашим телефоном, кожне речення, дописане мовною моделлю, кожна рекомендація, показана стрімінговою платформою — усе це походить з одного й того самого алгоритму: мережі зважених сум, сформованої зворотним поширенням. Основна ідея обеззброююче проста: зробіть прогноз, виміряйте помилку і трохи зсуньте кожну вагу в напрямку, який зменшив би цю помилку. Повторіть мільйони разів. Далі — точна математика, що перетворює цю інтуїцію на двигун революції ШІ.

1. Від персептрона до багатошарового персептрона

Історія починається 1958 року з персептрона Френка Розенблатта — моделі однієї біологічної нейронної клітини. Він приймає n вхідних сигналів x₁, x₂, ..., xₙ, множить кожен на навчувану вагу, підсумовує їх зі зсувом і «спрацьовує» (видає 1), якщо результат перевищує поріг, інакше залишається «мовчазним» (видає 0):

output = 1, якщо (w₁x₁ + w₂x₂ + ... + wₙxₙ + b > 0), інакше 0

Було показано, що правило навчання персептрона — збільшувати ваги для правильно класифікованих входів, зменшувати для неправильно класифікованих — збігається для будь-якої лінійно роздільної задачі. У знаменитій книзі 1969 року Perceptrons Мінський і Пейперт довели, що однoшаровий персептрон не може обчислити XOR, що фактично заморозило дослідження ШІ більш ніж на десятиліття.

Розв'язок, уже відомий теоретично, полягав у тому, щоб укладати персептрони в шари. Багатошаровий персептрон (MLP) — також званий мережею прямого поширення (feedforward) або глибокою мережею — має:

З щонайменше одним прихованим шаром і нелінійною функцією активації MLP може апроксимувати будь-яку неперервну функцію на компактній області — факт, формалізований теоремою універсальної апроксимації (Розділ 9). Практична революція відбулась у 1980-х, коли Румельгарт, Гінтон і Вільямс показали, як ефективно навчати MLP за допомогою зворотного поширення.

2. Прямий прохід: z = Wx + b

Розгляньмо мережу з L шарами. Нехай шар l має nₗ нейронів. Обчислення на кожному шарі відбувається у два кроки:

Крок 1 — лінійне перетворення: сформуйте вектор передактивації z, помноживши матрицю ваг W^(l) (розміру nₗ × nₗ₋₁) на активації з попереднього шару a^(l-1) і додавши вектор зсуву b^(l):

z^(l) = W^(l) · a^(l-1) + b^(l)

Крок 2 — нелінійна активація: застосуйте скалярну функцію активації σ поелементно, щоб отримати активації для наступного шару:

a^(l) = σ(z^(l))

Вхід мережі задає a^(0) = x (сирі ознаки). Вихід останнього шару a^(L) = ŷ — це прогноз мережі. Для задач класифікації до останнього шару зазвичай застосовують функцію softmax, щоб перетворити сирі оцінки (логіти) на розподіл імовірностей за класами:

softmax(z)_k = e^(z_k) / Σ_j e^(z_j)

Кожен вихідний вузол ŷ_k дає оцінену мережею імовірність того, що вхід x належить до класу k. Усі виходи додатні й у сумі дають 1, задовольняючи аксіоми розподілу ймовірностей.

Чому лінійного кроку z = Wx + b самого по собі недостатньо? Накладання лінійних перетворень одне на одне дає інше лінійне перетворення: W₂(W₁x + b₁) + b₂ = (W₂W₁)x + (W₂b₁ + b₂). Без нелінійних активацій 100-шарова мережа еквівалентна одному лінійному шару й не може представляти криволінійні межі рішень.

3. Функції активації

Функція активації σ — джерело всієї нелінійності, а отже й усієї виражальної сили нейронної мережі. У сучасній практиці домінують три родини:

Сигмоїда

σ(z) = 1 / (1 + e^(−z)) діапазон: (0, 1)

Історично домінувала. Відображає будь-яке дійсне число на (0,1), що робить її природною для вихідних шарів бінарної класифікації. Її похідна σ'(z) = σ(z)(1 − σ(z)) досягає піку 0.25 і згасає до нуля при |z| > 3 — корінна причина проблеми згасання градієнта (Розділ 7).

Гіперболічний тангенс (tanh)

tanh(z) = (e^z − e^(−z)) / (e^z + e^(−z)) діапазон: (−1, 1)

Центрований відносно нуля варіант сигмоїди, часто застосовується в прихованих шарах. Має ту саму проблему згасання градієнта.

Випрямлена лінійна одиниця (ReLU)

ReLU(z) = max(0, z) діапазон: [0, ∞)

Введена як активація для глибоких мереж Наіром і Гінтоном (2010). Обчислювально тривіальна, градієнт дорівнює 1 для z > 0 і 0 для z < 0 — драматично полегшує згасання градієнтів. Живить практично всі сучасні глибокі мережі. Варіанти включають Leaky ReLU (малий від'ємний нахил для z < 0), ELU і GELU (застосовується в трансформерах).

🧠 Симулятор нейронної мережі Створюйте шари, обирайте активації та спостерігайте, як навчання збігається в реальному часі

4. Функція втрат: крос-ентропія

Навчання потребує скалярної міри того, наскільки помилковими є прогнози мережі. Для багатокласової класифікації з C класами стандартний вибір — функція втрат крос-ентропії:

L = −Σ_k y_k · log(ŷ_k)

де y_k ∈ {0,1} — істинна мітка у форматі one-hot (1 для правильного класу, 0 для решти), а ŷ_k — передбачена мережею імовірність класу k. Оскільки рівно одне y_k = 1, це зводиться до:

L = −log(ŷ_correct)

Втрата дорівнює нулю, коли ŷ_correct = 1 (ідеальна впевненість), і прямує до нескінченності, коли ŷ_correct → 0. Це саме те, чого ми хочемо: суворо карати впевнені неправильні прогнози.

Крос-ентропія природно випливає з оцінки максимальної правдоподібності. Якщо ми моделюємо вихід як категоріальний розподіл, максимізація логарифмічної правдоподібності навчальних міток еквівалентна мінімізації втрати крос-ентропії. Це надає втраті солідне ймовірнісне обґрунтування, а не просто зручність.

Для бінарної класифікації (C = 2) це спрощується до бінарної крос-ентропії:

L = −[y · log(ŷ) + (1−y) · log(1−ŷ)]

Для задач регресії поширений вибір — середньоквадратична похибка (MSE):

L = (1/n) · Σ_i (y_i − ŷ_i)²

5. Зворотне поширення та ланцюгове правило

Нам потрібно обчислити ∂L/∂w для кожної ваги w у мережі, щоб оновлювати ваги й зменшувати втрати. Мережа з мільйонами параметрів робить це на перший погляд нездійсненним, але зворотне поширення розв'язує задачу за один зворотний прохід за допомогою ланцюгового правила математичного аналізу.

Ланцюгове правило стверджує, що якщо L залежить від z, яке залежить від w, то:

∂L/∂w = (∂L/∂z) · (∂z/∂w)

У мережі втрата L залежить від виходу ŷ, який залежить від активацій, які залежать від передактивацій z, які залежать від ваг W. Розгортаючи ланцюг:

∂L/∂W^(l) = ∂L/∂ŷ · ∂ŷ/∂z^(L) · ∂z^(L)/∂a^(L-1) · ... · ∂z^(l)/∂W^(l)

Ключова ідея зворотного поширення полягає в тому, що ці часткові похідні можна обчислити ефективно, передаючи сигнал градієнта (звана дельта, δ) назад через мережу, повторно використовуючи обчислення на кожному шарі. Для шару l визначимо:

δ^(l) = ∂L/∂z^(l) (градієнт відносно передактивацій)

Починаючи з вихідного шару (використовуючи, наприклад, softmax + крос-ентропію, де градієнт просто дорівнює ŷ − y), поширюємо назад:

δ^(l) = (W^(l+1))ᵀ · δ^(l+1) ⊙ σ'(z^(l))

де ⊙ позначає поелементне множення, а σ'(z^(l)) — похідна функції активації, обчислена в передактиваціях шару l. Градієнт ваг тоді просто:

∂L/∂W^(l) = δ^(l) · (a^(l-1))ᵀ ∂L/∂b^(l) = δ^(l)

Загальний обсяг обчислень: один прямий прохід + один зворотний прохід = 2× прямого проходу. Незалежно від глибини мережі всі градієнти обчислюються за сталу кратність одного прямого проходу — саме це робить навчання глибоких мереж здійсненним.

6. Стохастичний градієнтний спуск

Коли градієнти обчислено, ваги оновлюють, щоб спускатися ландшафтом втрат. Градієнтний спуск робить крок у напрямку від'ємного градієнта:

w := w − η · ∂L/∂w

де η (ета) — швидкість навчання — розмір кроку. Занадто велика — і оновлення проскакують мінімуми; занадто мала — і навчання непрактично повільне.

На практиці обчислення точного градієнта за всім навчальним набором (пакетний градієнтний спуск) обчислювально непідйомне для великих наборів даних. Натомість стохастичний градієнтний спуск (SGD) оцінює градієнт за випадково обраним міні-пакетом із B прикладів (зазвичай B = 32–512):

∂L/∂w ≈ (1/B) · Σ_{i∈batch} ∂L_i/∂w

Ця шумна оцінка градієнта дивовижно ефективна: шум діє як неявна регуляризація, допомагаючи вирватися з неглибоких локальних мінімумів, а паралелізм міні-пакетів робить прискорення на GPU простим.

Момент та адаптивні методи

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

7. Проблема згасання градієнта

Зворотне поширення множить градієнти шар за шаром, використовуючи σ'(z). Для сигмоїди максимальне значення σ'(z) дорівнює 0.25. У мережі з L = 20 шарами градієнт втрати відносно ваг першого шару проходить через 20 множень на значення, які зазвичай набагато менші за 1:

∂L/∂W^(1) ∝ σ'(z^(1)) · σ'(z^(2)) · ... · σ'(z^(L))

Для сигмоїди типові добутки на кшталт 0.2^20 ≈ 10⁻¹⁴ роблять градієнт практично нульовим. Ранні шари отримують майже жодного навчального сигналу — їхні ваги ледь рухаються, тоді як пізніші шари перенавчаються. Це було головною перешкодою для глибоких мереж упродовж 1990-х.

Виникло кілька рішень:

Проблема вибухового градієнта (добуток > 1 на кожному кроці) вирішується обрізанням градієнта: якщо ||∇L|| > поріг, перемасштабуйте ∇L → поріг · ∇L / ||∇L||.

📉 Візуалізатор зворотного поширення Спостерігайте потік градієнта по шарах і бачте згасання градієнтів наживо

8. Пакетна нормалізація

Запропонована Іоффе та Сегеді 2015 року, пакетна нормалізація (BN) нормалізує передактивації в межах кожного міні-пакета до нульового середнього й одиничної дисперсії, а потім застосовує навчувані параметри масштабу γ та зсуву β:

μ_B = (1/B) · Σ z_i (середнє міні-пакета)
σ²_B = (1/B) · Σ (z_i − μ_B)² (дисперсія міні-пакета)
z_hat_i = (z_i − μ_B) / √(σ²_B + ε)
BN(z_i) = γ · z_hat_i + β

де ε ≈ 10⁻⁵ — мала константа для чисельної стабільності. Навчувані параметри γ і β дозволяють мережі скасувати нормалізацію за потреби, зберігаючи здатність до представлення.

Пакетна нормалізація має кілька корисних ефектів:

На етапі інференсу статистика міні-пакета замінюється на ковзні середні, обчислені під час навчання. Для послідовних моделей і налаштувань із малим пакетом перевагу надають нормалізації шару (Layer Normalisation) (нормалізація по ознаках, а не по вимірі пакета) — вона живить кожен сучасний трансформер.

Сучасні великі мовні моделі, як-от GPT-4, використовують Pre-LayerNorm (застосування LayerNorm перед підшарами уваги та прямого поширення), а не Post-LayerNorm. Цей вибір покращує стабільність навчання для дуже глибоких мереж (100+ шарів) і високих швидкостей навчання.

9. Теорема універсальної апроксимації

Чому нейронні мережі взагалі працюють? Теоретичне обґрунтування — теорема універсальної апроксимації, доведена в різних формах Сайбенко (1989), Хорніком (1991) і Барроном (1993).

Класична версія стверджує:

Нехай σ — будь-яка неконстантна, обмежена, неперервна функція активації (наприклад, сигмоїда). Тоді для будь-якої неперервної функції f: [0,1]ⁿ → ℝ і будь-якого ε > 0 існує однoшарова прихована нейронна мережа F зі скінченною кількістю нейронів, така що |F(x) − f(x)| < ε для всіх x у [0,1]ⁿ.

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

Однак теорема має важливі застереження:

Новіші результати (Баррон 1993; Елдан і Шамір 2016) точно кількісно визначають компроміс глибини й ширини. Для функцій з обмеженою фур'є-енергією двошаровій мережі потрібно O(1/ε²) нейронів, тоді як глибші мережі можуть досягти такої самої якості апроксимації з експоненційно меншою кількістю нейронів. Глибина — не просто зручність, вона обчислювально фундаментальна.

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

Джерела