보상만 쫓았는데 세상의 규칙을 배웠다고요
보상만 보고 배운 PPO 에이전트의 가치 함수 안에 세상에 대한 이해가 들어 있는지, 같은 장면을 살짝 바꿔 묻는 반사실 개입으로 따져본 Crafter 연구를 구조와 다이아몬드 규칙, 물과 음식, 인벤토리 감각 중심으로 읽는다.
원문 논문 보기
Visualizing the World Model in an Agent's Value Function은 arXiv에 arXiv 번호 2610.14186으로 공개된 연구입니다. 원문 링크는 제목 아래에 걸어두었습니다.
이 연구가 내세우는 주장은 하나의 문장으로 정리됩니다. 보상만 보고 배우는 model-free 강화학습 에이전트의 가치 함수 안에도 세상이 어떻게 돌아가는지에 대한 이해가 들어 있는지를 같은 장면을 살짝씩 바꿔 묻는 방식으로 직접 꺼내 볼 수 있다는 것입니다. 이 글에서는 그 문제의식에서 출발해 가치 함수라는 오래된 도구를 왜 다시 들여다보는지, 반사실 개입이라는 질문법이 무엇인지, 그리고 Crafter라는 작은 생존 세상에서 다이아몬드와 물, 인벤토리를 둘러싸고 어떤 장면이 드러났는지를 차례로 따라갑니다.
보상만 쫓던 에이전트가 궁금해진 까닭
안녕하세요, 패트릭입니다.
강화학습 에이전트를 오래 보다 보면 묘한 장면과 마주할 때가 있습니다. 분명 보상 점수만 보고 배웠다고 하는데, 막상 플레이를 보면 꽤 영리하게 움직이거든요. 위험한 곳은 돌아가고, 필요해 보이는 재료는 미리 챙기고, 당장은 점수가 안 되는 행동도 나중을 위해 해둡니다. 그렇다면 이 영리함은 어디에 저장되어 있을까요. 정책 안에 있을까요, 아니면 점수를 예측하는 다른 부분에 숨어 있을까요.
제가 이 논문에서 가장 흥미롭게 본 부분은 바로 이 질문을 가치 함수에게 던졌다는 점입니다. 가치 함수란 지금 이 상태에서 앞으로 얼마나 좋은 일이 생길지를 숫자로 적어두는 장치인데요. 보통은 정책을 잘 뽑기 위한 보조 계산기로 취급됩니다. 보상이 들어오면 숫자를 고치고, 그 숫자로 다음 행동을 고르는 식이죠. 그런데 저자들은 여기서 한 걸음 더 나아갑니다. 이 숫자가 단순한 점수 예상을 넘어, 세상 규칙에 대한 이해를 담고 있지는 않을까 하고 물은 것입니다.
생각해보면 사람도 비슷하게 배웁니다. 시험 점수만 쫓으며 공부했는데, 어느 날 머릿속에 과목 전체의 지도가 들어 있는 것을 발견하는 순간이 있죠. 공식은 외웠는데, 공식끼리 어떻게 연결되는지도 어렴풋이 알게 되는 식입니다. 에이전트에게도 그런 일이 생길 수 있을까요. 보상이라는 시험 점수만 보고 달렸는데, 세상의 구조라는 지도가 덤으로 생기는 일이 말이죠. 오늘은 그 가능성을 눈으로 확인하려는 시도를 함께 살펴보겠습니다.
가치 함수에게 말을 걸면 무엇이 들릴까
강화학습에서 모델이라는 말은 꽤 넓게 쓰이는데요. 여기서 모델은 세상이 어떻게 변하는지를 아는 지식을 뜻합니다. 지금 돌을 캐면 돌이 늘어나고, 밤이 되면 괴물이 나오고, 배가 고프면 체력이 닳는다는 식의 인과를 미리 짐작하는 것이죠. 전통적으로는 이런 지식을 따로 배우는 갈래가 있었습니다. 다음 화면을 예측하는 네트워크를 따로 두는 식인데, 이를 model-based 접근이라고 부릅니다.
반면 PPO 같은 model-free 방법은 그런 예측기를 따로 두지 않습니다. 대신 어떤 행동이 좋은지를 직접 배웁니다. 정책은 행동을 고르고, 가치 함수는 그 상태가 얼마나 좋은지를 숫자로 매기죠. 그래서 오랫동안 가치 함수는 지도가 아니라 점수판처럼 여겨졌습니다. 점수판은 현재 점수를 보여줄 뿐, 경기 규칙을 설명해주지는 않으니까요. 그렇다면 점수판만 보고도 규칙을 아는지 물을 수 있을까요. 이 질문이 이번 연구의 출발점입니다.
저는 이 숫자보다 그 뒤의 구조가 더 중요하다고 봅니다. 가치 함수가 단순히 높고 낮음만 말하는 게 아니라, 왜 높은지를 구분해서 알고 있다면 이야기가 달라지기 때문입니다. 다이아몬드가 보여서 높은 것인지, 물이 가까워서 높은 것인지, 가방에 철 곡괭이가 있어서 높은 것인지를 가려낼 수 있다면, 그 숫자는 점수를 넘어 믿음에 가까워집니다. 믿음이라면 꺼내 볼 수 있어야겠죠. 그렇다면 어떻게 꺼낼 수 있을까요. 그 이야기는 질문법으로 이어집니다.

