DQN에 들어가기 앞서, 강화학습에 대해서 간략하게 알아보자. 강화학습은 머신러닝의 분야 중 하나에 속한다. 먼저 머신러닝은 기계가 획득된 데이터로 스스로 학습해 인간과 유사한 사고를 하게 되는 것을 의미한다. 그 중에서 강화학습은, 기계가 스스로 어떠한 행동을 하고
본격적으로 강화학습에 대해서 자세하게 들어가기전 한 가지 상황을 생각해보자. 위의 그림은 놀랍게도 슬롯머신을 그린 것이다. 각 슬롯머신은 정해져있는 돈이 아닌 확률분포에 따른 돈을 주게 된다. 한번에 하나의 슬롯머신을 선택할 수 있다면, 어떤 슬롯머신을 선택해야 더
과거의 상태가 미래와 전혀 관련이 없고, 과거와 미래가 서로 독립적인 특성을 의미한다.위 수식은 $St$ 에서의 $S{t+1}$ 의 확률이나, $S1$ 부터 $S_t$까지 모두 발생한 후에 $S{t+1}$ 가 발생할 확률이 서로 같다. 즉 과거의 상태는 관여하지 않다는
글에 들어가기 앞서 간단한 개념을 복기해보자. 현재 다루는 environment는 MDP조건을 만족하는 상황이다.policy: state에서 action을 선택하는 확률이다.optimum policy: policy중에서 최대의 return값을 가지도록 선택하는 걸 의미
Model-Free Aproach Dynamic programming의 문제점 Dynamic programming은 치명적인 단점이 존재한다. 바로 Model에 대해서 모든 것을 알고 있다는 전제이다. 즉, state transition의 확률(policy), rewa
Temporal Difference Temporal Difference 즉 TD method는 이전 글에서의 Monte Carlo와 같이 MDP를 Bellman Equation을 활용해서 해결하는 방법 중에 하나이다. 이전 Dynamic Programming과 Mont
SARSA는 State Action Reward State Action의 줄임말이다. 먼저, TD(Temporal Difference) control에 대해서 알아보자, TD method에서는 최적의 policy를 구축하는 것이 목표다. policy는 모든 sta
Q learning의 가장 큰 특징은 모델 없이 학습하는 강화학습 알고리즘이라는 것이다. 강화학습 MDP를 기반으로 한다. 여기서 Q learning은 각 state에서의 transition에 대한 정보가 없어도 구현이 가능한 알고리즘이다. 즉 agent는 env
기존의 Q learning은 state,actoin에 해당하는 Q table이 필요했다. 이는, state와 action의 수가 많아지게 되면, Q table의 크기가 커지게 되며, 많은 memory를 필요로하게 된다. 따라서, 이를 딥러닝으로 해결하는 Deep Q N
기존의 DQN은 action에 대한 평가 및 더 좋은 action을 선택하기위해 Q value(action return의 expectation) 를 사용한다. Q value는 바로 해당 action을 선택했을 때, 추후의 reward까지 계산하여, 총 reward값인
$Yt^Q=R{t+1}+\\gamma max{a'}Q(s',a';\\theta^{-})$→ $Y_t^{DoubleDQN}R{t+1}+\\gamma Qs',argmax\_{a'}Q(s',a';\\theta);\\theta^-$ target network에서의 max Q값
기존의 DQN: Epsilon-Greedy Algorithm을 사용해 exploration을 수행Prioritized Experience Replay: buffer에 저장되는 각 transtition에 대해서 우선순위( ${TD}\_{error}$ 가 클수록 우선순
기존 DQN은 CNN을 이용해 Q-network를 구성한다. 기존의 신경망 구조 보다 더 좋은 policy evaluation 즉, 강화학습에 더 특화된 신경망 구조로 성능을 향상시키는 것이다. 어떤 방식으로 성능 향상을 이루어내는지 확인해보자.기존의 DQN은 acti
TD(Temporal Difference) error가 큰 것에 우선수위를 부여해, memory에서 batch sample을 추출할때, 더 자주 학습이 이루어질 수 있도록 하는 방법이다.기본적인 DQN:memory에서 batch size만큼의 sample을 뽑을 때,