[강화학습] Deep Reinforcement Learning 개념

2026. 3. 3. 10:37·개념 정리 step2/강화 학습

1. 근사

근사(Approximation)란 상태나 행동의 수가 너무 많아 모든 경우의 값을 정확히 계산하거나 저장하기 어려울 때, 함수나 모델을 이용해 그 값을 비슷하게 추정하는 방법입니다. 현실의 문제처럼 상태가 연속적이거나 무수히 많을 경우 모든 값을 표(table)로 저장하는 것은 불가능합니다. 따라서 신경망이나 수학적 모델을 사용해 여러 상태의 공통된 패턴을 학습하고, 현실적으로 계산 가능한 범위에서 근삿값을 예측하도록 만듭니다.

1) 바둑의 상태 수

바둑의 가능한 상태 수는 우주의 원자 수보다도 많은 약 $10^{170}$ 정도로 추정됩니다. 바둑판의 361개 교차점에 올 수 있는 돌의 경우의 수를 고려하면 이처럼 엄청난 상태 공간을 갖게 되므로, 모든 상태의 가치를 테이블에 일일이 저장하는 것은 물리적으로 불가능합니다.

2) 상태 공간이 매우 큰 문제들

  • 체스: 가능한 상태의 수가 약 $10^{43}$ 정도로, 테이블 저장이 불가능할 만큼 큽니다.
  • 자율주행 자동차: 차량 위치, 속도, 보행자, 센서 데이터 등 수많은 요소가 연속값(continuous value)으로 구성되어 상태의 수가 사실상 무한대입니다.
  • 로봇 제어: 로봇 팔의 각도, 속도, 힘 등이 모두 연속적인 값이라 상태 공간이 매우 큽니다.
  • 비디오 게임: 화면의 픽셀 값 조합 자체가 상태가 되므로 가능한 상태 수가 천문학적으로 커집니다.

3) 모든 상태의 가치를 저장할 수 없다면?

상태마다 가치를 직접 저장하는 대신 함수 근사를 사용합니다. 즉, 딥러닝 기반의 신경망 같은 모델이 상태 데이터의 특징과 패턴을 학습하여, 처음 보는 상태가 입력되어도 그 가치를 근사적으로 추정(일반화)할 수 있게 만드는 방식입니다. 이를 통해 대규모 상태 공간 문제를 효율적으로 해결할 수 있습니다.


2. 함수 근사가 필요한 이유

1) 테이블에 저장하는 방식

예를 들어 상태가 몇 개 안 되는 문제라면 다음처럼 저장할 수 있습니다.

V = {
    "A": 0.5,
    "B": 0.0,
    "C": -0.5
}

상태가 적을 때는 직관적이지만, 상태 수가 무수히 많은 현실의 강화학습 문제에서는 이 방식이 불가능합니다.

 

2) 함수 근사

이 문제를 해결하는 핵심 아이디어는 다음과 같습니다.

상태마다 값을 저장하는 대신, 상태가 들어오면 그 가치를 계산해 내는 '함수'를 학습한다.

예를 들어 상태가 숫자 하나라면 함수를 다음처럼 만들 수 있습니다.

$$V(s) = w \times s$$
  • $s$ : 상태
  • $w$ : 학습되는 파라미터 ($w = 0.5$ 가정)
def V(s):
    return w * s

이렇게 하면 테이블에 값을 저장할 필요 없이, 상태 값이 들어올 때마다 연산을 통해 가치를 결정할 수 있습니다.

 

피팅 (Fitting)

모델이 주어진 데이터의 패턴(입력과 출력의 관계)을 가장 잘 설명하도록 함수의 파라미터(가중치)를 조정하는 학습 과정입니다. 데이터가 단순하면 1차 함수로 충분하지만, 복잡할수록 다항식이나 신경망 같은 비선형 모델을 사용하여 맞춥니다.

  • Underfitting (과소적합):
    • 모델이 너무 단순하여 데이터의 전반적인 경향조차 제대로 파악하지 못한 상태입니다.
  • Overfitting (과적합):
    • 학습 데이터의 우연한 노이즈까지 과도하게 학습해버려, 새로운 데이터가 들어오면 예측 성능(일반화)이 크게 떨어지는 상태입니다.

3) 함수 근사에서 "저장" 되는 것

함수 자체에 값을 저장하는 것이 아니라 함수의 파라미터가 업데이트되며 학습됩니다.

강화학습에서 경험을 통해 바뀌는 것은 개별 상태의 값이 아니라 함수의 가중치입니다.

 

왜 함수를 사용하면 저장 공간이 덜 필요할까?

