Top

파이썬 기반 강화학습 알고리듬 [DP, Q-Learning, AC, DQN, TRPO, PPO, DDPG, TD3, Imitation Learning, ESBAS 알아보기]

  • 원서명Reinforcement Learning Algorithms with Python: Learn, understand, and develop smart algorithms for addressing AI challenges(ISBN 9781789131116)
  • 지은이안드레아 론자(Andrea Lonza)
  • 옮긴이정사범
  • ISBN : 9791161755571
  • 30,000원
  • 2021년 08월 25일 펴냄
  • 페이퍼백 | 448쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 데이터 과학

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/rl-python

요약

강화학습(RL)은 인공지능의 인기 있고 유망한 분야로 변화하는 요구사항에 대응해 이상적인 행동을 자동으로 결정하는 에이전트와 스마트한 모델을 만드는 알고리듬이다. 이 책은 강화학습 알고리듬을 마스터하고 자가학습(self-learning)하는 에이전트를 구현하는 방법을 이해할 수 있도록 도와준다. 강화학습에 필요한 툴, 라이브러리, 설정 사항에 대한 소개를 시작으로 강화학습의 빌딩블록, Q-러닝, SARSA 알고리듬과 같은 가치 기반 방법을 상세히 다룬다.

이 책에서 다루는 내용

■ OpenAI Gym 인터페이스를 이용해 카트폴 게임을 하는 에이전트 개발
■ 모델 기반 강화학습 패러다임
■ 동적 프로그래밍으로 프로즌레이크 문제 해결
■ Q-러닝과 SARAS를 이용해 택시 게임 실행
■ 딥 Q-러닝(DQN)을 이용해 아타리 게임 실행
■ 액터 크리틱과 REINFORCE를 이용해 폴리시 그래디언트 알고리듬 학습
■ PPO와 TRPO를 연속형 로코모션 환경에 사용
■ 진화 전략을 사용한 달 착륙 문제 해결

이 책의 대상 독자

인공지능 엔지니어나 딥러닝 사용자가 강화학습 기초를 배울 때 적합하다. 또한 강화학습 분야의 일부 고급 기술을 알고 싶은 경우에도 유용하다. 다만 책 내용을 이해하려면 파이썬을 활용할 줄 알아야 한다.

이 책의 구성

