[ndc2016] 신경망은컨텐츠자동생성의꿈을꾸는가

102
신경망은 컨텐츠 자동생성의 꿈을 꾸는가 딥러닝을 이용한 SRPG 맵 평가 사례 연구 넥슨 신규개발본부 Blast팀 김환희

Upload: hwanhee-kim

Post on 21-Apr-2017

3.095 views

Category:

Engineering


4 download

TRANSCRIPT

Page 1: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

신경망은 컨텐츠 자동생성의 꿈을 꾸는가딥러닝을 이용한 SRPG 맵 평가 사례 연구

넥슨 신규개발본부 Blast팀

김환희

Page 2: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

발표자 소개

5년차 게임기획자인공지능에 관심 많음NDC2014 <기획자가 유니티를 만났을 때 :

자체 툴 제작을 해보자>

Page 3: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

안내

이 발표는 개인 연구 프로젝트입니다.

Page 4: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

목차

1. PCG2. 신경망3. 딥러닝4. 연구 사례

Page 5: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

목차

1. PCG2. 신경망3. 딥러닝4. 연구 사례 61%

14%

14%

11%

Page 6: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

1. PCG

Procedural Content Generation절차적 컨텐츠 생성

Page 7: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

PCG

• 절차(알고리즘)으로 컨텐츠를 만드는 방법

http://www.gamasutra.com/blogs/AAdonaac/20150903/252889/Procedural_Dungeon_Generation_Algorithm.php

Page 8: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

PCG

• 손으로 하나하나 튜닝하는 것에 대비됨

http://boingboing.net/2015/06/16/super-mario-maker-design.htmlhttp://www.howtogeek.com/94977/infinite-mario-is-an-endless-super-mario-3-game-in-your-browser/

Page 9: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

http://www.gamasutra.com/blogs/TanyaShort/20140204/209176/Level_Design_in_Procedural_Generation.php

던전

Page 10: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

http://florentdeville.com/student-projects/procedural-generation-of-cities/

도시

Page 11: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

http://abundant-music.com/

음악

Page 12: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

http://www.speedtree.com/tree-modeling.php

식물

Page 13: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

https://ggtriple.wordpress.com/2014/10/05/top-5-best-orcs-in-middle-earth-shadow-of-mordor/

몬스터

Page 14: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

PCG

• 많은 양의 컨텐츠를 빠르게 생산할 수 있어서 인디 개발자들이 선호

• 가장 큰 이슈 중 하나 : Quality• 오류 방지

• 평가

Page 15: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

컨텐츠의 의도치 않은 오류

http://pgr21.com/pb/pb.php?id=humor&no=126193http://cdn.tutsplus.com/gamedev/uploads/2014/01/caveat-overlap.gif

Page 16: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

컨텐츠의 평가

https://www.reddit.com/r/proceduralgeneration/comments/2q3m5e/procedural_building_generator/

평가 기준 필요, 자동화

Page 17: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

2. 신경망

Neural Network

Page 18: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

신경망

• 전통적인 문제 해결법으로 풀 수 없는 문제들을 풀거나, 성능을 개선하기 위해 사용됨

• 최근 급격한 발전으로 다양한 분야에서 엄청난 성능을 보임 (ex. 알파고)

http://www.33rdsquare.com/2013/06/stanford-researchers-and-google-create.html

Page 19: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

https://www.dramafever.com/news/googles-alphago-to-challenge-korean-baduk-champion-lee-sedol-in-the-game-of-go/

AlphaGo

Page 20: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

http://www.inferse.com/14173/facebook-reportedly-working-advance-face-recognition-system-deepface/

DeepFace

Page 21: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

http://spectrum.ieee.org/computing/embedded-systems/bringing-big-neural-networks-to-selfdriving-cars-smartphones-and-drones

자동 주행 차량

Page 22: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

https://i.kinja-img.com/gawker-media/image/upload/dcqehohll3cy5ytjkdvq.jpghttp://www.extremetech.com/computing/174275-google-has-built-a-neural-network-to-identify-100-million-house-numbers-for-streetview

그 밖에도 수많은 실생활 예들

Page 23: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

신경망의 구조

