본문 바로가기
Artificial Intelligence/Reinforcement Learning

강화학습 개요 - Introduction of Reinforcement Learning

by 쿨쥰 2022. 5. 8.

강화학습이란 뭘까? 어떻게 동작하는 것이고, 어떤 개념들로 이루어 져있을까?


머신러닝의 기법 중 하나로서의 강화학습

강화학습에 대해 이야기 하려면 머신러닝에 대해 먼저 정의 되어야 한다. 강화학습은 머신러닝 기법 중 하나의 알고리즘이기 때문이다.

흔히들 이야기하는 기계학습은 다음과 같이 정의 된다.

  • 경험을 통해 자동으로 개선하는 컴퓨터 알고리즘의 연구이며, 인공지능의 한 분야로 간주된다. 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야이다.

즉, 인공지능이라는 대주제 하위로 머신러닝이라는 기법이 있고, 그 머신러닝을 구성하는 한가지 주요 메카니즘 중하나가 강화학습인 것이다. 위 정의에서 ‘경험' 이라고 하는 것은 데이터를 의미할 수 도 있고, 실제 행동을 의미 할 수 도 있는데, 이 ‘경험’ 이 무엇이냐에 따라 data driven 머신러닝과, experience driven 강화학습으로 나뉘게 된다.

<그림1 - 머신러닝의 학습 방법에 대한 분류>

머신러닝의 3가지 학습 방식을 간략히 정리하면 아래와 같다.

  • Supervised Learning
    • 지도학습. input 데이터와 output 데이터를 기반으로 예측 모델을 생성한다. 즉, 결과 값이 미리 태깅 된 Labeled data (x,y) 를 미리 학습하여 아직 발생하지 않은 미지의 x’ 값이 input 되었을때의 결과 값 y’ 를 얻는 mapping function 을 develop 하는 것을 최종 목표로 삼는다. 분류(regeression).
  • Unsupervised Learning
    • 비지도학습. input 데이터를 기반으로 데이터들의 숨겨진 구조를 바탕으로 그룹핑을 하는 문제를 정의한다. 즉, 결과값이 미리 태깅 되지 않은 미지의 x’ 값이 들어온다면, 비지도학습으로 생성 된 모델을 통하여 어느 군집에 x’ 값이 속하게 될지 clustering 을 최종적으로 수행 하게 된다.
  • Reinforcement Learning
    • 강화학습. reward 시스템이라고도 불린다. 지도학습과 비지도학습이 data 기반 학습을 수행 했다면, 강화학습은 action에 따른 경험 그자체를 학습 원천으로 활용한다. action 에 따라 획득한 reward 기반으로 매 step 마다의 series of action 을 선택하는 정책 (policy) 를 학습하는 것을 목표로 삼는다.

<그림2 - 3가지 Type의 머신러닝 기법>


그럼 강화학습은 뭘까?

위키 백과에 따르면 강화학습은 다음과 같은 정의를 가진다.

  • 기계 학습의 한 영역이다. 행동심리학에서 영감을 받았으며, 어떤 환경 안에서 정의된 에이전트가 현재의 상태를 인식하여, 선택 가능한 행동들 중 보상을 최대화하는 행동 혹은 행동 순서를 선택하는 방법이다.

강화학습을 구성하는 핵심적인 개념들이 모두 키워드로 담겨져 있다. 실제 강화학습은 에이전트 라는 오브젝트가 특정 환경속에서 취할 수 있는 다수의 행동 set중 특정 행동을 선택했을때 받을 수 있는 결과에 대한 merit 나 benefit을 측정하여 그 이익을 최대화 할 수 있는 액션들의 sequence 를 선택해나간다.

다시 말해, 강화학습은 컴퓨터 에이전트가 역동적인 환경에서 반복적인 시행착오 상호작용을 통해 작업 수행 방법을 학습하는 머신러닝 기법의 한 유형이다. 이 학습 접근법을 통해 에이전트는 인간 개입 또는 작업 수행을 위한 명시적인 프로그래밍 없이 작업에 대한 보상 메트릭을 최대화하는 결정을 내릴 수 있다.

<그림3 - 강화학습의 기본 아이디어>

