Skip to content

25장. 당근과 채찍의 수학 — 강화학습

이 장의 질문: 정답 없이, 결과에 대한 보상만으로 어떻게 행동을 배우는가? 강화학습의 문제 설정(MDP)과 가치라는 개념, 그리고 첫 알고리즘 Q-학습을 통해 "시행착오로 배운다"를 수학으로 만든다.

전제: 1장(세 갈래의 학습), 3장(기대값), 9~11장(신경망 학습).

지도학습이 무력한 곳

바둑에서 한 수를 두었다. 그 수가 좋은 수였는지 나쁜 수였는지 — 아무도 모른다. 200수 뒤 승패가 갈릴 때까지는. 로봇이 다리를 움직였다. 그 움직임이 옳았는지는 넘어지거나 걸어가고 나서야 알 수 있다.

지도학습의 전제 — 입력마다 정답이 붙어 있다 — 가 여기서 무너진다. 우리가 가진 것은 정답이 아니라 행동의 결과로 뒤늦게, 드문드문 주어지는 보상뿐이다. 그리고 문제가 하나 더 있다. 지도학습의 데이터는 우리가 주는 것이지만, 여기서는 행동이 다음 상황을 바꾼다 — 어떤 데이터를 보게 될지가 자신의 행동에 달려 있다. 이 두 성질 — 지연된 보상, 행동이 만드는 경험 — 을 가진 문제의 학습이 강화학습(RL)이다.

문제를 정확히 적기: MDP

수학은 문제를 정확히 적는 데서 시작한다. 강화학습의 표준 설정은 다섯 요소다.

  • 상태 s — 지금 상황 (바둑판 배치, 로봇의 관절 각도).
  • 행동 a — 취할 수 있는 선택 (착수 위치, 관절에 줄 힘).
  • 전이 — 행동하면 환경이 다음 상태로 옮겨 가는 규칙 (확률적일 수 있다).
  • 보상 r — 각 단계에서 환경이 주는 숫자 (승리 +1, 넘어짐 −1, 대부분의 단계는 0).
  • 할인율 γ — 미래 보상을 얼마나 현재 가치로 칠 것인가 (0.99면 100단계 뒤의 보상은 약 0.37배).

에이전트는 상태를 보고 행동을 고르는 규칙 — 정책 π(a|s) — 을 갖는다. 목표는 누적 보상의 기대값(3장!)이 최대인 정책을 찾는 것이다:

G=r1+γr2+γ2r3+

읽는 법: 앞으로 받을 보상들을, 멀수록 할인해서 다 더한 것 — 리턴이다. 할인은 두 역할을 한다: 무한한 합이 발산하지 않게 하고, "같은 보상이면 빨리 받는 게 낫다"는 상식을 심는다.

이 틀에서 지도학습의 정답 개념이 어떻게 대체되는지 보라. "이 상태에서 이 행동이 옳은가"라는 질문은, "이 행동을 한 뒤 기대되는 리턴이 얼마인가"로 바뀐다. 그 양에 이름이 있다.

가치: 미래를 숫자 하나로

행동 가치 함수 Q(s,a)는 "상태 s에서 행동 a를 하고, 이후 정책대로 행동했을 때의 기대 리턴"이다. 이것만 정확히 알면 정책은 자명하다 — 매 상태에서 Q가 가장 큰 행동을 고르면 된다. 강화학습의 절반은 Q를 배우는 문제가 된다.

Q를 배우는 열쇠는 재귀 구조다. 지금의 가치는 "당장의 보상 + 다음 상태에서 최선을 다했을 때의 가치(할인)"와 같아야 한다:

Q(s,a)r+γmaxaQ(s,a)

읽는 법: 지금 행동의 가치는, 받은 보상에, 다음 상태에서 고를 수 있는 최선의 가치를 할인해 더한 것. 이 관계(벨만 방정식)가 학습 신호를 만든다. 오른쪽은 실제로 한 걸음 가 본 뒤 계산할 수 있으니, 그것을 임시 정답으로 삼아 왼쪽을 고치는 것이다:

Q(s,a)Q(s,a)+α[r+γmaxaQ(s,a)한 걸음 뒤에 본 목표Q(s,a)]

이것이 Q-학습이다. 대괄호 안은 "예상과 실제의 차이"(시간차 오차)이고, α는 학습률 — 2장의 갱신 규칙과 같은 모양이다. 처음에는 목표 자체가 엉터리 추측이지만, 보상을 실제로 받는 종착점부터 진실이 한 칸씩 거꾸로 전파되어, 반복하면 Q가 참값에 수렴한다. 200수 뒤의 승리가 첫 수의 가치까지 흘러오는 통로가 이 재귀다.

두 가지 미묘함을 챙기자. 첫째, 탐색과 활용. 아는 것 중 최선만 고르면(활용) 더 나은 행동을 영영 발견 못 한다. 그래서 일정 확률 ϵ로 무작위 행동을 섞는다(ϵ-탐욕) — 처음엔 많이, 점점 줄여서. 이 딜레마는 강화학습 고유의 것으로, 지도학습에는 없다. 둘째, Q-학습의 목표에 있는 max는 "실제로 한 행동"이 아니라 "최선의 행동"을 가정한다. 즉 탐색하느라 엉뚱한 행동을 했어도 학습 목표는 최선의 정책 기준이다 — 행동하는 정책과 배우는 정책이 달라도 되는 이 성질(오프폴리시)이, 과거 경험을 재활용할 수 있게 해 준다.

