본문 바로가기

인공지능/스터디

[강화학습: RL] 1. 개요

이 게시글은 단단한 강화 학습과 인터넷 강의를 참고해서 쓴 글입니다.


개념

강화학습이란 주어진 상황에서 어떠한 행동을 취할지를 학습하는 것이다. 이때 그 행동의 결과는 최대한의 보상(이득)을 가져다줘야 한다. 

 

강화 학습은 지도 학습, 비지도 학습과는 전혀 다르다.

지도 학습처럼 label이 있지도 않고, 비지도 학습처럼 데이터 집합 안에서 숨겨진 구조를 찾으려 하지 않기 때문이다.

 

강화 학습은 exploitaion과 exploration사이에서 절충을 해야 한다. 

  • exploitation: 학습 내용을 기준으로 최대 보상을 받을 수 있는 action을 선택한다.
  • exploration: 더 좋은 보상이 있는지 확인하기 위해 현재의 최대 보상이 아닌 다른 action을 선택한다.

 

구성요소

구성요소에는 policy(정책), reward signal(보상 신호), value function(가치 함수), model(모델)이 있다.

  • Policy(정책): 특정 시점(state)에서 agent가 취하는 action을 정의한다. 간단히 말해, agent가 인지한 주변 환경의 state에 대해 agent가 취해야 할 action을 알려준다. 어떤 경우에 정책은 간단한 함수나 열람표일 수 있고, 방대한 양의 계산을 포함할 수도 있다. policy만으로 action을 결정할 수 있다는 것은 강화 학습에서 핵심이 되는 부분이다. 또한, policy는 확률적으로 action을 선택할 수도 있다.
  • Reward signal(보상): agent가 action을 선택했을 때 environment로부터 받는 보상값
  • Value function: agent가 특정 state/action에서 앞으로 받을 모든 rewards의 합에 대한 기댓값을 정의
  • Model: agent가 추측하는 세상
  • state: 현재 상황을 기술하는 정보이다. 예를 들어, 길 찾기 문제의 경우, state는 agent의 현재 위치이다.

reward와 value가 헷갈릴 수 있는데, 특정 행동을 취했을 때 당장 받을 보상값은 낮더라도, 최종적인 value값은 높을 수 있다. 이렇듯 reward는 짧게 보고 value는 멀리까지 보는 보상이라 생각하면 된다.

 

특징

강화 학습의 특징을 설명하기 위해 '서울에서 부산까지 최대한 빠른 시간에 도착'하는 모델을 예시로 들어보겠다.

 

1. 정답을 모르지만, 행동에 대한 보상과 다음 상태가 주어진다.

만약, 위의 예시의 정답이 서울 -> 대전 -> 부산이라 할지라도, 강화 학습은 정답을 모른다.

하지만, 행동에 대한 보상과 다음 상태가 다음과 같이 주어진다.

- 서울에서 '원주'로 가면 보상 -25(보상)를 받고 원주(상태)로 이동한다.

 

지도 학습과 다른 특성을 가지는데, 지도학습을 하기 위해서는 "서울에서는 대전으로 가는게 최적"이라는 답이 주어져야 한다. 때문에 이는 지도학습과 강화 학습의 큰 차이점이다.

 

2. 현재의 의사결정이 미래에 영향을 미친다.

예를 들어, '서울-> 원주'로 선택을 했다면, '원주-> 부산'의 최소거리와 '서울-> 대전'으로 선택했을 때 '대전-> 부산'의 최소거리가 다르기 때문에 의사결정을 어떻게 하느냐에 따라 최종 거리가 달라진다.

 

3. 문제의 구조를 모른다.

서울에서 대전까지의 이동거리, 이동하면 벌어지는 결과 등에 대해 모른다는 뜻이다. 즉, 강화 학습은 직접 action을 취함으로써 보상을 받고 정보를 관측해야 한다.

따라서 agent는 환경과 수많은 상호작용을 통해 '서울에서 대전으로 이동하면 보상을 ~~ 받고 대전으로 이동했었다'라는 여러 정보들을 쌓아간다.

 

Agent와 환경(Environment)

https://brunch.co.kr/@kakao-it/73

에이전트가 어떤 행동(action)을하면, 환경에서 상태(state)와 보상(reward)을 던져준다.

이를 풀어서 써보면, agent는 현재 state에서 적합한 action을 구한 후 환경에 적용한다. 환경은 그로 인한 다음 상태 state와 reward를 agent에게 돌려준다.

 

종류

강화 학습은 환경의 유무에 따라 나뉘게 되는데, 환경이 있는 경우 model-based 알고리즘이라고 부르고, 환경이 없는 경우 model-free알고리즘이라 부른다. 즉, 어떤 action을 하면 얼마만큼의 reward를 받을 수 있는지의 정보가 있다면 model-based 알고리즘으로 간단하게 풀 수 있다.

 

model-based는 기존의 정보를 가지고 학습하기 때문에 매우 효율적이고, 문제를 해결하기 쉽지만 현실적이지 않다. 반면에 model-free는 효율성이 떨어지나 현실의 문제에 적용이 가능하다. 현실에서는 대부분 환경을 알 수 없다. 따라서 일반적으로 강화 학습이라고 하면 model-free알고리즘을 뜻한다.

 

또, model-free알고리즘에서 가치 함수를 추산하느냐, 바로 정책을 최적화하느냐에 따라 각각 value-based 강화 학습, policy-based 강화 학습으로 나눌 수 있다.