같은 장면을 살짝 바꿔 묻는 일
여기서 재미있는 질문이 생깁니다. 에이전트가 정말로 규칙을 안다는 것을 어떻게 증명할 수 있을까요. 잘 플레이한다는 것만으로는 부족한데, 운이 좋아서 그렇게 보일 수도 있고, 겉모습만 흉내 내는 것일 수도 있기 때문입니다. 그래서 저자들은 반사실 개입이라는 꽤 단단한 방법을 가져옵니다.
방법은 말로 풀면 단순합니다. 같은 장면을 두 개 놓고, 하나만 살짝 바꾸는 것이죠. 에이전트가 서 있는 위치도 같고, 주변 지형도 같고, 시간도 같은데, 딱 한 칸만 다르게 만듭니다. 예를 들어 왼쪽 장면에서는 앞칸에 다이아몬드가 있고, 오른쪽 장면에서는 그 다이아몬드 칸만 돌로 바꿔둡니다. 그리고 두 장면에 대한 가치 함수의 숫자를 비교합니다. 만약 에이전트가 다이아몬드를 캘 준비가 된 상태라면, 왼쪽의 숫자가 오른쪽보다 높게 나와야겠죠. 반대로 캘 도구가 없다면 두 숫자는 비슷하게 나와야 합니다. 조건이 하나 바뀔 때 숫자가 어떻게 달라지는지를 보는 것입니다.
이 방식이 좋은 이유는 다른 설명을 미리 차단하기 때문입니다. 장면 전체가 다르면 숫자가 왜 달라졌는지 알 수 없는데요. 위치가 달라서인지, 체력이 달라서인지, 밤낮이 달라서인지가 뒤섞이기 때문입니다. 그런데 모든 것을 고정한 채 한 가지만 바꾸면, 달라진 숫자는 그 한 가지 때문이라고 읽을 수 있습니다. 일종의 대조 실험처럼요. (참고로 이런 개입은 실제 게임을 플레이하면서 바꾸는 게 아니라, 이미 학습된 가치 함수에게 가상의 장면을 보여주고 반응을 읽는 방식으로 이루어집니다. 에이전트를 다시 학습시키는 과정이 아니라, 배운 뒤의 머릿속을 들여다보는 과정에 가깝습니다.)
문제는 그다음입니다. 숫자가 달라졌다는 사실만으로 이해했다고 말할 수 있을까요. 저는 여기서 조금 의심했습니다. 숫자는 달라질 수 있는데, 그 이유를 엉뚱하게 배웠을 수도 있기 때문입니다. 다이아몬드 옆에 있으면 원래 보상이 자주 들어오니까, 규칙을 몰라도 숫자가 높을 수 있죠. 그래서 다음 장면이 중요합니다. 숫자가 오르고 내리는 패턴이 게임의 진짜 규칙과 맞물리는지를 봐야 합니다.
다이아몬드 앞에서 멈칫하는 이유를 아는 마음
Crafter라는 세상은 이런 질문을 던지기에 참 잘 고른 놀이터입니다. 화면은 소박한 2차원 픽셀 세상이지만, 살아남기 위해서는 꽤 긴 사슬을 엮어야 하거든요. 나무를 베어 작업대를 만들고, 돌을 캐서 돌 도구를 만들고, 철을 찾아 철 곡괭이를 만들어야 비로소 다이아몬드를 캘 수 있습니다. 순서가 어긋나면 아무리 다이아몬드 앞에 서 있어도 아무 일도 일어나지 않죠. 밤에는 쉬어야 하고, 배가 고프면 먹어야 합니다. 짧은 반사 신경보다 준비와 순서가 중요한 세상입니다.
저자들이 들여다본 장면 가운데 저를 오래 붙잡은 것은 다이아몬드 주변의 반응이었습니다. 보상만 보고 배운 PPO 에이전트의 가치 함수가, 다이아몬드를 캘 수 있는 조건을 가려내고 있었기 때문입니다. 같은 다이아몬드라도 가방 안에 철 곡괭이가 있을 때와 없을 때의 숫자 반응이 달랐는데요. 캘 준비가 된 상태에서는 다이아몬드가 시야에 들어오면 숫자가 올라가고, 준비가 안 된 상태에서는 같은 다이아몬드를 봐도 숫자가 크게 움직이지 않았습니다. 겉으로 보면 같은 반짝이는 돌인데, 에이전트에게는 다른 대상이었던 셈이죠.
이 차이는 생각보다 중요합니다. 다이아몬드가 보이면 무조건 좋아하는 것과, 캘 수 있을 때만 좋아하는 것은 전혀 다른 이해이기 때문입니다. 전자는 자주 본 것에 대한 반가움이고, 후자는 조건에 대한 이해에 가깝습니다. 물론 여기서는 조금 조심해서 읽을 필요가 있습니다. 에이전트가 사람처럼 제작법을 말로 설명할 수 있다는 뜻이 아니기 때문입니다. 숫자가 조건에 따라 다르게 움직였다는 것이지, 규칙을 문장으로 이해했다는 증거는 아니죠. 그럼에도 불구하고 저는 이 장면을 가볍게 넘기기 어려웠습니다. 보상 신호만으로 배웠는데, 보상까지 가는 다리의 모양을 어렴풋이 짚고 있었기 때문입니다.
그렇다면 이 이해는 얼마나 단단할까요. 다이아몬드 하나만 맞히면 되는 것인지, 아니면 생존이라는 더 넓은 감각까지 번져 있는지 봐야 합니다. 그래서 시선은 자연스럽게 물과 음식으로 옮겨갑니다.

