AnnaMats's picture
Second Push
05c9ac2

Proximal Policy Optimization๋ฅผ ์ด์šฉํ•œ ํ•™์Šต

ML-Agents๋Š” Proximal Policy Optimization (PPO) ๋ผ๋Š” ๊ฐ•ํ™”ํ•™์Šต ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. PPO๋Š” ์—์ด์ „ํŠธ์˜ ๊ด€์ธก (Observation)์„ ํ†ตํ•ด ์—์ด์ „ํŠธ๊ฐ€ ์ฃผ์–ด์ง„ ์ƒํƒœ์—์„œ ์ตœ์„ ์˜ ํ–‰๋™์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ด์ƒ์ ์ธ ํ•จ์ˆ˜๋ฅผ ์ธ๊ณต์‹ ๊ฒฝ๋ง์„ ์ด์šฉํ•˜์—ฌ ๊ทผ์‚ฌํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ML-agents์˜ PPO ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ…์„œํ”Œ๋กœ์šฐ๋กœ ๊ตฌํ˜„๋˜์—ˆ์œผ๋ฉฐ ๋ณ„๋„์˜ ํŒŒ์ด์ฌ ํ”„๋กœ์„ธ์Šค (์†Œ์ผ“ ํ†ต์‹ ์„ ํ†ตํ•ด ์‹คํ–‰์ค‘์ธ ์œ ๋‹ˆํ‹ฐ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ†ต์‹ )์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ๋ฅผ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ์ž๋Š” ์—์ด์ „ํŠธ๊ฐ€ ์ตœ๋Œ€ํ™”ํ•˜๋„๋ก ์‹œ๋„ํ•˜๋Š” ๋ณด์ƒ ์‹œ๊ทธ๋„์„ ํ•˜๋‚˜ ํ˜น์€ ๊ทธ ์ด์ƒ ์„ค์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ณด์ƒ ์‹œ๊ทธ๋„๋“ค๊ณผ ๊ด€๋ จ๋œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ์— ๋Œ€ํ•ด์„œ๋Š” ๋ณด์ƒ ์‹œ๊ทธ๋„ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์‹ญ์‹œ์˜ค.

learn.py๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•™์Šต ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ML-Agents ํ•™์Šต ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์‹ญ์‹œ์˜ค.

๋งŒ์•ฝ ์—์ด์ „ํŠธ์—๊ฒŒ ๊ธฐ์–ต๋ ฅ์„ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•ด ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง (Recurrent Neural Network, RNN)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง์— ๋Œ€ํ•œ ๊ตฌ์ฒด์ ์ธ ํ•™์Šต ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง ์‚ฌ์šฉํ•˜๊ธฐ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์‹ญ์‹œ์˜ค.

๋งŒ์•ฝ ์—์ด์ „ํŠธ์—๊ฒŒ ์ œ์‹œ๋œ ๋ฌธ์ œ์˜ ๋‚œ์ด๋„๋ฅผ ์ ์ฐจ์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ ํ•™์Šตํ•˜๋Š” ์ปค๋ฆฌํ˜๋Ÿผ ํ•™์Šต (Curriculum Learning)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ปค๋ฆฌํ˜๋Ÿผ ํ•™์Šต์„ ํ†ตํ•œ ์—์ด์ „ํŠธ ํ•™์Šต ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์‹ญ๋‹ˆ์˜ค.

๋ชจ๋ฐฉ ํ•™์Šต (Imitation Learning)์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด ๋ชจ๋ฐฉ ํ•™์Šต์„ ํ†ตํ•œ ์—์ด์ „ํŠธ ํ•™์Šต ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์‹ญ์‹œ์˜ค.

PPO ํ•™์Šต์„ ์œ„ํ•œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ

๊ฐ•ํ™”ํ•™์Šต ๋ชจ๋ธ์„ ์„ฑ๊ณต์ ์œผ๋กœ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•™์Šต๊ณผ ๊ด€๋ จ๋œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๋Š” ๊ธฐ๋ณธ์ ์ธ ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์„ ์ด์šฉํ•˜์—ฌ ํ•™์Šตํ–ˆ์„ ๋•Œ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์„ฑ๋Šฅ์„ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ ํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ

Reward Signals

