Skip to main content
Summary

강화학습의 무대는 둘로 나뉜다

강화학습을 처음 만날 때 가장 먼저 익숙해져야 할 그림이 있다. 거대한 수식도 아니고, 복잡한 신경망 구조도 아니다. 아주 단순한 장면이다.

어떤 존재가 눈앞의 상황을 본다. 무엇을 할지 고른다. 행동한다. 그러면 세상이 반응한다. 점수를 주기도 하고, 벌점을 주기도 하고, 아무 일도 없는 것처럼 다음 상황만 보여 주기도 한다. 그 존재는 이 과정을 여러 번 반복하면서 이렇게 생각한다.

이번 선택은 괜찮았을까? 다음에는 어떻게 해야 더 좋은 결과를 얻을까?

이것이 강화학습의 기본 장면이다. 여기에는 다섯 가지 핵심 구성 요소가 등장한다.

  • Agent: 행동을 선택하는 주체

  • Environment: 에이전트가 상호작용하는 바깥 세계

  • State: 현재 상황을 표현한 정보

  • Action: 에이전트가 선택할 수 있는 행동

  • Reward: 행동의 결과로 받는 보상 신호

강화학습의 모든 알고리즘은 결국 이 다섯 요소 위에 세워진다. Q-learning도, Policy Gradient도, Actor-Critic도, PPO도 예외가 아니다. 이름은 어려워 보이지만, 그 안쪽에서는 늘 같은 일이 벌어진다. 에이전트가 상태를 보고, 행동을 선택하고, 보상을 받고, 다음 상태로 이동한다.

이 장의 목표는 이 다섯 단어를 외우는 것이 아니다. 머릿속에 하나의 장면으로 붙잡는 것이다. 앞으로 강화학습 알고리즘이 복잡해질수록 우리는 이 장면으로 계속 돌아오게 된다.

Agent, Environment, State, Action, Reward

에이전트: 선택하는 주체

에이전트는 행동을 선택하는 주체다. 강화학습에서 가장 중요한 기준은 이것이다.

누가 선택하는가?

그 선택의 주체가 에이전트다.

게임을 생각해 보자. 미로 속 캐릭터가 위, 아래, 왼쪽, 오른쪽 중 하나를 골라 움직인다. 이때 에이전트는 미로 전체가 아니라 그 캐릭터를 조종하는 의사결정 시스템이다. 우리가 직접 키보드를 누른다면 사람인 우리가 에이전트에 가깝다. AI가 키보드 입력을 고른다면 그 AI가 에이전트다.

로봇 청소기를 생각해 보아도 좋다. 로봇 청소기는 거실을 돌아다니며 청소한다. 어느 방향으로 이동할지, 언제 회전할지, 장애물 앞에서 멈출지 판단한다. 이때 에이전트는 로봇 청소기의 몸체 전체라기보다, 센서 정보를 바탕으로 다음 움직임을 결정하는 제어 시스템이라고 보는 편이 정확하다.

자율주행 자동차에서는 어떨까? 차선을 유지할지, 속도를 줄일지, 앞차와 거리를 얼마나 둘지 결정하는 시스템이 에이전트다. 도로, 신호등, 보행자, 다른 차량, 날씨는 에이전트가 직접 마음대로 바꿀 수 없다. 에이전트는 그 조건을 보고 행동을 선택할 뿐이다.

중요한 점은 에이전트가 반드시 사람 모양이나 로봇 모양일 필요는 없다는 것이다. 에이전트는 선택하는 프로그램일 수도 있고, 게임 캐릭터를 조종하는 신경망일 수도 있고, 대화형 AI의 응답 전략을 조정하는 학습 시스템일 수도 있다. 핵심은 생김새가 아니라 역할이다.

에이전트는 선택한다. 그 선택의 결과를 경험한다. 그리고 같은 상황에서 다음에는 더 나은 선택을 하도록 바뀐다.

환경: 에이전트가 통제하지 못하는 모든 것

에이전트를 이해했다면, 환경은 훨씬 쉽게 이해할 수 있다. 환경은 에이전트가 상호작용하는 바깥 세계다. 더 실용적으로 말하면, 에이전트가 직접 통제하지 못하는 모든 것이다.

