HOME / CATALOG / 데이터 사이언스
데이터 사이언스

파이토치와 유니티 ML-Agents로 배우는 강화학습 (ebook)

다양한 게임을 제작하며 배우는 심층강화학습
지은이 민규식, 이현호, 김영록, 정유정, 정규열, 박유민
도서 정보
출간일
2022년 8월 17일
쪽수
332쪽
판형
188*240*16mm
ISBN
9791158393625
시리즈
데이터 사이언스 시리즈_082
정가
20,000원
난이도
도서 소개
저자 소개
목차
예제 코드
정오표

도서 소개

유니티를 이용하여 직접 게임을 제작하고 ML-Agents로 강화학습 환경을 구성할 수 있습니다!

유니티 ML-Agents는 게임 엔진인 유니티를 통해 제작한 시뮬레이션 환경을 강화학습을 위한 환경으로 만들어주는 고마운 도구이다. ML-Agents를 통해 많은 개발자, 연구자들이 원하는 강화학습 환경을 직접 만들 수 있게 되면서 ML-Agents는 학술적, 산업적으로 강화학습의 사용에 있어 중요한 도구가 되었다. 하지만 아직까지도 ML-Agents, 그중에서도 특히 ML-Agents 2.0 이후의 버전을 다루는 참고 자료가 많지 않기 때문에 ML-Agents를 사용하는 데 어려움이 많았다.

이 책은 유니티, ML-Agents, 심층강화학습 등 유니티 ML-Agents를 사용하는 데 필요한 다양한 내용을 다룬다. 또한 이 책은 2020년 출간된 ≪텐서플로와 유니티 ML-Agents로 배우는 강화학습≫의 개정판으로 최신버전의 ML-Agents에 대한 내용을 다루고 있다.

★ 이 책에서 다루는 내용 ★

  • 강화학습의 기초 용어 및 이론
  • 유니티 설치 및 기초 사용법
  • 유니티 ML-Agents 설치, 구성 요소 및 사용법 설명(mlagents-learn, Python API)
  • 강화학습 환경 제작: 그리드월드, 드론, 카트레이싱
  • 강화학습 알고리즘 이론 학습 및 코드 구현: DQN, A2C, DDPG, BC
  • ML-Agents 예제 환경을 이용한 강화학습 환경 제작
  • 무료 에셋을 이용한 강화학습 환경 제작

 

도서 상세 이미지

저자 소개

민규식 kyushikmin@gmail.com

한양대학교 미래자동차공학과에서 박사학위를 취득했으며 현재 카카오에서 AI 엔지니어로 일하고 있다. 강화학습 관련 페이스북 그룹인 Reinforcement Learning Korea의 운영진으로 활동하고 있으며 유니티 코리아에서 공인한 유니티 전문가 그룹인 Unity Masters 3~5기로 활동했다.

이현호 ramanuzann@gmail.com

대학에서 응용수학 및 컴퓨터공학을 전공하였고, ML을 통해 문제들을 해결하는 일을 해왔다. 현재 카카오엔터프라이즈에서 ML 엔지니어로 일하고 있고, MLOps 플랫폼 제작 업무를 수행하고 있다.

김영록 schrodinger8834@gmail.com

대구대학교에서 물리학을 전공하여 학사학위를 취득하였다. 현재는 경북대학교 인공지능학과에 석, 박사 통합 과정으로 재학 중이며 주 연구 분야는 강화학습, 통신 및 최적화 이론이다.

정유정 yujeong.jeong94@gmail.com

숭실대학교에서 글로벌미디어학부를 전공하였고, LG전자 로봇 개발 부서에서 SW엔지니어로 일했다. 현재는 마키나락스에서 유니티 개발 및 ML 엔지니어로 일하고 있다.

정규열 raptorjung@gmail.com

게임 클라이언트 프로그래머로 3년 근무(60초 용사, 노블레스 제로, DC언체인드 등등 제작)했으며 이후 강화학습에 대한 관심이 생겨 경기대학교 컴퓨터 과학과에서 석사학위를 취득하였다. 석사 과정 동안 주로 협력적인 멀티 에이전트 강화학습을 연구하였으며 게임 도메인에 적용해왔다. 현재는 넷마블에서 강화학습 엔지니어로 일하고 있다.

박유민 qkrdbals1630@gmail.com

경희대학교에서 응용수학부 및 컴퓨터공학부를 복수전공하였고, 현재 경희대학교 컴퓨터공학 박사 과정으로 재학 중이다. 주 연구 분야는 네트워크 도메인에서 머신러닝을 활용한 통신 자원 최적화이다.

