Skip to content

Latest commit

ย 

History

History
88 lines (64 loc) ยท 5.42 KB

File metadata and controls

88 lines (64 loc) ยท 5.42 KB

RoboCup Resque Simulation์˜ ๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ ๊ฐ•ํ™”ํ•™์Šต์„ ์œ„ํ•œ ์†”๋ฃจ์…˜

1. Motivation


  • ๊ธฐ์กด ์žฌ๋‚œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์˜ ๊ฒฝ์šฐ, ํ˜„์žฌ ํ™œ๋ฐœํžˆ ์—ฐ๊ตฌ ์ง„ํ–‰ ์ค‘์ธ ๊ฐ•ํ™”ํ•™์Šต๊ณผ์˜ ์—ฐ๋™์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ.
  • ๊ธฐ์กด ์žฌ๋‚œ ๋Œ€์‘์— ๊ฐ•ํ™”ํ•™์Šต์„ ํ™œ์šฉํ•œ ์—ฐ๊ตฌ๋“ค์€ ์ฃผ๋กœ ์ž์‹ ๋“ค์ด ๊ตฌ์„ฑํ•œ ์žฌ๋‚œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ˜น์€ ์žฌ๋‚œ ํ™˜๊ฒฝ์„ ๊ทธ๋ฆฌ๋“œ ํ™˜๊ฒฝ๊ณผ ๊ฐ™์ด ๋งค์šฐ ๋‹จ์ˆœํ•œ ํ™˜๊ฒฝ์œผ๋กœ ์ถ•์•ฝํ•จ.

2. Objective


  • ๊ธฐ์กด ๋„์‹œ ํ™”์žฌ ์žฌ๋‚œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ธ RoboCup Resque Simulation์˜ ์ƒํƒœ์ •๋ณด ๋ฐ ํ™”์žฌ ์žฌ๋‚œ ๋Œ€์‘์„ ์œ„ํ•œ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๊ณ , ํ•ด๋‹น ๋ถ€๋ถ„์„ ํŒŒ์ด์ฌ ๊ธฐ๋ฐ˜์˜ ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ๊ฐ•ํ™”ํ•™์Šต ๋ชจ๋ธ๊ณผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ์•ˆ์„ ๋ถ„์„
  • ๋„์‹œ ํ™”์žฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ์ตœ์ ํ™”ํ•˜์—ฌ ์‹œ ๊ทœ๋ชจ์˜ ์ง€๋„ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜๊ณผ ํ•™์Šต์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ฐœ์„ 