미로 게임에서 환경은 미로의 벽, 시작 지점, 목표 지점, 이동 규칙, 보상 규칙을 포함한다. 에이전트가 오른쪽으로 가겠다고 선택하면 환경은 그 행동을 받아들인다. 오른쪽에 길이 있으면 캐릭터를 이동시키고, 벽이 있으면 제자리에 머물게 한다. 목표 지점에 도착했다면 보상을 준다.

로봇 청소기에서는 방의 구조, 바닥 상태, 가구 위치, 배터리 소모, 센서 노이즈가 환경에 속한다. 로봇이 앞으로 가겠다고 결정해도 실제로는 카펫에 걸려 조금 덜 움직일 수 있다. 센서가 먼지를 완벽히 감지하지 못할 수도 있다. 환경은 에이전트의 행동에 반응하지만, 에이전트가 원하는 대로 항상 움직여 주지는 않는다.

여기서 좋은 기준 하나를 기억해 두자.

에이전트는 선택하는 쪽이고, 환경은 그 선택에 반응하는 쪽이다.

이 경계는 문제를 어떻게 정의하느냐에 따라 달라질 수 있다. 예를 들어 로봇 팔을 학습시킨다고 하자. 로봇 팔의 관절을 움직이는 명령을 에이전트가 선택한다면, 물체의 무게, 마찰, 중력, 카메라 센서, 테이블은 환경이다. 그런데 로봇 팔 내부의 모터 제어까지 따로 학습 대상으로 삼는다면, 이전에는 에이전트의 일부처럼 보였던 영역도 더 세밀하게 나뉠 수 있다.

강화학습에서 문제를 잘 정의한다는 것은 이 경계를 잘 긋는다는 뜻이기도 하다. 무엇을 에이전트가 결정하게 할 것인가? 무엇을 환경의 반응으로 둘 것인가? 이 질문에 따라 같은 현실 문제도 전혀 다른 강화학습 문제가 된다.

상태: 지금 어떤 상황인가

에이전트가 행동을 고르려면 먼저 현재 상황을 알아야 한다. 강화학습에서는 이 현재 상황을 상태라고 부른다.

상태는 에이전트가 의사결정을 할 때 참고하는 정보다. 미로 게임이라면 캐릭터의 현재 위치가 상태가 될 수 있다. 체스라면 말들이 놓인 전체 판이 상태가 된다. 카트폴 문제에서는 카트의 위치, 카트의 속도, 막대기의 기울어진 각도, 막대기가 넘어지는 속도 같은 값들이 상태가 된다.

상태는 단순히 화면에 보이는 그림 자체가 아니다. 에이전트가 행동을 결정하는 데 필요한 방식으로 정리된 정보다.

예를 들어 격자 세계를 생각해 보자. 5칸 by 5칸짜리 작은 미로가 있고, 에이전트는 현재 2행 3열에 있다. 이 문제에서 상태를 가장 단순하게 표현하면 좌표 하나면 충분하다. 상태는 현재 위치, 즉 2행 3열이다. 여기에 열쇠를 가지고 있는지, 문이 열려 있는지, 적이 어느 위치에 있는지 같은 조건이 추가되면 상태도 더 복잡해진다.

상태는 강화학습의 기억 지도와 같다. 에이전트는 상태를 보고 지금 어디에 있는지, 어떤 선택지가 있는지, 앞으로 어떤 일이 벌어질 가능성이 있는지 판단한다.

하지만 실제 세계에서는 상태를 완벽히 알기 어렵다. 그래서 상태와 함께 꼭 알아야 할 단어가 있다. 바로 관측이다.

상태와 관측은 같지 않을 수 있다

상태와 관측은 자주 섞여 쓰이지만, 엄밀히 말하면 다르다.

상태는 환경의 실제 상황이다. 관측은 에이전트가 센서나 화면을 통해 얻은 정보다.

둘이 항상 같지는 않다. 오히려 현실에서는 다른 경우가 많다.

로봇을 생각해 보자. 방 안의 실제 상태에는 가구의 정확한 위치, 바닥의 미끄러움, 먼지의 분포, 사람의 움직임, 배터리 상태가 모두 포함될 수 있다. 하지만 로봇이 실제로 얻는 관측은 제한적이다. 앞쪽 거리 센서 값, 카메라 이미지, 바퀴 회전량, 배터리 잔량 정도일 수 있다. 로봇은 방 전체의 진짜 상태를 신처럼 내려다보지 못한다. 자신에게 들어오는 센서 정보로 추측할 뿐이다.

