← Back to Blog

[강화학습] Q-Learning and DQN

artificial intelligence > reinforcement learning

2026-06-013 min read

#AI #Reinforcement Learning #Q-learning #DQN

강화학습(RL, Reinforcement Learning)은 정리하면

Agent가 environment 안에서 action을 하면서 reward를 최대화하는 학습 방법이다.

지도학습과의 차이점

지도학습

Input --> Correct Answer

즉, 정답(label)이 있다.

강화학습

정답이 없고 AI가 직접 행동하면서 경험한다.

행동 --> 결과 --> 보상

이런 식으로 시행착오한다.


1. MDP

Q-learning은 강화학습 문제를 다음과 같이 정의한다.

M=(S,A,P,R,γ)\mathcal{M} = (\mathcal{S}, \mathcal{A}, P, R, \gamma)
기호의미
S\mathcal{S}상태 공간
A\mathcal{A}행동 공간
PP상태 전이 확률
RR보상 함수
γ\gamma할인율

2. State Transition

st+1P(st+1st,at)s_{t+1} \sim P(s_{t+1}\mid s_t, a_t)

3. Reward

rt=R(st,at,st+1)r_t = R(s_t, a_t, s_{t+1})

4. Return

강화학습 목표는 미래 누적 보상 최대화
즉, dp 값의 최대화라고 생각하면 된다.

Gt=k=0γkrt+k+1G_t = \sum_{k=0}^\infin \gamma^k r_{t+k+1}

5. Action-Value Function

Q-learning은 다음과 같이 학습한다.

상태 ss 에서 행동 aa 를 했을 때 얻게 될 누적 보상 기대값을 계산하면 된다.

Q(s,a)=E[Gtst=s,at=a]Q(s, a) = \mathbb{E}[G_t\mid s_t = s, a_t = a]

6. Bellman Optimality Equation

최적 Q-function

Q(s,a)=E[r+γmaxaQ(s,a)]Q^*(s, a) = \mathbb{E}[r + \gamma\max_{a^\prime}Q^*(s^\prime,a^\prime)]

Discount Factor

Discount Factor는 미래 보상의 중요도를 조절한다.
저기서 γ\gamma 값이 미래로 갈 수록 작아지는데, 미래에 대한 가중치를 낮춘다고 생각하면 된다.

γ[0,1]\gamma \in [0,1]

7. Q-learning Update

Q(s,a)Q(s,a)+α[r+γmaxaQ(s,a)Q(s,a)]Q(s,a) \leftarrow Q(s,a) + \alpha[r+\gamma\max_{a^\prime}Q(s^\prime,a^\prime)-Q(s,a)]

8. TD Error

δ=r+γmaxaQ(s,a)Q(s,a)\delta = r+\gamma\max_{a^\prime}Q(s^\prime,a^\prime)-Q(s,a)

따라서

Q(s,a)Q(s,a)+αδQ(s,a) \rightarrow Q(s,a) + \alpha\delta

9. Action Selection

Q-learning은 보통 epsilon-greedy policy 사용한다.

at={random actionwith probability ϵargmaxaQ(st,a)otherwisea_t = \begin{cases} \text{random action}\quad&\text{with probability}\ \epsilon\\ \arg\max_a Q(s_t, a)\quad&\text{otherwise} \end{cases}

Exploration vs Exploitation

epsilon-greedy는 둘의 균형을 맞춰준다.


10. DQN

DQN은 Q-table 대신 neural network를 사용한다.

Q(s,a;θ)Q(s, a;\theta)

11. DQN Loss

L(θ)=(r+γmaxaQ(s,a;θ)Q(s,a;θ))2L(\theta) = (r + \gamma\max_{a^\prime} Q(s^\prime, a^\prime;\theta^-) - Q(s, a;\theta))^2

DQN이 Q-learning보다 성능이 좋은 이유

1. Replay Buffer

기존 Q-learning에서는 현재 시점의 transition

(st,at,rt,st+1)(s_t, a_t, r_t, s_{t+1})

만 사용해서 업데이트를 수행한다.

그러나 연속된 transition들은 서로 강한 상관관계를 가지므로, neural network 학습 시 데이터 분포가 비독립적(non-i.i.d.)이 되어 학습이 불안정해 질 수 있다.

이를 완화하기 위해 DQN에서는 replay buffer를 사용한다.

Replay buffer는 transition들을 메모리에 저장한 뒤, 무작위 샘플링(mini-batch sampling)을 통해 학습에 사용한다.

즉,

D=(st,at,rt,st+1)\mathcal{D} = {(s_t, a_t, r_t, s_{t+1})}

로 구성된 replay memory에서 mini-batch를 추출하여 학습한다.


2. Target Network

DQN에서는 TD target 계산 시 사용되는 Q-network의 파라미터가 동시에 업데이트되면 학습 목표 자체가 계속 변화하게 된다.

기존 target은 다음과 같다.

y=r+γmaxaQ(s,a;θ)y = r + \gamma \max_{a'} Q(s',a';\theta)

그러나 이 경우,

θ\theta

가 매 step마다 변화하므로 target value 또한 지속적으로 변하게 되어 학습이 불안정해진다.

이를 해결하기 위해 DQN에서는 별도의 target network,

Q(s,a;θ)Q(s,a;\theta^-)

를 사용한다.

Target network는 일정 주기마다 policy network의 파라미터를 복사하여 업데이트한다.

즉 TD target은,

y=r+γmaxaQ(s,a;θ)y = r + \gamma \max_{a'} Q(s',a';\theta^-)

로 계산된다.


3. Hard Update

Hard update는 일정 step마다:

θθ\theta^- \leftarrow \theta

로 target network를 한 번에 복사하는 방식이다.

본 실험에서는 hard update를 사용하였다.


4. Soft Update (추가 설명용)

Soft update는 target network를 천천히 업데이트하는 방식이다.

θτθ+(1τ)θ\theta^- \leftarrow \tau \theta + (1-\tau)\theta^-

여기서,

τ1\tau \ll 1

이며, target network가 policy network를 천천히 추적하도록 만든다.