У чому різниця між Q-learning та SARSA?


88

Хоча я знаю, що 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)

Сподіваюся, це допомагає комусь коли-небудь застрягти в цьому.

Відповіді:


57

Так, це єдина різниця. Політика SARSA вивчає значення дій щодо політики, якої вона дотримується, тоді як Q-Learning, що не відповідає політиці, робить це щодо жадібної політики. За деяких загальних умов вони обидва сходяться до функції реального значення, але з різною швидкістю. Q-Learning має тенденцію зближуватися трохи повільніше, але має можливість продовжувати навчання, змінюючи політику. Крім того, Q-Learning не гарантує зближення в поєднанні з лінійним наближенням.

На практиці, згідно з ε-жадібною політикою, Q-Learning обчислює різницю між Q (s, a) та максимальним значенням дії, тоді як SARSA обчислює різницю між Q (s, a) та зваженою сумою середньої дії значення і максимум:

Q-навчання: Q (s t + 1 , a t + 1 ) = max a Q (s t + 1 , a)

SARSA: Q (s t + 1 , a t + 1 ) = ε · означає a Q (s t + 1 , a) + (1-ε) · max a Q (s t + 1 , a)


4
Гаразд, як тоді Сарса обирає політику? Я бачу, що Qlearning завжди дотримуватиметься політики, яка обіцяє, що вона буде діяти, щоб перейти до наступної найкращої політики. Які критерії вибору наступної політики в Сарсі (в основному, що я хочу знати, це те, як оцінити для політики Q (S, A), як вибрати найкращу дію). Хіба це не те саме, тобто вибір для стану S дії A, яка буде мати найвище (тобто максимальне) Q '(S, A)?
Ælex

7
Політика є правилом вибору наступної дії. Це те, що вам потрібно вибрати при реалізації алгоритму. Найпростіша політика - це жадібна політика - де агент завжди вибирає найкращі дії. З цією політикою SARSA та Q-Learning однакові. Кращим вибором для навчання є ε-жадібна політика, де деякі дії вибираються навмання.
Дон Реба

2
Гаразд, саме тому я спочатку поставив питання, в даному випадку вони обидва однакові. Дуже дякую ! Я використовую e-Greedy. Тож Qlearning відрізняється лише у випадку поза політикою, коли дії вибираються випадковим чином, але оновлення за допомогою Q-навчання максимізує значення політики?
Ælex

2
Відповідно до ε-жадібної політики очікуване значення за SARSA - це зважена сума середнього значення дії та найкращого значення дії: Q (s_t + 1, a_t + 1) = ε · середнє (Q (s, a)) + (1-ε) · макс. (Q (s, a)). Підручник подає це у розділі 5.4 Політичний контроль за Монте-Карло.
Дон Реба

77

Коли я вивчав цю частину, мене теж дуже бентежив, тому я зібрав два псевдокоди від R.Sutton та AGBarto, сподіваючись зробити різницю яснішою.

введіть тут опис зображення

Сині поля виділяють ту частину, де два алгоритми насправді відрізняються. Цифри виділяють більш детальну різницю, яка буде пояснена пізніше.

TL; NR :

|             | SARSA | Q-learning |
|:-----------:|:-----:|:----------:|
| Choosing A' |   π   |      π     |
| Updating Q  |   π   |      μ     |

де π - ε-жадібна політика (наприклад, ε> 0 при дослідженні), а μ - жадібна політика (наприклад, ε == 0, НЕ досліджується).

  1. Враховуючи, що Q-Learning використовує різні політики для вибору наступної дії A 'та оновлення Q. Іншими словами, він намагається оцінити π, дотримуючись іншої політики μ, тому це алгоритм, який не відповідає політиці.

  2. На відміну від цього, SARSA постійно використовує π, отже, це алгоритм, який відповідає політиці.

