테이블에서 신경망으로: Deep RL의 출발점
작은 강화학습 문제에서는 각 상태의 가치(Value)를 테이블(table) 로 모두 저장할 수 있다. 예를 들어 상태가 A, B, C 세 개뿐이라면 다음처럼 쓸 수 있다.
V = {
"A": 0.5,
"B": 0.0,
"C": -0.5,
}
하지만 실제 문제(바둑, 체스, 자율주행, 로봇, 비디오 게임 등)에서는 상태·행동 수가 너무 많거나 연속적 이라 이런 테이블 방식이 불가능하다. 이 한계를 넘기 위해 함수 근사(Function Approximation) 와 신경망(Deep Neural Network) 을 사용하는 것이 곧 Deep RL 의 출발점이다.
(Deep RL - 류지 프로젝트을 바탕으로 재구성했다.)
1. 근사(Approximation)란 무엇인가
근사(Approximation) 는 상태나 행동 수가 너무 많아 모든 값을 정확히 계산·저장할 수 없을 때, 함수나 모델로 그 값을 비슷하게 추정 하는 방법이다.
1-1. 상태 공간이 너무 큰 문제들
- 바둑: 상태 수가 약 (10^{170}) 수준으로 추정된다. (19×19 = 361, 각 위치에 흑/백/빈칸 3가지 → 이론적으로 3^361 ≈ 10^172)
- 체스: 상태 수가 약 (10^{43}) 정도로 추정.
- 자율주행: 위치·속도·다른 차량·보행자·신호등·도로 상황 등 대부분이 연속값 → 상태 공간이 사실상 무한대.
- 로봇 제어: 관절 각도·속도·힘·센서 값 등 연속 상태.
- 비디오 게임(Atari 등): 화면(예: 84×84 픽셀)이 상태 → 픽셀 조합 수가 천문학적.
이런 문제에서 모든 상태의 가치를 테이블에 저장하는 것은 물리적으로 불가능 하다.
1-2. 함수 근사(Function Approximation)의 아이디어
해결법:
상태마다 값을 저장하는 대신,
상태가 들어오면 가치를 계산하는 함수 를 학습한다.
예를 들어 상태가 숫자 하나라면, 아주 단순하게:
V(s) = w × s
- (s): 상태
- (w): 학습되는 파라미터
w = 0.5
def V(s):
return w * s
상태가 들어올 때마다 계산으로 값이 결정 된다.
상태가 많아도, 저장해야 하는 것은 함수의 파라미터 몇 개(예: w) 뿐이다.
2. 피팅, 언더피팅, 오버피팅
2-1. 피팅(Fitting)
피팅(Fitting) 은 데이터에 맞도록 모델·함수를 조정하는 과정이다.
- 입력과 출력 사이 관계를 가장 잘 설명하는 함수를 찾는다.
- 실제 데이터와 예측 값의 차이(손실)를 줄이도록 파라미터를 학습.
단순 예:
- 1차 함수(선형 회귀)
- 2차·3차 다항식
- 지수·로그 함수
- 신경망(복잡한 비선형 모델)
핵심은 함수의 차수 자체가 아니라, 데이터의 패턴을 얼마나 잘 설명하느냐 이다.
2-2. 언더피팅(Underfitting)
- 모델이 너무 단순 해서 데이터 패턴을 충분히 학습하지 못한 상태.
- 예: 곡선 패턴 데이터를 직선으로만 설명하려 할 때.
- 학습 데이터에서도 오차가 크고, 전반적으로 성능이 낮다.
2-3. 오버피팅(Overfitting)
- 모델이 학습 데이터에 너무 과도하게 맞춰진 상태.
- 패턴뿐 아니라 노이즈까지 외워버린 경우.
- 학습 데이터에서는 정확하지만, 새 데이터에서 성능이 크게 떨어진다.
강화학습의 함수 근사에서도 언더피팅·오버피팅·일반화 는 그대로 중요한 이슈다.
2-4. 무엇이 “저장” 되는가?
함수 자체에 값이 저장되는 것이 아니라,
함수의 파라미터(parameter) 가 학습된다.
강화학습에서 경험을 통해 바뀌는 것은 개별 상태 값이 아니라 모델 파라미터(가중치) 다. 즉, 에이전트의 경험이 함수 안에 저장 되는 셈이다.
왜 저장 공간이 절약될까?
- 테이블 방식: 상태 1,000개 → 최소 1,000개의 값을 저장해야 한다.
- 함수 근사: 상태가 아무리 많아도,
- 함수 구조 + 파라미터 몇 개(예: w, 신경망 가중치)만 저장하면 된다.
3. 일반화(Generalization)
일반화 는 에이전트가 보지 못한 새로운 상태 에 대해서도 적절한 가치나 행동을 예측하는 능력이다.
- 테이블 방식: 학습한 상태에 대해서만 값이 있다 → 새로운 상태가 나오면 대응 불가.
- 함수 근사/신경망: 여러 상태에서 공통 패턴을 학습 → 비슷한 상태 에도 값·행동을 합리적으로 추론.
상태 공간이 큰 강화학습 문제에서 일반화는 필수 이며, Deep RL은 이 일반화를 위해 신경망 을 도입한다.
4. 강화학습에서의 신경망
4-1. 신경망의 역할
강화학습에서 신경망(Neural Network)은 상태(State)를 입력 으로 받아,
- 상태 가치 (V(s))
- 행동 가치 (Q(s,a))
- 정책 (π(a|s))
등을 출력하는 함수 역할을 한다.
상태(State) → 신경망 → 출력(Output)
문제에 따라 출력은 달라진다.
- 상태 가치 V(s): 현재 상태가 얼마나 좋은지 → 숫자 하나.
- 행동 가치 Q(s,a): 이 상태에서 각 행동이 얼마나 좋은지 → 행동 개수만큼의 값.
- 정책 π(a|s): 각 행동을 선택할 확률 → 확률 분포.
신경망이 학습된다는 말은:
경험을 통해 신경망의 가중치가 바뀌면서,
더 좋은 가치/행동 예측을 하게 된다는 뜻이다.
4-2. 신경망 학습 흐름
강화학습에서는 에이전트가 환경과 상호작용하면서 경험을 쌓는다.
상태 s 관찰
→ 신경망으로 행동/가치 계산
→ 행동 a 선택
→ 환경이 다음 상태 s'와 보상 r 반환
→ 이 경험 (s, a, r, s') 로 신경망 업데이트
이 경험들이 누적되면서, 신경망은 점점 더 나은 의사결정 함수를 학습한다.
5. 가치 기반(Value-Based) 강화학습
가치 기반(Value-Based) 방법은 에이전트가 상태나 행동의 가치(Value) 를 학습하고, 그 가치를 기준으로 가장 좋은 행동 을 선택하는 방식이다.
- 행동 규칙(정책) 자체를 직접 학습하기보다는,
- 각 행동의 점수(Q값) 를 계산한 뒤,
- 가장 높은 값을 가진 행동을 선택한다.
5-1. 가치(Value)란?
강화학습에서 가치(Value) 는 어떤 상태·행동이 미래에 얼마나 많은 보상을 가져올지에 대한 기대값 이다.
- 가치가 높다 → 좋은 상태/행동.
- 가치가 낮다 → 좋지 않은 상태/행동.
5-2. 행동 가치 함수 Q(s,a)
행동 가치 함수(Q-value)는 다음을 의미한다.
Q(s, a) = 상태 s에서 행동 a를 선택했을 때,
앞으로 기대되는 누적 보상
예를 들어:
Q(A, 오른쪽) > Q(A, 왼쪽)
이면, 에이전트는 오른쪽 행동 을 선택하는 것이 합리적이다.
5-3. 가치 기반의 핵심 아이디어
현재 상태 확인
↓
각 행동의 Q값 계산
↓
가장 큰 Q값을 가진 행동 선택
행동의 점수를 계산하고, 가장 높은 점수를 선택하는 방식.
5-4. 행동 선택 규칙
가장 기본적인 규칙은:
상태 s에서 가능한 행동 중 Q값이 가장 큰 행동 을 선택한다.
이를 그대로 쓰면 탐험이 부족해지므로, 실전에서는 (\epsilon)-greedy 등으로 탐험을 섞는다.
5-5. 가치 기반 학습 과정
1. 현재 상태 관찰
2. 행동 선택 (예: argmax Q or ε-greedy)
3. 보상 받음
4. 다음 상태로 이동
5. Q값 또는 V값 업데이트
에이전트는 이 과정을 반복하면서 행동 가치를 점점 더 정확하게 학습한다.
5-6. 대표 알고리즘
- Q-Learning: 다음 상태의 최대 Q값을 이용해 현재 Q값을 업데이트.
- SARSA: 현재 정책이 실제 선택한 다음 행동의 Q값으로 업데이트(정책 온-폴리시).
- DQN(Deep Q Network): 신경망으로 Q값을 근사해, Atari 게임·로봇 제어·복잡한 환경 등에 적용.
5-7. 가치 기반 방법의 장단점
- 장점
- 동작 원리가 직관적: 점수 계산 → 최대값 선택.
- 구현이 비교적 간단: Q-learning 계열.
- 연구가 많이 되어 있고, 변형(DQN, Double DQN, Dueling DQN 등)이 풍부.
- 단점
- 행동 수가 매우 크거나 연속적인 경우, Q값 계산·저장이 어렵다.
6. 정책 기반(Policy-Based) 강화학습
정책 기반(Policy-Based) 방법은 상태를 입력받았을 때 어떤 행동을 할지에 대한 정책(Policy) 을 직접 학습하는 방식이다.
- Q값을 계산해 argmax로 행동을 고르는 대신,
- 각 행동을 선택할 확률 분포 π(a|s) 를 직접 학습.
즉,
“각 행동의 점수를 계산” 하기보다,
“행동을 뽑아내는 규칙 자체를 학습” 하는 접근이다.
6-1. 정책(Policy)이란?
정책은 상태 → 행동 선택 규칙 이다.
π(a|s) = 상태 s에서 행동 a를 선택할 확률
예를 들어:
π(오른쪽 | 상태 A) = 0.7
π(왼쪽 | 상태 A) = 0.3
이면, 상태 A에서 에이전트는 70% 확률로 오른쪽, 30% 확률로 왼쪽을 선택한다.
6-2. 정책을 함수로 표현하기
정책은 보통 파라미터 (θ) 를 가진 함수 (π_θ(a|s)) 로 표현한다.
state → neural network(θ) → action probability
예를 들어 신경망 출력이 다음과 같을 수 있다.
[0.1, 0.6, 0.3]
- 행동1 선택 확률 10%
- 행동2 선택 확률 60%
- 행동3 선택 확률 30%
6-3. 정책 기반 학습 방법
정책 기반에서는 좋은 행동 확률을 높이고, 나쁜 행동 확률을 낮추는 방향 으로 파라미터를 업데이트한다.
예:
- 상태 A에서 오른쪽을 선택해 +10 보상 →
π(오른쪽|A)를 증가시키는 방향. - 상태 A에서 왼쪽 선택해 -5 보상 →
π(왼쪽|A)를 감소시키는 방향.
6-4. 정책 기반이 필요한 이유
- 행동 공간이 매우 큰 경우
- 로봇 제어, 드론 제어처럼 행동이 수천 개/연속인 경우, Q값 테이블·argmax가 비현실적.
- 연속 행동 문제
- 자동차 핸들 각도, 로봇 팔 관절 각도 등 행동이 연속값인 경우, Q-table 방식이 어렵다.
정책 기반은 바로 연속/대규모 행동 공간 에 자연스럽게 대응할 수 있다.
6-5. 정책 기반 학습 과정
1. 상태 관찰
2. 정책이 각 행동의 선택 확률 계산
3. 확률에 따라 행동 샘플링
4. 보상 받음
5. 정책 파라미터 업데이트 (Policy Gradient 등)
6-6. 대표 알고리즘
- Policy Gradient: 가장 기본적인 정책 기반 알고리즘.
- REINFORCE: Monte Carlo 기반 정책 학습.
- PPO (Proximal Policy Optimization): 가장 널리 사용되는 정책 기반 알고리즘 중 하나.
- Actor–Critic 계열: 정책(Actor)과 가치 함수(Critic)를 동시에 학습.
6-7. 정책 기반의 장단점
- 장점
- 연속 행동 문제 해결 가능: 로봇 제어 등.
- 확률적 정책으로 탐험(exploration) 이 자연스럽다.
- 복잡하고 큰 행동 공간에도 적용 가능.
- 단점
- 학습이 불안정할 수 있음: 업데이트가 너무 크면 정책이 흔들릴 수 있다.
- 샘플 효율이 낮을 수 있음: 많은 경험 데이터 필요.
마치며
- Deep RL의 핵심은 테이블 방식에서 함수 근사(특히 신경망)로 넘어가는 것 이다.
- 함수 근사는 근사·피팅·언더/오버피팅·일반화 같은 고전 ML 개념을 RL에 그대로 가져온다.
- 신경망은 상태를 입력받아 가치나 정책을 출력하는 근사 함수 로, 복잡한 상태 공간에서도 합리적인 의사결정을 가능하게 한다.
- 그 위에 가치 기반(Value-Based) 과 정책 기반(Policy-Based) 이라는 두 축이 있고, Actor–Critic·DQN·PPO 같은 알고리즘들이 이 위에서 구현된다.
이 글의 내용을 바탕으로, 이후에는 Q-learning + 신경망(DQN) 이나 정책 경사(Policy Gradient) + 신경망 을 직접 구현해 보면 Deep RL의 전체 그림이 한층 더 명확해질 것이다.
'현재 > 강화학습' 카테고리의 다른 글
| Policy 기반 에이전트 - REINFORCE, Actor-Critic, TD Actor-Critic (0) | 2026.03.13 |
|---|---|
| Q-learning과 DQN - Q값 업데이트, Gym·CartPole 실습 (0) | 2026.03.12 |
| Monte Carlo와 TD Learning - GridWorld로 비교하는 모델 프리 가치 학습 (0) | 2026.03.10 |
| 벨만 기대 방정식 - 술취한 사람 예제로 이해하는 가치 함수와 값 반복 (0) | 2026.03.09 |
| 강화학습 기초 - 지도학습과의 차이, 리워드·에이전트·MDP·멀티암드 밴딧 (0) | 2026.03.04 |