• 뉴런 (Neuron)• 신경망의 기본 단위

• 생물체의 신경 세포인 뉴런을 모사

http://www.slideshare.net/jbhuang/lecture-29-convolutional-neural-networks-computer-vision-spring2015

Page 24: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

신경망의 구조

• 층 = 레이어 (Layer)• 뉴런을 여러 개 모아놓은 것

• 입력/출력 구조• 입력층과 출력층에 뉴런을 배치

• 입력층에서 받아온 정보를 가공해서 출력층에 전달, 출력

• 원하는 값이 나오도록 신경망을 학습시킴

Page 25: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

신경망의 구조

• 초등학교 때 배우던 상자 문제와 비슷40

45

□ + 5

입력층

출력층

Page 26: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

신경망의 구조

• 입력층과 출력층으로 구성한 AND 게이트

• A = 1, B = 1일 때만 1 x 0.5 + 1 x 0.5 = 1 > 0.5 로 1을 출력

A B

x0.5 x0.5

> 0.5 ? 1 : 0

Page 27: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

신경망의 역사

• 1980~ : 다층 신경망으로 XOR 문제 해결, 더 복잡한 문제들에 도전

• 은닉층 : 입력층과 출력층 사이에 있는 층

Page 28: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

신경망의 역사

• 1980~ : 다층 신경망으로 XOR 문제 해결, 더 복잡한 문제들에 도전

• ~2006 : 은닉층의 개수를 계속 늘렸지만 학습이 잘 되지 않았음

40

8

□ + 5

입력층

출력층

은닉층□ / 3

□ - 7

Page 29: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

http://blog.kodewerx.org/2015/09/its-lovely-day-for-postmortem.html

Page 30: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

3. 딥러닝

Deep Learning

Page 31: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

https://no2147483647.wordpress.com/2015/12/21/deep-learning-for-hackers-with-mxnet-2/

Art Style

Page 32: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

http://www.techrepublic.com/article/google-deepmind-ai-tries-it-hand-at-creating-hearthstone-magic-the-gathering-cards/

하스스톤 카드 제작

Page 33: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

딥네트워크

• Deep = 은닉층을 2개 이상 이용 or 총 레이어 개수 5개 이상

• 많은 수의 Hidden Layer 학습 가능

• Feature Learning

http://www.rsipvision.com/exploring-deep-learning/

Page 34: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

https://dnnip.wordpress.com/2013/09/04/convolution-neural-network-for-speech-recognition/

ImageNet 분류를 위한 Deep Convolutional Neural Network

딥네트워크

Page 35: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Feature

• 데이터(이미지)가 갖는 추상적인 특징형태, 색상, 연결성 등등

• Feature로 이미지를 분류할 수 있음

Page 36: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Feature

• 낮/밤 구별하기

https://www.hackerrank.com/challenges/digital-camera-day-or-night

Page 37: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Feature Extraction

• 전통적 기법

• Corner, Blob, Edge, Line 등

미리 정의된 특징을 추출

http://kr.mathworks.com/products/computer-vision/features.html

Page 38: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

http://www.slideshare.net/zukun/eccv2010-feature-learning-for-image-classification-part-0

Feature Extraction전통적 알고리즘

Page 39: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Feature Extraction

전통적 알고리즘의 문제점

1. 전문적 지식 필요

2. 수행에 시간이 오래 걸림

3. 다른 도메인에 일반화하기 힘듦

http://www.slideshare.net/zukun/eccv2010-feature-learning-for-image-classification-part-0

Page 40: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Feature Extraction

http://www.rsipvision.com/wp-content/uploads/2015/04/Slide6.png

• Modern Approach (딥러닝)

• 특징을 찾아낼 수 있도록 학습시킴

Page 41: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Feature Extraction

http://www.rsipvision.com/wp-content/uploads/2015/04/Slide6.png

딥러닝 = 범용적인 문제 해결법

• 어떤 도메인이건 딥 네트워크에 Input을 넣으면 feature learning 후

유의미한 Output이 나옴

딥네트워크Input Output

Page 42: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Feature Extraction

http://www.rsipvision.com/wp-content/uploads/2015/04/Slide6.png