Більш детальне пояснення :

  1. Найважливіша різниця між ними полягає в тому, як Q оновлюється після кожної дії. SARSA використовує Q ', точно дотримуючись ε-жадібної політики, оскільки з неї випливає A'. На відміну від цього, Q-навчання використовує максимум Q 'для всіх можливих дій для наступного кроку. Це виглядає як дотримання жадібної політики з ε = 0, тобто НІ досліджень у цій частині.

  2. Однак, фактично вживаючи дії, Q-навчання все ще використовує дії, вжиті з ε-жадібної політики. Ось чому "Виберіть A ..." знаходиться всередині циклу повторення.

  3. Дотримуючись циклічної логіки Q-навчання, A 'все ще з ε-жадібної політики.


5
Вітаємо з прекрасною графікою та фотографіями. Через кілька років після того, як я задав це питання, я зрозумів, що ітерація стану та дії, а також ітерація та оновлення вартості політики - це два різні процеси. На жаль, Саттон і Барто не дають цього зрозуміти. Те, як ви приймаєте рішення, впливає на алгоритми, як ви пояснили. Максимальна дія в Q-Learning зазвичай передбачає вибір дії з наступними найкращими Q (s, a), наприклад, жадібним. У Сарсі це не так, ви або дотримуєтеся політики (он-лайн), або досліджуєте нову, залежно від випадкової ймовірності. Ваш опис на місці!
Ælex

@SilentCrash, ні, це оцінює π. μ - це жадібна політика, лише для вибору дії.
zyxue

1
@zyxue Але в таблиці ви писали, що вона оновлює Q так, ніби слідує за μ (обчислює μ), насправді дотримуючись ε-жадібної політики π.
SilentCrash

Чи може метод, що не відповідає політиці, вибрати A 'із поведінки людини (π) та оновити Q із жадібної політики (μ)?
Роберт,

1
Ще одним моментом, який я хочу сказати, є те, що, обираючи наступну дію, як SARSA, так і Q-навчання використовують політику жадібного до епсилону, якщо всі значення Q однакові, вони повинні вибирати однакову дію, якщо ігнорувати випадкові частини в епсилоні. жадібний. Однак, значення Q стануть більш різними в якийсь момент під час навчання, оскільки рівняння оновлення відрізняється для SARSA та Q-навчання, тому вони можуть в кінцевому підсумку вибирати різні дії, навіть якщо використовувати ту саму жадібну до стратегії вдосконалення політики. Іншими словами, повторена політика стане іншою.
StayFoolish

18

Яка математична різниця?

Як уже було описано в більшості інших відповідей, різниця між двома оновленнями математично справді полягає в тому, що при оновленні Q- значення для пари стану дії (S t , A t ) :

  • Sarsa використовує політику поведінки ( що означає, політику , яка використовується агентом для генерації досвіду роботи в середовищі, яка зазвичай епсилон -greedy) , щоб вибрати додаткові дії A T + 1 , а потім використовує Q (S T + 1 , А т +1 ) (з урахуванням гамми ) як очікувані майбутні прибутки при обчисленні цілі оновлення.
  • Q- навчання не використовує політику поведінки для вибору додаткової дії A t + 1 . Натомість він оцінює очікувані майбутні прибутки в правилі оновлення як максимум A Q (S t + 1 , A) . Оператор max, який тут використовується, можна розглядати як "дотримується" абсолютно жадібної політики. Агент насправді не дотримується жадібної політики ; у правилі оновлення лише сказано: "припустимо, що я почну слідувати жадібній політиці з цього моменту, якою буде моя очікувана прибутковість у майбутньому?".

Що це означає інтуїтивно?

Як згадувалося в інших відповідях, описана вище різниця означає, використовуючи технічну термінологію, що Сарса є алгоритмом навчання за політикою , а Q-навчання - алгоритмом навчання поза політикою .

Обмежено (дається нескінченна кількість часу для накопичення досвіду та навчання) та за деяких додаткових припущень, це означає, що Сарса та Q-навчання сходяться до різних рішень / "оптимальних" політик :

  • Сарса підійде до оптимального рішення, якщо припустити, що ми продовжуємо дотримуватися тієї самої політики, яка була використана для створення досвіду . Це часто політика з якою - то елемент (швидше за «дурною») випадковістю, як епсилон -greedy, тому що в іншому випадку ми не можемо гарантувати , що ми будемо сходитися до чого - або взагалі.
  • Q-Learning наблизиться до оптимального рішення, якщо припустити, що після накопичення досвіду та навчання ми переходимо до жадібної політики .

