Машинне навчання · Блок 8 · Тема 39

Учень без учителя

Навчання з підкріпленням: як агент вчиться діяти, коли ніхто не каже йому правильну відповідь — а лише зрідка повідомляє, наскільки все вийшло.

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

Саме цю схему копіює навчання з підкріпленням (reinforcement learning). Тут немає таблиці «вхід → правильна відповідь». Є агент, який діє, і середовище, яке у відповідь видає число: винагороду. Завдання агента — навчитись діяти так, щоб сума цих чисел за весь час була якнайбільшою. Виглядає скромно, але саме так навчились грати в го краще за людей, керувати охолодженням дата-центрів і, зрештою, робити мовні моделі ввічливими.

01 / ІдеяНавчання з наслідків

Ключова відмінність від решти машинного навчання — у природі зворотного звʼязку. Класифікатор під час навчання бачить правильну мітку: «на цьому фото кіт». Агент бачить лише оцінку того, що він зробив: «за цей крок ти отримав +3». Він не знає, чи існувала дія, яка дала б +10, і ніколи не дізнається, поки не спробує.

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

02 / СловникПʼять слів, з яких складається задача

Будь-яку задачу RL описують одним і тим самим набором понять. Якщо ти можеш заповнити цю таблицю для своєї задачі — ти вже її сформулював.

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

Цикл виглядає так: агент бачить стан s, обирає дію a, середовище повертає винагороду r і новий стан s'. Далі все повторюється. Мета — не максимізувати r на кожному кроці окремо, а максимізувати суму винагород за весь епізод. Це не те саме, і саме в цьому вся складність.

Формально. Такий цикл називають марковським процесом ухвалення рішень (MDP). Слово «марковський» означає одну важливу умову: стан містить усе, що потрібно для рішення, і минуле вже не додає інформації. Якщо це не так — стан описаний погано, і його треба доповнити.

03 / ПорівнянняЧому це не навчання з учителем

Три відмінності, які повністю змінюють інструментарій.

Оцінювальний зворотний звʼязок замість інструктивного

Учитель у класичній задачі каже: «правильна відповідь — кіт». Це інструктивний сигнал: він не залежить від того, що ти відповів, і одразу вказує на істину. Середовище в RL каже: «за твою дію отримуєш 3». Це оцінювальний сигнал: він залежить від обраної дії й нічого не каже про альтернативи. Дізнатись, чи була краща дія, можна лише одним способом — спробувати її. Звідси й уся проблема дослідження, до якої ми дійдемо за два розділи.

Відкладена винагорода

Хід у шахах, який приводить до перемоги через сорок ходів, у момент виконання не дає жодних очок. Винагорода приходить пізніше — іноді набагато пізніше. Тому агент має оцінювати дії не за миттєвою вигодою, а за тим, до чого вони врешті приведуть.

Задача призначення заслуги

Партія закінчилась перемогою: +1. Ходів було сорок. Який із них був хороший? Це задача призначення заслуги (credit assignment): як розподілити одну підсумкову оцінку між усіма діями, що до неї призвели. Уся техніка, яку ми розберемо далі — цінності, дисконтування, часові різниці — це, по суті, різні способи розвʼязати саме цю задачу.

04 / Найпростіший випадокБагаторукий бандит

Приберемо стани й час, лишимо тільки вибір. Перед роботом три дерева. Кожне дає випадкову кількість бананів зі своїм середнім, якого робот не знає. Один крок — одне дерево. Скільки бананів набереш за T кроків?

Задачу називають багаторуким бандитом: «однорукий бандит» — це гральний автомат із важелем, а тут важелів кілька. Робот веде для кожної дії оцінку Q(a) — середню винагороду з усіх разів, коли він цю дію обирав:

Qt(a) = (сума винагород за дію a) / (скільки разів обрано a)

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

Q(a) ← Q(a) + 1/n · [ r − Q(a) ]

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

Інтерактив 1 · Багаторукий бандит

Ліворуч — як оцінки Q збігаються до справжніх середніх. Праворуч — накопичена винагорода проти оракула й проти випадкового вибору.

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

05 / ДилемаДослідження проти використання

Ось конфлікт, який не має ідеального розвʼязку. Використання (exploitation) — обрати дію, яка за поточними оцінками найкраща. Дослідження (exploration) — обрати іншу, щоб уточнити її оцінку. Кожен крок належить чомусь одному: не можна одночасно збирати врожай і перевіряти сусіднє поле.

Найпростіша й найпоширеніша стратегія — ε-жадібна (epsilon-greedy). З імовірністю ε обираємо випадкову дію, з імовірністю 1−ε — найкращу за поточними оцінками. Три режими варто памʼятати напамʼять:

εповедінканаслідок
0чиста жадібністьзастрягає на першій дії, що дала щось хороше; альтернативи не перевіряються ніколи
0,05 — 0,2розумний балансзнаходить найкращу дію й потім здебільшого її і використовує
1чиста випадковістьоцінки найточніші, зате поведінка ніяк ними не користується

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

Інтерактив 2 · Три стратегії дослідження

Вісім дій із різними середніми винагородами. Показано частку кроків, на яких обрано справді найкращу. Усереднено по 150 незалежних запусках; швидкість навчання стала, α = 0,1.

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

06 / ПоведінкаПолітика

Політика (policy, позначають π) — це правило, за яким агент обирає дію в кожному стані. Формально — відображення зі станів у дії:

π(s) → a     або     π(a | s) — імовірність обрати a у стані s