3. Method


  • ์ƒํƒœ ์ •๋ณด์˜ ํ•ด์„(์‹œ๋ฎฌ๋ ˆ์ด์…˜ --> ๊ฐ•ํ™”ํ•™์Šต ์—์ด์ „ํŠธ)

    • ๋Œ€์ƒ ๋„์‹œ ํ™”์žฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ : ๊ฑด๋ฌผ์— ๋Œ€ํ•œ ํ™”์žฌ ๋Œ€์‘์„ ์ˆ˜ํ–‰ํ•จ. ๋”ฐ๋ผ์„œ, ๊ฑด๋ฌผ์˜ ์ˆ˜๊ฐ€ ๋งŽ์•„์งˆ ์ˆ˜๋ก ์ƒํƒœ ์ •๋ณด์˜ ํฌ๊ธฐ ๋˜ํ•œ ์ฆ๊ฐ€ํ•จ.

    • ๋งŒ์•ฝ, ํ™”์žฌ ๋ฐœ์ƒ ๊ฑด๋ฌผ๋งŒ์„ ๊ณ ๋ คํ•œ๋‹ค๋ฉด, ์ƒํƒœ์ •๋ณด๋Š” ์ž‘์•„์ง€์ง€๋งŒ ์ƒํƒœ์ •๋ณด๋Š” ๊ฐ€๋ณ€์ ์ธ ํฌ๊ธฐ๋กœ ์ •์˜๊ฐ€ ๋˜์–ด ์ผ๋ฐ˜์ ์ธ ๋”ฅ๋Ÿฌ๋‹์˜ ์ž…๋ ฅ๋ฐ์ดํ„ฐ๊ฐ€ ๋˜๊ธฐ ์–ด๋ ค์›€.

    • ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ธก์œผ๋กœ๋ถ€ํ„ฐ์˜ ํ™”์žฌ ์žฌ๋‚œ ์ƒํƒœ ์ •๋ณด๋ฅผ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ•จ.

    • ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ƒํƒœ ์ •๋ณด์˜ ํ•ด์„์„ ์œ„ํ•œ ํŒŒ์ดํ”„๋ผ์ธ RubberDuck

    • ๋ณ€ํ™˜๋œ ์ƒํƒœ ์ •๋ณด ์˜ˆ์‹œ

    RubberDuck

  • ํ–‰์œ„ ์ •๋ณด์˜ ํ•ด์„(๊ฐ•ํ™”ํ•™์Šต ์—์ด์ „ํŠธ --> ์‹œ๋ฎฌ๋ ˆ์ด์…˜)

    • ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋‚ด ๊ฑด๋ฌผ์˜ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ๊ฐ•ํ™”ํ•™์Šต ์—์ด์ „ํŠธ๊ฐ€ ์ง์ ‘์ ์œผ๋กœ ํ™”์žฌ ๋Œ€์‘ ๊ฑด๋ฌผ์„ ์„ ํƒํ•  ์ˆ˜ ์—†์Œ.
      • ์˜ˆ : ์ˆ˜์›์‹œ ์ง€๋„ ๋ฐ์ดํ„ฐ : 16,184 ๊ฐœ์˜ ๊ฑด๋ฌผ์ด ์žˆ์Œ.
    • ๋”ฐ๋ผ์„œ ๊ฐ•ํ™”ํ•™์Šต ์—์ด์ „ํŠธ๋Š” ๊ฑด๋ฌผ์„ ์ง์ ‘์„ ํƒํ•˜์ง€ ์•Š๊ณ , ๊ฑด๋ฌผ์ด ์ง€๋‹ˆ๋Š” ํŠน์„ฑ ๊ฐ’์„ ์˜ˆ์ธกํ•˜๊ฑฐ๋‚˜, ํŠน์„ฑ๊ฐ’์— ๋Œ€ํ•œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์—ฐ์†์ ์ธ ๊ฐ’(continuous value)๋กœ ์‚ฐ์ถœํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๊ตฌ์„ฑํ•จ.
      • ์ œ์•ˆํ•˜๋Š” ์†”๋ฃจ์…˜์—์„œ ํ•ด๋‹น ์—ฐ์†๊ฐ’์„ ๋Œ€์‘ํ•˜๋Š” ๊ฑด๋ฌผ๋กœ ๋ณ€ํ™˜ํ•จ.

4. Evaluation Results (๊ฐ•ํ™”ํ•™์Šต ์†”๋ฃจ์…˜์€ MA-DDPG ๋ชจ๋ธ์— ์ ์šฉํ•จ)


4.1 ์›์ฒœ๋™(์•„์ฃผ๋Œ€ํ•™๊ต ์ธ๊ทผ) ํ™”์žฌ ์žฌ๋‚œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฐ ํ•™์Šต ๊ฒฐ๊ณผ

  • ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ : ํ™”์žฌ ์ง„์•• ํŒ€(18ํŒ€), ๊ฑด๋ฌผ ์ˆ˜(3,355๊ฐœ) RubberDuck

  • ๋น„๊ต๊ตฐ

    • ์ œ์•ˆ ์†”๋ฃจ์…˜ ์ ์šฉ
    • ๊ฑฐ๋ฆฌ์— ๋”ฐ๋ฅธ ํƒ์š• ์ •์ฑ…
    • Goyal์˜ ๋…ผ๋ฌธ ์—์„œ ์ œ์‹œ๋œ ํƒ์š• ์ •์ฑ…
  • ์‹คํ—˜ ๊ฒฐ๊ณผ

    • ํ™”์žฌ ํ”ผํ•ด๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ 100%, ๊ฑด๋ฌผ์ด ๋ชจ๋‘ ์ „์†Œ๋œ ๊ฒฝ์šฐ๋ฅผ 0%๋กœ ํ• ๋•Œ,
      • ๊ฐ•ํ™”ํ•™์Šต ์†”๋ฃจ์…˜ ์ ์šฉ ๋ฐฉ์‹ : 99.2%
      • ๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ˜ ํƒ์š• ์ •์ฑ… : 77.2%
      • Goyal์—์„œ ์ œ์‹œ๋œ ํƒ์š• ์ •์ฑ… : 57.1 %
    • ํ•™์Šต ๊ทธ๋ž˜ํ”„

    RubberDuck

