Study Archives/Robotics

[로봇 학습의 이해 ④] DQN과 Actor-Critic

ns4A

앞선 글에서는 강화학습의 가장 기본이 되는 개념들을 먼저 정리했습니다.
에이전트와 환경, 상태와 행동, 보상과 수익, 그리고 MDP와 벨만 방정식까지 살펴보면서, 강화학습이 결국 장기적으로 더 좋은 행동 전략을 배우는 과정이라는 점을 이해할 수 있었습니다.

그런데 여기서 자연스럽게 다음 질문이 생깁니다.

강화학습이 그런 문제라는 것은 알겠는데,
그렇다면 로봇이나 에이전트는 구체적으로 어떤 방식으로 좋은 행동을 배우게 될까요?

바로 이 질문에 대한 답이 강화학습 알고리즘입니다.
강화학습 알고리즘은 한 종류만 있는 것이 아니라, 문제의 성격에 따라 꽤 다양한 방식으로 발전해 왔습니다.
어떤 방법은 행동의 가치를 직접 추정하고, 어떤 방법은 정책 자체를 바로 학습하며, 또 어떤 방법은 이 둘을 섞어서 사용합니다.

이번 글에서는 대표적인 흐름인 가치 기반 방법, 정책 기반 방법, 그리고 Actor-Critic 구조까지 차근차근 정리해보겠습니다.


강화학습 알고리즘은 왜 여러 종류가 있을까

처음에는 이런 생각이 들 수 있습니다.

“상태를 보고 좋은 행동을 고르면 되는 것 아닌가?
알고리즘이 왜 많이 필요하지?”

문제는 강화학습이 생각보다 까다롭다는 데 있습니다.

  • 행동 하나의 결과가 바로 드러나지 않을 수 있고
  • 상태 공간이 매우 커질 수 있으며
  • 행동이 이산적일 수도, 연속적일 수도 있고
  • 탐험과 활용의 균형도 맞춰야 하며
  • 학습이 불안정해지기 쉽습니다

그래서 어떤 방법은
“각 행동의 가치를 잘 추정하는 것”에 집중하고,
어떤 방법은
“좋은 행동을 내는 정책 자체를 직접 배우는 것”에 집중합니다.

즉 알고리즘이 많다는 것은 괜히 복잡해서가 아니라,
강화학습 문제를 보는 관점이 여러 가지라는 뜻에 가깝습니다.


가치 기반 방법이란 무엇일까

가치 기반 방법은 이름 그대로 가치(value) 를 중심으로 학습하는 방식입니다.
여기서 핵심은 “이 상태에서 이 행동이 얼마나 좋은가”를 점수처럼 추정하는 것입니다.

가장 대표적인 것이 바로 Q 함수입니다.
Q 함수는 어떤 상태에서 어떤 행동을 했을 때, 앞으로 얻을 장기 보상이 얼마나 될지를 나타냅니다.

즉 가치 기반 방법은 결국 이렇게 생각하는 셈입니다.

  • 가능한 행동들을 하나씩 점수 매기고
  • 그중 가장 점수가 높은 행동을 선택하자

이 접근은 직관적입니다.
특히 행동의 개수가 많지 않은 문제에서는 꽤 잘 맞아떨어집니다.

예를 들어 CartPole처럼 행동이 왼쪽, 오른쪽 두 개뿐인 경우를 생각해보겠습니다.
이럴 때는 각 행동의 Q값만 비교해도 어떤 행동이 더 좋은지 고르기 쉽습니다.

다만 행동 공간이 아주 크거나 연속적이면 이 방식이 점점 어려워집니다.
왜냐하면 가능한 행동을 전부 다 비교하기가 힘들어지기 때문입니다.


Q-Learning과 DQN

가치 기반 방법을 설명할 때 가장 유명한 이름이 바로 Q-Learning 입니다.
Q-Learning은 현재 상태와 행동의 가치를 계속 업데이트하면서, 점점 더 좋은 선택을 할 수 있도록 만드는 방법입니다.

핵심 아이디어는 단순합니다.

현재 상태에서 어떤 행동을 했을 때 얻은 보상과,
그다음 상태에서 기대할 수 있는 최대 가치 정보를 이용해서
현재 Q값을 조금씩 더 정확하게 고쳐나가는 것입니다.

직관적으로 보면 이런 느낌입니다.

“내가 방금 한 행동의 가치는
당장 받은 보상도 중요하지만,
그 결과 도착한 다음 상태가 얼마나 좋은지도 함께 봐야 한다.”

이 아이디어는 벨만 최적 방정식과도 이어집니다.

그런데 상태 공간이 커지면 문제가 생깁니다.
모든 상태와 행동에 대해 표 형태로 Q값을 저장하는 것이 사실상 불가능해집니다.
이미지 입력을 받는 로봇 문제에서는 더더욱 그렇습니다.