물 한 칸과 배고픔이 점수에 스미는 방식
Crafter에서 물과 음식은 당장 점수를 주지 않지만, 없으면 서서히 무너지는 자원입니다. 목이 마르고 배가 고프면 체력이 닳고, 체력이 다하면 기다리던 미래가 사라지죠. 사람으로 치면 당장은 티가 안 나지만, 밤새 쌓이는 피로 같은 것입니다. 이런 자원을 에이전트가 어떻게 느끼는지는 꽤 좋은 시험지가 됩니다. 눈앞의 반짝임이 아니라, 멀리 있는 필요를 숫자에 반영하는지를 볼 수 있기 때문입니다.
저자들이 같은 방식으로 물과 음식을 바꿔가며 물었을 때, 가치 함수는 이 distant한 필요를 알아채고 있었습니다. 주변에 마실 물이 있거나 먹을 것이 있을 때 숫자가 다르게 움직였고, 특히 체력이 좋지 않은 상태에서는 그 차이가 더 또렷해졌습니다. 건강한 상태에서는 물 한 칸쯤 없어도 여유가 있지만, 체력이 바닥난 상태에서는 같은 물 한 칸이 훨씬 크게 느껴지는 식이죠. 숫자가 현재 상태와 주변 자원을 함께 고려해 움직였다는 뜻입니다.
저는 이 대목에서 실제 시스템 관점으로 한 가지가 떠올랐습니다. 저희가 새로운 AI 아키텍처를 볼 때도 당장의 출력만 보지는 않습니다. 그 출력이 어떤 상태를 전제로 나오는지를 함께 보는데요. 물이 있다는 사실과, 물이 지금 필요한지를 구분하는지가 바로 그 조건 감각이기 때문입니다. 가치 함수가 그 둘을 섞지 않고 따로 반영했다면, 단순히 좋은 장면을 외운 게 아니라 몸 상태를 함께 읽은 셈이 됩니다.
다만 여기서도 성급하게 일반화하면 안 되는데요. 물을 좋아한다는 반응이 물의 역할을 이해했다는 뜻과 꼭 같지는 않기 때문입니다. 물 근처에서 보상을 자주 받았다면, 규칙을 몰라도 물 근처에서 숫자가 오를 수 있죠. 그래서 저자들의 질문법이 다시 중요해집니다. 같은 몸 상태, 같은 위치에서 물의 유무만 바꿨을 때 숫자가 달라졌다면, 적어도 그 한 칸의 차이를 가려내고 있다는 증거가 되기 때문입니다. 그렇다면 가방 안은 어떨까요. 눈에 보이는 바깥 세상만큼, 손에 쥔 것들도 미래를 바꿀까요.