딥러닝 = 범용적인 문제 해결법

• 어떤 도메인이건 딥 네트워크에 Input을 넣으면 feature learning 후

유의미한 Output이 나옴

딥네트워크Input Output

딥네트워크SRPG맵 승률

Page 43: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

4. 연구 사례

SRPG 맵 생성 / 평가

Page 44: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

SRPG

• 전략적인 면이 강조된 (턴제) RPG

• 영걸전, 디스가이아, 창세기전 등

• 맵 형태가 전략성의 핵심

http://www.urbandictionary.com/define.php?term=SRPG

Page 45: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

SRPG 맵 생성/평가

• SRPG 맵 생성 : PCG (Flash)

• SRPG 맵 평가 : 딥러닝 (Python)

Page 46: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

SRPG 맵 평가 - 전통적 알고리즘

• 움직일 수 있는 타일 판단 : DFS

• 병목(choke point) 판단

• 막다른 길(dead end) 판단

• 저격 위치(sniper location) 판단

Page 47: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

SRPG 맵 평가

• 전통적 알고리즘으로 하기 힘든 것승률 예측, 유닛 퍼포먼스 – K/D 예측 등

• 보통 수백~수천 번의 시뮬레이션을 돌려서 평균값을 내서 계산

• 시뮬레이션 없이도 평가가 가능할까?

Page 48: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

문제 공간

• 20 x 20 타일 맵 (2D)

• 지형은 Grass, Cliff, Water 의 3종

• 유닛은 타워, 보병, 궁병, 기병의 4종

• 1 : 1 PvP• 상대편 타워의 HP를 먼저 0으로 만들면 승리

• 반대의 경우 패배

• 승패 없이 30턴이 지나면 무승부

Page 49: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

지형

Grass (+Rock) Cliff Water

이동 가능 이동 불가 이동 불가

- 큰 덩어리 얇게 퍼질 수도 있음

Image Resource from : http://opengameart.org/content/2d-lost-garden-zelda-style-tiles-resized-to-32x32-with-additionshttp://opengameart.org/content/2d-lost-garden-tileset-transition-to-jetrels-wood-tileset

Page 50: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

유닛 제원 (Specifications)

보병 궁병 기병 타워

공격력 1 공격력 2 공격력 1 -

이동력 4 이동력 4 이동력 6 -

HP 6 HP 3 HP 4 HP 10

Image Resource from : http://units.wesnoth.org/1.10/mainline/en_US/mainline.htmlhttp://forums.rpgmakerweb.com/index.php?/topic/49063-sythian-bards-world-map-tiles/

Page 51: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

유닛 제원 (Specifications)

보병 궁병 기병 타워

-

-

Icon Resource from : http://yanfly.moe/2015/10/23/freebies-mv-ready-ace-icons/

Page 52: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

유닛 제원 (Specifications)

보병 궁병 기병 타워

-

-

Icon Resource from : http://yanfly.moe/2015/10/23/freebies-mv-ready-ace-icons/

Page 53: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

유닛 공격 범위

Page 54: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

병종 구성

• Blue : 보병 2, 궁병 2, 기병 1 (화력)

• Red : 보병 2, 궁병 1, 기병 2 (기동성)

• Blue 에 유리한 지형 /

Red 에 유리한 지형 찾기 위해 서로 다름

Page 55: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

경험적 유불리

• 공통• 타워에 인접한 빈 공간이 적으면 유리

3방향 8방향

Page 56: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

경험적 유불리

• Blue 유리• 경로 폭이 좁으면 유리

• 서로 대미지를 줄 확률이 높기 때문에 화력이 높으면 유리

• 경로가 짧으면 유리

Page 57: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

경험적 유불리

• Red 유리• 경로 폭이 넓으면 유리

• 경로가 길면 유리

• 경로가 2개 이상이면 유리

Page 58: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

맵 생성 (PCG) 도구

• Actionscript 3.0 (FlashDevelop) 사용

• JSON 으로 데이터 저장

Page 59: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

맵 생성 절차 (Procedures)

1. Poisson Disc Sampling 으로 노드 추출