그래서 등장한 것이 DQN(Deep Q-Network) 입니다.
DQN은 Q 함수를 표로 저장하는 대신, 신경망으로 근사합니다.

즉 입력으로 상태를 넣으면,
신경망이 각 행동에 대한 Q값을 출력하는 구조입니다.

이 방식이 중요했던 이유는,
강화학습과 딥러닝을 본격적으로 연결하는 대표 사례였기 때문입니다.
그래서 DQN은 강화학습 역사에서 꽤 상징적인 위치를 가집니다.


DQN이 중요했던 이유

DQN이 나오기 전에도 Q-Learning 자체는 잘 알려져 있었습니다.
문제는 신경망과 결합했을 때 학습이 매우 불안정해질 수 있다는 점이었습니다.

강화학습 데이터는 시간 순서대로 모이기 때문에 샘플 간 상관관계가 강합니다.
즉 일반적인 지도학습처럼 독립적인 데이터셋을 가정하기 어렵습니다.
게다가 학습 중에는 정답 역할을 하는 값도 계속 바뀝니다.

이 문제를 조금 완화하기 위해 DQN에서는 두 가지 핵심 기법이 함께 사용됩니다.

경험 재생

에이전트가 모은 경험을 버퍼에 저장해두고, 학습할 때는 이 중 일부를 무작위로 뽑아 사용합니다.
이렇게 하면 시간적으로 붙어 있는 샘플만 연속해서 보는 문제를 줄일 수 있습니다.

타깃 네트워크

학습에 사용하는 Q 네트워크와, 목표값 계산에 쓰는 네트워크를 분리합니다.
즉 정답 역할을 하는 값을 너무 빠르게 흔들리지 않게 해서 학습을 조금 더 안정화합니다.

이 두 가지는 처음 보면 테크닉처럼 보이지만,
사실은 강화학습이 왜 어려운지를 잘 보여주는 장치이기도 합니다.


DQN의 한계

DQN은 분명 강력했지만, 모든 문제를 해결해주지는 못합니다.

가장 대표적인 한계는 행동 공간이 이산적일 때 더 잘 맞는다는 점입니다.
즉 “왼쪽/오른쪽”, “앞/뒤”처럼 행동 수가 몇 개로 정해진 문제에는 좋지만,
로봇 팔처럼 연속적인 토크 값을 내야 하는 문제에는 바로 적용하기가 어렵습니다.

또 하나는 Q값을 과대추정하는 경향입니다.
현재 추정한 값 중 가장 큰 값을 계속 사용하다 보면, 실제보다 낙관적으로 평가할 수 있습니다.

이런 문제를 완화하기 위해 Double DQN 같은 변형이 등장합니다.
핵심은 행동 선택과 행동 평가를 조금 분리해서, 최대값 계산에서 생기는 과대추정을 줄이는 것입니다.

Dueling DQN처럼 상태의 가치와 행동의 상대적 이점을 분리해 표현하는 구조도 나옵니다.
이런 흐름은 결국 DQN 하나로 끝난 것이 아니라,
어떻게 더 안정적이고 더 정확하게 가치를 추정할 것인가로 확장되었다고 볼 수 있습니다.


정책 기반 방법이란 무엇일까

이제 방향을 조금 바꿔보겠습니다.

가치 기반 방법이
“각 행동의 점수를 계산해서 가장 좋은 행동을 고르자”
라는 접근이었다면,

정책 기반 방법은
“아예 좋은 행동을 내는 정책을 직접 학습하자”
라는 접근입니다.

여기서 정책은 상태를 보고 행동을 결정하는 규칙이라고 했습니다.
정책 기반 방법은 이 정책 자체를 파라미터화해서,
목적 함수를 최대화하는 방향으로 바로 업데이트합니다.

이 접근의 장점은 연속 행동 문제에서 특히 빛납니다.
예를 들어 로봇 팔이 각 관절에 얼마만큼의 토크를 줄지 직접 출력해야 하는 경우,
행동을 몇 개 후보로 나눠 고르기보다 정책이 바로 값을 내도록 만드는 편이 더 자연스럽습니다.

즉 정책 기반 방법은
행동 가치표를 거쳐서 가지 않고, 행동 전략 자체를 직접 다룬다는 점이 핵심입니다.


정책 경사법

정책 기반 방법의 대표적인 틀이 바로 정책 경사법(Policy Gradient) 입니다.
이름 그대로 정책 파라미터를 조금씩 바꿔가며, 기대 보상이 커지는 방향으로 경사를 따라 올라가는 방식입니다.

이 개념을 아주 단순하게 말하면 이렇습니다.

  • 보상을 많이 얻은 행동은 앞으로 더 자주 하게 만들고
  • 보상이 낮았던 행동은 덜 하게 만든다