1장, ‘강화학습의 개요’에서는 강화학습이 필요한 분야와 강화학습 알고리듬을 이미 적용한 분야를 설명한다. 또한 2장의 프로젝트 실행에 필요한 툴, 라이브러리, 설정(setup)을 설명한다.
2장, ‘강화학습 사이클과 OpenAI Gym 구현’에서는 강화학습 알고리듬의 주요 사이클, 알고리듬 개발에 필요한 툴킷, 다양한 환경 유형을 설명한다. 랜덤 액션을 이용해 카트폴(cartpole)을 플레이하기 위해 OpenAI Gym 인터페이스를 이용한 랜덤 에이전트를 개발할 수 있다. 또한 다른 환경을 실행하기 위해 OpenAI Gym 인터페이스를 사용하는 방법을 학습해본다.
3장, ‘동적 프로그래밍으로 문제 해결하기’에서는 핵심 아이디어, 용어, 강화학습의 접근법을 소개한다. 강화학습의 메인 블록을 학습하고 문제 해결을 위해 강화학습 알고리듬을 만드는 방법의 일반적인 아이디어를 개발한다. 또한 모델 기반과 모델 프리 알고리듬의 차이와 강화학습 알고리듬 분류를 학습할 것이다. 동적 프로그래밍은 프로즌레이크(frozen lake) 게임을 해결하는 데 사용해본다.
4장, ‘Q-러닝과 SARSA 애플리케이션’에서는 가치 기반 메소드, 특히 동적 프로그래밍과 다르며 대규모 문제에 확장 적용이 가능한 Q-러닝과 SARSA를 설명한다. 이 알고리듬을 이해하기 위해 프로즌레이크 게임에 강화학습을 적용하고 동적 프로그래밍과의 차이를 알아본다.
5장, ‘DQN’에서는 특별히 Q-러닝에 적용한 신경망과 컨볼루션 신경망 CNN을 설명한다. Q-러닝과 신경망의 결합이 어떻게 뛰어난 결과를 만들고 많은 문제 해결에 사용될 수 있는지 알게 될 것이다. 추가로 DQN을 OpenAI Gym 인터페이스를 이용한 아타리 게임에 사용해본다.
6장, ‘확률적 PG 최적화 학습’에서는 새로운 모델 프리 알고리듬군(폴리시 그래디언트 메소드)을 소개한다. 그리고 폴리시 그래디언트와 가치 기반 메소드의 차이점과 장단점을 학습한다. 다음으로 REINFORCE와 액터 크리틱 알고리듬을 구현해 달 착륙 문제를 해결해 본다.
7장, ‘TRPO와 PPO 구현’에서는 폴리시 개선을 제어하기 위해 신규 메커니즘을 사용한 폴리시 그래디언트 메소드 변경을 제안한다. 이 메커니즘은 폴리시 그래디언트 알고리듬의 안정성과 수렴성을 개선하는 데 사용한다. 특히 TRPO와 PPO 같은 기술을 사용한 2개의 메인 폴리시 그래디언트 메소드를 구현한다. 연속형 액션 공간을 가진 환경인 로보스쿨(RoboSchool)에 구현해본다.
8장, ‘DDPG와 TD3 애플리케이션’에서는 폴리시 그래디언트와 Q-러닝을 모두 결합한 결정적 폴리시 알고리듬이라는 신규 알고리듬을 소개한다. 내부 컨셉을 학습하고 신규 환경에서 2개의 딥 결정적 알고리듬인 DDPG와 TD3를 구현해본다.
9장, ‘모델 기반 강화학습’에서는 미래 액션을 계획하거나 환경 모델을 학습하는 강화학습 알고리듬을 설명한다. 강화학습 알고리듬의 작동 방법, 장점, 많은 상황에서 선호하는 이유를 알게 될 것이다. 모델 기반 강화학습을 마스터하기 위해 로보스쿨에서 모델 기반 알고리듬을 구현해본다. 10장, ‘DAgger 알고리듬으로 이미테이션 학습하기’에서는 이미테이션 학습의 작동 방법과 문제에 적용하고 적합화하는 방법을 설명한다. 가장 잘 알려진 이미테이션 학습 알고리듬인 DAgger를 학습한다. 이 알고리듬을 잘 이해하기 위해 플래피 버드(Flappy Bird)에서 에이전트의 학습과정 속도를 높이는 데 활용해 본다.
11장, ‘블랙박스 최적화 알고리듬 이해하기’에서는 역전파에 의존하지 않는 블랙박스 최적화 알고리듬인 진화 알고리듬을 알아본다. 이 알고리듬은 빠른 훈련과 수백, 수천 개 코어를 이용한 쉬운 병렬화 때문에 관심 받고 있다. 11장은 일종의 진화 알고리듬인 진화 전략 알고리듬에 초점을 둬 이 이론에 대한 이론적 실제 적용 배경을 설명한다.
12장, ‘ESBAS 알고리듬 개발하기’에서는 강화학습에 특화된 중요한 탐색-활용 딜레마를 소개한다. 이 딜레마는 멀티 암트 밴딧 문제를 이용해 데모 시연을 하고 UCB와 UCB1 같은 접근법으로 해결할 것이다. 다음으로 알고리듬 선택 문제를 학습하고 ESBAS 메타 알고리듬을 개발한다. 이 알고리듬은 개별 상황에서 가장 적합한 강화학습 알고리듬을 선택하는 UCB1을 이용한다.
13장, ‘강화학습의 도전적 과제를 해결하기 위한 실제 구현’에서는 이 분야의 주요 도전 과제를 살펴보고 이를 극복하기 위한 몇 가지 사례와 메소드를 설명한다. 강화학습을 실제 현실 문제에 적용하기 위한 몇 가지 도전 과제, 딥 강화학습의 미래 개발, 현실에서의 사회적 임팩트를 학습한다.

