🤖 Computer Science

세션 6. 강화학습 AI로 상용 공포게임 출시하기: KAGIDOKO

date
Nov 25, 2023
slug
mobile_rl
author
status
Public
tags
Game
Reinforcement Learning
summary
2023년 RLkorea가 주최한 모두연에서의 세미나 꺾이지 않는 RL의 6번째 세션 개인 공부용 정리 입니다.
type
Post
thumbnail
thumbnail.jpeg
category
🤖 Computer Science
updatedAt
Dec 22, 2024 06:04 AM
 
김승건
현업에서 RL을 적용할 때에 있어서 시행착오를 공유
 
출처!
[MODUPUSH] 2023 RLKorea 세미나 (feat. 모두의연구소)
RLKorea에서 오랜만에 오프라인 세미나를 진행합니다! 😆😆 행사 진행 관련 정보는 다음과 같습니다! • 일시: 2023.11.25 (토) 10:30 ~ 15:00 (12:00 ~ 13:00 점심시간, 점심 미제공) • 장소: 모두의연구소 강남 캠퍼스 (서울특별시 강남구 강남대로 324) 오프라인 장소 수용 가능 인원에 제한이 있는 관계로 오프라인 신청은 총 60분의 참석자분들을 선착순으로 받을 예정입니다. (정원 마감 이후 링크는 삭제됩니다!) (정원 초과로 인해 오프라인 참여 링크는 삭제하였습니다! 많은 참여 진심으로 감사드립니다!) • 프로그램 세부 - 2023 트렌드 강화학습 (이태학, 스마일게이트 메가포트) - Causal RL과 RL-Tune 라이브러리 활용 (박준호, CCNets, Inc. CEO) - Multi-Environment Reinforcement Learning (김국진, 고려대학교 RAIN Lab) - Pretraining for Reinforcement Learning: Data and Simulation perspectives (이호준/이병근, 카이스트 AI 대학원 박사과정) - No More Atari!! 모바일 게임에 강화학습 적용하기 (박주형, 스마일게이트 메가포트) - 강화학습 AI로 상용 공포게임 출시하기: KAGIDOKO (김승건, 피슬 웍스 Game Design & Tech Lead) 2023 RLKorea 세미나 “중요한 것은 꺾이지 않는 RL”에 많은 관심과 사랑과 참석 부탁드립니다! 감사합니다! 🙌
[MODUPUSH] 2023 RLKorea 세미나 (feat. 모두의연구소)
 

기존 장르들의 게임 구조를 그대로 유지하면서 RL Agent를 덮으면 되는거 아닌가?

에 대한 3가지 주제에 대한 발표
 
 

이 방식의 상업화가 어째서 어려운가?

RL 방식이라는 것은 결국 추상화되지 않은 입력을 추상화되지 않은 출력으로 대응
거의 대부분의 게임이 중첩 If문으로 해결가능하다.
 
그리고 기존에 기획했던 일들을 AI가 제대로 수행한다는 보장이 없다.
그래서 기획자가 대비하지 못한 현상이 발생할 수가 있음
 
AI가 하드웨어적 우위를 활용하게 된다면 → 치터 AI
Policy Optimal한 정도가 기존 Script AI와 크게 다르지 않는다면 → 체감 x
게임과 유저 사이의 인터페이스가 RL Agent만의 특성을 부각시키지 않으면 → 고인물과 구분 불가
 
 
게임과 유저 사이의 인터페이스가 RL Agent만의 특성을 부각시키는 미검증 게임 기획이 유일한 방법

이 대신에 무엇을 할 수 있는가?

 
게이머를 RL Agent로 바꾼다면
테크 데모나 / QA 수단으로서의 기능은 할 수 있지만 // 게임 기획적 가치는 없다
 
기존 게임 AI를 RL Agent로 바꾼다면?
여러 케이스가 있으나, 이것만으로 상업케이스가 충분하지는 않다.
 
게임과 유저 사이의 인터페이스가 RL Agent만의 특성을 부각시키는 미검증 게임을 기획한다면?
높은 개발 난이도 & 높은 실패 리스크 & 인력 부담 & 성공한 케이스가 없으니 투자할 이유가 없다.
 
 
 
 
보상함수 Optimization
수치화 가능한 결과값에만 관심이 있는 경우엔 RL Agent를 설계하는데 큰 문제가 없다.
 
하지만 기획자는 Agent가 어떻게 행동하는지가 중요하기 떄문에, Reward에는 큰 관심이 없다
 
[NDC22-프로그래밍] 리니지: 거울 전쟁
현실 적인 해법과 그 대가
  • 기획자의 의도를 반영한 보상 함수 설계, 일부 상황에서 액션 Override
 
  • “기획자 테스트 및 피드백” → “보상함수 반영” → “재학습” 사이클이 매우 오래걸린다
  • <기획자가 다양한 설정을 실험해 보기 어려움>
 
 
  • 일반적인 Deep RL 기술은 특정 보상이 강화되는 방향으로 학습되기 쉽다.
    • 보상 가중치 변경으로 미세하게 행동을 변경하기가 어렵다
    • 특정 보상 가중치를 증가시키는 만큼 선형적으로 행동이 변하는게 아님
 
 

그걸 어떻게 풀어냈는가?

 
기획자가 직접
의도에 맞춘
Observation / Action Space / Config (모델 구조 ) 설정, 훈련 환경 디자인 / 인게임 레벨 디자인
모두 정하고
보상함수의 세부적인 형태와 가중치 모두를 훈련 내내 계속해서 조정하면 잘 풀리지 않을까?
 
 
  • 기획하는 Agent가 원하는 행동을 하는 경우에 보상이 증가하도록 하도록 보상함수를 미세조정해야한다.
  • 생산성 측면에서는 익숙한 하나의 Config 파일을 복사하여 사용하는게 좋다
    • LSTM, Curiousity 등의 각종 모듈 포함 여부, 레이어 및 노드의 숫자, 이외 각종 파라미터에 따라
      훈련 특성이 매우 크게 달라질 수 있음
 
  • Transfer Learning을 적극 활용하자. 충분히 쓸만하게 움직인다 싶으면 그 즉시 훈련을 멈추고 .pt 파일을 챙겨두어야함 Policy가 수렴하기까지의 시간을 기다리는 오버헤드를 크게 줄일 수 있음
  • 실제 인게임 훈련과정을 계속해서 지켜보는게 중요하다. 보상함수의 미세한 변화에 대한 행동양식의 변화를 인간이 직접 학습하는 것에 있음
  • 대부분의 버그는 Observation에 그 원인이 있다 ex) 상대좌표 변환을 안했다던가, Normalize를 안했다던가
  • 보상함수의 형태는 세부 행동양식에 매우 큰 영향을 끼친다.
    • 변수 사이의 곱, 내적, 가감 등의 연산자 하나하나를 적절하게 활용하면 에이전트의 세부적인 행동양식을 정밀하게 유도하는게 가능함
  • 보상의 절대값보다는 부호가 중요하다.
    • 원하는 행동을 하지 않을때 음수, 할때 양수
 
  • 보상함수의 형태가 가능한 선택지의 정의
  • 가중치는 정의된 선택지 사이의 저울질을 담당