'바닥부터 배우는 강화 학습' 3장에는 밸류를 구할 수 있는 벨만 방정식과 벨만 최적 방정식에 대해서 설명하고 있습니다. 아래 내용은 공부하면서 핵심 내용을 정리한 것입니다.
참고자료
- 도서: 바닥부터 배우는 강화 학습 / 3장 벨만 방정식
- 동영상: https://www.youtube.com/watch?v=NMesGSXr8H4 (후반부)
벨만 방정식
- 밸류를 계산할 때 벨만 방정식을 이용해서 구함
- 벨만 방정식은 시점 t에서의 밸류와 시점 t+1에서의 밸류 사이의 관계를 다루며 또 가치 함수와 정책 함수 사이의 관계도 다룸
재귀 함수
- 벨만 방정식은 기본적으로 재귀적 관계에 대한 식
- 재귀 함수는 자기 자신을 호출하는 함수
- 피보나치수열(0, 1, 1, 2, 3, 5, 8, 13, 21, ...)의 재귀적인 표현
fib(n)=fid(n−1)+fib(n−2)
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.6∗1+0.4∗2=1.4
- 어떤 상태에서 선택할 수 있는 모든 액션의 밸류를 모두 알고 있다면 해당 상태의 밸류 계산 가능
vπ(s)=∑a∈Aπ(a|s)qπ(s,a)
2. vπ를 이용해 qπ 계산하기

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

- 액션 a1에 대한 보상 ra1s, 상태 전이 확률 Pa1ss′, 생태 밸류 v(s1)과 v(s2)를 알고 있다고 가정하면 상태 s에서 액션 a1의 밸류 계산 가능
qπ(s,a1)=ra1s+Pa1ss1∗vπ(s1)+Pa1ss2∗vπ(s2)=0.5+0.7∗1.5+0.3∗(−1)=1.25
- 위 식을 시그마를 이용해 일반화 한 식
qπ(s,a)=ras+γ∑s′∈SPass′vπ(s′)
2단계
- 1단계 qπ에 대한 식을 vπ에 대한 식에 대입하면 아래와 같음

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

- vπ(s)에 대한 벨만 기대 방정식
◦ 0단계: vπ(s)=Eπ[r′+γvπ(s′)]
◦ 2단계: vπ(s)=∑a∈Aπ(a|s)(ras+γ∑s′∈SPass′vπ(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+γmaxa′q∗(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+γ∑s′∈SPass′v∗(s′)
2단계

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

- 위 수식과 같이 q∗(s,a)의 식에 v∗(s)의 식을 대입
'강화 학습 > 바닥부터 배우는 강화 학습' 카테고리의 다른 글
바닥부터 배우는 강화 학습 | 06. MDP를 모를 때 최고의 정책 찾기 (0) | 2023.01.05 |
---|---|
바닥부터 배우는 강화 학습 | 05. MDP를 모를 때 밸류 평가하기 (0) | 2022.11.29 |
바닥부터 배우는 강화 학습 | 04. MDP를 알 때의 플래닝 (0) | 2022.11.14 |
바닥부터 배우는 강화 학습 | 02. 마르코프 결정 프로세스 (0) | 2022.11.04 |
바닥부터 배우는 강화 학습 | 01. 강화 학습이란 (2) | 2022.11.04 |