Визначені часові проміжки проти навчання з черги
Звичайний світлофор працює за фіксованим часовим циклом: зелений для сходу-заходу на 30 секунд, потім червоне утримання, а потім зелений для заходу-сходу на 30 секунд, повторюється безперервно, незалежно від того, чи є будь-який транспортний засіб на жодній з під’їздів. Це просто і передбачувано, але надзвичайно неефективно використовує зелені часові проміжки на порожніх під’їздах о 2:00 ночі та позбавляє від завантаженості під’їзд під час пік часу. Ця симуляція навчить агента Q-навчання в режимі реального часу, у вашому браузері, керувати тим самим перехрестя, читаючи довжини черги та вибираючи, який напрямок отримує зелений колір — і порівнює його з фіксованим часовим циклом, щоб розрив був видимим, а не просто заявленим.
Оцінка перетину як Марковського процесу рішень
Для навчання з підкріпленням потрібний стан, набір дій та винагорода. У цьому випадку станом є дискриміноване представлення перетину — зазвичай довжина черги на кожному під'їзді, яка групується в невелику кількість рівнів, плюс який режим зараз активний і як довго він активний. Дія полягає у тому, що це невелика дія: зберігати поточний режим або переходити до наступного. Винагорода, що видається після кожної дії, негативна та пропорційна чомусь, що дійсно важливо для міста — загальній кількості транспортних засобів, які чекають, або сумарному часу очікування — тому агент явно намагається мінімізувати накопичений час очікування, а не максимізувати пропускну здатність як абстрактне число.
state = (queue_N, queue_S, queue_E, queue_W, current_phase, phase_duration)
action = { keep_phase, switch_phase }
reward = - (total vehicles waiting this step)
Оцінювання за допомогою Q-навчання: оновлення правила
Q-навчання підтримує таблицю Q(s, a), яка оцінює довгостроковий знижений прибуток від виконання дії a в стані s і подальше оптимальне дію вічно. Кожен крок він спостерігає перехід (s, a, r, s') і змушує таблицю рухатися до спостережуваних даних:
Q(s, a) Термін у дужках є тимчасова похибка: різниця між тим, що очікував агент (стара Q-значення) і тим, що він тепер вважає ближчим до правди (отриманий приз плюс найкраща оцінка всього після нього). Повторюється тисячами перетинів циклів, таблиця сходиться до справжньої оптимальної функції дії-цінності без будь-якого повідомлення про основні принципи черги — він навчається лише за допомогою спроб, помилок і сигналу винагороди.
Q(s, a) <- Q(s, a) + alpha * [ r + gamma * max_a' Q(s', a') - Q(s, a) ] alpha = learning rate (how much to trust the newest sample) gamma = discount factor (how much future reward matters vs. immediate)
Дослідження проти експлуатації
Агент, який завжди обирає дію з найвищим поточним Q-значенням, може застрягти, експлуатуючи посередню політику, яку він виявив на ранньому етапі, ніколи не відкриваючи кращої. Епсилон-грибний пошук вирішує це простим компромісом: з ймовірністю епсилона виконується випадкова дія замість слідуючої, і епсилон зменшується в процесі навчання, щоб агент міг активно досліджувати на ранньому етапі (коли таблиця Q ще ненадійна) та впевнено експлуатувати пізніше (когда таблиця зафіксувалась). Цей графік зменшення є найбільш помітним регулюванням у темпі зростання кривої навчання в демонстрації — недостатньо дослідження призводить до того, що агент рано приймає погану політику; надмірна експлуатація витрачає час на те, щоб ніколи не зафіксуватись.
action = random(actions) with probability epsilon(t)
= argmax_a Q(state, a) with probability 1 - epsilon(t)
epsilon(t) decays from ~1.0 toward ~0.05 over training
Чому фіксований час оптимальний лише для точного трафіку, а реальний трафік коливається в залежності від часу доби, тижня та непередбачуваних подій.
Фіксоване часове планування є оптимальним лише для точної трафікової схеми, на яку було налагоджено агента, а реальний трафік не відповідає цій схемі — він коливається в залежності від часу доби, тижня та непередбачуваних подій. Стан черги довжини у Q-learning агента надає йому те, чого фіксоване часове планування структурно не може мати: воно бачить зараз, скільки трафіку чекає на кожній артерії, і може тримати зелене світло на кілька секунд довше для заблокованої артерії або скоротити зелене світло на кілька секунд для порожньої. Протягом будь-якого епізоду з реальним коливанням прибуття, ця реактивна перевага накопичується і призводить до значно нижчого середнього часу очікування — що точно відображає розбіжність між двома кривими навчання в режимі реального часу в демонстрації, а не просто стверджується.
Вимоги та компроміси є реальними, а не деталями реалізації, які можна ігнорувати. Повний табличний формат дії-стану масштабується погано — кожна додаткова артерія або більш дрібний контейнер черги множить розмір таблиці — тому масштабні розгортання міст все частіше використовують функціональне наближення (Глибокі Q-мережі) замість прямої таблиці, коли обсяг простору стану перевищує кілька перехресть. І Q-learning агент, навчений трафіку одного перехрестя, не автоматично узагальнюється до трафіку іншого перехрестя з різною геометрією або шаблоном прибуття; його потрібно перенавчати або, щонайменше, налаштовувати.
Часті запитання
Що саме навчає агент – фіксований графік?
Ні. Він навчається політиці: правила, яке відображає поточний стан черги на дію (тримати або перейти в наступну фазу). На відміну від фіксованого часового графіка, ця політика реагує по-різному на завантажену чергу, ніж на порожнє перехрестя вночі, оскільки вона базується на довжині черг, які спостерігаються на кожному кроці, а не на фіксованому часі.
Чому агент іноді діє випадково замість того, щоб завжди обирати найкращу відому дію?
Це епсилон-гридний пошук. На ранніх етапах навчання Q-таблиця не надійна, тому довіра лише до неї (чистий видобуток) ризикує зафіксувати посередню політику, яку агент випадково знайшов першим. Приймання періодичних випадкових дій дозволяє йому відкрити кращі варіанти; епсилон зменшується з часом, тому агент досліджує менше та експлуатує більше, коли оцінки стають надійними.
Чи масштабується цей підхід до всього міста перехресть?
Ні, безпосередньо з використанням чистої Q-таблиці – таблиця експоненціально зростає комбінаторно зі збільшенням кількості підходів, більш дрібним розбиттям черг або координацією між сусідніми перехрестями. Реальні системи на рівні міста зазвичай замінюють таблицю нейронною мережевою функціональною аппроксимацією (Глибокі Q-мережі) та часто координують агентів кількох перехресть, що є значно складнішою багатоагентською задачею машинного навчання, ніж показана тут з одним перехрестям.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Traffic Signal Optimization і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Traffic Signal Optimization