Skip to content

JeongSeoJin/reinforcement-learning-bipedal-robot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 

Repository files navigation

Reinforcement_Learning

PPO : Proximal Policy Optimization

์ด๋ก  ํ•ต์‹ฌ: **PPO (Proximal Policy Optimization)**๋Š” "ํ•™์Šต์„ ํ•˜๋˜, ๋„ˆ๋ฌด ๊ธ‰๊ฒฉํ•˜๊ฒŒ ์„ฑ๊ฒฉ์„ ๋ฐ”๊พธ์ง€ ๋งˆ๋ผ"๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์–ด์ œ๋Š” "์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐ€" ํ•˜๋‹ค๊ฐ€ ์˜ค๋Š˜ ๊ฐ‘์ž๊ธฐ "์™ผ์ชฝ์œผ๋กœ ๊ฐ€" ํ•˜๋ฉด ๋กœ๋ด‡์ด ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œํ•˜๋‹ˆ๊นŒ, ์กฐ๊ธˆ์”ฉ(Proximal) ์ •์ฑ…์„ ์ˆ˜์ •ํ•ด์„œ ์•ˆ์ •์ ์œผ๋กœ ํ•™์Šต์‹œํ‚ต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋กœ๋ด‡ ์ œ์–ด ๋ถ„์•ผ์˜ ๊ตญ๋ฃฐ(Standard)์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

PPO์˜ ๋‘ ๊ฐœ์˜ ๋‡Œ : Actor and Critic

Actor (ํ–‰๋™๋Œ€์žฅ)

์—ญํ• : Hopper์˜ ์„ผ์„œ๊ฐ’(๊ธฐ์šธ๊ธฐ, ์†๋„)์„ ๋ณด๊ณ  "๋‹ค๋ฆฌ๋ฅผ ํŽด๋ผ/์ ‘์–ด๋ผ" ๋ช…๋ น์„ ๋‚ด๋ฆฝ๋‹ˆ๋‹ค.

์ฝ”๋“œ: net_arch=[256, 256]์—์„œ ์•ž๋ถ€๋ถ„์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

Critic

์—ญํ• : Actor๊ฐ€ ์›€์ง์ด๋Š” ๊ฑธ ๋ณด๊ณ  **"์•ผ, ์ง€๊ธˆ ๊ทธ ์ž์„ธ๋ฉด 2์ดˆ ๋’ค์— ๋„˜์–ด์ ธ. ์ ์ˆ˜ ๋‚ฎ์•„!"**๋ผ๊ณ  ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”์„ฑ: ๋กœ๋ด‡์€ ๋„˜์–ด์ ธ๋ด์•ผ ์•„ํ”ˆ ์ค„ ์•„๋Š”๋ฐ, Critic์ด ๋ฏธ๋ฆฌ "๊ทธ๊ฑด ๋‚˜์œ ์ž์„ธ์•ผ"๋ผ๊ณ  ๊ฐ€์น˜(Value)๋ฅผ ์•Œ๋ ค์ค˜์„œ ํ•™์Šต ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.

PPO์˜ ํ•ต์‹ฌ: Actor๊ฐ€ Critic์˜ ์กฐ์–ธ์„ ๋“ฃ๊ณ  ํ–‰๋™์„ ๊ณ ์น˜๋Š”๋ฐ, **"ํ•œ ๋ฒˆ์— ๋„ˆ๋ฌด ํ™• ๋ฐ”๊พธ์ง€ ๋งˆ!"**๋ผ๊ณ  ์ œํ•œ์„ ๊ฒ๋‹ˆ๋‹ค.

Principle of PPO(ํ•ต์‹ฌ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ 3๊ฐœ)

Hopping Robot์„ ์˜ˆ์‹œ๋กœ

โ‘  clip_range (ํด๋ฆฌํ•‘ ๋ฒ”์œ„): PPO์˜ ์•ˆ์ „๋ฒจํŠธ PPO(Proximal Policy Optimization) ์ด๋ฆ„์˜ ์œ ๋ž˜์ž…๋‹ˆ๋‹ค.

์ƒํ™ฉ: ๋กœ๋ด‡์ด ์šฐ์—ฐํžˆ ์ ํ”„๋ฅผ ์—„์ฒญ ๋†’๊ฒŒ ํ•ด์„œ ์ ์ˆ˜๋ฅผ ์ž˜ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜ RL: "์šฐ์™€! ๋ฌด์กฐ๊ฑด ์„ธ๊ฒŒ ๋›ฐ์–ด!" -> ๋‹ค์Œ ํŒ์— ๋„ˆ๋ฌด ์„ธ๊ฒŒ ๋›ฐ์–ด์„œ ๋’ค๋กœ ๋„˜์–ด์ง. (ํ•™์Šต ๋ถ•๊ดด)

PPO: "์ ์ˆ˜ ์ž˜ ๋ฐ›์€ ๊ฑด ์•Œ๊ฒ ๋Š”๋ฐ, ์›๋ž˜ ํ•˜๋˜ ์Šคํƒ€์ผ์—์„œ ๋”ฑ 20%๋งŒ ๋ฐ”๊ฟ”. ๋„ˆ๋ฌด ํฅ๋ถ„ํ•˜์ง€ ๋งˆ."

์ฝ”๋“œ: clip_range=0.2 (๊ธฐ๋ณธ๊ฐ’)

์ด๊ฒŒ PPO๊ฐ€ ๋กœ๋ด‡ ์ œ์–ด์—์„œ ์งฑ ๋จน์€ ์ด์œ ์ž…๋‹ˆ๋‹ค. ํ•™์Šต์ด ํŠ€๋Š” ๊ฑธ ๋ง‰์•„์ค๋‹ˆ๋‹ค.