게임 화면도 마찬가지다. 바둑이나 체스처럼 모든 정보가 공개된 게임에서는 화면에 보이는 판이 거의 전체 상태에 가깝다. 하지만 스타크래프트 같은 전략 게임에서는 전장의 일부만 보인다. 안개에 가려진 지역에 적이 숨어 있을 수 있다. 이때 에이전트가 보는 화면은 관측이고, 실제 게임 전체의 상황은 상태다.

카드 게임도 좋은 예다. 포커에서 내 손패와 공개된 카드는 관측이다. 상대가 들고 있는 카드는 실제 상태의 일부지만, 나는 그것을 직접 볼 수 없다. 그래서 포커 에이전트는 보이는 정보만으로 보이지 않는 정보를 추론해야 한다.

이 차이는 앞으로 강화학습을 이해할 때 매우 중요해진다. 모든 정보를 알고 결정하는 문제와, 일부만 보고 결정해야 하는 문제는 난이도가 다르다. 완전한 지도를 들고 길을 찾는 것과, 손전등 하나로 어두운 동굴을 탐험하는 것의 차이라고 생각하면 된다.

입문 단계에서는 상태와 관측을 너무 엄격히 구분하지 않아도 괜찮다. 하지만 마음속에는 이 문장을 남겨 두자.

에이전트가 실제 세계를 그대로 아는 것은 아니다. 에이전트는 자신에게 주어진 관측을 통해 상태를 짐작하며 행동한다.

이 감각은 로봇, 자율주행, 게임 AI, 그리고 언어 모델 에이전트를 이해할 때 계속 필요해진다.

행동: 에이전트가 고를 수 있는 선택지

상태를 본 에이전트는 행동을 선택한다. 행동은 에이전트가 환경에 가하는 입력이다.

미로에서는 위로 이동, 아래로 이동, 왼쪽으로 이동, 오른쪽으로 이동이 행동이다. 로봇 청소기에서는 앞으로 가기, 멈추기, 회전하기, 흡입 세기 조절하기가 행동이 될 수 있다. 게임 캐릭터라면 점프, 공격, 방어, 아이템 사용, 이동 방향 선택이 행동이다. 언어 모델이라면 다음 단어를 고르는 것도 일종의 행동으로 볼 수 있다.

여기서 행동을 이해할 때 중요한 개념이 행동 공간이다. 행동 공간은 에이전트가 선택할 수 있는 모든 행동의 집합이다.

행동 공간은 크게 이산적인 경우와 연속적인 경우로 나눌 수 있다.

이산적인 행동 공간은 선택지가 뚝뚝 끊어져 있는 경우다. 예를 들어 격자 세계에서 에이전트가 위, 아래, 왼쪽, 오른쪽 중 하나만 고를 수 있다면 행동 공간은 이산적이다. 아케이드 게임에서 버튼을 누를지 말지, 왼쪽으로 갈지 오른쪽으로 갈지 고르는 것도 이산적인 행동이다. 선택지가 번호표처럼 나뉘어 있다.

연속적인 행동 공간은 선택값이 부드럽게 이어지는 경우다. 로봇 팔의 관절을 17.2도 돌릴지, 17.3도 돌릴지, 17.35도 돌릴지 정해야 한다면 행동은 연속적이다. 자율주행 자동차의 핸들을 몇 도 꺾을지, 가속 페달을 얼마나 밟을지, 브레이크 압력을 얼마나 줄지도 연속적인 행동에 가깝다.

두 경우는 알고리즘 선택에 큰 영향을 준다. 이산적인 행동은 각 선택지를 하나씩 비교하기 쉽다. 위로 가면 어떨까, 아래로 가면 어떨까, 왼쪽은 어떨까, 오른쪽은 어떨까를 계산할 수 있다. 그래서 Q-learning 같은 가치 기반 방법과 잘 어울리는 경우가 많다.

