728x90

※유튜브 또는 구글에 'David silver'를 쳐서 나오는 강의를 바탕으로 이해한 것을 설명하였습니다.

 

Policy는 Agent의 핵심이라고 생각한다. 말 그대로 어떻게 행동할지를 결정해주는 것을 policy라고 한다.

특정 state(S)에서 어떤 행동(A)을 취할지를 결정해주는데 크게 두 가지로 나뉜다.

<그림 1. policy의 종류>

Deterministic policy : S에서는 a라는 행동을 취한다.

Stochastic policy : S에서 취할 수 있는 A들에 확률에 따라 랜덤 하게 행동한다.

결과적으로 Deterministic policy의 경우에는 계산 결과로 action을 출력하지만 stochastic policy의 경우에는 각 action의 확률을 출력해준다. 


Value Function(V(s))은 현재의 state에서 받을 수 있는 reward값들의 가중 산술 평균이다. 지금의 state에서 어디로 움직여야지 가장 좋은가를 따질 때 V(s)를 사용하게 된다.

<그림 2. V(s)설명을 위한 단순 예시>

위와 같은 게임이 있다고 가정해보자. 해당 게임은 S에서 시작하여 G까지 가는 것이 목표이며 Reward는 움직임 당 -1을 준다. 원래 같으면 discount vector라고 해서 가중치를 곱해주지만 단순 예시를 위해 제외하고 설명한다(제외한다고는 했지만 discount vector = 1인 경우와 같다). 먼저 왼쪽의 경우에는 V(S6)는 다음턴에 게임이 종료되었기 때문에 받는 reward = 0이다. 따라서 V(S6) = 0이다. V(S5)는 S5에서 S6로 한 번 이동했기 때문에 reward -1을 받게 된다. 그래서 V(S5) = -1이다. V(S2)의 경우에 V5로 한번 이동했으니 reward가 -1이라고 착각할 수도 있지만, Value Function을 구할 때에는 미래에 받는 reward도 함께 계산해야 한다. 그러므로 V(S2) = -2이다.

<그림 2-2. 계산 결과>

그리고 두번째 그림을 볼 차례인데 이때 중요한 것은 Value Function은 게임할 때마다 초기화가 되지 않는다. 즉, 이전의 값들을 유지한 채로 계산을 해주면 되는 것이다. 그럼 S2를 제외한 S0 ~ S4는 위와 동일한 방식으로 계산되고, V(S2) = 앞선 결과와 현재 결과의 평균치를 계산해주면 되는 것이다. V(S2) = (-2 + -4) / 2 = -3이 된다.

그래서 최종적으로는 오른쪽 그림과 같은 Value Function table이 완성된다. 그럼 S에서 시작하여서 reward를 최대화 하는 방향으로 움직이게 된다면 S에서 갈 수 있는 S0와 S2 중에 Value function이 더 큰 S0쪽으로 action을 택할 것이고, 그다음에서 같은 과정을 거치면서 action을 선택하여 G에 도달하는 가장 좋은 루트를 찾는 것이 강화 학습입니다. 위 예시는 아주 단순한 예제이고 실제로는 더 복잡한 다양한 방법들을 이용하여 강화 학습을 진행하게 된다.

여기서 잠시 위의 policy설명을 덧붙이자면 S에서 S0를 가는 것이 좋다고 알고 있고 그렇게 행동을 했을때, 즉 S에서는 반드시 오른쪽 action을 취하는 게 Deterministic policy, 오른쪽과 아래 action에 각각 확률을 주어서 확률에 따라 선택하면 stochastic policy인 것이다.


policy가 agent의 핵심이었다면 model은 Env의 핵심이다. S에서 a를 했을 때 그 다음 어떤 S'로 넘어갈 확률, 그리고 reward를 포함하고 있는 게 model이다. 한마디로 어떤 S에서 agent가 한 action의 결과를 계산하는 데 사용되는 것이 model이라는 것이다.

 

[출처]<그림1>

https://www.davidsilver.uk/wp-content/uploads/2020/03/intro_RL.pdf

'코딩 공부 > 강화학습' 카테고리의 다른 글

Reinfocement Learning이란?-1  (0) 2021.06.29

+ Recent posts