Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Поліпшення Політики | Динамічне Програмування
Вступ до навчання з підкріпленням
course content

Зміст курсу

Вступ до навчання з підкріпленням

Вступ до навчання з підкріпленням

1. Основна Теорія Навчання з Підкріпленням
2. Проблема Багаторукого Бандита
3. Динамічне Програмування
4. Методи Монте-Карло
5. Навчання з часовою різницею

book
Поліпшення Політики

Note
Визначення

Покращення політики — це процес удосконалення політики на основі поточних оцінок функції цінності.

Note
Примітка

Як і у випадку з оцінкою політики, покращення політики може працювати як з функцією цінності стану, так і з функцією цінності дії. Але для методів динамічного програмування буде використовуватися функція цінності стану.

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

qπ(s,a)=s,rp(s,rs,a)(r+γvπ(s))q_\pi(s, a) = \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_\pi(s')\Bigr)

Якщо це нове значення перевищує початкове значення стану vπ(s)v_\pi(s), це свідчить про те, що виконання дії aa у стані ss з подальшим дотриманням політики π\pi призводить до кращих результатів, ніж суворе дотримання політики π\pi. Оскільки стани є незалежними, оптимально завжди обирати дію aa щоразу, коли зустрічається стан ss. Таким чином, можна побудувати покращену політику π\pi', ідентичну π\pi, за винятком того, що вона обирає дію aa у стані ss, що буде кращим за початкову політику π\pi.

Теорема покращення політики

Викладене вище міркування можна узагальнити як теорему покращення політики:

qπ(s,π(s))vπ(s)sS    vπ(s)vπ(s)sS\begin{aligned} &q_\pi(s, \pi'(s)) \ge v_\pi(s) \qquad &\forall s \in S\\ \implies &v_{\pi'}(s) \ge v_\pi(s) \qquad &\forall s \in S \end{aligned}

Доведення цієї теореми є відносно простим і може бути виконане за допомогою багаторазової підстановки:

vπ(s)qπ(s,π(s))=Eπ[Rt+1+γvπ(St+1)St=s]Eπ[Rt+1+γqπ(St+1,π(St+1))St=s]=Eπ[Rt+1+γEπ[Rt+2+γvπ(St+2)]St=s]=Eπ[Rt+1+γRt+2+γ2vπ(St+2)St=s]...Eπ[Rt+1+γRt+2+γ2Rt+3+...St=s]=vπ(s)\def\E{\operatorname{\mathbb{E}}} \begin{aligned} v_\pi(s) &\le q_\pi(s, \pi'(s))\\ &= \E_{\pi'}[R_{t+1} + \gamma v_\pi(S_{t+1}) | S_t = s]\\ &\le \E_{\pi'}[R_{t+1} + \gamma q_\pi(S_{t+1}, \pi'(S_{t+1})) | S_t = s]\\ &= \E_{\pi'}[R_{t+1} + \gamma \E_{\pi'}[R_{t+2} + \gamma v_\pi(S_{t+2})] | S_t = s]\\ &= \E_{\pi'}[R_{t+1} + \gamma R_{t+2} + \gamma^2 v_\pi(S_{t+2}) | S_t = s]\\ &...\\ &\le \E_{\pi'}[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ... | S_t = s]\\ &= v_{\pi'}(s) \end{aligned}

Стратегія покращення

Оновлення дій для окремих станів може призвести до покращення, але ефективніше оновлювати дії для всіх станів одночасно. Зокрема, для кожного стану ss обирається дія aa, яка максимізує значення дії qπ(s,a)q_\pi(s, a):

π(s)arg maxaqπ(s,a)arg maxas,rp(s,rs,a)(r+γvπ(s))\begin{aligned} \pi'(s) &\gets \argmax_a q_\pi(s, a)\\ &\gets \argmax_a \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_\pi(s')\Bigr) \end{aligned}

де arg max\argmax (скорочено від argument of the maximum) — оператор, що повертає значення змінної, при якому функція досягає максимуму.

Отримана жадібна стратегія, позначена як π\pi', задовольняє умови теореми покращення стратегії за своєю конструкцією, що гарантує, що π\pi' не гірша за початкову стратегію π\pi, а зазвичай і краща.

Якщо π\pi' така ж добра, як і π\pi, але не краща, то обидві π\pi' та π\pi є оптимальними стратегіями, оскільки їхні функції цінності рівні та задовольняють рівняння оптимальності Беллмана:

