728x90
Deep Reinforcement Learning
- ๊ธฐ์กด Q Learning์์๋ State์ Action์ ํด๋นํ๋ Q-Value๋ฅผ ํ
์ด๋ธ ํ์์ผ๋ก ์ ์ฅ
- state space์ action space๊ฐ ์ปค์ง๋ฉด Q-Value๋ฅผ ์ ์ฅํ๊ธฐ ์ํด memory์ exploration time์ด ์ฆ๊ฐํ๋ ๋ฌธ์
Deep Q-Network(DQN)
CNN + Experience replay + Target network
- ๊ธฐ์กด Deep Q-Learning
- ํ๋ผ๋ฏธํฐ๋ฅผ ์ด๊ธฐํํ๊ณ ๋งค ์คํ ๋ง๋ค 2-5๋ฅผ ๋ฐ๋ณต
- Action \( a_t )\๋ฅผ E-Greedy ๋ฐฉ์์ผ๋ก ์ ํ
- E-Greedy = policy๊ฐ ์ ํ action์ 1-E์ ํ๋ฅ ๋ก ์คํ, E์ ํ๋ฅ ์ผ๋ก๋ ๋๋ค action ์คํ
- Action \( a_t \)๋ฅผ ์ํํด์ transition \( e_t = (s_t, a_t, r_t, s_{t+1}) \)์ ์ป์
- Target value \( y_t = r_t + \gamma max_{a'}Q(s_{t+1}, a; \theta) \)
- Loss function \( (y_t - Q(s_t, a_t;\theta))^2 \) ๋ฅผ ์ต์ํํ๋ ๋ฐฉํฅ์ผ๋ก \( \theta \)๋ฅผ ์ ๋ฐ์ดํธ
→ DQN์์๋ transition sample์ ์ป๋ 3๋ฒ์์ experience replay, ๊ฐ์ค์น ์ ๋ฐ์ดํธ 4-5๋ฒ์์ target network ์ ์ฉ
CNN Architecture
- CNN์ ๋์
ํด์ ์ธ๊ฐ๊ณผ ๋น์ทํ ํํ๋ก Atari ๊ฒ์(๋ฒฝ๋๊นจ๊ธฐ)์ input์ ์ฒ๋ฆฌํจ
- ๋์ ์ฐจ์์ ์ด๋ฏธ์ง ์ธํ ์ฒ๋ฆฌ์ ํจ๊ณผ์ → linear function approximator๋ณด๋ค ์ฑ๋ฅ์ด ์ข๋ค
- CNN ์
๋ ฅ์ผ๋ก action ์ ์ธ, state๋ง ๋ฐ๊ณ ์ถ๋ ฅ์ผ๋ก action์ ํด๋นํ๋ ๋ณต์ ๊ฐ์ Q-Value๋ฅผ ์ป๋ ๊ตฌ์กฐ
- Q-Value ์ ๋ฐ์ดํธ๋ฅผ ์ํด 4๋ฒ ๊ณผ์ ๊ณ์ฐ์ ํ ๋, max๊ฐ์ ์ฐพ๊ธฐ ์ํด์ ์ฌ๋ฌ ๋ฒ action๋ง๋ค state๋ฅผ ํต๊ณผํ์ง ์๊ณ ํ ๋ฒ์ ๊ณ์ฐ ๊ฐ๋ฅ
Experience Replay
- ๋งค ์คํ ๋ง๋ค ์ถ์ถ๋ ์ํ(์ก์ ์ ์ํํ ๊ฒฐ๊ณผ) ๋ฅผ replay memory D์ ์ ์ฅ
- D์ ์ ์ฅ๋ ์ํ์ uniform ํ๊ฒ ๋๋ค ์ถ์ถํด์ Q-update ํ์ต์ ์ฌ์ฉ
- ํ์ฌ ์ ํํ action์ ์ํํด์ ๊ฒฐ๊ณผ ๊ฐ + ์ํ์ ์ป์(๋์ผ)
- ๋ฐ๋ก ํ๊ฐ์ ์ฌ์ฉํ์ง ์๊ณ ์ง์ฐ!
1) Sample correlation
- ๋ฅ๋ฌ๋์์ ํ์ต ์ํ์ด ๋ ๋ฆฝ์ ์ผ๋ก ์ถ์ถ๋์๋ค๊ณ ๊ฐ์ ํ๊ณ ๋ชจ๋ธ์ ํ์ตํจ.
- ๊ทธ๋ฌ๋ ๊ฐํํ์ต์์๋ ์ฐ์๋ ์ํ ์ฌ์ด์ ์์กด์ฑ์ด ์กด์ฌํจ → ์ด์ ์ํ์ด ๋ค์ ์ํ ์์ฑ์ ์ํฅ์ ์ค.
- ⇒ replay memory D์ ์ ์ฅํ๋ค๊ฐ ๋๋คํ๊ฒ ์ถ์ถํด์ ์ฌ์ฉํ๋ฉด ์ด์ ์ ์ํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ๋์ ๋ค์ ์ํ์ ์ํฅ์ ์ฃผ์ง๋ ์๊ฒ ๋จ == ๋ ๋ฆฝ์ถ์ถ๊ณผ ์ ์ฌํ ๊ฒฐ๊ณผ
2) Data Distribution ๋ณํ
- ๋ชจ๋ธ์ ์ ์ฑ
ํจ์์ ๋ฐ๋ผ์ ํ์ตํ ๊ฒฝ์ฐ Q-update๋ก ์ ์ฑ
์ด ๋ฐ๋๊ฒ ๋๋ฉด ์ดํ์ ์์ฑ๋๋ data์ ๋ถํฌ๋ ๋ฐ๋ ์ ์๋ค.
- ํ์ฌ ํ๋ผ๋ฏธํฐ๊ฐ ์ํ์ ์ํฅ์ ์ฃผ๋ฏ๋ก ํธํฅ๋ ์ํ๋ง ํ์ต๋ ์ ์์
- ์ข์ธก์ผ๋ก ๊ฐ๋ Q ๊ฐ์ด ํฌ๋ฉด ๋ค์์๋ ์ผ์ชฝ์ผ๋ก๋ง ๊ฐ๋ feed back loop ์์ฑํ ์ ์์
- ์ด๋ ๊ฒ ๋๋ฉด ํ์ต ํ๋ผ๋ฏธํฐ์ ๋ถ์์ ์ฑ์ ์ ๋ฐํ๊ณ ์ด๋ก ์ธํด local minimum ์๋ ด / ์๊ณ ๋ฆฌ์ฆ ๋ฐ์ฐ ๋ฑ์ ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ
- ⇒ replay memory์์ ์ถ์ถ๋ ๋ฐ์ดํฐ๋ ์๊ฐ ์์ ์ฐ๊ด์ฑ์ด ์ ๋ค. + Q-function์ด ์ฌ๋ฌ action์ ๋์์ ๊ณ ๋ คํด์ ์ ๋ฐ์ดํธ(CNN)๋๋ฏ๋ก ์ ์ฑ ํจ์์ training data์ ๋ถํฌ๊ฐ ๊ธ๊ฒฉํ ํธํฅ๋์ง ์๊ณ smoothing๋จ
- → ๊ธฐ์กด deep Q-learning์ ํ์ต ๋ถ์์ ์ฑ ๋ฌธ์ ํด๊ฒฐ
Experience Replay์ ์ฅ์
- Data Efficiency ์ฆ๊ฐ : ํ๋์ ์ํ์ ์ฌ๋ฌ๋ฒ ๋ชจ๋ธ ์ ๋ฐ์ดํธ์ ์ฌ์ฉ ๊ฐ๋ฅ
- Sample correlation ๊ฐ์ : ๋๋ค ์ถ์ถ๋ก update variance ๋ฎ์ถค
- ํ์ต ์์ ์ฑ ์ฆ๊ฐ : Behavior policy๊ฐ ํ๊ท ํ ๋์ด ํ๋ผ๋ฏธํฐ ๋ถ์์ ์ฑ๊ณผ ๋ฐ์ฐ ์ต์
Target Network
- Target network \( \theta^- \)๋ฅผ ์ด์ฉํด์ target value \( y_t = r_t + \gamma max_{a'}Q(s_{t+1}, a; \theta) \) ๊ณ์ฐ
- Main Q-network \( \theta \) ๋ฅผ ์ด์ฉํด์ action value \( Q(s_t, a_t;\theta) \) ๋ฅผ ๊ณ์ฐ
- Loss function \( (y_t - Q(s_t, a_t;\theta))^2 \) ์ด ์ต์ํ๋๋๋ก Main Q network \( \theta \) ์ ๋ฐ์ดํธ
- ๋งค C ์คํ ๋ง๋ค target network \( \theta^-$๋ฅผ main Q-network \( \theta \) ๋ก ์ ๋ฐ์ดํธ
- ๊ธฐ์กด Q network๋ฅผ ๋ณต์ ํด์ main Q-network์ Target network ์ด์ค ๊ตฌ์กฐ๋ก ๋ง๋ฌ
- Main Q-network : state / action์ ์ด์ฉํด ๊ฒฐ๊ณผ์ธ action value Q๋ฅผ ์ป๋๋ฐ ์ฌ์ฉ, ๋งค ์คํ ๋ง๋ค ํ๋ผ๋ฏธํฐ ์ ๋ฐ์ดํธ
- Target network : ํ๋ผ๋ฏธํฐ ์ ๋ฐ์ดํธ์ ๊ธฐ์ค๊ฐ์ด ๋๋ target value๋ฅผ ์ป๋๋ฐ ์ฌ์ฉ, ๋งค ์คํ ๋ง๋ค ์ ๋ฐ์ดํธ ๋์ง ์๊ณ C ์คํ ๋ง๋ค ํ๋ผ๋ฏธํฐ๊ฐ Main Q-Network์ ๋๊ธฐํ
⇒ ์์ง์ด๋ target value ๋ฌธ์ ๋ก ์ธํ ๋ถ์์ ์ฑ ๊ฐ์
3) ์์ง์ด๋ Target Value
- ๊ธฐ์กด Q-Learning์์๋ ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ ์ ๋ฐ์ดํธ ๋ฐฉ์์ผ๋ก gradient descent ๊ธฐ๋ฐ ๋ฐฉ์ ์ฑํ
- ์ ๋ฐ์ดํธ ๊ธฐ์ค์ ์ธ target value \( y_t \) ๋ \( \theta \)๋ก ํ๋ผ๋ฏธํฐํ → action value์ target value๊ฐ ๋์์ ์์ง์
- ์ํ๋ ๋ฐฉํฅ์ผ๋ก \( \theta \)๊ฐ ์ ๋ฐ์ดํธ ๋์ง ์๊ณ ํ์ต ๋ถ์์ ์ฑ ์ ๋ฐ
⇒ C step ๋์ target network๋ฅผ ์ด์ฉํด target value ๊ณ ์ ํด๋๋ฉด C step ๋์์ ์ํ๋ ๋ฐฉํฅ์ผ๋ก ๋ชจ๋ธ ์ ๋ฐ์ดํธ ๊ฐ๋ฅ, C step ์ดํ ํ๋ผ๋ฏธํฐ๋ฅผ ๋๊ธฐํํด์ bias ์ค์ฌ์ค
Preprocessing
- 2D Convolutional layer์ ๋ง์ถฐ์ ์ ์ฌ๊ฐํ ํํ์ gray scale ์ด๋ฏธ์ง ์ฌ์ฉ
- down sampling
- 4๊ฐ ํ๋ ์์ ํ๋์ Q-function ์ ๋ ฅ์ผ๋ก
Model Architecture
Model eveluation
- ์ต๋ reward
- ์ต๋ ํ๊ท Q value(smooth)
References
728x90