Unity를 통해 3D 공간 설계에 집중한 프로젝트를 진행하고 있습니다.
머신 러닝을 사용하는 Ml_Agent 강화학습을 활용하여
나비 오브젝트가 특정 오브젝트 주위를 맴도는 학습 AI를 제작하려고 합니다.
머신 러닝이란 명시적인 프로그램 없이 컴퓨터가 스스로 배우는 능력을 연구하는 분야를 뜻합니다.
Ml-Agent는 Machine Learning Agent의 약어로
Unity에서 머신러닝을 간단하게 수행시킬 수 있는 도구입니다.
ML Agent의 주요 구성 요소와 개념은 다음과 같습니다:
- 에이전트(Agent): ML Agent의 핵심이며 의사 결정을 내리고 행동하는 주체입니다. 강화학습에서는 에이전트가 환경과 상호 작용하며 경험을 통해 학습합니다.
- 환경(Environment): 에이전트가 상호 작용하는 외부 시스템 또는 상황을 나타냅니다. 환경은 에이전트의 행동에 의해 변하며 보상을 제공합니다.
- 행동(Action): 에이전트가 환경에서 취할 수 있는 행동들을 나타냅니다. 이 행동들은 학습을 통해 조절되며 최적의 행동을 찾는 것이 목표입니다.
- 보상(Reward): 에이전트가 특정 행동을 취했을 때 받는 피드백으로, 학습의 주요 동기부여 요소 중 하나입니다. 목표는 누적 보상을 최대화하는 것입니다.
- 학습 알고리즘(Learning Algorithm): ML Agent가 경험을 통해 학습하는 데 사용되는 특정 기계 학습 알고리즘을 의미합니다. 예를 들어, 강화학습에서는 Q-Learning, DQN, Policy Gradient 등이 사용될 수 있습니다.
- 정책(Policy): 상태에 대한 행동을 결정하는 전략 또는 규칙을 나타냅니다. 에이전트는 학습을 통해 최적의 정책을 찾아가려고 노력합니다
ML-Agent 툴은 학습 알고리즘이 Python을 통해 미리 준비되어있어
Unity 환경에서 Enviorment와 Action 그리고 Reward를 설정하는 것만으로 강화 학습을 시도할 수 있습니다.
이번 프로젝트 MeetAgain에서 구현할 AI는 강화학습(Reinforcement Learning)입니다.
강화학습의 과정은 Episode로 진행됩니다.
1. Episode가 시작된다
2. Enviorment가 무작위로 설정된다.
3. Agent는 Policy에 따라 Action을 취한다
4. Action에 따라 Reward를 +하거나 -한다. (Agent의 Policy에 기반한 Action이 개발자의 목표와 가까울수록 Reward 상승)
5. Reward에 따라 Policy를 수정한다.
6. Episode가 끝난다.
이러한 Episode를 무수히 많이 반복하여 Policy(정책)을 추출하는 것이
강화학습의 목표이며, Ml-Agent를 통해 얻어야 하는 것입니다.
Ml-Agent를 시작하기 위해선
Python과 Git, GitBash의 기초 지식을 요구합니다.
아래는 Windows환경에서 Ml-Agent를 사용(설치)하기 위한 과정입니다.
1. 알맞는 Version의 Python을 설치합니다. (저는 2023.12.18 기준 Python 3.10.10 버전을 설치했습니다.)
https://www.python.org/downloads/windows/
Python Releases for Windows
The official home of the Python Programming Language
www.python.org
알맞는 버전을 찾는 방법은 Ml-Agent Git의 프로젝트 설명을 찾아보시면 됩니다.
제 경우에는 최신 버전의 Python으로 GitBash에서 Ml-Agent를 설치하려다 실패하고
Exception 안내 문구에 따라 3.10 버전을 설치했습니다.
2. Git Bash를 활용하여 Ml-Agent의 Git 프로젝트를 Clone합니다.
https://github.com/Unity-Technologies/ml-agents
GitHub - Unity-Technologies/ml-agents: The Unity Machine Learning Agents Toolkit (ML-Agents) is an open-source project that enab
The Unity Machine Learning Agents Toolkit (ML-Agents) is an open-source project that enables games and simulations to serve as environments for training intelligent agents using deep reinforcement ...
github.com
cd /your/own/directory
$ git clone https://github.com/Unity-Technologies/ml-agents.git
3. pytorch를 설치합니다.
PyTorch는 Python 언어로 구성된 딥러닝 프레임워크입니다.
GPU 가속을 사용하기 위해 GPU버전을 설치하는 것을 추천하지만, 여의치 않다면 CPU 버전을 사용하셔도 됩니다.
현재 사용하고있는 그래픽카드의 코어 사양(Compute Platform)을 확인후 설치합니다.
저는 GPU버전을 설치니다.
PyTorch
pytorch.org
https://mithumbsup.tistory.com/13
window PyTorch 설치하기
PyTorch - 페이스북 인공지능 연구팀에서 개발한 파이썬(Python) 프로그래밍 언어 기반의 딥러닝 프레임워크 [ 출처 : PyTorch 공식 홈페이지 설치방법 ] - Start Locally Documentaiton 링크 : [ https://pytorch.org/ge
mithumbsup.tistory.com
4. ml-agents-envs를 설치합니다.
cd /your/own/directory/ml-agents
$ pip install -e ./ml-agents-envs/
5. ml-agents를 설치합니다. (반드시 ml-agents-envs를 먼저 설치해야합니다.)
cd /your/own/directory/ml-agents
$ pip install -e ./ml-agents
6. git bash에서 mlagents-learn --help를 입력하여, 설치가 제대로 되었는지 확인합니다.
7. Unity 프로젝트로 돌아와 Unity Package Manager를 통해 ML Agent를 설치합니다.
가장 확실한 방법은 Git Bash를 통해 Clone한 ml-agent 폴더의 package.json 파일을 활용하여 설치하는 것이지만,
현재 Package Manager에 업로드 돼있는 ML-Agent가 호환이 문제없이 가능하기 때문에
이를 통해 Ml-Agent를 설치하는 것을 추천합니다.
이제 준비가 거의 끝났습니다.
다음 포스팅에서 Ml-Agent의 사용 방법에 대해 작성하겠습니다.
'개발 프로젝트 > Unity - Individual Museum' 카테고리의 다른 글
Unity 강화 학습 ML-Agent(4) - Chase AI (0) | 2024.01.02 |
---|---|
Unity 강화 학습 ML-Agent (3) - GitBash로 학습 진행 (0) | 2023.12.27 |
Unity 강화학습 ML-Agent (2) - Agent 클래스와 딥러닝 구조 (1) | 2023.12.26 |