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
Примітка

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

Як відомо, функцію цінності стану для заданої політики можна визначити, розв’язавши рівняння Беллмана:

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

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

Наприклад, якщо MDP має 2 стани (s1s_1, s2s_2) і 2 дії (перехід до s1s_1, перехід до s2s_2), функцію значення стану можна визначити так:

{V(s1)=0.5(5+0.9V(s1))+0.5(10+0.9V(s2))V(s2)=0.7(2+0.9V(s1))+0.3(0+0.9V(s2))\begin{cases} V(s_1) = 0.5 \cdot (5 + 0.9 \cdot V(s_1)) + 0.5 \cdot (10 + 0.9 \cdot V(s_2)) \\ V(s_2) = 0.7 \cdot (2 + 0.9 \cdot V(s_1)) + 0.3 \cdot (0 + 0.9 \cdot V(s_2)) \end{cases}

Цю систему можна розв’язати стандартними методами лінійної алгебри.

Єдиність розв’язку такої лінійної системи гарантується, якщо виконується хоча б одна з наступних умов:

  • Коефіцієнт дисконту γ<1γ < 1;
  • Політика π\pi, якщо її дотримуватися з будь-якого стану ss, гарантує, що епізод зрештою завершиться.

Ітеративне оцінювання політики

Розв’язок можна обчислити безпосередньо, але ітеративний підхід використовується частіше через простоту реалізації. Цей метод починається з присвоєння довільних початкових значень усім станам, крім термінальних, які встановлюються рівними 0. Значення оновлюються ітеративно за допомогою рівняння Беллмана як правила оновлення:

vk+1(s)aπ(as)s,rp(s,rs,a)(r+γvk(s))v_{k+1}(s) \gets \sum_a \pi(a | s) \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_k(s')\Bigr)

Оцінена функція цінності стану vkv_k зрештою збігається до істинної функції цінності стану vπv_\pi при kk \to \infty, якщо vπv_\pi існує.

Стратегії резервного копіювання значень

Під час оновлення оцінок значень нові оцінки обчислюються на основі попередніх значень. Процес збереження попередніх оцінок називається резервним копіюванням. Існує дві поширені стратегії виконання резервного копіювання:

  • Повне резервне копіювання: цей метод передбачає збереження нових оцінок у окремому масиві, відмінному від того, що містить попередні (резервні) значення. Відповідно, потрібні два масиви — один для зберігання попередніх оцінок і ще один для нових обчислених значень;
  • Резервне копіювання на місці: цей підхід зберігає всі значення в одному масиві. Кожна нова оцінка одразу замінює попереднє значення. Цей метод зменшує використання пам'яті, оскільки потрібен лише один масив.

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

Коли зупиняти оновлення?

У ітеративній оцінці політики не існує точної точки, в якій алгоритм повинен зупинитися. Хоча збіжність гарантується у межі, продовжувати обчислення після певного моменту необов'язково на практиці. Простим та ефективним критерієм зупинки є відстеження абсолютної різниці між послідовними оцінками значень, vk+1(s)vk(s)|v_{k+1}(s) - v_k(s)|, і порівняння її з малим порогом θ\theta. Якщо після повного циклу оновлення (коли значення для всіх станів оновлені) жодна зміна не перевищує θ\theta, процес можна безпечно завершити.

Псевдокод

question mark

Яке з наступних тверджень є правильним щодо методу ітеративної оцінки політики?

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

course content

Зміст курсу

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

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

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

book
Оцінювання Політики

Note
Визначення

Оцінювання політики — це процес визначення функції цінності для заданої політики.

Note
Примітка

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

Як відомо, функцію цінності стану для заданої політики можна визначити, розв’язавши рівняння Беллмана:

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

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

Наприклад, якщо MDP має 2 стани (s1s_1, s2s_2) і 2 дії (перехід до s1s_1, перехід до s2s_2), функцію значення стану можна визначити так:

{V(s1)=0.5(5+0.9V(s1))+0.5(10+0.9V(s2))V(s2)=0.7(2+0.9V(s1))+0.3(0+0.9V(s2))\begin{cases} V(s_1) = 0.5 \cdot (5 + 0.9 \cdot V(s_1)) + 0.5 \cdot (10 + 0.9 \cdot V(s_2)) \\ V(s_2) = 0.7 \cdot (2 + 0.9 \cdot V(s_1)) + 0.3 \cdot (0 + 0.9 \cdot V(s_2)) \end{cases}

Цю систему можна розв’язати стандартними методами лінійної алгебри.

Єдиність розв’язку такої лінійної системи гарантується, якщо виконується хоча б одна з наступних умов:

  • Коефіцієнт дисконту γ<1γ < 1;
  • Політика π\pi, якщо її дотримуватися з будь-якого стану ss, гарантує, що епізод зрештою завершиться.

Ітеративне оцінювання політики

Розв’язок можна обчислити безпосередньо, але ітеративний підхід використовується частіше через простоту реалізації. Цей метод починається з присвоєння довільних початкових значень усім станам, крім термінальних, які встановлюються рівними 0. Значення оновлюються ітеративно за допомогою рівняння Беллмана як правила оновлення:

vk+1(s)aπ(as)s,rp(s,rs,a)(r+γvk(s))v_{k+1}(s) \gets \sum_a \pi(a | s) \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_k(s')\Bigr)

Оцінена функція цінності стану vkv_k зрештою збігається до істинної функції цінності стану vπv_\pi при kk \to \infty, якщо vπv_\pi існує.

Стратегії резервного копіювання значень

Під час оновлення оцінок значень нові оцінки обчислюються на основі попередніх значень. Процес збереження попередніх оцінок називається резервним копіюванням. Існує дві поширені стратегії виконання резервного копіювання:

  • Повне резервне копіювання: цей метод передбачає збереження нових оцінок у окремому масиві, відмінному від того, що містить попередні (резервні) значення. Відповідно, потрібні два масиви — один для зберігання попередніх оцінок і ще один для нових обчислених значень;
  • Резервне копіювання на місці: цей підхід зберігає всі значення в одному масиві. Кожна нова оцінка одразу замінює попереднє значення. Цей метод зменшує використання пам'яті, оскільки потрібен лише один масив.

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

Коли зупиняти оновлення?

У ітеративній оцінці політики не існує точної точки, в якій алгоритм повинен зупинитися. Хоча збіжність гарантується у межі, продовжувати обчислення після певного моменту необов'язково на практиці. Простим та ефективним критерієм зупинки є відстеження абсолютної різниці між послідовними оцінками значень, vk+1(s)vk(s)|v_{k+1}(s) - v_k(s)|, і порівняння її з малим порогом θ\theta. Якщо після повного циклу оновлення (коли значення для всіх станів оновлені) жодна зміна не перевищує θ\theta, процес можна безпечно завершити.

Псевдокод

question mark

Яке з наступних тверджень є правильним щодо методу ітеративної оцінки політики?

Select the correct answer

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

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

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

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