Unity/ML-Agents

01. ML-Agents - ์„ค์น˜ ๋ฐ ๊ฐ„๋‹จํ•œ ์‹ค์Šต

๐Ÿ”ท๋ชฉ์ฐจ

๋จธ์‹ ๋Ÿฌ๋‹ ๊ฐœ๋ก 

๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•

๊ฐ•ํ™”ํ•™์Šต ํ™˜๊ฒฝ ๊ตฌ์ถ•

ํŠธ๋ ˆ์ด๋‹ ๋ฐ ํ…Œ์ŠคํŠธ

 

๐Ÿ”ท๋จธ์‹ ๋Ÿฌ๋‹

๐Ÿ”ถ ๋ช…์‹œ์ ์ธ ํ”„๋กœ๊ทธ๋žจ ์—†์ด ์ปดํ“จํ„ฐ(๊ธฐ๊ณ„)๊ฐ€ ์Šค์Šค๋กœ ๋ฐฐ์šฐ๋Š”(ํ•™์Šตํ•˜๋Š”) ๋Šฅ๋ ฅ์„ ์—ฐ๊ตฌํ•˜๋Š” ๋ถ„์•ผ

 

 

 

๐Ÿ”ถ ์šฉ์–ด

- ๋”ฅ๋Ÿฌ๋‹ : ๋‰ด๋Ÿฐ ๊ฐ™์€ ์‹ ๊ฒฝ์„ธํฌ๋ฅผ ๋ชจ๋ฐฉํ•ด๋‚ธ ํ•™์Šต๋ถ„์•ผ

- ๋จธ์‹ ๋Ÿฌ๋‹

- ์ธ๊ณต์ง€๋Šฅ

 

 

 

๐Ÿ”ถ ๋จธ์‹ ๋Ÿฌ๋‹์˜ ๋ถ„๋ฅ˜

- ์ง€๋„ํ•™์Šต 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 ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•

๐Ÿ”ถ ํŒŒ์ด์ฌ ์„ค์น˜

https://www.python.org/

- 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 ์„ค์น˜

https://pytorch.org/

 

 

 

- ๋ฐ‘์œผ๋กœ ๋‚ด๋ ค๊ฐ€์„œ ์œ„์™€ ๊ฐ™์ด ์„ค์ •

- ๊ฐ€์†๊ธฐ๋Šฅ์ด ์žˆ๋Š” 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