“강화학습을 쉽게 이해하고 코드로 구현하기”
강화학습의 기초부터 최근 알고리즘까지 친절하게 설명한다! ‘알파고’로부터 받은 신선한 충격으로 많은 사람들이 강화학습에 관심을 가지기 시작했다. 하지만 처음 강화학습을 공부하는 분들을 위한 쉬운 자료나 강의를 찾아보기 어려웠다. 외국 강의를 통해 어렵게 이론을 공부하더라도 강화학습을 구현하는 데는 또 다른 장벽이 있었다. 이 책은 강화학습을 처음 공부하는 데 어려움을 겪는 독자를 위해 이론부터 코드 구현까지의 가이드를 제시한다.
저자 소개
이웅원은 연세대학교 기계공학과를 졸업했다. '모두의연구소'에서 개최한 강화학습 스터디에 참여해 공부하면서 강화학습 관련 깃북(https://www.gitbook.com/book/dnddnjs/rl)을 작성했다. 현재는 제이마플에서 딥러닝을 사용해 소리를 인식하는 작업을 하고 있다.
목 차
[1부] 강화학습 소개
▣ 1장: 강화학습 개요
강화학습의 개념
___스키너의 강화 연구
___우리 주변에서의 강화
___머신러닝과 강화학습
___스스로 학습하는 컴퓨터, 에이전트
강화학습 문제
___순차적 행동 결정 문제
___순차적 행동 결정 문제의 구성 요소
___방대한 상태를 가진 문제에서의 강화학습
강화학습의 예시: 브레이크아웃
___딥마인드에 의해 다시 빛을 본 아타리 게임
___브레이크아웃의 MDP와 학습 방법
정리
___강화학습의 개념
___강화학습 문제
___강화학습의 예시: 브레이크아웃
[2부] 강화학습 기초
▣ 2장: 강화학습 기초 1 - MDP와 벨만 방정식
MDP
___상태
___행동
___보상함수
___상태 변환 확률
___감가율
___정책
가치함수
___가치함수
___큐함수
벨만 방정식
___벨만 기대 방정식
___벨만 최적 방정식
정리
___MDP
___가치함수
___벨만 방정식
▣ 3장: 강화학습 기초 2 - 그리드월드와 다이내믹 프로그래밍
다이내믹 프로그래밍과 그리드월드
___순차적 행동 결정 문제
___다이내믹 프로그래밍
___격자로 이뤄진 간단한 예제: 그리드월드
다이내믹 프로그래밍 1: 정책 이터레이션
___강화학습 알고리즘의 흐름
___정책 이터레이션
___정책 평가
___정책 발전
___RLCode 깃허브 저장소
___정책 이터레이션 코드 설명
___정책 이터레이션 코드 실행
다이내믹 프로그래밍 2: 가치 이터레이션
___명시적인 정책과 내재적인 정책
___벨만 최적 방정식과 가치 이터레이션
___가치 이터레이션 코드 설명
___가치 이터레이션 코드 실행
다이내믹 프로그래밍의 한계와 강화학습
___다이내믹 프로그래밍의 한계
___모델 없이 학습하는 강화학습
정리
___다이내믹 프로그래밍과 그리드월드
___다이내믹 프로그래밍 1: 정책 이터레이션
___다이내믹 프로그래밍 2: 가치 이터레이션
___다이내믹 프로그래밍의 한계와 강화학습
▣ 4장: 강화학습 기초 3 - 그리드월드와 큐러닝
강화학습과 정책 평가 1: 몬테카를로 예측
___사람의 학습 방법과 강화학습의 학습 방법
___강화학습의 예측과 제어
___몬테카를로 근사의 예시
___샘플링과 몬테카를로 예측
강화학습과 정책 평가 2: 시간차 예측
___시간차 예측
강화학습 알고리즘 1: 살사
___살사
___살사 코드 설명
___살사 코드의 실행 및 결과
강화학습 알고리즘 2: 큐러닝
___살사의 한계
___큐러닝 이론
___큐러닝 코드 설명
___큐러닝 코드의 실행 결과
정리
___강화학습과 정책 평가 1: 몬테카를로 예측
___강화학습과 정책 평가 2: 시간차 예측
___강화학습 알고리즘 1: 살사
___강화학습 알고리즘 2: 큐러닝
[3부] 강화학습 심화
▣ 5장: 강화학습 심화 1 - 그리드월드와 근사함수
근사함수
___몬테카를로, 살사, 큐러닝의 한계
___근사함수를 통한 가치함수의 매개변수화
인공신경망
___인공신경망 1: 인공신경망의 개념
___인공신경망 2: 노드와 활성함수
___인공신경망 3: 딥러닝
___인공신경망 4: 신경망의 학습
인공신경망 라이브러리: 케라스
___케라스 소개
___간단한 케라스 예제
딥살사
___딥살사 이론
___딥살사 코드 설명
___딥살사의 실행 및 결과
폴리시 그레이디언트
___정책 기반 강화학습
___폴리시 그레이디언트
___REINFORCE 코드 설명
___REINFORCE의 실행 및 결과
정리
___근사함수
___인공신경망
___인공신경망 라이브러리: 케라스
___딥살사
___폴리시 그레이디언트
▣ 6장: 강화학습 심화 2 - 카트폴
알고리즘 1: DQN
___카트폴 예제의 정의
___DQN 이론
___DQN 코드 설명
___DQN 실행 및 결과
알고리즘 2: 액터-크리틱
___액터-크리틱 이론 소개
___액터-크리틱 코드 설명
___액터-크리틱 실행 및 결과
정리
___고리즘 1: DQN
___알고리즘 2: 액터-크리틱
▣ 7장: 강화학습 심화 3 - 아타리
브레이크아웃 DQN
___아타리: 브레이크아웃
___컨볼루션 신경망(CNN)이란?
___브레이크아웃의 컨볼루션 신경망
___DQN 학습 전 준비 사항
___DQN 코드 설명
___텐서보드 사용법
___브레이크아웃 DQN 실행 및 결과
브레이크아웃 A3C
___DQN의 한계
___A3C란?
___멀티스레딩 소개
___브레이크아웃 A3C 코드 설명
___브레이크아웃 A3C 실행 결과
___브레이크아웃 DQN, A3C의 저장된 모델 플레이
정리
___브레이크아웃 DQN
___브레이크아웃 A3C
▣ 부록A: 학습결과 업로드
___오픈에이아이 짐의 다양한 예제
___오픈에이아이 짐에 학습 결과를 업로드
출판사 서평
★ 이 책에서 다루는 내용 ★
◎ 강화학습의 배경과 개념
◎ 강화학습의 기초 이론: MDP, 벨만 방정식, 다이내믹 프로그래밍
◎ 고전 강화학습 알고리즘: 몬테카를로, 살사, 큐러닝
◎ 인공신경망을 이용한 강화학습 알고리즘: 딥살사, REINFORCE, DQN, 액터-크리틱, A3C
◎ 강화학습 알고리즘 구현: 그리드월드, 카트폴, 아타리게임