Elements of reinforcement learning

강화학습 기본 요소

강화학습에서 가장 중요한 setting은 state, action, reward이다. Action의 경우 주어진 환경에 따라서 자연히 결정되는 경우가 많으나 state와 reward는 다르다. 동일한 환경, 알고리즘이여도 state feature 구성과 reward function의 설계에 따라 상이한 결과를 가져온다. 다음 글을 통해 state, action, reward의 정의를 알아보도록 하자.

State

State (상태)는 강화학습에서 행위의 주체인 agent가 처해있는 상황을 말하며 행동을 취할 때 사용되는 정보이다. 앞의 자율주행 agent의 경우 전방 카메라에 담긴 도로의 상황, 앞,뒤 센서를 통한 주위 자동차의 수, 당일 날씨 정보 등이 state가 될 수 있다. 이와 같은 state는 agent에게 주어지는 정보기 때문에 어떻게 구성하느냐에 따라서 동일한 알고리즘도 성능 차이를 보일 수 있다.

State에 따라서 agent는 세상을 어떻게 바라볼까? 다음 예를 통해서 agent의 입장에 한 발자국 다가가보자. 여러분은 Figure 02를 보고 과연 무슨 문제를 푸는 것인지 알 수 있겠는가?

무엇을 하고자 하는지 정확히 알 수 없다. 단 현재 agent가 S에 위치하여 있다는 것을 절대좌표(3,0)를 통해 알 수 있을 뿐이다. 그렇다면 다음과 같이 state를 추가해보자.

Figure 03과 같이 start의 절대좌표와 destination의 절대좌표만을 주어졌을 때, 빗금된 unseen state를 통과하여 목적지에 도달하기 위해서 어떤 과정을 거쳐야 하는지 알아보도록하자.

Action

Action (행동)은 agent가 현재 취할 수 있는 선택지를 뜻한다. 자율주행 agent의 경우 handle 각도, acceler-ator, brake 등이 존재할 것이며 주식 투자 agent의 경우 매수, 매도, 관망이 있을 것이다. Figure 04와 같이 grid world의 agent는 상, 하, 좌, 우에 대한 discrete action이 존재한다고 가정해보자.

먼저 가능한 행동 중 상, 하, 좌에 대한 action을 취했고 여전히 (3,0)의 위치에서 벗어날 수 없었다고 가정하자. 그렇게 될 경우 agent가 발견한 environment는 Figure 04와 같이 변경되었을 것이다.

이제 하나 남은 action인 "우"를 택해보자.

빗금으로 표기된 unseen state에 대한 부분이 일부 해소되었다. 이와 같이 모든 state마다 가능한 action을 임의로 진행하고, destination에 도달하는 행동을 기억했다가 이를 반복하면 위 task는 풀 수 있을 것으로 보인다. 그러나 모든 action을 임의로 택하는 대신 agent가 취한 행동에 대해서 가치를 평가하고 더 높은 가치를 보이는 action만을 취한다면 보다 효율적으로 task를 풀 수 있을 것으로 보인다. 이를 위해 필요한 개념이 reward이다.

Reward

Reward (보상)은 agent가 취한 행동의 좋고 나쁨을 평가하는 기준으로 state와 마찬가지로 사람이 설계하는 값이다. 강화학습 agent가 학습할 수 있는 유일한 정보에 해당하며 모든 강화학습 알고리즘은 이 reward를 최대화하는 것을 목표로 한다.

만약 위에서 제시한 grid world의 task가 최단 거리로 destination에 도달하는 것이라면 Figure 04에서 특정 행동을 취했음에도 제자리로 돌아오는 경우는 음의 보상을 주어야 마땅할 것이다. 정상적으로 설계된 환경 및 reward function이라는 가정하에 Figure 04의 행동을 취할 경우 -2의 보상을 받았다고 가정하자. 또한 행동을 취했을 때 state의 변화가 존재하며, destination에 도달하지 않았다면 0의 보상을 받았다고 가정해보자. 즉 initial state (S)에서 agent가 받을 수 있는 행동별 reward는 다음과 같다.

만약 agent가 initial state에서 다시 시작하게 된다면 상, 하, 좌 action 대신 우 action을 취하게 될 것이다. Figure 04-05의 과정을 통해 action "우"가 더 좋은 reward를 받을 수 있다는 사실을 알았기 때문이다.

다시 agent의 입장으로 돌아가서 (3,1) 좌표에서 상, 하, 좌, 우 action을 취해보자. 오른쪽으로 가는 행동을 취했을 때 state의 변화 없이 제자리로 돌아왔고 나머지는 위치 변화가 있었다면 다음과 같이 unseen state를 개척할 수 있을 것이다.

Figure 07을 살펴보면 행동 "우"에 대해서 -2의 reward를, 나머지 actions에 대해서는 0의 reward를 받음을 알 수 있다. Agent 입장에서 destination에 도달하기 위해서 위로 가는 길과 아래로 가는 길 두 가지가 있다는 것을 파악할 수 있다.

추가로 Figure 07 예를 통해서 reward function의 설계가 agent의 효율성 및 성능에 영향을 준다는 사실을 알 수 있다. 만약 기존에 방문한 state를 다시 돌아갔을 경우 음의 penalty가 있다면 (3,1)의 state에서 action "좌"를 거를 수 있어 보다 효율적인 탐색이 가능했을 것이다.

(작성중)

Last updated