
책 소개
요약
강화학습의 기초부터 고급 주제까지 단계적이고 체계적으로 다루는 책이다. 정책 기반 알고리즘(REINFORCE, PPO)과 액터–크리틱(A2C, A3C), 가치 기반(DQN, DDQN) 기법을 이론과 실습의 균형을 맞춰 설명하며, 개념을 시각화하고 수식을 단계별로 풀어 설명하는 한편 배경 지식을 이해하는 데 도움이 되는 팁을 제공한다. 독자는 알고리즘의 핵심 코드를 직접 구현해 보고 바로 정답을 확인해 볼 수 있고, 강화학습 프레임워크를 설계해 이를 기반으로 다양한 알고리즘을 적용해 보면서 전체 프로세스를 체계적으로 익히게 된다. 또한 각 구성 요소를 깊이 이해한 뒤에는 스스로 알고리즘을 개선·확장할 수 있도록 안내하며, 분산 학습과 같은 최신 기법까지 포함해 실제 실무 환경에 곧바로 적용할 수 있는 실전 지식을 제공한다.
추천의 글
『Do it! 딥러닝 교과서』 한 상 차림에 이은 강화학습 구첩반상!
저자의 이전 저서인 『Do it! 딥러닝 교과서』에서도 느낀 바 있지만, 이번 책 역시 세심함과 꼼꼼함이 책 전체에 깊이 스며 있습니다. 그림, 표, 예제 하나하나가 허투루 등장하는 법이 없고, 모든 요소가 독자의 이해를 돕기 위해 정교하게 설계돼 있습니다.
이 책은 초보자에게는 친절한 진입 경로를, 전문가에게는 구조적 통찰과 확장 가능성을 제공하는 균형 잡힌 구조를 갖추고 있습니다. 특히 눈에 띄는 강점은 PyTorch 기반으로 강화학습 프레임워크를 개발하고 실험해 보는 프로젝트 기반의 실습 중심 구성입니다. 강화학습 이론을 현실에 적용하는 힘을 길러 주기에 실무형 실습서로도 손색이 없습니다.
무엇보다도 이 책은 강화학습을 ‘즐기는’ 과정을 안내합니다. 단순히 기술을 전달하는 데 그치지 않고, 강화학습이 어떤 문제를 어떻게 창의적으로 풀어낼 수 있는지 그 의미까지 체감하게 해 줍니다. 아타리 게임, 알파고, 자율주행, ChatGPT의 RLHF 등 풍부 한 실제 사례들은 독자의 학습 동기를 북돋우기에 충분하며, 마지막 페이지를 덮을 즈음엔 마치 풍성한 구첩반상을 맛보고 난 듯한 만족감을 느끼게 되리라 확신합니다.
신찬수, 한국외국어대학교 컴퓨터공학부 교수
ChatGPT 시대에 더욱 중요해진 강화학습!
강화학습이라고 하면 많은 사람들은 2016년 이세돌 9단과 알파고 대전을 떠올릴 것이다. 바둑 게임에 이기면 긍정의 보상을, 지면 부정의 보상을 주는 강화학습 방식을 통해 마침내 바둑 세계 챔피언을 이겼다는 전설이 돼 버린 이야기.
2022년 말 ChatGPT 서비스가 출시되면서 거대 언어 모델(LLM)에 대한 관심이 전세계적으로 높아졌다. ChatGPT 서비스의 기반이었던 GPT-3 모델은 사전 학습, 미세 조정 그리고 마지막 단계로 사람 선호도 학습의 3단계 학습을 거쳤는데, 이중 마지막 단계인 사람 선호도 학습은 선호도가 높은 모델에 긍정의 보상을 주도록 PPO라는 강화 학습 알고리즘을 사용했다.
2024년 말에는 LLM 모델의 지능을 높이기 위해 생각을 먼저 생성하고 이후에 답변을 생성하는 방식의 훈련 방법이 제안됐다. 중국 딥시크-R1 모델은 스스로 개발한 GRPO라는 강화학습 알고리즘을 사용해 효율적으로 생각 모델을 학습시켜 전 세계의 주목을 받았다.
2025년에는 LLM 모델이 서비스를 호출해 상호작용할 수 있는 에이전트 방식 LLM이 주목받고 있다. LLM 모델을 넘어서 여러 에이전트와 협업해 더 나은 결과를 만드는 구조의 정확도 개선을 위해 마찬가지로 강화학습 방법이 가장 많이 사용되고 있다.
강화학습은 신경망에 대한 지도 학습, 비지도 학습 알고리즘과는 발전 궤적이 조금 달라서 신경망 모델을 잘 아는 사람이라 해도 개념과 용어를 이해하는 데 어려움이 있다. 저자는 다양한 강화학습 알고리즘과 메타 학습 알고리즘을 연구해왔으며 수학적 원리와 정확성을 중시하는 관점을 갖추고 있어, 실용적 코드를 넘어 원리적 이해에 도움을 얻을 수 있을 것이다. ChatGPT 시대의 가장 지능적 학습을 위한 강화학습의 원리를 이해하고 실제 모델 개발에 활용하는 데 이 책이 중요한 디딤돌 역할을 할 것이라 믿는다.
윤경구, 주식회사 파수 Enterprise LLM 솔루션 개발 총괄, 전무
시행착오라는 강을 건널 때 밟고 지나야 할 징검다리 같은 책!
저자를 처음 만난 것은 ‘AI를 통해 세상을 더 나은 곳으로 만들겠다’라는 뜻을 품은 사람들의 모임으로, 스승과 제자의 연으로 시작해 지금은 함께 공부하는 벗이자 서로에게 조언을 주는 존재가 됐다. 소프트웨어에 대한 깊은 이해와 오랜 연구, 교육과 제품 기획 현장을 두루 경험해 온 저자는 늘 단단한 바탕 위에 실전적인 앎이 놓여야 한다는 태도로 지식을 이해하고 전해왔다.
이 책 역시 그러한 저자의 면모가 고스란히 드러난다. 강화학습이라는 다소 복잡하고 난해한 분야를 환경 루프, 정책, 러너 구조 등 핵심 구성요소를 중심으로 체계적이고 명료하게 설명한다. 단순한 코드 나열에 그치지 않고, 각 개념이 왜 필요한지, 어떤 방식으로 전체 흐름과 연결되는지를 자연스럽게 이해할 수 있도록 돕는다. 특히 이 책의 구성은 독자들이 꼭 필요한 내용을 단계별로 집중해 학습할 수 있도록 설계돼 있어 실전 코드와 개념을 동시에 정리하고자 하는 학습자들에게 큰 힘이 된다.
강화학습은 이미 익숙하지만, 여전히 많은 이들에게 어렵고 멀게 느껴지는 분야다. “강화학습은 제어에만 적합하지 않나?”, “현실 환경은 너무 복잡해서 적용하기 어렵지 않나?”와 같은 고민을 한 분들에게 이 책은 막연한 두려움을 줄이고 실제 적용 가능성을 넓혀주는 실용적인 안내서가 돼줄 것이다.
최근 강화학습은 LLM 파인튜닝을 위한 RLHF, 자율주행, 로봇 제어, 나아가 모델 아키텍처 탐색까지 그 활용 영역을 빠르게 확장하고 있다. 「AlphaGo Moment for Model Architecture Discovery」와 같은 최신 논문은 강화학습이 단순한 행동 선택을 넘어 AI가 자신을 진화시키는 핵심 방법론이 될 수 있음을 보여준다.
매일 ‘창의력’, ‘에이전트’, ‘MCP’ 같은 수많은 키워드가 쏟아지는 요즘, 이 책은 강화 학습이라는 본질을 명확하게 짚어주는 실전서다. 앞으로도 후속작이 꾸준히 이어지기를 바라며, 나는 변함없이 저자의 책을 추천하고 응원하기를 기대한다. 저자는 내가 오랜 시간 지켜본, 흔들리지 않는 태도로 지식을 쌓아가는 사람이고, 나는 그를 꾸준히 지지하는 독자이자 ‘빅 팬’이다.
시행착오라는 강을 건너는 여정 속에서 반드시 밟고 지나야 할 징검다리 같은 책. 이 책이 그 역할을 해줄 것이라 믿고 자신 있게 추천한다.
이주희, 보고넷 CTO/이사
이 책에서 다루는 내용
◆ 단계적이고 체계적으로 다루는 강화학습의 기초부터 고급 주제까지
◆ 정책 기반(REINFORCE, PPO), 액터-크리틱(A2C, A3C), 가치 기반(DQN, DDQN) 알고리즘의 이론과 실습을 균형 있게 제공
◆ 개념을 시각화하고 수식을 단계별로 풀어 설명하며 배경 지식을 이해하도록 팁을 제공
◆ 알고리즘의 핵심 코드를 직접 구현해 보고 정답을 즉시 확인해 보는 방식의 실습 구성
◆ 강화학습 프레임워크를 설계하고 이를 기반으로 강화학습 알고리즘을 구현
◆ 강화학습의 주요 구성 요소와 전체 프로세스를 체계적으로 이해할 수 있으며 독자가 알고리즘을 스스로 개선하고 확장할 수 있도록 지원
◆ 분산 학습과 같은 최신 기법을 포함해 실무 환경에 바로 적용할 수 있는 실전 지식 제공
이 책의 대상 독자
◆ 심층 강화학습을 이론부터 실습까지 체계적으로 학습하고자 하는 독자
◆ 강화학습 프레임워크의 구조를 이해하고 직접 구현해 보려는 독자
◆ 여러 알고리즘을 구현해 성능을 비교·분석해 보고 싶은 독자
◆ 강화학습을 실제 업무에 적용하고자 하는 개발자 및 연구자
◆ 이공계 학부·대학원생, AI 분야 취업 준비생, 머신러닝 개발자, AI R&D 연구원 등
목차
목차
- 1부. 강화학습 개요
- 1장. 강화학습 개요
- 1.1 강화학습이란?
- 1.2 강화학습의 응용
- 1.3 강화학습의 도전 과제
- 2장. 강화학습 알고리즘
- 2.1 강화학습의 정의
- 2.2 강화학습 알고리즘의 종류
- 2.3 강화학습의 학습 단계
- 2.4 알고리즘 선택 기준
- 2부. 강화학습 프레임워크 소개
- 3장. 강화학습 프레임워크
- 3.1 강화학습 논리 구성
- 3.2 강화학습 프레임워크 클래스 구성
- 3.2.1 공통 클래스와 커스터마이징 클래스
- 4장. 강화학습 프레임워크 개발 환경
- 4.1 개발 환경 구성
- 4.2 OpenGym 소개
- 4.3 강화학습 프레임워크의 실행
- 3부. 강화학습 맛보기 정책 기반 방법
- 5장. 러너
- 5.1 러너의 구성
- 5.2 러너의 작동 방식
- 5.3 Runner 클래스 정의
- 5.4 Runner 클래스 구현코드
- 6장. 환경 루프
- 6.1 환경 루프의 구성
- 6.2 환경 루프의 작동 방식
- 6.3 EnvironmentLoop 클래스 정의
- 6.4 EnvironmentLoop 클래스 구현 코드
- 7장. 폴리시 그레이디언트
- 7.1 정책 기반 방법의 유도
- 7.2 분산 최소화 방안
- 8장. REINFORCE 알고리즘 구현
- 8.1 REINFORCE 알고리즘 구성
- 8.2 REINFORCE 클래스
- 8.3 REINFORCENetwork 클래스
- 8.4 REINFORCELearner 클래스
- 8.5 몬테카를로 리턴
- 8.6 CartPole-v1 환경
- 8.7 LunarLanderContinuous-v2 학습
- 4부. 강화학습 발담그기 정책 기반 방법 성능 개선
- 9장. 에이전트
- 9.1 에이전트 구성
- 9.2 에이전트
- 9.3 액터
- 9.4 학습자
- 9.5 네트워크
- 10장. 정책
- 10.1 정책의 종류
- 10.2 정책의 구성
- 10.3 Policy 클래스
- 10.4 StochasticPolicy 클래스
- 10.5 CategoricalPolicy 클래스
- 10.6 GaussianPolicy 클래스
- 10.7 MLP 클래스
- 10.8 CategoricalPolicyMLP 클래스
- 10.9 GaussianPolicyMLP 클래스
- 11장. REINFORCE 베이스라인 적용
- 11.1 새로운 알고리즘 추가
- 11.2 REINFORCE 베이스라인 버전 구성
- 11.3 REINFORCEB 클래스
- 11.4 REINFORCEBNetwork 클래스
- 11.5 REINFORCEBLearner 클래스
- 11.6 CartPole-v1 학습
- 11.7 LunarLanderContinuous-v2 학습
- 11.8 새로운 환경 학습
- 5부. 강화학습 즐기기 액터-크리틱 방법
- 12장. 액터-크리틱 방법
- 12.1 가치 함수
- 12.2 액터-크리틱 방법
- 12.3 A2C
- 13장. A2C 알고리즘 구현
- 13.1 A2C 알고리즘 구성
- 13.2 A2C 클래스
- 13.3 A2CNetwork 클래스
- 13.4 A2CLearner 클래스
- 13.5 n-스텝 리턴
- 13.6 GAE
- 13.7 CartPole-v1 학습
- 13.8 LunarLanderContinuous-v2 학습
- 14장. 가치 함수
- 14.1 가치 함수
- 14.2 가치 함수의 구성
- 14.3 ValueFunction 클래스
- 14.4 StateValueFunction 클래스
- 14.5 ActionValueFunction 클래스
- 14.6 ValueFunctionMLP 클래스
- 14.7 QFunctionMLP 클래스
- 14.8 QFunctionMLPDQN 클래스
- 15장. 데이터셋
- 15.1 데이터셋 구성 방식
- 15.2 데이터셋의 구성
- 15.3 버퍼와 버퍼 스키마
- 15.4 롤아웃 버퍼
- 15.5 리플레이 버퍼
- 16장. 환경
- 16.1 환경의 작동 방식
- 16.2 환경 구성
- 16.3 Environment 클래스
- 16.4 EnvironmentSpec 클래스
- 16.5 OpenGym 클래스
- 6부. 강화학습 완성하기 가치 기반 방법
- 17장. 가치 기반 방법
- 17.1 가치 기반 방법
- 17.2 DQN
- 17.3 더블 DQN(Double DQN)
- 18장. 가치 기반 방법
- 18.1 DQN 알고리즘 구성
- 18.2 DQN 클래스
- 18.3 DQNNetwork 클래스
- 18.4 유틸리티 함수
- 18.5 DQNLearner 클래스
- 18.6 CartPole-v1 학습
- 19장. 더블 DQN 알고리즘 구현
- 19.1 더블 DQN 알고리즘 구성
- 19.2 DDQN 클래스
- 19.3 DDQNNetwork 클래스
- 19.4 DDQNLearner 클래스
- 19.5 CartPole-v1 학습
- 7부. 강화학습 성능 개선 분산 강화학습
- 20장. PPO 알고리즘
- 20.1 PPO 알고리즘
- 21장. PPO 알고리즘 구현
- 21.1 PPO 알고리즘 구성
- 21.2 PPO 클래스
- 21.3 PPONetwork 클래스
- 21.4 PPOLearner 클래스
- 21.5 CartPole-v1 학습
- 21.6 LunarLanderContinuous-v2 학습
- 21.7 AntBulletEnv-v0 학습
- 22장. 다중 환경 러너
- 22.1 A2C와 A3C
- 22.2 다중 환경 러너의 구성
- 22.3 MultiEnvRunner 클래스
- 22.4 MultiEnvAsyncRunner 클래스
- 22.5 다중 환경 성능 확인
- 22.6 Ray 소개