즉 정책은 행동을 뽑아내는 확률 분포라고 볼 수 있고,
학습은 그 분포를 점점 더 좋은 방향으로 바꾸는 과정이 됩니다.

가치 기반 방법이 “점수표를 보고 행동 선택”이라면,
정책 경사법은 “행동을 내는 습관 자체를 바꾸기”에 가깝습니다.


REINFORCE

정책 경사법을 설명할 때 가장 먼저 등장하는 대표 알고리즘이 REINFORCE 입니다.
이 알고리즘은 비교적 단순해서, 정책 기반 강화학습의 출발점처럼 자주 소개됩니다.

핵심 아이디어는 명확합니다.

에피소드가 끝난 뒤,
각 시점에서 했던 행동이 이후에 얼마나 좋은 결과로 이어졌는지를 보고,
좋은 결과를 낸 행동의 확률은 높이고, 나쁜 결과를 낸 행동의 확률은 낮춥니다.

즉 REINFORCE는
“결과가 좋았던 행동을 강화하자”
라는 직관을 꽤 직접적으로 구현한 방식입니다.

다만 이 방법은 분산이 큰 편입니다.
쉽게 말하면 학습 신호가 들쑥날쑥할 수 있어서,
업데이트가 불안정해지기 쉽습니다.

그래서 이론적으로는 깔끔하지만, 실제로는 그대로 쓰기보다
다른 안정화 기법과 함께 쓰는 경우가 많습니다.


베이스라인 기법은 왜 필요할까

REINFORCE의 가장 큰 문제 중 하나는 방금 말한 분산입니다.
같은 정책이라도 어떤 에피소드는 우연히 보상이 잘 나오고, 어떤 에피소드는 운이 나빠 보상이 낮을 수 있습니다.
이렇게 되면 학습이 너무 흔들릴 수 있습니다.

이를 완화하기 위한 대표적인 아이디어가 바로 베이스라인(baseline) 입니다.

직관적으로는 이런 식입니다.

  • 단순히 보상이 컸는지만 보는 것이 아니라
  • “평균보다 얼마나 더 좋았는가”를 보자

예를 들어 기대한 수준보다 더 좋은 결과를 냈다면 그 행동을 강화하고,
그렇지 않다면 덜 강화하는 식입니다.

이 베이스라인으로 자주 쓰이는 것이 상태 가치 함수입니다.
즉 “이 상태에서는 원래 이 정도 보상은 기대되는 수준이야”라는 기준을 두고,
그보다 더 나은지 아닌지를 보는 것입니다.

이 개념은 나중에 advantage 개념으로도 자연스럽게 이어집니다.


가치 기반과 정책 기반의 차이

여기서 한 번 정리해보면 좋습니다.

가치 기반 방법

  • 행동의 가치를 추정한다
  • 가장 가치가 높은 행동을 선택한다
  • 이산 행동 문제에 잘 맞는 경우가 많다

정책 기반 방법

  • 정책 자체를 직접 학습한다
  • 연속 행동 공간에 더 자연스럽게 적용된다
  • 확률적 정책을 다루기 좋다

어느 한쪽이 절대적으로 더 좋다고 말하기는 어렵습니다.
문제 성격에 따라 강점이 다르기 때문입니다.

그리고 실제로는 이 둘의 장점을 섞으려는 흐름도 자연스럽게 등장합니다.
그 대표가 바로 Actor-Critic 입니다.


Actor-Critic 구조

Actor-Critic은 이름 그대로 두 부분으로 나눠 생각할 수 있습니다.

Actor

실제로 행동을 선택하는 쪽입니다.
즉 정책을 담당합니다.

Critic

그 행동이나 상태가 얼마나 좋았는지를 평가하는 쪽입니다.
즉 가치 추정을 담당합니다.

이 구조가 중요한 이유는 꽤 직관적입니다.

정책 기반 방법은 행동 전략을 직접 학습할 수 있다는 장점이 있지만,
학습 신호가 불안정할 수 있습니다.
반면 가치 추정은 행동이 얼마나 괜찮았는지 평가하는 데 도움이 됩니다.

그래서 Actor는 행동을 만들고,
Critic은 그 행동이 얼마나 좋았는지 피드백을 주면서
정책 업데이트를 조금 더 안정적으로 도와줍니다.

쉽게 말하면,

  • Actor는 플레이어
  • Critic은 코치

처럼 생각해도 됩니다.

플레이어가 실제로 움직이고,
코치는 그 움직임이 얼마나 좋았는지 평가하면서 방향을 잡아주는 구조입니다.


왜 Actor-Critic이 많이 쓰일까

Actor-Critic은 가치 기반과 정책 기반의 중간 어디쯤에 있는 구조처럼 보일 수 있습니다.
실제로도 그렇습니다.

이 구조가 자주 쓰이는 이유는 다음과 같습니다.