๊ฐ•ํ™”ํ•™์Šต์—์„œ ๋ชฉํ‘œ๋Š” ๋ณด์ƒ์„ ์ตœ๋Œ€๋กœ ํ•˜๋Š” ์ •์ฑ… (Policy)์„ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณด์ƒ์€ ํ™˜๊ฒฝ์œผ๋กœ๋ถ€ํ„ฐ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ๋‹ค๋ฅธ ํ–‰๋™์„ ํ†ตํ•ด ์—์ด์ „ํŠธ์—๊ฒŒ ๋ณด์ƒ์„ ์ฃผ๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—์ด์ „ํŠธ๊ฐ€ ์ƒˆ๋กœ์šด ์ƒํƒœ๋ฅผ ํƒํ—˜ํ–ˆ์„ ๋•Œ ์—์ด์ „ํŠธ์—๊ฒŒ ๋ณด์ƒ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ณด์ƒ ์‹œ๊ทธ๋„์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•™์Šต ๊ณผ์ •์— ๋„์›€์„ ์ค„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

reward_signals๋Š” ๋ณด์ƒ ์‹œ๊ทธ๋„์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ML-Agents๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‘๊ฐœ์˜ ๋ณด์ƒ ์‹œ๊ทธ๋„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ์™ธ๋ถ€ (ํ™˜๊ฒฝ) ๋ณด์ƒ์ด๋ฉฐ ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ํ˜ธ๊ธฐ์‹ฌ (Curiosity) ๋ณด์ƒ์ž…๋‹ˆ๋‹ค. ์ด ํ˜ธ๊ธฐ์‹ฌ ๋ณด์ƒ์€ ์™ธ๋ถ€ ๋ณด์ƒ์ด ํฌ์†Œ์„ฑ์„ ๊ฐ€์ง€๋Š” ํ™˜๊ฒฝ (Sparse Extrinsic Reward Environment)์—์„œ ๋” ๋‹ค์–‘ํ•œ ํƒํ—˜์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

Lambda

lambd ๋Š” ๋žŒ๋‹ค(lambda) ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ์ผ๋ฐ˜ํ™”๋œ ์ด๋“ ์ถ”์ • (Generalized Advantage Estimate, GAE) ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์—…๋ฐ์ดํŠธ๋œ ๊ฐ€์น˜๋ฅผ ์˜ˆ์ธกํ•  ๋•Œ ํ˜„์žฌ ์˜ˆ์ธก๋œ ๊ฐ€์น˜์— ์–ผ๋งˆ๋‚˜ ์˜์กดํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์ด ๋‚ฎ์œผ๋ฉด ํ˜„์žฌ ์˜ˆ์ธก๋œ ๊ฐ€์น˜์— ๋” ์˜์กดํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋ฉฐ (๋†’์€ ํŽธํ–ฅ (bias) ๋ฐœ์ƒ ๊ฐ€๋Šฅ), ๊ฐ’์ด ๋†’์œผ๋ฉด ํ™˜๊ฒฝ์„ ํ†ตํ•ด ์–ป์€ ์‹ค์ œ ๋ณด์ƒ์— ๋” ์˜์กดํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค (๋†’์€ ๋ถ„์‚ฐ (variance) ๋ฐœ์ƒ ๊ฐ€๋Šฅ). ์ฆ‰ ์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์„ ํƒํ•˜๋ƒ์— ๋”ฐ๋ผ ๋‘ ํŠน์„ฑ๊ฐ„์— ํŠธ๋ ˆ์ด๋“œ์˜คํ”„ (trade-off)๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์„ ํƒํ•˜๋ฉด ๋” ์•ˆ์ •์ ์ธ ํ•™์Šต์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋ฒ”์œ„: 0.9 - 0.95

Buffer Size

buffer_size ๋Š” ๋ชจ๋ธ ํ•™์Šต์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๊ฒฝํ—˜๋“ค(๊ด€์ธก, ํ–‰๋™, ๋ณด์ƒ ๋“ฑ)์„ ์ €์žฅํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ batch_size์˜ ๋ฐฐ์ˆ˜๋กœ ์„ค์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํฐ buffer_size๋Š” ๋” ์•ˆ์ •์ ์ธ ํ•™์Šต์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋ฒ”์œ„: 2048 - 409600