Політика — це і є те, чого ми вчимо. Усе решта (оцінки, цінності, моделі середовища) — допоміжні конструкції, потрібні лише щоб покращити політику. Коли навчання завершене, у продакшен їде саме вона.

07 / ЦінністьФункція цінності V і Q-функція

Щоб покращувати політику, треба вміти оцінювати, наскільки хороша ситуація. Для цього є дві споріднені функції.

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

Vπ(s) = E [ r1 + γr2 + γ2r3 + … | s0 = s ]

Цінність дії Q(s, a) — те саме, але з уточненням: спершу робимо конкретну дію a, а вже потім діємо за політикою:

Qπ(s, a) = E [ r + γ Vπ(s') | s, a ]

Різниця здається дрібною, але вона вирішальна для практики. Якщо ти знаєш лише V, то щоб обрати дію, треба вміти передбачити, куди вона тебе приведе — тобто мати модель середовища. Якщо ти знаєш Q, обирати нічого не треба передбачати: просто бери дію з найбільшим Q(s, a). Саме тому переважна більшість практичних алгоритмів вчить Q, а не V.

π(s) = arg maxa Q(s, a)   ← жадібна політика з Q

08 / ГоризонтДисконтування: чому майбутнє знецінюють

У формулах вище стоїть множник γ (гамма) — коефіцієнт дисконтування, число від 0 до 1. Винагорода, отримана через k кроків, входить у суму з вагою γ^k. Навіщо це потрібно — три причини.

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

Інтерактив 3 · Як γ керує далекоглядністю

Світ-лінія: ліворуч маленьке дерево (+3), праворуч велике (+10). Стовпчики — цінність станів, стрілки — оптимальна політика.

горизонт 1/(1−γ)
ідуть ліворуч
Що відбувається: при великій γ навіть із сусідньої з маленьким деревом клітинки вигідно пройти всю лінію до великого. Знижуй γ — і клітинки біля лівого краю одна за одною «здаються»: для них десять бананів через девʼять кроків коштують уже менше, ніж три банани через один.

09 / МеханізмПохибка часової різниці

Тепер головна ідея всієї теми. Агент зробив один крок: був у s, зробив a, отримав r, опинився в s'. Що з цього можна вивчити?

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

δ = r + γ · maxa' Q(s', a') − Q(s, a)
крок 1 · що ми думали

Стара оцінка цінності дії — просто число з таблиці:

старе = Q(s, a)
крок 2 · що показала реальність

Отримали r і опинились у s'. Найкраще, на що там можна розраховувати, — max Q(s', a'), знецінене на один крок:

ціль = r + γ · maxa' Q(s', a')
крок 3 · зсуваємо оцінку до цілі

Не стрибаємо на ціль повністю — робимо частковий крок розміром α, бо і сама ціль поки що приблизна:

Q(s, a) ← Q(s, a) + α · δ

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

Інтерактив 4 · Один крок Q-навчання

Числова вісь: де стоїть стара оцінка, де ціль, і куди зсунеться Q після оновлення.

ціль
δ похибка
нове Q(s,a)
Внизу — що буде, якщо повторити той самий крок багато разів поспіль: оцінка експоненційно наближається до цілі, і швидкість цього наближення задає рівно α. При α = 1 оцінка стрибає на ціль одразу — і разом із нею стрибає весь шум, який у цій цілі є.

10 / ПрактикаQ-навчання у світі-лінії

Складемо все докупи. Робот стоїть на лінії з одинадцяти клітинок. На лівому краю маленьке дерево (+3), на правому — велике (+10). Обидва завершують епізод. Стартує робот щоразу у випадковій клітинці — це важливо, інакше жадібний агент просто ніколи б не побачив половину світу.

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

Інтерактив 5 · Табличне Q-навчання

Для кожного стану — пара стовпчиків Q(s, ліворуч) і Q(s, праворуч). Стрілка — поточна політика. Знизу — винагорода за епізод.

доходять до +10
станів «праворуч»
середня винагорода за останні 50 епізодів
Обовʼязково спробуй ε = 0: нічию в таблиці ми розбиваємо на користь лівої дії, тож перша ж винагорода +3 закріплює звичку йти ліворуч — і робот більше ніколи від неї не відхиляється. Далі підіймай ε: при 0,05 перевертаються перші кілька станів, при 0,2 — усі девʼять. Малому ε потрібно більше епізодів: постав 0,1 і посунь другий повзунок до кінця. Але при ε близько 1 середня винагорода знову падає, хоча таблиця Q при цьому найточніша: агент знає, куди йти, і не йде.

11 / Два виміриСітка з кактусом

Лінія — це навчальна іграшка. Мінімальний світ, у якому вже видно щось схоже на планування, — сітка. Робот ходить у чотирьох напрямках, десь лежать банани (+10), десь ростуть кактуси (−10 і кінець епізоду), а кожен крок коштує невеликої плати. Ця плата — важлива деталь: без неї агенту байдуже, чи йти до мети десять кроків, чи сто.

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

Інтерактив 6 · Q-навчання в сітці

Колір клітинки — цінність V(s) = max Q(s,·). Стрілка — вивчена політика. Старт щоразу випадковий.

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

12 / ЗастосуванняДе це працює насправді

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

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

13 / МежіЩо йде не так

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

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

Далі в практиці. У practice.ipynb ти напишеш ε-жадібного бандита з нуля, реалізуєш табличне Q-навчання для світу-лінії й сітки, порівняєш його з точним розвʼязком через динамічне програмування і подивишся, як змінюється поведінка агента при різних γ та α.

Далі в темі

Теорію прочитано. Тепер закріпи її на практиці.