[고려대학교 김중헌교수님] Introduction to Reinforcement learning

최근 가짜연구소라는 커뮤니티에 4기 러너로 뽑히게 되어 Reinforcement learning을 주제로한 스터디에 참가할 수 있게되었다. 정말 다양하고 훌륭하신 분들과 스터디를 같이 할 수 있게되어 좋았지만 그런 분들께 민폐가 되지 않기위해서 최근 몇 주간 고민이 많았다. 부담없이 스터디를 하는 것도 좋지만 나도 누군가에게 내가 아는 것을 알려드리기위해서 많은 공부를 해야겠다고 다짐하였다. 우선 UC Berkeley의 CS234를 수강하면서 스터디를 진행할 예정이지만 RL을 처음 접하고 해당 강의는 영어로된 강의이기에 우선 개념을 먼저 잡기위해 한국어로 설명해주시는 강의를 듣고자 찾아보았다. 운 좋게도 고려대학교의 김중헌 교수님의 Introduction to Reinforcement learning을 접할 수 있었고 너무나도 쉽고 이해할 수 있도록 잘 만들어주셔서 이 강의를 토대로 RL에 대한 기본 개념을 잡고 CS234의 내용을 정리해보기로 하였다.

 


Introduction to Reinforcement Learning


  • Brief History and Successes
    • Minsky's PhD thesis(1954) : Stochastic Neural-Analog Reinforcement Computer
    • Job-shop scheduling for NASA space missions(Zhang and Dietterich, 1997), 우주탐사계획을 수립하는 과정에서 우주탐사선이 어떤 궤적으로 날아갈 것인지 행성을 어디에서 잘 찍어야될지를 RL의 개념을 이용해서 수립
    • Robotic soccer(Stone and Veloso, 1998), 로봇 축구
  • When RL can be used?
    • Find the (approximated) optimal action sequence for expected reward maximization(not for single optimal solution), 하나의 optimal action을 찾는 것이 아니라 action의 sequence를 찾는 것이 목표, 대표적인 예가 바둑, 상황이 변환 것을 한 수 -> 다음 수 -> ... 궁극적으로 이기기 위해서 어떤 수를 둬야되는가를 탐색.
    • Define actions and rewards

Reward를 maximization 하기위해서 action의 sequence를 찾아내는 학습이 강화학습

그러기 위해서는 현재 상황이 어떤가를 정의하기 위한 상태정보 -> state

취할 수 있는 행동들의 선택지 -> action

현재 위치한 state에서 특정 action을 함으로써 잘했는가? 를 판단하기위한 정량적 자료 -> reward

Reinforcement learning에서 위의 3가지 state, action, reward가 가장 기본이 되는 3가지이다.

 

Examples of Reinforcement learning

Robot이 전을 부치는 상황이 있다고 해보자. 요리를 잘 모르긴 하지만 개인적인 경험으로(?) 어머니가 전을 부치는 것을 훔쳐보았을 때 프라이팬을 빙글빙글 돌리면서 열이 잘 전달되게끔도 하시고 앞으로 프라이팬을 조금 뺏다가 뒤로 훅 빼서 전을 뒤집으시곤 한다. Robot도 전을 부치기위해서 일련의 n단계 action이 있을 것이다. 빙글뱅글돌리기 -> 앞으로 조금 뺏다가 뒤로 훅 빼기 -> 기름 많이 모인쪽에서 반대쪽으로 기울기 -> ... 처럼 말이다. 이처럼 action의 sequence를 policy라고 정의한다. 

 

이렇듯 Reinforcement learning은 Robotics에서 자주 활용되곤 한다. Robotics는 대표적으로 두 가지 연구분야로 나뉘곤 한다. 첫 번째로는 인간의 형태를 모습으로 하며 인간과 같은 인식기능과 운동기능을 구현하는 것을 목표로 하는 Huamnoid가 있고 산업현장에서 도색 등 자동화 생산 라인에서 사용되는 Industrial Robot으로 나뉠 수 있다.

 

System architecture of reinforcement learning

어찌됐건 다시 RL로 돌아와서 Agent는 행위를 하는 행위자에 해당하며 Environment는 agent가 statereward를 받아올 수 있는 곳이다. 즉, 미로찾기라는 environment가 존재한다면 미로 안에 놓여진 로봇이 agent이고 미로 안에서 어디에 위치해있는지가 state, 특정 방향으로 갔을 때 궁극적으로 미로를 빠져나가기위해 단기적으로 얻게되는 보상이 reward인 셈이다.

 

