수학으로 풀어보는 강화학습 원리와 알고리즘

딥러닝과 강화학습을 이해하기 위한 필수 수학 이론부터 다양한 강화학습 알고리즘, 모델 기반 강화학습까지

코딩하면서 알고리즘이 유도된 과정이 궁금하다면 이 책을 선택하기 바랍니다!

이 책은 딥러닝이나 강화학습 예제를 코딩하면서 그 배경 알고리즘의 유도 과정을 궁금해하는 사람을 위한 책이다. 술술 읽히는 책은 아니지만 그렇다고 심하게 어려운 책도 아니다. 수학의 선수 지식으로 대학 2학년 때 배우는 공업수학을 이수한 정도면 충분하고, 딥러닝의 선수 지식으로는 텐서플로, 케라스, 파이토치를 사용해 MNIST와 같은 간단한 딥러닝 예제를 따라 해 본 정도면 충분하다.

이 책에서는 강화학습뿐만 아니라 다른 머신러닝과 딥러닝의 기초가 되는 확률이론과 추정론에 대한 기본적인 이해를 바탕으로 강화학습의 여러 알고리즘을 처음부터 끝까지 생략하지 않고 수식으로 유도했다.

강화학습이 추구하는 기본 목표로부터 A2C, A3C, PPO, DDPG 및 모델 기반 강화학습 등 강화학습의 알고리즘이 무엇이고 어떤 목적으로 개발됐는지, 어떻게 수학적으로 유도했는지, 그리고 어떻게 코드로 구현해 적용했는지를 구체적으로 설명한다.

 

★ 이 책에서 다루는 내용 ★

  • 강화학습을 이해하기 위한 기본 수학: 확률론, 추정론, 최적화, 벡터/행렬의 미분
  • 강화학습 알고리즘: A2C, A3C, PPO, DDPG
  • 최적제어 알고리즘: 반복적 LQR, 가우시안 LQR
  • 로컬 모델 기반 강화학습: GMM, 모델 피팅 방법, LQR을 이용한 강화학습

 

도서 상세 이미지

박성수