반면 연속적인 행동은 가능한 선택지가 사실상 무한히 많다. 핸들을 1도 꺾는 것과 1.01도 꺾는 것까지 모두 후보로 보면 하나씩 비교하기 어렵다. 이럴 때는 정책이 직접 행동 값을 출력하는 방법이 더 자연스러울 수 있다. 나중에 다룰 Policy Gradient나 Actor-Critic 계열 방법이 여기서 중요한 역할을 한다.

물론 현실 문제는 깔끔하게 둘 중 하나로만 나뉘지 않을 때도 많다. 연속 행동을 몇 개의 구간으로 나누어 이산 행동처럼 다룰 수도 있고, 이산 선택과 연속 제어가 섞인 문제도 있다. 하지만 입문 단계에서는 이렇게 기억하면 충분하다.

버튼처럼 고르면 이산 행동, 다이얼처럼 조절하면 연속 행동이다.

이 구분은 앞으로 강화학습 알고리즘을 선택할 때 계속 등장한다.

보상: 행동 직후에 오는 점수

에이전트가 행동을 하면 환경은 새로운 상태를 보여 주고 보상을 준다. 보상은 행동의 결과로 에이전트가 받는 숫자 신호다.

미로에서 목표 지점에 도착하면 +1을 받을 수 있다. 벽에 부딪히면 -1을 받을 수 있다. 아무 일 없이 한 칸 이동하면 0을 받을 수도 있고, 시간을 아끼도록 매번 -0.01을 받을 수도 있다.

게임에서는 점수가 보상처럼 보인다. 적을 물리치면 +100점, 생명을 잃으면 -500점, 스테이지를 클리어하면 +1000점처럼 설계할 수 있다. 카트폴 문제에서는 막대기가 쓰러지지 않고 버틴 시간만큼 보상을 준다. 로봇 팔이 물체를 목표 위치에 가까이 가져가면 보상을 높이고, 떨어뜨리면 보상을 낮출 수 있다.

보상은 단순한 칭찬이 아니다. 보상은 에이전트가 무엇을 잘했다고 볼 것인지 정의하는 신호다.

여기서 조심해야 할 점이 있다. 보상은 보통 행동 직후에 주어지는 숫자지만, 강화학습의 목표는 지금 당장 큰 보상만 얻는 것이 아니다. 정말 중요한 것은 시간이 지나며 누적되는 장기 보상을 크게 만드는 것이다.

예를 들어 미로에서 사탕이 놓인 막다른 길이 있다고 하자. 그 길로 가면 당장은 +1을 얻는다. 하지만 이후 빠져나오는 데 오래 걸려 최종 목표에 늦게 도착한다. 반대로 사탕을 무시하고 돌아가면 당장은 보상이 없지만 더 빨리 출구에 도착해 +10을 얻는다. 좋은 에이전트는 눈앞의 +1만 보지 않고, 앞으로 얻게 될 전체 보상을 생각해야 한다.

보상은 행동 직후의 점수이면서, 동시에 학습 목표를 압축한 신호다. 이 한 문장이 중요하다.

개발자가 보상을 어떻게 설계하느냐에 따라 에이전트가 배우는 행동도 달라진다. 목표 지점에 도착할 때만 보상을 주면 에이전트는 처음에는 무엇이 좋은 행동인지 거의 모른 채 헤맨다. 반대로 목표에 가까워질수록 조금씩 보상을 주면 더 빨리 배울 수 있다. 하지만 보상을 너무 잘못 설계하면 엉뚱한 행동을 배울 수도 있다.

로봇 청소기에게 먼지를 많이 빨아들이면 보상을 준다고 해 보자. 그런데 이동 시간이나 에너지 사용량을 고려하지 않으면, 로봇은 이미 깨끗한 곳을 반복해서 지나가며 센서 오류로 잡히는 작은 먼지 신호만 노릴 수도 있다. 게임 AI에게 점수만 높이라고 하면, 재미있는 플레이 대신 점수 버그를 찾아 같은 행동을 반복할 수도 있다.

에이전트는 우리가 의도한 좋은 행동을 배우는 것이 아니라, 보상으로 표현된 목표를 최적화한다. 그래서 강화학습에서 보상 설계는 매우 중요하다.

한 번의 상호작용을 따라가 보자