우리에게 친숙한 마리오 게임을 떠올려 봤을때,

  • agent : 마리오는 agent 가 된다.
  • environment : 마리오가 현재 처해있는 환경, 즉 현재 앞에 거북이 악당이 다가오고 있고, 공중에 coin 이 나오는 블록이있다.
  • action : 마리오는 점프를 하거나, 앞으로 그냥 직진 할 수 있다. 물론 뒤로 도망갈 수도 있다.
  • reward : 마리오의 action 에 따라 얻어지는 결과이다. 점프를 해서 거북이 악당을 밟으면 위험을 회피하면서 공중의 coin을 획득하는 reward를 얻을 수 있고, 그냥 직진한다면 거북이 악당에게 공격당해 목숨을 잃는다. 이러한 action에 따른 결과 자체를 reward 라고한다.

물론, 직관적으로 개념을 매핑해보면 위와 같이 정리되나 실제 강화학습의 메카니즘은 수식과 함께 몇가지 더 복잡한 개념이 적용 된다.

강화학습은 모든 리워드의 합을 maximize 하는 action의 set을 선택하는 문제이며, 현실세계에 있는 environment와 action을 어떻게 모델링 하느냐가 첫번째 문제이다.


강화학습의 기본 구성 요소

먼저 정의한 agent, enviroment, action, reward 간 상호작용은 사실 한번의 cycle을 통해 끝나지는 않는다. 대전제가 경험기반의 학습이고 목적이 과연 어떠한 action을 선택하는것이 가장 유리한지? 가장 유리한 action 을 선택하기 위한 선택 정책을 학습하는 것이므로, 결국 다회차의 iteration 을 통해 강화학습의 메카니즘이 진행된다.

S는 environment, A는 action, R은 reward 라고 잠정적으로 생각 해보고 위 term을 보자.

이건 수식도 아니고 뭐 그냥 너무도 당연한 개념들의 나열이다. (환경을 보고 + 액션을 선택 + 액션에 따른 보상획득) * t 회차 만큼 그냥 계속 반복 된다는 개념이다. 조금 상세히 정리 해보자.

  • States (St)
    • 환경인 enviroment에 대응하는 개념으로, 벡터값이나 이미지와 같은 화면 세트 처럼 다른 데이터 구조가 될 수도있다. 현재의 state는 현재 선택한 action의 결과로 St+1로 전이 될 수 있으며, 현재의 action에 따라 어떠한 state로 전이 할 수 있을지에 대해 통계적으로 정의 된다.
  • Actions (At)
    • t 시점에서 취하는 액션이며, 다차원 feature 의 집합으로 이루어 질 수도 있다. (사실 대부분의 경우 매우 고차원 데이터로 이루어 진다)
  • Rewards (Rt)
    • t 시점에 받을 수 있는 Reward이고 보통 스칼라 값으로 정의되나 arbitraily uniformative 형태일 수 있다. 이 reward 는 t 시점에 바로 받지 않고 지연 된 시점에 받을 수 도 있다.
    • 이 Reward 는 강화학습의 목적에 있어 매우 중요한 지표가 되는데, 결국 강화학습의 목적 자체가 모든 action set에 대한 reward 의 합인 total reward를 MAXIMIZE 하는 것이기 때문이다.
    • 하지만 이는 당연히 말 처럼 쉬운 것이 아닌것이, agent 입장에서는 agent 가 처한 environment, 즉 state에 대한 full visibility 를 가진것이 아니고 부분적인 정보 밖에 없으므로 실제 상황에서는 무슨 action을 어떻게 선택 해야 할지에 대한 기준이 없기 때문에 이를 policy 로 정의 해 내기도 매우 복잡한 문제가 된다.

강화학습 모델 관점에서의 추가 요소 몇가지

