sliver__

MDP / 벨만방정식 본문

CS/강화학습

MDP / 벨만방정식

sliver__ 2021. 10. 8. 09:36
728x90

안녕하세요~

디벨로퍼입니다~~

 

 

도서는

파이썬과 케라스로 배우는 강화학습, 2020 위키북스
를 참고하였어요.

****************************************************************************************************************

파이썬과 케라스로 배우는 강화학습(위키북스 데이터 사이언스 시리즈 4) | 이웅원 | 위키북스 - 교보문고 (kyobobook.co.kr)

 

파이썬과 케라스로 배우는 강화학습 - 교보문고

내 손으로 직접 구현하는 게임 인공지능 | ★ 이 책에서 다루는 내용 ★◎ 강화학습의 배경과 개념◎ 강화학습의 기초 이론: MDP, 벨만 방정식, 다이내믹 프로그래밍◎ 고전 강화학습 알고리즘:

www.kyobobook.co.kr

 

구매하실 분이 계시면 위 링크 참조해주세요*************************************************************************************************************

이번에는 MDP의 구성 요소를 공부해보겠습니다.

 

상태, 행동, 보상함수, 상태 변환 확률, 할인율

위 다섯가지로 구성되어 있습니다.

 

[상태]

S(State)는 에이전트가 관찰 가능한 상태의 집합입니다.

에이전트가 학습을 하기 위해서는 사용자가 상태를 정의 해줘야 합니다.

상태 공간이 존재하며 시간 t에서의 상태 s는 \(S_t = s\) 로 표기합니다

 

[행동]

에이전트가 상태 St에서 할 수 있는 가능한 행동의 집합은 A입니다

시간 t에서의 집합 A에서 선택항 행동은 \(A_t\) 입니다.

 

[보상함수]

보상은 에이전트가 학습할 수 있는 유일한 정보입니다.

시간 t에서 상태가 St=s, 행동은 At = a 일 때 에이전트가 받을 보상은 아래와 같습니다.

\(r(s,a)\) = \(E[R_{t+1}\) | \(S_t=s, A_t=t]\)

E는 기댓값으로 평균 값을 의미합니다.

특이점은 보상함에서 행동은 t 시간에 이루어지지만

보상은 t+1 시간에 받습니다.

이유는 에이전트가 알고있는 값이 아니라 환경에서 알려주는 값이기 때문입니다.

 

[상태변환확률]

에이전트가 어떤 상태에서 어떤 행동을 취한다면 상태는 변합니다.

하지만 어떠한 상황에 의하여 원하는 상태에 도달하지 못할 수 있습니다.

이를 수치적으로 표현한 것이 상태 변환 확률입니다.

