콘텐츠로 이동

P4-19.1 가치 기반 강화학습(value-based reinforcement learning)

Section ID: P4-19.1 Version: v2026.07.20

P4-2.3에서는 강화학습(reinforcement learning)을 행동(action)과 보상(reward)을 통해 정책(policy)을 조정하는 학습으로 잡았습니다. 여기서 한 단계 더 들어가면 다음 질문이 나옵니다.

강화학습 알고리즘을 처음 만나면 질문이 바로 생깁니다.

  • 어떤 상태(state)에서 어떤 행동이 좋은지, 모델은 무엇을 기준으로 배우는가?
  • 좋다는 것을 규칙처럼 적는가, 숫자로 적는가?
  • Q-learning과 SARSA는 둘 다 강화학습이라는데 무엇이 다른가?

가치 기반 강화학습은 어떤 상태에서 어떤 행동이 장기적으로 얼마나 좋은지 값을 붙여 가며 배우는 접근이다.

이 절은 가치 기반 강화학습(value-based reinforcement learning), 상태 가치(state value), 행동 가치(action value), Q-value의 기본 뜻을 설명합니다. 뒤 절에서는 이 손잡이를 바탕으로 현재 맥락의 판단을 이어 가고, 행동의 장기적 좋음을 점수로 읽는 기본 감각은 이 절과 개념사전을 기준으로 다시 연결합니다.

가치 기반 강화학습(value-based reinforcement learning)에서 닫을 질문

이 절은 다음 질문에 답합니다.

  • 가치(value)를 배운다는 말은 무엇을 뜻하는가?
  • 상태 가치(state value)와 행동 가치(action value)는 어떻게 다른가?
  • Q-value는 왜 강화학습에서 중요한가?
  • Q-learning과 SARSA는 어떤 점에서 닮았고, 어떤 점에서 다른가?
  • 가치 기반 강화학습은 어떤 문제에 잘 맞고, 어디서 한계를 보이기 시작하는가?

이 절은 먼저 가치(value)를 붙여 행동의 장기적 좋음을 배우는 강화학습이 어떤 구조를 가지는가를 닫습니다. 정책 기반 강화학습(policy-based reinforcement learning)은 P4-19.2에서, 보상 설계와 현실 적용의 주의점은 P4-19.3에서, DQN과 정책 계열의 큰 흐름은 P4-19.4 보충학습에서, 벨만 방정식과 함수 근사의 최소 연결은 P4-19.5 보충학습에서 이어집니다.

가치 기반 강화학습(value-based reinforcement learning)에서 남길 판단 기준

  • 가치 기반 강화학습을 행동의 장기적 좋음을 숫자로 배우는 접근으로 설명할 수 있습니다.
  • 상태 가치(state value)와 행동 가치(action value)를 구분할 수 있습니다.
  • Q-learning이 다음 상태에서 가장 좋아 보이는 행동을 기준으로 갱신한다는 점을 말할 수 있습니다.
  • SARSA가 실제로 다음에 선택한 행동을 기준으로 갱신한다는 점을 말할 수 있습니다.
  • 두 알고리즘의 차이가 학습 태도의 차이와 연결된다는 점을 이해할 수 있습니다.

왜 가치(value)를 배우려 하는가

강화학습 문제에서는 매번 정답 라벨이 주어지지 않습니다. 대신 에이전트(agent)는 행동을 해 보고, 보상(reward)을 받고, 다음 상태(next state)를 경험합니다.

이때 직접 정책(policy)부터 쓰는 대신, 먼저 이 행동이 얼마나 괜찮았는가를 숫자로 적어 두면 여러 장점이 생깁니다.

  • 행동을 비교하기 쉬워집니다.
  • 아직 완성되지 않은 정책도 점진적으로 개선할 수 있습니다.
  • 같은 상태에서 여러 행동 후보를 상대적으로 읽을 수 있습니다.

즉, 가치 기반 강화학습은 무엇을 할지 바로 외우기보다 무엇이 더 좋은지 먼저 점수화하기에 가깝습니다.

식당 추천 비유로 보면 다음과 같습니다.

  • 정책(policy): 지금 이 동네에서 어디로 갈지 바로 결정하는 방식
  • 가치(value): 이 선택이 장기적으로 얼마나 만족스러울지에 대한 예상 점수

이 차이가 중요합니다. 가치 기반 강화학습은 행동 규칙을 바로 외우기보다, 행동의 예상 점수판을 먼저 만든다고 이해하면 읽기 쉬워집니다.

