2024. 4. 23. 14:36ㆍRL
환경(상태 전이, 보상)와 에이전트 정책이 결정적이라면, 수익 공식인 Gt=Rt+γRt+1+γ2Rt+2+⋯로 상태 가치 함수를 쉽게 구할 수 있다.
하지만 결정적이지 않다면, 위 방식으로 구할 수 없다.
벨만 방정식은 환경 및 에이전트 정책이 확률적일 때 상태 가치 함수를 구하는데 사용되는 유용한 식이다.
벨만 방정식 유도
Gt=Rt+γRt+1+γ2Rt+2+⋯=Rt+γ(Rt+1+γRt+2+⋯)=Gt=Rt+γGt+1
vπ(s)=Eπ[Gt|St=s]=Eπ[Rt+γGt+1|St=s]=Eπ[Rt|St=s]+γEπ[Gt+1|St=s]
Eπ[Rt|St=s]=∑aπ(a|s)Ras
Eπ[Gt+1|St=s]=∑aπ(a|s)∑s′Pass′Eπ[Gt+1|St+1=s′]=∑aπ(a|s)∑s′Pass′vπ(s′)
vπ(s)=Eπ[Rt|St=s]+γEπ[Gt+1|St=s]=∑aπ(a|s)Ras+γ∑aπ(a|s)∑s′Pass′vπ(s′)=∑aπ(a|s)(Ras+γ∑s′Pass′vπ(s′))
vπ(s)=∑aπ(a|s)(Ras+γ∑s′Pass′vπ(s′))이 바로 벨만 방정식이다.
벨만 방정식 의의
벨만 방정식은 "현재 상태 s의 상태 가치 함수와 다음 상태 s′의 상태 가치 함수의 관계"를 나타내는 식이다.
그렇기 때문에, 벨만 방정식을 이용해 상태 가치 함수를 연립 방정식으로 구할 수 있다.
이는 이전 방식(=수익 공식)의 두 가지 한계점을 해결했다.
1. 유한한 연립 방정식으로 수익 수식의 무한 굴레를 벗어났다.
2. 환경 및 에이전트 정책이 확률적이어도 구할 수 있다.
행동 가치 함수(action-value function, Q function)
행동 가치 함수는 상태 가치 함수에 행동 조건을 추가한 함수다.
다시 말해, 행동 가치 함수인 qπ(s,a)는 상태 St와 행동 At가 각각 s, a고 에이전트 정책이 π일 때, 에이전트가 얻을 기대 수익을 의미한다.
이를 수식으로 표현하면 다음과 같다.
qπ(s,a)=E[Gt|St=s,At=a]
여기서, qπ(s,a)의 a는 정책 π와 무관하다는 점을 주의해야 한다. 즉, At+1부터 정책 π에 따른다.
이 점이 바로 상태 가치 함수와 행동 가치 함수의 유일한 차이점이다.

