스네이크 게임을 플레이하도록 신경망 가르치기: 브라우저 내 PPO 학습 탐구
클래식 게임인 스네이크(Snake)는 오랫동안 단순한 AI 에이전트의 벤치마크 역할을 해왔습니다. 하지만 하드코딩된 휴리스틱에서 심층 강화 학습으로 넘어가는 과정은 종종 복잡한 설정과 과도한 컴퓨팅 요구 사항 뒤에 숨겨져 있습니다. tinyppo-snake는 신경망의 학습 과정을 공개하여 사용자가 실시간으로 학습 곡선을 시각화할 수 있도록 하는 브라우저 내 실험 프로젝트입니다.
WebGPU를 활용함으로써, 이 프로젝트는 정교한 강화 학습 알고리즘인 Proximal Policy Optimization (PPO)가 웹 브라우저 내에서 어떻게 직접 구현되고 실행될 수 있는지를 보여줍니다. 이는 학습 과정을 블랙박스 작업에서 대화형 시각적 경험으로 변화시킵니다.
tinyppo-snake의 메커니즘
tinyppo-snake의 핵심은 PPO 학습의 시연입니다. PPO는 단일 업데이트에서 정책이 너무 급격하게 변하는 것을 방지하여, 더 단순한 정책 경사(policy gradient) 방식에서 흔히 발생하는 "catastrophic forgetting"을 방지하기 때문에 가장 안정적이고 효율적인 강화 학습 알고리즘 중 하나로 널리 간주됩니다.
이 애플리케이션은 사용자에게 다음과 같은 종합적인 모니터링 도구를 제공합니다:
- 학습 지표(Training Metrics): 최근 500개 에피소드 동안의 평균 점수, 최고 점수, 그리고 롤아웃 속도에 대한 실시간 추적.
- 가중치 시각화(Weight Visualization): 학습 과정 동안 신경망의 가중치(예:
fc1_pi.weight및fc1_v.weight)가 진화하는 모습을 사용자가 검사할 수 있도록 하는 3D 렌더러. - 정책 롤아웃(Policy Roll-outs): 에이전트 학습과 학습된 정책을 실제로 작동하는 모습을 관찰하는 모드 사이를 전환할 수 있는 기능.
사용자 관찰 및 학습 역학
초기 사용자들의 커뮤니티 피드백은 강화 학습에서 흔히 발생하는 몇 가지 흥미로운 현상을 강조합니다. 한 사용자 @beardsciences는 성능 정체 현상을 언급했습니다:
내 평균 점수는 결국 약 3900점에 도달했고, 그 이후에는 3600-3900점 사이에서 정체되었습니다.
이러한 정체는 RL 에이전트의 전형적인 특징으로, 에이전트가 지역 최적점(local optimum)을 찾아내는 경우를 의미합니다. 즉, 생존하기에는 충분히 좋은 전략이지만 완벽한 해결책으로 수렴하지는 못하는 전략입니다.
더욱 흥미로운 것은 "catastrophic collapse"에 대한 보고입니다. 사용자 @ldoughty는 거의 4,000점에 도달한 후 에이전트의 성능이 0으로 급락한 것을 관찰했습니다:
4,000점에 가까워질 무렵, 스스로를 손상시킨 것처럼 보였고 더 이상 0점 이상의 점수를 얻지 못했습니다.
이러한 동작은 신경망 학습의 변동성을 보여줍니다. PPO의 안정성 메커니즘이 있음에도 불구하고, 일련의 "나쁜" 업데이트가 때때로 정책을 에이전트가 게임을 플레이하는 법을 사실상 "잊어버리는" 상태로 몰아넣을 수 있으며, 이는 AI 학습의 취약성에 대한 실질적인 교훈을 제공합니다.
기술적 제약 및 접근성
이 프로젝트는 WebGPU에 의존하기 때문에, 해당 API를 지원하는 현대적인 브라우저와 운영 체제에서만 제한적으로 작동합니다. NetBSD와 같은 덜 일반적인 플랫폼의 사용자는 WebGPU 가용성에 대한 문제를 보고했으며, 이는 현재 웹의 하드웨어 가속 기능의 파편화 상태를 보여줍니다.
또한, 일부 사용자는 뷰를 전환할 때 성능 저하가 발생한다고 언급했습니다. 예를 들어, @simedw는 학습 뷰에서 "watch" 뷰로 전환했다가 다시 돌아올 때 일시적인 학습 점수 하락이 발생한다고 관찰했습니다. 이는 시각화 렌더링의 오버헤드가 학습 루프의 효율성이나 업데이트 타이밍에 영향을 미칠 수 있음을 시사합니다.
결론
tinyppo-snake는 단순한 게임 그 이상입니다. 학습 에이전트의 가중치와 편향(weights and biases)을 들여다볼 수 있는 투명한 창입니다. 학습 과정을 클라이언트 측으로 옮김으로써, PPO의 역학, 지역 최적점의 문제, 그리고 신경망의 가끔씩 발생하는 붕괴 현상을 탐구할 수 있는 접근 가능한 방법을 제공합니다.