이제 다섯 요소를 하나의 장면으로 묶어 보자. 작은 격자 세계가 있다. 에이전트는 출발점에서 시작해 목표 지점까지 가야 한다. 벽에 부딪히면 움직이지 못하고, 목표에 도착하면 보상을 받는다.

처음에 에이전트는 현재 위치를 본다. 이것이 상태다. 에이전트는 위, 아래, 왼쪽, 오른쪽 중 하나를 고른다. 이것이 행동이다. 환경은 그 행동을 적용한다. 길이 있으면 에이전트를 한 칸 이동시키고, 벽이면 제자리에 둔다. 그리고 보상을 준다. 목표에 가까워졌다고 보상을 줄 수도 있고, 목표에 도착했을 때만 보상을 줄 수도 있다. 이후 에이전트는 새로운 위치, 즉 다음 상태를 받는다.

이 흐름은 다음처럼 반복된다.

  1. 에이전트가 현재 상태를 관측한다.

  2. 에이전트가 가능한 행동 중 하나를 선택한다.

  3. 환경이 행동의 결과를 계산한다.

  4. 환경이 보상과 다음 상태를 돌려준다.

  5. 에이전트가 이 경험을 바탕으로 다음 선택 방식을 조정한다.

이 한 번의 상호작용을 시간의 한 칸이라고 부를 수 있다. 강화학습에서는 이런 시간 칸을 보통 타임스텝이라고 한다. 타임스텝이 여러 번 이어지면 하나의 에피소드가 된다. 미로에서 출발해 목표에 도착하거나 실패로 끝날 때까지의 과정이 한 에피소드다. 게임 한 판, 로봇의 한 번의 작업 시도, 대화형 AI의 한 번의 응답 생성 과정도 문제 정의에 따라 에피소드처럼 볼 수 있다.

에이전트는 에피소드를 한두 번 경험한다고 갑자기 똑똑해지지 않는다. 수많은 시도를 통해 어떤 상태에서 어떤 행동이 좋은 결과로 이어졌는지 조금씩 배운다. 처음에는 벽에 부딪히고, 길을 돌아가고, 보상이 없는 곳에서 헤맨다. 하지만 경험이 쌓일수록 특정 상태에서 더 나은 행동을 고를 가능성이 높아진다.

이 반복 구조가 강화학습의 심장 박동이다.

같은 현실도 다르게 정의할 수 있다

강화학습의 다섯 요소는 정답처럼 고정되어 있지 않다. 우리가 문제를 어떻게 만들 것인지에 따라 달라진다.

로봇 청소기를 다시 생각해 보자. 목표를 가장 단순하게 잡으면 방 전체를 청소하는 것이다. 이때 상태는 로봇의 위치와 주변 장애물 정보가 될 수 있다. 행동은 앞으로 이동, 좌회전, 우회전, 멈춤 정도로 잡을 수 있다. 보상은 먼지를 제거할 때 +1, 벽에 부딪힐 때 -1, 시간이 지날 때 -0.01처럼 줄 수 있다.

하지만 목표를 배터리 효율까지 고려하는 것으로 바꾸면 문제가 달라진다. 이제 배터리 잔량이 상태에 포함되어야 한다. 행동에도 충전기로 돌아가기 같은 선택이 들어갈 수 있다. 보상은 먼지 제거뿐 아니라 에너지 절약, 충전 성공, 청소 완료 시간까지 반영해야 한다.

목표를 사람에게 방해되지 않게 청소하는 것으로 바꾸면 또 달라진다. 사람의 위치나 움직임 예측이 상태에 들어가고, 사람 가까이에 접근하면 벌점을 줄 수 있다. 같은 로봇 청소기라도 무엇을 배우게 하고 싶은지에 따라 상태, 행동, 보상이 모두 바뀐다.

이것이 강화학습 문제 설계의 핵심이다. 알고리즘을 적용하기 전에 먼저 물어야 한다.

이 문제에서 선택하는 주체는 누구인가? 그 주체가 볼 수 있는 정보는 무엇인가? 어떤 행동을 허용할 것인가? 무엇을 잘한 행동으로 보상할 것인가?

이 질문에 제대로 답하지 못하면 좋은 알고리즘을 가져와도 학습은 흔들린다. 반대로 문제 정의가 명확하면, 이후에 어떤 알고리즘을 선택해야 할지도 훨씬 분명해진다.