Коли використовувати який алгоритм?

Такий алгоритм, як Сарса , зазвичай кращий у ситуаціях, коли ми дбаємо про ефективність агента під час процесу навчання / отримання досвіду . Подумайте, наприклад, що агент - це дорогий робот, який зламається, якщо впаде зі скелі. Ми воліли б, щоб він не падав занадто часто під час навчального процесу, оскільки це дорого. Тому ми дбаємо про його результативність у процесі навчання. Однак ми також знаємо, що нам це потрібно, щоб іноді діяти випадково (наприклад, жадібний до епсилону). Це означає, що для робота дуже небезпечно йти вздовж скелі, оскільки він може вирішити діяти випадково (з імовірністю епсилон) і впасти вниз. Отже, ми воліли б, щоб швидко дізнались, що знаходитись поруч зі скелею небезпечно;навіть якщо ненажерлива політика зможе пройти поруч із нею, не впавши, ми знаємо, що ми довільно дотримуємося ненажерливої ​​політики епсилону, і ми дбаємо про оптимізацію своєї діяльності, враховуючи те, що знаємо, що іноді ми будемо дурними . Це ситуація, коли Сарса була б кращою.

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


2
Це абсолютно найкраща політика пояснення незалежно від алгоритмів
Еге,

4

У вашій формулі Q-Learning є помилка індексу. Сторінка 148 Саттона і Барто.

Q (st, at) <- Q (st, at) + альфа * [r (t + 1) + гамма * max Q (st + 1, a) - Q (st, at)]

Помилка в аргументі max:

індекси - st + 1 і a, тоді як у вашому питанні вони - st + 1 і на + 1 (це правильно для SARSA).

Сподіваюся, це трохи допоможе.


1

У Q-Learning

Це ваше: Q-навчання: Q (St, At) = Q (St, At) + a [R (t + 1) + знижка * max Q (St + 1, At ) - Q (St, At)]

слід змінити на Q-Learning: Q (St, At) = Q (St, At) + a [R (t + 1) + знижка * max Q (St + 1, a ) - Q (St, At)]

Як ви вже сказали, вам потрібно знайти максимальне значення Q для еквалайзера оновлення. змінивши a , тоді ви отримаєте нове Q (St, At). ОБЕРЕЖНО, a, що дає максимальне значення Q, не є наступною дією. На цьому етапі ви знаєте лише наступний стан (St + 1), і перед переходом до наступного раунду ви хочете оновити St на St + 1 (St <- St + 1).

Для кожної петлі;

  • виберіть At із St, використовуючи значення Q

  • візьміть At і спостерігайте Rt + 1 і St + 1

  • Оновіть значення Q за допомогою рівняння.

  • St <- St + 1

Поки St не термінал


Власне, вони заплутали аудиторію; це не R [t + 1], це R [t], але вони дійсно показують це як R [t + 1] в один момент книги. Однак (і не вірте мені на слово, спробуйте самі), якщо ви встановите R [t + 1], значення винагороди не масштабуються між 0 - 1, і навіть гірше ви стикаєтеся з проблемами ітерацій алгоритму, оскільки Q [t ] = R [t], коли стан є кінцевим, що ніколи не буде істинним, якщо використовувати R [t + 1]. У Вікіпедії було неправильно (я її редагував), і Саттон і Барто використовують ці два варіанти в книзі, насправді не пояснюючи, чому.
Ælex

0

Єдина відмінність між SARSA та Qlearning полягає в тому, що SARSA робить наступну дію, виходячи з поточної політики, тоді як qlearning виконує дії з максимальною корисністю наступного стану


Це не правда. Обидва методи вживають однакові точні дії (ε-жадібні). Різниця полягає (як згадувалося в інших відповідях) у тому, що вони використовують іншу політику для оновлення Q-функції.
mobeets
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.