Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Узагальнення TD-Навчання | Навчання з Часовою Різницею
Вступ до навчання з підкріпленням

bookУзагальнення TD-Навчання

На даний момент ми розглядали два крайні випадки навчання з досвіду:

  • TD(0): використовує однокрокову віддачу;
  • Монте-Карло: очікує завершення епізоду для обчислення віддачі.

Але що робити, якщо потрібен проміжний варіант? Такий, що враховує більше інформації про майбутнє, ніж TD(0), але не вимагає чекати завершення всього епізоду, як Монте-Карло?

Саме тут з'являються n-крокове TD-навчання (nn-step TD learning) та TD(λ\lambda) — методи, які об'єднують і узагальнюють ідеї, розглянуті раніше.

n\Large n-крокове TD-навчання

Ідея nn-крокового TD-навчання проста: замість використання лише наступного кроку або всього епізоду, використовується наступні nn кроків, а потім застосовується бутстрепінг:

Gt(n)=Rt+1+γRt+2+...+γn1Rt+n+γnV(St+1)G_t^{(n)} = R_{t+1} + \gamma R_{t+2} + ... + \gamma^{n-1} R_{t+n} + \gamma^n V(S_{t+1})

Це дозволяє здійснювати компроміс:

  • Якщо n=1n = 1: це просто TD(0);
  • Якщо n=n = \infty: це стає методом Монте-Карло.

Такі віддачі можна використовувати для заміни цільового значення у правилі оновлення TD(0):

V(St)V(St)+α(Gt(n)V(St))V(S_t) \gets V(S_t) + \alpha\Bigl(G_t^{(n)} - V(S_t)\Bigr)

TD(λ\Large\lambda)

TD(λ\lambda) — це вдала ідея, що базується на nn-кроковому TD-навчанні: замість вибору фіксованого nn, ми поєднуємо усі nn-крокові повернення разом:

Lt=(1λ)n=0λn1Gt(n)L_t = (1 - \lambda) \sum_{n=0}^{\infty} \lambda^{n-1}G_t^{(n)}

де λ[0,1]\lambda \in [0, 1] визначає вагу:

  • Якщо λ=0\lambda = 0: лише однокрокове повернення \to TD(0);
  • Якщо λ=1\lambda = 1: повне повернення \to Monte Carlo;
  • Проміжні значення поєднують кілька крокових повернень.

Таким чином, λ\lambda виступає як регулятор компромісу між зміщенням і дисперсією:

  • Низьке λ\lambda: більше зміщення, менше дисперсії;
  • Високе λ\lambda: менше зміщення, більше дисперсії.

LtL_t потім може використовуватися як цільове значення для оновлення у правилі TD(0):

V(St)V(St)+α(LtV(St))V(S_t) \gets V(S_t) + \alpha\Bigl(L_t - V(S_t)\Bigr)
question mark

Коли параметр λ\lambda встановлено на 1 у TD(λ\lambda), метод стає еквівалентним

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Suggested prompts:

Can you explain how to choose the best value for $$n$$ or $$\lambda$$ in practice?

What are the main advantages and disadvantages of using TD($$\lambda$$) compared to TD(0) and Monte Carlo?

Can you provide an example to illustrate how n-step TD learning works?

Awesome!

Completion rate improved to 2.7

bookУзагальнення TD-Навчання

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

На даний момент ми розглядали два крайні випадки навчання з досвіду:

  • TD(0): використовує однокрокову віддачу;
  • Монте-Карло: очікує завершення епізоду для обчислення віддачі.

Але що робити, якщо потрібен проміжний варіант? Такий, що враховує більше інформації про майбутнє, ніж TD(0), але не вимагає чекати завершення всього епізоду, як Монте-Карло?

Саме тут з'являються n-крокове TD-навчання (nn-step TD learning) та TD(λ\lambda) — методи, які об'єднують і узагальнюють ідеї, розглянуті раніше.

n\Large n-крокове TD-навчання

Ідея nn-крокового TD-навчання проста: замість використання лише наступного кроку або всього епізоду, використовується наступні nn кроків, а потім застосовується бутстрепінг:

Gt(n)=Rt+1+γRt+2+...+γn1Rt+n+γnV(St+1)G_t^{(n)} = R_{t+1} + \gamma R_{t+2} + ... + \gamma^{n-1} R_{t+n} + \gamma^n V(S_{t+1})

Це дозволяє здійснювати компроміс:

  • Якщо n=1n = 1: це просто TD(0);
  • Якщо n=n = \infty: це стає методом Монте-Карло.

Такі віддачі можна використовувати для заміни цільового значення у правилі оновлення TD(0):

V(St)V(St)+α(Gt(n)V(St))V(S_t) \gets V(S_t) + \alpha\Bigl(G_t^{(n)} - V(S_t)\Bigr)

TD(λ\Large\lambda)

TD(λ\lambda) — це вдала ідея, що базується на nn-кроковому TD-навчанні: замість вибору фіксованого nn, ми поєднуємо усі nn-крокові повернення разом:

Lt=(1λ)n=0λn1Gt(n)L_t = (1 - \lambda) \sum_{n=0}^{\infty} \lambda^{n-1}G_t^{(n)}

де λ[0,1]\lambda \in [0, 1] визначає вагу:

  • Якщо λ=0\lambda = 0: лише однокрокове повернення \to TD(0);
  • Якщо λ=1\lambda = 1: повне повернення \to Monte Carlo;
  • Проміжні значення поєднують кілька крокових повернень.

Таким чином, λ\lambda виступає як регулятор компромісу між зміщенням і дисперсією:

  • Низьке λ\lambda: більше зміщення, менше дисперсії;
  • Високе λ\lambda: менше зміщення, більше дисперсії.

LtL_t потім може використовуватися як цільове значення для оновлення у правилі TD(0):

V(St)V(St)+α(LtV(St))V(S_t) \gets V(S_t) + \alpha\Bigl(L_t - V(S_t)\Bigr)
question mark

Коли параметр λ\lambda встановлено на 1 у TD(λ\lambda), метод стає еквівалентним

Select the correct answer

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

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

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

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