상태 가치 함수와 행동 가치 함수의 관계를 수식으로 표현하면 다음과 같다.
vπ(s)=∑aπ(a|s)qπ(s,a)
추가로, 최적 정책의 행동 가치 함수를 최적 상태 가치 함수(optimal action-value function) 이라 하고, q∗(s,a)로 표기한다.
행동 가치 함수의 벨만 방정식 유도
qπ(s,a)=Eπ[Gt|St=s,At=a]=Eπ[Rt+γGt+1|St=s,At=a]=Eπ[Rt|St=s,At=a]+γEπ[Gt+1|St=s,At=a]
Eπ[Rt|St=s,At=a]=Ras
Eπ[Gt+1|St=s,At=a]=∑s′Pass′Eπ[Gt+1|St+1=s′]=∑s′Pass′vπ(s′)=∑s′Pass′∑a′π(a′|s′)qπ(s′,a′)
qπ(s,a)=Eπ[Rt|St=s,At=a]+γEπ[Gt+1|St=s,At=a]=Ras+γ∑s′Pass′∑a′π(a′|s′)qπ(s′,a′)
qπ(s,a)=Ras+∑s′Pass′∑a′π(a′|s′)qπ(s′,a′)가 행동 가치 함수의 벨만 방정식이다.
최적 벨만 방정식
벨만 방정식은 어떤 정책 π에 대해 성립하는 방정식이다.
이번에는 최적 정책 π∗에 대해서만 성립하는 벨만 최적 방정식(bellman optimality equation)에 대해 살펴보자.
상태 가치 함수의 최적 벨만 방정식
벨만 방정식에 최적 상태 가치 함수를 대입하면 다음과 같이 표현할 수 있다.
v∗(s)=∑aπ∗(a|s)(Ras+γ∑s′Pass′v∗(s′))
여기서 최적 정책 π∗는 Ras+γ∑s′Pass′v∗(s′)이 가장 큰 행동을 선택한다. 다시 말해, 값이 가장 큰 행동을 100% 확률로 선택한다.
왜냐하면, 최적 정책은 모든 상태에서 상태 가치 함수가 최대인 정책이기 때문이다.
이를 반영하면 수식은 다음과 같이 바뀐다.
v∗(s)=maxa(Ras+γ∑s′Pass′v∗(s′))
행동 가치 함수의 최적 벨만 방정식
벨만 방정식에 최적 행동 가치 함수를 대입하면 다음과 같이 표현할 수 있다.
q∗(s,a)=Ras+γ∑s′Pass′∑a′π∗(a′|s′)q∗(s′,a′)
여기서 최적 정책 π∗는 q∗(s′,a′)이 가장 큰 행동을 선택한다. 다시 말해, 값이 가장 큰 행동을 100% 확률로 선택한다.
q∗(s′,a′)이 가장 큰 행동을 선택하면 v∗(s′)이 가장 커지기 때문이다. (vπ(s′)=∑′aπ(a′|s′)qπ(s′,a′))
이를 반영하면 수식은 다음과 같이 바뀐다.
q∗(s,a)=Ras+γ∑s′Pass′maxa′q∗(s′,a′)
최적 정책을 최적 행동 가치 함수로 표현하면 다음과 같다.
μ∗(s)=argmaxaq∗(s,a)
최적 벨만 방정식 의의
최적 벨만 방정식은 "현재 상태 s의 최적 상태 가치 함수와 다음 상태 s′의 최적 상태 가치 함수의 관계"를 나타내는 식이다.
그렇기 때문에, 최적 벨만 방정식을 이용해 최적 상태 가치 함수 v∗(s)를 연립 방정식으로 구할 수 있다.
그리고, 다음과 같이 최적 상태 가치 함수로 최적 행동 가치 함수를 구할 수 있다.
qπ(s,a)=Ras+γ∑s′Pass′∑a′π(a′|s′)qπ(s′,a′)=Ras+γ∑s′Pass′vπ(s′)
so, q∗(s,a)=Ras+γ∑s′Pass′v∗(s′)
그럼, 다음과 같이 최적 상태 가치 함수로 최적 정책을 바로 구할 수 있다.
μ∗(s)=argmax aq∗(s,a)=argmax aRas+γ∑s′Pass′v∗(s′)
즉, 모든 정책을 찾을 필요가 없어졌다.
정리
1. 모든 정책을 찾아 수익 수식 Gt=Rt+γRt+1+γ2Rt+2+⋯으로 각 정책의 상태 가치 함수를 구하고, 이를 비교해 최적 정책을 찾는다.
2. 모든 정책을 찾은 후, 벨만 방정식vπ(s)=∑aπ(a|s)(Ras+γ∑s′Pass′vπ(s′))을 사용해 각 정책의 상태 가치 함수를 연립 방정식으로 구하고, 이를 비교해 최적 정책을 찾는다.
이전 방식(=수익 수식)에서 두 가지 부분을 개선했다.
1. 유한한 연립 방정식으로 수익 수식의 무한 굴레를 벗어났다.
2. 환경 및 에이전트 정책이 확률적이어도 구할 수 있다.
3. 최적 벨만 방정식 v∗(s)=maxa(Ras+γ∑s′Pass′v∗(s′))을 사용해 최적 상태 가치 함수를 연립 방정식으로 구하고, μ∗(s)=argmax aRas+γ∑s′Pass′v∗(s′)으로 최적 정책을 찾는다.
벨만 방정식과 다르게 모든 정책을 찾는 수고를 들일 필요가 없어졌다.
'RL' 카테고리의 다른 글
[RL] 6. DQN(Deep Q Network) (0) | 2024.04.28 |
---|---|
[RL] 5. Temporal Difference: SARSA, Q-learning (0) | 2024.04.26 |
[RL] 4. Monte Carlo method (0) | 2024.04.24 |
[RL] 3. DP: policy iteration, value iteration (0) | 2024.04.23 |
[RL] 1. Markov Decision Chain (0) | 2024.04.20 |