2. Minimal Spanning Tree 으로 노드 간 간선 추출• 노드의 간선이 하나면 터미널 노드로 지정

3. 지형 배치• 터미널 노드에 장애물(Cliff, Water) 생성

• 가까운 장애물은 Cellular Automata 로 서로 합침

4. 다시 Poisson Disc Sampling 으로 메인 경로 추출

5. 메인 노드 정하고 유닛 배치

Page 60: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

http://devmag.org.za/2009/05/03/poisson-disk-sampling/

Poisson Disc Sampling

Page 61: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Poisson Disc Samplingnode 생성

Page 62: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Poisson Disc Samplingedge 생성

Page 63: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Minimum Spanning Tree

Page 64: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Minimum Spanning Treeterminal node

→ Cliff, Water

Page 65: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

지형 배치

Page 66: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

지형 배치

Page 67: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

지형 배치

Page 68: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Poisson Disc Sampling메인 경로 추출

메인 노드 결정

Page 69: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Poisson Disc Sampling메인 경로 추출

메인 노드 결정

Page 70: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

유닛 배치메인 노드에 타워,

주변에 유닛 배치

Page 71: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

데이터 양산5,000 Maps / 1 Day

Page 72: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

시뮬레이션

85% 95.6% 71.3% 39.6%

78.6% 80.3% 10.6% 20%

300 Games / 1 Map

1,500,000 Games / 1 Day

Blue 팀의 승률을 계산 (0~100%)

Page 73: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
Page 74: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Regression(회귀) 문제

• X가 주어졌을 때 y를 예측하는 문제

• 여기서 X = 2D 타일 맵, y = 승률

Page 75: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Regression(회귀) 문제

• X가 주어졌을 때 y를 예측하는 문제

• 여기서 X = 2D 타일 맵, y = 승률 학습

예측

??? %

71.3%

Page 76: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

신경망 구축 도구

• 언어 : Python 2.7• 라이브러리 : nolearn ← lasagne ← theano

• IDE : Anaconda2, jupyter Notebook

Tutorial - http://nbviewer.jupyter.org/github/dnouri/nolearn/blob/master/docs/notebooks/CNN_tutorial.ipynb

Page 77: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

신경망 구성

• 5 x 20 x 20 Input Layer

• 32 x 18 x 18 Convolutional 2D Layer 1

• 32 x 9 x 9 Max Pooling Layer 1

• 64 x 8 x 8 Convolutional 2D Layer 2

• 64 x 4 x 4 Max Pooling Layer 2

• 256 Dense Layer 1

• 256 Drop Out Layer 1

• 256 Dense Layer 2

• 256 Drop Out Layer 2

• 1 Output Layer

Reference - http://danielnouri.org/notes/2014/12/17/using-convolutional-neural-nets-to-detect-facial-keypoints-tutorial/http://blog.christianperone.com/2015/08/convolutional-neural-networks-and-feature-extraction-with-python/

Image

Conv/Pool

Conv/Pool

Dense

Drop out

Dense

Drop out

Regression

Page 78: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

신경망 구성

• Learning parameters = 338,177

Input5x20x20

Conv32x18x18

Pool 32x9x9

Conv 64x8x8

Pool64x4x4

Dense256, 256

Drop out256, 256

Output1

Page 79: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Input Layer

• 5 x 20 x 20 Input Layer

• 데이터를 discrete 하게 단순화

20 pixels

Page 80: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

지형 보병 궁병

기병 타워

Input Layer지형과 유닛을 각각의 채널로 분리 (5 channels)

Reference - http://cs231n.stanford.edu/reports/ConvChess.pdf

Page 81: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Input Layer

• 지형 Input Data (0~15번 Map)

• Grass = 0.0 (Black)

Cliff = 1.0 (White)

Water = 0.8

• Cliff 와 Water 는 이동을 막는다는 유사성이 있어서

채널을 분리할 때보다 합칠 때 결과값이 좋았음

Page 82: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Input Layer

• 궁병 Input Data (0~15번 Map)

• Blue team = +1.0 (White)

Red team = -1.0 (Black)

Empty = 0.0

Page 83: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Convolutional 2D Layer

• 32 x 18 x 18 Convolutional 2D Layer 1

