본문 바로가기
유니티/mlAgents

유니티 머신러닝 개발 ML Agents 1편 유니티에 ML연동과 학습된 데이터로 예제 실행

by NGVI 2021. 4. 1.

유니티 머신러닝 개발 ML Agents 1편 유니티에 ML연동과 학습된 데이터로 예제 실행

개인적으로 인공지능 관련 자료를 찻아보다. 사진분석, 표분석등을 걸쳐, 유니니를 통한 강화학습에 대한 정보를 얻게 되었고, 흥미가 생겨서 해보기로 했다.

 

하루정도 다양한 자료, 블로그, 유툽등을 뒤져보며, 이것저것 해보았다.

 

그리고 느낀건

정상적이지 않은 자료가 너무 많다는 것,

너무 오래된 자료

-ML이 버전이 올라가면 소용 없고, 설치하는 방식이 달라져 버리거나 하여 무쓸모 된 자료들

 

완전 틀린자료

-그냥 헛소리 적어둔 것

 

알지도 못하면서 대충 적은자료

-그냥 조회수 빨아서 돈벌려고 대충 적어둔것

-아는척이 해보고 싶었거나

 

공개시켜둔 소스가 실제로는 구동안됨

-다양한 애러가 있다던지

 

불친절한 설명

-명령이 치면 된다. 그냥해라

이런거는 별루 도움이 안된 이게 뭐인지 정도 살짝이라도 알려줘야지

실제로는 자기도 모르는데 치면 되더라는 식의 이해라 그런거 같다.

 

이런 가짜자료들을 피하고 피해서 결국 ML Agent 구동에 성공했고, 그 이야기를 좀 정리해보려한다.

 

먼저

내가 구동에 성공한 버전은 Unity ML-Agents Release 8 이다.

현재 ml github 페이지에 release 버전중 공개된 버전중 제일 오래된 것이며, 현제는 Release15 까지 존재한다.

아마 같이 공개되어 있는걸로 봐선 사용방식의 거의 유사할 것이라고 본다.

하지만 내가 한건 Release 8 버전이다. 

 

Unity ML-Agents 예제들을 돌려보기위해서는 크게 다음과 같은 과정이 존재한다.

 

유니티 설치

유니티와 ML 연동

파이선 세팅

강화학습프로그램 구둥

유니티로 강화학습 프로그램을 통해 강화학습

강화학습한 데이터를 유니티에서 구동해봄

 

먼저 유니티 설치는 설명하지 않는다.

다만 구동환경은 남긴다.

2021.1.0f1로 구동했고 정상작동 되었다.

 

요녀석으로 함

유니티와 ML 연동

ml-agents의 소스주소는 아래와 같다.

github.com/Unity-Technologies/ml-agents

 

해당 페이지를 꼭 보려 가실 필요는 없다.

귀찮으신 분들을 위해 해당 페이지에 가능한 정보를 링크해둘 예정이다.

 

ml-agents 깃

쭉 내려보면 설명이 많다.

 

내리다 되면 릴리즈 버전정보가 나온다.

release 8을 사용할 계획이다.

download를 받는다.

겁나 귀찮으신 분들을 위해서 여기에도 링크해 둔다.

github.com/Unity-Technologies/ml-agents/archive/release_8.zip

 

그리고 docs도 열어둔다.

또 겁나 귀찮으신 분들의 위해서 여기에도 링크해 둔다.

github.com/Unity-Technologies/ml-agents/blob/release_8_docs/docs/Readme.md

 

릴리즈8을 다운로드 받으면

ml-agents-release_8.zip 파일이 내려온다. 용량은 140매가 정도

 

그리곤 일단 ml 코드를 테스트할 폴더를 하나 만들자.

 

나의 경우는 mltest 라고 만들겠다.

d:\mltest

 

해당 폴더에 압축을 풀어준다.

압축을 풀린 폴더 정보를 올릴테니 비교해 보자.

 