무수히 많은 상태 값을 일일이 메모리에 보관할 필요 없이, 상태를 입력받아 값을 계산해 내는 함수의 구조와 소수의 파라미터만 저장하면 되기 때문입니다.

4) 일반화 (Generalization)

학습 과정에서 한 번도 경험하지 못한 새로운 상태가 주어져도, 모델이 기존에 학습한 '공통된 패턴'을 바탕으로 합리적인 가치나 행동을 예측해 내는 능력입니다. 상태 공간이 막대한 문제에서는 개별 상태를 기억하는 것보다 이 일반화 능력이 훨씬 중요합니다.


3. 강화학습에서의 신경망

1) 신경망의 역할

상태가 너무 많아 테이블을 쓸 수 없을 때, 복잡한 상태를 이해하고 최적의 선택을 판단하도록 돕는 "근사 함수(계산기)" 역할을 합니다.

상태(State) → 신경망 → 출력(Output)

출력은 문제 목적에 따라 다릅니다.

  • 상태 가치 $V(s)$: 현재 상태가 목표에 얼마나 가까운가? (점수)
  • 행동 가치 $Q(s,a)$: 이 상태에서 특정 행동이 얼마나 좋은가?
  • 정책 $\pi(a|s)$: 이 상태에서 각 행동을 선택할 확률은 얼마인가?

경험을 통해 신경망의 가중치가 업데이트되면서 점차 더 정교한 가치 및 행동 예측을 해냅니다.

2) 신경망의 학습 과정

1. 상태 s 관찰
2. 신경망으로 행동/가치 계산 후 행동 a 선택
3. 환경이 다음 상태 s'와 보상 r 반환
4. 이 경험을 바탕으로 신경망 업데이트

4. 가치 기반 (Value-Based)

에이전트가 어떤 상태나 행동의 가치(점수)를 학습하고, 그 점수를 기준으로 가장 좋은 행동을 선택하는 방식입니다.

1) 가치(Value)란?

어떤 행동이나 상태가 미래에 가져다줄 보상의 기대값입니다. 가치가 높을수록 좋은 선택입니다.

2) 핵심 아이디어

행동들의 점수를 계산하고 가장 높은 점수를 고릅니다.

상태 확인 → 각 행동의 가치 계산 → 최고 가치의 행동 선택

3) 행동 가치 함수 $Q(s,a)$

상태 $s$에서 행동 $a$를 선택했을 때 예상되는 보상 총합입니다.

$$Q(A, \text{오른쪽}) > Q(A, \text{왼쪽})$$

이므로 에이전트는 오른쪽을 선택합니다.

4) 행동 선택 방법

가능한 행동 중 $Q$값이 가장 큰 행동을 선택합니다.

5) 학습 과정

  1. 현재 상태 관찰 → 2. 행동 선택 → 3. 보상 받음 → 4. 다음 상태 이동 → 5. 가치(Q값) 업데이트

6) 대표 알고리즘

  1. Q-Learning: 가장 기본적이며 다음 상태의 최대 Q값을 이용해 업데이트.
  2. SARSA: 현재 정책을 따르며 비교적 보수적인 방식.
  3. DQN (Deep Q Network)⭐: 신경망을 이용해 Q값을 근사하여 복잡한 환경 해결.

7) 장단점

  • 장점:
    • 계산 방식이 직관적이고 구현이 비교적 간단합니다. 연구 데이터가 풍부합니다.
  • 단점:
    • 가능한 행동의 수가 무수히 많아지면 모든 Q값을 계산하기 힘들어집니다.

5. 정책 기반 (Policy-Based)

에이전트가 행동의 가치를 거치지 않고, 상태가 입력되면 어떤 행동을 취할지 규칙 자체(확률)를 직접 학습하는 방법입니다.

1) 정책(Policy)이란?

상태가 주어졌을 때 특정 행동을 선택할 확률입니다.

$$\pi(a|s)$$

(예: 70% 확률로 오른쪽 선택)

2) 핵심 아이디어

상태 → 정책(신경망) → 각 행동의 선택 확률 → 행동 선택

3) 정책을 함수로 표현

$\theta$ : 정책 신경망의 가중치

신경망이 [0.1, 0.6, 0.3] 처럼 각 행동을 할 확률을 직접 출력해 줍니다.

4) 학습 방법

경험을 바탕으로 보상이 좋았던 행동은 다음번에 선택할 확률을 높이고, 결과가 나빴던 행동은 확률을 낮추는 방식으로 정책을 업데이트합니다.

5) 필요한 이유

  • 큰 행동 공간: 로봇 제어처럼 행동이 수천 개면 Q값 계산이 너무 무겁습니다.
  • 연속 행동 문제: 핸들 각도처럼 값이 연속적(0.1, 0.2...)일 때는 정책 기반 방식이 필수입니다.

