[Deep Learning] DQN, Deep - Q Learning (강의 14)

이수빈·2023년 6월 14일
0

1 Reinforcement Learning, 강화 학습


☑️ what) 현재 상태(State)가 주어졌을 때, 미래 보상(Reward)의 기댓값을 최대화하는 행동(Action)을 고르는 함수를 학습하는 것.

  • S: State, A: Action, R: Reward
  • state 함수, reward 함수, policy 함수
  • value 함수: 미래의 보상을 계산하는 함수이다. 최근의 보상에 가중치를 주기 위해 discount factor γ[0,1)\gamma \in [0, 1) 를 사용한다.
S(s,a)=sR(s,a)=rp(s)=aVp(s)=kγk1rk\mathcal S(s, a) = s \\ \mathcal R(s, a) = r \\ \mathcal p(s) = a \\ \mathcal V^p(s) = \sum_k \gamma^{k-1} r_k

1 Q-Learning


☑️ what) Q-Learning 강화 학습의 한 종류이다. Q는 Quality를 의미하고, Q는 다음과 같이 정의된다.

popt(s)=argmaxp{Vp(s)}, Vopt=VpoptQ(s,a)=R(s,a)+γVopt(S(s,a))\mathcal p_{opt}(s) = argmax_p\{V^p(s)\},\ V_{opt} = V^{popt} \\ Q(s, a) = \mathcal R(s,a) + \gamma V_{opt}(S(s, a))

식을 정리하여 Q 함수를 재귀적으로 정의할 수 있다.

popt(s)=argmaxa{Q(s,a))}Vopt=Vpopt=maxα(Q(s,α))  where αAQ(s,a)=R(s,a)+maxα(Q(s,α))p_{opt}(s)= argmax_a \{Q(s, a))\} \\ V_{opt} = V^{popt} = max_\alpha(Q(s, \alpha))\ \ where \ \alpha \in A\\ Q(s, a) = \mathcal R(s, a) + max_\alpha(Q(s, \alpha))

재귀적으로 정의되면, Q의 수렴을 예상할 수 있다는 것이다. 따라서 우리는 Q를 추정하여 사용한다.→ Q table 이용

how) 알고리즘
0. Q 테이블 초기화 (random value)
1. Choose an action aa. (softmax, ϵ\epsilon-greedy)
2. Perform aa and get reward.
3. Observe the new state.
4. Update (α\alpha 를 조정하여 사용)

1. Action Selection

1) softmax

2) ϵ\epsilon-greedy

2. Update (Evaluation)

2 Deep Q-Learning


Q-Learning의 Q-table 대신에 Deep Learning 기법을 사용한다.

🥲 pb) Atari라는 게임에서 딥러닝과 Q러닝을 결합하려는 시도를 처음하였다. state값이 이미지였고, 이는 Q-table이 모든 state를 담을 수 없다는 것을 의미했다. (not fit in memory)
→ sol) 이에 따라 Q-table의 approximator로써 DNN을 사용했다.

how) CONV + FF

👍🏻 gd) stateless (과거 정보가 필요없는) game에서 성능이 좋다. 과거 정보를 많이 고려하지 않아도 되기 때문이다.
🥲 pb) 반면, statefull game (과거 정보가 많이 필요한) 에서는 성능이 좋지 않다.

3 Discussion


  1. 👍🏻 gd) CONV, FF등 병렬 처리에 용이한 네트워크를 사용하므로 GPU를 사용할 수 있다.
  2. 모든 부분을 학습하지 않고, 중요한 부분을 추출해서 학습할 수 있다.
  3. 과거 상태가 필요한 경우, RNN을 붙여볼 수 있다.

👍🏻 gd) almost unlimited training data, 잘하는 사람이 게임을 하면 데이터가 수집된다.

Double Q-Learning

🥲 pb) 학습이 진행됨에 따라 action이 overestimate되는 경향이 있다. Action selection과 evaluation 과정에서 하나의 DQN을 사용하기 때문에 발생한다.
-> sol) 각각의 과정에서 다른 DQN(2개의 DQN)을 사용한다. 대칭적으로 업데이트 된다.

0개의 댓글