Unity/In It Together

유니티 코리아 ML-Agents 튜토리얼 공개 및 제작 후기!

pnltoen 2022. 8. 27.
반응형

ML-Agents Tutorials

Unity Technologies Korea


 

튜토리얼 제작

2022년 1월 유니티코리아에 입사할 때, 내세운 포부 중 하나가 ML-Agents 튜토리얼 제작이였습니다.

이 후 3월 경 부터 제작에 돌입해서 4월 1일에 최종적으로 완성하였습니다.

이 후 패키지 업데이트 일정과 맞춰서 업로드를 하고자 나중에 마켓팅 팀과 협의 후 올려야지~ 하던게 벌써 약 5개월이 다 지나갔네요... 중간중간 봄 옷 입고 찍은 제 모습을 보는데 시간도 빨리 지나간 것 같고, 그 사이에 성장한 것 같아서 기쁩니다 ㅎ.ㅎ

 

튜토리얼 공개

 

 

 

 

각각의 링크를 첨부하였습니다. 보다 많고 다양한 정보를 얻고 싶으시다면 유니티코리아 유튜브 채널을 확인해주시면 감사하겠습니다.

 

ML-Agents 튜토리얼 개요


무엇을 중점으로 튜토리얼을 제작하였는지 정리하도록 하겠습니다. 튜토리얼은 다음과 같이 3편으로 각 30~40분 총 1시간 30분 분량입니다.

 

#1 ML-Agents 설치 및 예제환경 정복하기

 

유니티의 최대 강점은 단순하게 하나의 패키지가 아닙니다. 다양한 패키지와의 호환성 및 여러 패키지를 사용하여 다양한 프로젝트를 진행할 수 있다는 점이 가장 큰 장점이라고 생각됩니다. 그러한 측면에서 때때로는 연동되는 소프트웨어 (예 : ROS)와의 호환성을 고려하여, Windows가 아닌 다른 OS에서 유니티를 사용해야할 경우가 있습니다.

이를 고려해서, Windows -> MAC -> Ubuntu 20.04에서 ML-Agents를 설치하는 영상을 제작하였습니다.

특히 이 부분에서 Ubuntu의 경우, Unity HUB가 나오기 이전 설치가 매우 까다로웠는데 (특정 버전이 설치안되는 문제)
해당 부분을 많은 분들이 겪으실 것 같아서 해결 방법 제시 등 유저분들께서 편하게 느끼실 수 있도록 진행하였습니다.

 

이 후 이전의 저도 그랬고 많은 분들이 예제를 실행하는 방법을 잘모르시는 것 같아 예제 사용 방법에 대해서 다뤘습니다.

#2 ML-Agents 에이전트 행동 & 관측  설정하기

 

ML-Agents에서 에이전트가 어떻게 행동을 할 것 인지, Discrete, Discrete Branch, Continuous 이렇게 나누어서 진행하였습니다.

관측의 경우에는 수치적 관측, 시각적 관측, 센서 이렇게 3개로 나누어서 진행하였고 최대한 시각적 관측을 사용하지 않고 진행하는 것을 권장하였습니다. 이 후 수치적 관측 AddObservation 을 설명하고 가장 대표적인 센서인 RayCastSensor를 설명하였습니다.

 

 

센서 부분에서 Grid Sensor를 추가적으로 설명해달라고 말씀해주시는 댓글이 남겨졌는데 이 부분은 8월 라이브에서 다룰 예정입니다.

 

#3 ML-Agents 에피소드 조건부터 하이퍼 파라미터 설정까지

 

에피소드의 조건이란 어느 시기에  환경을 초기화 할 것인지와 관련이 있습니다.

이와 관련해서 환경을 초기화 하는 방법 2가지 Unity의 SceneManager를 이용하는 방법과, OnEpisodeBeing()의 차이점 및 장점을 설명하고, 일반적으로 어떠한 상황에서 환경을 초기화 하는지에 대해 설명하였습니다. 이에 대한 고찰은 이전에 남긴 포스팅이 있으니 아래의 포스팅을 확인해주시면 감사하겠습니다

2022.06.30 - [Unity/Unity ML-Agents] - 유니티 ML-Agents Episode 종료 및 시작에 대한 고찰

 

유니티 ML-Agents Episode 종료 및 시작에 대한 고찰

Unity ML-Agents Episode 종료 및 시작에 대한 고찰 ML-Agents는 강화학습을 위해 에이전트가 행동을 통해 에피소드를 진행하고, 특정 조건이 되면 종료 되면서 학습을 진행합니다. 이를 위해 제가 사용하

pnltoen.tistory.com

 

이 후 자연스럽게 초기화 즉 조건에 맞춰서 보상함수를 추가하는 방법인 Addreward와 Setreward에 대해서 소개하고 마지막으로 가장 난해한... 하이퍼 파라미터 튜닝에 대해서 소개하였습니다. 사실 이 경우에 대해서는 이전에 끊긴 학습을 이어서 진행하는 방법 (다른 하이퍼 파라미터로), onnx 및 파일 정리 그리고 여러 내용이 많지만.... 해당 내용은 모두 너무 고급 버진이고 튜토리얼의 길이가 너무 늘어날 것 같아서 모두 제외하고 진행하였습니다.

 

끝 맺음

 

처음으로 타임라인을 새겨주신 분이 계셨습니다....!

시청자들이 타임라인을 새겨주는걸 항상 다른 유튜버의 영상에서만 봤는데 누군가가 제가 만든 영상에 타임라인을 넣어주었다는 사실이 되게 감동이네요...

 

 

사실 Reinforcement Learning 관점에서 작성된 튜토리얼은 절대 아니고....! 순전히 기존 게임 그리고 비게임 즉 산업 분야에서 유니티 사용을 고려하고 계신 분들께 올바른 정보를 제공해드리고자 시작하게된 프로젝트였습니다.

최소한의 ML-Agents 개념 그리고 사용법은 충분하게 터득하실 수 있을 것으로 생각합니다. 만약 더 높은 강화학습 수준의 강의를 듣고 싶으시다면 주저하지 말고 인프런 - 유니티 머신러닝 에이전트 완전정복 (기초편)으로 넘어가시길 바랍니다.

 

유니티 머신러닝 에이전트 완전정복 (기초편) - 인프런 | 강의

이 강의를 통해 수강생은 다양한 강화학습의 이론을 학습하고 이를 직접 구현해 볼 뿐만 아니라 유니티 머신러닝 에이전트를 이용하여 구현한 강화학습 알고리즘을 테스트해볼 강화학습 환경

www.inflearn.com

 

참고로 내돈내산이고 저는 일전에 이미 완강하였습니다.

 

 

이번 튜토리얼이 많은 분들께 도움이 되셨기를 바라며, 앞으로도 좋은 컨텐츠 많이 만들도록 하겠습니다. 감사합니다!

반응형

댓글