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

bookРівняння Беллмана

Note
Визначення

Рівняння Беллмана — це функціональне рівняння, яке визначає функцію цінності у рекурсивній формі.

Для уточнення визначення:

  • Функціональне рівняння — це рівняння, розв'язком якого є функція. Для рівняння Беллмана цим розв'язком є функція цінності, для якої й було сформульовано рівняння;
  • Рекурсивна форма означає, що значення у поточному стані виражається через значення у майбутніх станах.

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

Функція цінності стану

Для нагадування, ось функція цінності стану у компактній формі:

vπ(s)=Eπ[GtSt=s]\def\E{\operatorname{\mathbb{E}}} v_\pi(s) = \E_\pi[G_t | S_t = s]

Щоб отримати рівняння Беллмана для цієї функції цінності, розкриємо праву частину рівняння та встановимо рекурсивний зв'язок:

vπ(s)=Eπ[GtSt=s]=Eπ[Rt+1+γRt+2+γ2Rt+3+...St=s]=Eπ[Rt+1+γk=0γkRt+k+2St=s]=Eπ[Rt+1+γGt+1St=s]=aπ(as)s,rp(s,rs,a)(r+γEπ[Gt+1St+1=s])=aπ(as)s,rp(s,rs,a)(r+γvπ(s))\def\E{\operatorname{\mathbb{E}}} \begin{aligned} v_\pi(s) &= \E_\pi[G_t | S_t = s]\\ &= \E_\pi[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ... | S_t = s]\\ &= \E_\pi[R_{t+1} + \gamma \sum_{k=0}^\infty \gamma^k R_{t+k+2} | S_t = s]\\ &= \E_\pi[R_{t+1} + \gamma G_{t+1} | S_t = s]\\ &= \sum_a \pi(a | s) \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma \E_\pi\Bigl[G_{t+1} | S_{t+1} = s'\Bigr]\Bigr)\\ &= \sum_a \pi(a | s) \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_\pi(s')\Bigr) \end{aligned}

Останнє рівняння в цьому ланцюжку є рівнянням Беллмана для функції цінності стану.

Інтуїція