Batch Size

batch_size ๋Š” ํ•œ๋ฒˆ์˜ ๊ฒฝ์‚ฌํ•˜๊ฐ•(Gradient Descent) ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•  ๊ฒฝํ—˜๋“ค์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ํ•ญ์ƒ buffer_size์˜ ์•ฝ์ˆ˜๋กœ ์„ค์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์—ฐ์†์ ์ธ ํ–‰๋™ ๊ณต๊ฐ„ (Continuous Action Space) ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๊ฐ’์€ ํฌ๊ฒŒ ์„ค์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค (1000์˜ ๋‹จ์œ„). ๋งŒ์•ฝ ์ด์‚ฐ์ ์ธ ํ–‰๋™ ๊ณต๊ฐ„ (Discrete Action Space) ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๊ฐ’์€ ๋” ์ž‘๊ฒŒ ์„ค์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (10์˜ ๋‹จ์œ„).

์ผ๋ฐ˜์ ์ธ ๋ฒ”์œ„ (์—ฐ์†์ ์ธ ํ–‰๋™): 512 - 5120

์ผ๋ฐ˜์ ์ธ ๋ฒ”์œ„ (์ด์‚ฐ์ ์ธ ํ–‰๋™): 32 - 512

Number of Epochs

num_epoch ๋Š” ๊ฒฝ์‚ฌ ํ•˜๊ฐ• (Gradient Descent) ํ•™์Šต ๋™์•ˆ ๊ฒฝํ—˜ ๋ฒ„ํผ (Experience Buffer) ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ํ•™์Šต์„ ๋ช‡๋ฒˆ ์ˆ˜ํ–‰ํ•  ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. batch_size๊ฐ€ ํด์ˆ˜๋ก ์ด ๊ฐ’๋„ ์ปค์ ธ์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ์ค„์ด๋ฉด ๋” ์•ˆ์ •์ ์ธ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ณด์žฅ๋˜์ง€๋งŒ ํ•™์Šต ์†๋„๊ฐ€ ๋Š๋ ค์ง‘๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋ฒ”์œ„: 3 - 10

Learning Rate

learning_rate ๋Š” ๊ฒฝ์‚ฌ ํ•˜๊ฐ• (Gradient Descent) ํ•™์Šต์˜ ์ •๋„๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•™์Šต์ด ๋ถˆ์•ˆ์ •ํ•˜๊ณ  ์—์ด์ „ํŠธ๊ฐ€ ์–ป๋Š” ๋ณด์ƒ์ด ์ฆ๊ฐ€ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•™์Šต๋ฅ ์„ ๊ฐ์†Œ์‹œํ‚ต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋ฒ”์œ„: 1e-5 - 1e-3

Time Horizon

time_horizon ์€ ๊ฒฝํ—˜ ๋ฒ„ํผ (Experience Buffer)์— ์ €์žฅํ•˜๊ธฐ ์ „ ์—์ด์ „ํŠธ๋‹น ์ˆ˜์ง‘ํ•  ๊ฒฝํ—˜์˜ ์Šคํ… ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์—ํ”ผ์†Œ๋“œ๊ฐ€ ๋๋‚˜๊ธฐ ์ „์— ์ด ํ•œ๋„์— ๋„๋‹ฌํ•˜๋ฉด ๊ฐ€์น˜ ํ‰๊ฐ€๋ฅผ ํ†ตํ•ด ์—์ด์ „ํŠธ์˜ ํ˜„์žฌ ์ƒํƒœ๋กœ๋ถ€ํ„ฐ ๊ธฐ๋Œ€๋˜๋Š” ์ „์ฒด ๋ณด์ƒ์„ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๊ฐ’์˜ ์„ค์ •์— ๋”ฐ๋ผ ๋œ ํŽธํ–ฅ๋˜์ง€๋งŒ ๋ถ„์‚ฐ์ด ์ปค์งˆ์ˆ˜๋„ ์žˆ๊ณ  (๊ธด time horizon), ๋” ํŽธํ–ฅ (bias)๋˜์ง€๋งŒ ๋ถ„์‚ฐ (variance)์ด ์ž‘์•„์งˆ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค (์งง์€ time horizon). ํ•œ ์—ํ”ผ์†Œ๋“œ ๋™์•ˆ ๋ณด์ƒ์ด ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋‚˜ ์—ํ”ผ์†Œ๋“œ๊ฐ€ ์—„์ฒญ๋‚˜๊ฒŒ ๊ธด ๊ฒฝ์šฐ์—๋Š” time horizon ๊ฐ’์€ ์ž‘๊ฒŒ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ์—์ด์ „ํŠธ๊ฐ€ ์ทจํ•˜๋Š” ์ผ๋ จ์˜ ํ–‰๋™ ๋‚ด์—์„œ ์ค‘์š”ํ•œ ํ–‰๋™์„ ๋ชจ๋‘ ํฌ์ฐฉํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ํฐ ๊ฐ’์„ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋ฒ”์œ„: 32 - 2048

