데이터ㆍAI 시스템 아키텍트를 위한 실무 가이드
42,000원
중급
도서 소개
유니티를 이용하여 직접 게임을 제작하고 ML-Agents로 강화학습 환경을 구성해 보자!
유니티 ML-Agents는 게임 엔진인 유니티를 통해 제작한 시뮬레이션 환경을 강화학습을 위한 환경으로 만들어주는 고마운 도구이다. ML-Agents를 통해 많은 개발자, 연구자들이 원하는 강화학습 환경을 직접 만들 수 있게 되면서 ML-Agents는 학술적, 산업적으로 강화학습의 사용에 있어 중요한 도구가 되었다. 하지만 아직까지도 ML-Agents, 그중에서도 특히 ML-Agents 2.0 이후의 버전을 다루는 참고 자료가 많지 않기 때문에 ML-Agents를 사용하는 데 어려움이 많았다.
이 책은 2022년에 출간된 《파이토치와 유니티 ML-Agents로 배우는 강화학습》의 후속편으로 더욱 깊이 있는 강화학습에 대한 이론과 코드, 이를 위한 환경 제작 방법 등을 다루고 있다.
★ 이 책에서 다루는 내용 ★
- 응용 강화학습 환경 제작: 닷지, 퐁, 방탈출, 메이즈, 투 미션
- 응용 강화학습 알고리즘과 이를 응용하기 위한 기법들의 이론 및 학습 코드 구현: PPO, Attention,RND, MA-POCA, HyperNetworks
- 분산 학습, 커리큘럼 학습, 가변 입력 환경, 자가 학습, 멀티에이전트, 어려운 탐험 환경, 다중 골 환경 등 ML-Agents를 이용한 다양한 학습 방법 제공
- Python API와 mlagents-learn을 통한 응용 강화학습 알고리즘 설정 및 학습 방법
도서 소개

