ML-Agents를 활용한 실전 예제 - MummyBasic(3/3)

MaxStep 설정

Agent에 추가한 MummyAgent의 MaxStep 속성은 에이전트가 한 에피소드(학습단위)내에서 무작위로 액션(이동)을 시도해보는 최대 횟수를 의미한다. 이 횟수동안 액션을 취했지만 아무런 보상이 없다면 더이상 학습의 의미가 없기에 에피소드를 종료하고 다시 시작한다. MaxStep의 수치는 환경의 복잡도에 따라서 가장 적절한 값을 찾아야 한다.

자세히 보기

ML-Agents를 활용한 실전 예제 - MummyBasic(2/3)

에에전트 구성

Agent에 추가할 스크립트를 작성해보자. 프로젝트 뷰의 02.Scripts 폴더에 C# 스크립트를 생성하고 MummyAgent로 스크립트 이름을 지정한다. 강화학습에 있어서 에이전트의 역할은 크게 다음과 같이 정의할 수 있다.

  • 주변 환경을 관측(Observations)
  • 정책에 의한 행동(Actions)
  • 보상(Reward)
자세히 보기

ML-Agents를 활용한 실전 예제 - MummyBasic(1/3)

프로젝트 개요

머신러닝(강화학습)이 처음이거나 막 공부를 시작한 유니티 개발자의 경우 유니티 ML-Agents 패키지를 설치하고나서 샘플 프로젝트를 바로 분석하기란 상당히 어렵다. 따라서, 본 포스팅에서 소개하는 프로젝트는 필자가 진행하는 오프라인 강의 내용으로서 ML-Agents의 기본적인 컴포넌트의 사용법과 훈련방법을 익힐 수 있도록 빈 프로젝트 부터 차근차근 진행하고자 한다.

제작할 프로젝트는 에이전트가 특정 타겟까지 이동해 취득하는 것을 간단한 학습하는 예제이다.

개발 환경설정

프로젝트를 진행하기 이전에 먼저 파이썬과 텐서플로 및 추가적인 파이썬 패키지가 설치되어야 한다. 아직 개발환경이 설정이 되지 않았다면 다음 문서를 참조해 자신에 맞는 개발 환경을 설정하고 진행한다.

자세히 보기

패키지 매니저의 변경사항 in Unity 2020.1


유니티 2020.1 버전에서 많은 변화중 Package Manager는 몇가지 소소한 변화가 있다.

에셋스토어 뷰의 통합

  • 유니티 2020 버전부터는 에셋스토어에서 구매한 에셋들을 Package Manager에서 직접 다운로드 및 임포트할 수 있다.

  • 기존 에셋스토어 뷰(Ctrl+9, Cmd+9)에서는 더 이상 검색 및 다운로드할 수 없으며, 웹 브라우저로 연결되는 버튼을 표시한다. 이는 임베디드 브라우저의 퍼포먼스를 이유로 변경되었다고 한다. 따라서 유니티 2020 버전부터는 일반 웹 브라우저를 통해 에셋을 검색하고 구매해야한다. 구매한 에셋은 유니티 Package Manager의 Packages: 옵션을 My Assets으로 변경해 해당 에셋을 다운로드 할 수 있다.

자세히 보기

Unity Post-Processing Stack

포스트 프로세싱(Post-processing) 이란?

직역한다면 후처리 작업이라고 말할 수 있다. 카메라가 촬영한 영상(이미지)을 스크린에 송출(출력)하기 전에 다양한 필터효과를 적용하는 기술을 말한다. 즉, 카메라로 촬영한 후에 처리한다는 의미에서 붙여진 용어라 볼 수 있으며 다음과 같은 장점을 갖는다.

  • 비주얼 퀄리티을 획기적으로 증가 시킬 수 있다.
  • 현실 세계의 카메라와 필름의 효과를 표현할 수 있다.
자세히 보기

ML-Agent 설치 for macOS

유니티 머신러닝 에이전트(줄여서 ML-Agents)는 머신러닝, 특히 강화학습을 위한 툴킷으로 2017년에 처음 소개됐으며 정식 버전(Release 1)은 2020-04-30에 출시됐다.(2020-05-12 정식발표) 여러 베타 버전을 거치면서 사용법이 초기 버전과는 많이 변경되어 ML-Agents를 공부하는 입장에서는 상당히 곤욕스러웠다.

자세히 보기

유니티 프로젝트 깃허브 연결하기

유니티 프로젝트를 깃허브(Github)로 관리하기 위해 보통 다음과 같은 방법으로 시도한다.

  1. 깃허브 사이트에 리포지토리(원격저장소:remote repository)를 생성하고 로컬에 클론한다.
  2. 해당 폴더를 유니티 프로젝트를 지정하려하지만 해당 폴더에는 .git 폴더와 .gitignore와 같은 히든 파일이 있기 때문에 빈 폴더를 선택하라는 메시지를 보게된다.(프로젝트 생성 실패)
  3. 다른 폴더에 유니티 프로젝트를 생성한 후 서브 폴더의 모든 파일을 복사해 붙여 넣기한다.

무척 번거로운 방법이고 비효율적이다. 따라서 먼저 유니티 프로젝트를 원하는 폴더에 생성하고 다음과 같이 터미널에서 원격 리포지토리에 연결하는 방법이 쉽고 깔끔하다.

자세히 보기