목차

  • ▣ 1장: 강화학습의 개요
  • 1.1 강화학습이란?
  • ___1.1.1 기계학습이란?
  • ___1.1.2 강화학습의 성과
  • 1.2 강화학습의 기초 용어
  • 1.3 강화학습의 기초 이론
  • ___1.3.1 벨만 방정식
  • ___1.3.2 탐험(exploration)과 이용(exploitation)
  •  
  • ▣ 2장: 유니티 ML_Agents 살펴보기
  • 2.1 유니티와 ML-Agents
  • ___2.1.1 유니티
  • ___2.1.2 ML-Agents
  • 2.2 유니티 설치 및 기초 조작법
  • ___2.2.1 유니티 허브 다운로드 및 설치
  • ___2.2.2 유니티 라이선스 활성화
  • ___2.2.3 유니티 에디터 설치
  • ___2.2.4 유니티 프로젝트 생성
  • ___2.2.5 유니티 인터페이스
  • ___2.2.6 유니티의 기초적인 조작
  • 2.3 ML-Agents 설치
  • ___2.3.1 ML-Agents 파일 내려받기
  • ___2.3.2 유니티에 ML-Agents 설치하기
  • ___2.3.3 ML-Agents 파이썬 패키지 설치하기
  • 2.4 ML-Agents의 구성 요소
  • ___2.4.1 Behavior Parameters
  • ___2.4.2 Agent Script
  • ___2.4.3 Decision Requester, Model Overrider
  • ___2.4.4 환경 빌드하기
  • 2.5 mlagents-learn을 이용해 ML-Agents 사용하기
  • ___2.5.1 ML-Agents에서 제공하는 강화학습 알고리즘
  • ___2.5.2 ML-Agents에서 제공하는 학습 방식
  • ___2.5.3 PPO 알고리즘을 이용한 3DBall 환경 학습
  • 2.6 Python-API를 이용해 ML-Agents 사용하기
  • ___2.6.1 Python-API를 통한 에이전트 랜덤 제어
  •  
  • ▣ 3장: 그리드월드 환경 만들기
  • 3.1 프로젝트 시작하기
  • 3.2 그리드월드 스크립트 설명
  • 3.3 벡터 관측 추가 및 환경 빌드
  • 3.4 번외: 코드 최적화 하기
  •  
  • ▣ 4장: Deep Q Network(DQN)
  • 4.1 DQN 알고리즘의 배경
  • ___4.1.1 가치 기반 강화학습
  • ___4.1.2 DQN 알고리즘의 개요
  • 4.2 DQN 알고리즘의 기법
  • ___4.2.1 경험 리플레이(experience replay)
  • ___4.2.2 타깃 네트워크(target network)
  • 4.3 DQN 학습
  • 4.4 DQN 코드
  • ___4.4.1 라이브러리 불러오기 및 파라미터 값 설정
  • ___4.4.2 Model 클래스
  • ___4.4.3 Agent 클래스
  • ___4.4.4 Main 함수
  • ___4.4.5 학습 결과
  •  
  • ▣ 5장: 드론 환경 만들기
  • 5.1 A2C 알고리즘의 개요
  • 5.2 액터-크리틱 네트워크의 구조
  • 5.3 A2C 알고리즘의 학습 과정
  • 5.4 A2C의 전체적인 학습 과정
  • 5.5 A2C 코드
  • ___5.5.1 라이브러리 불러오기 및 파라미터 값 설정
  • ___5.5.2 Model 클래스
  • ___5.5.3 Agent 클래스
  • ___5.5.4 Main 함수
  • 5.5.5 학습 결과
  •  
  • ▣ 6장: Advantage Actor Critic(A2C)
  • 6.1 프로젝트 시작하기
  • 6.2 드론 에셋 가져오기 & 오브젝트 추가
  • ___6.2.1 에셋스토어에서 드론 에셋 내려받기
  • ___6.2.2 드론 환경 제작하기
  • 6.3 스크립트 설명
  • ___6.3.1 DroneSetting 스크립트
  • ___6.3.2. DroneAgent 스크립트
  • 6.4 드론 환경 실행 및 환경 빌드
  •  
  • ▣ 7장: Deep Deterministic Policy Gradient(DDPG)
  • 7.1 DDPG 알고리즘의 개요
  • 7.2 DDPG 알고리즘의 기법
  • ___7.2.1 경험 리플레이(experience replay)
  • ___7.2.2 타깃 네트워크(target network)
  • ___7.2.3 소프트 타깃 업데이트(soft target update)
  • ___7.2.4 OU 노이즈(Ornstein Uhlenbeck Noise)
  • 7.3 DDPG 학습
  • ___7.3.1 크리틱 네트워크 업데이트
  • ___7.3.2 액터 네트워크 업데이트
  • 7.4 DDPG 코드
  • ___7.4.1 라이브러리 불러오기 및 파라미터 값 설정
  • ___7.4.2 OU Noise 클래스
  • ___7.4.3 Actor 클래스
  • ___7.4.4 Critic 클래스
  • ___7.4.5 Agent 클래스
  • ___7.4.6 Main 함수
  • ___7.4.7 학습 결과
  •  
  • ▣ 8장: 카트레이싱 환경 만들기
  • 8.1 프로젝트 시작하기
  • 8.2 카트레이싱 환경 구성하기
  • 8.3 스크립트 작성 및 빌드하기
  •  
  • ▣ 9장: Behavioral Cloning(BC)
  • 9.1 Behavioral Cloning 알고리즘의 개요
  • 9.2 Behavioral Cloning 알고리즘의 기법
  • ___9.2.1 보상이 음수인 데이터 제외하기
  • 9.3 Behavioral Cloning 학습
  • 9.4 Behavioral Cloning 알고리즘 코드
  • ___9.4.1 라이브러리 불러오기 및 파라미터 값 설정
  • ___9.4.2 Model 클래스
  • ___9.4.3 Agent 클래스
  • ___9.4.4 Main 함수
  • ___9.4.5 학습 결과
  • 9.5 ml-agents의 내장 Imitation Learning 사용
  • ___9.5.1 ML-Agents에서 제공하는 Behavioral Cloning 알고리즘
  • ___9.5.2 ML-Agents에서 제공하는 GAIL 알고리즘
  • ___9.5.3 모방학습을 위한 Config 파일 설정
  • ___9.5.4 ml-agent에서의 모방학습 결과
  •  
  • ▣ 10장: 마무리
  • 10.1 기초편 내용 정리
  • 10.2 추가 학습 자료
  • ___10.2.1 유니티
  • ___10.2.2 유니티 ML-Agents
  • ___10.2.3 강화학습
  • 10.3 응용편에서 살펴볼 내용

