강화학습 알고리즘에 인공신경망의 도입
지금까지는 toy 문제를 통해 강화학습의 알고리즘을 살펴봤다.
이들 문제는 상태 공간과 행동 공간이 작고, 시간 길이 또한 길지 않았기 때문에 테이블 기반 방법론으로 충분히 해결할 수 있었다.
즉, 상태에 대한 가치 V(s)나 행동 가치 를 표에 직접 저장해도 문제가 없었다.

그러나 체스나 바둑처럼 상태의 수가 거의 무한대에 가까운 문제에서는 상황이 완전히 달라진다.
상태가 연속적이거나 조합적으로 폭발하면, 테이블의 크기는 감당할 수 없을 정도로 커진다.
이 경우 우리는 더 이상 값을 “저장”할 수 없고, 값을 “근사”해야 한다.
즉, 테이블 대신 함수 fθ(s)로 가치 함수를 표현한다. 여기서 θ는 우리가 학습해야 할 파라미터이다.
함수 근사는 일반화 능력을 제공한다.
학습한 적 없는 상태에 대해서도 비슷한 입력이라면 비슷한 출력을 낼 수 있다.

하지만 함수의 차수가 너무 낮으면 underfitting이 발생하고, 지나치게 높으면 노이즈까지 학습하는 overfitting이 발생한다.
복잡한 MDP에서는 단순 다항식으로는 부족하며, 훨씬 더 유연한 함수가 필요하다.
인공신경망의 등장
이때 등장하는 것이 인공신경망이다.
인공신경망은 수많은 파라미터를 가진 고유연성 함수로,
입력의 선형 결합과 비선형 활성화 함수를 반복적으로 적용해 복잡한 표현을 학습한다.

학습은 손실 함수를 정의한 뒤, gradient descent로 파라미터를 업데이트하는 방식으로 이루어진다.
오늘날에는 PyTorch와 같은 라이브러리가 이 과정을 자동으로 수행한다.
이렇게 강화학습에 인공신경망을 결합한 것이 바로 Deep Reinforcement Learning의 출발점이다.
Value 기반의 Agent
Value 기반 에이전트는 다음과 같이 생각하면 쉽다.
- Q값을 신경망으로 표현한다.
- Q값이 곧 행동 기준이 된다.
- MC나 TD로 만든 target을 이용해 Q를 점점 보정한다.
즉, Q를 잘 예측하는 신경망을 만들면 그 신경망이 곧 에이전트가 된다.
이때 학습된 신경망을 Value Network라고 부른다.
Q값을 신경망으로 표현한다는 것의 의미
우선 Q값을 신경망으로 표현한다는 것은 상태-행동 가치 함수 Q(s,a)를 테이블이 아니라 신경망 Q_θ(s,a)로 표현하는 것이다.
왜 Q를 배우면 Agent가 될까?
Value 기반이라는 말의 의미는 “가치를 통해 행동을 결정한다”는 뜻이다.
예를 들어 어떤 상태 에서
- 위로 가면 Q값이 3
- 아래로 가면 Q값이 5
라면 우리는 그냥 값이 더 큰 행동을 선택하면 된다.

즉, Q값만 잘 학습되면 policy를 따로 만들 필요가 없다.
그래서 Value 기반 에이전트는 Q 네트워크 자체가 곧 에이전트다.
신경망의 학습은 어떻게 이루어지는가?
신경망의 학습 구조는 지도학습과 매우 비슷하다.
- 정책으로 환경에서 데이터를 모은다.
- 어떤 “정답(target)”을 만든다.
- 현재 Q값과 정답의 차이를 Loss로 정의한다.
그 차이를 줄이도록 신경망 파라미터 θ를 업데이트한다.

우선 왜 환경에서 데이터를 모을까?
우리가 모든 상태에 대한 value값을 알고 있다면 loss function은 오른쪽과 같이 된다.
이 상태에서 L(θ)를 줄이도록 θ를 업데이트하면 이것이 곧 학습이다.
그런데 10^170과 같이 매우 큰 환경에서는 모든 상태의 값을 알려준다고 하더라도 loss function이 너무 많아서 접근하기 어렵다.

