※ 많은 부분을 Machine Learning 스터디 (20) Reinforcement Learning을 참고하여 작성하였습니다.
+ Reinforcement Learning에 대해 공부한 것을 정리한 것입니다. 배우는 중이라 잘못된 내용이 있을 수 있으며 계속해서 보완해 나갈 것입니다. :))
1. Reinforcement Learning
학습의 종류에는 supervised learning, unsupervised learning, reinforcement learning이 있다고 배웠다.
supervised learning, unsupervised learning은 지금까지 배워보기도 했지만 reinforcement learning(이하 강화학습)은 처음 배우는 거라 강화학습은 무엇이고 왜 필요하게 되었는지를 알아보는 것으로 시작해보고자한다.
우선 Supervised learning은 주어진 데이터의 label(정답)을 mapping하는 function을 찾는 문제이다. 이 경우 알고리즘은 얼마나 정답을 정확하게 분류하느냐 혹은 정해진 loss function을 minimize시킬 수 있느냐에만 초점을 맞추어 모델을 learning하게 된다.
하지만 세상의 모든 문제들이 이러한 데이터로 표현될 수 있는 것은 아니다.
예를 들어 로봇 진공청소기를 생각해보자. 우리가 알고싶은 것은 어떻게 하면 30분 동안 얼마나 많은 먼지를 수집할 것인가 이다. 이 경우 로봇 청소기의 움직임을 control하는 function을 learning시켜야 한다.
이를 (1) data (2) output (3) target function (4) loss를 minimize하는 algorithm으로 정의해보면,
이렇게 될 때 supervised learning으로 학습을 시키기 위한 (data, output) 조합이 매우 많고 어떤 'action'이 올바른 output을 내기위한 'action'인가를 판단하는 것이 불가능하다. 이렇게 action의 개념이 자연스럽게(?) 나오게 되는데, 아에 패러다임을 바꾸어서 학습 방법을 아래와 같이 생각해 볼 수 있겠다.
우리가 알고싶은 것은 '어떤 장소, 환경이 주어졌을 때 로봇청소기가 어떻게 action을 취해야하는가 라는 policy'이다. 이 청소기의 policy는 매 초마다 어떤 확률 p만큼 전진하는 것일 수도 잇고, (1-p)의 확률로 왼쪽/오른쪽으로 랜덤하게 회전하는 것일 수도 있다. 그리고 회전 각도는 -r과 +r의 랜덤한 값일 수도 있다.
매 action을 주어진 policy를 통해 시행하고 나면 다음 state가 정의된다. 그리고 만약 성공적으로 먼지 양이 많아졌다면 +1 점을 주고 그렇지 않다면 -1점을 주는 방식을 통해 매 action의 reward를 정의할 수 있을 것이다.
이런 식으로 static한 데이터 셋에서 거의 무한하게 많이 필요한 (data, output)를 사용해 learning하는 방법 대신에, 직접 매 순간 action을 실행해 reward를 받으면서 최종적으로 맨 마지막에 모든 reward의 합이 가장 좋게 만드는 policy를 learning하는 것이 강화학습의 개념이다.
2. Markov Decision Process (MDP)
그렇다면 강화학습을 어떻게 정의할 수 있을까?
주어진 환경에서의 Agent의 현 상태가 주어지면 Policy 알고리즘은 가능한 Action들의 기대 Reward를 산출한다. 이러한 성질을 '마르코프 성질'이라고 하며, 이렇게 이전 상태들을 참고하지 않고 현재 상태만으로 최선의 결정을 내릴 수 있는 마르코프 성질을 지닌 문제를 '마르코프 결정 과정(Markov Decision Process (MDP))'라고 부른다. 이렇게 미래의 보상을 최대화하는 최적의 동작들을 오직 현재 상태의 정보만으로 결정하는 MDP로 강화학습 문제를 정의하면 해법이 단순해지기때문에 보통 RL문제를 푼다고 하면 강화학습은 마르코프 성질을 만족한다는 전제하에 Markov Decision Process (MDP)를 의미한다.
본질적으로 하나의 강화학습 알고리즘은 어떤 Environment에서 행동하는 소프트웨어 Agent를 구축한다.
※ Environment는 state와 action이 있고 reward를 산출하는 과정이면 어떤 것이라도 환경이 될 수 있다.
Agent는 Environment의 현재 State를 입력받는다.
※ 하나의 State는 특정 시점 t에서 Environment에 관한 모든 데이터의 집합이다.
그리고 Agent는 이 State 정보를 이용해서 어떤 Action을 취한다.
※ Agent가 Action을 결정하기 위해 사용하는 알고리즘을 Policy라고 한다.
이 Action은 Environment을 결정론적으로 또는 확률적으로 변경하며, 그러면 Environment의 현재 state(st)가 바뀐다.(st+1)
이렇게 State(st)에서 Agent가 Action at를 취해서 다음State(st+1)로 전이하면 Agent는 그에 따른 Reward를 받는다
Agent의 목적은 Reward의 장기간 기대치를 최대로 만드는 Action을 학습하는 것이다.
이를 기억하고 MDP의 (S,A,{Psa},γ,R)튜플 각각에 대해 알아보도록 하자.
-
S
- state들의 set을 의미한다. 앞에서 예를 든 2족 보행 로봇의 경우 모든 가능한 관절의 상태와 환경 등이 state가 된다. 참고로 state와 다음에 기술한 action의 개수가 유한하다면 |S|<inf,|A|<inf, 주어진 MDP를 finite MDP라고 부른다. -
A
- action들의 set을 의미한다. 2족 보행 로봇의 경우 어떻게 관절을 control할 것인가를 의미한다. -
Psa:(st,at)→sat
- 특정 state에서 특정 action을 취했을 떄 다음 state는 어떤 state가 될지에 대한 확률 값이다. -
R:S×A→R
- 주어진 state에 action을 수행했을 때 얻게 되는 reward를 function으로 표현한 것이다. Reinforcement learning의 목표는 시간이 T만큼 흘렀을 때 최종적으로 얻게 되는 모든 reward들의 합을 (정확하게는 그것의 expectation을) maximization하는 policy를 learning하는 것이다. -
γ∈[0,1)
- 앞에서 설명한 reward의 discount factor로, 시간이 지날수록 reward의 가치를 떨어뜨리고, 처음 받은 reward의 가치를 더 키워주는 역할을 한다. 왜 그럴까? 매 action을 취할 때마다 reward가 결정되는데 이때 최대한 빠르게 많은 reward를 받는 것이 좋기 때문에 나중에 받은 reward보다 일찍 받은 reward가 더 중요하다고 가정하기 때문이다. 이를 반영시켜주는데 필요한 것이 reward의 discount factor이다. 즉, time t에서 얻은 reward를 rt라고 했을 때, 전체 reward Rtot는 ∑Tt=0γtrt가 된다.
그러면 앞서 '순간 action을 실행해 reward를 받으면서 최종적으로 맨 마지막에 모든 reward의 합 (정확하게는 그것의 expectation을)이 maximization하게 만드는 policy를 learning하는 것이 강화학습의 개념이다.' 라고 했던 것을 MDP를 사용해서 표현하면?
3. 어떻게 모든 reward의 합 (정확하게는 그것의 expectation을)이 maximization하게 만드는 policy를 learning시킬 수 있을까?
어떻게 Agent는 이 State 정보를 이용해서 어떤 Action을 취하게 되는지에 대해서 알아보자.
우선 알아야할 몇 가지 개념이 있다.
1) 정책 함수
하나의 policy π 는 주어진 환경에서 agent가 사용하는 전략을 대표한다. 일반적으로 하나의 policy는 한 state를 그 state에서 가능한 action들에 대한 확률분포로 mapping하는 하나의 함수이다.
2) 최적 정책
최적 정책이란 현재 state에서 최선의 acton을 선택하는 역할을 한다.
3) 가치 함수
가치 함수란 state 또는 state-action 쌍을 그 state에서 기대 가치(reward)로 mapping하는 함수이다. 이 함수는 상태 s를 받고 그 상태에서 policy π에 따라 action을 취했을 때 기대 가치(reward)를 돌려준다.
3-1. 상태 가치 함수(Vπ )는 상태 s를 그 state에서 policy π에 따라 action을 취했을 때 기대 가치(reward)로 mapping하는 함수이다.
3-2. 동작 가치 함수(Qπ)는 상태 s와 동작 a의 쌍(s, a)를 그 state에서 policy π에 따라 action을 취했을 때 기대 가치(reward)로 mapping하는 함수이다. 이 함수를 Q function이라 하고, Q function의 값을 Q value라고 한다.
지금까지 강화학습이란 무엇인지를 마르코프 결정 과정에 근사하여 알아보았고
어떻게 최적화된 정책을 알아낼 수 있는지 알아보기 위해 필요한 개념들에 대해 정리해 보았다.
다음 장에는 심층 강화학습에 대해 정리해보고자 한다.
reference
<심층 강화학습 인 액션> - 알렉스 짜이, 브랜던 브라운 지음