Дитина вчиться ходити без жодного розміченого датасету. Ніхто не показує їй правильний кут згину коліна і не виправляє помилку в кожному суглобі. Є лише результат: або крок вдався, або ти на підлозі. З цього мізерного сигналу — і з тисяч спроб — вибудовується вміння, якого не запрограмуєш явно.
Саме цю схему копіює навчання з підкріпленням (reinforcement learning). Тут немає таблиці «вхід → правильна відповідь». Є агент, який діє, і середовище, яке у відповідь видає число: винагороду. Завдання агента — навчитись діяти так, щоб сума цих чисел за весь час була якнайбільшою. Виглядає скромно, але саме так навчились грати в го краще за людей, керувати охолодженням дата-центрів і, зрештою, робити мовні моделі ввічливими.
01 / ІдеяНавчання з наслідків
Ключова відмінність від решти машинного навчання — у природі зворотного звʼязку. Класифікатор під час навчання бачить правильну мітку: «на цьому фото кіт». Агент бачить лише оцінку того, що він зробив: «за цей крок ти отримав +3». Він не знає, чи існувала дія, яка дала б +10, і ніколи не дізнається, поки не спробує.
Друга відмінність — час. У класифікації кожен приклад незалежний. В RL дія змінює світ: агент опиняється в новому стані, з якого доступні інші дії й інші винагороди. Ланцюжок таких переходів від початку до кінця називають епізодом. Партія в шахи, поїздка робота від дверей до дверей, сесія користувача — усе це епізоди.
02 / СловникПʼять слів, з яких складається задача
Будь-яку задачу RL описують одним і тим самим набором понять. Якщо ти можеш заповнити цю таблицю для своєї задачі — ти вже її сформулював.
| поняття | що це | приклад: робот шукає банани |
|---|---|---|
| агент | той, хто ухвалює рішення й вчиться | сам робот |
| середовище | усе інше; воно змінюється й видає винагороду | кімната з деревами |
| стан s | опис ситуації, у якій агент зараз | координата робота |
| дія a | що агент може зробити зі стану s | крок ліворуч або праворуч |
| винагорода r | число, яким середовище оцінює перехід | кількість знайдених бананів |
Цикл виглядає так: агент бачить стан s, обирає дію a,
середовище повертає винагороду r і новий стан s'. Далі все
повторюється. Мета — не максимізувати r на кожному кроці окремо, а
максимізувати суму винагород за весь епізод. Це не те саме, і саме
в цьому вся складність.
03 / ПорівнянняЧому це не навчання з учителем
Три відмінності, які повністю змінюють інструментарій.
Оцінювальний зворотний звʼязок замість інструктивного
Учитель у класичній задачі каже: «правильна відповідь — кіт». Це інструктивний сигнал: він не залежить від того, що ти відповів, і одразу вказує на істину. Середовище в RL каже: «за твою дію отримуєш 3». Це оцінювальний сигнал: він залежить від обраної дії й нічого не каже про альтернативи. Дізнатись, чи була краща дія, можна лише одним способом — спробувати її. Звідси й уся проблема дослідження, до якої ми дійдемо за два розділи.
Відкладена винагорода
Хід у шахах, який приводить до перемоги через сорок ходів, у момент виконання не дає жодних очок. Винагорода приходить пізніше — іноді набагато пізніше. Тому агент має оцінювати дії не за миттєвою вигодою, а за тим, до чого вони врешті приведуть.
Задача призначення заслуги
Партія закінчилась перемогою: +1. Ходів було сорок. Який із них був хороший? Це задача призначення заслуги (credit assignment): як розподілити одну підсумкову оцінку між усіма діями, що до неї призвели. Уся техніка, яку ми розберемо далі — цінності, дисконтування, часові різниці — це, по суті, різні способи розвʼязати саме цю задачу.
04 / Найпростіший випадокБагаторукий бандит
Приберемо стани й час, лишимо тільки вибір. Перед роботом три дерева. Кожне дає
випадкову кількість бананів зі своїм середнім, якого робот не знає. Один крок — одне
дерево. Скільки бананів набереш за T кроків?
Задачу називають багаторуким бандитом: «однорукий бандит» — це
гральний автомат із важелем, а тут важелів кілька. Робот веде для кожної дії оцінку
Q(a) — середню винагороду з усіх разів, коли він цю дію обирав:
Оновлювати це середнє зручно по одному спостереженню, не зберігаючи історію:
Придивись до форми запису — вона тут не випадкова, і саме її ми зустрінемо ще двічі. У квадратних дужках стоїть різниця між тим, що сталось, і тим, чого ми чекали. Оцінка зсувається в бік несподіванки, і крок зсуву тим менший, чим більше даних уже зібрано.
Інтерактив 1 · Багаторукий бандит
Ліворуч — як оцінки Q збігаються до справжніх середніх. Праворуч — накопичена винагорода проти оракула й проти випадкового вибору.
05 / ДилемаДослідження проти використання
Ось конфлікт, який не має ідеального розвʼязку. Використання (exploitation) — обрати дію, яка за поточними оцінками найкраща. Дослідження (exploration) — обрати іншу, щоб уточнити її оцінку. Кожен крок належить чомусь одному: не можна одночасно збирати врожай і перевіряти сусіднє поле.
Найпростіша й найпоширеніша стратегія — ε-жадібна
(epsilon-greedy). З імовірністю ε обираємо випадкову дію, з імовірністю
1−ε — найкращу за поточними оцінками. Три режими варто памʼятати напамʼять:
| ε | поведінка | наслідок |
|---|---|---|
| 0 | чиста жадібність | застрягає на першій дії, що дала щось хороше; альтернативи не перевіряються ніколи |
| 0,05 — 0,2 | розумний баланс | знаходить найкращу дію й потім здебільшого її і використовує |
| 1 | чиста випадковість | оцінки найточніші, зате поведінка ніяк ними не користується |
Є й розумніша альтернатива, яка взагалі не потребує випадковості — оптимістична ініціалізація. Замість нулів початкові оцінки ставлять завідомо завищеними. Тоді будь-яка спроба розчаровує (реальна винагорода менша за очікувану), оцінка падає, і жадібний агент сам переходить до наступної дії — поки не перебере всі. Дослідження виникає само собою, без жодного випадкового вибору.
Інтерактив 2 · Три стратегії дослідження
Вісім дій із різними середніми винагородами. Показано частку кроків, на яких обрано справді найкращу. Усереднено по 150 незалежних запусках; швидкість навчання стала, α = 0,1.
06 / ПоведінкаПолітика
Політика (policy, позначають π) — це правило, за яким
агент обирає дію в кожному стані. Формально — відображення зі станів у дії:
Політика — це і є те, чого ми вчимо. Усе решта (оцінки, цінності, моделі середовища) — допоміжні конструкції, потрібні лише щоб покращити політику. Коли навчання завершене, у продакшен їде саме вона.
07 / ЦінністьФункція цінності V і Q-функція
Щоб покращувати політику, треба вміти оцінювати, наскільки хороша ситуація. Для цього є дві споріднені функції.
Цінність стану V(s) — скільки сумарної винагороди агент
очікує отримати, якщо зараз він у стані s і далі діє за політикою π:
Цінність дії Q(s, a) — те саме, але з уточненням: спершу
робимо конкретну дію a, а вже потім діємо за політикою:
Різниця здається дрібною, але вона вирішальна для практики. Якщо ти знаєш лише
V, то щоб обрати дію, треба вміти передбачити, куди вона тебе приведе —
тобто мати модель середовища. Якщо ти знаєш Q, обирати нічого не треба
передбачати: просто бери дію з найбільшим Q(s, a). Саме тому переважна
більшість практичних алгоритмів вчить Q, а не V.
08 / ГоризонтДисконтування: чому майбутнє знецінюють
У формулах вище стоїть множник γ (гамма) — коефіцієнт
дисконтування, число від 0 до 1. Винагорода, отримана через k
кроків, входить у суму з вагою γ^k. Навіщо це потрібно — три причини.
- Математична. Якщо епізод нескінченний, сума винагород без
дисконтування розбігається, і порівнювати політики стає нічим. Із
γ < 1сума завжди скінченна. - Змістовна. Далеке майбутнє менш передбачуване. Знецінюючи його, ми чесно враховуємо власну невпевненість.
- Практична.
γзадає горизонт планування. Грубо кажучи, агент бачить приблизно на1/(1−γ)кроків уперед: приγ = 0,9це десяток кроків, приγ = 0,99— сотня.
Наслідок для поведінки прямий. Маленька γ робить агента короткозорим:
він хапає найближчу винагороду, навіть якщо трохи далі лежить набагато більша. Велика
γ робить його далекоглядним — але й повільнішим у навчанні, бо сигнал
доводиться протягувати крізь довший ланцюжок кроків.
Інтерактив 3 · Як γ керує далекоглядністю
Світ-лінія: ліворуч маленьке дерево (+3), праворуч велике (+10). Стовпчики — цінність станів, стрілки — оптимальна політика.
09 / МеханізмПохибка часової різниці
Тепер головна ідея всієї теми. Агент зробив один крок: був у s, зробив
a, отримав r, опинився в s'. Що з цього можна
вивчити?
У нас є дві оцінки однієї й тієї самої величини. Перша — стара, та, що вже записана
в таблиці: Q(s, a). Друга — щойно отримана з реальності: винагорода
r плюс дисконтована оцінка найкращого продовження зі стану s'.
Друга оцінка спирається на один справжній крок, тож вона трохи ближча до істини.
Різницю між ними називають похибкою часової різниці:
Стара оцінка цінності дії — просто число з таблиці:
Отримали r і опинились у s'. Найкраще, на що там можна
розраховувати, — max Q(s', a'), знецінене на один крок:
Не стрибаємо на ціль повністю — робимо частковий крок розміром α,
бо і сама ціль поки що приблизна:
Це і є Q-навчання. Зверни увагу на дві речі. По-перше, форма оновлення дослівно та сама, що й у бандита: «оцінка плюс крок помножити на несподіванку». По-друге, оцінка одного стану підтягується до оцінки сусіднього — і завдяки цьому інформація про винагороду поступово розтікається по всій таблиці назад від цілі. Саме так розвʼязується задача призначення заслуги: ніхто нічого не розподіляє явно, знання просто просочується на крок назад щоразу, коли агент проходить цим шляхом.
Інтерактив 4 · Один крок Q-навчання
Числова вісь: де стоїть стара оцінка, де ціль, і куди зсунеться Q після оновлення.
10 / ПрактикаQ-навчання у світі-лінії
Складемо все докупи. Робот стоїть на лінії з одинадцяти клітинок. На лівому краю маленьке дерево (+3), на правому — велике (+10). Обидва завершують епізод. Стартує робот щоразу у випадковій клітинці — це важливо, інакше жадібний агент просто ніколи б не побачив половину світу.
Таблиця Q спочатку заповнена нулями, тому перша ж дія, яка принесла
щось позитивне, стає для агента найкращою назавжди — якщо тільки ε не змусить його
спробувати інше. Покрути ε і кількість епізодів:
Інтерактив 5 · Табличне Q-навчання
Для кожного стану — пара стовпчиків Q(s, ліворуч) і Q(s, праворуч). Стрілка — поточна політика. Знизу — винагорода за епізод.
11 / Два виміриСітка з кактусом
Лінія — це навчальна іграшка. Мінімальний світ, у якому вже видно щось схоже на планування, — сітка. Робот ходить у чотирьох напрямках, десь лежать банани (+10), десь ростуть кактуси (−10 і кінець епізоду), а кожен крок коштує невеликої плати. Ця плата — важлива деталь: без неї агенту байдуже, чи йти до мети десять кроків, чи сто.
Нічого нового в алгоритмі немає: та сама таблиця Q, те саме оновлення
через δ. Змінилась лише кількість станів і дій. Але результат уже читається
як поведінка: стрілки складаються в маршрут, який обходить кактуси.
Інтерактив 6 · Q-навчання в сітці
Колір клітинки — цінність V(s) = max Q(s,·). Стрілка — вивчена політика. Старт щоразу випадковий.
12 / ЗастосуванняДе це працює насправді
| сфера | що є станом і дією | у чому виграш |
|---|---|---|
| ігри | позиція на дошці; хід | го, шахи, StarCraft — рівень, недосяжний для правил, написаних людиною |
| робототехніка | показники сенсорів; момент на приводах | ходьба, захват предметів, польот — рухи, які важко задати аналітично |
| реклама й рекомендації | профіль користувача; який банер показати | класичний бандит: дослідження нових варіантів проти показу вивіреного |
| керування ресурсами | завантаження системи; розподіл потужностей | охолодження дата-центрів, трафік, енергомережі |
| мовні моделі | діалог; наступний токен | RLHF — донавчання під людські вподобання |
Останній рядок вартий окремого слова, бо саме через нього RL сьогодні торкається всіх. RLHF (навчання з підкріпленням на людському зворотному звʼязку) — це спосіб зробити мовну модель корисною. Проблема в тому, що «корисна відповідь» — не мітка, яку можна поставити в датасет: правильних відповідей багато, і різняться вони тонко. Тому роблять інакше: людям показують пари відповідей і питають, яка краща. На цих порівняннях вчать окрему модель винагороди, а вже вона видає число, яке мовна модель максимізує звичайними методами RL. Мітки замінили на переваги — і задача стала розвʼязною.
13 / МежіЩо йде не так
RL виглядає універсально, і саме тому варто одразу знати, чому його не застосовують скрізь.
- Потрібні мільйони спроб. Табличний агент у нашій сітці вчиться за сотні епізодів; агент у грі — за десятки мільйонів. Якщо кожна спроба коштує грошей чи ламає обладнання, навчання наживо неможливе — потрібен симулятор.
- Винагорода — це технічне завдання. Агент максимізує рівно те число, яке ви написали, а не те, що мали на увазі. Класичний приклад: човен у гонці, якому нарахували очки за проміжні бонуси, навчився крутитись на місці й збирати їх замість того, щоб фінішувати.
- Нестабільність. Ціль оновлення сама залежить від поточних оцінок, тож агент вчиться на власних припущеннях. У табличному випадку це збігається, у поєднанні з нейромережами — часто ні, і з цим борються цілим набором хитрощів.
- Слабка відтворюваність. Результат сильно залежить від початкового зерна випадковості. Порівнювати два RL-алгоритми за одним запуском безглуздо — потрібно кілька запусків і довірчі інтервали.
І все ж ідея, заради якої це варто знати, значно більша за конкретні алгоритми. Навчання з підкріпленням — це формалізація того, як узагалі можна вчитись без учителя, маючи лише наслідки власних дій. Три конструкції з цієї лекції — цінність як спосіб оцінювати ситуацію, дисконтування як спосіб зважувати майбутнє і похибка часової різниці як спосіб вчитись на несподіванках — зустрінуться тобі скрізь, від класичних алгоритмів до сучасних мовних моделей.
practice.ipynb ти напишеш
ε-жадібного бандита з нуля, реалізуєш табличне Q-навчання для світу-лінії й сітки,
порівняєш його з точним розвʼязком через динамічне програмування і подивишся, як
змінюється поведінка агента при різних γ та α.Далі в темі
Теорію прочитано. Тепер закріпи її на практиці.