6) 학습 과정

  1. 상태 관찰 → 2. 행동 확률 계산 → 3. 행동 선택 → 4. 보상 받음 → 5. 정책 파라미터 업데이트

7) 대표 알고리즘

  • Policy Gradient: 가장 기본적인 직접 업데이트 방식.
  • REINFORCE: 몬테카를로 기반 학습.
  • PPO: 현재 가장 널리 쓰이는 안정적인 알고리즘.
  • Actor-Critic: 정책과 가치를 동시에 다루는 하이브리드 방식.

8) 장단점

  • 장점: 연속적인 행동과 복잡한 문제 처리가 가능하고 확률적 탐험에 유리합니다.
  • 단점: 학습이 흔들리거나 불안정할 수 있고, 더 많은 데이터 경험이 필요할 수 있습니다.

'개념 정리 step2 > 강화 학습' 카테고리의 다른 글

[강화학습] Policy Gradient부터 Actor-Critic까지 정리  (0) 2026.03.10
[강화학습] Q-learning의 개념부터 Gym을 활용한 DQN 구현까지  (0) 2026.03.04
[강화학습] TD Learning (시간차 학습) 개념, 랜덤 벽 GridWorld 실습  (0) 2026.03.01
[강화학습] Monte Carlo Learning 정리  (0) 2026.02.28
[강화학습] 벨만 기대 방정식 (Bellman Expectation Equation)  (0) 2026.02.27
'개념 정리 step2/강화 학습' 카테고리의 다른 글
  • [강화학습] Policy Gradient부터 Actor-Critic까지 정리
  • [강화학습] Q-learning의 개념부터 Gym을 활용한 DQN 구현까지
  • [강화학습] TD Learning (시간차 학습) 개념, 랜덤 벽 GridWorld 실습
  • [강화학습] Monte Carlo Learning 정리
고니3000원
고니3000원
공부 내용 정리, 자기발전 블로그 입니다. 기존 네이버 블로그에서 티스토리로 이전했습니다. https://blog.naver.com/pak1010pak
  • 고니3000원
    곤이의 공부 블로그
    고니3000원
  • 전체
    오늘
    어제
    • 분류 전체보기 (178) N
      • 1. AI 논문 + 모델 분석 (20)
        • AI 논문 분석 (13)
        • AI 모델 분석 (7)
      • 2. 자료구조와 알고리즘 (16)
        • 2-1 자료구조와 알고리즘 (13)
        • 2-2 강화학습 알고리즘 (3)
      • 3. 자습 & 메모(실전, 실습, 프로젝트) (25)
        • 3-1 문제 해석 (4)
        • 3-2 메모(실전, 프로젝트) (14)
        • 3-3 배포 실전 공부 (7)
      • 4. [팀] 프로젝트 및 공모전 (14)
        • 4-1 팀 프로젝트(메모, 공부) (1)
        • 4-2 Meat-A-Eye (6)
        • 4-3 RL-Tycoon-Agent (3)
        • 4-4 구조물 안정성 물리 추론 AI 경진대회(D.. (4)
      • 5. [개인] 프로젝트 및 공모전 (0)
        • 4-1 귀멸의칼날디펜스(자바스크립트 활용) (5)
        • 4-2 바탕화면 AI 펫 프로그램 (4)
        • 4-3 개인 프로젝트(기타) (3)
      • 개념 정리 step1 (32)
        • Python 기초 (7)
        • DBMS (1)
        • HTML | CSS (3)
        • Git | GitHub (1)
        • JavaScript (5)
        • Node.js (5)
        • React (1)
        • 데이터 분석 (6)
        • Python Engineering (3)
      • 개념 정리 step2 (57) N
        • Machine | Deep Learning (15)
        • 멀티모달(Multi-modal) (23)
        • 강화 학습 (10)
        • AI Agent (9) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 네이버 곤이의 블로그(Naver->Tistory)
    • Github
  • 공지사항

  • 인기 글

  • 태그

    transformer
    github
    Python
    html
    paddleocr
    강화 학습
    파이썬
    알고리즘
    파인튜닝
    강화학습
    학습
    Attention Is All You Need
    귀칼
    Vision
    EfficientNet
    bottleneck
    공모전
    구현
    javascript
    ViT
    pandas
    OCR학습
    데이터분석
    OCR
    프로젝트
    자료구조
    논문 리뷰
    자바스크립트
    Ai
    Grad-CAM
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
고니3000원
[강화학습] Deep Reinforcement Learning 개념
상단으로

티스토리툴바