Reinforcement Learning Concepts

강화학습(Reinforcement Learning)을 시작하기 전에 먼저 RL을 통해 수행하려는 문제의 framework는 어떤 구조인지 먼저 살펴보는 것이 순서일 것이다. 특이 여기서 설명하는 개념은 매우 중요하므로 충분한 시간을 가지고 숙고할 필요가 있다.

RL problem이란 무엇인가?

목표를 달성하기 위해 interaction을 통해 학습하는 일련의 과정이라고 할 수 있다. 여기서 학습자(learner) 또는 결정권자(decision maker)를 agent라고 하며, 이 agent가 interaction하는 대상을 environment라고 한다. Agent와 environment는 RL에서 매우 중요한 물리적/추상적 주체이다. Agent는 action을 선택하고 environment는 그 action에 반응하고 새로운 상태(state)를 agent에게 남김과 동시에 계량화된 값을 가진 보상(reward)를 돌려주는데, agent는 이 reward를 최대화 하고자 노력한다. 이러한 agent와  environment와의 interaction을 보여주는 diagram이다.

rl-agent-environment-interaction

매 time step마다 agent는 특정 상태(state)에서 취할수 있는 actions의 확률을 결정하게되는데, 이러한 state(s)와 action(a)의 확률간의 mapping을 agent의 policy라고 하고, \pi_t (a|s)로 나타낸다. Reinforcement learning method는 agent가 그의 경험에 의거하여 어떻게 이 policy를 바꾸가를 의미한다. Policy를 어떻게 바꿀지는 최종적으로 (in the long run) 받게 되는 reward를 최대화할 수 있느냐에 대한 결정이다.

위와 같이 정의된 강화학습에서 italic bold로 강조된 용어에 대해서 너무 좁은 의미로 해석하지 말기 바란다. 폭 넓은 시야를 견지하면 위의 framework는 매우 추상적이며 유동적이라 매우 광범위하게 적용할 수 있다는 점이 중요하다. 특히 environment라는 용어를 사용한 이유는 거의 모든것을 대상으로 한다는 점에서 적절한 선택이라는 생각이 든다. 이를 확장하면, environment의 상태인 state도 매우 다양한 형태를 취할 수 있는 것이다. 이와 더불어 agent와 environment를 너무 물리적 개념으로 협의의 해석을 하면 곤란하다. 이 관점을 다르게 표현하면 agent에 의해 임의로 변경되지 않는 것은 모두 environment로 해석하는 것이 좋은 방법이다. 그렇다고 해서, agent가 environment에 대해 전혀 아무런 지식이나 정보가 없다는 의미는 아니다. agent와 environment는 강화학습에서 중요한 주체이므로 이들의 관계를 다시 한번 기술한다.

“The agent-environment boundary represents the limit of the agent’s absolute control, not of its knowledge”

결국 RL의 중심에는 agent와 agent가 environment를 대상으로 해결하려는 problem이 있다.

Goals and Rewards

앞서 언급했듯이, RL에서 agent는 그가 한 행동에 대한 보상(reward)을 최대화하는것을 목표(goal or purpose)로 삼고 있다. 그러나, 목표(goal)와 agent의 순간순간의 행동에 대한 보상(reward)는 다른 개념이지만, RL에서는 reward signal으로 goal을 표현하는 도구로 사용하는 것이 RL의 매우 큰 특징이다.

“That all of what we mean by goals and purposes can be well thought of as the maximization of the expected value of the cumulative sum of a received scalar signal (called reward)”


인생의 경험을 현명하게 받아 들이는 사람은 순간순간 주어지는 보상(reward)과 인생의 의미 또는 목표가 다른 개념이라는 것을 알게된다. 어느 시점에서 최고의 선택이 종국에서 최선의 결과를 보장하지 않듯이, RL에서도 당장 받을 수 있는 reward 보다는, 최종적으로 받을 수 있는 reward를 최대화하는것을 목표로 삼아야 한다. 그렇다고 해서, 현재의 보상을 추구하는 삶이 잘못된 인생 목표라는 것을 의미하지 않는다. 그것이 종국의 목표가 될 수 있기 때문이다. 개인의 삶에 하늘의 사명이나 국가나 인류에 대한 봉사라는 가치를 연관지을 때는 goal이 reward와 다를 가능성이 높지만, 그렇지 않은 대부분의 사람들에게는 reward와 goal이 같을 수 있을 것이다. 우리는 reward를 무엇으로 정의할 것인가?(money를 인생의 reward로 생각하는것을 비난할 생각이 없다. 다만 우리보다 먼저살다 간 현자들이 그것이 아니라고 한다. 맞는 말이지 않겠는가?) 마찬가지로, RL에서도 순간순간 reward가 높은 방향으로 action을 선택하는 것이 최종 goal을 만족시킬 가능성도 높다. 단지 그 둘을 구분할 줄 아는 인공지능 개발자가 옳은 RL machine을 설계할 수 있고, 구분 가능한 사람이 후회하지 않을 삶을 살 가능성이 높다는 의미이다. 이렇게 썰을 풀다보니 강한인공지능이 될수록 철학적 고민과 인문학적 사색을 많이 한 사람이 필요할것 같다. 호킹박사나 엘론 머스크의 경고는 충분히 개연성이 있는 일이라는 생각이 든다. 힘을 가진 사람은 이둘을 구분하는 지혜와 감성이 동시에 필요하다.


