파이토치와 유니티 ML-Agents로 배우는 강화학습(응용편)
Description
유니티를 이용하여 직접 게임을 제작하고 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을 통한 응용 강화학습 알고리즘 설정 및 학습 방법
저자

민규식,이현호,박유민

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

목차

▣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.2DodgeScene스크립트
__1.3.3BallScript스크립트
__1.3.4Area스크립트
__1.3.5DodgeAgent스크립트
1.4닷지환경설정및환경빌드

▣02장:ProximalPolicyOptimization(PPO)
2.1PPO알고리즘의개요
2.2PPO알고리즘의이론
__2.2.1PPO알고리즘의목적함수
__2.2.2PPO의분산학습
__2.2.3PPO의네트워크구조
__2.2.4PPO알고리즘의학습
__2.2.5PPO알고리즘의성능
2.3PPO코드
__2.3.1라이브러리불러오기
__2.3.2파라미터값설정
__2.3.3Model클래스
__2.3.4Agent클래스
__2.3.5Main함수
__2.3.6학습결과
2.4mlagents-learn(파라미터랜덤화)
2.5커리큘럼학습
__2.5.1mlagents-learn을이용한커리큘럼학습
__2.5.2Python-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.3Model클래스
__3.4.4Agent클래스
__3.4.5Main함수
__3.4.6학습결과

▣04장:퐁환경만들기
4.1프로젝트시작하기
4.2퐁환경구성하기
4.3스크립트작성하기
__4.3.1스크립트파일생성
__4.3.2PongAgent스크립트
__4.3.3EnvController스크립트
4.4퐁환경설정및환경빌드

▣05장:적대적강화학습
5.1적대적강화학습개요
5.2적대적PPO코드
__5.2.1라이브러리불러오기
__5.2.2파라미터값설정
__5.2.3Model클래스
__5.2.4Agent클래스
__5.2.5Main함수
__5.2.6학습결과
5.3mlagents-learn(적대적강화학습)

▣06장:방탈출환경만들기
6.1프로젝트시작하기
6.2방탈출환경구성하기
6.3스크립트작성하기
__6.3.1스크립트파일생성
__6.3.2EnvController스크립트
__6.3.3BlockAgent스크립트
6.4방탈출환경설정및환경빌드

▣07장:MA-POCA
7.1COMA알고리즘의이론
__7.1.1COMA알고리즘개요
__7.1.2중앙화크리틱,탈중앙화액터
__7.1.3반사실적베이스라인
__7.1.4COMA논문의결과
7.2MA-POCA알고리즘의이론
__7.2.1MA-POCA알고리즘개요
__7.2.2MA-POCA의가치함수
__7.2.3MA-POCA의반사실적베이스라인
__7.2.4MA-POCA논문의결과
7.3MA-POCA코드
__7.4.1라이브러리불러오기
__7.4.2파라미터값설정
__7.4.3Model클래스
__7.4.4Agent클래스
__7.4.5Main함수
__7.4.6학습결과
7.4mlagents-learn(MA-POCA)

▣08장:메이즈환경만들기
8.1프로젝트시작하기
8.2메이즈환경구성하기
8.3스크립트작성하기
__8.3.1.스크립트파일생성
__8.3.2.HardExplorationAgent스크립트
8.4메이즈환경설정및빌드하기

▣09장:RandomNetworkDistillation
9.1RND알고리즘의개요
9.2RND알고리즘의기법
9.3RND알고리즘구현
9.4RND코드
__9.4.1라이브러리불러오기및파라미터값설정하기
__9.4.2Model클래스
__9.4.3RMS클래스
__9.4.4Agent클래스
__9.4.5Main함수
__9.4.6학습결과
9.5mlagents-learn(RND)

▣10장:투미션환경만들기
10.1프로젝트시작하기
10.2투미션환경구성하기
10.3스크립트작성하기
__10.3.1스크립트파일생성
__10.3.2TwoMissionAgent스크립트
__10.3.3TwoMissionEnvController스크립트
__10.3.4TwoMissionGoalDetect스크립트
10.4투미션환경설정및빌드하기

▣11장:Hypernetworks
11.1Hypernetworks알고리즘의개요
11.2Hypernetworks알고리즘의기법
11.3Hypernetworks코드
__11.3.1라이브러리불러오기및파라미터값설정
__11.3.2Model클래스
__11.3.3Agent클래스
__11.3.4Main함수
__11.3.5학습결과
11.4mlagents-learn(HyperNetworks)

▣12장:마무리
12.1응용편내용정리
12.2책에서다루지않은내용
__12.2.1순환신경망
__12.2.2SoftActorCritic
12.3유니티머신러닝에이전트적용사례
__12.3.1자율주행연구환경구축사례
__12.3.2머신러닝에이전트를이용한유튜브사례
__12.3.3산업문제에머신러닝에이전트를적용한사례
__12.3.4상용게임에머신러닝에이전트를적용한사례