4.2 ์ˆ˜์›์‹œ ํ™”์žฌ ์žฌ๋‚œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฐ ํ•™์Šต ๊ฒฐ๊ณผ

RubberDuck

  • ๋น„๊ต๊ตฐ

    • ๋ณด์ƒ ๊ณ„์‚ฐ์‹œ $reward = a* reward_{local} + b * reward_{global} $ ์—์„œ b ๊ฐ’์„ ์กฐ์ •ํ•˜๋ฉด์„œ ์—์ด์ „ํŠธ์˜ ์ด๊ธฐ์„ฑ(selfishness)๋ฅผ ๋ฐ”๊พธ์–ด๊ฐ€๋ฉฐ ๋น„๊ตํ•จ
  • ์‹คํ—˜ ๊ฒฐ๊ณผ

    • ์—์ด์ „ํŠธ์˜ b ๊ฐ’์ด ๋‚ฎ์„ ์ˆ˜๋ก ๋” ๋†’์€ ํ™”์žฌ ๋Œ€์‘๋„๋ฅผ ๋ณด์—ฌ์ฃผ์—ˆ์œผ๋‚˜, overfitting์— ์˜ํ•ด ํ™”์žฌ ๋Œ€์‘๋„๊ฐ€ ๋‚ฎ์•„์ง.

    RubberDuck

5. ์‹คํ–‰๋ฐฉ๋ฒ•


5.1 Dependency

  • PyTorch 1.8
  • ์ง€๋„๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ OSM๋ฐ์ดํ„ฐ๋ฅผ GML ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ํ†ตํ•ด ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Œ.
  • ๋ณธ ์ œ์•ˆ๋ฐฉ์‹์—์„œ๋Š” ์ˆ˜์›์‹œ ์ง€๋„ ๋ฐ์ดํ„ฐ๋ฅผ GML๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ์ด Github ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ํ™œ์šฉํ•จ.
  • ์ง€๋„ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง์— ๋”ฐ๋ผ rays๋ผ๋Š” ํ™”์žฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ์œ„ํ•œ ์ •๋ณด๋ฅผ ๋นŒ๋“œํ•˜๋Š”๋ฐ ๋งค์šฐ ๊ธด ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋‹ˆ ์ฃผ์˜๋ฐ”๋žŒ.

5.2 ์‹คํ–‰ ์Šคํฌ๋ฆฝํŠธ

  • ์„œ๋ฒ„์—์„œ GUI๋ฅผ ๊ตฌ๋™ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ, headless ์˜ต์…˜์„ ์กฐ์ •ํ•ด์•ผํ•จ.

    • function.sh ์˜ 192์ค„ ํ™•์ธ๋ฐ”๋žŒ.
    • ๋˜ํ•œ, start.sh ์—์„œ startKernel ์ˆ˜ํ–‰์‹œ nogui ๋„ gui ๊ด€๋ จ ์˜ต์…˜์ž„.
  • ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ž๋ฐ”ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ™์ด ๋„์šฐ๊ณ , ์ž๋ฐ”ํ”„๋กœ์„ธ์Šค์—์„œ๋Š” ์—ํ”ผ์†Œ๋“œ ๋ณ„ ์Šคํ… ์ˆ˜๋ฅผ ๋ฐ›์•„ ์Šคํ… ์ˆ˜๋งˆ๋‹ค ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ์ดˆ๊ธฐํ™”ํ•จ.

    • RCRS ์‹œ๋ฎฌ๋ ˆ์ด์…˜์—์„œ ๋งค ์—ํ”ผ์†Œ๋“œ์˜ ๊ธธ์ด๋Š” common.cfg์˜ episode.length๋ฅผ ํ†ตํ•ด ์ž…๋ ฅ๋ฐ›๊ณ , ์ „์ฒด ์‹œ๋ฎฌ๋ ˆ์ด์…˜์˜ ๊ธธ์ด๋Š” kernel.timestep์— ์˜ํ•ด ์กฐ์ •๋จ.
~/.conda/envs/torch7/bin/python main.py --itr_before_train 33 --action_space 1 --alpha 1.0 --beta 0.01 --aux_reward 0.1 --scale_reward 0.01 --lr_scale 0.1 --out_activation 1.0 --final_beta=0.01 --init_beta 0.01 --file_prefix $SLURM_JOBID