상태 가치와 행동 가치는 다르다

강화학습 책과 논문에서는 가치(value)라고만 쓰지 않고, 보통 두 가지를 나눠 말합니다.

용어 영어 쉬운 뜻
상태 가치 state value 이 상태에 와 있는 것이 전반적으로 얼마나 좋은가
행동 가치 action value 이 상태에서 이 행동을 하는 것이 얼마나 좋은가

예를 들어 미로 게임을 생각해 봅니다.

  • 출구 바로 앞 칸은 상태 가치가 높을 수 있습니다.
  • 하지만 그 칸에서도 벽 쪽으로 움직이는 행동은 행동 가치가 낮을 수 있습니다.

즉, 좋은 상태 안에도 나쁜 행동이 있을 수 있다는 점 때문에 행동 가치(action value)가 특히 중요해집니다.

이 차이를 더 구체적으로 쓰면 다음처럼 읽을 수 있습니다.

장면 상태 가치 관점 행동 가치 관점
출구 앞 칸에 도착했다 전체적으로 유리한 위치다 앞으로는 높고, 뒤로는 낮을 수 있다
위험 구역 가장자리다 목표까지는 가까울 수 있다 지름길은 높아 보여도 추락 위험 때문에 실제로는 낮을 수 있다
보상이 큰 아이템 옆이다 잠재적으로 좋은 상태다 아이템 획득은 높고, 무시하고 우회는 더 낮을 수 있다

즉, 상태 가치는 어디에 와 있는가를 읽고, 행동 가치는 여기서 무엇을 할 것인가를 읽습니다. 강화학습에서 실제 선택을 비교하려면 행동 가치가 더 직접적인 기준이 됩니다.

Q-value는 무엇을 적는가

행동 가치(action value)는 보통 Q-value라고 씁니다. Q(s, a)는 상태 s에서 행동 a를 했을 때 기대하는 장기 보상(expected long-term return)을 뜻합니다.

여기서 중요한 것은 수식보다 해석입니다.

Q-value는 지금 이 상태에서 이 행동을 선택하면, 앞으로 얼마나 괜찮은 결과가 이어질지에 대한 예상 점수다.

즉, Q-table이나 Q-function은 다음 질문에 답하려는 시도입니다.

  • 지금 여기서 위로 가는 것이 좋은가?
  • 아래로 가는 것이 좋은가?
  • 당장은 손해처럼 보여도 나중에 더 큰 보상을 만드는가?

이를 작은 표로 그리면 다음과 같습니다.

상태(state) 행동(action) 현재 Q-value 해석
출발 위치 오른쪽 출구 쪽이라 비교적 높음
출발 위치 왼쪽 막다른 길이라 낮음
출구 앞 앞으로 도착 보상에 가까워 높음
출구 앞 뒤로 멀어지므로 낮음

이 표의 핵심은 Q-value가 단순히 지금 한 번 기분 좋은 선택을 적는 숫자가 아니라는 점입니다. 당장 한 칸 전진하는 보상이 작더라도, 이후에 출구로 이어지면 Q-value는 높아질 수 있습니다. 반대로 즉시 보상이 조금 있어 보여도 이후 큰 벌점으로 이어지면 Q-value는 낮아질 수 있습니다.

보이는 선택 즉시 인상 Q-value가 다시 묻는 질문
바로 점수를 1점 얻는 행동 당장은 좋아 보인다 그 뒤에 더 큰 벌점이나 막다른 길이 남지 않는가
잠깐 돌아가는 행동 당장은 손해처럼 보인다 이후 더 큰 보상으로 이어지는가
위험 지름길 빠르게 끝날 수 있어 보인다 실패 비용까지 합치면 정말 유리한가

가치 기반 강화학습의 기본 루프

가치 기반 강화학습의 핵심은 행동하고, 결과를 보고, 가치 표를 조금 수정하는 반복입니다.

flowchart TB
  A["1. 상태를 관찰<br/>현재 상태 s"]
  B["2. 행동을 선택<br/>행동 a를 시도"]
  C["3. 보상을 받음<br/>보상 r과 다음 상태 s'"]
  D["4. 미래 가치를 추정<br/>다음엔 무엇이 좋아 보이는가?"]
  E["5. Q 값 갱신<br/>Q(s, a)를 수정"]

  A --> B --> C --> D --> E --> A

이 도식은 가치 기반 강화학습을 행동 결과를 본 뒤 점수표를 조금씩 고쳐 가는 반복으로 읽게 해 줍니다. 정책 전체를 한 번에 완성하는 것이 아니라, 상태-행동 값이 루프를 돌며 점진적으로 조정된다는 점이 핵심입니다.