정오표

  • 160쪽, 예제 코드의 밑에서 2번째 줄

    def write_summray(self, score, loss, epsilon, step):

    ==>

    def write_summary(self, score, loss, epsilon, step):

  • 167쪽, 2번째 예제 코드의 2번째 줄

    def write_summray(self, score, loss, epsilon, step):

    ==>

    def write_summary(self, score, loss, epsilon, step):

  • 172쪽, 맨 아래 예제 코드의 5번째 줄

    agent.write_summray(mean_score, mean_loss, agent.epsilon, step)

    ==>

    agent.write_summary(mean_score, mean_loss, agent.epsilon, step)

  • 188쪽, 첫 번째 예제 코드의 밑에서 2번째 줄

    def write_summray(self, score, actor_loss, critic_loss, step):

    ==>

    def write_summary(self, score, actor_loss, critic_loss, step):

  • 192쪽, 두 번째 예제 코드의 2번째 줄

    def write_summray(self, score, actor_loss, critic_loss, step):

    ==>

    def write_summary(self, score, actor_loss, critic_loss, step):

  • 194쪽, 첫 번째 예제 코드의 밑에서 10번째 줄

    agent.write_summray(mean_score, mean_actor_loss, mean_critic_loss, step)

    ==>

    agent.write_summary(mean_score, mean_actor_loss, mean_critic_loss, step)

  • 196쪽, 첫 번째 예제 코드의 3번째 줄

    agent.write_summray(mean_score, mean_actor_loss, mean_critic_loss, step)

    ==>

    agent.write_summary(mean_score, mean_actor_loss, mean_critic_loss, step)

  • 250쪽, 예제 코드의 밑에서 2번째 줄

    def write_summray(self, score, actor_loss, critic_loss, step):

    ==>

    def write_summary(self, score, actor_loss, critic_loss, step):

  • 254쪽, 첫 번째 예제 코드의 밑에서 4번째 줄

    def write_summray(self, score, actor_loss, critic_loss, step):

    ==>

    def write_summary(self, score, actor_loss, critic_loss, step):

  • 256쪽, 첫 번째 예제 코드의 6번째 줄

    agent.write_summray(mean_score, mean_actor_loss, mean_critic_loss, step)

    ==>

    agent.write_summary(mean_score, mean_actor_loss, mean_critic_loss, step)

  • 257쪽, 세 번째 예제 코드의 밑에서 2번째 줄

    agent.write_summray(mean_score, mean_actor_loss, mean_critic_loss, step)

    ==>

    agent.write_summary(mean_score, mean_actor_loss, mean_critic_loss, step)

  • 292쪽, 첫 번째 예제 코드의 밑에서 2번째 줄

    def write_summray(self, loss, epoch):

    ==>

    def write_summary(self, loss, epoch):

  • 294쪽, 첫 번째 예제 코드의 2번째 줄

    def write_summray(self, loss, epoch):

    ==>

    def write_summary(self, loss, epoch):

  • 295쪽, 예제 코드의 18번째 줄

    agent.write_summray(mean_loss, epoch)

    ==>

    agent.write_summary(mean_loss, epoch)

  • 297쪽, 세 번째 예제 코드의 밑에서 첫 번째 줄

    agent.write_summray(mean_loss, epoch)

    ==>

    agent.write_summary(mean_loss, epoch)

WHERE TO BUY · 정가 20,000원
WHERE TO BUY · 정가 20,000원