저자/역자 소개

지은이의 말

강화학습은 변화하는 요구 사항에 근거해 이상적 행동을 자동으로 결정할 수 있는 스마트한 모델과 에이전트를 만드는 인기 있고 유망한 인공지능 분야다. 이 책은 에이전트를 개발할 때 강화학습 알고리듬을 마스터하고 구현하는 것을 이해할 수 있도록 도와준다.
강화학습 환경에서 작업해야 하는 도구, 라이브러리, 셋업 소개를 시작으로 강화학습의 빌딩 블록을 다루고 Q-러닝과 SARSA 알고리듬을 응용하는 (등의) 가치 기반 메소드를 상세하게 알아본다. 복잡한 문제를 해결하기 위해 Q-러닝과 신경망의 조합을 이용하는 방법을 소개한다. DDPG와 TD3 같은 결정적 알고리듬을 학습하기 전에 성능과 안정성을 개선하기 위한 폴리시 그래디언트 메소드, TRPO, PPO를 학습할 것이다. 또한 이미테이션 학습 기술이 작동하는 방법과 DAgger가 에이전트를 훈련시키는 방법을 다룬다. 진화 전략과 블랙박스 최적화 기술을 다룬 다음, UCB와 UCB1 같은 탐색 접근법을 학습하고 ESBAS라는 메타 알고리듬을 개발해본다.
이 책을 마칠 시점에는 현실 문제를 해결하기 위해 강화학습 알고리듬을 활용할 수 있는 역량을 갖추고 강화학습 연구 모임에 참여할 수 있을 것이다.

옮긴이 소개

정사범

의사결정과 최적화 방법론에 관심이 많다. 세상에 존재하는 다양한 데이터를 이용해 당면한 문제를 해결하는 일을 하고 있다. 다양한 책과 현장 경험을 통해 데이터 수집, 정제, 분석, 보고 방법에 대한 지식을 얻는 것에 감사하고 있다. 에이콘출판사에서 출간한 『RStudio 따라잡기』(2013), 『The R book(Second Edition) 한국어판』(2014), 『예측 분석 모델링 실무 기법』(2014), 『데이터 마이닝 개념과 기법』(2015), 『파이썬으로 풀어보는 수학』(2016), 『데이터 스토리텔링』(2016), 『R에서 객체지향 프로그래밍 사용하기』(2016), 『파이썬 프로그래밍 개론』(2016), 『산업인터넷(IIOT)과 함께하는 인더스트리 4.0』(2017), 『장고 마스터하기』(2017), 『텐서플로로 구현하는 딥러닝과 강화학습』(2017), 『머신 러닝 알고리즘』(2019)을 번역했다.

목차