이 루프는 P4-2.3에서 본 강화학습의 일반 루프보다 한 단계 더 구체적입니다. 여기서는 정책 전체를 한 번에 바꾸는 대신, Q(s, a) 같은 값 추정을 계속 손보는 데 초점이 있습니다.

Q-learning은 무엇을 배우나

Q-learning은 가장 널리 알려진 가치 기반 강화학습 알고리즘입니다. 핵심 생각은 단순합니다.

다음 상태에 도착했을 때, 거기서 가장 좋아 보이는 행동의 값을 기준으로 현재 행동의 가치를 수정한다.

즉, Q-learning은 다음 상태에서 실제로 무엇을 했는가보다 가장 좋아 보이는 선택이 무엇인가를 기준으로 업데이트합니다.

이 점 때문에 Q-learning은 보통 오프-정책(off-policy) 알고리즘으로 소개됩니다.

현재 실제 행동 흐름과는 조금 떨어져서, 다음 상태에서 가장 좋아 보이는 선택을 기준으로 배우는 방식

작은 미로 예시로 보면:

  • 지금은 탐험 때문에 아래로 움직였더라도
  • 업데이트할 때는 다음 상태에서 사실 가장 좋은 행동은 오른쪽이었다를 기준으로 현재 값을 조정할 수 있습니다.

즉, Q-learning은 다소 낙관적으로 앞으로 가장 잘할 수 있다고 가정한 경로를 반영합니다.

SARSA는 무엇을 배우나

SARSA도 가치 기반 강화학습 알고리즘입니다. 이름은 상태(state), 행동(action), 보상(reward), 다음 상태(state), 다음 행동(action)의 머리글자에서 왔습니다.

SARSA의 핵심 생각은 Q-learning과 비슷하지만 기준이 다릅니다.

다음 상태에서 실제로 선택한 행동을 기준으로 현재 행동의 가치를 수정한다.

즉, SARSA는 가장 좋아 보이는 행동이 아니라 내가 실제로 이어서 취한 행동을 반영합니다.

이 점 때문에 SARSA는 보통 온-정책(on-policy) 알고리즘으로 설명됩니다.

내가 실제로 따르고 있는 행동 방식 안에서 배우는 방식

예를 들어 탐험 때문에 다소 위험한 행동을 계속 섞어 쓰고 있다면, SARSA는 그 탐험 성향까지 포함한 실제 경로를 기준으로 배웁니다.

Q-learning과 SARSA 차이

둘 다 Q-value를 갱신하지만, 다음 값을 어디에서 가져오느냐가 다릅니다.

flowchart TB
  subgraph QL["Q-learning"]
    Q1["현재 상태-행동<br/>Q(s, a)"]
    Q2["다음 상태 s'"]
    Q3["가장 좋아 보이는 다음 행동 사용<br/>max_a' Q(s', a')"]
    Q1 --> Q2 --> Q3
  end

  subgraph SA["SARSA"]
    S1["현재 상태-행동<br/>Q(s, a)"]
    S2["다음 상태 s'"]
    S3["실제로 택한 다음 행동 사용<br/>Q(s', a_next)"]
    S1 --> S2 --> S3
  end

이 도식은 Q-learning과 SARSA의 차이를 시각적으로 나눠 보여 줍니다. 둘 다 다음 상태를 보지만, 하나는 가장 좋아 보이는 다음 행동을 기준으로 하고 다른 하나는 실제로 이어서 한 다음 행동을 기준으로 값을 고친다는 점이 다릅니다.

이를 표로 줄이면 다음과 같습니다.

항목 Q-learning SARSA
다음 값 기준 다음 상태에서 가장 큰 Q-value 다음 상태에서 실제 선택한 행동의 Q-value
학습 태도 더 낙관적일 수 있음 실제 행동 흐름을 더 직접 반영
자주 붙는 설명 off-policy on-policy

여기서는 용어보다 감각이 더 중요합니다.

  • Q-learning: 이론상 가장 좋아 보이는 다음 선택을 반영
  • SARSA: 실제로 내가 이어서 한 다음 선택을 반영

같은 상태를 두 알고리즘이 어떻게 다르게 읽는지 한 번 더 줄이면 다음과 같습니다.

