티스토리 뷰

Study/AI

[RL] Elements of Reinforcement Learning

생각많은 소심남 2018. 5. 21. 10:05

  지난 포스트에서도 간단히 소개했지만 강화학습의 구성요소는 다음과 같다.

 우선 크게 놓고 보았을때 행동을 하는 주체인 Agent와 행동에 대한 반응을 보여주는 Environment가 있다. Agent는 자신이 취하는 Action을 Environment에게 전달해줄 것이고, 이 Action을 결정하는 근거로써 내부적인 PolicyModel, Value Function등이 있다. Environment는 Agent로부터 받은 Action에 대한 피드백으로 현재의 state와 옳고 그름을 판단하는 Reward를 Agent에게 전달하는 구조로 되어 있다. 이런 과정이 매 time step마다 이뤄진다.

 - Time step은 action을 선택하고 state/reward가 Agent에게 전달되는 기본적인 시간 단위를 말하고, 흔히 알다시피 t라는 기호로 표현된다.

 - Environment는 Agent가 Action을 취할 수 있는 일종의 world라고 보면 좋을거 같다. 앞에서 말했던 것처럼 일종의 loop형식으로 되어 있는데, 이 loop내에서도 Agent로부터 Action을 받고(Accept), 이에 대한 산출물로 State와 Reward를 만들게 된다.(Produce)

 - Agent는 Environment와의 인터렉션을 통해서 목적을 달성하는 방법을 배우는 주체이다. Environment가 Loop로 돌듯이 Agent도 Loop로 도는 형식으로 되어 있는데, 이때 Environment로부터 State와 Reward를 받고,(Sense)   이를 바탕으로 적절한 Action을 취하게 된다(Effect). 

 - Reward 는 Agent가 Action을 취했을 때 Environment로 받는 값이며, 보통 이 값이 높은 방향으로 목표가 설정된다. 중요한 것은 Reward를 설정하는 Criteria에 의해서 Agent가 학습하는 방향이 결정되기 때문에, 이 Reward를 삼는 기준은 전적으로 강화학습을 통해 문제를 해결하고자 하는 사람에 의해 좌우된다. 보통 수식상으로는 r_t로 표현된다.

 - Action은 말그대로 Agent가 취하는 행동이다. 그리고 이부분은 강화학습 문제에 따라서 다르게 정의할 수 있다. 예를 들어 엘레베이터와 관련하여 엘레베이터의 동작을 강화학습으로 풀겠다고 하면, 이 Action은 위로 가거나, 아래로 가거나, 혹은 멈춰있거나 같은 Action으로 정의할 수 있다. 혹은 속도를 구하겠다하면 속도의 범위만 알고 있으면 범위 내 각각의 값이 모두 Action이 된다. 이처럼 값이 Discrete할 수도 있고, Continuous할 수도 있다. 

 - Policy는 특정 상태에서 Agent의 Action과 Environment의 State간의 관계를 도식화한 개념이다. 이전 포스트에서 잠깐 언급한 적이 있는데, 이런 Action이 취하는 과정이 확률적으로 접근할수도 있고,(Stochastic) 또는 어떤 정형화된 규칙에 의해서도 결정될 수 있다. 보통 수식에선 π로 표현된다.

 - Value function은 Agent에 의해서 계산되는 State의 좋은 정도를 나타내는 함수이다. 일반적으로 전체 과정동안 계속 reward를 누적해서 가장 큰 reward를 취하는 Action이 좋은 것으로 여긴다. Value function도 어떤 입력조건을 바탕으로 하겠냐에 따라서 크게 두가지로 구분할 수 있다.
     - 보통 현재의 State만을 고려해서 Reward를 계산하는 함수가 간단한 Value function이고, 수식으로 V^π (s)라고 표현한다. 이 경우는 Agent에 설정되어 있는 Policy에 의존하게 된다.
     - 위의 경우와 다르게 Agent가 취하는 Action까지 Value function으로 고려하는 경우도 있다. 이 때는 Value-State function이라고 부르는데, 흔히 강화학습에서 많이 다뤄지는 Q-function(참고로 통계에서 나오는 Q-function과 다른 개념이다. 통계에서는 보통 분포함수를 표현함수로 쓰인다.) 이 이 케이스이다. 수식상으로는  Q^π (s, a)으로 표현된다.

 - Model은 Agent가 행동을 결정하는 전체적인 형태를 나타낸다. 사실 나도 이 부분이 Policy랑 헷갈리는 부분인데, Policy는 매 순간순간 Environment로부터 받은 State를 바탕으로 Action을 결정하는 것이지만, Model의 경우는 전체적으로 학습이 이뤄질 때 Action의 방향성을 나타내는 것으로 이해했다. 물론 Model이 없이 Agent가 무작정 해보고 이에 대한 Error를 줄이는 방향으로 action을 결정할 수도 있겠지만(Trial-and-Error learning), Planning과 같이 기본적으로 어떻게 Action을 결정할 것인지 방향성을 제시해주는 Model-based 기법도 존재한다.