신경망을 붙이면: DQN

상태가 바둑판이나 화면 픽셀이면 Q를 표로 저장할 수 없다. 신경망 Qθ(s,a)로 근사하고(입력 상태, 출력은 행동별 Q), 시간차 오차의 제곱을 손실 삼아 역전파하면 된다 — 원리적으로는 그렇다. 그런데 순진하게 하면 발산한다. 두 가지가 지도학습의 전제를 깨기 때문이다.

경험이 상관되어 있다. 연속된 순간들은 거의 같은 상태다. 경사하강은 독립적인 표본을 가정하는데(3장의 기대값 근사), 상관된 표본을 순서대로 먹이면 최근 경험에만 과적합해 요동친다. 처방 — 재생 버퍼: 경험을 쌓아 두고 무작위로 섞어 뽑아 학습한다.

목표가 움직인다. 학습 목표 r+γmaxQθ(s,a) 자체가 지금 학습 중인 θ로 계산된다. 내가 바뀌면 목표도 바뀌는 자기 추격은 불안정하다. 처방 — 목표 네트워크: 목표 계산용 복사본을 따로 두고 가끔만 동기화해, 목표를 잠시 고정시킨다.

이 두 장치를 단 것이 DQN이며, 화면 픽셀만 보고 아타리 게임을 사람 수준으로 플레이해 딥 강화학습 시대를 연 알고리즘이다. 코드랩 16에서 막대 세우기 문제로 DQN을 밑바닥부터 구현한다 — 두 장치를 하나씩 빼 보면 왜 필요한지 몸으로 알게 된다.

강화학습의 진짜 어려움

이 분야의 실무는 알고리즘보다 다음 세 가지에서 결판난다.

보상 설계. 보상은 "무엇을 원하는가"의 유일한 명세다. 로봇에게 "빨리 가라"고 보상하면 넘어지며 굴러가고, 게임 점수를 보상하면 점수만 나오는 버그를 찾아낸다. 에이전트는 당신의 의도가 아니라 보상 함수의 문자 그대로를 최적화한다 — 22장의 채점기 해킹, 8장의 지표 최적화 문제가 같은 뿌리다. 원하는 것을 정확히 적는 일이 가장 어렵다.

표본 효율. 시행착오는 비싸다. 게임은 수백만 판을 돌릴 수 있지만 실제 로봇은 그럴 수 없다. 시뮬레이터에서 배워 현실로 옮기기, 사람 시연에서 시작하기, 모델 기반 계획 등이 이 문제와 씨름한다.

평가. 지도학습의 손실 곡선 같은 믿을 지표가 없다. 손실이 내려가도 정책이 나쁠 수 있고 요동쳐도 배우는 중일 수 있다. 신뢰할 것은 에피소드 보상의 이동평균과 여러 시드의 반복뿐이다 — 8장의 규율이 강화학습에서는 생존 조건이다.

핵심 요약

  • 강화학습은 지연된 보상행동이 만드는 경험이라는 두 성질을 가진 문제의 학습이다. 문제는 MDP(상태·행동·전이·보상·할인)로 적고, 목표는 할인 누적 보상(리턴)의 기대값 최대화.
  • 가치 Q(s,a)는 미래를 숫자 하나로 압축한다. 벨만의 재귀 관계가 "한 걸음 뒤에 본 목표"를 학습 신호로 만들며(Q-학습), 종착점의 진실이 거꾸로 전파된다. 탐색-활용의 균형은 RL 고유의 딜레마.
  • 신경망으로 Q를 근사하면 상관된 경험과 움직이는 목표 때문에 발산한다 → 재생 버퍼 + 목표 네트워크 = DQN.
  • 실무의 난제는 알고리즘보다 보상 설계, 표본 효율, 평가에 있다. 에이전트는 의도가 아니라 보상의 문자를 최적화한다.

스스로 점검

  1. 미로에서 출구 도달 시 +1, 그 외 0의 보상이 주어질 때, Q-학습으로 출구에서 두 칸 떨어진 상태의 Q가 처음 0에서 어떻게 양수로 바뀌는지 단계별로 서술해 보라. (γ=0.9로 가정)
  2. ϵ을 0으로 고정하면 무슨 문제가 생기는가? 1로 고정하면?
  3. 재생 버퍼와 목표 네트워크가 각각 깨진 "지도학습의 전제"를 하나씩 대응시켜 설명해 보라.
  4. "청소 로봇에게 흡입한 먼지량을 보상으로 준다"는 설계의 허점을 찾아보라. 에이전트는 무엇을 발견해 낼까?

다음 장에서

Q-학습은 가치를 배우고 정책은 거기서 유도했다. 그런데 행동이 연속적(관절에 줄 힘의 크기)이면 "Q가 최대인 행동 고르기"가 불가능하고, 어떤 상황에서는 확률적으로 행동하는 편이 낫다. 정책 자체를 신경망으로 두고 보상의 기울기로 직접 다듬는 방법 — 정책 경사와 PPO — 이 다음 장이며, 22장의 RLHF가 정확히 이것이었음을 확인하게 된다.

26장. 정책이라는 이름의 습관 — 정책 경사와 PPO →