같은 장면 Q-learning 쪽 해석 SARSA 쪽 해석
다음 상태에 좋은 행동 하나와 위험한 행동 하나가 같이 있다 가장 좋은 행동을 할 수 있다면을 더 강하게 반영한다 탐험 때문에 위험한 행동도 실제로 할 수 있다를 함께 반영한다
탐험률이 아직 높다 미래를 다소 낙관적으로 읽기 쉽다 현재 정책의 흔들림을 더 직접 반영한다
실패 비용이 큰 환경이다 높은 최적값 쪽으로 더 빨리 끌릴 수 있다 실제 실수 경로의 손해를 더 보수적으로 반영할 수 있다

왜 이 차이가 중요한가

이 차이는 특히 위험한 행동이 섞인 환경에서 해석 차이를 만듭니다.

예를 들어 미로 옆에 큰 벌점이 있는 낭떠러지가 있다고 생각해 봅니다.

  • Q-learning은 최적으로만 움직인다면 괜찮다는 쪽으로 값을 키우기 쉽습니다.
  • SARSA는 실제로 탐험하다가 실수할 수도 있다는 점을 더 반영할 수 있습니다.

즉, SARSA는 현재 행동 정책이 조심스럽지 않다면 그 조심스럽지 않은 현실도 같이 배웁니다. 이 때문에 입문 교재에서는 SARSA가 더 보수적(conservative)으로 보일 수 있다고 설명하는 경우가 많습니다.

이 차이를 운영 판단 문장으로 바꾸면 다음처럼 읽을 수 있습니다.

환경 성격 더 먼저 떠오르는 해석 질문
실패 비용이 작고 최적 경로 탐색이 중요하다 가장 좋아 보이는 경로를 더 빠르게 끌어올리는 편이 맞는가
탐험 실수가 자주 발생하고 실패 비용이 크다 실제 정책의 불안정함까지 같이 반영하는 편이 맞는가
장난감 미로나 시뮬레이션 수업 예제다 두 알고리즘 차이를 점수판 관점으로 설명하기 쉬운가
현실 로봇, 자율 이동처럼 실수 비용이 눈에 띈다 낙관적 값 추정이 실제 위험을 가릴 수 있지 않은가

언제 가치 기반 관점을 먼저 잡는가

강화학습을 처음 문제에 붙일 때는 모든 알고리즘 이름보다 먼저 지금 이 문제를 상태-행동 점수판으로 읽는가를 확인해야 합니다.

먼저 보이는 문제 장면 가치 기반 관점을 먼저 잡아도 좋은 이유 먼저 경계할 점
행동 후보가 적고 분명하다 각 행동의 장기 점수를 비교하는 구조가 잘 맞습니다. 상태 수가 커지면 표 기반 직관이 금방 무거워질 수 있습니다.
같은 상태에서 몇 개 행동을 반복 비교한다 Q-value를 어느 행동이 더 유리한가라는 질문에 바로 붙일 수 있습니다. 즉시 보상만 보고 장기 보상을 놓치지 않도록 해야 합니다.
탐험과 활용의 차이를 수업용 예제로 보여 주려 한다 Q-learning과 SARSA 차이를 상태-행동 표로 설명하기 쉽습니다. 장난감 예제를 현실 배포 문제와 곧바로 같은 것으로 읽으면 안 됩니다.
정책을 직접 출력하기보다 점수 비교가 직관적이다 정책보다 가치표를 먼저 두는 편이 설명 흐름이 단순합니다. 연속 행동이나 거대한 상태 공간에서는 곧 한계를 만납니다.

어디에 쓰이는가

가치 기반 강화학습은 상태와 행동 수가 비교적 명확하고, 행동의 결과를 반복 실험할 수 있는 문제에서 직관을 주기 좋습니다.

  • 격자 미로와 게임 이동
  • 단순 로봇 경로 탐색
  • 자원 배분의 장난감 시뮬레이션
  • 순차 선택 문제의 입문 예제

실무에서는 문제 규모가 커지면 단순 Q-table만으로는 상태 수를 감당하기 어렵습니다. 그때는 함수 근사(function approximation), 신경망, 더 복잡한 정책 기반 기법으로 넘어가게 됩니다. 이 연결은 Part 4와 Part 5에서 다시 중요해집니다.

여기서 한계를 더 분명히 적으면 다음과 같습니다.

가치 기반 접근이 잘 맞는 장면 한계가 빨리 드러나는 장면
상태와 행동 수가 작고 표로 셀 수 있다 상태가 너무 많아 Q-table이 사실상 채워지지 않는다
시뮬레이션을 많이 반복할 수 있다 실제 환경 시도가 비싸거나 위험하다
행동 후보가 이산적(discrete)이다 행동이 연속적(continuous)이라 점수표 비교가 곧바로 어렵다
장기 보상을 점수판으로 설명하기 쉽다 관측이 복잡하고 가치 추정만으로 정책을 표현하기 어려워진다

