Хоча я знаю, що SARSA є політикою, тоді як Q-навчання не відповідає політиці, при перегляді їх формул важко (мені) побачити будь-яку різницю між цими двома алгоритмами.
Згідно з книгою « Підкріплення навчання: вступ» (Саттона та Барто). В алгоритмі SARSA, враховуючи політику, відповідна функція значення значення дії Q (у стані s та дії a, на кроці t), тобто Q (s t , a t ), може бути оновлена наступним чином
Q (s t , a t ) = Q (s t , a t ) + α * (r t + γ * Q (s t + 1 , a t + 1 ) - Q (s t , a t ))
З іншого боку, кроком оновлення алгоритму Q-навчання є наступний
Q (s t , a t ) = Q (s t , a t ) + α * (r t + γ * max a Q (s t + 1 , a) - Q (s t , a t ))
який також можна записати як
Q (s t , a t ) = (1 - α) * Q (s t , a t ) + α * (r t + γ * max a Q (s t + 1 , a))
де γ (гамма) - коефіцієнт знижки, а r t - винагорода, отримана від навколишнього середовища за час t.
Чи різниця між цими двома алгоритмами полягає в тому, що SARSA шукає лише наступне значення політики, тоді як Q-learning - наступне максимальне значення політики?
TLDR (і моя власна відповідь)
Дякую всім, хто відповідає на це запитання з мого першого запитання. Я зробив репозиторій github, граючи з Q-Learning, і емпірично зрозумів, у чому різниця. Все це зводиться до того, як ви обираєте наступну найкращу дію , яка з алгоритмічної точки зору може бути середньою , максимальною або найкращою дією залежно від того, як ви вибрали її реалізувати.
Інша головна відмінність полягає в тому, коли цей вибір відбувається (наприклад, онлайн проти офлайн ) і як / чому це впливає на навчання. Якщо ви читаєте це у 2019 році і є більш практичною людиною, гра з проблемою іграшок RL - це, мабуть, найкращий спосіб зрозуміти відмінності.
Останнє важливе зауваження полягає в тому, що як Сутон і Барто, так і Вікіпедія часто мають неоднозначні, заплутані або неправильні формульні уявлення щодо наступних найкращих / максимальних дій та винагород :
r (t + 1)
насправді
r (t)
Сподіваюся, це допомагає комусь коли-небудь застрягти в цьому.