서울대학교 항공우주공학과에서 학사, 동 대학교 대학원에서 석사, 그리고 국비유학으로 미국 UC Berkeley에서 박사학위를 받았다. 유학가기 전에 국방과학연구소에서 연구원으로 일했으며, 박사 후에는 UC Berkeley ITS 연구소에서 포스트닥 연구원으로 일했다. 현재 세종대학교 항공우주공학과 교수이며, 강화학습을 항공우주 시스템에 적용하는 연구에 관심을 갖고 있다.

  • ▣ 01장: 강화학습 수학
    • 1.1 확률과 랜덤 변수
      • 1.1.1 확률
      • 1.1.2 랜덤 변수
      • 1.1.3 누적분포함수와 확률밀도함수
      • 1.1.4 결합 확률함수
      • 1.1.5 조건부 확률함수
      • 1.1.6 독립 랜덤 변수
      • 1.1.7 랜덤 변수의 함수
      • 1.1.8 베이즈 정리
      • 1.1.9 샘플링
    • 1.2 기댓값과 분산
      • 1.2.1 기댓값
      • 1.2.2 분산
      • 1.2.3 조건부 기댓값과 분산
    • 1.3 랜덤벡터
      • 1.3.1 정의
      • 1.3.2 기댓값과 공분산 행렬
      • 1.3.3 샘플 평균
    • 1.4 가우시안 분포
    • 1.5 랜덤 시퀀스
      • 1.5.1 정의
      • 1.5.2 평균함수와 자기 상관함수
      • 1.5.3 마르코프 시퀀스
    • 1.6 선형 확률 차분방정식
    • 1.7 표기법
    • 1.8 중요 샘플링
    • 1.9 엔트로피
    • 1.10 KL 발산
    • 1.11 추정기
      • 1.11.1 최대사후 추정기
      • 1.11.2 최대빈도 추정기
    • 1.12 벡터와 행렬의 미분
      • 1.12.1 벡터로 미분
      • 1.12.2 행렬로 미분
    • 1.13 촐레스키 분해
    • 1.14 경사하강법
      • 1.14.1 배치 경사하강법
      • 1.14.2 확률적 경사하강법
    • 1.15 경사하강법의 개선
      • 1.15.1 모멘텀
      • 1.15.2 RMSprop
      • 1.15.3 아담
    • 1.16 손실함수의 확률론적 해석
      • 1.16.1 가우시안 오차 분포
      • 1.16.2 베르누이 오차 분포
    •  
  • ▣ 2장: 강화학습 개념
    • 2.1 강화학습 개요
    • 2.2 강화학습 프로세스와 표기법
    • 2.3 마르코프 결정 프로세스
      • 2.3.1 정의
      • 2.3.2 가치함수
      • 2.3.3 벨만 방정식
      • 2.3.4 벨만 최적 방정식
    • 2.4 강화학습 방법
    •  
  • ▣ 3장: 정책 그래디언트
    • 3.1 배경
    • 3.2 목적함수
    • 3.3 정책 그래디언트
    • 3.4 REINFORCE 알고리즘
    •  
  • ▣ 4장: A2C
    • 4.1 배경
    • 4.2 그래디언트의 재구성
    • 4.3 분산을 감소시키기 위한 방법
    • 4.4 A2C 알고리즘
    • 4.5 A2C 알고리즘 구현
      • 4.5.1 테스트 환경
      • 4.5.2 코드 개요
      • 4.5.3 액터 클래스
      • 4.5.4 크리틱 클래스
      • 4.5.5 액터-크리틱 에이전트 클래스
      • 4.5.6 학습 결과
      • 4.5.7 전체 코드
    •  
  • ▣ 5장: A3C
    • 5.1 배경
    • 5.2 그래디언트 계산의 문제
      • 5.2.1 샘플의 상관관계
      • 5.2.2 n-스텝 가치 추정
      • 5.2.3 엔트로피 보너스
    • 5.3 비동기 액터-크리틱(A3C) 알고리즘
    • 5.4 그래디언트 병렬화 방식의 A3C 알고리즘 구현
      • 5.4.1 테스트 환경
      • 5.4.2 코드 개요
      • 5.4.3 액터 클래스
      • 5.4.4 크리틱 클래스
      • 5.4.5 액터-크리틱 에이전트 클래스
      • 5.4.6 학습 결과
      • 5.4.7 전체 코드
    • 5.5 데이터 병렬화 방식의 A3C 알고리즘 구현
      • 5.5.1 코드 개요
      • 5.5.2 전체 코드
    •  
  • ▣ 6장: PPO
    • 6.1 배경
    • 6.2 그래디언트의 재구성
    • 6.3 정책 업데이트와 성능
    • 6.4 PPO 알고리즘
    • 6.5 어드밴티지 추정의 일반화 (GAE)
    • 6.6 PPO 알고리즘 구현
      • 6.6.1 테스트 환경
      • 6.6.2 코드 개요
      • 6.6.3 액터 클래스
      • 6.6.4 크리틱 클래스
      • 6.6.5 액터-크리틱 에이전트 클래스
      • 6.6.6 학습 결과
      • 6.6.7 전체 코드
    •  
  • ▣ 7장: DDPG
    • 7.1 배경
    • 7.2 그래디언트의 재구성
    • 7.3 DDPG 알고리즘
    • 7.4 DDPG 알고리즘 구현
      • 7.4.1 테스트 환경
      • 7.4.2 코드 개요
      • 7.4.3 액터 클래스
      • 7.4.4 크리틱 클래스
      • 7.4.5 액터-크리틱 에이전트 클래스
      • 7.4.6 학습 결과
      • 7.4.7 전체 코드
    •  
  • ▣ 08장: 모델 기반 강화학습 기초
    • 8.1 배경
    • 8.2 최적제어
      • 8.2.1 LQR
      • 8.2.2 확률적 LQR
      • 8.2.3 가우시안 LQR
      • 8.2.4 반복적 LQR
    • 8.3 모델 학습 방법
    •  
  • ▣ 09장: 로컬 모델 기반 강화학습
    • 9.1 배경
    • 9.2 로컬 모델 피팅 기반 LQR
    • 9.3 로컬 모델 피팅
      • 9.3.1 조건부 가우시안 방법
      • 9.3.2 GMM 사전분포를 이용한 로컬 모델 업데이트
    • 9.4 로컬 제어 법칙 업데이트
      • 9.4.1 대체 비용함수 계산
      • 9.4.2 KL 발산 계산
      • 9.4.3 h 조정
      • 9.4.4 e 조정
    • 9.5 가우시안 LQR을 이용한 강화학습 알고리즘
    • 9.6 가우시안 LQR을 이용한 강화학습 알고리즘 구현
      • 9.6.1 테스트 환경
      • 9.6.2 코드 개요
      • 9.6.3 궤적 생성
      • 9.6.4 로컬 모델 피팅
      • 9.6.5 가우시안 LQR
      • 9.6.6 가우시안 혼합 모델
      • 9.6.7 LQR-FLM 에이전트 클래스
      • 9.6.8 학습 결과
      • 9.6.9 전체 코드
    • 9.7 GPS로의 발전
    •  
  • ▣ 참고문헌
  • ▣ 참고코드
    •  

 

  • 5쪽, 본문 2번째 줄

    누적분포함수(cdf, cumulative distribution) 또는

    ==>

    누적분포함수(cdf, cumulative distribution function) 또는

  • 107쪽, 수식 3.3의 두 번째 줄

    $ =p(x_0)p_\theta(u_0|x_0)p(x_1|x_0, u_0)p_\theta(u_1|x_2, ..., x_T, u_T|x_0, u_0, x_1) $

    ==>

    $ =p(x_0)p_\theta(u_0|x_0)p(x_1|x_0, u_0)p_\theta(u_1, x_2, ..., x_T, u_T|x_0, u_0, x_1) $

  • 107쪽, 수식 3.4의 첫 번째 줄

    $ p_\theta(x_1 | x_0, u_0, x_1)=\pi_\theta(u_1|x_1) $

    ==>

    $ p_\theta(u_1 | x_0, u_0, x_1)=\pi_\theta(u_1|x_1) $

  • 160쪽, 수식 5.8의 첫 번째 줄

    $ V_\phi(x_t, u_t) \approx $ (이하 생략)

    ==>

    $ V_\phi(x_t) \approx $ (이하 생략)