๐ท๋ชฉ์ฐจ
๋จธ์ ๋ฌ๋ ๊ฐ๋ก
๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ถ
๊ฐํํ์ต ํ๊ฒฝ ๊ตฌ์ถ
ํธ๋ ์ด๋ ๋ฐ ํ ์คํธ
๐ท๋จธ์ ๋ฌ๋
๐ถ ๋ช ์์ ์ธ ํ๋ก๊ทธ๋จ ์์ด ์ปดํจํฐ(๊ธฐ๊ณ)๊ฐ ์ค์ค๋ก ๋ฐฐ์ฐ๋(ํ์ตํ๋) ๋ฅ๋ ฅ์ ์ฐ๊ตฌํ๋ ๋ถ์ผ
๐ถ ์ฉ์ด
- ๋ฅ๋ฌ๋ : ๋ด๋ฐ ๊ฐ์ ์ ๊ฒฝ์ธํฌ๋ฅผ ๋ชจ๋ฐฉํด๋ธ ํ์ต๋ถ์ผ
- ๋จธ์ ๋ฌ๋
- ์ธ๊ณต์ง๋ฅ
๐ถ ๋จธ์ ๋ฌ๋์ ๋ถ๋ฅ
- ์ง๋ํ์ต Supervised Learning
- ๋ฏธ๋ฆฌ ์ ๊ณตํ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ํ์ต
- ํธ๋ ์ด๋ ๋ฐ์ดํฐ ์ - ํ์ต์ ์ํ ์๋ฃ์ ์งํฉ
- ๋ ์ด๋ธ - ํธ๋ ์ด๋ ๋ฐ์ดํฐ์ ์ ๋ณด // ๋ต์ ์๋ ค์ค
- ๋น์ง๋ ํ์ต Unsupervised Learning
- ์๋ฌด๋ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง ์๋๋ค.
- ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ฌํด ์ ์ฌ์ฑ(ํน์ง)์ ๊ธฐ์ดํด ๋ถ๋ฅ(Classification)
- ๋ ์ด๋ธ์ด ์ ๊ณต๋์ง ์๊ธฐ์ ๋ฌด์์ธ์ง๋ ์ธ์งํ ์ ์๋ค.
// EX) ๊ธฐ์ฌ ์๋ ๋ถ๋ฅ : ์ ์น, ์ฐ์ ...
// ๋ถ๋ฅ๋ง์ ํจ
- ๊ฐํํ์ต Reinforcement Learning
- ๋ฐ๋ณต ํ๋ จ์ ํตํด ํ๋์ ๋ํ ๋ณด์(+/-)
- ์ฌ๋ฐ๋ฅธ ํด๋ฅผ ๊ตฌํ๋ฉด + ๋ณด์ (Reward)
- ํ๋ฆฐ ํด๋ฅผ ๊ตฌํ๋ฉด - ๋ณด์์ ์ค๋ค
๐ท ML-Agents ์๊ฐ
๐ถ ML-Agents Workflow
์ ๋ํฐ : ํ์ตํ๊ฒฝ ๊ตฌ์ถ <-> ํ์ด์ฌ : Communicator <-> ๋จธ์ ๋ฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(pytorch)
๐ถ ML-Agents ๊ตฌ์กฐ
์ฌ๋ฌ Agent๋ฅผ ๋ . ๊ฐ์ ๋๋(Behavior A)
1. ํธ๋ ์ด๋์ ํ๋ ๊ณผ์
2. Inference ๋ฐฉ์ : ๋ชจ๋ธ(ํธ๋ ์ด๋ํ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ)(.onnx)์ ๊ฐ์ง๊ณ ์ ๋ํฐ์์ ๋๋ ค๋ณด๋ ํ๋์ฒ๋ฆฌ
3. Heuristic ๋ฐฉ์ : ๋ฏธ๋ฆฌ ์ฌ์ฉํด๋ณด๋ ๊ฒ. ๊ฐํํ์ต๋ง์ผ๋ก๋ ๋์ง ์๋ ๋ถ๋ถ. ๋ชจ๋ฐฉํ์ต์ ํ ๋๋ ์ฌ์ฉ
Environment Parameters : ํ์ต์ ๋์ด๋๋ฅผ ์กฐ์
// ์ฒ์์๋ ์ฌ์ด ๋์ด๋ -> ์ด๋ ์ ๋ ํ์ต ํ์๋ ๋์ด๋๋ฅผ ๋์
๐ท ML-Agents ๊ฐ๋ฐ ํ๊ฒฝ
- Unity 2018.4 ์ดํ ๋ฒ์
- Python v3.6, v3.7 - 64bit(x86-64)
- mlagent Pyton ํจํค์ง ์ค์น(CLI)
- ML-Agents Toolkit Repository
- Unity 2020.1.8f1
- Anaconda ๊ฐ๋ฐํ๊ฒฝ์ ์ง์ ์ค๋จ (Deprecated)
๐ท ML-Agents ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ
๐ถ ํ์ด์ฌ ์ค์น
- Downloads > All Releases
- 3.7.9 ๋ฒ์
- Windows x86-64 executable installer ์ค์น
- Add Python _ to PATH ๋ฐ๋์ ์ฒดํฌ
- ๊ธ์์ 260์ ์ ํ ํ๊ธฐ
- ์ฌ๋ถํ ํ git bash ์ด๊ธฐ
- ํ์ด์ฌ ์ค์น ํ์ธ
๐ถ ML Agents ์ค์น
https://github.com/Unity-Technologies/ml-agents
GitHub - Unity-Technologies/ml-agents: Unity Machine Learning Agents Toolkit
Unity Machine Learning Agents Toolkit. Contribute to Unity-Technologies/ml-agents development by creating an account on GitHub.
github.com
- ์์ ์ฃผ์๋ก ์ ์
- Release 18/source > cloneํ๊ธฐ
- git bash์์ clone ์งํ
๐ถ pytorch ์ค์น
- ๋ฐ์ผ๋ก ๋ด๋ ค๊ฐ์ ์์ ๊ฐ์ด ์ค์
- ๊ฐ์๊ธฐ๋ฅ์ด ์๋ GPU๊ฐ ์์ผ๋ฉด CPU๋ก ์ค์
- Command copy
- git bash์ paste
- pip : ํจํค์ง๋ฅผ ์ค์นํด์ฃผ๋ ์ค์น๊ด๋ฆฌ ํด
- ml-agents-envs ์ค์น
- ml-agents ์ค์น
- mlagents ์ ๋ํ ์ฌ์ฉ๋ฒ์ด ๋จ๋ฉด ์ ๋๋ก ์ค์น๊ฐ ๋ ๊ฒ
๐ถ Unity
- ํ๋ก์ ํธ ์์ฑ
- package manager์ ๋ค์ด๊ฐ๋ณด๋ฉด ML Agents๊ฐ 1.0.8 ๋ฒ์ ์
- ๋ค๋ฅธ ๋ฒ์ ์ ์ค์นํด์ผํ๋ฏ๋ก ์์ pip๋ฅผ ์ด์ฉํด ์ค์นํ ml-agents-envs, ml-agents๋ฅผ ์ฌ์ฉํ ๊ฒ
- Add package from disk
- ์์ ์์น์์ packge.jsonํ์ผ์ ์ด์ด ์ค์น
- ML Agents๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํด๋๋ช ๋ฐ ํด๋น ์์น๋ฅผ ๋ฐ๊พธ๋ฉด ์๋จ
- 2๊ฐ๊ฐ ์ค์น๋ ๊ฒ์ ํ์ธ
๐ท ๊ฐ๋จํ ์ค์ต
๐ถ ์ํ์์ ๊ฐ์ ธ์ค๊ธฐ
- ์์ ํด๋๋ฅผ ํ๋ก์ ํธ์ฐฝ์ ๋์ด๋ค๋๊ธฐ
- ์๋ฌ๊ฐ ๋ง์ด ๋ธ
- PushBlockWithInput ์ญ์
- ์๋ฌ ์์ด์ง
๐ถ ์์ (3DBall) ์ด๋ฏธ ํ์ต๋์ด์๋ ๋ชจ๋ธ ์ญ์
- ์์ ์ค 3DBall ์ดํด๋ณผ ์์
- Model : ํ์ต๋ ๋ชจ๋ธ ํ์ผ
- ์ด๋ฏธ ํ์ต๋์ด์๋ ๋ชจ๋ธ์ ์ญ์
- apply to prefab
- playํด๋ณด๋ฉด ํ์ต๋์ด์์ง ์๊ธฐ๋๋ฌธ์ ๊ณต์ ๋ง๊ตฌ ๋จ์ดํธ๋ฆผ
๐ถ ํธ๋ ์ด๋์ํค๊ธฐ
- config์ ํ์ดํผ ํ๋ผ๋ฏธํฐ๊ฐ ๋ค์ด์์
- ํ์ดํผ ํ๋ผ๋ฏธํฐ : ํธ๋ ์ด๋ํ ๋ ์ธ๋ถ์ ์ผ๋ก ์ธํ ํ๋ ์ธํ ๊ฐ๋ค
- ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ ์ด๋ฆ๋ค (imitation, poca...)
- ppo ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๊ธฐ ์ํด ํด๋น ํด๋๋ก ์ง์
- ํ์ตํ ๋ชจ๋ธํ์ผ๋ช : 3DBall01๋ก ์ง์
- 3DBall ํ์ต ์คํ
- ์ ๋ํฐ์์ play
- 12000๋ฒ ๋์๋ค. 45.613์ด ๊ฑธ๋ฆผ. ํ๊ท ๋ฆฌ์๋, ํ์คํธ์ฐจ
- ์ ๋ํฐ ์ ์ง ํ bash๋ฅผ ๋ณด๋ฉด
- ํด๋น ํ์ต ๊ฒฐ๊ณผ๊ฐ ์์ ๊ฐ์ ๊ฒฝ๋ก์ ์ ์ฅ์ด ๋จ
- ์ฒ์๋ถํฐ ํธ๋ ์ด๋์ ๋ค์ ์์ํ๊ธฐ๋ ์๊น์ -> resume ์ฌ์ฉ
- ๋ฉ์ถ ๊ณณ๋ถํฐ ๋ค์ ํธ๋ ์ด๋ ์์
- ppo ํด๋ ์์ results ํด๋๊ฐ ์์ฑ๋์
- results/3DBall01 ์์ ํ์ต๋ ๋ชจ๋ธ์ด ์์(ํ์ฅ์๋ช .onnx)
- results ํด๋๊ฐ ์๋ ppoํด๋์์ ์์ ๋ช ๋ น์ด ์ ๋ ฅ
- ๋งจ ์๋์ค์ ์ ํ์๋ ์ฃผ์๋ก ์ด๋
- ์ฃผ์ : Ctrl C๋ก ๋ณต์ฌํ ์์๋ ์ ์์ด ๋๊ธฐ๊ธฐ๋๋ฌธ์ ๋ง์ฐ์ค ์ฐํด๋ฆญ์ผ๋ก ๋ณต์ฌํ ๊ฒ
- ํด๋น ์ฃผ์๋ก ์ ์ํ๋ฉด TensorBaord ํ์ด์ง๊ฐ ๋ธ
- TensorBoard : ํ์ต์ํจ ๋ชจ๋ธ์ ๋ชจ๋ํฐ๋งํ๋ ์ฌ์ดํธ
๐ถ ํธ๋ ์ด๋๋ ๋ชจ๋ธ์ ์ ์ฉ์ํค๊ธฐ
- onnx ํ์ผ์ ํ๋ก์ ํธ์ฐฝ์ ๋์ด๋ค ๋๊ธฐ
- ํ์ผ๋ช ํท๊ฐ๋ฆฌ๋ฏ๋ก 3DBall01๋ก ๋ณ๊ฒฝ
- 3DBall01.onnx ํ์ผ์ ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ์ ๋์ด๋ค๋๊ธฐ
- apply to prefab
- play ์์ผ๋ณด๋ฉด ํธ๋ ์ด๋๋ ๋ชจ์ต์ ๋ณผ ์ ์์
'Unity > ML-Agents' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
06. ML-Agents - Soccer (1) (1) | 2021.08.02 |
---|---|
05. ML-Agents - Imitation Learning (0) | 2021.08.02 |
04. ML-Agents - Camera Sensor (0) | 2021.08.01 |
03. ML-Agents - Ray Perception Sensor 3D (0) | 2021.07.30 |
02. ML-Agents - position,rigidbody ๊ด์ธก (0) | 2021.07.30 |