간단하게 실생활에서 이런 강화학습이 적용될 수 있는 케이스에 대해서 살펴보면, 가까운 것중에 Tic-Tac-Toe 게임이 있다.


 아는 사람도 있겠지만 이 게임은 대각선이든 어떤 변에 자신이 선택한 모양을 일렬로 배열하면 이기는 게임이다. 매우 간단한 게임이기도 하지만 Agent가 어디에 두느냐에 따라 그때 그때 상대방의 위치도 변화하기 때문에 딱 정해진 전략이 없다. 여기서 위에서 소개한 강화학습의 형태에 적용해보면 다음과 같다.

 - Agent : 당연히 게임을 하는 어떤 Player가 되겠다. Tic-Tac-Toe에서는 Player가 O 또는 X이므로 이 둘중 하나가 Agent가 된다.
 - Environment : 위의 정의에서 살펴볼 때 Agent의 Action에 반응해야 할 요소이므로 Agent와 반대 Player가 되겠다. 
 - State : Action이 수행됨에 따라 변화하는 조건이 나타는 곳이므로, 9개의 빈 공간 상에서 각 공간 별로 O나 X, 그리고 아무것도 정의되어 있지 않은 것이 State로 정의할 수 있다.
 - Action : Agent가 취할 수 있는 행동의 형태이므로 9개의 빈 공간에 어떤 공간에 자신의 모양을 넣는 것 자체가 행동이 된다.
 - Reward : 우리가 이 학습에서 추구로 하는 것이 "게임에서 이기는 것"이므로 이겼을 때 1점, 비겼을 때 0점, 그리고 졌을 때는 -1점을 줌으로써 학습이 진행되게끔 하면 된다.

 사실 위의 게임은 게임이 이기거나 지던가, 비기는 형태로 끝이 나는 형태로 되어 있다. 그렇기 때문에 이 게임이 끝날때마다 다시 게임을 시작해서 학습을 시키게 되는데 보통 이런식의 진행을 Episodic이라고 한다. 반면 우리 실생활에서는 이렇게 게임이 끝나는 조건에만 강화학습을 적용할 수 있는게 아니라, 온도나 시간과 같이 연속된 값을 바탕으로 변화하는 환경도 존재한다. 보통 이때는 끝나는 조건이 없으므로 학습도 연속적으로(Continuous) 이뤄지게 된다.

- 참고 : 
  Microsoft - Reinforcement Learing Explained

'Study > AI' 카테고리의 다른 글

[RL] Markov Decision Process (MDP)  (2) 2018.05.27
[RL] The Bellman Equation  (4) 2018.05.24
[RL] 강화학습이 적용된 사례 및 논문들  (0) 2018.05.21
[RL] Reinforcement Learning  (0) 2018.05.20
[DL] Convolution의 정의  (13) 2018.05.15
[DL] Convolutional Neural Network이란?  (0) 2018.05.14
[ML] Stepwise Regression  (2) 2018.01.22
댓글