학습을 더 오래 돌리면 로봇의 걸음은 조금씩 좋아질까? 강화학습을 처음 볼 때는 시행착오를 많이 할수록 정답에 가까워질 것처럼 보입니다. 하지만 최근 보행 실험에서는 정책이 실제로 업데이트됐고 일부 조건에서는 이동 거리도 늘었는데, 제가 확인하고 싶었던 좌우 교대 보행은 생기지 않았습니다. 이번 기록은 학습을 멈춘 이야기가 아니라, 학습 루프가 무엇을 바꾸도록 만들어져 있었는지를 다시 확인한 이야기입니다.
먼저 ‘걷는다’의 기준을 정하고, 작은 확인 실험을 골랐습니다
앞으로 조금 이동하고 넘어지지 않는다고 해서 곧바로 좋은 보행이라고 부르기는 어렵습니다. 제가 보고 싶었던 것은 한쪽 발이 몸을 지지하는 동안 반대쪽 발이 앞으로 나가는 교대였습니다. 여기서 지지 구간은 한 발이 잠시 몸무게를 받는 시간인데, 사람이 걸을 때 한쪽 다리에 체중이 실리는 순간을 떠올리면 됩니다. 그래서 이번에는 이동 거리만 보지 않고, 양쪽 발이 실제로 번갈아 지지 역할을 했는지를 함께 확인하기로 했습니다.
문제 앞에는 두 선택지가 있었습니다. 기존 정책을 크게 고친 뒤 긴 학습을 바로 시작할 수도 있었고, 기존의 움직임은 최대한 보존한 채 하체와 접촉 리듬에 관한 참조 정보를 더해 짧게 확인할 수도 있었습니다. 전자를 고르면 결과가 달라졌을 때 무엇이 원인이었는지 분리하기 어려웠기 때문에, 저는 후자를 택했습니다. 먼저 작은 확인 실험으로 학습 연결이 살아 있는지와 정책이 어느 방향으로 반응하는지를 보려 했습니다.
여기서 PPO는 로봇이 해 본 행동의 결과를 바탕으로 다음 행동 규칙을 조금씩 고치는 강화학습 알고리즘입니다. 중요한 점은 PPO가 목표를 이해해서 좋은 답을 찾아준다는 뜻은 아니라는 것입니다. 정책은 자신에게 주어진 관찰, 참조 정보, 보상과 평가 기준 안에서 점수가 나오는 방향을 찾습니다. 그래서 짧은 실험은 “학습이 돌아가는가”와 “학습이 원하는 행동을 향하는가”를 구분하기 위한 장치였습니다.
숫자는 좋아졌지만, 정책은 빈칸을 다른 관절로 메웠습니다
짧은 업데이트 뒤 일부 평가에서는 이동 거리가 늘었습니다. 더 멀리 갔다는 숫자만 보면 학습을 계속할 이유가 생긴 것처럼 보였습니다. 하지만 우측 발이 몸을 혼자 지지하는 구간은 평가 전반에서 나타나지 않았고, 움직임은 기존의 한쪽 의존 전진을 더 강하게 만든 쪽에 가까웠습니다. 그래서 이동 거리 상승을 보행의 개선으로 해석하지 않고, 이 후보를 여기서 멈췄습니다.
원인을 보려면 정책이 무엇을 보고 무엇을 바꿀 수 있었는지를 함께 봐야 했습니다. 이번 참조 정보는 다리 움직임, 허리, 발 접촉의 리듬을 알려 주었지만 팔의 움직임까지 목표로 정해 주지는 않았습니다. 반면 정책은 전신 관절을 바꿀 수 있었기 때문에, 목표가 충분히 지정되지 않은 부분에서 팔과 허리의 보상 움직임을 더 크게 쓰는 답을 찾았습니다. 학습이 멈춘 것이 아니라, 제가 원하지 않은 방식으로 문제를 풀고 있었던 셈입니다. 보상이 의도하지 않은 행동을 키우는 reward hacking과 같은 구조입니다.
이 장면은 강화학습에서 자주 생기는 착각을 보여 줍니다. 입력에 목표의 일부만 넣고 출력에는 많은 자유도를 남겨 두면, 정책은 사람이 기대한 경로가 아니라 점수를 올릴 수 있는 다른 경로를 고를 수 있습니다. 팔과 허리가 움직인 사실 자체가 오류라고 단정할 수는 없지만, 발의 교대라는 핵심 목표를 대신할 수는 없습니다. 그래서 다음 실험에서는 “어떤 정보를 보여 줄지”, “어떤 관절이 그 문제에 답해야 하는지”, “무엇을 성공으로 판정할지”를 한 묶음으로 다시 점검해야 합니다.
더 돌리지 않기로 한 이유, 그리고 다음에 고칠 것
학습을 더 오래 돌리는 선택지는 남아 있었습니다. 하지만 지금의 방향으로 업데이트를 반복하면, 교대 보행이 아니라 한쪽 의존 전진과 보상 움직임을 더 단단하게 만들 가능성이 컸습니다. 평가 결과는 학습이 끝난 뒤 붙이는 성적표가 아니라, 지금 쌓고 있는 행동을 계속 강화해도 되는지 결정하는 기준입니다. 그래서 이번에는 더 많은 반복보다 학습 루프의 연결을 다시 보는 편이 다음 비용을 줄이는 판단이라고 보았습니다.
다음 단계는 단순히 학습 횟수를 늘리는 일이 아닙니다. 정책이 원하는 지지 전환을 보려면 어떤 정보를 받아야 하는지, 그 정보에 반응할 때 어느 움직임까지 허용할지, 그리고 그 결과를 어떤 관찰로 확인할지를 먼저 맞춰야 합니다. 이 세 가지가 어긋난 상태에서는 업데이트가 정상적으로 일어나도 목표 행동이 생긴다는 보장이 없습니다. 다음 기록에서는 이 질문을 바탕으로 학습 루프의 입력·출력·평가를 어떻게 다시 맞추는지 정리해 보려 합니다.
오늘 배운 것: 학습 루프가 목표 행동을 가리키지 않으면, 업데이트는 진행되어도 그 행동은 생기지 않습니다.