저자 소개
민규식 (kyushikmin@gmail.com)
한양대학교 미래자동차공학과에서 박사학위를 취득했으며 현재 카카오에서 AI 엔지니어로 일하고 있다. 강화학습 관련 페이스북 그룹인 Reinforcement Learning Korea의 운영진으로 활동하고 있으며 유니티 코리아에서 공인한 유니티 전문가 그룹인 Unity Masters 3~5기로 활동했다.
이현호 (ramanuzann@gmail.com)
응용수학 및 컴퓨터공학을 전공하였고, ML을 통해 문제들을 해결하는 일을 해왔다. 현재 삼성전자에서 LLMOps 구축 업무를 수행하고 있다.
박유민 (qkrdbals1630@gmail.com)
경희대학교 컴퓨터공학과에서 박사학위를 취득했으며 현재 버지니아 공대에서 박사후연구원으로 일하고 있다. 주 연구 분야는 네트워크 도메인에서 머신러닝을 활용한 통신 자원 최적화이다.
목차
- ▣ 00장: 유니티와 ML-Agents 설치하기
- 유니티와 ML-Agents 설치하기
- __유니티 허브 다운로드 및 설치
- __유니티 라이선스 활성화
- __유니티 에디터 설치
- ML-Agents 설치
- __ML-Agents 파일 내려받기
- __유니티에 ML-Agents 설치하기
- __ML-Agents 파이썬 패키지 설치하기
- ▣ 01장: 유니티와 ML-Agents 설치하기
- 1.1 프로젝트 시작하기
- 1.2 닷지 환경 구성하기
- 1.3 스크립트 작성하기
- __1.3.1 스크립트 파일 생성 및 설정
- __1.3.2 DodgeScene 스크립트
- __1.3.3 BallScript 스크립트
- __1.3.4 Area 스크립트
- __1.3.5 DodgeAgent 스크립트
- 1.4 닷지 환경 설정 및 환경 빌드
- ▣ 02장: Proximal Policy Optimization (PPO)
- 2.1 PPO 알고리즘의 개요
- 2.2 PPO 알고리즘의 이론
- __2.2.1 PPO 알고리즘의 목적함수
- __2.2.2 PPO의 분산학습
- __2.2.3 PPO의 네트워크 구조
- __2.2.4 PPO 알고리즘의 학습
- __2.2.5 PPO 알고리즘의 성능
- 2.3 PPO 코드
- __2.3.1 라이브러리 불러오기
- __2.3.2 파라미터 값 설정
- __2.3.3 Model 클래스
- __2.3.4 Agent 클래스
- __2.3.5 Main 함수
- __2.3.6 학습 결과
- 2.4 mlagents-learn (파라미터 랜덤화)
- 2.5 커리큘럼 학습
- __2.5.1 mlagents-learn을 이용한 커리큘럼 학습
- __2.5.2 Python-API를 이용한 커리큘럼 학습
- ▣ 03장: 가변적인 입력 환경과 어텐션
- 3.1 가변적인 입력 환경의 개요
- 3.2 닷지 환경 수정(가변적인 입력 환경)
- 3.3 어텐션 기법의 이론
- __3.3.1 멀티 헤드 어텐션
- __3.3.2 강화학습에서 어텐션의 적용
- 3.4 어텐션 PPO 코드
- __3.4.1 라이브러리 불러오기
- __3.4.2 파라미터 값 설정
- __3.4.3 Model 클래스
- __3.4.4 Agent 클래스
- __3.4.5 Main 함수
- __3.4.6 학습 결과
- ▣ 04장: 퐁 환경 만들기
- 4.1 프로젝트 시작하기
- 4.2 퐁 환경 구성하기
- 4.3 스크립트 작성하기
- __4.3.1 스크립트 파일 생성
- __4.3.2 PongAgent 스크립트
- __4.3.3 EnvController 스크립트
- 4.4 퐁 환경 설정 및 환경 빌드
- ▣ 05장: 적대적 강화학습
- 5.1 적대적 강화학습 개요
- 5.2 적대적 PPO 코드
- __5.2.1 라이브러리 불러오기
- __5.2.2 파라미터 값 설정
- __5.2.3 Model 클래스
- __5.2.4 Agent 클래스
- __5.2.5 Main 함수
- __5.2.6 학습 결과
- 5.3 mlagents-learn(적대적 강화학습)
- ▣ 06장: 방탈출 환경 만들기
- 6.1 프로젝트 시작하기
- 6.2 방탈출 환경 구성하기
- 6.3 스크립트 작성하기
- __6.3.1 스크립트 파일 생성
- __6.3.2 EnvController 스크립트
- __6.3.3 BlockAgent 스크립트
- 6.4 방탈출 환경 설정 및 환경 빌드
- ▣ 07장: MA-POCA
- 7.1 COMA 알고리즘의 이론
- __7.1.1 COMA 알고리즘 개요
- __7.1.2 중앙화 크리틱, 탈중앙화 액터
- __7.1.3 반사실적 베이스라인
- __7.1.4 COMA 논문의 결과
- 7.2 MA-POCA 알고리즘의 이론
- __7.2.1 MA-POCA 알고리즘 개요
- __7.2.2 MA-POCA의 가치함수
- __7.2.3 MA-POCA의 반사실적 베이스라인
- __7.2.4 MA-POCA 논문의 결과
- 7.3 MA-POCA 코드
- __7.4.1 라이브러리 불러오기
- __7.4.2 파라미터 값 설정
- __7.4.3 Model 클래스
- __7.4.4 Agent 클래스
- __7.4.5 Main 함수
- __7.4.6 학습 결과
- 7.4 mlagents-learn(MA-POCA)
- ▣ 08장: 메이즈 환경 만들기
- 8.1 프로젝트 시작하기
- 8.2 메이즈 환경 구성하기
- 8.3 스크립트 작성하기
- __8.3.1. 스크립트 파일 생성
- __8.3.2. HardExplorationAgent 스크립트
- 8.4 메이즈 환경 설정 및 빌드하기
- ▣ 09장: Random Network Distillation
- 9.1 RND 알고리즘의 개요
- 9.2 RND 알고리즘의 기법
- 9.3 RND 알고리즘 구현
- 9.4 RND 코드
- __9.4.1 라이브러리 불러오기 및 파라미터 값 설정하기
- __9.4.2 Model 클래스
- __9.4.3 RMS 클래스
- __9.4.4 Agent 클래스
- __9.4.5 Main 함수
- __9.4.6 학습 결과
- 9.5 mlagents-learn(RND)
- ▣ 10장: 투 미션 환경 만들기
- 10.1 프로젝트 시작하기
- 10.2 투 미션 환경 구성하기
- 10.3 스크립트 작성하기
- __10.3.1 스크립트 파일 생성
- __10.3.2 TwoMissionAgent 스크립트
- __10.3.3 TwoMissionEnvController 스크립트
- __10.3.4 TwoMissionGoalDetect 스크립트
- 10.4 투 미션 환경 설정 및 빌드하기
- ▣ 11장: Hypernetworks
- 11.1 Hypernetworks 알고리즘의 개요
- 11.2 Hypernetworks 알고리즘의 기법
- 11.3 Hypernetworks 코드
- __11.3.1 라이브러리 불러오기 및 파라미터 값 설정
- __11.3.2 Model 클래스
- __11.3.3 Agent 클래스
- __11.3.4 Main 함수
- __11.3.5 학습 결과
- 11.4 mlagents-learn(HyperNetworks)
- ▣ 12장: 마무리
- 12.1 응용편 내용 정리
- 12.2 책에서 다루지 않은 내용
- __12.2.1 순환 신경망
- __12.2.2 Soft Actor Critic
- 12.3 유니티 머신러닝 에이전트 적용 사례
- __12.3.1 자율주행 연구 환경 구축 사례
- __12.3.2 머신러닝 에이전트를 이용한 유튜브 사례
- __12.3.3 산업 문제에 머신러닝 에이전트를 적용한 사례
- __12.3.4 상용 게임에 머신러닝 에이전트를 적용한 사례