즉, 가치 기반 강화학습은 강화학습 입문 직관을 잡기에는 매우 좋지만, 현실 문제가 커질수록 값 표를 어떻게 유지할 것인가라는 한계에 빨리 부딪힙니다.

사례 및 예시

사례 1. 창고 로봇이 교차로에서 어느 방향으로 가야 할지 점수판으로 배우는 장면

창고 로봇이 물건을 가지러 갈 때 사람이 먼저 쓰기 쉬운 기준은 보통 지금 가장 가까운 길, 당장 한 칸 빨리 가는 방향 같은 단순 규칙입니다. 하지만 어떤 길은 지금은 짧아 보여도 이후 교통이 막히거나 회전 비용이 커서 장기적으로 손해일 수 있습니다. 가치 기반 강화학습은 각 위치와 행동 조합에 앞으로 얼마나 유리한가를 점수처럼 붙여, 로봇이 더 나은 경로를 점진적으로 배우게 합니다. 그래서 같은 교차로에서도 즉시 이동 거리만이 아니라 이후 이동 흐름까지 반영한 선택이 점점 더 높은 Q-value를 갖게 됩니다.

예를 들어 교차로 직전 상태에서 로봇이 아래처럼 경험을 쌓는다고 생각해 볼 수 있습니다.

상태 행동 즉시 결과 이후 영향 값이 달라지는 이유
선반 A 앞 교차로 직진 한 칸 빨리 간다 앞 통로가 자주 막힌다 즉시 이득은 있지만 장기 지연이 커질 수 있다
선반 A 앞 교차로 오른쪽 처음엔 한 칸 돌아간다 이후 통로가 넓고 안정적이다 당장은 손해처럼 보여도 장기 이동이 더 안정적일 수 있다
선반 A 앞 교차로 왼쪽 회전 비용이 든다 충돌 위험 구역에 들어간다 실패 비용까지 합치면 값이 낮아질 수 있다

이 표가 보여 주는 핵심은 지금 가장 짧아 보이는 행동장기적으로 가장 유리한 행동이 다를 수 있다는 점입니다. 가치 기반 강화학습은 바로 이 차이를 숫자로 누적해 읽으려는 접근입니다.

flowchart TD
  A["교차로 상태"]
  B["좌회전 / 우회전 / 직진"]
  C["행동 하나를 취함"]
  D["지연 또는 보상을 관찰"]
  E["그 행동의 Q 값을 갱신"]
  F["다음 방문 때 행동을 다시 비교"]
  G["장기적으로 더 나은 경로 선호"]

  A --> B --> C --> D --> E --> F --> G

이 사례를 review 메모처럼 줄이면 다음과 같이 적을 수 있습니다.

현재 상태 행동 후보 같이 봐야 할 실패 비용 다음 질문
교차로 진입 직전 왼쪽, 오른쪽, 직진 막힌 통로, 회전 지연, 충돌 위험 가장 높은 Q-value가 실제로도 안전한 경로인가
탐험이 섞인 혼잡 구간 최단 경로처럼 보이는 행동, 우회 행동 탐험 때문에 더 큰 병목이나 충돌이 생길 수 있음 낙관적 갱신보다 실제 정책 흐름을 더 반영해야 할까

이 사례의 확인 가능한 결과는 처음에는 직진이 더 빨라 보여도, 여러 번의 경험 뒤에는 우회 경로의 Q-value가 더 높아지는가, 그리고 직진을 택했을 때 남는 지연과 충돌 패턴이 반복되는가를 비교하는 데서 드러납니다. 즉, 가치 기반 해석은 어느 방향이 빨라 보였는가보다 어느 방향의 장기 점수가 실제 경험으로 더 올라갔는가를 보는 일입니다.

사례 2. 낭떠러지 옆 통로에서 빠른 길과 안전한 길이 갈릴 때

에이전트가 목표 지점으로 가는 두 경로를 가진다고 해 보겠습니다. 사람이 먼저 쓰기 쉬운 기준은 보통 도착까지 가장 짧은 길, 지금 보상이 빨리 커지는 길입니다. 그래서 빠르지만 옆에 큰 벌점이 있는 낭떠러지 통로가 처음에는 더 좋아 보일 수 있습니다. 하지만 강화학습에서는 실수 가능성까지 합친 장기 보상을 같이 읽어야 합니다. 이때 Q-learning은 다음 상태에서 가장 잘 움직일 수 있다면을 더 강하게 반영해 빠른 길의 값을 비교적 높게 유지할 수 있습니다. 반면 SARSA는 탐험 중 실제로 낭떠러지 쪽 실수가 섞이는 경로를 더 직접 반영하므로, 안전한 우회 경로를 더 높게 읽을 수 있습니다.