\(P_a^{ss'}\) = \(P[S_{t+1}= s\) | \(S_t=s, A_t=a\)]

 

[할인율]

미래의 보상을 현재의 가치로 표현합니다.

\(\gamma\)= [0,1] 

시간 k가 지난 후의 보상을 \(R_{t+k}\)라 하면

\(\gamma^{k-1}\)\(R_{t+k}\)로 환산됩니다.

 

[정책]

정책은 모든 상태에서 에이전트가 할 행동입니다.

\(\pi(a|s)\) = \(P\)[\(A_t=a\) | \(S_t=s\)]

이 중  가장 좋은 정책인 최적 정책을 학습해야 합니다.

 

[가치함수]

에이전트가 현재 상태에서

어떤 행동이 좋은 행동인지 알 수 있는 방법은

앞으로 받을 보상을 고려하는 것입니다.

위의 개념이 가치함수 입니다..

앞으로 받을 보상은 아래와 같습니다.

\(R_{t+1} + R_{t+2} + R_{t+3} ...\)

위와 같이 단순히 더한 다면 3가지 문제가 생깁니다.

 

1. 시간에 따른 보상 차등이 없습니다.

즉, 현재와 미래에 받는 보상의 값이 같습니다.

2. 100이라는 보상을 1번 받는 것과

20이라는 보상을 5번 받는것을 구분할 수 없습니다.

3.  시간이 무한대라면 발산하므로 같습니다.

 

위를 구분하기 위해 할인율을 사용합니다.

\(\gamma\)\(R_{t+1}\)   +\(\gamma^2\)\(R_{t+2}\)+ \(\gamma^3\)\(R_{t+3}\) + ... + \(\gamma^{k-1}\)\(R_{t+k}\)

위 값을 반환값 \(G_t\)라고 합니다.

 

**

그리고 유한한 시간동안 에이전트와 환경의 상호작용을 에피소드 라고합니다.

에피소드는 끝낼 수 있는 마지막 상태가 존재합니다.

**

 

특정 상태의 가치는 반환값에 대한 기댓값으로 판단합니다.

\(v(s)\) = \(E[G_t | S_t=s]\)

\(G_t\) = \(\gamma\)\(R_{t+1}\)+\(\gamma^2\)\(R_{t+2}\)+ \(\gamma^3\)\(R_{t+3}\)  + ... 이므로

\(v(s)\) = \(E\)[\(\gamma\)\(R_{t+1}\)  +\(\gamma^2\)\(R_{t+2}\) + \(\gamma^3\)\(R_{t+3}\) + ... |  \(S_t=s\)]

= \(E\)[\(\gamma\)\(R_{t+1}\) + \(\gamma\)(\(\gamma\)\(R_{t+2}\)+ \(\gamma^2\)\(R_{t+3}\) + ...) | \(S_t=s\)]

= \(E\)[\(R_{t+1}\) + \(\gamma\)\(v(S_{t+1})\) | \(S_t=s\)] 

그리고 항상 정책을 고려해야하기 때문에

\(v_\pi(s)\) = \(E_\pi[R_{t+1}\) + \(\gamma\)\(v_\pi(S_{t+1})  | S_t = s]\)

수식으로 나타냅니다.

 

[큐함수]

큐함수는 어떤 상태에서 어떤 행동에 대해 가치를  알려주는 함수입니다.

 \(q_\pi(s,a)\)로 표기하며 상태, 행동이라는 두 가지 변수를 가집니다.

큐함수는 아래의 수식으로 표현합니다.

\(v_\pi(s)\) = \(\Sigma\pi(a|s) q_\pi(s,a)\)

 

큐함수의 벨만  기대방정식은 아래와 같습니다

\(q_\pi(s,a) = E_\pi[R_{t+1} + \gamma q_\pi(S_{t+1},A_{t+1}) | S_t = s, A_t = a]\)

 

[벨만방정식]

벨만 기대 방정식은 아래와 같습니다.

\(v_\pi(s)\) = \(E_\pi[R_{t+1}\) + \(\gamma\)\(v_\pi(S_{t+1})  | S_t = s]\)

 

위 식에서 기대값을 구하려면 어떠한 행동을 할 확률(정책)과 

그 행동을 했을 때 어떤 상태로 가게 되는 확률(상태 변환 확률)이 포함되어 있습니다..

따라서 아래와 같이 나타낼 수 있습니다.

\(v_\pi(s)\) = \(\sum_{a \in A} \pi(a|s) (r_{(s,a)} + \gamma \sum_{s` \in S}  P_{ss`}^a v_\pi (s`)) \)

 

벨만 기대 방정식을 이용해 현재의 가치함수를 계속 업데이트하다 보면 참값을 구할 수 있습니다.

참값은 최대로 받을 보상이 아닌 현재의 정책을 따라갔을 경우에 

에이전트가 실제로 얻을 보상의 값에 대한 기대 값입니다.

 

[벨만 최적 방정식]

\(v_\pi(s)\) = \(E_\pi[R_{t+1}\) + \(\gamma\)\(v_\pi(S_{t+1})  | S_t = s]\)

벨만 기대 방정식을 무한히 진행하면 식의 양변이 같아집니다.

그러면 현재 정책 \(\pi\)에 대한 참 가치함수를 구한 것입니다.

이는 최적 가치함수(Optimal Value Function)과는 다릅니다.

최적가치함수는 수많은 정책 중에서

가장 높은 보상으로 얻게 되는 정책을 따랐을 때의 가치함수 입니다.

 

\(v_*(s) = \underset{\pi}max[v_\pi(s)]\)

최적의 가치함수

 

\(q_*(s,a) = \underset{\pi}max[q_\pi(s,a)]\)

최적의 큐함수

 

최적의 큐함수를 찾는다면 최적의 가치함수를 얻을 수 있습니다. 

이를 풀기 위해서는 MDP를 사용하여 문제를 풀어야 합니다.

 

728x90

'CS > 강화학습' 카테고리의 다른 글

근사함수  (0) 2021.10.11
살사(SARSA) / 큐러닝(Q-Learning)  (0) 2021.10.10
다이내믹 프로그래밍  (0) 2021.10.09
강화학습 - 강화학습 문제  (0) 2021.10.04
바닥부터 배우는 강화학습 : 강화학습이란 (1장)  (0) 2021.09.17
Comments