기본적인 요소들이 서로 상호작용 하면서 강화학습의 메카니즘을 만들어 내는데 이를 표현하기 위한 몇가지 모델관점에서의 개념들이 있다.

  • Policy
    • agent 의 action을 정의한다. 정확히 이야기 하면 action이 아닌 action을 선택할 수 있는 behaviors를 정의 한다는 관점에서 어떤 state에 있을때 agent가 어떤 action을 선택하기 위한 하나의 큰 줄기의 전제 사항이 정의 된다고 보면 된다.
    • 현재 상황인 state 와 action이 매핑 된다는 관점에서 보면 supervised learning에서 이야기하는 mapping function에 해당하는 개념이 되는 셈이다.
    • 크게 아래 두가지 poliy 형태로 나뉘며, 모델링 된 방식에 따라 달라진다.
      • Deterministric mapping : $a = \pi(S)$
        • 딱딱 상황에 맞게 결정론적 매핑 방식
      • Stochastic mapping : $\mathbb{P}(A_t=a | S_t =s)$
        • 확률적 정의에 따른 정책
  • Value function
    • 각 state 그 자체 또는 각 action 을 선택 함에 따라 전이된 state 에 대하여 얼마나 좋은지? 를 판단하는 가치 함수
    • 어떤것이 정말 좋은 것이냐? 현재 state에서 앞으로 받을 수 있는 reward가 얼마인지 예측을 할 수 있다면 그것을 통해 좋은 것을 예측 할 수 있다.
    $$ v_\pi(s) = \mathbb{E}[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+2} + ... | S_t = s] $$
    • 수식을 살펴보면 아래와 같이 해석 된다.
      • $v_\pi(s)$ : 특정 policy $\pi$ 를 따랐을 때 받을 수 있는 reward 의 합
      • $\gamma$ gamma : discount factor 이며, 미래에 받을 수 있는 reward 에 대한 감가 상각의 개념으로 보면 된다. 현 시점으로 부터 먼 미래 일 수록 reward 에 대한 불확실성 및 현재에 미치는 영향이 크지 가 않으므로 보정치를 준다.
      • 결국 모든 state 별 reward 값의 summation 에 대한 expectation value 값이 높은 정책을 찾는다.
  • Model
    • 실제 존재하는 환경을 agent 의 뷰로 나타낸 것. 즉, agent 입장에서 본 세상을 의미하며, agent 입장에서 environment (state)가 어떻게 변화할 지를 예측하는 모델이 된다.
    • Model 에 들어가는 예측 요소는 두가지가 있다.
      • $p$ 는 next state 를 예측하는 확률 값이 된다.
        • $p^a_{ss'} = \mathbb{P}(S_{t+1} = s' | S_t = s, A_t = a)$
        • state S에서 Action A를 취했을 때, St+1이라는 다음 state 로 전이할 확률적 정의 요소
      • $R$ 은 next reward 를 예측한다.
        • $R^a_{s} = \mathbb{E}(R_{t+1} | S_t = s, A_t = a)$
        • state S에서 Action A를 취했을 때, Rt+1이라는 다음 reward가 어떻게 될지 정의 요소

Exploration vs Exploitation

agent 의 행위를 통해 학습을 진행 함에 있어 어떤 action을 선택 할지? 에 대한 기준이되는 개념중에 Exploration 과 Exploitation 이 있다.

매일 집으로 가는 귀가 길을 생각해보자, 아무 생각없이 몸이 기억하고 있는 기존에 알던 길로 가는 경우도 있을 것이고, 한번도 가보지 않은 길을 찾아 새로운 루트를 개척 할 수 도 있을 것이다. 두가지 방법 모두 집까지 가는 길 즉 해답이 될 수 있으나 어느 해답이 더 빠른 방법인지는 사실 해보기 전까지는 모른다. (직관적으로 현재 가진 정보를 통해 쉽게 판단 할 수 있는 경우를 제외 하고는..)

각설하고, 정보를 모으기 위해서 실험적인 action을 할 것인지? 가 Exploration 에 해당하는 개념이고, 현재 있는 정보로 최선의 선택을 할 것인지? 가 Exploitation 에 해당하는 개념이다.

  • Exploitation (이용)
    • 일반적으로 reward가 가장 좋은 action 을 선택하는 것. 즉, 현재까지의 경험 중에서 가장 최대의 보상을 얻을 수 있는 행동을 수행 하는 것을 의미한다.
    • 즉, 학습 과정에서 당연히 하는 행위이다.
  • Exploration (탐험)
    • Agent가 정해진 action을 하게 두지 않고 일정한 확률로 다른 action을 해서 다양한 경험을 얻게 하는 행위로 탐험적 선택이라고도 한다.
    • 가장 좋은 대안을 두고도 하는 실험적 행위이긴 하지만 결국 agent 관점에서는 전체 environment에 대한 visibility 를 높일 수 있는 하나의 장치가 된다.

이 두가지 개념은 당연히도 그렇듯이 trade-off 가 발생 할 수 밖에 없으며, 이 Exploration 을 할 확률을 모델에 하이퍼 파라미터로 정의 하게 된다.

 


지금까지 강화학습의 개념과 구성요소, 주요 메카니즘에 대해 Conceptual 한 내용을 굉장히 Overall 하게 정리해보았다.

다음 글에서는 강화학습을 수리적으로 정의 할 때 가장 기본이 되는 모델인 Markov Decision Process 에 대해 알아 본다.

 

 

댓글