가방 속 도구가 미래를 바꾸는 순간
인벤토리는 Crafter에서 미래를 품은 주머니입니다. 지금 당장 쓰지 않아도, 무엇을 들고 있느냐가 다음 행동의 가능성을 바꾸거든요. 나무가 한 묶음 있느냐 없느냐에 따라 작업대를 만들 수 있고, 돌 도구가 있느냐에 따라 철을 캘 수 있습니다. 바깥 지형은 그대로인데, 주머니 안 내용물만으로 갈 수 있는 길이 달라지는 셈이죠. 사람으로 치면 자격증이나 공구함에 가깝습니다. 손에 없으면 눈앞에 일이 있어도 시작할 수 없으니까요.
가치 함수는 이 주머니의 차이에도 반응했습니다. 바깥 장면은 똑같이 두고 가방 안의 재료나 도구만 바꿨을 때, 앞으로의 기대를 담은 숫자가 달라졌는데요. 재료를 갖춘 상태에서는 다음 단계로 나아갈 수 있다는 듯 숫자가 올라가고, 재료가 비어 있을 때는 같은 바깥 풍경이어도 숫자가 낮게 머물렀습니다. 특히 자원 관리와 관련된 직관에서 이런 패턴이 또렷했는데, 무엇을 먼저 모으고 무엇을 아껴야 하는지에 대한 어렴풋한 우선순위가 숫자에 배어 있었다는 것입니다.
개인적으로 인상 깊었던 점은, 이 반응이 단순한 소유욕처럼 보이지 않았다는 것입니다. 많이 들고 있으면 무조건 좋은 게 아니라, 다음 과제에 맞는 것을 들고 있을 때 숫자가 움직였기 때문입니다. 철이 필요한 단계에서 나무만 가득 들고 있으면 숫자가 크게 오르지 않는데, 필요한 도구가 갖춰지면 같은 장면에서도 숫자가 달라집니다. 마치 등산 전에 지도와 물을 챙겼을 때 마음이 놓이는 것과 비슷한데요. 짐이 많다고 안심하는 게 아니라, 필요한 짐이 맞을 때 안심하는 감각이죠.
여기서 또 다른 질문이 생깁니다. 이런 감각을 안다고 해서 에이전트가 매번 옳게 행동할까요. 숫자로는 알아도 행동으로는 실수할 수 있는데, 아는 것과 하는 것 사이에는 틈이 있기 때문입니다. 그 틈을 메우는 것이 바로 믿음을 꺼내 보는 일인데요. 왜냐하면 숫자가 보여야 어디가 어긋났는지를 고칠 수 있기 때문입니다.

