Processing math: 100%

강화 학습/바닥부터 배우는 강화 학습

바닥부터 배우는 강화 학습 | 03. 벨만 방정식

with-RL 2022. 11. 4. 19:17

'바닥부터 배우는 강화 학습' 3장에는 밸류를 구할 수 있는 벨만 방정식과 벨만 최적 방정식에 대해서 설명하고 있습니다. 아래 내용은 공부하면서 핵심 내용을 정리한 것입니다.

참고자료

벨만 방정식

  • 밸류를 계산할 때 벨만 방정식을 이용해서 구함
  • 벨만 방정식은 시점 t에서의 밸류와 시점 t+1에서의 밸류 사이의 관계를 다루며 또 가치 함수와 정책 함수 사이의 관계도 다룸

 

재귀 함수

  • 벨만 방정식은 기본적으로 재귀적 관계에 대한 식
  • 재귀 함수는 자기 자신을 호출하는 함수
  • 피보나치수열(0, 1, 1, 2, 3, 5, 8, 13, 21, ...)의 재귀적인 표현

fib(n)=fid(n1)+fib(n2)

3.1 벨만 기대 방정식

0단계

  • 현재 밸류와 다음 상태의 밸류 사이의 관계: vπ(st)=Eπ[rt+1+γvπ(st+1)]
  • 증명

vπ(st)=E[Gt]=E[rt+1+γrt+2+γ2rt+3+...]=E[rt+1+γ(rt+2+γrt+3+...)]=E[rt+1+γGt+1]=E[rt+1+γvπ(st+1)]

  • 현재 상태 st의 밸류인 리턴의 기댓값을 다음 스텝의 보상과 미래에 받을 보상을 더하는 방식으로 계산

  • 위 그림은 동전 던지기를 결정하는 과정
    첫 번째는 정책 π가 액션 a1 또는 a2를 선택
        예) π(a1|st)=0.6,π(a2|st)=0.4
    두 번째는 환경에 선택된 액션에 대해서 전이 확률 Pass에 따라서 다음 상태 결정
        예) Pa1sts1=0.7,Pa1sts2=0.3,Pa2sts3=0.5,Pa2sts4=0.5

 

1단계

1. qπ를 이용해 vπ 계산하기

  • 위 식에 대한 설명은 아래 그림과 식을 통해 이해 가능

  • 액션 밸류 qπ(s,a1)qπ(s,a2)를 알고 있다고 가정하면 정책 π를 이용해 상태 s의 밸류 계산 가능

vπ(s)=π(a1|s)qπ(s,a1)+π(a2|s)qπ(s,a2)=0.61+0.42=1.4

  • 어떤 상태에서 선택할 수 있는 모든 액션의 밸류를 모두 알고 있다면 해당 상태의 밸류 계산 가능

vπ(s)=aAπ(a|s)qπ(s,a)

2. vπ를 이용해 qπ 계산하기

  • 위 식에 대한 설명은 아래 그림과 식을 통해 이해 가능

  • 액션 a1에 대한 보상 ra1s, 상태 전이 확률 Pa1ss, 생태 밸류 v(s1)v(s2)를 알고 있다고 가정하면 상태 s에서 액션 a1의 밸류 계산 가능

qπ(s,a1)=ra1s+Pa1ss1vπ(s1)+Pa1ss2vπ(s2)=0.5+0.71.5+0.3(1)=1.25

  • 위 식을 시그마를 이용해 일반화 한 식

qπ(s,a)=ras+γsSPassvπ(s)

2단계

  • 1단계 qπ에 대한 식을 vπ에 대한 식에 대입하면 아래와 같음

  • 반대로 vπ에 대한 식을 qπ에 대한 식에 대입하면 아래와 같음

  • vπ(s)에 대한 벨만 기대 방정식
    0단계: vπ(s)=Eπ[r+γvπ(s)]
    2단계: vπ(s)=aAπ(a|s)(ras+γsSPassvπ(s))
  • 2단계 식을 계산하기 위해서 다음 2가지를 반드시 알아야 함
    보상 함수: ras
    전이 확률: Pass
  • 실제로는 대부분의 경우 MDP를 모르기 때문에 경험(experience)을 통해 학습
    모델 프리(model-free): MDP를 모를 때 학습하는 접근법
    모델 베이스(model-based): MDP를 알고 있을 때 학습하는 접근법

3.2 벨만 최적 방정식

◈ 최적 밸류와 최적 정책

  • 최적 밸류의 정의는 다음과 같음

v(s)=maxπvπ(s)q(s,a)=maxπqπ(s,a)

  • 모든 상태에서  최적 밸류를 갖게 하는 정책 π가 최소한 1개 이상 존재
  • 최적 정채 (optimal policy)의 정의
    최적의 정책 π를 따를 때 얻는 보상의 총합이 가장 크다
    모든 상태 s에 대해, vπ1(s)>vπ2(s) 이면 π1>π2
    MDP 내의 모든 π에 대해 π>π를 만족하는 π가 반드시 존재
  • 최적 정책, 최적 밸류, 최적 액션 밸류의 관계
    최적의 정책: π
    최적의 밸류: v(s)=vπ(s) (π를 따랐을 때의 밸류)
    최적의 액션 밸류: q(s,a)=qπ(s,a) (π를 따랐을 때의 액션 밸류)

◈ 벨만 최적 방정식

  • 액션을 선택할 때 확률적으로 선택하는 것이 아니라 최댓값(max) 연산자를 통해 제일 좋은 액션을 선택

 

0단계

v(s)=maxaE[r+γv(s)|st=s,at=a]q(s,a)=E[r+γmaxaq(s,a)|st=s,at=a]

  • 액션은 확률을 따르지 않고 E[r+γv(s)]을 최대로 하는 액션을 선택
  • 환경에 의한 전이 확률 Pass에 의해 다양한 s에 도달할 수 있기 때문에 기댓값 연산자가 필요

 

1단계

1. q를 이용해 v 계산하기

v(s)=maxaq(s,a)

  • 위 그림에서 최적 액션은 두 개의 액션 중 가치가 높은 a2를 선택하는 것 
  • 수식으로 표현하면 아래와 같음

v(s)=maxaq(s,a)=max(q(s,a1),q(s,a2))=max(1,2)=2

2. v를 이용해 q 계산하기

q(s,a)=ras+γsSPassv(s)

2단계

  • 위 수식과 같이 v(s)의 식에 q(s,a)의 식을 대입

  • 위 수식과 같이 q(s,a)의 식에 v(s)의 식을 대입