같은 경로 선택 문제 Q-learning에서 더 먼저 보일 수 있는 해석 SARSA에서 더 먼저 보일 수 있는 해석
빠르지만 위험한 지름길 최적으로만 움직이면 유리할 수 있다 탐험 중 실수까지 포함하면 위험 비용이 크다
느리지만 안전한 우회길 즉시 효율은 낮아 보인다 실제 정책 기준에서는 더 안정적일 수 있다

이 사례의 확인 가능한 결과는 빠른 지름길을 택했을 때 낭떠러지 벌점이 실제로 얼마나 자주 누적되는가, 안전한 우회 경로의 Q-value가 반복 학습 뒤 더 높아지는가, 탐험률이 높을수록 두 알고리즘의 경로 선호가 더 벌어지는가를 비교하는 데서 드러납니다. 즉, 이 사례는 알고리즘 차이를 수식이 아니라 실수 가능성을 값 추정에 얼마나 직접 반영하는가로 읽게 해 줍니다.

사례 3. 고객 상담 봇이 빠른 종료와 안전한 해결 사이에서 값을 다르게 배울 때

고객 상담 봇이 문의를 받으면 사람이 먼저 보기 쉬운 기준은 보통 평균 처리 시간, 한 번에 빨리 닫히는가 같은 즉시 효율 지표입니다. 그래서 바로 답변 종료, 추가 질문, 상담원 연결 중에서 당장 시간을 가장 적게 쓰는 행동이 좋아 보일 수 있습니다. 하지만 실제로는 해결되지 않은 문의가 다시 들어오거나 고객 불만이 커질 수 있습니다. 반대로 상담원 연결은 즉시 비용이 커 보이지만, 장기적으로 재문의 감소와 만족도 유지에 도움이 될 수 있습니다.

이 장면에서는 가치 기반 관점이 왜 필요한지가 더 선명해집니다. 정책을 문장으로 미리 다 적기보다, 각 상태와 행동 조합이 장기적으로 얼마나 괜찮은가를 값으로 배워야 하기 때문입니다.

상담 상태 행동 후보 즉시 인상 장기적으로 다시 봐야 할 것
단순 문의처럼 보이는 초반 상태 바로 종료 처리 시간이 짧아 효율적 실제 해결 여부와 재문의 발생
정보가 부족한 상태 추가 질문 당장은 대화가 길어진다 오답 감소와 해결률 개선
불만이 커진 상태 상담원 연결 즉시 비용이 크다 장기 이탈 방지와 만족도 유지

이 사례는 Q-value가 단순한 속도 점수가 아니라 지금 행동이 이후 상태와 보상 흐름을 어떻게 바꾸는가를 읽는 장치라는 점을 보여 줍니다.

이 사례의 확인 가능한 결과는 즉시 종료가 많은 상태에서 재문의, 불만, 상담원 재투입 같은 후속 비용이 계속 커지는지, 반대로 추가 질문이나 상담원 연결을 선택한 상태에서 장기 보상이 실제로 더 높아지는지를 비교하는 데서 드러납니다. 즉, 가치 기반 관점은 지금 빨리 닫히는가보다 이 행동이 다음 상태와 이후 비용을 어떻게 바꾸는가를 점수로 남기게 합니다.

연습 및 예제

이번 예제는 Q-learningSARSA가 같은 경험을 조금 다르게 읽는다는 점을 숫자로 직접 확인하는 데 초점을 둡니다.

문제 상황:

  • 같은 보상 경험이라도 Q-learning과 SARSA는 다음 값을 가져오는 기준이 달라 업데이트 결과가 달라질 수 있다

입력(input):

  • 현재 상태 S0
  • 현재 행동 right
  • 즉시 보상 +1
  • 다음 상태 S1
  • 현재 Q-table의 값들

기대 출력(output):

  • Q-learning이 계산한 업데이트 결과
  • SARSA가 계산한 업데이트 결과
  • 두 방식의 차이를 읽을 수 있는 갱신 전후 값

