Processing math: 100%

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

바닥부터 배우는 강화 학습 | 07. Deep RL 첫 걸음

with-RL 2023. 1. 17. 10:35

'바닥부터 배우는 강화 학습' 7장에는 무수히 많은 MDP를 풀기 위해 딥러닝을 강화학습에 적용하는 방법에 대해서 설명하고 있습니다. 아래 내용은 공부하면서 핵심 내용을 정리한 것입니다.

참고자료

  • 도서: 바닥부터 배우는 강화 학습 / 7장 Deep RL 첫 걸음

7.1 함수를 활용한 근사

  • 바둑의 경우는 바둑판 19×19 격자의 모든 빈칸이 바둑알을 놓을 수 있는 후보지가 되고 그로 인한 상태의 수가 너무 많음
    체스: 1047
    바둑: 10170
  • 연속적인 상태 공간(continuous state space): 바둑이나 체스처럼 이산적(discrete)인 형식이 아닌 속도와 같이 연속적인 값을 가질 수 있음.
  • 상태의 개수가 너무 많거나 상태 공간이 연속적이면
    상태 테이블을 만들 수 없음
    상태 테이블을 만들 수 있다 하더라고 모든 상태를 방문해서 업데이트하는데 너무 시간이 많이 걸림

 함수의 등장

  • 테이블 대신에 함수를 이용하는 방법
    다음 함수를 가정: f(x)=ax+b
    테이블 대신에 함수에 저장
    실제 가치의 근사함수(function approximatior): f(s)=vˆπ(s) 
  • 데이터가 많은 경우

  • 실제 가치의 근사함수의 MSE(Mean Squared Error)를 최소화하는 a, b를 결정
  • MSE=130((f(x1)y1)2+(f(x2)y2)2+...+(f(x30)y30)2)

  • 위 그림과 같이 MSE를 최소로 하는 a, b를 결정

 함수의 복잡도에 따른 차이

  • 1차 함수가 아닌 다항 함수(polynomial function)를 사용할 수 있음

f(x)=a0+a1x+a2x2+...+anxn

  • "함수를 피팅한다"의 의미
    함수에 데이터를 기록한다.
    데이터 점들을 가장 가깝게 지나도록 함수를 그려본다.
    함수 f의 파라미터 (a0an)의 값을 찾는다.
    함수 f를 학습한다.

  • 위 그림에서 고차함수로 갈수록 MSE는 감소하지만 데이터에 노이즈가 석여 있음
  • 노이즈: 각각의 에피소드를 경험할 때 얻은 값은 노이즈가 있는 "틀린" 값이고 샘플이 충분히 모였을 때 그 평균이 실제 정답에 가까워짐

 오버 피팅과 언더 피팅

  • 오버피팅(over fitting): f를 정할 때 너무 유현한 함수를 사용하여 f가 노이즈에 피팅해 버리는 것
  • 언더피팅(under fitting): f의 유연성이 부족하여 주어진 데이터와의 에러가 큰 상황
  • 임의의 데이터를 생산하는 함수 F를 가정

F(x)=cos(1.5πx)+x

  • 실제 데이터를 생성하는 함수 Freal(x)F에 노이즈 ε을 추가한 함수

Freal(x)=F(x)+ε=cos(1.5πx)+x+ε,εN(0,1)110

  • 위 그림은 다양한 차수의 다항 함수 피팅 결과를 실제 함수와 함께 그린 그래프
    1차 함수: 함수가 유연하지 못해서 F와 오차를 줄일 수 없음
    4차 함수: 가장 F에 근접한 함수 예측
    16차 함수: Freal의 노이즈까지 모두 학습

 함수의 장점 - 일반화

  • 상태의 수가 많은 경우 테이블에 모든 상태의 밸류를 담을 수 없음. 실제 가치 함수 v(s)를 모사하는 함수 f를 학습
  • 일반화(generalization): 전체를 다 경험하지 못하더라고 일부 샘플만으로 전체를 추정하는 것

  • 위 그림과 같이 새로운 데이터가 추가된 경우 새로운 상태에 대해서 테이블 기반의 방법론에서는 추정할 수 없으나 함수를 이용해서 예측 가능

  • 위 그림처럼 새로운 데이터에 대해서도 함수를 이용하면 예측 가능
  • 만일 함수가 f(x)=a0+a1x+a2x2+a3x3+a4x4와 같은 4차 함수인 경우 기억해야 할 파라미터는 a0,a1,a2,a3,a4 총 5개가 전부임
  • 복잡한 문제를 풀기 위해서 "인공 신경망"을 함수로 사용해서 문제 해결 가능

7.2 인공 신경망의 도입

 신경망

  • 인공 신경망(Artificial Neural Network): 본질은 매우 유연한 함수
    프리 파라미터(free parameter)의 개수를 통해서 함수의 유연성 표현 가능

 신경망 학습 - 그라디언트 디센트

  • 손실함수(loss function): 뉴럴넷의 아웃풋이 주어진 데이터로부터 틀린 정도를 나타냄
  • 미분(derivative): L(w)=1fw(s)2의 수식에서 wL(w)에 미치는 영향을 미분으로 구할 수 있음
  • 편미분(partial derivative): w가 100개의 파라미터 (w1,w2,...,w100)로 구성되어 있다면 파라미터 각각에 대해서 편미분을 해서 영향을 구해야 함

wL(s)=(L(w)w1,L(w)w2,...,L(w)w100)

  • 편미분을 통해서 그라디언트(gradient)를 구하고 w를 그라디언트 방향으로 아주 조금 이동
  • 러닝 레이트(learning rate) or 스텝 사이즈(step size): w를 얼마나 이동시킬지 결정하는 아주 작은 상수 α

w1=w1αL(w)w1w2=w2αL(w)w2...w100=w100αL(w)w100

  • 그라디언트 디센트(gradient descent (경사하강법)): 그라디언트를 계산하여 파라미터를 업데이트하는 방식으로 목적 함수를 최소화해 나가는 과정

 간단한 확인

  • 이 부분은 간단한 예를 직접 계산하는 과정이 설명되어 있습니다.

 파이토치를 이용한 신경망의 학습 구현

  • 이 부분은 구현에 대한 코드가 설명되어 있습니다.