행동을 배우는 언어로 세상을 번역하기

강화학습은 세상을 있는 그대로 다루지 않는다. 세상을 에이전트, 환경, 상태, 행동, 보상이라는 언어로 번역한다.

게임 AI를 만들고 싶다면 게임 화면과 규칙을 이 언어로 바꾸어야 한다. 로봇을 움직이고 싶다면 센서 값과 모터 명령을 이 언어로 바꾸어야 한다. 추천 시스템을 강화학습으로 바라보고 싶다면 사용자 상황을 상태로, 추천할 콘텐츠를 행동으로, 클릭이나 만족도를 보상으로 해석해야 한다.

언어 모델도 마찬가지다. 대화의 문맥은 상태 또는 관측이 될 수 있다. 모델이 생성하는 다음 토큰이나 답변은 행동이 될 수 있다. 사람이 더 선호하는 답변에는 높은 보상을, 덜 선호하는 답변에는 낮은 보상을 줄 수 있다. 훗날 RLHF를 배울 때도 이 기본 구조는 변하지 않는다. 다만 상태가 문장이고, 행동이 언어이며, 보상이 인간의 선호에서 온다는 점이 다를 뿐이다.

이렇게 보면 강화학습은 특정 분야의 기술이라기보다, 선택이 있고 결과가 있으며 그 결과를 통해 더 나은 선택을 배워야 하는 문제를 바라보는 틀에 가깝다.

중요한 것은 세상을 무리하게 강화학습 문제로 바꾸는 것이 아니다. 어떤 문제가 강화학습에 어울리는지 판단하는 감각이다. 정답 데이터가 충분하고 한 번의 예측만 잘하면 되는 문제라면 지도학습이 더 간단하고 강력할 수 있다. 하지만 행동의 결과가 나중에 나타나고, 여러 선택이 이어져 최종 성과를 만들며, 시행착오를 통해 전략을 개선해야 한다면 강화학습의 언어가 빛을 발한다.

다섯 요소가 어긋나면 학습도 어긋난다

강화학습에서는 알고리즘만큼 문제 정의가 중요하다. 다섯 요소 중 하나라도 잘못 잡히면 에이전트는 이상한 것을 배운다.

상태가 부족하면 에이전트는 중요한 정보를 모른 채 행동한다. 로봇에게 장애물 센서 없이 이동만 배우게 하면 충돌을 피하기 어렵다. 게임 에이전트에게 적의 위치 정보를 주지 않으면 왜 갑자기 피해를 입는지 이해하기 어렵다.

행동 공간이 부적절하면 좋은 전략 자체가 불가능해진다. 미로에서 대각선 이동이 꼭 필요한데 행동에 대각선이 없다면 에이전트는 아무리 배워도 최적 경로를 찾을 수 없다. 반대로 필요 이상으로 행동을 세밀하게 만들면 학습이 느려질 수 있다.

보상이 잘못되면 에이전트는 우리가 원하지 않는 목표를 향해 열심히 달린다. 보상은 에이전트에게 전달되는 거의 유일한 가치 판단 신호다. 말로는 안전하게 운전하라고 해도, 보상에는 속도만 크게 반영되어 있다면 에이전트는 위험하게 빠른 운전을 배울 수 있다.

환경이 현실과 너무 다르면 학습한 행동이 실제 세계에서 통하지 않을 수 있다. 시뮬레이션에서만 학습한 로봇이 현실 바닥의 마찰이나 센서 오차를 만나면 예상과 다르게 움직일 수 있다. 그래서 로봇 강화학습에서는 환경을 얼마나 현실적으로 만들 것인지가 큰 문제다.

에이전트의 범위를 잘못 잡아도 문제가 생긴다. 너무 많은 것을 에이전트가 한꺼번에 결정하게 만들면 학습이 어려워진다. 반대로 중요한 결정을 환경에 숨겨 버리면 에이전트가 배울 수 있는 여지가 줄어든다.

강화학습을 잘한다는 것은 알고리즘 이름을 많이 아는 것만이 아니다. 어떤 정보를 상태로 줄지, 어떤 행동을 허용할지, 어떤 보상을 설계할지, 환경을 어디까지 모델링할지 판단하는 능력이다.

아주 작은 예제로 정리하기