Щоб знайти цінність стану ss, потрібно:

  1. Розглянути всі можливі дії aa, які можна виконати з цього стану, кожна з яких зважується відповідно до ймовірності вибору цієї дії згідно з поточною політикою π(as)\pi(a | s);
  2. Для кожної дії aa розглянути всі можливі наступні стани ss' та винагороди rr, зважені за їх ймовірністю p(s,rs,a)p(s', r | s, a);
  3. Для кожного з цих результатів взяти негайну винагороду rr, яку отримуєте, плюс дисконтовану цінність наступного стану γvπ(s)\gamma v_\pi(s').

Підсумовуючи всі ці можливості, отримуємо загальне очікуване значення стану ss згідно з поточною політикою.

Функція цінності дії

Ось функція цінності дії у компактній формі:

qπ(s,a)=Eπ[GtSt=s,At=a]\def\E{\operatorname{\mathbb{E}}} q_\pi(s, a) = \E_\pi[G_t | S_t = s, A_t = a]

Виведення рівняння Беллмана для цієї функції дуже схоже на попереднє:

qπ(s,a)=Eπ[GtSt=s,At=a]=Eπ[Rt+1+γRt+2+γ2Rt+3+...St=s,At=a]=Eπ[Rt+1+γk=0γkRt+k+2St=s,At=a]=Eπ[Rt+1+γGt+1St=s,At=a]=s,rp(s,rs,a)(r+γEπ[Gt+1St+1=s])=s,rp(s,rs,a)(r+γaπ(as)(Eπ[Gt+1St+1=s,At+1=a]))=s,rp(s,rs,a)(r+γaπ(as)q(s,a))\def\E{\operatorname{\mathbb{E}}} \begin{aligned} q_\pi(s, a) &= \E_\pi[G_t | S_t = s, A_t = a]\\ &= \E_\pi[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ... | S_t = s, A_t = a]\\ &= \E_\pi[R_{t+1} + \gamma \sum_{k=0}^\infty \gamma^k R_{t+k+2} | S_t = s, A_t = a]\\ &= \E_\pi[R_{t+1} + \gamma G_{t+1} | S_t = s, A_t = a]\\ &= \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma \E_\pi\Bigl[G_{t+1} | S_{t+1} = s'\Bigr]\Bigr)\\ &= \sum_{s', r} p(s', r | s, a)\Biggl(r + \gamma \sum_{a'} \pi(a' | s') \Bigl(\E_\pi\Bigl[G_{t+1} | S_{t+1} = s', A_{t+1} = a'\Bigr]\Bigr)\Biggr)\\ &= \sum_{s', r} p(s', r | s, a)\Biggl(r + \gamma \sum_{a'} \pi(a' | s') q(s', a')\Biggr) \end{aligned}

Останнє рівняння в цьому ланцюжку є рівнянням Беллмана для функції цінності дії.

Інтуїція

Щоб знайти значення пари стан-дія (s,a)(s, a), потрібно:

  1. Розглянути всі можливі наступні стани ss' та винагороди rr, зважені за їх ймовірністю p(s,rs,a)p(s', r | s, a);
  2. Для кожного з цих результатів взяти негайну винагороду rr, яку ви отримуєте, плюс дисконтоване значення наступного стану;
  3. Щоб обчислити значення наступного стану ss', для всіх дій aa', можливих зі стану ss', помножити значення дії q(s,a)q(s', a') на ймовірність вибору aa' у стані ss' згідно з поточною політикою π(as)\pi(a' | s'). Потім підсумувати все, щоб отримати кінцеве значення.

Підсумовуючи всі ці можливості, ви отримуєте загальне очікуване значення пари стан-дія (s,a)(s, a) згідно з вашою поточною політикою.

question mark

Яке з наведеного найкраще описує функцію рівняння Беллмана?

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Awesome!

Completion rate improved to 2.7

bookРівняння Беллмана

Свайпніть щоб показати меню

Note
Визначення

Рівняння Беллмана — це функціональне рівняння, яке визначає функцію цінності у рекурсивній формі.

Для уточнення визначення:

  • Функціональне рівняння — це рівняння, розв'язком якого є функція. Для рівняння Беллмана цим розв'язком є функція цінності, для якої й було сформульовано рівняння;
  • Рекурсивна форма означає, що значення у поточному стані виражається через значення у майбутніх станах.

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

Функція цінності стану

Для нагадування, ось функція цінності стану у компактній формі:

vπ(s)=Eπ[GtSt=s]\def\E{\operatorname{\mathbb{E}}} v_\pi(s) = \E_\pi[G_t | S_t = s]

Щоб отримати рівняння Беллмана для цієї функції цінності, розкриємо праву частину рівняння та встановимо рекурсивний зв'язок:

vπ(s)=Eπ[GtSt=s]=Eπ[Rt+1+γRt+2+γ2Rt+3+...St=s]=Eπ[Rt+1+γk=0γkRt+k+2St=s]=Eπ[Rt+1+γGt+1St=s]=aπ(as)s,rp(s,rs,a)(r+γEπ[Gt+1St+1=s])=aπ(as)s,rp(s,rs,a)(r+γvπ(s))\def\E{\operatorname{\mathbb{E}}} \begin{aligned} v_\pi(s) &= \E_\pi[G_t | S_t = s]\\ &= \E_\pi[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ... | S_t = s]\\ &= \E_\pi[R_{t+1} + \gamma \sum_{k=0}^\infty \gamma^k R_{t+k+2} | S_t = s]\\ &= \E_\pi[R_{t+1} + \gamma G_{t+1} | S_t = s]\\ &= \sum_a \pi(a | s) \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma \E_\pi\Bigl[G_{t+1} | S_{t+1} = s'\Bigr]\Bigr)\\ &= \sum_a \pi(a | s) \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_\pi(s')\Bigr) \end{aligned}