그러므로, 우리가 정의하는 reward는 매우 중요한 개념이며, 이것을 어떻게 정의하고 agent에 부여하느냐에 따라 우리가 agent를 통해 달성하려는 것이 무엇인지를 정의한다고 봐야 한다. 예를 들어 장기를 둔다고 하면, 이게임의 목표는 장기게임을 최종 승리하는 것이지 상대편의 말을 많이 따내는 것이 아니다. 물론 상대편의 말을 많이 따내면 승리할 확률은 높아지겠지만 이것이 승리를 보장하지 않는다. 아래 문장을 곱씹을 필요가 있다.

“The reward signal is your way of communicating to the agent what you want it to achieve, not how you want it achieved”

또하나 집고 넘어갈것이 있다. Reward는 agent가 결정하는 것이 아니고 environment가 결정한다는 점이다(위의 diagram 참조). 앞서, agent-environment간의 관계가 물리적인 관점에서 구분하려 해서는 안되는 이유와 일맥 상통한다. 청소로봇의 밧데리상태는 agent인 청소로봇과 물리적으로 한 몸체이지만 environment로 해야 로봇의 밧데리 상태에 따라 바른 행동을 취할 수 있다(예를 들어 방전이 임박할 때 충천독으로 최우선 이동).

Returns

위에서 우리는 agent의 goal이 최종적인 cumulative reward를 최대화하는것이라고 했다. 그렇다면, 이것을 어떻게 수학적으로 정의하느냐가 매우 중요한 문제로 대두된다. 결국 컴퓨터는 agent의 goal을 계량화해서 조금이라도 높은 쪽으로 agent의 행동을 유도할 것이기 때문이다. 여기서, goal의 수학적 정의를 해야하는데, 이것을 Return, G_t,이라고 하고, reward들(R_{t+1}, R_{t+2}…)의 함수로 정의될 수 있다. 가장 간단한 형태라며, 아래와 같은 단순 합계일 것이다.

 G_t \doteq R_{t+1}+R_{t+2}+R_{t+3}+\cdot\cdot\cdot +R_T

여기서, T는 최종 스텝(final time step)을 의미한다. 이것은 한 application에서 agent-environment간의 interaction이 종료된것을 의미하며, 이 상태를 terminal state라고 하고 이 과정에 이르는 한 단위의 시퀀스를 episode라고 한다. 에피소드적인 일(task)를 episodic tasks라고 하고, agent-environment간의 interaction이 끊기지 않고 지속적인 일을 continuing tasks라고 한다.

위의 Return에 대한 정의에서 reward의 단순 합으로 정의하였지만, 미래의 reward에 대해 할인을 하는 discounting 개념을 도입할 수 있다. 이것을 discounted return이라고 하며 아래와 같이 정의 한다.

 G_t \doteq R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\cdot\cdot\cdot = \displaystyle\sum_{k=0}^{\infty} \gamma^k R_{t+k+1}

여기서, \gamma 0 < \gamma < 1 값을 가지며, discount rate라고 한다.

Episodic and Continuing Tasks

앞서 continuing tasks와 episodic task에 대한 정의를 설명하였지만, 편이상 이 두 tasks에 대해 별도로 수식이나 개념을 도입하여 다루지 않기 위해 통합하는 개념이 필요하다. Episode termination을 소위 absorbing state라는 개념을 도입하고 이 state에서는 항상 자신의 state로 돌아가며, reward는 zero라고 생각하는 것이다. 이 개념을 아래 그림에 나타내었다.

rl-state-transition-diagram-with-absorbing-state

여기서, solid square는 앞서 정의한 absorbing state를 의미하며, 앞서 정의한 return을 다시 표현하면 다음과 같다.

 G_t \doteq  \displaystyle\sum_{k=0}^{T-t-1} \gamma^k R_{t+k+1}

여기서, continuing tasks의 경우 T=\infty이다.

Note) 본 포스팅은 Sutton과 Barto가 공저한 Reinforcement Learning : An Introduction을 기초로 작성된것이다.

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중