🎮 Навчання з підкріпленням · ШІ
📅 Березень 2026 ⏱ ≈ 9 хв читання 🟡 Середній · Останнє оновлення: 5 липня 2026 р.

Навчання з підкріпленням простими словами

Навчання з підкріпленням навчає агента добре діяти в середовищі методом спроб і помилок. AlphaGo, ШІ, що грають в Atari, донавчання ChatGPT (RLHF) та роботизовані маніпулятори — усі використовують ту чи іншу форму RL. В основі лежать лише два рівняння: рівняння Беллмана та Q-навчання.

Цикл агент-середовище

На кожному кроці часу агент спостерігає стан середовища, обирає дію й отримує винагороду та наступний стан.

Агент
→ aₜ →
Середовище
→ sₜ₊₁, rₜ →
Агент

Мета — знайти стратегію π*, яка максимізує загальну накопичену винагороду з часом.

Марковські процеси прийняття рішень

Формальною основою для RL є марковський процес прийняття рішень (MDP), заданий кортежем (S, A, P, R, γ):

Марковська властивість стверджує, що наступний стан залежить лише від поточного стану та дії, а не від історії. На практиці агент часто не знає P чи R — він мусить навчатися з досвіду.

Винагороди та дисконтування

Сумарна винагорода Gₜ — це загальна винагорода починаючи з моменту t і далі. Ми не зважуємо майбутні винагороди однаково — винагорода зараз краща за таку саму винагороду в далекому майбутньому. Дисконтована сумарна винагорода дорівнює:

Gₜ = rₜ + γ·rₜ₊₁ + γ²·rₜ₊₂ + ... = Σₖ γᵏ rₜ₊ₖ

За γ = 0.99 винагорода за 100 кроків коштує лише 0.99¹⁰⁰ ≈ 0.37 винагороди прямо зараз. γ = 0 означає, що агент абсолютно короткозорий; γ → 1 означає, що він планує дуже далеко наперед. Типові значення: 0.95–0.999.

Функції цінності та стратегія

Функція цінності стану V(s) оцінює очікувану сумарну винагороду, якщо починати зі стану s за стратегією π:

Vπ(s) = 𝔼π[Gₜ | sₜ = s]

Функція цінності дії Q(s, a) оцінює очікувану сумарну винагороду, якщо виконати дію a у стані s, а потім дотримуватися π:

Qπ(s, a) = 𝔼π[Gₜ | sₜ = s, aₜ = a]

Якщо ви знаєте Q*(s,a) — оптимальні Q-значення — оптимальна стратегія проста: завжди обирати дію з найвищим Q-значенням: π*(s) = argmaxa Q*(s,a).

Рівняння Беллмана

Рівняння оптимальності Беллмана для Q* виражає рекурсивний зв'язок між Q-значеннями:

Q*(s, a) = 𝔼[ r + γ · maxa' Q*(s', a') ]

Воно стверджує: цінність пари (стан s, дія a) — це негайна винагорода плюс дисконтована цінність найкращої дії з наступного стану. Ця умова самоузгодженості однозначно визначає Q*.

Чому це важливо: Рівняння Беллмана перетворює задачу пошуку оптимальної стратегії на ітерацію нерухомої точки. Ми можемо почати з будь-яких Q-значень і багаторазово застосовувати оновлення Беллмана — за певних умов це збігається до Q*.

Q-навчання

Q-навчання — це безмодельний алгоритм, який використовує вибірковий досвід, щоб збігтися до Q*, не знаючи ймовірностей переходів середовища. Правило оновлення, застосоване після кожного переходу (s, a, r, s'):

Q(s,a) ← Q(s,a) + α · [ r + γ · maxa'Q(s',a') − Q(s,a) ]

Частина у квадратних дужках — це TD-похибка (похибка часової різниці) — наскільки помилкове поточне Q-значення відносно цілі Беллмана. α — це швидкість навчання.

Для малих дискретних просторів станів/дій Q-значення зберігаються в таблиці. Приклад для простої сітки 2×2 з 4 діями руху:

СтанЛіворучПраворучВгоруВниз
s₀0.00.80.20.1
s₁0.30.10.90.4
s₂1.00.00.60.2

Агент обирає виділену дію (з найвищим Q) для кожного стану. Після багатьох епізодів Q-навчання збігається до оптимальних значень для будь-якого скінченного MDP за достатнього дослідження.

Дослідження проти експлуатації

Чисто жадібний агент завжди обирає дію з найвищим Q. Але що, якщо Q-значення помилкові на ранніх етапах навчання? Він може пропустити кращі альтернативи. Агенту потрібно досліджувати.

ε-жадібна стратегія

З імовірністю ε обираємо випадкову дію; інакше обираємо жадібну дію. ε зазвичай поступово зменшують від 1.0 → 0.05 протягом навчання.

import random def select_action(Q, state, epsilon): if random.random() < epsilon: return random.choice(actions) # досліджуємо return argmax(Q[state]) # експлуатуємо

Глибокі Q-мережі (DQN)

Для великих або неперервних просторів станів (наприклад, сирих пікселів з гри Atari) Q-таблиця має забагато записів для зберігання. Глибока Q-мережа (DQN) замінює таблицю нейронною мережею: Q(s, a; θ) ≈ Q*(s, a).

Мережа приймає стан на вхід і видає одне Q-значення для кожної можливої дії. У проривному дослідженні DeepMind 2015 року на вхід подавалися чотири складені кадри 84×84 у відтінках сірого; згорткова мережа + два повноз'єднані шари видавали 18 Q-значень (одне на кожну комбінацію кнопок Atari).

Два прийоми стабільності, які запровадила DQN

# Оновлення DQN (псевдокод) for (s, a, r, s_next) in sample_batch(replay_buffer): target = r + GAMMA * max(target_net(s_next)) prediction = online_net(s)[a] loss = mse(prediction, target) backprop(loss)

За межами Q-навчання

🗺️ Відкрити пошук шляху →

Джерела