믿음을 꺼내 보는 일이 안전과 맞닿는 지점
이 논문이 기술 이야기를 넘어서는 대목은 안전에 대한 시선입니다. 에이전트의 믿음을 눈으로 볼 수 있다면, 잘못된 믿음을 미리 고칠 수 있다는 것이죠. 겉으로는 멀쩡히 움직이는데 속으로는 엉뚱한 규칙을 믿고 있다면, 그 간극은 언젠가 사고로 드러납니다. 다이아몬드를 캘 수 있다고 믿는데 실제로는 도구가 없거나, 물이 필요 없다고 믿는데 체력이 바닥나는 식입니다. 행동만 보면 당장은 티가 안 나다가, 낯선 장면에서 갑자기 무너지는 것이죠.
그래서 시각화라는 말은 예쁜 그림 이상의 뜻을 가집니다. 숫자의 높낮이를 장면 위에 겹쳐 보여주면, 에이전트가 무엇을 보고 기대하는지가 드러나기 때문입니다. 어디에서 기대가 커지고, 어디에서 기대가 꺾이는지를 따라가면, 에이전트 나름의 세계 지도가 어렴풋이 보입니다. 저는 이 시도가 마음에 들었지만, 여기까지 일반화하기에는 데이터가 부족하다고 봅니다. 작은 게임에서 통했다고 해서 곧바로 복잡한 현실에서도 통한다는 뜻은 아니기 때문입니다. 그럼에도 방향 자체는 분명합니다. 블랙박스를 점수로만 재지 말고, 믿음의 모양으로 읽어보자는 것이죠.
실제 운영 측면에서 보면 이 차이는 상당히 큽니다. 배포 전에 에이전트가 어떤 조건에서 과신하는지를 알 수 있다면, 막는 장치를 먼저 둘 수 있기 때문입니다. 특정 재료를 과대평가한다면 그 경로에 점검을 넣고, 특정 위험을 과소평가한다면 경고를 앞당기는 식이죠. 저희 팀에서도 모델을 볼 때 정답률 옆에 실패의 모양을 함께 봅니다. 어디에서 틀리는지를 알아야 고칠 곳이 보이기 때문입니다. 믿음을 꺼내 보는 일은 결국 고칠 곳을 찾는 일과 이어집니다.
그렇다면 믿음이 보인다고 해서 그 믿음이 진짜 이해일까요. 여기서부터는 논문이 스스로 브레이크를 거는 지점입니다.
그래도 이 마음 지도를 너무 믿으면 안 되는 까닭
앞에서 본 장면들이 흥미롭다고 해서, 에이전트가 세상을 완전히 이해했다고 말하면 성급합니다. 저자들도 그 선을 분명히 긋는데요. 숫자가 규칙처럼 보인다고 해서, 그 뒤에 진짜 인과가 있다고 단정할 수는 없기 때문입니다. 자주 함께 나타나는 것을 규칙으로 착각하는 경우, 즉 상관관계를 인과로 오해하는 함정이 여기에도 있기 때문입니다.
예를 들어 화요일 아침 출근길을 떠올려보죠. 매번 같은 카페 앞에서 신호가 잘 걸렸다고 해서, 그 카페가 신호를 만든다고 믿지는 않습니다. 그냥 우연히 겹친 것일 수도 있죠. 에이전트의 숫자도 마찬가지입니다. 다이아몬드 근처에서 숫자가 오른다고 해서, 제작 사슬을 전부 이해했다고 말할 수는 없습니다. 다이아몬드 근처에는 원래 좋은 조건이 함께 있기 마련이라, 조건 전체에 대한 반가움이 다이아몬드 하나로 오해될 수도 있기 때문입니다. 반사실 개입이 이런 의심을 줄여주기는 하지만, 완전히 없애주지는 못합니다.
여기서는 조금 조심해서 읽을 필요가 있는데, 현재의 에이전트가 보여준 것은 진짜 세계 모델이라기보다 세계 모델의 그림자에 가깝기 때문입니다. 필요한 조각은 제법 갖추고 있지만, 조각끼리 단단하게 엮였는지는 아직 모릅니다. 낯선 배치가 나오면 금세 헷갈릴 수 있고, 자주 본 장면에서는 맞는 척할 수도 있죠. 저는 그래서 이 결과를 절반의 성공이라고 봅니다. 보상만 보고도 여기까지 왔다는 것은 놀라운데, 여기까지 왔다고 해서 다 왔다고 말할 수는 없기 때문입니다. 그렇다면 이 절반을 어떻게 채워야 할까요. 오래된 논쟁으로 잠시 돌아갈 필요가 있습니다.

