강화 학습/바닥부터 배우는 강화 학습

바닥부터 배우는 강화 학습 | 01. 강화 학습이란

with-RL 2022. 11. 4. 18:47

강화 학습 공부를 다시 시작합니다. 예전에 관심 있게 봤던 팡요랩의 저가가 쓰신 '바닥부터 배우는 강화 학습'을 첫 번째 공부 교재로 사용하려고 합니다. 아래 내용은 공부하면서 핵심 내용을 정리한 것입니다.

참고자료

1.1 지도 학습과 강화 학습

◈ 기계 학습의 분류

  • 기계학습 (machine learning)
    강화 학습(reinforcement learning):
        지도자의 도움 없이 혼자서 수많은 시행착오(Trial and Error)를 거치면서 학습하는 방법
    지도 학습(supervised learning):
        아버지가 아들에게 자전거 타는 방법을 가르쳐 주듯이 지도자(Supervisor)의 도움을 받아서 학습(Learning) 하는 방법
    비지도 학습(unsupervised learning):
        예 1) 사람 얼굴 1만 장을 학습 후에 새로운 사람 얼굴을 생성하는 인공지능
        예 2) 주어진 데이터의 성질이 비슷한 것들끼리 묶는 클러스터링

◈ 지도 학습

  • 학습 데이터(training data):
    예) 남자, 여사 성별이 구분된 사진 1만 장
  • 학습 데이터를 기반으로 학습한 후 인물 사진이 주어지면 성별을 구별하는 모델을 학습하는 것이 지도 학습
  • 테스트 데이터(test data):
    정답을 모르지만 궁극적으로 정답을 맞히고자 하는 데이터

◈ 강화 학습

  • "순차적 의사결정 문제에서 누적 보상을 최대화하기 위해 시행착오를 통해 행동을 교정하는 학습 과정"

1.2 순차적 의사결정 문제

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

◈ 샤워하는 남자

  • 샤워할 때의 아래 4가지 행동을 순서에 맞게 해야 한다. 만일 순서가 바뀐다면 다른 문제가 발생할 수 있다.
    1) 옷을 벗는다.
    2) 샤워를 한다.
    3) 물기를 닦는다.
    4) 옷을 입는다.
  • 어떤 상황에서 현재의 행동의 다음 상황에 영향을 주며, 결국 연이은 행동을 잘 선택해야 하는 문제가 바로 순차적 의사결정 문제

◈ 순차적 의사결정 문제의 예시

주식 투자에서의 포트폴리오 관리

  • 언제 어떤 주식을 사고 팔지를 결정해야 하는 주식 포트폴리오 관리는 순차적 의사결정 문제로 볼 수 있음

 

운전

  • 어떤 도로를 이용할지, 어떤 차선을 이용할지, 브레이크 또는 액셀을 밟을지를 결정하는 것도 순차적 의사결정 과정

 

게임

  • 대부분의 게임이 잘게 쪼개진 선택의 연속으로 이루어져 있으며, 주어지 상황 안에서 최선의 선택을 내려야 함

1.3 보상

보상(reward)이란 얼마나 잘하고 있는지 알려주는 신호.

강화 학습의 목적은 과정에서 받는 보상의 총합, 즉 누적 보상(cululative reward)최대화하는

 

 

어떻게 X 얼마나 O

  • "어떻게"에 대한 정보를 담고 있지 않음.
  • "얼마나" 잘하고 있는지를 평가.
  • 수많은 시행착오를 통해서 "어떻게"를 학습하고 그 결과로 "얼마나"에 해당하는 보상을 최대화

 

스칼라

  • 보상은 스칼라(scalar)
    예) 자산 포트폴리오 배분에서의 이득
    예) 자전거 타기에서 넘어지지 않고 나아간 거리
    예) 게임에서의 승리

 

희소하고 지연된 보상

  • 희소(sparse): 보상은 매번 행동을 선택할 때마다 주어지지 않고 훨씬 가끔 주어질 수 있음
  • 지연(delay): 보상은 행동을 한 후 한참 후에 주어질 수 있음 (예: 바둑은 경기가 끝날 때까지 승리·패배 보상을 결정할 수 없음)

1.4 에이전트와 환경

에이전트가 액션(action)을 하고 그에 따라 상황이 변하는 하나의 루프(loop)라 했을 때 이 루프가 끊임없이 반복되는 것을 순차적 의사결정 문제라 할 수 있음.

  • 에이전트는 강화 학습의 주인공이자 주체
    현재 상황 $s_t$에서 어떤 액션을 해야 할지 $a_t$를 결정
    결정된 행동 $a_t$를 환경으로 보냄
    환경으로부터 그에 따른 보상과 다음 상태의 정보를 받음
  • 에이전트를 제외한 모든 요소가 환경
  • 현재 상태에 대한 모든 정보를 숫자로 기록해 놓은 것이 상태(state)
  • 환경은 결국 상태 변화(state transition)를 일으키는 역할을 담당
    에이전트로부터 받은 액션 $a_t$를 통해서 상태 변화를 일으킴
    그 결과 상태는 $s_t \to s_{t+1}$로 바뀜
    에이전트에게 줄 보상 $r_{t+1}$도 함께 계산
    $s_{t+1}$과 $r_{t+1}$을 에이전트에게 전달

1.5 강화 학습의 위력

◈ 병렬성의 힘

수많은 컴퓨터를 병렬로 연결해서 시뮬레이션을 진행하고 시뮬레이션 결과를 모아서 중앙에서 학습하면 빠른 학습 가능 

◈ 자가 학습 (self-learning)의 매력

시뮬레이션 환경 속에 던져 놓고 목적만 알려주고 알아서 배우게 하는 강화 학습이 유연하고 자유롭고 성능면에서도 뛰어남