Software Hyena::

PCGRL: Procedural Content Generation via Reinforcement Learning (2020, AAAI) 본문

Journal Review

PCGRL: Procedural Content Generation via Reinforcement Learning (2020, AAAI)

bluehyena 2023. 6. 21. 20:01
반응형

요약

  • 강화학습이 레벨 디자인 에이전트를 훈련시키는데 사용될 수 있는 방법 조사
  • 훈련 예제가 거의 없거나 없는 경우에도 쉽게 사용 가능
  • 세 가지 다른 방법 조사 및 세 가지 게임 환경에 적용

정리

  • 어떻게 하면 레벨 생성 문제를 해결 가능한 강화학습 문제로 제시할 수 있을까? 에서 출발한 연구
  • 일반적인 DL 기반 접근 방식과 차이점은 각 단계마다 완전한 레벨로 나아간다는 점
  • 이들은 게임 레벨을 강화학습 문제로 취급하기 위해 아래와 같이 세 가지 다른 표현을 제시함
    • Narrow representation
    • Turtle representation
    • Wide representation
  • 이들은 PCGRL을 어떤 게임에서든 쓸 수 있도록 일반화하기 위해 세 가지 부분으로 프레임워크를 나눔
    • Problem module: 목표, 보상 함수 등과 같은 생성된 레벨에 대한 정보 저장
    • Representation module: 현재 레벨을 에이전트가 이해할 수 있는 적절한 관측 상태로 변환
    • Change Percentage: 하나의 에피소드 동안 에이전트가 콘텐츠에 영향을 주는 변경 횟수를 제한하여 너무 많이 변경하지 못하도록 함
  • 문제 모듈은 레벨의 크기, 레벨에 나타날 수 있는 오브젝트 유형 등의 정보 제공
    • 이 모듈은 두 가지 함수 제공
      1. 에이전트의 액션 후 생성된 콘텐츠 품질 변화 평가
      2. 목표 달성 혹은 생성 종료를 위함
  • 표현 모듈은 상태, 행동 공간과 전이 함수를 정의
    • Narrow: 현재 상태와 위치를 관찰, 그리고 그 위치에서 변경 수행, 액션 없음 또는 타인 별 경 액션이 행동.
      • 즉, 미리 정해진 타일 변경 위치 순서를 따라야 함
    • Turtle: 에이전트가 이동하면서 일부 타일 수정. 관측 공간은 현재 상태와 agent 위치, 행동 공간은 움직이는 방향 또는 타일 변경 작업
      • 현재 위치를 기준으로 지역적인 제어, 이전 위치를 기준으로 상대적으로 제어
    • Wide: 관측 공간은 현재 상태, 액션 공간을 영향을 받는 위치와 변경할 타일 액션으로 정의
      • 전체적인 제어를 가짐
    • 이외에도 하이브리드 표현 (특정 위치 주변 작은 영역 수정) 도 있음
  • 변경 비율은 에이전트가 맵의 전체 크기 대비 몇 개의 타일 변경이 가능한지를 나타내는 매개변수
    • 에피소드의 길이를 제안하고 모든 타일 변경을 막음
    • 변경 비율이 작으면 에이전트는 작은 수의 변경만 호용하므로 더 높은 단기 보상을 얻기 위해 탐욕스러운 액션을 학습할 것임
    • 변경 비율이 높은 경우에는 가능한 많은 맵을 변경하므로 문제에 대해 덜 탐욕적이고 최적의 해결책을 학습
    • 이때, 더 탐욕스러운 것이 왜 선호되느냐
      • 이들이 하고자 하는 것은 입력된 레벨을 바탕으로 새로운 레벨로 변화하는 것
      • 만약 최적 레벨이 주어지면 별 변화가 없을 것임
      • 그리고 최적 레벨 생성 에이전트는 어떤 레벨을 입력으로 써도 최적으로 수렴할 것임
      • 따라서 다양한 해결책을 제시할 수 있도록 제한된 작업 하에 에이전트가 작동하도록 설계
  • 이들은 위에서 언급한 세 가지 독특한 표현 방식(Narrow, Turtle, Wide)와 문제 상황(Binary, Zelda, Sokoban)을 사용하여 테스트 진행
    • 모든 문제에 대한 보상 함수는 목표 달성을 장려하는 방향으로
    • 목표 달성 시 종료
    • Binary
      • 목표는 비어 있는 공간 서로 연결되면서 최단 경로 길이가 X 타일 이상 증가하도록 수정하는 것 (실험에서는 20으로 설정, 즉 다이나믹하지 않음)
    • Zelda
      • 1명의 플레이어, 1개의 문, 1개의 열쇠로 구성
      • 플레이어는 적을 피해 열쇠와 문에 각각 X 걸음 이내에 도달할 수 있어야 함
      • 적은 플레이어와 너무 가까운 거리 생성 불가 (실험에서는 3걸음)
    • Sokoban
      • 플레이어가 상자를 밀어 목표로 향하는 게임
      • 적어도 해결하는데 x단계 이내에 해결 가능하도록 설정 (실험은 18단계)
      • 해결 가능 여부는 BPS와 A*로
    • 내부 테스트를 통해 변경 비율은 20%로 결정
      • 이들은 시작 상태를 덮어쓰기 보다는 시작 상태에 맞게 뭔가를 하길 바랐기 때문
      • 시작 상태는 무작위 분포에서 무작위로 샘플링
    • 이들은 Turtle과 Narrow 표현에서는 시작 위치를 무작위로 설정함 (생성 시작 위치)
      • Narrow에서는 각 step 마다 무작위로 위치 선택, 그리고 모든 위치에 다 할 수 있도록 함
      • 모든 위치가 동일한 빈도로 방문하도록
    • 네트워크는 꽤나 큰 형태를 가지고 있음
      • 우선 이들은 PPO 를 사용함
      • 에이전트 네트워크는 두 가지 다른 구조로 있음
      • Narrow와 Turtle의 경우 Google의 ALE DeepQ 아키텍쳐와 유사한 fully connected layer가 추가된 3개의 convolution layer와 fully connected layer 그리고 각 액션과 값을 위한 추가적인 fully connected layer로 구성
      • Wide의 경우 8개의 convolution layer로 구성, binary와 zelda에 대해서는 추가적인 3개의 convolution layer 그리고 sokoban에 대해서는 2개의 추가적인 convolution layer
      • Narrow와 Turtle은 fully connected layer 때문에 매개변수 수가 큼
    • 이들은 20% 변경 비율로 학습된 각 모델에 대해 결과 비교
      • 입력을 0~100 퍼센트로 제공하고 각 변경 비율에 따른 성공 여부 판단
      • 대략 40 %의 타일 변화에서 적당한 성공률 제공
      • Narrow는 Zelda에서 낮은 성공률을 보임
        • 다음 타일을 무작위로 선택하는 특성과 모든 타일을 방문한다는 점이 학습 시간을 오래 걸리게 함
        • 이들의 말에 의하면 학습을 더 할 수 있었다고 함
        • 단지, 동일 학습 대비 결과 비교를 위한 것
      • Sokoban에서는 대부분이 낮은 결과를 보였지만 특히 Wide가 낮음
        • 이들은 단순히 학습 양의 부족과 Sokoban 문제 해결에 특화된 보상을 설정한다면 문제 해결 가능할 것이라 함
        • 현재의 보상 설정은 단순한 레벨에 대해서만 빠르게 학습
        • 유독 Wide가 낮은 것에 대한 분석은 파라미터의 부족으로 여김
          • 스타리이드 컨볼루션 레이어에 의한 것이며 따라서 비스트라이드 컨볼루션 레이어를 늘리거나 채널 수를 늘려 파라미터 수를 증가시킬 필요가 있다고 함
          • 이건 실험이 안된거라 모름
  • 이 연구가 기존 PCG와 차이점
    • 콘텐츠 공간이 아닌 콘텐츠 생성기 공간에서 탐색함
      • 이는 PPLGG라는 것에서 이미 진행되었으나 진화 기반임
    • 콘텐츠 생성을 반복적인 개선 문제로 간주
반응형
Comments