연속 행동 문제에 잘 맞는다

로봇 제어 문제는 종종 연속적인 힘, 속도, 토크를 다뤄야 합니다.
정책 기반 접근이 자연스럽습니다.

정책 업데이트를 더 안정적으로 할 수 있다

Critic이 가치 추정 기반의 피드백을 제공하므로,
REINFORCE처럼 순수한 정책 경사만 사용할 때보다 분산을 줄이는 데 도움이 됩니다.

실제 강화학습 알고리즘의 기반이 된다

A2C, A3C, DDPG, SAC, PPO 같은 많은 현대 강화학습 알고리즘들도
넓게 보면 Actor-Critic 계열의 발상 위에 서 있습니다.

즉 Actor-Critic은 단지 하나의 알고리즘 이름이라기보다,
현대 강화학습을 이해하는 핵심 구조라고 보는 편이 맞습니다.


알고리즘의 발전은 결국 무엇을 해결하려는 걸까

지금까지 DQN, REINFORCE, Actor-Critic 흐름을 봤습니다.
이름은 달라도 사실 이 알고리즘들이 풀려고 하는 문제는 꽤 비슷합니다.

  • 더 좋은 행동을 어떻게 안정적으로 학습할 것인가
  • 장기 보상을 어떻게 잘 반영할 것인가
  • 학습 신호의 분산을 어떻게 줄일 것인가
  • 큰 상태 공간과 연속 행동 공간을 어떻게 다룰 것인가
  • 샘플 효율과 안정성을 어떻게 높일 것인가

즉 알고리즘 이름을 외우는 것보다 더 중요한 것은,
각 알고리즘이 어떤 불편함 때문에 등장했는지 이해하는 것입니다.

DQN은 큰 상태 공간에서도 가치 기반 학습을 하려는 시도였고,
REINFORCE는 정책을 직접 학습하려는 가장 기초적인 형태였으며,
Actor-Critic은 정책 학습과 가치 평가를 결합해 더 안정적으로 가려는 흐름이었습니다.

이렇게 보면 알고리즘의 흐름이 조금 더 자연스럽게 보입니다.


로봇 문제에서는 어떤 계열이 더 중요할까

로봇 문제는 강화학습 예제 중에서도 조금 특별한 편입니다.
왜냐하면 로봇은 대부분 행동이 연속적이고, 물리적 안정성도 중요하며, 샘플 비용도 크기 때문입니다.

예를 들어 로봇 팔이 관절마다 토크를 얼마나 줄지 정해야 한다면,
행동을 몇 개의 이산 선택지로만 보기 어렵습니다.
또 작은 흔들림 하나가 전체 동작 실패로 이어질 수도 있습니다.

그래서 실제 로봇 강화학습에서는
정책 기반 혹은 Actor-Critic 계열이 더 자주 등장하는 경우가 많습니다.
물론 DQN 같은 가치 기반 방법도 개념 학습이나 단순 환경에서는 매우 중요하지만,
복잡한 로봇 제어 문제로 가면 연속 행동을 자연스럽게 다룰 수 있는 구조가 더 유리해지는 경우가 많습니다.

즉 입문 단계에서는 DQN으로 강화학습의 맛을 보고,
실전 로보틱스로 가면서 Actor-Critic 계열의 필요성을 느끼게 되는 흐름이 꽤 자연스럽습니다.


마무리

강화학습 알고리즘은 이름도 많고 구조도 제각각이라 처음에는 꽤 복잡하게 느껴질 수 있습니다.
하지만 큰 흐름만 붙잡고 보면 생각보다 정리하기 어렵지 않습니다.

가치 기반 방법은
어떤 행동이 좋은지 점수로 평가하는 쪽에 가깝고,

정책 기반 방법은
좋은 행동을 내는 전략 자체를 직접 학습하는 쪽에 가깝습니다.

그리고 Actor-Critic은
이 둘의 장점을 함께 활용해,
행동을 선택하는 정책과 그것을 평가하는 가치 추정을 결합한 구조라고 볼 수 있습니다.

결국 강화학습 알고리즘의 발전은
더 복잡한 상태 공간, 더 연속적인 행동 공간, 더 불안정한 학습 환경 속에서도
조금 더 안정적이고 효율적으로 좋은 행동 전략을 배우기 위한 과정이라고 정리할 수 있습니다.

이번 글에서는 DQN, REINFORCE, Actor-Critic을 중심으로 대표 흐름을 먼저 잡아봤습니다.
다음 글에서는 이런 알고리즘들이 실제 시뮬레이션 환경에서 어떻게 사용되는지,
그리고 MuJoCo, Gymnasium, Stable Baselines3, Isaac Lab 같은 도구들이 어떤 역할을 하는지 실전 관점에서 이어서 정리해보겠습니다.