확인할 개념:

  • Q-learning은 다음 상태에서 가장 좋아 보이는 행동 값을 기준으로 현재 값을 고친다
  • SARSA는 다음 상태에서 실제로 이어서 선택한 행동 값을 기준으로 현재 값을 고친다
  • 같은 경험도 업데이트 기준이 다르면 다른 학습 태도로 이어질 수 있다
# 같은 경험에서 Q-learning과 SARSA가 다음 값을 읽는 기준 차이로 업데이트가 어떻게 달라지는지 비교하는 예제입니다.
alpha = 0.5
gamma = 0.9

q_table = {
    ("S0", "right"): 0.40,
    ("S1", "up"): 0.80,
    ("S1", "down"): 0.30,
}

state = "S0"
action = "right"
reward = 1.0
next_state = "S1"
actual_next_action = "down"

old_value = q_table[(state, action)]

# Q-learning: next state에서 가장 큰 값을 사용
best_next_value = max(
    q_table[(next_state, "up")],
    q_table[(next_state, "down")],
)
q_learning_target = reward + gamma * best_next_value
q_learning_updated = old_value + alpha * (q_learning_target - old_value)

# SARSA: 실제 다음 행동의 값을 사용
actual_next_value = q_table[(next_state, actual_next_action)]
sarsa_target = reward + gamma * actual_next_value
sarsa_updated = old_value + alpha * (sarsa_target - old_value)

print("old Q(S0, right) =", round(old_value, 3))
print("Q-learning target =", round(q_learning_target, 3))
print("Q-learning updated =", round(q_learning_updated, 3))
print("SARSA target =", round(sarsa_target, 3))
print("SARSA updated =", round(sarsa_updated, 3))

실행 결과는 다음처럼 읽을 수 있습니다.

1
2
3
4
5
old Q(S0, right) = 0.4
Q-learning target = 1.72
Q-learning updated = 1.06
SARSA target = 1.27
SARSA updated = 0.835

여기서 중요한 점은 두 알고리즘이 같은 현재 경험에서 출발했는데도, 다음 값을 읽는 기준이 달라 결과가 달라진다는 점입니다.

  • Q-learning은 S1에서 가장 좋아 보이는 행동(up)의 값 0.8을 사용했습니다.
  • SARSA는 S1에서 실제로 택한 행동(down)의 값 0.3을 사용했습니다.

따라서 Q-learning 쪽 업데이트가 더 크게 올라갔습니다.

값 하나 바꿔 보기: 실제 다음 행동이 달라지면 갱신 태도는 얼마나 달라질까

이번에는 현재 경험은 그대로 두고, 다음 상태에서 실제로 선택한 행동만 up으로 바꿔 봅니다.

# SARSA의 실제 다음 행동을 바꾸었을 때 Q-learning과 SARSA 업데이트 차이가 어떻게 줄어드는지 보는 예제입니다.
alpha = 0.5
gamma = 0.9

q_table = {
    ("S0", "right"): 0.40,
    ("S1", "up"): 0.80,
    ("S1", "down"): 0.30,
}

state = "S0"
action = "right"
reward = 1.0
next_state = "S1"
actual_next_action = "up"

old_value = q_table[(state, action)]
best_next_value = max(
    q_table[(next_state, "up")],
    q_table[(next_state, "down")],
)
q_learning_target = reward + gamma * best_next_value
q_learning_updated = old_value + alpha * (q_learning_target - old_value)

actual_next_value = q_table[(next_state, actual_next_action)]
sarsa_target = reward + gamma * actual_next_value
sarsa_updated = old_value + alpha * (sarsa_target - old_value)

print("Q-learning updated =", round(q_learning_updated, 3))
print("SARSA updated =", round(sarsa_updated, 3))
Q-learning updated = 1.06
SARSA updated = 1.06

첫 실행에서는 실제 다음 행동이 down이어서 SARSA가 더 보수적으로 갱신됐습니다. 하지만 실제 다음 행동을 up으로 바꾸면 SARSA도 Q-learning과 같은 값을 만듭니다. 즉, 두 방법의 차이는 이름 암기보다 정책이 실제로 어떤 행동을 이어 가는가를 업데이트에 얼마나 직접 반영하느냐에 있습니다.

이 비교 실습은 같은 보상이라도 실제 다음 행동이 다르면 학습 결과가 달라질 수 있음을 보여 줍니다. 그래서 평가 기준도 평균 보상 하나가 아니라 탐험 비용, 실패 위험, 정책의 실제 행동 흐름까지 함께 보아야 합니다. 핵심은 Q-learning 식 이름보다, 값이 달라진 이유를 업데이트 기준의 차이로 읽는 일입니다.