Max Steps

max_steps ์€ ํ•™์Šต ๊ณผ์ • ๋™์•ˆ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์Šคํ… (ํ”„๋ ˆ์ž„ ์Šคํ‚ต์„ ๊ณฑํ•œ๋งŒํผ) ์„ ์‹คํ–‰ํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๋ณต์žกํ•œ ๋ฌธ์ œ์ผ์ˆ˜๋ก ํฌ๊ฒŒ ์„ค์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋ฒ”์œ„: 5e5 - 1e7

Beta

beta ๋Š” ์—”ํŠธ๋กœํ”ผ ์ •๊ทœํ™” (Entropy Regularization)์˜ ์ •๋„๋ฅผ ๊ฒฐ์ •ํ•˜๋ฉฐ ์ด๋ฅผ ํ†ตํ•ด ์ •์ฑ…์„ ๋” ๋žœ๋คํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ํ†ตํ•ด ์—์ด์ „ํŠธ๋Š” ํ•™์Šต ๋™์•ˆ ์•ก์…˜ ๊ณต๊ฐ„์„ ์ ์ ˆํ•˜๊ฒŒ ํƒํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด ์—์ด์ „ํŠธ๊ฐ€ ๋” ๋งŽ์ด ๋žœ๋ค ํ–‰๋™์„ ์ทจํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์—”ํŠธ๋กœํ”ผ (ํ…์„œ๋ณด๋“œ๋ฅผ ํ†ตํ•ด ์ธก์ • ๊ฐ€๋Šฅ)๋Š” ๋ณด์ƒ์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ์„œ์„œํžˆ ํฌ๊ธฐ๋ฅผ ๊ฐ์†Œ์‹œ์ผœ์•ผํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์—”ํŠธ๋กœํ”ผ๊ฐ€ ๋„ˆ๋ฌด ๋น ๋ฅด๊ฒŒ ๋–จ์–ด์ง€๋ฉด beta๋ฅผ ์ฆ๊ฐ€์‹œ์ผœ์•ผํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์—”ํŠธ๋กœํ”ผ๊ฐ€ ๋„ˆ๋ฌด ๋Š๋ฆฌ๊ฒŒ ๋–จ์–ด์ง€๋ฉด beta๋ฅผ ๊ฐ์†Œ์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋ฒ”์œ„: 1e-4 - 1e-2

Epsilon

epsilon ์€ ๊ฒฝ์‚ฌ ํ•˜๊ฐ• ์—…๋ฐ์ดํŠธ ๋™์•ˆ ์‚ฌ์šฉํ•˜๋Š” ์ด์ „ ์ •์ฑ…๊ณผ ์ƒˆ๋กœ์šด ์ •์ฑ… ์‚ฌ์ด์˜ ๋น„์œจ์„ ์ผ์ • ๋ฒ”์œ„์˜ ํฌ๊ธฐ๋กœ ์ œํ•œํ•˜๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์ด ์ž‘๊ฒŒ ์„ค์ •๋˜๋ฉด ๋” ์•ˆ์ •์ ์ธ ํ•™์Šต์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ํ•™์Šต์ด ๋Š๋ฆฌ๊ฒŒ ์ง„ํ–‰๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋ฒ”์œ„: 0.1 - 0.3

Normalize