그래서 실제로는 오른쪽과 같이 정답의 샘플을 모은 기댓값을 사용한다.
적당히 샘플을 뽑아서 이것만을 가지고 L(θ)를 최소화하는 것이다.
적당한 sample은 π를 이용하면 된다.
즉 어떤 policy π가 주어졌고, 얘의 value를 평가하고 싶다면 π를 이용해 데이터를 뽑아서 학습하면 된다.
이 과정에서 파라미터 θ의 업데이트는 파이토치가 모두 해결해주기 때문에 우리는 Loss function만 잘 지정해주면 된다.
정답(target)은?
이때, 학습의 방향이 되는 정답(target) 값은 Monte Carlo나 Time Temporal 방식으로 사용할 수 있다.
Monte Carlo의 경우 에피소드를 끝까지 진행했을 때의 Return값 G를 활용해 업데이트를 했다.
이 경우 Loss function과 Update 함수는 다음과 같다.



반면 Time Difference 방식의 경우 Return G 대신에 다음의 값을 target으로 사용했다.
이 경우 Loss function과 Update 함수는 다음과 같다.


중요한 점은, 이 target은 “고정된 숫자”처럼 취급해야 한다는 것이다.
만약 target까지 같이 미분하면, 정답도 같이 움직이게 되어 학습이 불안정해진다.
Deep-Q Learning 이론
이제 신경망 파라미터 θ를 업데이트하면서 Value Network를 학습하는 방법을 알았다.
정책은 따로 학습하지 않고, 주어진 정책으로 데이터를 모아 그 정책의 가치를 평가하는 구조였다.
이제 한 단계 더 나아가 Action-Value function Q(s,a)를 직접 학습해, 실제 환경에서 행동까지 선택할 수 있어야 한다.
이것이 바로 Q-Learning이며, 이를 신경망으로 확장한 것이 Deep-Q Learning이다.
Q-Learning의 이론적 배경
State value V(s)는 “이 상태가 얼마나 좋은가”를 알려주는 값이지만, 실제 행동을 고르기 위해서는 각 행동의 가치를 알아야 한다. 그래서 등장하는 것이 Action value Q(s,a)이다.
Q-Learning은 직관적인 생각에서 출발한다.
“지금 행동의 가치는 지금 받은 보상 + 다음 상태에서 가장 좋은 행동의 가치다.”
이를 수식으로 쓰면 다음과 같다.

Qπ(s,a)는 정책 π를 따를 때의 가치이고, Q*(s,a)는 최적 정책을 따를 때의 가치다.
우리는 결국 Q*(s,a)를 배우는 것이 목적이다.
왜냐하면 아래 식을 통해 가장 가치가 큰 행동을 선택하면 최적 정책이 되기 때문이다.

인공신경망을 결합한 Deep-Q Learning의 학습 과정
우리는 Q를 테이블이 아니라 신경망 Q_θ(s,a)로 표현한다.
그리고 이렇게 학습한다.

일단 현재 상태 s에서 Value Network의 policy에 따라 가장 좋은 a(argmax)를 수행한다.
이를 통해 보상 r을 받아서 다음 상태 s'으로 갔다.
그 상태에서 사장 좋아 보이는 행동의 Q값을 본다.
이때, 이 둘을 합친 것이 현재 상태의 목표값이 된다.
이것이 벨만 최적 방정식을 활용한 Deep-Q Learning의 직관이다.
정리
Deep-Q Learning은
- Q를 신경망으로 표현하고
- “보상 + 다음 상태의 최고 Q값”을 목표로 삼아
- 그 차이를 줄이는 방식으로 학습하는 방법이다.
이는 곧 “현재 예측을 다음 상태의 더 좋은 예측으로 조금씩 고쳐나가는 과정”이다.
딥마인드 DQN이 이 이론을 실제로 성공시킨 딥마인드 DQN을 보게 된다.
'딥러닝 모델 > DQN for Cloud-Edge Caching' 카테고리의 다른 글
| [강화학습 기초 9] Policy 기반 강화학습과 Policy Gradient 이론 (Value 기반 vs Policy 기반) (0) | 2026.03.04 |
|---|---|
| [강화학습 기초 8] 딥마인드 DQN의 구조와 학습 테크닉 (Replay Buffer, Target Network) (0) | 2026.03.03 |
| [강화학습 기초 6] Temporal Difference를 통한 step 기반 가치 평가 (MDP를 모를 때) (0) | 2026.03.03 |
| [강화학습 기초 5] Monte Carlo를 통한 에피소드 기반 가치 평가 (MDP를 모를 때) (0) | 2026.03.02 |
| [강화학습 기초 4] Dynamic Programming 기반 Solution (MDP를 알 때) (0) | 2026.03.01 |