궁극적으로 미로를 빠져나가기위해 단기적으로 얻게되는 보상이라는 말을 더 설명해보자면 미로에 놓인 상황에서 출구로 가기 위해서 특정 위치에서 아래로 가는 것이 출구에 더 가까워 지며 유일한 방법일 수도 있고 오른쪽으로 가는 것은 출구에서 더 멀어지며 막다른 길을 마주치는 action일 수도 있는 것이다. 즉, 궁극적으로 탈출을 위해서 각 state별로 취할 수 있는 action마다 단기적인 reward가 존재하는 셈이다. 

 

RL을 좀 더 concrete하게 표현하면 다음과 같다.

  • RL Setting
    • The general RL problem is formalized as a discrete time stochastic control process where an agent interacts  with its environment as follows

여기서 중요한 단어는 discrete time stochastic control process 이다. 

discrete time이란 continuous하게 action을 하는 것이 아니라 time-step 마다 action을 하는 것을 의미한다. 즉, 바둑을 둘 때 action을 하고 상대방의 action이 지난 후 또 action을 하는 clock이 있다는 뜻이다.

stochastic이란 확률적으로 계속 decision-making을 한다는 의미이고

control이란 agent가 하는 action을 결정해준다는 의미이다.

제일 중요한 단어는 process이다. 이는 한 번의 의사결정이 아니라 계속 반복된다는 의미를 담고있다.

 

an agent interacts with its environment 는 agent가 environment가 주는 state와 그거에 맞게 action하고 또 state 정보를 받는다는 의미에서 interact 라는 단어가 쓰인 것이다.


RL의 procedure은 다음과 같다.

 

1. The agent starts in a given state within its environment $$ s_0 \in S $$

먼저 environment에서 주어진 state에서 시작하여

 

by gathering an initial observation $$ \omega_0 \in \Omega $$

초기 관찰치들을 다 모은다

 

2. At each time step t,

The agent has to take an action $$ a_t \in A $$

그 다음으로 각 time step마다 하나의 action을 취하고

 

It follows three consequences:

그 다음으로 세 가지의 변화가 생기게된다

 

1) Obtains a reward $$ r_t \in R $$

t 일때 reward를 얻고

 

2) State transitions to $$ s_{t+1} \in S$$

t에서 t+1로 state를 변화하고

 

3) Obtains an observation $$ \omega_{t+1} \in \Omega $$

변해진 t+1일 때 state에서 관찰한 관측치들을 얻게된다

 

이러한 과정이 무수히 반복되는 것이 강화학습


갑자기 Observation이 등장하였다. 관측치를 의미하는 observation과 state는 무슨 차이일까?

state도 environment에서 얻을 수 있는 정보 즉, 관측치 아닌가 하는 의문이 든다.

Observation은 말 그대로 현재 관찰되는 상황 그 자체이고, 

State Agent가 결정을 내릴 때 사용되는 상황 전체이다.

 

이는 Problem definition을 어떻게 하느냐에 따라 다르다.

예를 들어 현재 관찰되는 Observation만을 State로 설정할 수도 있고,

때로는 현재의 Observation 뿐만아니라 과거 Observation까지 포함해서

Agent가 더 많은 정보를 가지고 결정을 내리도록 할 수도 있다.

아주 좋은 예제를 스터디에서 소개해주셔서 그 내용을 덧붙이고자 한다.(감사합니다ㅠㅠ)

 

An example of single tightrope

외줄타기를 예로 들어본다면

Observation: 균형잡는 것을 도와주는 작대기의 각도, 사람의 상체 각도, 하체 각도 등

Action: 작대기를 오른쪽으로 기울이거나 왼쪽으로 기울이는 것, 상체를 움직이는 것 등

Reward: 평행을 잡으면 +100, 기울어져있지만 넘어지지만 않으면 +30, 넘어지면 -100

등으로 설정할 수 있다.

State는 action을 선택할 수 있는 판단으로 observation을 포함하여 action, reward도 포함되어

이러한 정보들이 모여 다음 action으로 어떤 것을 선택할지 결정하는데 사용된다.

 

즉, observation과 다른 개념이며 때로는 모든 observation을 활용한다면 state가 더 넓은 의미가

될 수도 있고 state가 action과 reward 정보를 활용하지 않고 현재의 observation의 일부만을

활용할 경우 observation이 더 넓은 범위가 될 수 있다. 다른 개념임을 잊지 말자!

 


 

 

댓글

Designed by JB FACTORY