normalize๋Š” ๋ฒกํ„ฐ ๊ด€์ธก (Vector Observation) ์ž…๋ ฅ์„ ์ •๊ทœํ™” (Normalization)ํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ •๊ทœํ™”๋Š” ๋ฒกํ„ฐ ๊ด€์ธก์˜ ์ด๋™ ํ‰๊ท  ๋ฐ ๋ถ„์‚ฐ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ •๊ทœํ™”๋Š” ๋ณต์žกํ•˜๊ณ  ์—ฐ์†์ ์ธ ์ œ์–ด ๋ฌธ์ œ์—์„œ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹จ์ˆœํ•˜๊ณ  ์ด์‚ฐ์ ์ธ ์ œ์–ด ๋ฌธ์ œ์—์„œ๋Š” ์ •๊ทœํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Number of Layers

num_layers ๋Š” ๊ด€์ธก ์ž…๋ ฅ ํ›„ ํ˜น์€ ์‹œ๊ฐ์  ๊ด€์ธก (Visual Observation)์˜ CNN ์ธ์ฝ”๋”ฉ ์ดํ›„ ๋ช‡๊ฐœ์˜ ์€๋‹‰์ธต (Hidden Layer)์„ ์‚ฌ์šฉํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์—์„œ๋Š” ์ ์€ ์ˆ˜์˜ ์ธต์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ํ•™์Šตํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์ œ์–ด ๋ฌธ์ œ์—์„œ๋Š” ๋งŽ์€ ์ธต์„ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋ฒ”์œ„: 1 - 3

Hidden Units

hidden_units ์€ ์ธ๊ณต์‹ ๊ฒฝ๋ง์˜ ๊ฐ ์™„์ „์—ฐ๊ฒฐ์ธต (Fully Connected Layer)์— ๋ช‡๊ฐœ์˜ ์œ ๋‹›์„ ์‚ฌ์šฉํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ ์˜ ํ–‰๋™์ด ๊ด€์ธก ์ž…๋ ฅ์˜ ๊ฐ„๋‹จํ•œ ์กฐํ•ฉ์œผ๋กœ ๊ฒฐ์ •๋˜๋Š” ๋‹จ์ˆœํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ๋Š” ์ด ๊ฐ’์„ ์ž‘๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ ์˜ ํ–‰๋™์ด ๊ด€์ธก ์ž…๋ ฅ์˜ ๋ณต์žกํ•œ ๊ด€๊ณ„์— ์˜ํ•ด ๊ฒฐ์ •๋˜๋Š” ์–ด๋ ค์šด ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ๋Š” ์ด ๊ฐ’์„ ํฌ๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋ฒ”์œ„: 32 - 512

(์„ ํƒ์ ) ์ˆœํ™˜์‹ ๊ฒฝ๋ง์˜ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ

์•„๋ž˜์˜ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์€ use_recurrent ์ด ์ฐธ(True)์œผ๋กœ ๊ฒฐ์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Sequence Length

sequence_length ๋Š” ํ•™์Šต ๋™์•ˆ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์—ฐ์†์ ์ธ ๊ฒฝํ—˜๋“ค์˜ ๊ธธ์ด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๊ฐ€ ๊ธด ์‹œ๊ฐ„์— ๋Œ€ํ•ด ๊ธฐ์–ตํ•ด์•ผํ•˜๋Š” ์ •๋ณด๊ฐ€ ์žˆ๋‹ค๋ฉด ์ด ๊ฐ’์„ ์ถฉ๋ถ„ํžˆ ๊ธธ๊ฒŒ ์„ค์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—์ด์ „ํŠธ๊ฐ€ ๋ฌผ์ฒด์˜ ์†๋„๋ฅผ ๊ธฐ์–ตํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๊ฐ’์€ ์ž‘๊ฒŒ ์„ค์ •ํ•ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์—์ด์ „ํŠธ๊ฐ€ ์—ํ”ผ์†Œ๋“œ ์ดˆ๋ฐ˜์— ํ•œ๋ฒˆ ์ฃผ์–ด์ง„ ์ •๋ณด๋ฅผ ๊ณ„์† ๊ธฐ์–ตํ•ด์•ผํ•œ๋‹ค๋ฉด ์ด ๊ฐ’์„ ํฌ๊ฒŒ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋ฒ”์œ„: 4 - 128

Memory Size