โ‘ก ent_coef (์—”ํŠธ๋กœํ”ผ ๊ณ„์ˆ˜): ํ˜ธ๊ธฐ์‹ฌ ์กฐ์ ˆ๊ธฐ ๋กœ๋ด‡์ด ํ•™์Šต ์ดˆ๋ฐ˜์— ์ž๊พธ ๋„˜์–ด์ง€๋Š” ๊ฒŒ ๋ฌด์„œ์›Œ์„œ ๊ฐ€๋งŒํžˆ ์„œ ์žˆ์œผ๋ ค๊ณ ๋งŒ ํ•  ๋•Œ ๊ฑด๋“œ๋ฆฌ๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค.

์˜๋ฏธ: "์–ผ๋งˆ๋‚˜ ์—‰๋šฑํ•œ ์ง“(ํƒํ—˜)์„ ํ—ˆ์šฉํ•  ๊ฒƒ์ธ๊ฐ€?"

๋‚ฎ์œผ๋ฉด(0.0): ํ•˜๋˜ ๋Œ€๋กœ๋งŒ ํ•ฉ๋‹ˆ๋‹ค. (์•ˆ์ „๋นต, ๊ณ ์ง‘๋ถˆํ†ต)

๋†’์œผ๋ฉด(0.1): ๋ฏธ์นœ ์ฒ™ํ•˜๊ณ  ๋‹ค๋ฆฌ๋ฅผ ๋ง‰ ์ฐข์–ด๋ด…๋‹ˆ๋‹ค. (์ƒˆ๋กœ์šด ๊ธฐ์ˆ  ๋ฐœ๊ฒฌ ๊ฐ€๋Šฅ์„ฑ โ†‘, ํ•˜์ง€๋งŒ ์ž˜ ๋„˜์–ด์ง)

์‹ค์ „ ํŒ: ๋กœ๋ด‡์ด ๋„ˆ๋ฌด ๋ป”ํ•œ ์›€์ง์ž„๋งŒ ํ•˜๋ฉด ์ด ์ˆซ์ž๋ฅผ ์‚ด์ง(0.01) ์˜ฌ๋ ค์ค๋‹ˆ๋‹ค.


โ‘ข learning_rate (ํ•™์Šต๋ฅ ): ๊ณต๋ถ€ ์†๋„ ์˜๋ฏธ: ํ•œ ๋ฒˆ์˜ ๊ฒฝํ—˜์—์„œ ์–ผ๋งˆ๋‚˜ ๋งŽ์ด ๋ฐฐ์šธ ๊ฒƒ์ธ๊ฐ€.

๋„ˆ๋ฌด ํฌ๋ฉด: ์„ฑ๊ฒฉ์ด ๊ธ‰ํ•ด์„œ ์ด๋ฆฌ์ €๋ฆฌ ์™”๋‹ค ๊ฐ”๋‹ค ํ•˜๋‹ค ๋งํ•ฉ๋‹ˆ๋‹ค.

๋„ˆ๋ฌด ์ž‘์œผ๋ฉด: ์ „์—ญํ•  ๋•Œ๊นŒ์ง€ ๊ฑธ์Œ๋งˆ๋„ ๋ชป ๋—๋‹ˆ๋‹ค.

๊ตญ๋ฃฐ: 3e-4 (0.0003)์ด ๋กœ๋ด‡ ๊ฐ•ํ™”ํ•™์Šต์˜ ํ™ฉ๊ธˆ ๋น„์œจ์ž…๋‹ˆ๋‹ค.

Hopper์˜ ์„ฑ์ ํ‘œ: ๋ณด์ƒ ํ•จ์ˆ˜ (Reward Function)

๋กœ๋ด‡์ด "์ž˜ํ–ˆ๋‹ค"๊ณ  ์นญ์ฐฌ๋ฐ›๋Š” ๊ธฐ์ค€์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. Hopper๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์ด๋ ‡๊ฒŒ ์ ์ˆ˜๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.$$Reward = (์•ž์œผ๋กœ ๊ฐ„ ์†๋„) - (๋ชจํ„ฐ ์“ฐ๋Š” ํž˜ \times 0.001) + (์•ˆ ๋„˜์–ด์ง \times 1.0)$$์†๋„: ๋นจ๋ฆฌ ๊ฐˆ์ˆ˜๋ก ์ ์ˆ˜๊ฐ€ ํŒํŒ ์˜ค๋ฆ…๋‹ˆ๋‹ค.์—๋„ˆ์ง€ ์ ˆ์•ฝ: ๋ชจํ„ฐ๋ฅผ ๋ฏธ์นœ๋“ฏ์ด ๋Œ๋ฆฌ๋ฉด ๊ฐ์ ์ž…๋‹ˆ๋‹ค. (๊ทธ๋ž˜์„œ ๋กœ๋ด‡์ด ๋‚˜์ค‘์— ๋ณด๋ฉด ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์›€์ง์ด๋ ค ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค.)์ƒ์กด ๋ณด๋„ˆ์Šค: ์‚ด์•„๋งŒ ์žˆ์–ด๋„ 1์ ์„ ์ค๋‹ˆ๋‹ค. (์ด๊ฒŒ ์—†์œผ๋ฉด ๋กœ๋ด‡์€ "์›€์ง์ด๋ฉด ๋„˜์–ด์ง€๋‹ˆ๊นŒ ๊ทธ๋ƒฅ ๋ฐ”๋กœ ์ž์‚ดํ•ด์„œ ๊ฒŒ์ž„ ๋๋‚ด์•ผ์ง€"๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors