ГоловнаСтаттіМашинне Навчання

Навчання з Підкріпленням: Навчання Агента на Основі Спроб і Помилок

Цикл агент-середовище, рівняння Беллмана та Q-навчання — три основні ідеї, що лежать в основі кожної системи навчання з підкріпленням, від іграшкового розв’язування лабіринтів до AlphaGo.

mysimulator teamОновлено — червень 2026≈ 11 хв читання▶ Відкрити симуляцію

Цикл: агент, среда, награда

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

Стратегія агента називається політикою, записаною π(s) — відображенням з міркувань стану до дій. Ціль освітного програмування полягає в тому, щоб знайти політику π*, яка максимізує загальну винагороду, накопичену з часом, і знайти її виключно шляхом спроб та помилок, а не тим, що їй говорять відповідь.

жива демонстрація · пов'язана симуляція● LIVE

Марківські процеси та дисконтований прибуток

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

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

G_t = r_t + γ·r_(t+1) + γ²·r_(t+2) + ... = Σ_k γ^k · r_(t+k) З γ = 0.99, винагорода на 100 кроків у майбутньому коштує лише приблизно 0.37 тієї ж винагоди зараз. γ близький до 0 робить агента короткозорим; γ близький до 1 змушує його планувати далеко вперед, але вимагає набагато більше даних, перш ніж оцінки значень стабілізуються. Типові практичні значення коливаються між 0.9 та 0.999.

G_t = r_t + γ·r_(t+1) + γ²·r_(t+2) + ... = Σ_k γ^k · r_(t+k)

Функції цінності та рівняння Беллмана

Дві пов’язані величини виконують всю роботу. Функція значення стану V(s) — це очікувана дисконтована винагорода, починаючи з стану s і дотримуючись політики π. Функція дії значення Q(s, a) — це очікувана дисконтована винагорода, починаючи зі стану s, виконання дії a, і подальшого дотримання політики π. Якщо ви знаєте оптимальне Q*(s, a) для кожної пари станів та дій, то оптимальна політика випливає вільно — завжди приймайте дію з найвищим значенням Q.

Внесок Річарда Беллмана полягав у тому, що він помітив, що Q* є самоузгодженим: значення перебування в стані s та виконання дії a дорівнює неминучій винагороді плюс дисконтованому значенню поведінки оптимально від будь-якого наступного стану.

Рівняння Беллмана оптимізації: Q*(s, a) = E[ r + γ · max_a' Q*(s', a') ] // "значення (s,a) дорівнює винагороді, яку ви отримуєте зараз, // плюс дисконтованому значенню відігравання ідеально від s' далі" Це перетворює «знайти оптимальну політику» на задачу фіксної точки: почніть з будь-якого припущення щодо Q, повторюйте застосування оновлення Беллмана та, за певних умов, припущення збігається до Q*.

Bellman optimality equation:
Q*(s, a) = E[ r + γ · max_a' Q*(s', a') ]

// "the value of (s,a) is the reward you get now,
//  plus the discounted value of playing perfectly from s' onward"

Q-learning: применение уравнения в алгоритм

Q-learning — это то, что происходит при применении уравнения Беллмана с использованием образцов опыта вместо известной модели среды. После каждого перехода (s, a, r, s′) текущая оценка подталкивается к целевому значению Беллмана с помощью скорости обучения α:

Q(s,a) ← Q(s,a) + α · [ r + γ · max_a' Q(s',a') − Q(s,a) ] \_____________ TD-ошибка ____________/ В скобках находится временная ошибка (TD) — насколько неверна текущая оценка по сравнению с целевым значением Беллмана на один шаг. Поскольку Q-learning является безмодельной стратегией, ему никогда не нужно знать вероятности перехода среды или функцию вознаграждения; ему просто нужно уметь действовать и наблюдать за результатом. Для небольшого, дискретного сетки, такого как лабиринт, значения Q живут в таблице, индексированной (состояние, действие); для непрерывных или многомерных состояний таблица заменяется функцией аппроксимации, такой как нейронная сеть — Глубокая Q-сеть, стабилизированная буфером повторного воспроизведения прошлых переходов и медленно обновляемой целевой сетью, чтобы цель обучения не двигалась под ногами агента на каждом шагу.

Q(s,a) ← Q(s,a) + α · [ r + γ · max_a' Q(s',a') − Q(s,a) ]
                        \_____________ TD error ____________/

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

Виключно жадібний агент завжди обирає дію з найвищим поточним Q-значенням. На ранніх етапах навчання ці оцінки мало відрізняються від здогадок, тому сліпа жадність може загнати агента в нудьгуючий режим, який він більше не ставить під сумнів. Стандартним рішенням є ε-жадібне дослідження: з ймовірністю ε вибирайте дію випадковим чином, інакше — жадібну. ε зазвичай починається близько 1,0 (більш-менш випадково, щоб охарактеризувати простір) та поступово зменшується до невеликого значення, наприклад, 0,05, коли Q-значення стають надійними.

function selectAction(Q, state, epsilon):
  if random() < epsilon:
    return randomAction()          // explore
  return argmax_a Q[state][a]      // exploit

Як симуляція лабіринту тут використовує це

Симуляція на цьому сайті працює за принципом табличного Q-навчання на сітчастому лабіринті в режимі реального часу: кожна клітина є станом, кожен рух — дією, а винагорода — невеликий штраф за крок плюс велика бонусна сума за досягнення мети. Три слайдери, які ви можете переміщати — ε, α та γ — це саме ті три величини вище, тому спостерігаючи за зміною поведінки агента, коли ви їх змінюєте, ви спостерігаєте за торгівлею між дослідженням і експлуатацією, торговлею швидкістю навчання та горизонтом планування в дії замість того, щоб залишатися абстрактними на сторінці. Поставте ε до нуля, і агент застигне з політикою, яку він зараз має, гарною чи поганою; збільште γ до 1, і він почне використовувати довші, більш непрямі шляхи, які приносять користь далі в лабіринті.

Frequently asked questions

Яка різниця між Q-навчанням та модельним підкріпленим навчанням?

Q-навчання є безмодельною (model-free) методикою: воно ніколи не оцінює ймовірності переходу стану чи функції винагороди, а просто вибірково (state, action, reward, next state) зразок переходів і безпосередньо оновлює Q-значення. Модельні методи спочатку навчаються або отримують модель середовища та потім планують у ній, що може бути більш ефективним щодо використання даних, але несе ризик планування на основі неправильної моделі.

Якщо мета – діяти максимально агресивно, чому агент взагалі досліджує?

Початкові оцінки Q-значень є ненадійними, тому дії, що базуються на максимальній агресії, з самого початку можуть заблокувати агента в посередній політиці, яку він ніколи не переглядає. Епсилон-гредний пошук (epsilon-greedy exploration) змушує час від часу виконувати випадкові дії, щоб агент продовжував вибірку всього простору станів та дій; коли оцінки покращуються, епсилон зменшується, і політика сходиться до агресивної.

Чому знижують майбутні винагороди за допомогою гами замість того, щоб рахувати їх рівно?

Фактор дисконтування (discount factor) гама нижче 1 утримує нескінченну суму майбутніх винагород кінцевою, відображає розумний уподобання отримання винагороди раніше, аніж пізніше, і контролює, на який час вперед агент ефективно планує. Гама близька до 0 робить агента короткозорим; гама близька до 1 змушує його враховувати віддалені винагороди майже так само важливо, як і миттєві, що потребує більше даних для надійної оцінки.

Спробуйте наживо

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

▶ Відкрити симуляцію the simulation

Що ви знайшли?

Додати кроки відтворення (опційно)