본문 바로가기
프로그래밍/머신 러닝

강화학습이란

by ® 2020. 12. 2.
반응형

지도 학습 (supervised learning) vs 강화 학습 (reinforcement learning)

기계 학습에서 가장 널리 알려진 학습 형태는 "지도 학습"입니다 .

 

지도 학습을 간단히 설명하면 "지도자 (supervisor)"의 도움을 받아 학습하는 것입니다.

 

아버지의 도움으로 자전거타는 법을 학습하는 어린아이의 모습을 생각하면 됩니다.

 

이 때, 지도자인 아버지는 본인이 생각하는 "자전거타는 방법에 대한 정답"을 아이에게 가르칩니다.

 

반면, 강화 학습은 지도자없이 혼자 시행착오를 거치며 자전거타는 방법을 배우는 것입니다.

 

하지만, 가르쳐주는 사람이 없는데 어떻게 자전거타는 방법을 깨우칠 수 있을까요?

 

결국 순차적 의사결정 문제!

강화 학습이 결국 풀고자하는 문제는 순차적 의사결정 (sequential decision making) 문제입니다.

 

예를 들어, 샤워를 할 때 다음의 4단계의 일을 순차적으로 하게 됩니다.

 

1. 옷을 벗는다

2. 샤워를 한다.

3. 물기를 닦는다.

4. 옷을 입는다.

 

이 4가지 단계를 순차적으로 하지 않는다면 엉망이 될 것입니다.

 

상황에 맞게 적절한 행동을 연이어 선택해야 하는 문제가 순차적 의사결정 문제이고,

강화 학습은 시행착오를 통해 이 문제를 풀게 되는 것입니다.

 

하지만, 의사결정을 잘하고 있는지를 평가할 기준이 필요합니다.

여기서 "보상"이라는 개념이 등장합니다.

 

강화 학습에서의 보상

강화 학습의 목적은 '과정에서 받는 보상의 총합인 누적 보상 (cumulative reward)을 최대화'하는 것입니다.

 

자전거를 탈 때 넘어지지 않고 1m 당 1점의 보상을 준다면, 최대한 넘어지지 않고 멀리가는 것이 최대의 누적 보상을 얻는 방법이 됩니다.

이 과정에서 자연스레 자전거타는 방법을 배우게 되는 것입니다.

 

적절한 보상을 설정하기 위해 보상이 가지는 3가지 특징에 대해 알아보겠습니다.

 

1. 보상은 "어떻게"에 대한 정보를 담고 있지 않습니다. 단지 어떤 행동을 하면 "얼마나" 잘하고 있는지를 평가해줄 뿐입니다.

 

2. 보상은 "스칼라 (scalar)"이어야 합니다. 예를 들어, 자전거를 탈 때 '거리', 주식투자 시 '이익'과 같이 한 가지의 값입니다.

 

3. 보상은 희소 (sparse)하거나 지연 (delay)될 수 있습니다. 행동과 보상이 일대일로 즉각적으로 대응되면 좋겠지만 행동 10번에 보상이 1번 주어지거나 행동이 발생한 한참 후에 보상이 일어날 수 있습니다. 이런 문제를 적절히 해결하기 위해 "밸류 네트워크 (value network)" 등의 다양한 연구가 이뤄지고 있습니다.

 

에이전트 (agent)와 환경 (environment)

 

출처: http://web.stanford.edu/class/cs234/index.html

 

강화 학습에서 에이전트와 환경이라는 단어가 자주 등장합니다.

 

"에이전트"는 강화 학습의 주인공으로 자전거타는 방법을 배우는 주체를 의미합니다.

 

학습 시 에이전트를 제외한 모든 요소를 "환경"이라고 합니다.

 

학습 동안 에이전트는 다음의 3단계로 학습합니다.

  1. 현재 상황 St에서 해야 할 액션 At를 결정
  2. 액션 At를 수행
  3. 환경으로부터 보상 Rt+1과 다음 상태인 St+1을 받음

 

환경이 하는 일은 다음의 3단계로 이뤄집니다.

  1. 에이전트로부터 액션 At를 받고 상태 변화 (state transition)을 일으킴 (St → St+1)
  2. 에이전트에게 줄 보상 Rt+1을 결정
  3. 에이전트에게 최신상태인 St+1과 보상 Rt+1 전달

이 루프는 학습이 끝날때까지 이산적인 시간 간격인 "타임 스텝 (time step)"에 대해 반복해서 행해집니다.

 

강화 학습의 위력

1. 병렬성

인간은 각자의 경험을 완벽히 공유할 수 없지만, 기계는 할 수 있습니다.

 

100개의 기계가 1시간 동안 학습한 후 배운 것을 공유하면 한 명의 인간이 100시간 학습한 것과 같게 됩니다.

 

2. 자가 학습 (self-learning)

지도 학습의 경우 "지도자"의 실력을 넘기가 어렵습니다.

 

하지만, 강화 학습에서는 단지 누적보상을 최대화하기 위해 학습할 뿐이고, 이 과정에서 다양한 새로운 시도들이 이뤄집니다.

 

즉, 스스로 깨우쳐가기 때문에 한계를 정할 수 없습니다.

 

가장 널리 알려진 알파고가 바로 그 예입니다. 알파고는 프로기사들을 압도한 수준을 넘어 바둑의 패러다임을 완전히 바꿨다고 평가됩니다. 이제 프로기사들이 알파고의 기보를 보고 학습한다고 합니다.

 

 

바닥부터 배우는 강화학습, 2020, 노승은
반응형

'프로그래밍 > 머신 러닝' 카테고리의 다른 글

강화학습과 능동진동제어의 결합  (0) 2020.12.22

댓글