목차
  • 1부. 알고리듬과 환경
  • 1장. 강화학습의 개요
    • 강화학습 소개
      • 강화학습과 지도학습의 비교
    • 강화학습의 역사
    • 딥 강화학습
  • 강화학습의 구성 요소
    • 폴리시
    • 가치함수
    • 보상
    • 모델
  • 강화학습 애플리케이션
    • 게임
    • 로봇과 인더스트리 4.0
    • 기계학습
    • 경제와 금융
    • 헬스케어
    • 지능형 교통시스템
    • 에너지 최적화와 스마트 그리드
  • 요약
  • 질문
  • 심화학습 자료

  • 2장. 강화학습 사이클과 OpenAI Gym 구현하기
    • 환경 설정하기
      • OpenAI Gym 설치하기
      • 로보스쿨 설치하기
    • OpenAI Gym과 강화학습 사이클
      • 강화학습 사이클 개발하기
      • 공간에 익숙해지기
      • 텐서플로우 2.X
        • 즉시 실행
        • 오토그래프
    • 텐서플로우 기반 기계학습 모델 개발
      • 텐서
        • 상수
        • 변수
        • 그래프 생성하기
      • 간단한 선형회귀 예제
      • 텐서보드 도입하기
    • 강화학습 환경의 유형
      • 왜 다른 환경인가?
      • 오픈소스 환경
    • 요약
    • 질문
    • 심화학습 자료

  • 3장. 동적 프로그래밍DP으로 문제 해결하기
    • MDP
      • 폴리시
      • 감가율과 리턴
      • 가치함수
      • 벨만 방정식
    • 강화학습 알고리듬 분류
      • 모델 프리 알고리듬
        • 가치 기반 알고리듬
        • 폴리시 그래디언트 알고리듬
        • 액터 크리틱 알고리듬
        • 하이브리드 알고리듬
      • 모델 기반 강화학습
      • 알고리듬 다양화
    • DP
      • 폴리시 평가와 폴리시 개선
      • 폴리시 이터레이션
        • 프로즌레이크에 적용된 폴리시 이터레이션
      • 가치 이터레이션
        • 프로즌레이크에 적용한 가치 이터레이션
    • 요약
    • 질문
    • 심화학습 자료

  • 2부. 모델 프리 강화학습 알고리듬
  • 4장. Q-러닝과 SARSA 애플리케이션
    • 모델없이 학습하기
      • 사용자 경험
      • 폴리시 평가
      • 탐색 문제
        • 왜 탐색해야 하는가?
        • 탐색 방법
    • 시간차 학습
      • 시간차 업데이트
      • 폴리시 개선
      • 몬테카를로와 시간차 비교
    • SARSA
      • 알고리듬
    • Taxi-v2에 SARSA 적용하기
    • Q-러닝
      • 이론
      • 알고리듬
    • Taxi-v2에 Q-러닝 적용하기
      • SARSA와 Q-러닝 비교
    • 요약
    • 질문

  • 5장. Deep Q-Network
    • 심층신경망과 Q-러닝
      • 함수 근사
      • 신경망을 이용한 Q-러닝
      • 딥 Q-러닝의 불안정성
    • DQN
      • 해결책
        • 리플레이 메모리
        • 타깃 네트워크
      • DQN 알고리듬
        • 손실함수
        • 의사코드
      • 모델 아키텍처
    • DQN을 퐁에 적용하기
      • 아타리 게임
      • 전 처리
      • DQN 구현
        • DNN
        • 경험 버퍼
        • 계산 그래프와 훈련 루프
      • 결과
    • DQN 개선 알고리듬
      • Double DQN
        • DDQN 구현
        • 결과
      • DQN 듀얼링하기
        • 듀얼링 DQN 구현
        • 결과
      • N-스텝 DQN
        • 구현
        • 결과
    • 요약
    • 질문
    • 심화학습 자료

  • 6장. 확률 기반 PG 최적화 학습
    • 폴리시 그래디언트 메소드
      • 폴리시의 그래디언트
      • 폴리시 그래디언트 정리
      • 그래디언트 계산하기
      • 폴리시
      • 온-폴리시 PG
    • REINFORCE 알고리듬 이해하기
      • REINFORCE 구현하기
      • REINFORCE를 이용해 탐사선 착륙시키기
        • 결과 분석하기
    • 베이스라인이 있는 REINFORCE
      • 베이스라인으로 REINFORCE 구현하기
    • AC 알고리듬 학습하기
      • 액터가 학습하도록 돕기 위해 크리틱 사용하기
      • n-step AC 모델
      • AC 구현
      • AC를 사용해 탐사선spacecraft 착륙시키기
      • 고급 AC 팁과 트릭
    • 요약
    • 질문
    • 심화학습 자료

  • 7장. TRPO와 PPO 구현
    • 로보스쿨
      • 연속 시스템 제어
    • Natural Policy Gradient
      • NPG에 대한 아이디어
      • 수학적 개념
        • FIM과 KL 발산
      • NG 문제
    • TRPO
      • TRPO 알고리듬
      • TRPO 알고리듬 구현
      • TRPO 애플리케이션
    • Proximal Policy Optimization
      • PPO의 개요
      • PPO 알고리듬
      • PPO의 구현
      • PPO 애플리케이션
    • 요약
    • 질문
    • 심화학습 자료

  • 8장. DDPG와 TD3 애플리케이션
    • 폴리시 그래디언트 최적화와 Q-러닝 결합하기
      • 결정론적 폴리시 그래디언트
      • DDPG 알고리듬
      • DDPG 구현
      • DDPG를 BipedalWalker-v2에 적용하기
    • TD3 폴리시 그래디언트
      • 과대평가 편향 문제 해결
        • TD3의 구현
      • 분산 감소 해결
        • 지연된 폴리시 업데이트
        • 타깃 정규화
      • BipedalWalker에 TD3를 적용하기
    • 요약
    • 질문
    • 심화학습 자료

  • 3부. 모델 프리 알고리듬과 개선
  • 9장. 모델 기반 강화학습
    • 모델 기반 메소드
      • 모델 기반 학습에 대한 폭넓은 관점
        • 알려진 모델
        • 미지의 모델
      • 장단점
    • 모델 기반 학습과 모델 프리 학습 결합하기
      • 모델 기반과 모델 프리 접근법의 유용한 조합
      • 이미지에서 모델 만들기
    • 역진자에 적용한 ME-TRPO 모델
      • ME-TRPO 이해하기
      • ME-TRPO 구현하기
      • 로보스쿨 실험하기
        • 로보스쿨 역진자 실험 결과
    • 요약
    • 질문
    • 심화학습 자료

  • 10장. DAgger 알고리듬으로 모방 학습하기
    • 기술적 요구 사항
      • Flappy Bird 설치
    • 모방 접근
      • 운전 보조 사례
      • IL과 RL 비교하기
      • 모방 학습에서 전문가의 역할
      • IL 구조
        • 수동 모방과 능동 모방 비교하기
    • Flappy Bird 게임하기
      • 환경을 이용하는 방법
    • 데이터 집합dataset 집계 알고리듬 이해하기
      • DAgger 알고리듬
      • DAgger의 구현
        • 전문가 추론 모델 적재
        • 학습자의 계산 그래프 만들기
        • DAgger loop 만들기
      • Flappy Bird 결과 분석
    • IRL
    • 요약
    • 질문
    • 심화학습 자료

  • 11장. 블랙박스 최적화 알고리듬 이해하기
    • 강화학습의 대안
      • 강화학습에 대한 간단한 요약
      • 대안
        • EAs
    • EA의 핵심
      • 유전자 알고리듬GA
      • 진화 전략
        • CMA-ES
        • ES 대 RL
    • 확장 가능한 진화 전략
      • 핵심
        • ES 병렬화하기
        • 다른 트릭
        • 의사 코드
      • 확장 가능한 구현
        • 메인 함수
        • 작업자
    • 확장 가능한 ES를 LunarLander에 적용하기
    • 요약
    • 질문
    • 심화학습 자료

  • 12장. ESBAS 알고리듬 개발하기
    • 탐색 대 활용
      • 멀티 암드 밴딧
    • 탐색 접근법
      • 탐욕 전략
      • UCB 알고리듬
        • UCB1
      • 탐색 복잡도
    • ESBAS
      • 알고리듬 선택 알아보기
      • ESBAS 내부 구조
      • 구현
      • Acrobot 실행하기
        • 결과
    • 요약
    • 질문
    • 심화학습 자료

  • 13장. 강화학습 문제를 해결하기 위한 실제 구현
    • 딥 강화학습의 모범 사례
      • 적합한 알고리듬 선택하기
      • 강화학습 알고리듬 개발하기
    • 딥 강화학습의 도전 과제
      • 안정성과 재현성
      • 효율성
      • 일반화
    • 고급 기술
      • 비지도 강화학습
        • 내재적 보상
      • 전이 학습
        • 전이 학습의 유형
    • 현실에서의 강화학습
      • 강화학습을 현실에 적용할 때 해결해야 할 문제
      • 시뮬레이션과 현실 사이의 차이 줄이기
      • 자기만의 환경 만들기
    • 강화학습의 미래와 사회에 미치는 영향
    • 요약
    • 질문
    • 심화학습 자료
  • 도서 오류 신고

    도서 오류 신고

    에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

    오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

    (예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안