책소개
유니티를 이용하여 직접 게임을 제작하고 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에 대한 내용을 다루고 있다.
목차
▣ 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-Agents2.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 응용편에서 살펴볼 내용