파이썬과 케라스로 배우는 강화학습 | 강화학습 기초 1
파이썬과 케라스로 배우는 강화학습 Chapter 2 정리
책 정보 📖
- 책 제목: 파이썬과 케라스로 배우는 강화학습
- 글쓴이: 이웅원, 양혁렬, 김건우, 이영무, 이의령
- 출판사: 위키북스
- 발행일: 2020년 04월 07일
- 챕터: Chapter 2. 강화학습 기초
책소개
강화학습의 기초부터 최근 알고리즘까지 친절하게 설명합니다! ‘알파고’로부터 받은 신선한 충격으로 많은 사람들이 강화학습에 관심을 가지기 시작했다. 하지만 처음 강화학습을 공부하는 분들을 위한 쉬운 자료나 강의를 찾아보기 어려웠다. 외국 강의를 통해 어렵게 이론을 공부하더라도 강화학습을 구현하는 데는 또 다른 장벽이 있었다. 이 책은 강화학습을 처음 공부하는 데 어려움을 겪는 독자를 위해 이론부터 코드 구현까지의 가이드를 제시한다.
특히 이번 개정판에서는 텐서플로 버전업에 맞춰서 코드를 업데이트하고 전반적인 이론 및 코드 설명을 개선했다. 그리고 실무에서 많이 활용될 수 있는 연속적 액터-크리틱 알고리즘을 추가했다.
주요 내용
강화학습의 기초 - MDP
강화학습의 핵심은 벨만 방정식을 푸는 것이다. 먼저 순차적 행동 결정 문제를 수학적으로 정의하는 MDP(Markov Decision Process)와 그 구성 요소들을 자세히 알아본다.
MDP와 벨만 방정식의 관계
강화학습이 어떤 방정식을 풀어내는 방법이라면 그 방정식은 벨만 방정식을 가리킨다. 순차적 행동 결정 문제는 MDP로 정의할 수 있으며, 이는 강화학습의 수학적 기반이 된다.
강화학습은 순차적으로 행동을 계속 결정해야 하는 문제를 푸는 것이며, MDP는 이를 수학적으로 표현한다. 강화학습에서는 사용자가 문제를 정의해야 하는데, 문제를 잘못 정의하면 에이전트가 학습을 못 할 수 있다.
MDP의 구성 요소
MDP는 다음 5가지 구성요소로 이루어져 있다: 상태, 행동, 보상함수, 상태 변환 확률, 할인율
상태 (State)
상태는 에이전트가 관찰 가능한 상태의 집합으로, 자신의 상황에 대한 관찰이다. 게임을 학습하기 위한 에이전트는 사용자가 상태를 정의해야 한다.
5×5 그리드 월드 예시
- 상태 집합: $S = \lbrace(1, 1), (1, 2), (1, 3), … , (5, 5)\rbrace$
- 에이전트는 시간에 따라 25개의 상태 집합 안에 있는 상태를 탐험하게 된다
상태의 수학적 표현
- $S_t = (1, 3)$: 시간 t에서 (1, 3)이라는 상태
- 어떤 t에서의 상태 $S_t$는 정해져 있지 않고 MDP에서 상태는 시간에 따라 확률적으로 변한다 → 확률 변수
- $S_t = s$: 시간 t에서의 상태 $S_t$가 어떤 상태 s라는 의미
행동 (Action)
에이전트가 상태 $S_t$에서 할 수 있는 가능한 행동의 집합을 $A$라고 한다. 보통 에이전트가 할 수 있는 행동은 모든 상태에서 동일하므로 하나의 집합 $A$로 나타낼 수 있다.
행동의 특징
- $A_t = a$: 시간 t에서의 행동 a (어떤 t라는 시간에 집합 $A$에서 선택한 행동)
- 행동이 정해져 있지 않으므로 확률변수다
5×5 그리드 월드 행동 예시
- 행동 집합: $A = \lbrace UP, DOWN, LEFT, RIGHT\rbrace$
- (3,1)의 상태에서 a가 Right를 골랐다고 해서 무조건 (4,1)의 상태가 되는 것은 아니다
- 예상치 못한 요소들이 있을 수 있다
이러한 예상치 못한 요소들을 포함해 에이전트가 특정 행동을 했을 때 어디로 이동하는지를 결정하는 것이 상태 변환 확률이다.
보상 함수 (Reward Function)
보상은 에이전트가 학습할 수 있는 유일한 정보로, 환경이 에이전트에게 주는 정보다.
보상 함수의 정의
$r(s, a) = E[R_{t+1} | S_t = s, A_t = a]$
- 시간 t에서 상태가 $S_t = s$이고 행동이 $A_t = a$일 때 에이전트가 받을 보상에 대한 보상 함수의 정의
- 보상에 대한 기댓값을 E(Expectation)로 표현했다
- ’$\mid$’는 조건문에 대한 표현으로 뒤에 나오는 부분이 현재의 조건을 뜻한다
기댓값으로 표현하는 이유
기댓값이란 일종의 평균으로, 정확한 값이 아닌 나오게 될 숫자에 대한 예상이다. 같은 상태에서 같은 행동을 취하더라도 다른 보상을 환경이 줄 수 있기 때문에 기댓값으로 표현한다.
보상 함수의 특징
- 보상함수의 조건 혹은 입력은 상태와 행동이다
- 보상 받는 시간이 t가 아닌 t+1인 이유는 보상을 에이전트가 알고 있는 것이 아닌 환경이 알려주는 것이기 때문이다
- 에이전트는 환경으로부터 하나의 시간 단위가 지난 다음 보상을 받는다. 이때의 시간 단위를 타임 스탭이라고 한다
상태 변환 확률 (State Transition Probability)
에이전트가 어떤 상태에서 어떤 행동을 취한다면 에이전트의 상태는 변한다. 하지만 앞으로 간다는 행동을 취해도 앞으로 간 이후의 상태에 도달하지 못할 수 있다. 상태의 변화에는 확률적인 요인이 들어가며, 이를 수치적으로 표현한 것이 상태 변환 확률이다.
상태 변환 확률의 정의
$P_{ss^\prime}^a = P[S_{t+1} = s^\prime | S_t = s, A_t = a]$
- P는 확률을 의미한다
- 상태 변환 확률은 상태 s에서 행동 a를 취했을 때 다른 상태 $s^\prime$에 도달할 확률을 나타낸다
- 에이전트는 알지 못하는 값으로 환경의 일부다
- 환경의 모델이라고도 불린다
할인율 (Discount Factor)
에이전트는 항상 현재에 판단을 내리기 때문에 현재에 가까운 보상일수록 더 큰 가치를 가진다. 100의 크기를 받는 보상 2개가 있을 때 현재에 가까운 것이 가치가 더 크다.
할인율의 개념
- 에이전트는 보상이 얼마나 시간이 지나서 받는지를 고려해 현재의 가치로 따진다
- 같은 보상이면 나중에 받을수록 가치가 줄어든다
- 미래에 받는 보상은 현재의 가치로 환산한다면 그 크기는 적어진다
- 미래의 가치를 현재의 가치로 환산하는 것을 할인한다고 하고 시간에 따라 할인하는 비율을 할인율이라고 한다
할인율의 수학적 표현
- $\gamma \in [0, 1]$: 할인율의 정의 (0과 1 사이의 값을 가지며 보상에 곱해지면 보상이 감소)
- $\gamma^{k-1} R_{t+k}$: 할인율을 고려한 미래 보상의 현재 가치
- 현재의 시간 t로부터 시간 k가 지난 후에 보상을 $R_{t+k}$만큼 받는다
- 미래에 받을 보상 $R_{t+k}$는 $\gamma^{k-1}$만큼 할인된다
- 미래에 받은 보상일수록 현재의 에이전트는 더 작은 값으로 받아들인다
정책 (Policy)
정책은 모든 상태에서 에이전트가 할 행동이다. 상태가 입력으로 들어오면 행동을 출력으로 내보내는 일종의 함수다.
정책의 특징
- 정책은 각 상태에서 하나의 행동만 나타낼 수도 있으며 확률적으로 여러 행동을 나타낼 수도 있다
- 최적 정책은 각 상태에서 단 하나의 행동만을 선택한다
- 에이전트가 학습하고 있을 때는 정책이 하나의 행동만을 선택하기보다는 확률적으로 여러 개의 행동을 선택할 수 있어야 한다
- 다양한 상황에 대해 학습하고 최적 정책을 찾을 수 있다
정책의 수학적 정의
$\pi(a | s) = P[A_t = a | S_t = s]$
- 시간 t에 $S_t = s$에 에이전트가 있을 때 가능한 행동 중 $A_t = a$를 할 확률을 나타낸다
- 정책만 있다면 에이전트는 모든 상태에서 자신이 해야 할 행동을 알 수 있다
최적 정책의 중요성
그냥 정책이 아닌 ‘최적 정책’을 얻는 것이 중요하며, 현재의 정책보다 더 좋은 정책을 학습해나가는 것이 강화학습이다.
MDP를 통한 강화학습의 과정
이처럼 MDP를 통해 순차적 행동 결정 문제를 정의할 수 있다. 강화학습의 전체적인 과정은 다음과 같다:
- 예상과 행동: 에이전트가 현재 상태에서 앞으로 받을 보상들을 고려해 행동을 결정한다
- 환경의 피드백: 환경은 에이전트에게 실제 보상과 다음 상태를 알려준다
- 학습: 이 과정을 반복해 에이전트는 어떤 상태에서 앞으로 받을 것이라 예상했던 보상에 대해 틀렸다는 것을 알게 된다
- 가치함수 업데이트: 앞으로 받을 것이라 예상하는 보상을 가치함수라고 하며, 실제로 받은 보상을 토대로 가치함수와 정책을 바꿔나간다
- 최적화: 학습 과정이 충분히 반복되면 가장 많은 보상을 받게 하는 정책을 학습하게 된다
이러한 과정을 통해 에이전트는 환경과의 상호작용을 통해 최적의 정책을 찾아가게 된다.