29
강화 학습 기반 NPC AI [B&S 무한의 탑 AI 활용 사례] Inven Game Conference NCSOFT AI Center / Game AI이경종

[IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

  • Upload
    -

  • View
    938

  • Download
    3

Embed Size (px)

Citation preview

Page 1: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

강화 학습 기반 NPC AI

[B&S 무한의 탑 AI 활용 사례]

Inven Game Conference

NCSOFTAI Center / Game AI팀

이경종

Page 2: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

INDEX1

ChapterOverview

2

Chapter강화 학습 기반 AI

3

Chapter강화 학습 시스템

4

Chapter향후 R&D 방향

Page 3: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

Chapter [1]

Overview

Inven Game Conference

Page 4: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

1Overview

NCSOFT Game AI팀 소개

• Team Mission: Game AI에 필요한 기술을 R&D하고 실용화

NCSOFT GAME AI팀

Game에 필요한 AI 기술 개발

NPC AI / Strategic, Tactical AI …

Game에 필요한 기능을

AI 기술을 활용해서 개발

Matching / Game Interface …

AI 중심의 새로운 Game Play

연구 및 테스트

• Game AI

• Machine Learning / Pattern Recognition

• Planning / Tree Search

• Optimization / Problem Solving

TECHNOLOGIES

• Game AI 알고리즘 개발

• Game AI Prototype 개발 및 Library 제작

• AI R&D Framework 개발

Machine Learning 환경, 실험 게임 환경 등

TASK

4

Page 5: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

1Overview

What is the Game AI?

[ 최근 동향 ]

• Decision Making: Machine Learning / MCTS based AI

• Procedural Content Generation / Interactive Storytelling

• General Game Playing / Reinforcement Learning

• AI Competition

① Intelligent NPC: Techniques to produce the illusion of intelligence in the behavior of NPCs

② Intelligent Opponents: Behavior and decision-making process for game-playing opponents **

③ Good Gameplay: Centered on appearance of intelligence and good gameplay within environment restrictions *

GAME AI

[ 전통적인 Game AI ]

• Movement, Path-finding

• Decision making: FSM, Behavior Tree, HTN

• Tactical & Strategic AI

• Board Game / Adversarial Search

GAME AI 기술 분야

Trend 변화

AI Breakthrough

5

Page 6: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

1Overview

Why R&D in Game AI?

• Games can be enriched by more intelligent agents1

: can generate more entertaining game-plays or create exciting new genres of game

Game-perspective

• Game is an ideal domain for the study and application of AI algorithms 1

: provides competitive dynamic environments simulating real-world

AI-perspective

Visual Doom AI Competition @ CIG 2016

Doom 게임에서 상대방을 찾아서 공격하는 FPS AI 개발

입력으로 Raw Visual 데이터만을 사용

6

Page 7: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

1Overview

오늘 이야기: 무한의 탑 AI

• 동양 세계관 무협 액션 MMORPG (2012년 6월 상용화 서비스 시작)

• 다수 PvE 콘텐츠, PvP 콘텐츠 서비스 중

Blade & Soul

• 한계점

진입 장벽 /

다른 사람과 대결에

대한 거부감

• 한계점

Boss Monster의

고정된 전투 패턴

공략 해법이 존재

일대일 PvP 콘텐츠: ‘비무’ 개인 PvE 콘텐츠: ‘무신의 탑’

• AI와 일대일 비무를 하는 콘텐츠

• ‘비무’와 ‘무신의 탑’의 한계점을 AI를 활용하여 보완

• 난이도 별로 배치된 AI에서 승리하면 위층으로 올라감

• 무한의 탑 AI: 고정된 전투 패턴이 아닌 상황에 따라 기술을 선택

무한의 탑 2016년 1월 출시•

7

Page 8: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

1Overview

B&S 무한의 탑 AI

필요한 AI는 무엇인가?

HumanAI

1:1 PvP

[ Input ]

• 현재 상황 (State)

• 직업별 사용 가능한 스킬

(Action, 최대 50개)

• 총 9개 직업

[ Output ]

• 매 순간마다 현재 상황에

가장 적절한 스킬 선택

• 상용 게임의 복잡한 게임 규칙

- 50여 개의 상이한 Action

• 실시간 전투

- 1초 내 2~3개 스킬 사용

- Action 중간에 상대가 대응

엄청나게 다양한 상황에 AI가 모두 대응해야함

Challenging Point

전통적으로 NPC AI를 제작하던

FSM, Behavior Tree 등

규칙 기반 기법으로 구현 불가능

8

Page 9: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

Chapter [2]

강화 학습 기반 AI

Inven Game Conference

Page 10: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

2강화 학습 기반 AI

강화 학습이란? [1/2]

Learning Without a Teacher

10

Page 11: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

2강화 학습 기반 AI

강화 학습이란? [2/2]

• Task: 로봇 팔의 움직임을 제어하여 팬케익 뒤집기

팬케익 뒤집기 로봇 Example

Trial 성공, 실패 Feedback 관절에 입력되는 힘을 조정 다시 Trial ….

11

Page 12: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

2강화 학습 기반 AI

무한의 탑 AI 강화 학습

• Task: B&S 1:1 대결에서 승리

팬케익 뒤집기 로봇과의 비교

내부적으로는 어떤 과정으로 학습이 되고 있는 것일까?

12

Page 13: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

2강화 학습 기반 AI

강화 학습 과정 Example

State Action 기대 Reward

State 1HP=30,Dist.=20

돌진 9

막기 5

State 2HP=20,Dist.=20

돌진 4

막기 6

AI

State 1 Action 1: 돌진 State 2

State Action 기대 Reward

State 1HP=30,Dist.=20

돌진 9

막기 5

State 2HP=20,Dist.=20

돌진 4

막기 6

AI

Action 2: 막기

PolicyPolicy

① AI vs. AI 대결 시뮬레이션

② 학습 로그 수집

③ AI 학습 및 성능 개선

State에서 기대 Reward가가장 높은 Action 선택

13

Page 14: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

2강화 학습 기반 AI

강화 학습 과정 Example

State Action 기대 Reward

State 1HP=30,Dist.=20

돌진 9

막기 5

State 2HP=20,Dist.=20

돌진 4

막기 6

AI

Action 1: 돌진State 1 State 2

State Action 기대 Reward

State 1HP=30,Dist.=20

돌진 9

막기 5

State 2HP=20,Dist.=20

돌진 4

막기 6

AI

Action 2: 막기

PolicyPolicy

① AI vs. AI 대결 시뮬레이션

② 학습 로그 수집

③ AI 학습 및 성능 개선

학습 로그(Replay Memory)( State 1, 돌진 )( State 2, 막기 )

….….

( Final State, 승리)

State에서 기대 Reward가가장 높은 Action 선택

14

Page 15: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

2강화 학습 기반 AI

강화 학습 과정 Example

State Action 기대 Reward

State 1HP=30,Dist.=20

돌진 9

막기 5

State 2HP=20,Dist.=20

돌진 4

막기 6

AI

Action 1: 돌진State 1 State 2

State Action 기대 Reward

State 1HP=30,Dist.=20

돌진 9

막기 5

State 2HP=20,Dist.=20

돌진 4

막기 6

AI

Action 2: 막기

PolicyPolicy

Feedback • Reward = Positive (적 HP 감소) : +5

Negative(내 HP 감소) : -5

(State 1, 돌진) Negative Reward -5

(State 2, 막기) Positive Reward +5

State Action 기대 Reward

State 1HP=30,Dist.=20

돌진 4

막기 5

State 2HP=20,Dist.=20

돌진 4

막기 11

AI Update !!

① AI vs. AI 대결 시뮬레이션

② 학습 로그 수집

③ AI 학습 및 성능 개선

State, Reward Design에 많은 Know-how 필요!!

State에서 기대 Reward가가장 높은 Action 선택

15

Page 16: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

2강화 학습 기반 AI

Neural Fitted Q Learning

실제 문제를 풀 때 Example처럼 간단하게 풀릴 것인가?

• 무엇이 문제일까? State의 수가 너무 많아서 Table의 형태로 만들 수 없음

• 해결방법: Table을 Regression 함수로 대체

Approximated Q Learning

State Action 기대 Reward

State 1HP=30,Dist.=20

돌진 9

막기 5

State 2HP=20,Dist.=20

돌진 4

막기 6

Function f(state, action) = reward

f(state1, 돌진) = 9f(state2, 막기) = 5…

• Approximation 함수를 어떻게 만들 수 있을까?

• 해결방법: Neural Network으로 Regression 학습

Neural Fitted Q Learning

16

Page 17: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

2강화 학습 기반 AI

학습 영상

학습 실험 단계 영상: Reward 변경에 따른 학습 과정

17

Page 18: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

2강화 학습 기반 AI

Evaluation

HUMAN PLAY TEST

• 이슈: AI vs. AI 승률 ≠ AI vs. 사람 승률

• 주기적으로 Platinum 급 유저(ELO 1900점, 상위 2%)와 HUMAN PLAY TEST 실시

HUMAN PLAY TEST 영상 #1: 초창기 영상

HUMAN PLAY TEST 영상 #1: 초창기 영상

18

Page 19: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

2강화 학습 기반 AI

Evaluation

HUMAN PLAY TEST 영상 #2: 후반기 영상

19

Page 20: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

Chapter [3]

강화 학습 시스템

Inven Game Conference

Page 21: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

3강화 학습 시스템

강화 학습 시스템 구조

강화 학습을 하려면 무엇을 만들어야 할까?

• Gorila: Google Reinforcement Learning Architecture

Environment

(Simulator)

Actor

(Q Network / AI Agent)Learner

핵심 Component

20

Page 22: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

3강화 학습 시스템

B&S 무한의 탑 AI 구조

Environment

(Simulator)B&S Game Server

Actor

(AI Agent)LearnerAI Server

TrainerAI Agent

TraineeAI Agent

Learning Server

Client

Q Network Q Network

Learning Process Coordinator

Game State

Game State

Action(Skill)

Action(Skill)

Action Log

Network Weight

21

Page 23: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

Trainee AI Agent 1 Trainer AI Agent 1

3강화 학습 시스템

대규모 시뮬레이션을 위한 구조

AI ServerGame Server

Trainee AI Agent 2 Trainer AI Agent 2

Trainee AI Agent 3 Trainer AI Agent 3

Trainee AI Agent 4 Trainer AI Agent 4

Learning Server

학습용 전투 로그 AI Agent Update

Learning Process Coordinator

Instance Zone 생성 AI Agent 생성

22

Page 24: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

3강화 학습 시스템

Performance Tuning

Information Extractor

Skill Filter

Skill Decision Maker

Tactical Decision Maker

AI Agent

Logger

Information Extractor

Human Player Agent

• Skill Availability: Cool Time, MP, Skill Tree

• Skill 사정거리: Targeting 범위, 효과 영역

Bottleneck !!

• 프로 파일링 및 코드 리뷰

• Array, Map 속도/Data Copy 횟수 감소

• Domain Knowledge 적용해서 불필요한 정보 Update 줄임

• 난이도 Factor 연동하여 Decision Making 횟수 감소

저 Level AI Decision Tick을 2배로 증가 난이도 재설정

코드 최적화 구조 최적화

• 1 msec 미만 / 1 decision ( 초기 버전: 10 msec 이상 )

Performance Requirement

23

Page 25: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

3강화 학습 시스템

난이도 조절

난이도 조절의 필요성

• 무한의 탑은 100층으로 구성되어 있고, 층수가 올라갈수록 강력한 AI가 등장

• 단계별로 AI 난이도를 조절할 수 있는 Factor 개발

난이도 FACTOR 개발

• 분리된 공격/방어 난이도 Factor: 하위 Level에서는 방어 Factor를 매우 낮춤

• 기능 단위 난이도 Factor: 중요 스킬 Block / 일부러 당해주기(쉽게 반격할 수 있는 스킬 사용)

• 반응 속도 Factor: 방어 스킬 사용 시, 행동 불가 이후, 스킬 사용 후 등 여러 상황에 각기 다른 반응속도 설정

난이도 설정 과정

• 각 직업별 AI 난이도 설정

• AI 학습 완료 이후 실험적으로 결정

• 난이도 Factor 조절을 통해 승률 35% (ELO Rating 100점) 차이가 나도록 조정

• 이 과정을 반복해서 하위 Level AI 생성

24

Page 26: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

Chapter [4]

향후 R&D 방향

Inven Game Conference

Page 27: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

4향후 R&D 방향

무한의 탑 AI의 미래

• MMORPG에 강화 학습 기반 NPC AI 상용화 성공. 그러나, 여전히 많은 숙제가 남아있음

B&S 무한의 탑 AI

AI 전투 성능 향상 목표: 최고레벨 플레이어 수준 Human like AI 기계적인 반응의 완화

사용자 로그 활용 다른 장르의 게임 적용

27

Page 28: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

4향후 R&D 방향

NCSOFT Game AI

Good AI: playing to win Fun AI: playing to lose

• Intelligent AI Agent

• Supervised Learning

• Reinforcement Learning

Machine Learning based Decision Making

I’ll kill you…I’ll entertain you…

28

Page 29: [IGC] 엔씨소프트 이경종 - 강화 학습을 이용한 NPC AI 구현

감사합니다

[AI Center / Game AI팀 팀장]

이 경 종