Похідні, градієнт і правило ланцюжка: як модель дізнається, у якому напрямку вчитися
Похідна як швидкість зміни, частинні похідні, градієнт і правило ланцюжка — і зворотне поширення помилки, обчислене число за числом на одному нейроні.
Серія Основи ШІ Частина 10 з 52
- Мапа штучного інтелекту: що є що і як усе це пов’язано
- Коротка історія штучного інтелекту: від Тюрінга до мовних моделей
- Дані, модель, тренування, інференс: основні поняття на одному прикладі
- Як читати математичний запис: символи, індекси, суми та квантори
- Множини й відношення: конструктор, з якого складаються означення в ШІ
- Функції й відображення: чому кожна модель у ШІ — це функція
- Логіка й доведення: правила, за якими міркують у ШІ
- Графи й дерева: структура, на якій тримаються пошук і нейронні мережі
- Лінійна алгебра для машинного навчання: вектори, матриці й чому ШІ передусім множить
- Похідні, градієнт і правило ланцюжка: як модель дізнається, у якому напрямку вчитися
- Градієнтний спуск: як навчається модель
- Що таке ймовірність: від кидка кубика до аксіом Колмогорова
- Умовна ймовірність і теорема Баєса: як змінити оцінку, коли дізнаєтеся щось нове
- Випадкова величина і функція розподілу: одна функція, яка каже про розподіл усе
- Функція щільності та функція маси ймовірності: чому неперервна величина має в точці ймовірність нуль
- Математичне сподівання, дисперсія і коваріація: де лежить розподіл, наскільки він широкий і що з чим пов’язано
- Огляд розподілів ймовірностей: Бернуллі, біноміальний, Пуассона, рівномірний, нормальний і експоненційний
- Закон великих чисел і центральна гранична теорема: чому середні поводяться так передбачувано
- Статистика й оцінювання параметрів: максимальна правдоподібність, MAP і довірчі інтервали
- Теорія інформації: ентропія, перехресна ентропія і KL-дивергенція — звідки беруться функції втрат
- Пошук у просторі станів: BFS, DFS, UCS і A* з анімаціями
- Ігри та суперник: мінімакс, альфа-бета відсікання і Monte Carlo tree search
- Задоволення обмежень: бектрекінг, поширення обмежень і AC-3 на судоку та мапі чеських країв
- Логіка й системи, засновані на знаннях: пряме і зворотне виведення, резолюція та експертні системи
- Планування: STRIPS, світ кубиків, евристики з релаксації та планування в AI-агентах
- Локальний пошук та імітація відпалу: комівояжер через обласні центри Чехії
- Генетичні алгоритми: популяція, схрещування, мутація і добір на рюкзаку для походу
- Еволюційні стратегії і генетичне програмування: від правила однієї п’ятої до закону Кеплера
- Оптимізація мурашиною колонією: як феромоновий слід знаходить короткий шлях
- Оптимізація роєм частинок: інерція, власний досвід і досвід рою
- Нейроеволюція: еволюція ваг і форми нейронних мереж та алгоритм NEAT
- Нечіткі множини й функції належності: як записати «трохи тепло»
- Нечітка логіка та ймовірність: чому «трохи тепло» не означає «імовірно тепло»
- Нечітка логіка: t-норми, імплікації та правила ЯКЩО–ТО
- Нечітке керування: Мамдані та Суґено від вентилятора до маятника на візку
- Нечітка кластеризація: алгоритм fuzzy c-means і точки між кластерами
- Нейро-нечіткі системи (ANFIS): нечіткі правила, які навчаються з даних
- Марковські ланцюги: матриця переходів, стаціонарний розподіл і PageRank
- Приховані марковські моделі: алгоритм Вітербі й нечесне казино
- Байєсівські мережі: чому трава мокра і що з цього випливає для дощувача
- Фільтр Калмана: як за неточними вимірюваннями оцінити, де авто і як швидко воно їде
- Види машинного навчання: з учителем, без учителя, з частковим залученням учителя та інші
- Промпти, контекст і RAG: як дати моделі правильну інформацію
- Варіаційні автокодувальники (VAE): нові зображення з неперервного латентного простору
- Генеративні змагальні мережі (GAN): фальшувальник проти детектива
- Дифузійні моделі: як із чистого шуму постає зображення
- Марковські процеси ухвалення рішень: стани, дії, винагороди й рівняння Беллмана
- Q-навчання і DQN: як навчитися цінності дій — від таблиці до нейронної мережі
- Policy gradient і PPO: навчання безпосередньо політики
- Як працює ШІ-агент: мовна модель у циклі з інструментами
- Програмування з AI-агентами: завдання, тести й перевірка
- Оцінювання і безпека систем ШІ: як вимірювати і як стежити
Повна програма серії Готово: 52 з 83 тем
- Що таке похідна, як її обчислюють і чому в мінімумі вона дорівнює нулю.
- Що таке градієнт і чому він показує найкрутіший напрям угору — а −∇f униз.
- Як правило ланцюжка обчислює зворотне поширення помилки, крок за кроком на одному нейроні.
Що варто знати заздалегідь: Функції й відображення: чому кожна модель у ШІ — це функція, Графи й дерева: структура, на якій тримаються пошук і нейронні мережі
Модель навчається так, що маленькими кроками змінює свої параметри. Щоб знати, у якому напрямку їх змінити, їй потрібна відповідь на одне-єдине питання: якщо я трохи поверну цю ручку, як зміниться помилка? На це питання відповідає похідна. Для мільйонів ручок одночасно це градієнт. А як обчислити його через усю нейронну мережу, підказує правило ланцюжка.
Ця частина — останній шматок математики, якого бракує, щоб ви зрозуміли, як нейронна мережа насправді навчається. Вона спирається на функції та на обчислювальний граф нейрона з частини про графи.
1. Похідна: як швидко змінюється функція
Означення — похідна
Похідна функції f у точці x — це границя
f ′(x) = limh → 0 (f(x + h) − f(x)) / h,
якщо вона існує. Дріб під границею — це кутовий коефіцієнт січної графіка між точками x і x + h; похідна — це кутовий коефіцієнт дотичної. Інший запис: df/dx.
Похідна — це швидкість. Якщо f описує, де перебуває автомобіль у момент x, похідна — це швидкість на спідометрі саме в цю мить. На графіку це нахил: додатна похідна — функція зростає, від’ємна — спадає, нуль — вона на рівнині.
Січна графіка f(x) = x2 у точці 3 має для h = 2 нахил 8, для h = 1 нахил 7, для 0,5 нахил 6,5 і для 0,1 нахил 6,1. Що менший крок, то ближча січна до дотичної — а похідна f ′(3) = 6:
2. Правила й похідні функцій зі ШІ
На практиці похідні обчислюють не через границю, а за правилами. Найважливіші з них:
Правила диференціювання
(c)′ = 0, (xn)′ = nxn−1, (ex)′ = ex, (ln x)′ = 1/x
(f + g)′ = f ′ + g ′, (cf)′ = cf ′, (fg)′ = f ′g + fg ′
| Функція | Похідна | Де ви її зустрінете |
|---|---|---|
| x2 | 2x | середньоквадратична похибка |
| ln x | 1/x | перехресна ентропія |
| σ(x) = 1/(1 + e−x) | σ(x)(1 − σ(x)) | логістична регресія, вихід мережі |
| tanh x | 1 − tanh2 x | рекурентні мережі |
| ReLU(x) = max(0, x) | 0 для x < 0, 1 для x > 0 | приховані шари мереж |
Зверніть увагу: похідну сигмоїди можна обчислити з самого значення сигмоїди — це заощаджує роботу, бо мережа однаково обчислила його під час прямого проходу. А похідна ReLU — найпростіша з можливих: або 0, або 1. Це теж одна з причин, чому ReLU така популярна.
3. Похідна показує шлях до мінімуму
Теорема — необхідна умова екстремуму
Якщо диференційовна функція f має в точці x* локальний мінімум або максимум, то f ′(x*) = 0. Обернене неправильне: f ′ = 0 може бути й у точці перегину (x3 у нулі).
На дні долини місцевість рівна. Крім того, похідна підказує, куди йти вниз: коли вона додатна, ідіть ліворуч, коли від’ємна — праворуч. Саме це робить градієнтний спуск — тільки в мільйонах вимірів одночасно.
Для f(x) = x2 маємо f ′(x) = 2x, що дорівнює нулю лише в точці 0 — і там мінімум. Для складніших функцій рівняння f ′ = 0 розв’язати не вміємо, тому мінімум шукають крок за кроком: трохи проти напрямку похідної, обчислити знову, ще трохи.
4. Частинні похідні
Означення — частинна похідна
Для f : ℝn → ℝ частинна похідна за xi, ∂f/∂xi, — це звичайна похідна за xi, коли всі інші змінні тримаємо сталими.
У функції з кількома ручками ви повертаєте одну, а решту залишаєте як є. Частинна похідна каже, наскільки чутливо результат реагує саме на цю одну ручку.
f(x, y) = x2y
∂f/∂x = 2xy, ∂f/∂y = x2
у точці (3, 2): ∂f/∂x = 12, ∂f/∂y = 9
5. Градієнт: напрям найкрутішого підйому
Означення — градієнт
Градієнт функції f : ℝn → ℝ — це вектор усіх частинних похідних: ∇f = (∂f/∂x1, …, ∂f/∂xn).
Теорема. Градієнт показує напрям, у якому функція зростає найшвидше, а його довжина — це ця найбільша швидкість зростання. −∇f показує напрям найшвидшого спадання. Градієнт перпендикулярний до лінії рівня.
Ви стоїте в тумані на схилі й навпомацки визначаєте нахил під ногами. Градієнт — це стрілка вгору найкрутішим шляхом, який тільки є. Хто хоче вниз, іде точно навпаки.
Для миски f(x, y) = x2 + 3y2 маємо ∇f = (2x, 6y); у точці (1, 1) це (2, 6). Стрілки на малюнку показують −∇f, тобто куди вниз — і всі вони йдуть перпендикулярно до ліній рівня до дна:
Стрілки не спрямовані прямо в центр: у напрямку y миска крутіша, тож там градієнт більший. Саме цей «зигзаг» потім заважає градієнтному спуску у вузьких долинах.
6. Правило ланцюжка
Теорема — похідна складеної функції
Для складеної функції h = g ∘ f, тобто h(x) = g(f(x)), маємо h ′(x) = g ′(f(x)) · f ′(x).
У нотації Лейбніца, якщо y = g(u) і u = f(x): dy/dx = (dy/du) · (du/dx). У довшому ланцюжку перемножують усі ланки.
Зубчасті колеса: якщо перше колесо обертається один раз, друге — тричі, а третє обертається двічі на кожен оберт другого, то третє колесо обернеться шість разів. Чутливості в ланцюжку перемножуються.
h(x) = (2x + 1)2, зовнішня g(u) = u2, внутрішня u = 2x + 1
h ′(x) = 2u · 2 = 4(2x + 1), h ′(1) = 12
7. Зворотне поширення помилки в одному нейроні
Тепер складімо все докупи. Нейрон із частини про графи обчислює ŷ = σ(wx + b), а його помилка — L = (ŷ − y)2. Візьмімо вхід x = 2, вагу w = 0,5, зсув b = −0,5 і правильну відповідь y = 1.
Прямий прохід обчислює значення зліва направо: wx = 1, z = 0,5, ŷ = σ(0,5) ≈ 0,622 і помилка L ≈ 0,143.
Зворотний прохід іде тим самим графом справа наліво і в кожній вершині множить те, що надійшло, на похідну відповідної операції:
∂L/∂ŷ = 2(ŷ − y) ≈ −0,755
∂L/∂z = ∂L/∂ŷ · σ(z)(1 − σ(z)) ≈ −0,755 · 0,235 ≈ −0,177
∂L/∂w = ∂L/∂z · x ≈ −0,355, ∂L/∂b = ∂L/∂z · 1 ≈ −0,177
Обидва градієнти від’ємні. Це означає, що коли трохи збільшити і w, і b, помилка зменшиться — нейрон тоді відповість ближче до одиниці. Градієнтний спуск робить саме це: зсуває параметри трохи проти градієнта. Уся нейронна мережа навчається так само, тільки замість одного нейрона має мільйони, а зворотний прохід іде через сотні шарів. До речі, результат можна перевірити грубою силою — зсунути w на дрібку, знову обчислити помилку й поділити. Вийде те саме, тільки повільніше.
8. Похідні в штучному інтелекті
- Автоматичне диференціювання — бібліотеки на кшталт PyTorch і JAX під час обчислення будують обчислювальний граф і самі обчислюють градієнт зворотним проходом. Ніхто не виписує похідні мереж вручну.
- Чисельне диференціювання (мале h) для мільйонів параметрів надто повільне — на кожен параметр одне додаткове обчислення. Зворотне поширення обчислює всі частинні похідні приблизно за ціною одного прямого проходу.
- Зникаючий градієнт — похідна сигмоїди не більша за 0,25. Правило ланцюжка через п’ять сигмоїд поспіль множить щонайбільше на 0,255 ≈ 0,001, тож глибокі шари майже не навчаються. Тому в прихованих шарах утвердилася ReLU з похідною 1.
- Градієнт за входом показує, які пікселі зображення найбільше вплинули на рішення мережі, — так малюють «карти значущості» і шукають слабкі місця моделей.
9. Підсумок
- Похідна — це швидкість зміни: кутовий коефіцієнт дотичної, до якої наближаються січні.
- У мінімумі похідна дорівнює нулю, а її знак підказує, куди вниз.
- Частинна похідна змінює одну ручку, градієнт — це вектор усіх таких похідних, і він вказує найкрутіше вгору.
- Правило ланцюжка перемножує похідні ланок складеної функції.
- Зворотне поширення — це правило ланцюжка на обчислювальному графі; так обчислюють градієнт усієї нейронної мережі.
Маєте іншу думку? Напишіть на support@coden-app.com.