요런식으로 폴더 구성

여기까지 하고, 실제 유니티 프로젝트를 만들기로 한다.

 

유니티 허브에서 프로젝트 새로 생성

프로젝트 생성

프로젝트 생성

만들어두었던 폴더를 저장위치로 두고

프로젝트 이름은 적당히 mlagent로 했다.

 

꼭 저 위치, 저 이름일 필요는 없다.

일단은 같이 따라 만들어 보시고, 성공하시면 이후 다시 본인들이 원하는 방법으로 재구성하도록 하자.

 

여기서 설명 안들으면 절때 못하는 부분이 나온다.

ml 유니티 패키지 설치

유니티 패키지를 1.5버전을 꼭 깔아줘야 한다.

이 1.5 패키지를 어떻게 까나면

먼저 패키지 메니저를 연다.

 

메뉴에서 window->Package Manager다.

패키지 메니저를 연다.

이후 패키지메니저가 열리면 왼쪽 좌측 + 아이콘을 눌려준다.

그리고 add package from disk...

을 선택해줘야 한다.

add package from disk...

그리고 우리가 다운받은 자료에서 다음 폴더에 있는 패키지를 선택 설치해줘야 한다.

이걸 반드시 설치해줘야 함.

 

요게 마켓에 등록되어 있는 패키지가 있는데, 버전이 다르다.

배포자료에 포함된 패키지를 반드시 설치해줘야 한다.

 

설치가 완료되면 다음과 같은 방법으로 확인이 가능하다.

패키지 메니져를 통한 확인, 현재 깔린 버전이 1.5

Procjet 창에서도 파일이 들어온걸 확인할 수 있다.

들어온 파일

참고로 현재까지 콘솔창에서 발견된 애러는 없어야 한다.

에러 없음

ml 에셋 옮겨주기

이후 

D:\mltest\ml-agents-release_8\Project\Assets\ML-Agents 폴더를

우리 유니티 프로젝트 Assets 폴더 아래로 복사해야 한다.

 

이놈을 
여기로

난 드래그 드랍을 이용해서 유니티로 바로 부었다.

 

완료후의 구성

콘솔 에러 없는 상태

 

여기까지 하면 기본 테스트 예제들은 돌려볼수 있는 상태가 되었다.

 

PushBlock 예제 실행해 보기

PushBlock 예제 실행해 보기

해당 씬을 열어보도록 하자.

 

다음과 같은 화면이 뜬다.

먼가 될것 같은 이 기분

 

PushBlock

많은 Area 가 존재하는데,

 

아래 정보는 부정확할수 있다. 적당히 이해한 내용을 적은거라서, 하지만 실행되니까 해보시라.

 

처음 Area가 강화학습된 데이터로 플레이 하는 녀석

 

이외의 Area는 강화학습을 하는 녀석들이다.

우리는 아직 강화학습을 시킬수 있는 프로그램을 설치하지 못했다.

-파이선으로 구동시켜야 하는 강화학습 프로그램

 

그러므로, Area 이외의 Area(1)~Area(31)은 비활성화 시켜 주도록 한다.

 

다음과 같이 비활성화 시킨다.

설명과 같이 Area를 제외한 학습장을 모두 비활성화 시킨다.

그럼 하나가 남는다.

 

이제 플레이 해보도록 한다.

잘 실행됨

이미 선행학습한 데이터로 벽돌을 야무지게 옮기는 모습을 볼 수 있다.

 

여기가지가 일단 유니티에 ml프로젝트를 연동시켜 테스트 해본 단계

이후에는 실제 강화학습 프로그램을 외부에서 돌리고, 유니티를 동해 학습을 시키고, 그 학습한 데이터를 저장시켜 유니티로 가져와 잘 학습이 되었나를 봐야한다.

 

다음편이 존재한다면

 

이제는 강화학습프로그램 구동에 대한 내용이 될 것이다.

댓글