마지막으로 다섯 요소를 하나의 작은 예제로 정리해 보자.

우리는 4칸짜리 복도에 에이전트를 놓는다. 맨 왼쪽이 시작점이고 맨 오른쪽이 목표 지점이다. 에이전트는 왼쪽 또는 오른쪽으로 한 칸 이동할 수 있다. 목표에 도착하면 +1을 받고 에피소드가 끝난다. 그 외에는 보상이 0이다.

이 문제를 강화학습의 언어로 쓰면 다음과 같다.

구성 요소이 예제에서의 의미
Agent왼쪽 또는 오른쪽 이동을 선택하는 학습 주체
Environment4칸 복도, 이동 규칙, 목표 도착 판정
State에이전트의 현재 칸 위치
Action왼쪽으로 이동 또는 오른쪽으로 이동
Reward목표 도착 시 +1, 그 외에는 0

처음 에이전트는 아무것도 모른다. 시작점에서 왼쪽으로 가려 할 수도 있다. 그러면 환경은 더 이상 왼쪽으로 갈 수 없으니 제자리에 머물게 할 수 있다. 오른쪽으로 한 칸 이동하면 보상은 아직 없지만 상태가 바뀐다. 계속 오른쪽으로 가다 보면 목표에 도착하고 +1을 받는다.

에이전트는 이 경험을 통해 시작점에서는 오른쪽으로 가는 것이 좋다는 사실을 조금씩 배운다. 당장은 보상이 없어도, 오른쪽으로 가는 행동이 결국 목표 보상으로 이어진다는 것을 알게 된다.

이 작은 복도 안에 강화학습의 핵심이 모두 들어 있다. 선택하는 주체가 있고, 반응하는 환경이 있다. 현재 위치라는 상태가 있고, 왼쪽과 오른쪽이라는 행동이 있다. 목표에 도착하면 보상이 있다. 그리고 에이전트는 반복 경험을 통해 더 좋은 선택을 배운다.

복도가 미로가 되고, 미로가 게임이 되고, 게임이 로봇 제어가 되고, 로봇 제어가 언어 모델 정렬로 확장되어도 기본 구조는 같다.

상태를 본다. 행동을 선택한다. 보상을 받는다. 다음 상태로 이동한다. 장기 보상을 높이는 전략을 배운다.

이 문장을 이해했다면 강화학습의 문 앞에 선 것이 아니라, 이미 그 안으로 한 걸음 들어온 것이다.

이 장에서 기억할 것

강화학습은 에이전트와 환경의 반복 상호작용 위에 세워진다. 에이전트는 선택하는 주체이고, 환경은 에이전트가 직접 통제하지 못하는 바깥 세계다. 상태는 현재 상황을 표현한 정보이며, 관측은 에이전트가 실제로 얻는 감각 정보다. 둘은 같을 수도 있지만, 로봇 센서나 부분적으로만 보이는 게임 화면처럼 다를 때도 많다.

행동은 에이전트가 고를 수 있는 선택지다. 버튼처럼 나뉜 행동은 이산적이고, 핸들이나 로봇 관절처럼 연속적으로 조절하는 행동은 연속적이다. 이 차이는 나중에 어떤 강화학습 알고리즘이 적합한지 판단하는 중요한 단서가 된다.

보상은 행동 직후에 주어지는 숫자 점수이면서, 동시에 에이전트가 무엇을 목표로 배워야 하는지 압축한 신호다. 보상이 잘 설계되면 에이전트는 우리가 원하는 방향으로 배운다. 보상이 어긋나면 에이전트는 엉뚱하지만 보상만은 잘 받는 행동을 배울 수 있다.

앞으로 우리는 이 다섯 요소 위에 정책과 가치 함수라는 새로운 개념을 올릴 것이다. 에이전트가 어떤 행동을 고르는 방식을 정책이라고 부르고, 어떤 상태나 행동이 얼마나 좋은지 평가하는 생각을 가치 함수라고 부른다. 하지만 그 모든 개념의 출발점은 변하지 않는다.

강화학습은 행동을 선택하고, 결과를 경험하고, 보상을 통해 더 나은 선택 방식을 배워 가는 과정이다.

책 목록

처음 만나는 강화학습: 보상으로 행동을 배우는 AI

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기