vπ(s)=maxas,rp(s,rs,a)(r+γvπ(s))v_\pi(s) = \max_a \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_\pi(s')\Bigr)
question mark

Як прийняття жадібної стратегії гарантує покращення порівняно з попередньою стратегією?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 5

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

course content

Зміст курсу

Вступ до навчання з підкріпленням

Вступ до навчання з підкріпленням

1. Основна Теорія Навчання з Підкріпленням
2. Проблема Багаторукого Бандита
3. Динамічне Програмування
4. Методи Монте-Карло
5. Навчання з часовою різницею

book
Поліпшення Політики

Note
Визначення

Покращення політики — це процес удосконалення політики на основі поточних оцінок функції цінності.

Note
Примітка

Як і у випадку з оцінкою політики, покращення політики може працювати як з функцією цінності стану, так і з функцією цінності дії. Але для методів динамічного програмування буде використовуватися функція цінності стану.

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

qπ(s,a)=s,rp(s,rs,a)(r+γvπ(s))q_\pi(s, a) = \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_\pi(s')\Bigr)

Якщо це нове значення перевищує початкове значення стану vπ(s)v_\pi(s), це свідчить про те, що виконання дії aa у стані ss з подальшим дотриманням політики π\pi призводить до кращих результатів, ніж суворе дотримання політики π\pi. Оскільки стани є незалежними, оптимально завжди обирати дію aa щоразу, коли зустрічається стан ss. Таким чином, можна побудувати покращену політику π\pi', ідентичну π\pi, за винятком того, що вона обирає дію aa у стані ss, що буде кращим за початкову політику π\pi.

Теорема покращення політики

Викладене вище міркування можна узагальнити як теорему покращення політики:

qπ(s,π(s))vπ(s)sS    vπ(s)vπ(s)sS\begin{aligned} &q_\pi(s, \pi'(s)) \ge v_\pi(s) \qquad &\forall s \in S\\ \implies &v_{\pi'}(s) \ge v_\pi(s) \qquad &\forall s \in S \end{aligned}

Доведення цієї теореми є відносно простим і може бути виконане за допомогою багаторазової підстановки:

vπ(s)qπ(s,π(s))=Eπ[Rt+1+γvπ(St+1)St=s]Eπ[Rt+1+γqπ(St+1,π(St+1))St=s]=Eπ[Rt+1+γEπ[Rt+2+γvπ(St+2)]St=s]=Eπ[Rt+1+γRt+2+γ2vπ(St+2)St=s]...Eπ[Rt+1+γRt+2+γ2Rt+3+...St=s]=vπ(s)\def\E{\operatorname{\mathbb{E}}} \begin{aligned} v_\pi(s) &\le q_\pi(s, \pi'(s))\\ &= \E_{\pi'}[R_{t+1} + \gamma v_\pi(S_{t+1}) | S_t = s]\\ &\le \E_{\pi'}[R_{t+1} + \gamma q_\pi(S_{t+1}, \pi'(S_{t+1})) | S_t = s]\\ &= \E_{\pi'}[R_{t+1} + \gamma \E_{\pi'}[R_{t+2} + \gamma v_\pi(S_{t+2})] | S_t = s]\\ &= \E_{\pi'}[R_{t+1} + \gamma R_{t+2} + \gamma^2 v_\pi(S_{t+2}) | S_t = s]\\ &...\\ &\le \E_{\pi'}[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ... | S_t = s]\\ &= v_{\pi'}(s) \end{aligned}

Стратегія покращення

Оновлення дій для окремих станів може призвести до покращення, але ефективніше оновлювати дії для всіх станів одночасно. Зокрема, для кожного стану ss обирається дія aa, яка максимізує значення дії qπ(s,a)q_\pi(s, a):

π(s)arg maxaqπ(s,a)arg maxas,rp(s,rs,a)(r+γvπ(s))\begin{aligned} \pi'(s) &\gets \argmax_a q_\pi(s, a)\\ &\gets \argmax_a \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_\pi(s')\Bigr) \end{aligned}

де arg max\argmax (скорочено від argument of the maximum) — оператор, що повертає значення змінної, при якому функція досягає максимуму.

Отримана жадібна стратегія, позначена як π\pi', задовольняє умови теореми покращення стратегії за своєю конструкцією, що гарантує, що π\pi' не гірша за початкову стратегію π\pi, а зазвичай і краща.

Якщо π\pi' така ж добра, як і π\pi, але не краща, то обидві π\pi' та π\pi є оптимальними стратегіями, оскільки їхні функції цінності рівні та задовольняють рівняння оптимальності Беллмана:

vπ(s)=maxas,rp(s,rs,a)(r+γvπ(s))v_\pi(s) = \max_a \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_\pi(s')\Bigr)
question mark

Як прийняття жадібної стратегії гарантує покращення порівняно з попередньою стратегією?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 5
some-alt