• 64 x 8 x 8 Convolutional 2D Layer 2

• 포토샵 등에 있는 이미지 필터

• 경계선 검출 등에 쓰임

http://www.cas.miamioh.edu/~meicenrd/anatomy/ch14_independentinvestigation/imagej/ij-docs/ij-docs/docs/menus/process.html

Page 84: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Convolutional 2D Layer

http://ufldl.stanford.edu/tutorial/supervised/FeatureExtractionUsingConvolution/

• Convolution 연산의 예

1 0 1

0 1 0

1 0 1

필터

Page 85: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Convolutional 2D Layer

• Conv1 : 20 x 20 → 18 x 18 (with 3x3 window)

• Conv2 : 9 x 9 → 8 x 8 (with 2x2 window)

Input Conv1

Page 86: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Convolutional 2D Layer

• Conv1 : 20 x 20 → 18 x 18 (with 3x3 window)

• Conv2 : 9 x 9 → 8 x 8 (with 2x2 window)

Input Conv1

Page 87: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Convolutional 2D Layer

• Conv1 : 20 x 20 → 18 x 18 (with 3x3 window)

• Conv2 : 9 x 9 → 8 x 8 (with 2x2 window)

Input Conv1

Page 88: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Convolutional 2D Layer

http://ufldl.stanford.edu/tutorial/supervised/FeatureExtractionUsingConvolution/

• 여기서는 랜덤하게 생성한 필터를 사용하고,

각 필터와 이미지가 얼마나 유사한지 확인하는 용도

Page 89: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Convolutional 2D Layer첫번째 Layer의 필터 적용 결과

Page 90: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Max Pooling Layer

• 32 x 18 x 18 Convolutional 2D Layer 1

• 32 x 9 x 9 Max Pooling Layer 1

• 64 x 8 x 8 Convolutional 2D Layer 2

• 64 x 4 x 4 Max Pooling Layer 2

• Subsampling 기법

• 인접한 셀은 비슷한 정보를 갖기 때문에 압축으로

효율을 높임

http://ufldl.stanford.edu/tutorial/supervised/Pooling/

Page 91: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Max Pooling Layer

• Pool1 : 18 x 18 → 9 x 9 (with 2x2 window)

• Pool2 : 8 x 8 → 4 x 4 (with 2x2 window)

Conv1 Pool1

Page 92: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Max Pooling Layer

• Pool1 : 18 x 18 → 9 x 9 (with 2x2 window)

• Pool2 : 8 x 8 → 4 x 4 (with 2x2 window)

Conv1 Pool1

Page 93: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Dense Layer

• 256 Dense Layer 1

• 256 Dense Layer 2

• All-to-All Layer

Page 94: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Drop Out Layer

• 256 Dense Layer 1

• 256 Drop Out Layer 1

• 256 Dense Layer 2

• 256 Drop Out Layer 2

• Overfitting 을 방지하는 역할

• 일정 확률로 학습을 건너뜀

Page 95: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Drop Out Layer

• 256 Dense Layer 1

• 256 Drop Out Layer 1

• 256 Dense Layer 2

• 256 Drop Out Layer 2

• Overfitting 을 방지하는 역할

• 일정 확률로 학습을 건너뜀

https://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf

Page 96: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Output Layer

• 1 Output Layer

• X (2D 타일 맵)에 대한

y (승률)을 0.0~1.0 범위로 출력

학습

예측

??? %

71.3%

Page 97: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

결과

• N= 115,812; epoch = 200

80% train, 20% test

error

epoch

Page 98: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

결과

• N= 115,812; epoch = 200• MSE 0.0191173

• R2 0.75934472914

• Explained variance score 0.761066198349

test

predict

Page 99: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Future works

• 현재• 맵 → 승률 예측

딥네트워크 승률 예측

Page 100: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Future works

• 목표• 맵 → 다른 인자 예측

딥네트워크 대미지 예측

K/D 예측

퍼포먼스 예측

Page 101: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

Future works

• 목표• 승률 + 다른 인자

→ 맵 자동 생성딥네트워크

대미지

K/D

퍼포먼스

승률

Page 102: [NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가

감사합니다.