파이썬과 케라스로 배우는 강화학습
강화학습의 기초부터 최근 알고리즘까지 친절하게 설명합니다!
‘알파고’로부터 받은 신선한 충격으로 많은 사람들이 강화학습에 관심을 가지기 시작했다. 하지만 처음 강화학습을 공부하는 분들을 위한 쉬운 자료나 강의를 찾아보기 어려웠다. 외국 강의를 통해 어렵게 이론을 공부하더라도 강화학습을 구현하는 데는 또 다른 장벽이 있었다. 이 책은 강화학습을 처음 공부하는 데 어려움을 겪는 독자를 위해 이론부터 코드 구현까지의 가이드를 제시한다.
특히 이번 개정판에서는 텐서플로 버전업에 맞춰서 코드를 업데이트하고 전반적인 이론 및 코드 설명을 개선했다. 그리고 실무에서 많이 활용될 수 있는 연속적 액터-크리틱 알고리즘을 추가했다.
뉴욕 대학교에서 컴퓨터과학 학사 학위를 받았습니다. 우버 드라이버 프라이싱 팀에서 소프트웨어 엔지니어로 재직 중이다. 대학교를 다니며 딥러닝과 강화학습 스터디 그룹에 참여하여 『파이썬과 케라스로 배우는 강화학습』(위키북스, 2017)을 공동 집필했다.
[1부] 강화학습 소개
▣ 1장: 강화학습 개요
___강화학습의 개념
___스키너의 강화 연구
___우리 주변에서의 강화
___머신러닝과 강화학습
___스스로 학습하는 컴퓨터, 에이전트
강화학습 문제
___순차적 행동 결정 문제
___순차적 행동 결정 문제의 구성 요소
___방대한 상태를 가진 문제에서의 강화학습
강화학습의 예시: 브레이크아웃
___딥마인드에 의해 다시 빛을 본 아타리 게임
___브레이크아웃의 MDP와 학습 방법
정리
___강화학습의 개념
___강화학습 문제
___강화학습의 예시: 브레이크아웃
[2부] 강화학습 기초
▣ 2장: 강화학습 기초 1 - MDP와 벨만 방정식
MDP
___상태
___행동
___보상함수
___상태 변환 확률
___할인율
___정책
가치함수
___가치함수
큐함수
벨만 방정식
___벨만 기대 방정식
___벨만 최적 방정식
정리
___MDP
___가치함수
___벨만 방정식
▣ 3장: 강화학습 기초 2 - 그리드월드와 다이내믹 프로그래밍
다이내믹 프로그래밍과 그리드월드
___순차적 행동 결정 문제
___다이내믹 프로그래밍
___격자로 이뤄진 간단한 예제: 그리드월드
다이내믹 프로그래밍 1: 정책 이터레이션
___강화학습 알고리즘의 흐름
___정책 이터레이션
___정책 평가
___정책 발전
___정책 이터레이션 코드 설명
___정책 이터레이션 코드 실행
다이내믹 프로그래밍 2: 가치 이터레이션
___명시적인 정책과 내재적인 정책
___벨만 최적 방정식과 가치 이터레이션
___가치 이터레이션 코드 설명
___가치 이터레이션 코드 실행
다이내믹 프로그래밍의 한계와 강화학습
___다이내믹 프로그래밍의 한계
___모델 없이 학습하는 강화학습
정리
___다이내믹 프로그래밍과 그리드월드
___다이내믹 프로그래밍 1: 정책 이터레이션
___다이내믹 프로그래밍 2: 가치 이터레이션
___다이내믹 프로그래밍의 한계와 강화학습
▣ 4장: 강화학습 기초 3 - 그리드월드와 큐러닝
강화학습과 정책 평가 1: 몬테카를로 예측
___사람의 학습 방법과 강화학습의 학습 방법
___강화학습의 예측과 제어
___몬테카를로 근사의 예시
___샘플링과 몬테카를로 예측
강화학습과 정책 평가 2: 시간차 예측
___시간차 예측
강화학습 알고리즘 1: 살사
___살사
___살사 코드 설명
___살사 코드의 실행 및 결과
강화학습 알고리즘 2: 큐러닝
___살사의 한계
___큐러닝 이론
___큐러닝 코드 설명
___큐러닝 코드의 실행 결과
정리
___강화학습과 정책 평가 1: 몬테카를로 예측
___강화학습과 정책 평가 2: 시간차 예측
___강화학습 알고리즘 1: 살사
___강화학습 알고리즘 2: 큐러닝
[3부] 강화학습 심화
▣ 5장: 강화학습 심화 1 - 그리드월드와 근사함수
근사함수
___몬테카를로, 살사, 큐러닝의 한계
___근사함수를 통한 가치함수의 매개변수화
인공신경망
___인공신경망 1: 인공신경망의 개념
___인공신경망 2: 노드와 활성함수
___인공신경망 3: 딥러닝
___인공신경망 4: 신경망의 학습
인공신경망 라이브러리: 케라스
___텐서플로 2.0과 케라스 소개
___간단한 케라스 예제
딥살사
___딥살사 이론
___딥살사 코드 설명
___딥살사의 실행 및 결과
폴리시 그레이디언트
___정책 기반 강화학습
___폴리시 그레이디언트
___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
▣ 참고문헌