따라 하면서 배우는 유니티 ML-Agents

유니티 머신러닝 에이전트를 이용한 딥러닝 강화학습

연구자와 개발자는 유니티 머신러닝 에이전트와 유니티 에디터를 사용해 게임과 시뮬레이션을 만들 수 있다. 간편하게 사용할 수 있는 파이썬 API와 유니티 에디터를 연동해 지능형 에이전트를 머신러닝 기법으로 훈련할 수 있는 환경을 형성할 수 있다.

이 책에서는 강화학습 및 Q학습의 기본기를 다지고, 여러 에이전트가 활동하는 생태계를 구성하고 서로 협력하거나 경쟁하는 심층 재귀형 Q 신경망을 장착한 에이전트들을 작성하는 과정을 알려 준다. 강화학습의 기본기를 다지는 일부터 문제를 푸는 데 응용하는 방법, 나아가 파이썬과 케라스 및 텐서플로를 사용해 스스로 학습하는 고급 신경망을 구축하는 방법도 설명한다. 이를 바탕으로 A3C 학습, 모방 학습 및 커리큘럼 학습 모델을 사용해 신경망을 훈련하는 혁신적인 방법을 배우게 된다.

이 책을 다 익히고 나면 여러분은 여러 에이전트들이 서로 협력하고 경쟁하는 생태계를 구축하는 식으로 더 복잡한 환경을 구성하는 방법을 알 수 있을 것이다.

★ 이 책에서 배우는 내용 ★

  • 게임용 강화학습 및 심층강화학습 모델을 개발한다.
  • 강화학습 및 신경망과 관련된 복잡하고 발전된 개념을 이해한다.
  • 에이전트가 협력하거나 경쟁할 수 있게 개발하는 데 필요한 다양한 훈련 전략을 탐색한다.
  • Q학습에 사용할 아카데미, 에이전트 및 브레인의 기본 스크립트 컴포넌트를 적용한다.
  • 탐욕적 엡실론 탐색과 같은 발전된 학습 전략을 사용해 Q 학습 모델을 개선한다.
  • 케라스로 간단한 신경망을 구현한 다음, 그것을 유니티로 가져와 외부 두뇌로 사용한다.
  • 기존 DQN(심층 Q 신경망)에 LSTM 블록을 보태는 방법을 이해한다.
  • 여러 비동기 에이전트를 빌드한 다음에 훈련 시나리오에 맞춰 실행한다.

★ 주요 특징 ★

  • 유니티로 만든 게임에서 머신러닝 개념을 적용하는 방법을 배울 수 있다.
  • 강화학습 및 Q 학습의 기본 사항을 배워 게임에 적용할 수 있다.
  • 여러 비동기 에이전트를 작성해 훈련 계획에 따라 그것들을 실행하는 방법을 배울 수 있다.

★ 대상 독자 ★

  • 이 책은 머신러닝 알고리즘과 유니티를 연동해 더 나은 게임과 시뮬레이션을 개발하는 데 관심이 있는 개발자에게 필요한 책이다.

마이클 랜햄(Micheal Lanham)

게임, 모바일, 그래픽, 웹, 데스크톱, 엔지니어링, GIS 및 다양한 산업 분야의 머신러닝 응용 프로그램을 비롯한 다양한 소프트웨어를 개발한 경험이 있는, 검증된 소프트웨어 아키텍트이다. 2000년부터 머신러닝을 이용해 일하기 시작했으며 나중에 지형학에서 3차원 배관 검사에 이르기까지 다양한 응용 분야에 다양한 기술을 적용했다. 그는 나중에 유니티에 입문한 이후 유니티 앱 여러 개를 열심히 개발했고, 책을 여러 권 펴냈다.

박진수

다양한 개발, 저술, 번역 경험을 바탕으로 다양한 IT 융복합 사업을 전개하기를 바라며 1인 기업으로 발판을 다지고 있다.

  • ▣ 01장: 머신러닝 및 ML-Agents 소개
    • 머신러닝
      • 훈련 모델
      • 머신러닝 예제
      • 게임에 사용되는 머신러닝
    • ML-Agents
    • 예제 실행
      • 에이전트 브레인 설정
    • 환경 만들기
      • 스크립트 이름 바꾸기
    • Academy, Agent, Brain 컴포넌트
      • Academy 설정
      • Agent 설정
      • Brain 설정
    • 연습문제
    • 요약
    •  
  • ▣ 02장: 밴딧과 강화학습
    • 강화학습
      • 에이전트 구성
    • 상황별 밴딧과 상태
      • 상황별 밴딧 만들기
      • ContextualDecision 스크립트 만들기
      • 에이전트 업데이트
    • 탐색과 이용
      • SimpleDecision을 사용한 의사결정
    • MDP와 벨만 방정식
    • Q 학습 및 연결 에이전트
      • Q 학습 ConnectedDecision 스크립트 살펴보기
    • 연습문제
    • 요약
    •  
  • ▣ 03장: 파이썬을 이용한 심층강화학습
    • 파이썬과 관련 도구 설치
      • 설치
      • 설치 테스트
    • ML-Agent 외부 브레인
      • 환경 실행
    • 신경망 기초
      • 어쨌든 신경망이 하는 일은 무엇인가?
    • 심층 Q 학습
      • 심층 신경망 구축
      • 모델 훈련
      • 텐서 탐색
    • 근위 정책 최적화
      • PPO 구현
      • 텐서보드를 사용한 훈련 통계 이해
    • 연습문제
    • 요약
    •  
  • ▣ 04장: 더 깊은 딥러닝 속으로
    • 에이전트 훈련 문제
      • 훈련이 잘못되었을 때
    • 합성곱 신경망
    • 경험 재연
      • 경험을 바탕으로 빌드하기
    • 부분 관측성, 메모리, 순환 신경망
      • 부분 관측성
      • 기억과 순환 신경망
    • 비동기 연기자-비평가 훈련
      • 다중 비동기 에이전트 훈련
    • 연습문제
    • 요약
    •  
  • ▣ 05장: 게임하기
    • 다중 에이전트 환경
    • 적대적 자체 플레이
      • 내부 브레인 사용
      • 훈련된 브레인을 내부적으로 사용하기
    • 결정 및 주문형 결정
      • 통통 튀는 바나나
    • 모방 학습
      • 복제 행동 훈련기 설정
    • 커리큘럼 학습
    • 연습문제
    • 요약
    •  
  • ▣ 06장: 다시 만들어 보는 테라리엄 - 다중 에이전트 생태계
    • 테라리엄이란?
      • 에이전트 생태계 구축
      • 유니티 애셋 가져오기
      • 환경 구축
    • 기본 테라리엄: 식물과 초식 동물
      • 구조를 기다리는 초식 동물
      • 초식 동물 구축
      • 초식 동물 훈련
    • 육식 동물: 사냥꾼
      • 육식 동물 구축
      • 육식 동물 훈련
    • 다음 단계들
    • 연습문제
    • 요약
  • 63쪽, 코드에서 닫는 괄호 위치 수정

     + learningRate 
     * (reward + gamma * Q[state].Max()) 
     - Q[lastState][lastAction]; 
    

    ==>

     + learningRate 
     * (reward + gamma * Q[state].Max() 
     - Q[lastState][lastAction]);