직접 판단해 보기

아래 관찰을 보고, 어느 해석이 더 안전한지 먼저 골라 봅니다.

관찰 성급한 결론 더 안전한 해석
같은 현재 경험인데 Q-learning 값이 더 크게 올라갔다 Q-learning이 항상 더 좋은 알고리즘이다 다음 상태에서 가장 좋아 보이는 값을 기준으로 더 낙관적으로 갱신했다
SARSA 값이 더 작게 갱신됐다 SARSA는 학습을 못 한다 실제 다음 행동과 탐험 흐름을 더 직접 반영했을 수 있다
실제 다음 행동을 up으로 바꾸자 두 값이 같아졌다 두 알고리즘 차이는 별로 중요하지 않다 차이는 이름이 아니라 다음 값을 어디서 읽는가에 있었다

이 표의 목적은 알고리즘 우열을 고르는 데 있지 않습니다. 같은 숫자를 보고도 무슨 업데이트 기준이 작동했는가를 먼저 읽는 습관을 붙이는 데 있습니다.

공통 기록 언어 이번 연습에서 바로 남길 내용
보인 구조 같은 보상 경험도 실제 다음 행동에 따라 Q-learning과 SARSA 업데이트가 갈렸다
해석 경계 높은 Q-value나 큰 업데이트가 곧바로 안전한 정책을 뜻하지는 않는다
다음 질문 보상, 탐험률, 실패 비용을 바꾸면 어떤 갱신 태도가 더 맞는가

이 절에서도 값 설명만 두지 말고, 어떤 상태-행동 후보와 어떤 실패 비용이 함께 놓이는지 기록해야 합니다. 같은 높은 Q-value처럼 보여도 어떤 상태에서는 안전하게 반복되고, 어떤 상태에서는 탐험 비용과 실패 손해가 더 크게 남을 수 있으므로 검토 메모를 같이 남겨야 합니다.

같이 남길 항목 이번 절에서 적는 내용 왜 필요한가
상태-행동 후보 현재 상태에서 무엇을 할지 비교하는 행동 후보 가치표가 무엇을 비교하는지 분명히 하기 위해
누적 보상 기준 지금 즉시 보상보다 장기적으로 무엇을 좋다고 읽는가 Q-value가 단기 점수판이 아님을 드러내기 위해
실패 비용 잘못된 탐험이나 우회 경로가 만드는 손해 높은 값이 실제 운영에서도 안전한지 따져 보기 위해
다음 조정 질문 낙관적 갱신과 보수적 갱신 중 무엇이 더 맞는가 Q-learning과 SARSA 차이를 다음 실험 기준으로 넘기기 위해

이 절의 핵심은 알고리즘 이름 둘을 외우는 일이 아니라, 가치 표를 어떤 태도로 갱신하는지 읽는 데 있습니다.

같이 봐야 할 것 이 절에서 먼저 읽는 질문 바로 다음에 이어질 곳
상태 가치와 행동 가치 무엇의 좋음을 점수로 적고 있는가 가치 표 해석과 Q-value 비교
Q-learning과 SARSA 차이 가장 좋아 보이는 다음 행동과 실제 다음 행동 중 무엇을 기준으로 삼는가 P4-19.2 정책 기반 강화학습
탐험이 섞인 현실 흐름 이 갱신 방식이 얼마나 낙관적이거나 보수적인가 P4-19.3 적용 위험과 탐험 비용
실패 비용 값이 높은 행동이 실제 환경에서도 감당 가능한가 강화학습 적용 전 위험 검토

체크리스트

  • 가치 기반 강화학습을 상태와 행동의 장기적 좋음을 값으로 배우는 접근으로 설명할 수 있는가?
  • 상태 가치(state value)와 행동 가치(action value)의 차이를 구분하고, 행동 선택에는 왜 행동 가치가 더 직접적인지 말할 수 있는가?
  • Q-value를 이 상태에서 이 행동을 하면 앞으로 얼마나 괜찮은가를 적는 예상 점수로 설명할 수 있는가?
  • 같은 경험에서도 Q-learning과 SARSA가 왜 다른 값을 만들 수 있는지 설명할 수 있는가?
  • 행동 후보가 적고 비교 가능한 문제에서 왜 가치 기반 관점이 먼저 떠오르는지 말할 수 있는가?
  • 높은 Q-value가 곧바로 현실 적용의 안전함을 뜻하지 않는다는 점을 알고 있는가?

출처와 참고 자료