
강화학습
벨만 최적 방정식 (Bellman Optimality Equation)
정책은 에이전트가 어떻게 행동하는지를 결정한다.
어떻게 행동하는지에 대한 정책이 정해져야, 그 뒤에 가치함수가 정의될 수 있다.
강화학습의 목표는 장기적인 보상을 최대로 하는 정책을 찾아내는 것이다.
최적 정책
최적의 정책을 찾기 위해서는 하나의 정책이 다른 정책보다 어떻게 나은것인지를 판단할 수 있어야 한다.
다음 그래프는 두개의 정책이 각 상태에서 어떠한 가치를 주는지를 그려놓은 것이다.

앞선 상태들이세는 정책 π1이 정책 π2 보다 높은 가치를 주고,
뒤 상태들이세는 반대로 정책 π2 이 정책 π1 보다 높은 가치를 준다.
위 그림 만으로는 π1가 π2보다 낫다는것을 장담할 수 없다.
정책 π1가 π2보다 좋다는 것을 판단하려면, 다음 그림과 같아야 한다.

π1≥π2를 만족하기 위해서는, π1이 모든 상태에 대해 π2보다 더 높은 가치를 주어야 한다.

최적 정책이란 이 상태들에 대해 다른 어떤 정책보다 더 높은 가치를 주는 정책을 말한다.
어떠한 상태 집합에 대해 최적 정책은 항상 적어도 한가지는 존재하며, 한가지 이상일 수도 있다.
최적 정책은 보통 π∗로 표기한다.
최적 정책이 항상 존재한다는 것이 이해가 되지 않을 수도 있다.
첫번째 그래프를 볼 때, 정책 π1은 앞선 상태들에서 더 가치가 높고, π2는 반대이다.
만약 새로운 정책 π3를 정의하고, 앞선 상태들에선 π1를 따르고, 뒤 상태들에서는 π2를 따르게 한다면,
π3은 두가지 정책들보다 더 나은 정책이라고 말할 수 있을 것이다.
따라서 어떠한 상태 집합에 대해서는 항상 최적의 정책이 존재할 수 밖에 없게 된다.
예제)
다음과 같은 두가지 케이스의 MDP가 존재한다:

위 두가지 정책들 중 어떠한 정책이 최적이냐고 묻는다면, 이는 감가율 γ에 달려있다.
만약 γ=0이라면, 에이전트는 가장 가까운 보상만을 고려하게 된다.
따라서 이는 다음과 같은 결과를 낳게 된다:
vπ1(X)=1
vπ2(X)=0
이 경우라면 π1이 최적 정책이 된다.
만약 γ=0.9라면, 에이전트는 미래의 보상까지 고려하게 된다.
따라서 이는 다음과 같은 결과를 낳는다:
vπ1(X)=∑∞k=0(0.9)2k≈5.3
vπ2(X)=∑∞k=0(0.9)2k+1∗2≈9.5
이 경우에는 π2가 최적 정책이 된다.
최적 가치
최적 상태 가치 벨만 방정식 (state-value Bellman optimality equation)
최적 정책을 따라서 행동하면, 그 결과로 최적 가치를 얻게 된다.
최적의 상태가치함수는 다음과 같이 정의될 수 있다.
v∗=maxπvπ(s)
앞선 포스팅에서 정의한 상태 가치 벨만방정식을 다시 살펴보자.
vπ(s)=∑aπ(a|s)∑s′∑rp(s′,r|s,a)[r+γvπ(s′)]
이 수식에 최적 정책과 최적 상태 가치를 대입하면 다음과 같이 재정의 될 수 있다.
v∗(s)=∑aπ∗(a|s)∑s′∑rp(s′,r|s,a)[r+γv∗(s′)]
v∗(s)=maxa∑s′∑rp(s′,r|s,a)[r+γv∗(s′)]
두번째 최적 수삭을 다시 살펴보면, 최적 정책 π∗(a|s)가 수식에서 사라진 것을 볼 수 있다.
이는 최적의 상태가치는 최적 정책에 의해 선택된 하나의 행동에 의해서 정의되기 때문이다.
이를 다른말로 표현하면, 최적의 상태가치는 최적의 정책을 따라서만 얻을 수 있다는 의미이다.
최적 행동 가치 벨만 방정식 (state-value Bellman optimality equation)
최적의 행동가치함수는 다음과 같이 정의될 수 있다.
q∗=maxπqπ(s,a)
역시 앞선 포스팅에서 언급한 행동 가치 벨만방정식을 살펴보자.
qπ(s,a)=∑s′∑rp(s′,r|s,a)[r+γ∑a′π(a′|s′)qπ(s′,a′)]
이 수식에 최적 정책과 최적 행동 가치를 대입하면 다음과 같이 재정의 될 수 있다.
q∗(s,a)=∑s′∑rp(s′,r|s,a)[r+γ∑a′π∗(a′|s′)q∗(s′,a′)]
q∗(s,a)=∑s′∑rp(s′,r|s,a)[r+γmaxa′q∗(s′,a′)]
위 수식에서 역시 최적의 행동 하나만을 고려하기 때문에 정책이 사라지고, 가장 가치있는 행동만이 남아있게 된다.
최적 가치에서 최적 정책으로
최적 가치와 최적 정책의 관계는 매우 심플하다.
최적의 정책은 곧 가치가 최대가 되는 행동을 고르면 되기 떄문이다.
최적 가치가 다음과 같이 최대의 가치를 주는 행동에서 나온다면,
v∗(s)=maxa∑s′∑rp(s′,r|s,a)[r+γv∗(s′)]
최적 정책은 그저 최적 가치가 최대로 되는 행동을 고르기만 하면 되는 것이다.
이를 강화학습에서는 argmax 라는 함수를 사용한다.
argmax를 함수로 표현하면 f(x)가 최대가 되는 x를 반환하는 것이다.
따라서 최적정책을 수식화 하면 다음과 같이 표현할 수 있다.
v∗(s)=argmaxa∑s′∑rp(s′,r|s,a)[r+γv∗(s′)]
'데이터사이언스 > 강화학습' 카테고리의 다른 글
강화학습 - (12) 정책 반복 (0) | 2020.09.28 |
---|---|
강화학습 - (11) 정책 평가 (0) | 2020.09.28 |
강화학습 - (9) 벨만방정식 (0) | 2020.09.14 |
강화학습 - (8) 정책과 가치 (0) | 2020.09.14 |
강화학습 - (7) 연속적인 결정과정 (0) | 2020.09.14 |