Останнє рівняння в цьому ланцюжку є рівнянням Беллмана для функції цінності стану.

Інтуїція

Щоб знайти цінність стану ss, потрібно:

  1. Розглянути всі можливі дії aa, які можна виконати з цього стану, кожна з яких зважується відповідно до ймовірності вибору цієї дії згідно з поточною політикою π(as)\pi(a | s);
  2. Для кожної дії aa розглянути всі можливі наступні стани ss' та винагороди rr, зважені за їх ймовірністю p(s,rs,a)p(s', r | s, a);
  3. Для кожного з цих результатів взяти негайну винагороду rr, яку отримуєте, плюс дисконтовану цінність наступного стану γvπ(s)\gamma v_\pi(s').

Підсумовуючи всі ці можливості, отримуємо загальне очікуване значення стану ss згідно з поточною політикою.

Функція цінності дії

Ось функція цінності дії у компактній формі:

qπ(s,a)=Eπ[GtSt=s,At=a]\def\E{\operatorname{\mathbb{E}}} q_\pi(s, a) = \E_\pi[G_t | S_t = s, A_t = a]

Виведення рівняння Беллмана для цієї функції дуже схоже на попереднє:

qπ(s,a)=Eπ[GtSt=s,At=a]=Eπ[Rt+1+γRt+2+γ2Rt+3+...St=s,At=a]=Eπ[Rt+1+γk=0γkRt+k+2St=s,At=a]=Eπ[Rt+1+γGt+1St=s,At=a]=s,rp(s,rs,a)(r+γEπ[Gt+1St+1=s])=s,rp(s,rs,a)(r+γaπ(as)(Eπ[Gt+1St+1=s,At+1=a]))=s,rp(s,rs,a)(r+γaπ(as)q(s,a))\def\E{\operatorname{\mathbb{E}}} \begin{aligned} q_\pi(s, a) &= \E_\pi[G_t | S_t = s, A_t = a]\\ &= \E_\pi[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ... | S_t = s, A_t = a]\\ &= \E_\pi[R_{t+1} + \gamma \sum_{k=0}^\infty \gamma^k R_{t+k+2} | S_t = s, A_t = a]\\ &= \E_\pi[R_{t+1} + \gamma G_{t+1} | S_t = s, A_t = a]\\ &= \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma \E_\pi\Bigl[G_{t+1} | S_{t+1} = s'\Bigr]\Bigr)\\ &= \sum_{s', r} p(s', r | s, a)\Biggl(r + \gamma \sum_{a'} \pi(a' | s') \Bigl(\E_\pi\Bigl[G_{t+1} | S_{t+1} = s', A_{t+1} = a'\Bigr]\Bigr)\Biggr)\\ &= \sum_{s', r} p(s', r | s, a)\Biggl(r + \gamma \sum_{a'} \pi(a' | s') q(s', a')\Biggr) \end{aligned}

Останнє рівняння в цьому ланцюжку є рівнянням Беллмана для функції цінності дії.

Інтуїція

Щоб знайти значення пари стан-дія (s,a)(s, a), потрібно:

  1. Розглянути всі можливі наступні стани ss' та винагороди rr, зважені за їх ймовірністю p(s,rs,a)p(s', r | s, a);
  2. Для кожного з цих результатів взяти негайну винагороду rr, яку ви отримуєте, плюс дисконтоване значення наступного стану;
  3. Щоб обчислити значення наступного стану ss', для всіх дій aa', можливих зі стану ss', помножити значення дії q(s,a)q(s', a') на ймовірність вибору aa' у стані ss' згідно з поточною політикою π(as)\pi(a' | s'). Потім підсумувати все, щоб отримати кінцеве значення.

Підсумовуючи всі ці можливості, ви отримуєте загальне очікуване значення пари стан-дія (s,a)(s, a) згідно з вашою поточною політикою.

question mark

Яке з наведеного найкраще описує функцію рівняння Беллмана?

Select the correct answer

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

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

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

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