memory_size ๋Š” ์ˆœํ™˜์‹ ๊ฒฝ๋ง์˜ ์€๋‹‰ ์ƒํƒœ(hidden state)๋ฅผ ์ €์žฅํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๋ฐ˜๋“œ์‹œ 4์˜ ๋ฐฐ์ˆ˜๋กœ ์„ค์ •๋˜์–ด์•ผ ํ•˜๋ฉฐ ์—์ด์ „ํŠธ๊ฐ€ ์ž„๋ฌด๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์™„์ˆ˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ธฐ์–ตํ•ด์•ผํ•˜๋Š” ์ •๋ณด์˜ ์–‘์— ๋”ฐ๋ผ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋ฒ”์œ„: 64 - 512

Training Statistics

ํ•™์Šต์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ํ…์„œ๋ณด๋“œ (TensorBoard)๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํ…์„œ๋ณด๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์•Œ๊ณ ์‹ถ์œผ์‹  ๊ฒฝ์šฐ ์ด ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์‹ญ์‹œ์˜ค.

Cumulative Reward

๋ณด์ƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ง€์†์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝํ–ฅ์„ ๊ฐ€์ ธ์•ผํ•ฉ๋‹ˆ๋‹ค. ์ž‘์€ ๊ธฐ๋ณต์ด ๋ฐœ์ƒํ• ์ˆ˜๋Š” ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ๋ณต์žก๋„์— ๋”ฐ๋ผ ์ˆ˜๋ฐฑ๋งŒ ์Šคํ…์˜ ํ•™์Šต์ด ์ง„ํ–‰๋˜์–ด๋„ ๋ณด์ƒ์ด ์ฆ๊ฐ€ํ•˜์ง€ ์•Š์„์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Entropy

์ด ๊ฐ’์€ ๋ธŒ๋ ˆ์ธ์ด ๊ฒฐ์ •์ด ์–ผ๋งˆ๋‚˜ ๋ฌด์ž‘์œ„์ธ์ง€ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ํ•™์Šต์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ์ง€์†์ ์œผ๋กœ ๊ฐ์†Œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ด ๊ฐ’์ด ๋„ˆ๋ฌด ๋น ๋ฅด๊ฒŒ ๊ฐ์†Œํ•˜๊ฑฐ๋‚˜ ์•„์˜ˆ ๊ฐ์†Œํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ beta์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. (์ด์‚ฐ์ ์ธ ํ–‰๋™ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ)

Learning Rate

์ด ๊ฐ’์€ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์„ ํ˜•์ ์œผ๋กœ ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.

Policy Loss

์ด ๊ฐ’๋“ค์€ ํ•™์Šต์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ์ง„๋™ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ๊ฐ’๋“ค์€ 1๋ณด๋‹ค ์ž‘์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

Value Estimate

์ด ๊ฐ’๋“ค์€ ๋ˆ„์  ๋ณด์ƒ์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ์ปค์ ธ์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’๋“ค์€ ์ฃผ์–ด์ง„ ์‹œ์ ์—์„œ ์—์ด์ „ํŠธ๊ฐ€ ์Šค์Šค๋กœ ๋ฐ›์„ ๊ฒƒ์ด๋ผ ์˜ˆ์ธกํ•˜๋Š” ๋ฏธ๋ž˜์˜ ๋ณด์ƒ์ด ์–ผ๋งˆ๋‚˜ ๋ ๊ฒƒ์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

Value Loss

์ด ๊ฐ’๋“ค์€ ๋ณด์ƒ์ด ์ฆ๊ฐ€ํ•˜๋ฉด ์ฆ๊ฐ€ํ•˜๊ณ  ๋ณด์ƒ์ด ์•ˆ์ •๋˜๋ฉด ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.

ํ•œ๊ธ€ ๋ฒˆ์—ญ

ํ•ด๋‹น ๋ฌธ์„œ์˜ ํ•œ๊ธ€ ๋ฒˆ์—ญ์€ ๋ฏผ๊ทœ์‹ (Kyushik Min)์— ์˜ํ•ด ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด์šฉ์ƒ ์˜ค๋ฅ˜๋‚˜ ์˜คํƒˆ์ž๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ kyushikmin@gmail.com ์œผ๋กœ ์—ฐ๋ฝ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.