책소개
코딩하면서 알고리즘이 유도된 과정이 궁금하다면 이 책을 선택하기 바랍니다!이 책은 딥러닝이나 강화학습 예제를 코딩하면서 그 배경 알고리즘의 유도 과정을 궁금해하는 사람을 위한 책이다. 술술 읽히는 책은 아니지만, 그렇다고 심하게 어려운 책도 아니다. 수학의 선수 지식으로 대학 2학년 때 배우는 공업수학을 이수한 정도면 충분하고, 딥러닝의 선수 지식으로는 텐서플로 또는 파이토치를 사용하여 MNIST와 같은 간단한 딥러닝 예제를 따라해 본 정도면 충분하다.이 책은 강화학습뿐만 아니라 다른 머신러닝과 딥러닝의 기초가 되는 확률이론과 추정론에 대한 기본적인 이해를 바탕으로 강화학습의 여러 알고리즘을 처음부터 끝까지 생략하지 않고 수식으로 유도했다. 강화학습이 추구하는 기본 목표로부터 A2C, A3C, PPO, DDPG, SAC 및 모델 기반 강화학습 등 강화학습의 알고리즘이 무엇이고 어떤 목적으로 개발됐는지, 어떻게 수학적으로 유도했는지, 그리고 어떻게 코드로 구현해 적용했는지를 구체적으로 설명한다.
저자소개
서울대학교 항공우주공학과에서 학사, 동 대학교 대학원에서 석사, 그리고 국비유학으로 미국 UC Berkeley에서 박사학위를 받았다. 유학가기 전에 국방과학연구소에서 연구원으로 일했으며, 박사후에는 UC Berkeley ITS 연구소에서 포스트닥 연구원으로 일했다. 현재 세종대학교 항공우주공학과 교수이며, 유도항법제어 및 AI for Dynamics and Control 분야를 연구하고 있다.
목차
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 베르누이 오차 분포 02장: 강화학습 개념 2.1 강화학습 개요2.2 강화학습 프로세스와 표기법2.3 마르코프 결정 프로세스___2.3.1 정의___2.3.2 가치함수___2.3.3 벨만 방정식___2.3.4 벨만 최적 방정식2.4 강화학습 방법 03장: 정책 그래디언트 3.1 배경3.2 목적함수3.3 정책 그래디언트3.4 REINFORCE 알고리즘 04장: 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 전체 코드 05장: A3C 5.1 배경5.2 그래디언트 계산의 문제___5.2.1 샘플의 상관관계___5.2.2 n-스텝 가치 추정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 전체 코드 06장: 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 전체 코드 07장: DDPG 7.1 배경 2407.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장: SAC 8.1 배경8.2 소프트 벨만 방정식8.3 소프트 정책 개선8.4 SAC 알고리즘8.5 SAC 알고리즘 구현___8.5.1 테스트 환경___8.5.2 코드 개요___8.5.3 액터 클래스___8.5.4 크리틱 클래스___8.5.5 에이전트 클래스___8.5.6 학습 결과___8.5.7 전체 코드 09장: 모델 기반 강화학습 기초 9.1 배경9.2 최적제어___9.2.1 LQR___9.2.2 확률적 LQR___9.2.3 가우시안 LQR___9.2.4 반복적 LQR9.3 모델 학습 방법 10장: 로컬 모델 기반 강화학습 10.1 배경10.2 로컬 모델 피팅 기반 LQR10.3 로컬 모델 피팅___10.3.1 조건부 가우시안 방법___10.3.2 GMM 사전분포를 이용한 로컬 모델 업데이트10.4 로컬 제어 법칙 업데이트___10.4.1 대체 비용함수 계산___10.4.2 KL 발산 계산___10.4.3 h 조정___10.4.4 e 조정10.5 가우시안 LQR을 이용한 강화학습 알고리즘10.6 가우시안 LQR을 이용한 강화학습 알고리즘 구현___10.6.1 테스트 환경___10.6.2 코드 개요___10.6.3 궤적 생성___10.6.4 로컬 모델 피팅___10.6.5 가우시안 LQR___10.6.6 가우시안 혼합 모델___10.6.7 LQR-FLM 에이전트 클래스___10.6.8 학습 결과___10.6.9 전체 코드10.7 GPS로의 발전 참고문헌