보상만으로 충분할까라는 오래된 질문으로 돌아가면
강화학습에는 오래된 갈림길이 있습니다. 세상을 미리 배우고 움직일 것인가, 아니면 일단 움직이며 배울 것인가의 갈림길이죠. 전자는 지도를 먼저 그리는 쪽이고, 후자는 발로 뛰며 감각을 익히는 쪽입니다. PPO는 분명 후자에 서 있습니다. 다음 화면을 맞히는 연습 없이, 어떤 행동이 보상으로 이어졌는지만으로 정책을 고칩니다. 그런데 이번 결과는 그 발밑에도 작은 지도가 깔려 있었음을 보여줍니다.
질문도 바뀌었습니다. 무엇을 따로 가르쳐야 하는가에서, 이미 무엇이 들어 있는지를 어떻게 꺼낼 것인가로 말이죠. 가르치는 쪽에 서면 다음 화면 예측기를 붙이고, 계획 모듈을 얹고, 메모리를 넓히는 일이 먼저 떠오릅니다. 반면 꺼내는 쪽에 서면 질문이 달라집니다. 이미 배운 숫자 안에 어떤 구분이 들어 있는지, 그 구분을 어떻게 하면 바깥으로 드러낼 수 있는지를 묻게 되죠. 이번 연구는 분명 후자의 질문에 가깝습니다. 새로 무언가를 붙이기보다, 있던 것을 읽는 데 집중했기 때문입니다.
저는 이 전환이 앞으로의 연구에 꽤 실질적인 힌트를 준다고 봅니다. 규모를 키우기 전에 지금 무엇을 알고 모르는지를 먼저 재는 편이 싸게 배우는 길이기 때문입니다. 지도 없이 달리는 에이전트에게 무작정 더 많은 경험을 먹이기보다, 어느 구간에서 규칙 감각이 끊기는지를 먼저 찾으면 다음 학습이 덜 헤매죠. 물론 이 대목에서도 과장은 경계해야 합니다. 작은 2차원 세상에서 통했다고 해서 복잡한 도시나 공장에서도 통한다는 보장은 없기 때문입니다. 그럼에도 불구하고 질문의 방향은 남습니다. 보상을 쫓는 것만으로 어디까지 갈 수 있고, 어디부터는 다른 도움이 필요할까요.
다음에는 무엇을 눈앞에 보여줘야 할까
마지막으로 남은 것은 앞으로의 숙제입니다. 저자들이 남긴 메모 가운데 저를 오래 붙잡은 것은 현재 에이전트의 부족함에 대한 지적이었습니다. 지금의 에이전트는 가까운 규칙에는 민감하지만, 멀고 복잡한 인과에는 여전히 서툴 수 있다는 것이죠. 다이아몬드 앞에서는 조건을 가리지만, 자원이 여러 단계로 얽히거나 시간이 길게 늘어지면 감각이 흐려질 수 있습니다. 지도라고 부르기에는 아직 빈칸이 많은 셈입니다.
실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 이런 믿음 읽기를 더 어려운 세상에서도 쓸 수 있을까요. 화면이 커지고, 행동이 늘고, 시간이 길어지면 같은 질문법이 그대로 통할지 알 수 없습니다. 한 칸만 바꾸는 실험이 2차원에서는 쉬웠지만, 현실에서는 한 칸이라는 개념 자체가 흐릿해지기 때문입니다. 무엇을 고정하고 무엇을 바꿀지가 먼저 문제가 되죠. 저는 그래서 다음 연구는 질문의 정교함에서 갈릴 것이라고 봅니다. 더 큰 모델을 쓰는 것보다, 더 좋은 질문을 만드는 것이 먼저라는 뜻입니다.
그렇다면 사람의 역할은 무엇일까요. 저는 이 논문을 덮으며 한 가지 장면을 떠올렸습니다. 밤늦게 로그를 보며 왜 에이전트가 엉뚱한 길로 갔는지 헤매던 운영자의 얼굴이었습니다. 점수는 멀쩡했는데 행동은 어긋나서, 어디를 고쳐야 할지 몰라 막막했던 순간이죠. 믿음을 눈앞에 보여주는 도구가 있다면, 그 막막함이 조금은 덜어질 것 같습니다. 숫자가 아니라 장면으로, 결과가 아니라 기대의 모양으로 물을 수 있으니까요. 보상만 보고 달린 에이전트에게도 마음의 지도가 어렴풋이 있다면, 우리의 일은 그 지도를 함께 읽고 빈칸을 메우는 일이 아닐까요.

참고 자료
- Visualizing the World Model in an Agent's Value Function · arxiv.org
리뷰 원문