KR20220164323A - Method and device for providing service that deep learning-based imperfect information game - Google Patents
Method and device for providing service that deep learning-based imperfect information game Download PDFInfo
- Publication number
- KR20220164323A KR20220164323A KR1020210072949A KR20210072949A KR20220164323A KR 20220164323 A KR20220164323 A KR 20220164323A KR 1020210072949 A KR1020210072949 A KR 1020210072949A KR 20210072949 A KR20210072949 A KR 20210072949A KR 20220164323 A KR20220164323 A KR 20220164323A
- Authority
- KR
- South Korea
- Prior art keywords
- state
- information
- training
- hand
- game
- Prior art date
Links
- 238000013135 deep learning Methods 0.000 title claims abstract description 84
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000009471 action Effects 0.000 claims abstract description 201
- 238000012549 training Methods 0.000 claims abstract description 103
- 238000013136 deep learning model Methods 0.000 claims abstract description 23
- 230000004913 activation Effects 0.000 claims description 35
- 230000015654 memory Effects 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 10
- 239000008280 blood Substances 0.000 claims description 6
- 210000004369 blood Anatomy 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 description 28
- 230000033001 locomotion Effects 0.000 description 27
- 238000013528 artificial neural network Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 15
- 238000004088 simulation Methods 0.000 description 15
- 238000000605 extraction Methods 0.000 description 12
- 238000002360 preparation method Methods 0.000 description 10
- 238000013473 artificial intelligence Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000035622 drinking Effects 0.000 description 5
- 241001339245 Callirhoe digitata Species 0.000 description 4
- 235000002259 Callirhoe involucrata Nutrition 0.000 description 4
- 230000002860 competitive effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000001939 inductive effect Effects 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/67—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/33—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
- A63F13/335—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/45—Controlling the progress of the video game
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/32—Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Economics (AREA)
- Biophysics (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Marketing (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
본 발명은 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치에 관한 것이다. 보다 상세하게는, 불완전 정보 게임에서 현재 플레이 상태에 따른 최선의 액션(action)을 수행하는 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치에 관한 것이다.The present invention relates to a deep learning-based imperfect information game service providing method and apparatus therefor. More specifically, it relates to a deep learning-based incomplete information game service providing method and apparatus for performing the best action according to the current play state in an incomplete information game.
최근 들어, 통신 및 네트워크 기술의 발달에 따라서 유/무선 인터넷의 보급이 급격하게 증가됨에 따라 인터넷이라는 동질의 매체를 통하여 여러 종류의 서비스가 이루어지고 있다. BACKGROUND ART [0002] In recent years, as the spread of wired/wireless Internet has rapidly increased with the development of communication and network technology, various types of services have been provided through a homogeneous medium called the Internet.
특히, 게임 서비스는 인터넷을 통해 제공되는 서비스 중에서도 많은 사용자들이 이용하는 서비스로 다양한 게임들이 서비스되고 있다. In particular, the game service is a service used by many users among services provided through the Internet, and various games are provided.
그 중에서도 승리의 대가로 게임 포인트를 주고받는 대전(對戰) 형식의 게임들이 많이 서비스되고 있으며, '고스톱(GOSTOP)', '장기' 또는 '포커' 등의 게임은 많은 사용자들을 확보하고 있는 대중적인 게임들이다. Among them, many battle-type games in which game points are exchanged in exchange for victory are being serviced, and games such as 'GOSTOP', 'janggi' or 'poker' are popular with many users. they are games
한편, 이러한 추세와 더불어 최근에는 사람이 아닌 프로그램된 인공지능 컴퓨터와 위와 같은 게임을 통해 대전을 수행할 수 있게 되었다.On the other hand, in addition to this trend, it has recently been possible to play a game with a programmed artificial intelligence computer rather than a human being through the above game.
자세히, 인공지능 컴퓨터가 사람 수준으로 대전을 수행할 수 있도록 인공지능 컴퓨터의 기력을 높이기 위한 연구가 활발하게 진행되고 있는 추세이다. In detail, there is a trend in which research is being actively conducted to enhance the power of artificial intelligence computers so that they can play matches at the human level.
최근 개발자들은 인공지능 컴퓨터에 몬테 카를로 트리 서치(Monte Carlo Tree Search; MCTS) 알고리즘과 딥러닝 기술을 적용하여 인공지능 컴퓨터의 기력을 상당 수준 이상으로 올렸다.Recently, developers have applied the Monte Carlo Tree Search (MCTS) algorithm and deep learning technology to artificial intelligence computers, raising the power of artificial intelligence computers to a considerable level.
그러나 종래의 인공지능 컴퓨터는, 게임의 진행과 관련된 모든 정보가 모든 게임 플레이어들에게 온전하게 공개되는 완전 정보 게임(예컨대, 바둑 및 장기 등)에 특화되어 있는 실정이어서, 게임 진행에 필요한 일부 정보(예컨대, 상대 플레이어의 카드나 패 또는 뒤집어진 덱(deck)에 포함된 카드나 패 등)가 비공개되는 불완전 정보 게임(예컨대, 고스톱 등)에서의 높은 성능을 구현할 수 있는 인공지능 컴퓨터에 대한 기술 개발이 미비한 실정이다. However, conventional artificial intelligence computers are specialized in complete information games (e.g., Go and chess) in which all information related to the progress of the game is fully disclosed to all game players, so some information necessary for game progress ( Development of technology for artificial intelligence computers capable of realizing high performance in imperfect information games (eg, GoStop, etc.) This is an obscure situation.
본 발명은, 게임 진행에 필요한 일부 정보가 비공개되는 불완전 정보 게임에서, 현재 플레이 상태에 따른 최선의 액션(action)을 수행하는 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치를 제공하는데 그 목적이 있다. An object of the present invention is to provide a deep learning-based incomplete information game service providing method and apparatus for performing the best action according to the current play state in an incomplete information game in which some information necessary for game progress is not disclosed. there is.
자세히, 본 발명은 불완전 정보 게임에서 현재 플레이 상태에서 수행 가능한 최선의 액션을 판단하는 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치를 제공하고자 한다. In detail, the present invention is to provide a deep learning-based incomplete information game service providing method and apparatus for determining the best action that can be performed in a current play state in an incomplete information game.
또한, 본 발명은 불완전 정보 게임에서 현재 플레이 상태에 기반한 롤 아웃(Roll-out)을 수행하여 승률 및 점수를 추정하는 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치를 제공하고자 한다. In addition, the present invention is to provide a deep learning-based incomplete information game service providing method and apparatus for estimating a win rate and a score by performing a roll-out based on a current play state in an incomplete information game.
또한, 본 발명은 불완전 정보 게임에서의 족보 성취여부를 예측하는 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치를 제공하고자 한다. In addition, the present invention is to provide a deep learning-based incomplete information game service providing method and apparatus for predicting whether a genealogy is achieved in an incomplete information game.
또한, 본 발명은 불완전 정보 게임에서 상대 플레이어의 액션을 딥러닝에 기초하여 추정하는 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치를 제공하고자 한다. In addition, the present invention is to provide a deep learning-based incomplete information game service providing method and apparatus for estimating an opponent's action in an incomplete information game based on deep learning.
또한, 본 발명은 기존의 UCT(Upper Confidence Bound 1 applied to Trees) 알고리즘에 점수 관련 파라미터 항을 추가하여 게임의 승패 뿐만 아니라 점수까지 고려해야 하는 불완전 정보 게임에 최적화된 형식의 알고리즘을 사용하는 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치를 제공하고자 한다. In addition, the present invention adds a score-related parameter term to the existing UCT (Upper Confidence Bound 1 applied to Trees) algorithm to develop a deep learning-based algorithm using an algorithm optimized for incomplete information games that must consider not only game wins and losses but also scores. It is intended to provide a method and device for providing incomplete information game service.
다만, 본 발명 및 본 발명의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다. However, the technical problems to be achieved by the present invention and the embodiments of the present invention are not limited to the technical problems described above, and other technical problems may exist.
본 발명의 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 방법은, 게임 플레이 서버에서 유저 단말기를 통해 딥러닝 기반 불완전 정보 게임 서비스를 제공하는 방법으로서, 복수의 액션(action) 별 고스톱판 상태를 포함하는 트레이닝 데이터 셋(Training data set)을 획득하는 단계; 및 상기 획득된 트레이닝 데이터 셋을 기초로 상기 불완전 정보 서비스의 딥러닝 모델을 학습시키는 단계를 포함하고, 상기 딥러닝 모델을 학습시키는 단계는, 상기 트레이닝 데이터 셋을 기초로 상태판단 트레이닝을 수행하는 단계와, 상기 트레이닝 데이터 셋을 기초로 승률추정 트레이닝을 수행하는 단계와, 상기 트레이닝 데이터 셋을 기초로 점수추정 트레이닝을 수행하는 단계와, 상기 트레이닝 데이터 셋을 기초로 족보 성취확률 트레이닝을 수행하는 단계 중 적어도 하나의 단계를 포함한다. A method for providing a game service based on deep learning based on incomplete information according to an embodiment of the present invention is a method for providing a game service based on deep learning based on incomplete information through a user terminal in a game play server. Obtaining a training data set comprising; and learning a deep learning model of the incomplete information service based on the obtained training data set, wherein the learning of the deep learning model comprises performing state decision training based on the training data set. And, performing odds estimation training based on the training data set, performing score estimation training based on the training data set, and performing genealogy achievement probability training based on the training data set. It includes at least one step.
이때, 상기 상태판단 트레이닝은, 제1 고스톱판 상태를 입력으로 하고, 상기 입력된 제1 고스톱판 상태에서 수행 가능한 적어도 하나의 액션을 판단한 정보인 상태 판단정보를 출력하도록 상기 딥러닝 모델을 학습시킨다. At this time, the state judgment training takes the first high stop board state as an input and trains the deep learning model to output state determination information that is information obtained by determining at least one action that can be performed in the input first high stop board state. .
또한, 상기 상태 판단정보는, 상기 제1 고스톱판 상태에서 수행 가능한 적어도 하나의 액션을 검출하는 기준 요소인 활성화 상태를 판단한 정보이다. In addition, the state determination information is information for determining an activation state, which is a reference element for detecting at least one action that can be performed in the state of the first high-stop board.
또한, 상기 활성화 상태는, 손패 상태(HAND State), 흔들기 상태(SHAKE State), 먹을패 선택 상태(SELECT State), 술잔위치 선택 상태(SWITCH State), 고스톱 상태(GOSTOP State), 게임종료 상태(END State), 손패 쥐어주기 상태(CHANCE_HAND State) 및 덱 뒤집기 상태(CHANCE_FLIP State) 중 적어도 하나 이상의 상태를 포함한다. In addition, the activation state is a hand state (HAND State), a shake state (SHAKE State), an eating tile selection state (SELECT State), a drinking cup position selection state (SWITCH State), a gostop state (GOSTOP State), a game end state ( END State), hand holding state (CHANCE_HAND State), and deck flipping state (CHANCE_FLIP State).
또한, 상기 승률추정 트레이닝은, 상기 트레이닝 데이터 셋을 이용한 롤 아웃(Roll-out)을 기초로 제1 고스톱판 상태를 입력으로 하고, 상기 입력된 제1 고스톱판 상태에서 가능한 액션들에 의한 승률을 추정한 정보인 승률추정값을 출력하도록 상기 딥러닝 모델을 학습시킨다. In addition, the odds estimation training takes the first high-stop board state as an input based on roll-out using the training data set, and the winning rate by actions possible in the input first high-stop board state The deep learning model is trained to output an odds ratio estimation value, which is the estimated information.
또한, 상기 점수추정 트레이닝은, 상기 트레이닝 데이터 셋을 이용한 롤 아웃(Roll-out)을 기초로 제1 고스톱판 상태를 입력으로 하고, 상기 입력된 제1 고스톱판 상태에서 가능한 액션들에 의한 점수를 추정한 정보인 점수추정값을 출력하도록 상기 딥러닝 모델을 학습시킨다. In addition, the score estimation training takes the first high-stop board state as an input based on roll-out using the training data set, and scores by actions possible in the input first high-stop board state The deep learning model is trained to output a score estimation value, which is the estimated information.
또한, 상기 족보 성취확률 트레이닝은, 제1 고스톱판 상태를 입력으로 하고, 상기 입력된 제1 고스톱판 상태에 기반한 롤 아웃 종료 시 소정의 족보를 성취할 확률을 예측한 정보인 족보 성취확률값을 출력하도록 상기 딥러닝 모델을 학습시킨다. In addition, the genealogy achievement probability training takes the first high-stop board state as an input and outputs a genealogy achievement probability value, which is information predicting the probability of achieving a predetermined genealogy at the end of roll-out based on the input first high-stop board state The deep learning model is trained to do so.
또한, 상기 고스톱판 상태는, 플레이어의 손패, 플레이어의 먹은패, 상대 플레이어의 먹은패, 바닥에 깔린 패, 플레이어가 승리하기 위해 갱신해야 하는 점수, 상대 플레이어가 승리하기 위해 갱신해야 하는 점수, 플레이어의 선택 패, 상대 플레이어의 선택 패, 보너스 패 인질 종류, 고(go) 실행횟수, 선(先) 플레이어 정보, 뻑 유발 정보 및 9열끗 피 사용정보 중 적어도 일부를 포함한다. In addition, the state of the high-stop board is the player's hand, the player's eaten hand, the opposing player's eaten hand, the floor laid on the floor, the score that the player needs to update to win, the score that the opponent player needs to update to win, the player It includes at least some of the selected hand, opponent player's selected hand, bonus hand, hostage type, go execution count, previous player information, knock-inducing information, and 9 blood usage information.
한편, 본 발명의 실시예에 따른 불완전 정보 게임 서비스 제공 장치는, 트레이닝 데이터 셋을 수신하는 통신부; 딥러닝 모델을 저장하는 메모리; 및 상기 수신된 트레이닝 데이터 셋을 기초로 상기 딥러닝 모델에 대한 상태판단 트레이닝, 승률추정 트레이닝, 점수추정 트레이닝 및 족보 성취확률 트레이닝 중 적어도 하나의 트레이닝을 수행하는 프로세서;를 포함하는 것을 특징으로 한다. On the other hand, an incomplete information game service providing apparatus according to an embodiment of the present invention includes a communication unit for receiving a training data set; memory for storing deep learning models; and a processor that performs at least one of state judgment training, odds estimation training, score estimation training, and genealogy achievement probability training for the deep learning model based on the received training data set.
이때, 상기 프로세서는, 상기 트레이닝을 수행하여 상기 딥러닝 모델이 제1 고스톱판 상태에 대한 상태 판단정보, 승률추정값, 점수추정값 및 족보 성취확률값 중 적어도 하나를 출력하도록 학습시킨다. At this time, the processor performs the training so that the deep learning model is trained to output at least one of state determination information, odds estimation value, score estimation value, and genealogy achievement probability value for the first high-stop version state.
본 발명의 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치는, 불완전 정보 게임에서 현재 플레이 상태에 기초한 상태 판단정보, 승률추정값, 점수추정값 및 족보 성취확률값 중 적어도 하나를 이용하여 최선의 액션(action)을 수행할 수 있다. A deep learning-based incomplete information game service providing method and apparatus according to an embodiment of the present invention, using at least one of state determination information based on a current play state in an incomplete information game, an odds estimate value, a score estimate value, and a genealogy achievement probability value, of actions can be performed.
또한, 본 발명의 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치는, 상대 플레이어의 패(또는 카드 등)와 덱(deck)이 포함하는 패(또는 카드 등) 등과 같은 일부 정보를 비공개하는 불완전 정보 게임에서의 상대 플레이어의 액션을 무작위 랜덤 방식이 아닌 소정의 알고리즘에 따른 딥러닝을 기반으로 추정할 수 있다. In addition, a deep learning-based imperfect information game service providing method and apparatus according to an embodiment of the present invention include some information such as the hand (or card, etc.) of an opponent and the hand (or card, etc.) included in a deck It is possible to estimate the action of an opponent player in an incomplete information game that discloses based on deep learning according to a predetermined algorithm rather than a random method.
또한, 본 발명의 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치는, 불완전 정보 게임에 보다 최적화된 형태로 개선된 UCT 알고리즘을 이용하여 현재 플레이 상태에 따른 최선의 액션을 결정할 수 있다. In addition, the deep learning-based incomplete information game service providing method and apparatus according to an embodiment of the present invention can determine the best action according to the current play state using an improved UCT algorithm in a form more optimized for incomplete information games. have.
다만, 본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 명확하게 이해될 수 있다. However, the effects obtainable in the present invention are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood from the description below.
도 1은 본 발명의 실시예에 따른 딥러닝 기반 불완전 게임 서비스 시스템에 대한 예시도이다.
도 2는 본 발명의 실시예에 따른 게임 플레이 서버의 동작 모델 구조를 설명하기 위한 도면의 일례이다.
도 3은 본 발명의 실시예에 따른 동작 모델이 탐색부의 파이프 라인에 따라서 몬테 카를로 트리 서치(Monte Carlo Tree Search; MCTS)를 수행하는 과정을 설명하기 위한 도면의 일례이다.
도 4는 본 발명의 실시예에 따른 게임 플레이 서버의 동작 모델을 학습하는 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 실시예에 따른 게임 플레이 서버의 동작 모델을 학습하는 방법을 설명하기 위한 개념도이다.
도 6은 본 발명의 실시예에 따른 상태판단 트레이닝을 수행하는 방법을 설명하기 위한 개념도이다.
도 7은 본 발명의 실시예에 따른 상태 간 전환 관계를 보여주는 다이어그램의 일례이다.
도 8은 본 발명의 실시예에 따른 롤 아웃(Roll-out) 기반 트레이닝을 설명하기 위한 개념도이다.
도 9는 본 발명의 실시예에 따른 승률 및 점수를 추정하는 방법을 설명하기 위한 도면의 일례이다.
도 10은 본 발명의 실시예에 따른 게임 플레이 서버의 동작 모델이 딥러닝 기반의 불완전 정보 게임 서비스를 제공하는 방법을 설명하기 위한 흐름도이다.
도 11은 본 발명의 실시예에 따른 게임 플레이 서버의 동작 모델이 딥러닝 기반의 불완전 정보 게임 서비스를 제공하는 방법을 설명하기 위한 개념도이다.
도 12는 본 발명의 실시예에 따른 불완전 정보 게임 서비스의 MCTS에서 상대 플레이어의 액션을 추정하는 방법을 설명하기 위한 도면의 일례이다.
도 13은 본 발명의 실시예에 따른 G-UCT 알고리즘에서 사용하는 시그모이드 함수(Sigmoid function)를 나타내는 도면의 일례이다. 1 is an exemplary view of a deep learning-based incomplete game service system according to an embodiment of the present invention.
2 is an example of a diagram for explaining the structure of an operation model of a game play server according to an embodiment of the present invention.
3 is an example of a diagram for explaining a process in which an operation model according to an embodiment of the present invention performs a Monte Carlo Tree Search (MCTS) according to a pipeline of a search unit.
4 is a flowchart illustrating a method of learning an operation model of a game play server according to an embodiment of the present invention.
5 is a conceptual diagram illustrating a method of learning an operation model of a game play server according to an embodiment of the present invention.
6 is a conceptual diagram for explaining a method of performing state judgment training according to an embodiment of the present invention.
7 is an example of a diagram showing transition relationships between states according to an embodiment of the present invention.
8 is a conceptual diagram illustrating roll-out based training according to an embodiment of the present invention.
9 is an example of a diagram for explaining a method of estimating odds and scores according to an embodiment of the present invention.
10 is a flowchart illustrating a method for providing a deep learning-based incomplete information game service by an operation model of a game play server according to an embodiment of the present invention.
11 is a conceptual diagram for explaining a method for providing a game service based on deep learning based on incomplete information by an operation model of a game play server according to an embodiment of the present invention.
12 is an example of a diagram for explaining a method of estimating an action of an opponent player in MCTS of an incomplete information game service according to an embodiment of the present invention.
13 is an example of a diagram showing a sigmoid function used in the G-UCT algorithm according to an embodiment of the present invention.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. 또한, 도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.Since the present invention can apply various transformations and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. Effects and features of the present invention, and methods for achieving them will become clear with reference to the embodiments described later in detail together with the drawings. However, the present invention is not limited to the embodiments disclosed below and may be implemented in various forms. In the following embodiments, terms such as first and second are used for the purpose of distinguishing one component from another component without limiting meaning. Also, expressions in the singular number include plural expressions unless the context clearly dictates otherwise. In addition, terms such as include or have mean that features or elements described in the specification exist, and do not preclude the possibility that one or more other features or elements may be added. In addition, in the drawings, the size of components may be exaggerated or reduced for convenience of description. For example, since the size and thickness of each component shown in the drawings are arbitrarily shown for convenience of description, the present invention is not necessarily limited to the illustrated bar.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, and when describing with reference to the drawings, the same or corresponding components are assigned the same reference numerals, and overlapping descriptions thereof will be omitted. .
도 1은 본 발명의 실시예에 따른 딥러닝 기반 불완전 게임 서비스 시스템에 대한 예시도이다.1 is an exemplary view of a deep learning-based incomplete game service system according to an embodiment of the present invention.
도 1을 참조하면, 실시예에 따른 딥러닝 기반 불완전 게임 서비스 시스템은, 단말기(100), 게임 서비스 제공서버(200), 게임 플레이 서버(300) 및 네트워크(400)를 포함할 수 있다. Referring to FIG. 1 , a deep learning-based incomplete game service system according to an embodiment may include a
도 1의 각 구성요소는, 네트워크(400)를 통해 연결될 수 있다. 단말기(100), 게임 서비스 제공서버(200) 및/또는 게임 플레이 서버(300) 등과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예에는 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 블루투스(Bluetooth) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다. Each component of FIG. 1 may be connected through a
한편, 본 발명의 실시예에 따른 불완전 정보 게임 서비스는 게임 진행에 필요한 일부 정보가 비공개 처리되는 어떠한 게임 서비스에도 적용이 가능하며, 이하에서는 카드 게임 서비스, 그 중에서도 고스톱(GOSTOP) 게임 서비스에 기준하여 설명한다. On the other hand, the incomplete information game service according to an embodiment of the present invention can be applied to any game service in which some information necessary for game progress is kept private. Explain.
- 단말기(100: Terminal) - Terminal (100: Terminal)
먼저, 단말기(100)는, 고스톱 게임 서비스를 제공받고자 하는 유저의 단말기이다. 또한, 단말기(100)는 다양한 작업을 수행하는 애플리케이션들을 실행하기 위한 유저가 사용하는 하나 이상의 컴퓨터 또는 다른 전자 장치이다. First, the terminal 100 is a terminal of a user who wants to receive a go-stop game service. Also, the terminal 100 is one or more computers or other electronic devices used by a user to execute applications that perform various tasks.
예컨대, 컴퓨터, 랩탑 컴퓨터, 스마트 폰, 모바일 전화기, PDA, 태블릿 PC, 혹은 게임 서비스 제공서버(200) 및/또는 게임 플레이 서버(300)와 통신하도록 동작 가능한 임의의 다른 디바이스를 포함한다. For example, it includes a computer, laptop computer, smart phone, mobile phone, PDA, tablet PC, or any other device operable to communicate with the game
다만 이에 한정되는 것은 아니고 단말기(100)는 다양한 머신들 상에서 실행되고, 다수의 메모리 내에 저장된 명령어들을 해석하여 실행하는 프로세싱 로직을 포함하고, 외부 입력/출력 디바이스 상에 그래픽 사용자 인터페이스(GUI)를 위한 그래픽 정보를 디스플레이하는 프로세스들과 같이 다양한 기타 요소들을 포함할 수 있다. However, it is not limited thereto, and the terminal 100 is executed on various machines, includes processing logic that interprets and executes commands stored in a plurality of memories, and provides a graphical user interface (GUI) on an external input/output device. It may contain various other elements, such as processes that display graphical information.
아울러 단말기(100)는 입력 장치(예를 들면 마우스, 키보드, 터치 감지 표면 등) 및 출력 장치(예를 들면 디스플레이장치, 모니터, 스크린 등)에 접속될 수 있다. In addition, the terminal 100 may be connected to an input device (eg, mouse, keyboard, touch sensitive surface, etc.) and an output device (eg, display device, monitor, screen, etc.).
단말기(100)에 의해 실행되는 애플리케이션들은 게임 애플리케이션, 웹 브라우저, 웹 브라우저에서 동작하는 웹 애플리케이션, 워드 프로세서들, 미디어 플레이어들, 스프레드시트들, 이미지 프로세서들, 보안 소프트웨어 또는 그 밖의 것을 포함할 수 있다.Applications executed by the terminal 100 may include game applications, web browsers, web applications running on web browsers, word processors, media players, spreadsheets, image processors, security software, or the like. .
또한, 단말기(100)는 명령들을 저장하는 적어도 하나의 메모리(101), 적어도 하나의 프로세서(102) 및 통신부(103)를 포함할 수 있다.In addition, the terminal 100 may include at least one
단말기(100)의 메모리(101)는 단말기(100)에서 구동되는 다수의 응용 프로그램(application program) 또는 애플리케이션(application), 단말기(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다.The
명령들은 프로세서(102)로 하여금 동작들을 수행하게 하기 위해 프로세서(102)에 의해 실행 가능하고, 동작들은 고스톱 게임 실행 요청 신호를 전송, 게임 데이터 송수신, 액션 정보 송수신, 상태 판단 요청 신호를 전송, 상태 판단 결과 수신, 게임 시간 정보 요청, 게임 시간 정보 수신 및 각종 정보 수신하는 동작들을 포함할 수 있다.Instructions are executable by the
또한, 메모리(101)는 하드웨어적으로, ROM, RAM, EPROM, 플래시 드라이브, 하드 드라이브 등과 같은 다양한 저장기기 일 수 있고, 메모리(130)는 인터넷(internet)상에서 상기 메모리(101)의 저장 기능을 수행하는 웹 스토리지(web storage)일 수도 있다. In addition, the
단말기(100)의 프로세서(102)는 전반적인 동작을 제어하여 고스톱 게임 서비스를 제공받기 위한 데이터 처리를 수행할 수 있다. The
단말기(100)에서 고스톱 게임 애플리케이션이 실행되면, 단말기(100)에서 고스톱 게임 환경이 구성된다. 그리고 고스톱 게임 애플리케이션은 네트워크(400)를 통해 게임 서비스 제공서버(200)와 고스톱 게임 데이터를 교환하여 단말기(100) 상에서 고스톱 게임 서비스가 실행되도록 한다. When the GoStop game application is executed in the terminal 100, a GoStop game environment is configured in the
이러한 프로세서(102)는 ASICs (application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 임의의 형태의 프로세서일 수 있다.These
단말기(100)의 통신부(103)는, 하기 통신방식(예를 들어, GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등), WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), Wi-Fi(Wireless Fidelity) Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMAX(World Interoperability for Microwave Access)에 따라 구축된 네트워크망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신할 수 있다. The
이러한 단말기(100)는, 후술되는 게임 서비스 제공서버(200) 및 게임 플레이 서버(300) 중 적어도 하나에서 수행되는 기능 동작의 적어도 일부를 수행할 수도 있다.Such a terminal 100 may perform at least a part of a function operation performed in at least one of the game
- 게임 서비스 제공서버(200: Game service providing server) - Game service providing server (200: Game service providing server)
게임 서비스 제공서버(200)가 제공하는 고스톱 게임 서비스는 게임 서비스 제공서버(200)가 제공하는 가상의 컴퓨터 유저와 실제 유저가 함께 게임에 참여하는 형태로 구성될 수 있다. 이는 유저 측 단말기(100) 상에서 구현되는 고스톱 게임 환경에서 하나의 실제 유저와 하나의 컴퓨터 유저가 함께 게임을 플레이 한다.The GoStop game service provided by the game
다른 측면에서, 게임 서비스 제공서버(200)가 제공하는 고스톱 게임 서비스는 복수의 유저 측 디바이스가 참여하여 고스톱 게임이 플레이되는 형태로 구성될 수도 있다.In another aspect, the Go-Stop game service provided by the game
게임 서비스 제공서버(200)는 명령들을 저장하는 적어도 하나의 메모리(201), 적어도 하나의 프로세서(202) 및 통신부(203)를 포함할 수 있다.The game
게임 서비스 제공서버(200)의 메모리(201)는 게임 서비스 제공서버(200)에서 구동되는 다수의 응용 프로그램(application program) 또는 애플리케이션(application), 게임 서비스 제공서버(200)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 명령들은 프로세서(202)로 하여금 동작들을 수행하게 하기 위해 프로세서(202)에 의해 실행 가능하고, 동작들은 게임 실행 요청 신호 수신, 게임 데이터 송수신, 액션 정보 송수신, 상태 판단 요청 신호 송수신, 상태 판단 결과 송수신, 액션 준비 시간 송수신, 게임 정보 시간 송수신 및 각종 전송 동작을 포함할 수 있다. The
또한, 메모리(201)는 게임 서비스 제공서버(200)에서 대전(對戰)을 하였던 복수의 플레이 데이터 또는 기존에 공개된 복수의 플레이 데이터를 저장할 수 있다. In addition, the
복수의 플레이 데이터 각각은 대전 시작의 첫 액션 정보인 제1 액션부터 대전이 종료되는 최종 액션까지의 정보를 모두 포함할 수 있다. 즉, 복수의 플레이 데이터는 액션에 관한 히스토리 정보를 포함할 수 있다. Each of the plurality of play data may include all information from a first action, which is information about a first action at the start of a competitive battle, to a final action at which the competitive game ends. That is, the plurality of play data may include action-related history information.
또한, 플레이 데이터는, 고스톱 게임 서비스에서 수행한 액션 순서에 따른 각각의 플레이 상태 즉, 실시예에서 고스톱판 상태를 포함할 수 있다. In addition, the play data may include each play state according to the order of actions performed by the go-stop game service, that is, the go-stop board state in the embodiment.
여기서, 상기 플레이 상태(이하, 고스톱판 상태)는, 고스톱판에 고스톱 패가 놓여진 상태 등을 포함하는 게임 진행에 따른 데이터들의 집합으로서, 실시예에서 플레이어의 손패, 플레이어의 먹은패, 상대 플레이어의 먹은패, 바닥에 깔린 패(즉, 공개 패), 플레이어가 승리하기 위해 갱신해야 하는 점수, 상대 플레이어가 승리하기 위해 갱신해야 하는 점수, 플레이어가 손패 상태일 때 선택한 패, 상대 플레이어가 손패 상태일 때 선택한 패, 뻑 유발정보, 보너스 패 인질 종류, 고(go) 실행횟수, 선(先) 플레이어 정보 및/또는 9열끗 피 사용정보 등을 포함할 수 있다. Here, the play state (hereinafter referred to as the Go-Stop board state) is a set of data according to the progress of the game, including the state in which the Go-Stop hand is placed on the Go-Stop board, and the like. hand, floored hand (i.e. open hand), number of points a player must score to win, number of points opponent player must score to win, hand selected when player is in hand, and opponent player in hand It may include the selected hand, knock-inducing information, bonus hand hostage type, go execution count, previous player information, and/or 9-fold blood usage information.
게임 서비스 제공서버(200)는 게임 플레이 서버(300)의 트레이닝을 위하여 저장된 복수의 플레이 데이터를 게임 플레이 서버(300)에 제공할 수 있게 한다. The game
또한, 메모리(201)는 하드웨어적으로, ROM, RAM, EPROM, 플래시 드라이브, 하드 드라이브 등과 같은 다양한 저장기기 일 수 있고, 메모리(201)는 인터넷(internet)상에서 상기 메모리(201)의 저장 기능을 수행하는 웹 스토리지(web storage)일 수도 있다.In addition, the
게임 서비스 제공서버(200)의 프로세서(202)는 전반적인 동작을 제어하여 고스톱 게임 서비스를 제공하기 위한 데이터 처리를 수행할 수 있다. 이러한 프로세서(202)는 ASICs (application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 임의의 형태의 프로세서일 수 있다.The
게임 서비스 제공서버(200)는 통신부(203)를 통해 네트워크(400)를 경유하여 단말기(100) 및 게임 플레이 서버(300)와 통신을 수행할 수 있다. The game
- 게임 플레이 서버(300: Game playing server) - Game play server (300: Game playing server)
게임 플레이 서버(300)는, 별도의 클라우드 서버나 컴퓨팅 장치를 포함할 수 있다. 또한, 게임 플레이 서버(300)는 단말기(100)의 프로세서 또는 게임 서비스 제공서버(200)의 데이터 처리부에 설치된 신경망 시스템일 수 있지만, 이하에서 게임 플레이 서버(300)는, 단말기(100) 또는 게임 서비스 제공서버(200)와 별도의 장치로 설명한다.The
게임 플레이 서버(300)는 명령들을 저장하는 적어도 하나의 메모리(301), 적어도 하나의 프로세서(302) 및 통신부(303)를 포함할 수 있다. The
게임 플레이 서버(300)는 고스톱 규칙에 따라 스스로 학습하는 딥러닝 모델인 동작 모델을 구축하고 단말기(100)의 유저와 대전을 할 수 있는 인공지능 컴퓨터로써 자신의 턴에서 대전에서 이길 수 있도록 고스톱 게임에서의 액션을 수행할 수 있다. 게임 플레이 서버(300)가 동작 모델로 트레이닝하는 자세한 설명은 도 2 내지 도 9의 동작 모델에 관한 설명을 따른다.The
게임 플레이 서버(300)의 메모리(301)는 게임 플레이 서버(300)에서 구동되는 다수의 응용 프로그램(application program) 또는 애플리케이션(application), 게임 플레이 서버(300)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 명령들은 프로세서(302)로 하여금 동작들을 수행하게 하기 위해 프로세서(302)에 의해 실행 가능하고, 동작들은 동작 모델 학습(트레이닝) 동작, 액션 정보 송수신, 액션 준비 시간 수신, 게임 시간 정보 수신 및 각종 전송 동작을 포함할 수 있다. The
또한, 메모리(301)는 딥러닝 모델인 동작 모델을 저장할 수 있다. 또한, 메모리(301)는 하드웨어적으로, ROM, RAM, EPROM, 플래시 드라이브, 하드 드라이브 등과 같은 다양한 저장기기 일 수 있고, 메모리(301)는 인터넷(internet)상에서 상기 메모리(301)의 저장 기능을 수행하는 웹 스토리지(web storage)일 수도 있다.Also, the
게임 플레이 서버(300)의 프로세서(302)는 메모리(302)에 저장된 동작 모델을 독출하여, 구축된 신경망 시스템에 따라서 하기 기술하는 동작 모델 학습 및 고스톱 게임에서의 액션을 수행하게 된다. The
실시예에 따라서 프로세서(302)는, 전체 유닛들을 제어하는 메인 프로세서와, 동작 모델에 따라 신경망 구동 시 필요한 대용량의 연산을 처리하는 복수의 그래픽 프로세서(Graphics Processing Unit, GPU)를 포함하도록 구성될 수 있다. Depending on the embodiment, the
게임 플레이 서버(300)는 통신부(303)를 통해 네트워크(400)를 경유하여 게임 서비스 제공서버(200)와 통신을 수행할 수 있다. The
<동작 모델><action model>
도 2는 본 발명의 실시예에 따른 게임 플레이 서버(300)의 동작 모델 구조를 설명하기 위한 도면의 일례이다. 2 is an example of a diagram for explaining the operation model structure of the
도 2를 참조하면, 본 발명의 실시예에 따른 동작 모델은 게임 플레이 서버(300)의 딥러닝 모델로서, 상태 판단부(310), 시뮬레이션부(320), 액션 결정부(330), 딥러닝 신경망(340) 및 탐색부(350)를 포함할 수 있다.Referring to FIG. 2 , the operation model according to an embodiment of the present invention is a deep learning model of the
자세히, 동작 모델은 시뮬레이션부(320), 딥러닝 신경망(340) 및 탐색부(350)를 포함하는 MCTS 모듈(390)과, 상태 판단부(310) 및 액션 결정부(330)를 이용하여 대전에서 이기기 위한 액션(action)을 결정하는 모델로 학습할 수 있다.In detail, the action model is played using the
구체적으로, 탐색부(350)는 딥러닝 신경망(340)의 가이드에 따라서 몬테 카를로 트리 서치(Monte Carlo Tree Search; MCTS) 동작을 수행할 수 있다. MCTS는 모종의 의사 결정을 위한 체험적 탐색 알고리즘이다. 즉, 탐색부(350)는 딥러닝 신경망(340)이 제공하는 이동 확률값(p) 및/또는 가치값(V)에 기초하여 MCTS를 수행할 수 있다. Specifically, the
일 예로, 딥러닝 신경망(340)에 의해 가이드된 탐색부(350)는 MCTS를 수행하여 방문 수(Visit count)에 따른 액션들에 대한 확률분포값인 탐색 확률값()을 출력할 수 있다. 시뮬레이션부(320)는 탐색 확률값()에 따라 스스로 고스톱 대전을 할 수 있다. 시뮬레이션부(320)는 게임의 승패가 결정되는 시점까지 스스로 고스톱 대전을 진행하고, 자가 대전(즉, self-play)이 종료되면 고스톱판 상태(S), 탐색 확률값(), 자가 플레이 가치값(z)을 딥러닝 신경망(340)을 학습시키기 위한 정답 데이터로서 제공할 수 있다. 여기서 고스톱판 상태(S)는 고스톱판에 고스톱 패가 놓여진 상태 등을 포함하는 게임 진행에 따른 데이터들의 집합일 수 있다. 자가 플레이 가치값(z)은 고스톱판 상태(S)에서 자가 대전을 하였을 때 승률 값이다. 또한, 시뮬레이션부(320)는 자가 대전의 결과로 승률추정값(W), 점수추정값(G) 및/또는 족보 성취확률값(L)을 액션 결정부(330)로 제공할 수 있다. For example, the
딥러닝 신경망(340)은 이동 확률값(p)과 가치값(V)을 출력할 수 있다. 이동 확률값(p)은 고스톱판 상태(S)에 따라서 어떠한 액션을 수행하는 것이 게임을 이길 수 있는 좋은 액션인지를 수치로 나타낸 확률분포값일 수 있다. 가치값(V)은 현재 플레이어가 직면한 상태(State)에서의 종합적인 승률값을 나타낸다. 여기서, 상기 종합적인 승률값이란, 플레이어가 수행할 수 있는 적어도 하나 이상의 액션과, 상기 적어도 하나 이상의 액션이 수행됨에 따른 미래의 상황들을 종합적으로 고려하여 해당 플레이어의 승률을 단일 값으로 나타낸 데이터를 의미할 수 있다. 예를 들어, 이동 확률값(p)이 높은 액션이 좋은 액션일 수 있다. 딥러닝 신경망(340)은 이동 확률값(p)이 탐색 확률값()과 동일해지도록 트레이닝되고, 가치값(V)이 자가 플레이 가치값(z)과 동일해지도록 트레이닝될 수 있다. 이후 트레이닝된 딥러닝 신경망(340)은 탐색부(350)를 가이드하고, 탐색부(350)는 이전 탐색 확률값()보다 더 좋은 액션을 찾도록 액션 준비 시간 동안 MCTS를 진행하여 새로운 탐색 확률값()을 출력하게 한다. 예를 들어, 액션 준비 시간은 MCTS 진행 시간에 따라 평균 액션 준비 시간, 제1 액션 준비 시간 및 제2 액션 준비 시간 중 어느 하나의 액션 준비 시간을 따를 수 있다. 액션 준비 시간은 기본적으로 평균 액션 준비 시간으로 설정되어 있을 수 있다. The deep learning
시뮬레이션부(320)는 새로운 탐색 확률값()에 기초하여 고스톱판 상태(S)에 따른 새로운 자가 플레이 가치값(z)을 출력하고 고스톱판 상태(S), 새로운 탐색 확률값(), 새로운 자가 플레이 가치값(z)을 딥러닝 신경망(340)에 제공할 수 있다. 딥러닝 신경망(340)은 이동 확률값(p)과 가치값(V)이 새로운 탐색 확률값()과 새로운 자가 플레이 가치값(z)으로 출력되도록 다시 트레이닝될 수 있다. The
즉, 동작 모델은 이러한 과정을 반복하여 딥러닝 신경망(340)이 대전에서 이기기 위한 더 좋은 액션을 찾도록 트레이닝 될 수 있다. 일 예로, 동작 모델은 액션 손실(l)을 이용할 수 있다. 액션 손실(l)은 수학식 1과 같다.That is, the action model can be trained to find a better action for winning the match by repeating this process for the deep learning
[수학식 1][Equation 1]
는 신경망의 파라미터이고, c는 매우 작은 상수이다. is a parameter of the neural network, and c is a very small constant.
수학식 1의 액션 손실(l)에서 z와 v가 같아 지도록 하는 것은 평균 제곱 손실(mean square loss) 텀에 해당되고, 와 p가 같아 지도록 하는 것은 크로스 엔트로피 손실(cross entropy loss) 텀에 해당되고, 에 c를 곱하는 것은 정규화 텀으로 오버피팅(overfitting)을 방지하기 위한 것이다.Making z and v equal in the action loss (l) of
한편, 딥러닝 신경망(340)은 신경망 구조로 구성될 수 있다. 일 예로, 딥러닝 신경망(340)은 한 개의 컨볼루션(convolution) 블록과 19개의 레지듀얼(residual) 블록으로 구성될 수 있다. 컨볼루션 블록은 3X3 컨볼루션 레이어가 여러개 중첩된 형태일 있다. 하나의 레지듀얼 블록은 3X3 컨볼루션 레이어가 여러개 중첩되고 스킵 커넥션을 포함한 형태일 수 있다. 스킵 커넥션은 소정의 레이어의 입력이 해당 레이어의 출력값과 합하여서 출력되어 다른 레이어에 입력되는 구조이다. Meanwhile, the deep learning
도 3은 본 발명의 실시예에 따른 동작 모델이 탐색부(350)의 파이프 라인에 따라서 몬테 카를로 트리 서치(Monte Carlo Tree Search; MCTS)를 수행하는 과정을 설명하기 위한 도면의 일례이다. 3 is an example of a diagram for explaining a process of performing a Monte Carlo Tree Search (MCTS) according to the pipeline of the
도 3을 참조하면, 본 발명의 실시예에 따른 동작 모델은, 시뮬레이션부(320), 딥러닝 신경망(340) 및 탐색부(350)를 포함하는 MCTS 모듈(390)을 이용하여 몬테 카를로 트리 서치(MCTS)를 수행할 수 있다. Referring to FIG. 3 , an operation model according to an embodiment of the present invention performs a Monte Carlo tree search using an
자세히, 동작 모델은 선택 과정(a)을 통하여 현재 제1 고스톱판 상태(S1)에서 MCTS를 통해 탐색하지 않은 가지 중 활동 함수(Q)와 신뢰값(U)이 높은 액션을 가지는 제2 고스톱판 상태(S1-2)를 선택한다. 활동 함수(Q)는 해당 가지를 지날 때마다 산출된 가치값(V)들의 평균값이다. 신뢰값(U)은 해당 가지를 지나는 방문 횟수(N)에 반비례하고 이동 확률값(p)에 비례한다. In detail, the action model is a second high-stop plate having an action having a high activity function (Q) and a high confidence value (U) among branches not searched through MCTS in the current first high-stop plate state (S1) through the selection process (a). State (S1-2) is selected. The activity function (Q) is the average value of value values (V) calculated every time a corresponding branch is passed. The confidence value (U) is inversely proportional to the number of visits (N) passing through the corresponding branch and proportional to the movement probability value (p).
동작 모델은 확장과 평가 과정(b)을 통하여 선택된 액션에서의 제3 고스톱판 상태(S1-2-1)로 확장하고 이동 확률값(p)을 산출할 수 있다. The motion model may be expanded to the third high stop board state (S1-2-1) in the selected action through the expansion and evaluation process (b) and calculate a movement probability value (p).
동작 모델은 상기 확장된 제3 고스톱판 상태(S1-2-1)의 가치값(V)을 산출하고 백업 과정(c)을 통하여 지나온 가지들의 활동 함수(Q), 방문 횟수(N), 이동 확률값(p)을 저장할 수 있다. The motion model calculates the value (V) of the extended third high-stop board state (S1-2-1), and the activity function (Q), number of visits (N), and movement of branches passed through the backup process (c). A probability value (p) can be stored.
동작 모델은 액션 준비 시간 동안 선택(a), 확장 및 평가(b), 백업(c) 과정을 반복하고 각 액션에 대한 방문 횟수(N)를 이용하여 확률 분포를 만들어서 탐색 확률값()을 출력할 수 있다. 동작 모델은 액션들 중 가장 높은 탐색 확률값()을 가지는 액션을 검출할 수 있다. The action model repeats the process of selection (a), expansion and evaluation (b), and backup (c) during the action preparation time, and creates a probability distribution using the number of visits (N) for each action, resulting in a search probability value ( ) can be output. The action model has the highest search probability value among actions ( ) can be detected.
한편, 동작 모델의 상태 판단부(310)는 소정의 고스톱판 상태(S)를 입력으로 하고 상기 입력된 고스톱판 상태(S)에 대한 상태 판단정보(C)를 출력으로 할 수 있다. 여기서, 상태 판단정보(C)는 특정 고스톱판 상태(S)에서 수행 가능한 액션을 검출하기 위한 기준이 되는 요소인 활성화 상태를 판단한 정보일 수 있다. 즉, 활성화 상태는 특정 고스톱판 상태(S)에서 플레이어가 수행 가능한 적어도 하나의 액션을 결정할 수 있다. 이에 대한 자세한 설명은 도 6 및 도 7의 동작 모델에 관한 설명을 따른다. Meanwhile, the
또한, 이러한 상태 판단부(310)는, 게임 서비스 제공서버(200)가 제공하는 트레이닝 데이터 셋을 기초로 소정의 고스톱판 상태(S)에 대한 상태 판단정보(C)를 출력하도록 상태판단 학습이 수행될 수 있다. 이에 대한 자세한 설명은 도 4 내지 도 9의 동작 모델에 관한 설명을 따른다. In addition, the
다른 한편, 동작 모델의 액션 결정부(330)는 MCTS 모듈(390)과 연동하여 소정의 고스톱판 상태(S)에 대한 최선의 액션인 최적 액션(A)을 MCTS를 기초로 결정 및 수행할 수 있다. 여기서, 최적 액션(A)은 소정의 고스톱판 상태(S)에서 가장 높은 승률과 점수를 가질 수 있다고 판단된 소정의 액션일 수 있다. On the other hand, the
자세히, 액션 결정부(330)는 게임 서비스 제공서버(200)로부터 수신한 고스톱판 상태(S)와, 시뮬레이션부(320)로부터 수신한 승률추정값(W), 점수추정값(G) 및/또는 족보 성취확률값(L)과, 상태 판단부(310)로부터 수신한 상태 판단정보(C)를 기초로 MCTS를 수행하게 할 수 있고, 이를 통해 상기 고스톱판 상태(S)에 대한 최적 액션(A)을 결정 및 수행할 수 있다. In detail, the
구체적으로, 액션 결정부(330)는 실시예에 따른 각각의 활성화 상태 별로 가능한 적어도 하나의 액션 중 어떠한 액션을 수행할지를 결정할 수 있다. 자세히, 액션 결정부(330)는 소정의 고스톱판 상태(S)에 대하여 판단된 현재의 활성화 상태를 기초로, 해당하는 활성화 상태에서 가능한 적어도 하나의 액션 중 어떠한 액션을 수행하는 것이 가장 높은 승률과 점수를 가질 수 있는 액션인지를 판단할 수 있다. Specifically, the
예를 들면, 액션 결정부(330)는 소정의 고스톱판 상태(S)에 대하여 판단된 활성화 상태가 내 손패 중에서 어떠한 패를 낼지 결정하는 상태인 손패 상태인 경우, 해당하는 손패 상태에서 가능한 액션(예컨대, 내 손패가 3장인 경우 제1 손패를 내는 액션, 제2 손패를 내는 액션 또는 제3 손패를 내는 액션 등)들 중 어떠한 액션을 수행하는 것이 가장 높은 승률과 점수를 가질 수 있는 액션인지 판단할 수 있다. For example, the
또한, 이러한 액션 판단부는, 게임 서비스 제공서버(200)가 제공하는 트레이닝 데이터 셋을 기초로 소정의 고스톱판 상태(S)에 대한 최적 액션(A)을 결정하도록 학습될 수 있다. 이에 대한 자세한 설명은 도 4 내지 도 9의 동작 모델에 관한 설명을 따른다. In addition, the action determining unit may be trained to determine an optimal action (A) for a predetermined high-stop board state (S) based on a training data set provided by the game
- 일 실시예에 따른 게임 플레이 서버 - 동작 모델 학습 - Game play server according to an embodiment - Operation model learning
도 4는 본 발명의 실시예에 따른 게임 플레이 서버(300)의 동작 모델을 학습하는 방법을 설명하기 위한 흐름도이고, 도 5는 본 발명의 실시예에 따른 게임 플레이 서버(300)의 동작 모델을 학습하는 방법을 설명하기 위한 개념도이다. 4 is a flowchart for explaining a method for learning an operation model of the
도 4 및 도 5를 참조하면, 본 발명의 일 실시예에 따른 딥러닝 기반 고스톱 게임 서비스는, 게임 플레이 서버(300)가 특정 고스톱판 상태(S)에 대한 최적 액션(A)을 수행하도록 동작 모델을 학습시킬 수 있다. 구체적으로, 게임 플레이 서버(300)는 특정 고스톱판 상태(S)에 대한 활성화 상태를 판단하도록 동작 모델을 학습시킬 수 있다. 또한, 게임 플레이 서버(300)는 특정 고스톱판 상태(S)에 기반한 승률추정값(W)을 판단하도록 동작 모델을 학습시킬 수 있다. 또한, 게임 플레이 서버(300)는 특정 고스톱판 상태(S)에 기반한 점수추정값(G)을 판단하도록 동작 모델을 학습시킬 수 있다. 또한, 게임 플레이 서버(300)는 특정 고스톱판 상태(S)에 기반한 족보 성취확률값(L)을 판단하도록 동작 모델을 학습시킬 수 있다. 4 and 5, the deep learning-based go-stop game service according to an embodiment of the present invention operates so that the
자세히, 도 4를 더 참조하면, 본 발명의 일 실시예에 따른 딥러닝 기반 고스톱 게임 서비스 방법은 게임 플레이 서버(300)가 트레이닝 데이터 셋(Training data set)을 수신하는 단계(S101)를 포함할 수 있다. In detail, further referring to FIG. 4, the deep learning-based GoStop game service method according to an embodiment of the present invention includes a step (S101) of receiving a training data set by the
보다 상세히, 게임 플레이 서버(300)는, 게임 서비스 제공서버(200)와 연동하여 동작 모델의 학습을 위한 트레이닝 데이터 셋을 수신할 수 있다. 여기서, 트레이닝 데이터 셋의 각 트레이닝 데이터는, 고스톱 게임에서의 플레이 기록 데이터(이하, 플레이 데이터)일 수 있다. 플레이 데이터는, 대전 시작의 첫 액션 정보인 제1 액션부터 대전이 종료되는 최종 액션까지의 정보를 모두 포함할 수 있다. 즉, 복수의 플레이 데이터는 액션에 관한 히스토리 정보를 포함할 수 있다. 또한, 플레이 데이터는, 고스톱 게임 서비스에서 수행한 액션 순서에 따른 각각의 고스톱판 상태(S)를 포함할 수 있다. 여기서, 고스톱판 상태(S)는, 고스톱판에 고스톱 패가 놓여진 상태 등을 포함하는 게임 진행에 따른 데이터들의 집합으로서, 실시예에서 각각의 고스톱판 상태(S)에서의 플레이어의 손패, 플레이어의 먹은패, 상대 플레이어의 먹은패, 바닥에 깔린 패(즉, 공개 패), 플레이어가 승리하기 위해 갱신해야 하는 점수, 상대 플레이어가 승리하기 위해 갱신해야 하는 점수, 플레이어가 손패 상태일 때 선택한 패, 상대 플레이어가 손패 상태일 때 선택한 패, 뻑 유발정보, 보너스 패 인질 종류, 고(go) 실행횟수, 선(先) 플레이어 정보 및/또는 9열끗 피 사용정보 등을 포함할 수 있다. In more detail, the
실시예에 따라서 게임 서비스 제공서버(200)는, 게임 서비스 제공서버(200)와 연동하여 복수의 플레이 데이터를 획득하고, 획득된 플레이 데이터에 대한 입력 특징(즉, 실시예에서 고스톱판 상태(S) 데이터) 추출 프로세스를 수행할 수 있다. According to the embodiment, the game
자세히, 게임 서비스 제공서버(200)는 상기 플레이 데이터에 대한 입력 특징 추출 프로세스를 수행하는 입력 특징 추출부를 더 포함할 수 있다. 일 예로, 입력 특징 추출부는 신경망 구조로 되어 있을 수 있으며 일종의 인코더를 포함할 수 있다. In detail, the game
또한, 게임 서비스 제공서버(200)는 상기 입력 특징 추출부를 이용하여 상기 플레이 데이터에 대한 상술된 고스톱판 상태(S) 데이터를 추출할 수 있다. In addition, the game
그리하여 게임 서비스 제공서버(200)는 위와 같이 획득된 플레이 데이터와 고스톱판 상태(S) 정보에 기초하여 동작 모델을 학습시키기 위한 트레이닝 데이터 셋을 구축할 수 있다. Thus, the game
또한, 본 발명의 일 실시예에 따른 딥러닝 기반 고스톱 게임 서비스 방법은 게임 플레이 서버(300)가 수신된 트레이닝 데이터 셋 기반 지도학습을 수행하는 단계(S103)를 포함할 수 있다. In addition, the deep learning-based GoStop game service method according to an embodiment of the present invention may include a step S103 in which the
자세히, 게임 플레이 서버(300)는 수신된 트레이닝 데이터 셋을 기초로 동작 모델에 대한 지도학습(supervised learning)을 수행할 수 있다. 보다 상세히는, 게임 플레이 서버(300)가 수신된 트레이닝 데이터 셋을 기초로 동작 모델의 상태 판단부(310)를 지도학습 할 수 있다. In detail, the
또한, 본 발명의 일 실시예에 따른 딥러닝 기반 고스톱 게임 서비스 방법은 게임 플레이 서버(300)가 지도학습 기반의 상태판단 트레이닝을 수행하는 단계(S105)를 포함할 수 있다. In addition, the deep learning-based GoStop game service method according to an embodiment of the present invention may include a step (S105) of the
도 6은 본 발명의 실시예에 따른 상태판단 트레이닝을 수행하는 방법을 설명하기 위한 개념도이고, 도 7은 본 발명의 실시예에 따른 상태 간 전환 관계를 보여주는 다이어그램의 일례이다. 6 is a conceptual diagram for explaining a method of performing state judgment training according to an embodiment of the present invention, and FIG. 7 is an example of a diagram showing a transition relationship between states according to an embodiment of the present invention.
도 6을 참조하면, 게임 플레이 서버(300)는 동작 모델이 소정의 고스톱판 상태(S)를 입력으로 하고, 해당 고스톱판 상태(S)에 대한 상태 판단정보(C)를 출력하도록 동작 모델의 상태 판단부(310)를 학습시키는 상태판단 트레이닝을 수행할 수 있다. Referring to FIG. 6 , the
여기서, 상태 판단정보(C)는 특정 고스톱판 상태(S)에서 수행 가능한 액션을 검출하기 위한 기준이 되는 요소인 활성화 상태를 판단한 정보일 수 있다. 즉, 활성화 상태는 특정 고스톱판 상태(S)에서 플레이어가 수행 가능한 적어도 하나의 액션을 결정할 수 있다. Here, the state determination information (C) may be information that determines the activation state, which is a criterion for detecting an action that can be performed in a specific high-stop board state (S). That is, the activation state may determine at least one action that can be performed by the player in the specific high-stop state (S).
여기서, 활성화 상태는 손패 상태(HAND State), 흔들기 상태(SHAKE State), 먹을패 선택 상태(SELECT State), 술잔위치 선택 상태(SWITCH State), 고스톱 상태(GOSTOP State), 게임종료 상태(END State), 손패 쥐어주기 상태(CHANCE_HAND State) 및 덱 뒤집기 상태(CHANCE_FLIP State)를 포함할 수 있다. 이는 불완전 정보 게임에서의 최적화된 형태로 상태들을 구분하기 위한 것이다. Here, the activation states are HAND State, SHAKE State, SELECT State, SWITCH State, GOSTOP State, END State ), hand holding state (CHANCE_HAND State) and deck flipping state (CHANCE_FLIP State). This is to classify states in an optimized form in an incomplete information game.
이때, 상기 손패 상태(HAND State)는, 플레이어가 가지는 내 손패 중에서 어떤 패를 낼지 결정하는 상태로서, 플레이어의 손패 중 어느 하나를 고스톱 게임 그라운드(이하, 바닥)에 내는 액션이 가능한 상태일 수 있다. 예를 들어, 플레이어가 3장의 패를 가지고 있는 경우, 제1 손패를 내는 액션, 제2 손패를 내는 액션 또는 제3 손패를 내는 액션 등이 가능할 수 있다. 즉, 손패 상태에서는 내 손패가 바닥 상에 내어지는 선택 패(공개 패)로 전환되게 할 수 있다. At this time, the hand state (HAND State) is a state in which the player decides which hand to play out of his or her hand, and an action of playing one of the player's hands on the go-stop game ground (hereinafter referred to as the floor) may be possible. . For example, when a player has three hands, an action of playing a first hand, an action of playing a second hand, or an action of playing a third hand may be possible. That is, in the hand mode, my hand can be converted to a selected hand (public hand) played on the floor.
또한, 상기 흔들기 상태(SHAKE State)는, 고스톱 규칙에 따라서 흔들기가 가능한 경우 흔들기를 수행할지 여부를 결정하는 상태로서, 흔들기를 수행하는 액션 또는 흔들기를 수행하지 않는 액션이 가능한 상태일 수 있다. Further, the SHAKE State is a state for determining whether or not to perform shaking when shaking is possible according to the go-stop rule, and may be a state in which an action to perform shaking or an action not to perform shaking is possible.
또한, 상기 먹을패 선택 상태(SELECT State)는, 내 손패 중에서 바닥에 내어지는 선택 패 또는 덱(deck)이 포함하는 패(이하, 덱 패) 중 하나가 뒤집어져 바닥에 내어지는 패에 의하여 바닥에 존재하는 패(이하, 바닥패) 중 적어도 하나를 취득할 수 있는 경우 어떠한 바닥패를 취득할지 결정하는 상태로서, 바닥에 놓인 적어도 하나 이상의 바닥패 중에서 적어도 하나를 선택하여 취득하는 액션이 가능한 상태일 수 있다. In addition, in the selection state (SELECT State), one of the selected hand or deck included in the deck (hereinafter referred to as a deck hand) is overturned and placed on the floor. A state in which it is decided which floor tile to acquire when at least one of the tiles (hereinafter referred to as “floor tiles”) existing on the floor is acquired, and an action of selecting and acquiring at least one of at least one floor tile placed on the floor is possible. can be
또한, 상기 술잔위치 선택 상태(SWITCH State)는, 술잔패(즉, 고스톱 패 중 9월의 열끗 패)를 취득한 상태에서 최초로 날 수 있는 경우 술잔패의 위치를 결정하는 상태로서, 술잔패를 피 그룹에 위치시키는 액션(즉, 술잔패를 쌍피로 사용하는 액션) 또는 술잔패를 열끗 그룹에 위치시키는 액션(즉, 술잔패를 열끗패로 사용하는 액션)이 가능한 상태일 수 있다. In addition, the wine cup position selection state (SWITCH State) is a state in which the location of the wine cup is determined when the wine cup can fly for the first time in a state in which a wine cup (i.e., a bad hand in September among the high-stop hands) is acquired, and the cup is avoided. An action of placing a drinking cup in a group (ie, an action of using a drinking cup as a pair) or an action of placing a drinking cup in a group (ie, an action of using a drinking cup as a pair) may be in a state in which it is possible.
또한, 상기 고스톱 상태(GOSTOP State)는, 점수가 나서 고(go) 또는 스톱(stop)을 선언할 수 있는 경우 고(go)를 할지 또는 스톱(stop)을 할지 결정하는 상태로서, 고(go)를 하는 액션과 스톱(stop)을 하는 액션이 가능한 상태일 수 있다. In addition, the GOSTOP State is a state in which it is determined whether to go or stop when a score can be declared to go or stop. ) and an action to stop may be in a possible state.
또한, 상기 게임종료 상태(END State)는, 일 플레이어가 스톱(stop)을 선언하거나 또는 승자가 없는 나가리 판이 되어서 게임이 종료되는 상태로서, 게임 종료를 수행하는 액션이 가능한 상태일 수 있다. In addition, the game end state (END State) is a state in which the game ends when one player declares a stop or the game ends when there is no winner, and may be a state in which an action to end the game is possible.
또한, 손패 쥐어주기 상태(CHANCE_HAND State)는, 상대 플레이어의 손패에 어떠한 패를 손패로 쥐어줄지 결정하는 상태로서, 해당하는 고스톱 게임에서의 공개 패를 제외한 나머지 비공개 패 중 적어도 하나를 상대 플레이어의 손패로 대체시키는 액션이 가능한 상태일 수 있다. In addition, the hand handing state (CHANCE_HAND State) is a state in which it is determined which hand is to be handed to the opposing player's hand, and at least one of the remaining private hands excluding the open hand in the corresponding GoStop game is placed in the opposing player's hand. It may be in a state in which an action to replace with is possible.
또한, 상기 덱 뒤집기 상태(CHANCE_FLIP State)는, 덱(deck) 패를 뒤집거나 또는 보너스패를 내고 새로운 손패를 가져오는 경우 어떠한 패를 내 손패에 쥐어줄지 결정하는 상태로서, 고스톱 게임에서의 비공개 패 중 어느 하나를 내 손패에 쥐어주는 액션이 가능한 상태이다. In addition, the deck flip state (CHANCE_FLIP State) is a state that determines which hand to put in my hand when a deck hand is overturned or a bonus hand is paid and a new hand is brought. It is a state in which the action of putting one of them into my hand is possible.
한편, 상술된 바와 같은 활성화 상태들은 고스톱 게임 규칙, 활성화 상태 간 연관관계나 컨텍스트(context) 등에 따라서 도 7과 같은 상호 간 전환 관계를 가질 수 있다. Meanwhile, the above-described activation states may have a mutual switching relationship as shown in FIG. 7 according to the go-stop game rule, a relationship between activation states or a context, and the like.
다시 돌아와서, 게임 플레이 서버(300)는 상태 판단부(310)에 고스톱 게임에서 가능한 복수의 활성화 상태 각각에 대한 활성화 여부를 출력하는 복수의 서브 레이어 모듈을 더 포함할 수 있다. 여기서, 활성화 상태 별 서브 레이어 모듈은, 소정의 고스톱판 상태(S)를 입력으로 하여 해당하는 활성화 상태에 대한 활성화 여부를 출력으로 제공할 수 있다. Returning again, the
자세히, 게임 플레이 서버(300)는 트레이닝 데이터 셋의 고스톱판 상태(S)에 기반한 입력 데이터(실시예로, 플레이어의 손패, 플레이어의 먹은패, 상대 플레이어의 먹은패, 바닥에 깔린 패(즉, 공개 패), 플레이어가 승리하기 위해 갱신해야 하는 점수, 상대 플레이어가 승리하기 위해 갱신해야 하는 점수, 플레이어가 손패 상태일 때 선택한 패, 상대 플레이어가 손패 상태일 때 선택한 패, 뻑 유발정보, 보너스 패 인질 종류, 고(go) 실행횟수, 선(先) 플레이어 정보 및/또는 9열끗 피 사용정보 등)를 입력으로 하고, 이를 기초로 고스톱 게임에서 가능한 활성화 상태 별 활성화 여부를 출력하도록 상태 판단부(310)를 학습시킬 수 있다. In detail, the
또한, 게임 플레이 서버(300)는 상기 활성화 상태 별 활성화 여부를 기초로 상기 입력된 고스톱판 상태(S)에 대한 상태 판단정보(C)를 출력하도록 상태 판단부(310)를 학습시킬 수 있다. 즉, 게임 플레이 서버(300)는 상태 판단부(310)가 복수의 활성화 상태 중에서 활성화된 것으로 판단된 즉, 현재 대전 중에 플레이어가 대면하고 있는 활성화 상태를 검출하고, 상기 검출된 활성화 상태를 기초로 해당 고스톱판 상태(S)에 대한 상태 판단정보(C)를 출력하게 할 수 있다. In addition, the
따라서, 본 발명의 일 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 장치는, 고스톱과 같은 불완전 정보 게임의 현재 플레이 상태를 기초로 플레이어가 수행 가능한 적어도 하나의 액션을 결정하는 활성화 상태를 판단할 수 있다. Therefore, an apparatus for providing a deep learning-based incomplete information game service according to an embodiment of the present invention determines an activation state for determining at least one action that a player can perform based on a current play state of an incomplete information game such as GoStop. can
또한, 본 발명의 일 실시예에 따른 딥러닝 기반 고스톱 게임 서비스 방법은 게임 플레이 서버(300)가 수신된 트레이닝 데이터 셋 기반 롤 아웃(Roll-out)을 수행하는 단계(S107)를 포함할 수 있다. In addition, the deep learning-based GoStop game service method according to an embodiment of the present invention may include a step of the
도 8은 본 발명의 실시예에 따른 롤 아웃 기반 트레이닝을 설명하기 위한 개념도이다. 8 is a conceptual diagram illustrating roll-out based training according to an embodiment of the present invention.
자세히, 도 8을 참조하면, 게임 플레이 서버(300)는 수신된 트레이닝 데이터 셋을 기초로 동작 모델을 학습시킬 수 있다. 또한, 게임 플레이 서버(300)는, 상기 학습된 동작 모델을 이용하여 MCTS 기반의 셀프 플레이를 수행할 수 있다. In detail, referring to FIG. 8 , the
자세히, 게임 플레이 서버(300)는 상기 수신된 트레이닝 데이터 셋을 기초로 시뮬레이션부(320), 딥러닝 신경망(340) 및 탐색부(350)를 포함하는 MCTS 모듈(390)을 학습시킬 수 있다. In detail, the
또한, 게임 플레이 서버(300)는 학습된 MCTS 모듈(390)을 포함하는 동작 모델에 기초하여 승률추정값(W) 및/또는 점수추정값(G)을 제공할 수 있다. In addition, the
도 9는 본 발명의 실시예에 따른 승률 및 점수를 추정하는 방법을 설명하기 위한 도면의 일례이다.9 is an example of a diagram for explaining a method of estimating odds and scores according to an embodiment of the present invention.
도 9를 참조하면, 본 발명의 일 실시예에 따른 딥러닝 기반 고스톱 게임 서비스 방법은 게임 플레이 서버(300)가 롤 아웃 기반의 승률추정 트레이닝을 수행하는 단계(S109)를 포함할 수 있다. Referring to FIG. 9 , the deep learning-based go-stop game service method according to an embodiment of the present invention may include a step in which the
자세히, 게임 플레이 서버(300)는 MCTS 모듈(390)을 동작하여 상기 수신된 트레이닝 데이터 셋에 기초한 롤 아웃을 수행할 수 있다. 또한, 게임 플레이 서버(300)는 해당하는 고스톱판 상태(S)에서 가능한 액션들에 대한 승률(즉, 이길 확률)을 추정하도록 동작 모델을 학습시키는 승률추정 트레이닝 수행할 수 있다. In detail, the
즉, 게임 플레이 서버(300)는 소정의 고스톱판 상태(S)를 입력으로 하고, 상기 입력된 고스톱판 상태(S)에서 가능한 액션들에 의한 승률을 추정한 정보인 승률추정값(W)을 출력으로 하도록 동작 모델을 학습시킬 수 있다. That is, the
구체적으로, 게임 플레이 서버(300)는 수신된 트레이닝 데이터 셋을 기초로 동작 모델의 Policy net 및 Value net을 학습시킬 수 있다. 또한, 게임 플레이 서버(300)는, 학습된 동작 모델을 이용하여 소정의 고스톱판 상태(S)를 기초로 수행된 일련의 액션들에 따른 승자를 판단할 수 있다. Specifically, the
이때, 게임 플레이 서버(300)는, 고(go) 또는 스톱(stop)이 선언되지 않은 상태인 경우 롤 아웃을 더 수행한 미래에 고(go) 또는 스톱(stop)에 먼저 도달하는 플레이어를 승자로 판단할 수 있다. At this time, the
또는, 게임 플레이 서버(300)는, 고(go)를 선언한 상태인 경우 롤 아웃을 더 수행한 미래에 고(go) 또는 스톱(stop)에 먼저 도달하는 플레이어를 승자로 판단할 수 있다. 또는, 게임 플레이 서버(300)는, 스톱(stop)을 선언한 상태인 경우 해당하는 스톱을 선언한 플레이어를 승자로 판단할 수 있다. Alternatively, when the
따라서, 본 발명의 일 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 장치는, 고스톱과 같은 불완전 정보 게임에서 승자를 추정하기 위한 명확한 기준을 제공할 수 있다. Therefore, the deep learning-based incomplete information game service providing apparatus according to an embodiment of the present invention can provide a clear criterion for estimating a winner in an incomplete information game such as GoStop.
또한, 게임 플레이 서버(300)는 위와 같이 승자를 판단하며 수행된 복수의 롤 아웃 횟수(즉, 전체 롤 아웃 횟수)와, 각각의 롤 아웃에서 승자로 판단된 횟수를 토대로 승률을 추정할 수 있다. In addition, the
자세히, 실시예로 게임 플레이 서버(300)는 전체 롤 아웃 횟수 대비 각각의 롤 아웃에서 승자로 판단된 횟수 간의 비율(즉, 롤 아웃에서 승자로 판단된 횟수/전체 롤 아웃 횟수)을 산출할 수 있다. 또한, 게임 플레이 서버(300)는 산출된 비율을 토대로 해당하는 고스톱판 상태(S)를 기초로 수행된 일련의 액션들에 따른 승률추정값(W)을 판단할 수 있다. 이때, 상기 승률추정값(W)은 0~1 범위를 가질 수 있다. In detail, in an embodiment, the
즉, 게임 플레이 서버(300)는 위와 같은 방식으로 소정의 고스톱판 상태(S)를 입력으로 하고, 상기 입력된 고스톱판 상태(S)에서 가능한 액션들에 의한 승률을 추정한 정보인 승률추정값(W)을 출력으로 하도록 동작 모델을 학습시킬 수 있다. That is, the
또한, 도 9를 더 참조하면, 본 발명의 일 실시예에 따른 딥러닝 기반 고스톱 게임 서비스 방법은 게임 플레이 서버(300)가 롤 아웃 기반의 점수추정 트레이닝을 수행하는 단계(S111)를 포함할 수 있다. Further, referring to FIG. 9 , the deep learning-based go-stop game service method according to an embodiment of the present invention may include a step (S111) of the
자세히, 게임 플레이 서버(300)는 MCTS 모듈(390)을 동작하여 상기 수신된 트레이닝 데이터 셋에 기초한 롤 아웃을 수행할 수 있다. 또한, 게임 플레이 서버(300)는 해당하는 고스톱판 상태(S)에서 가능한 액션 별로 획득 가능한 점수를 추정하도록 동작 모델을 학습시키는 점수추정 트레이닝을 수행할 수 있다. In detail, the
즉, 게임 플레이 서버(300)는 소정의 고스톱판 상태(S)를 입력으로 하고, 상기 입력된 고스톱판 상태(S)에서 가능한 액션들에 의한 점수를 추정한 정보인 점수추정값(G)을 출력으로 하도록 동작 모델을 학습시킬 수 있다. That is, the
보다 상세히, 게임 플레이 서버(300)는 수신된 트레이닝 데이터 셋에 기초한 롤 아웃을 수행하여, 소정의 고스톱판 상태(S)를 기초로 수행된 일련의 액션들에 따른 점수를 판단할 수 있다. In more detail, the
이때, 게임 플레이 서버(300)는 고(go) 또는 스톱(stop)이 선언되지 않은 상태인 경우 롤 아웃을 더 수행한 미래에 스톱(stop)을 선언하면 획득할 수 있는 점수를 점수추정값(G)으로 결정할 수 있다. At this time, when the
또는, 게임 플레이 서버(300)는 고(go)를 선언한 상태인 경우 롤 아웃을 더 수행한 미래에 획득할 수 있는 점수를 점수추정값(G)으로 결정할 수 있다. 또는, 게임 플레이 서버(300)는 스톱(stop)을 선언한 상태인 경우 해당 스톱을 선언한 시점에 획득할 수 있는 점수를 점수추정값(G)으로 결정할 수 있다. Alternatively, the
따라서, 본 발명의 일 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 장치는, 고스톱과 같은 불완전 정보 게임에서 점수를 추정하기 위한 명확한 기준을 제공할 수 있다. Therefore, the deep learning-based incomplete information game service providing apparatus according to an embodiment of the present invention can provide a clear criterion for estimating scores in incomplete information games such as GoStop.
다만, 일반적으로 고스톱 게임에서의 점수는, '0~1' 범위를 가지는 승률에 대비하여 보다 큰 범위(예컨대, '-1000~1000' 등)를 가지고 있다. 그러므로 게임 플레이 서버(300)는 보다 효과적인 점수추정 트레이닝을 위하여 스코어 클리핑 기법(Score Clipping method) 또는 리그레션 투 클래시피케이션 기법(Regression to Classification method)을 사용하여 점수추정 트레이닝을 수행할 수 있다. 여기서, 스코어 클리핑 기법은 점수추정값(G)의 범위를 소정의 범위(예컨대, '-200~200' 등)로 제한하여 상술된 롤 아웃 기반의 점수추정 트레이닝을 수행하는 방식일 수 있다. 또한 리그레션 투 클래시피케이션 기법은 회귀 모델(Regression model)이 아닌 분류 모델(Classification model)을 기반으로 롤 아웃을 통한 점수추정 트레이닝을 수행하는 방식일 수 있다. 자세히, 리그레션 투 클래시피케이션 기법은 기설정된 가능한 점수추정값(G)을 원-핫 벡터 방식(One-hot Vector method)으로 표현(예컨대, '[-200, -199, …, 199, 200]' 등)하고, 표현된 각각의 점수추정값(G)에 대한 확률분포를 획득하여, 가장 큰 확률값을 가지는 점수추정값(G)을 선택하는 방식으로 상기 롤 아웃 기반의 점수추정 트레이닝을 수행할 수 있다. However, in general, the score in the GoStop game has a larger range (eg, '-1000 to 1000') compared to the winning rate having a range of '0 to 1'. Therefore, the
따라서, 본 발명의 일 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 장치는, 넓은 범위를 대상으로 하는 점수추정 트레이닝을 보다 효율적으로 빠르게 수행할 수 있다. Therefore, the deep learning-based incomplete information game service providing apparatus according to an embodiment of the present invention can more efficiently and quickly perform score estimation training targeting a wide range.
정리하면, 게임 플레이 서버(300)는 위와 같은 방식으로 소정의 트레이닝 데이터 셋에 기반한 롤 아웃을 수행하여 승률추정 트레이닝과 점수추정 트레이닝을 수행할 수 있고, 이를 통해 소정의 고스톱판 상태(S)에 대한 승률추정값(W)과 점수추정값(G)을 출력하도록 동작 모델을 학습시킬 수 있다. In summary, the
따라서, 본 발명의 일 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 장치는, 고스톱과 같은 불완전 정보 게임의 소정의 플레이 상태를 기초로 수행된 일련의 액션들에 의한 승률 및 점수를 추정할 수 있다. Therefore, the deep learning-based incomplete information game service providing apparatus according to an embodiment of the present invention can estimate the winning rate and score by a series of actions performed based on a predetermined play state of an incomplete information game such as GoStop. there is.
또한, 본 발명의 일 실시예에 따른 딥러닝 기반 고스톱 게임 서비스 방법은 게임 플레이 서버(300)가 족보 성취확률 트레이닝을 수행하는 단계(S113)를 포함할 수 있다. In addition, the deep learning-based GoStop game service method according to an embodiment of the present invention may include a step (S113) of the
여기서, 족보는 고스톱 게임에서 특별한 끗수를 얻을 수 있는 특권이 생기는 약(約)에 대한 사전에 약속한 패의 모으는 종류를 의미할 수 있다. 실시예에서 족보는 고스톱 규칙에 따른 고도리, 청단, 홍단 및/또는 초단 등을 포함할 수 있다. Here, the genealogy may mean a type of collection of hands promised in advance for a drug that gives a privilege to obtain a special number of points in the go-stop game. In the embodiment, the genealogy may include Godori, Cheongdan, Hongdan, and/or Chodan according to the GoStop rule.
자세히, 도 8을 더 참조하면, 게임 플레이 서버(300)는 MCTS 모듈(390)을 동작하여 상기 수신된 트레이닝 데이터 셋에 기초한 롤 아웃을 수행할 수 있다. 또한, 게임 플레이 서버(300)는 해당하는 고스톱판 상태(S)에 대한 롤 아웃 대전이 완료되었을 때, 고도리, 청단, 홍단 및/또는 초단 등과 같은 족보를 맞출 확률을 예측하도록 동작 모델을 학습시키는 족보 성취확률 트레이닝을 수행할 수 있다. In detail, further referring to FIG. 8 , the
즉, 게임 플레이 서버(300)는 소정의 고스톱판 상태(S)를 입력으로 하고, 상기 입력된 고스톱판 상태(S)에 기반한 롤 아웃의 결과 소정의 족보(고도리, 청단, 홍단 및/또는 초단 등)를 성취(달성)할 확률을 예측한 정보인 족보 성취확률값(L)을 출력으로 하도록 동작 모델을 학습시킬 수 있다. That is, the
보다 상세히, 게임 플레이 서버(300)는 소정의 고스톱판 상태(S)를 입력 받으면, 상기 입력된 고스톱판 상태(S)에 기반한 롤 아웃을 수행하여 해당 고스톱판 상태(S)로부터 가능한 일련의 액션들의 결과로 대전이 완료되었을 때 고도리를 성취할 확률값, 청단을 성취할 확률값, 홍단을 성취할 확률값 및/또는 초단을 성취할 확률값을 각각 산출하여 출력으로 제공하도록 동작 모델을 학습시킬 수 있다. More specifically, upon receiving a predetermined high-stop board state (S), the
또한, 게임 플레이 서버(300)는 위와 같이 예측된 족보 성취확률값(L)을 상술된 승률추정값(W)과 점수추정값(G)을 추정할 시에 활용할 수 있다. 예를 들어, 게임 플레이 서버(300)는 족보 성취확률값(L)을 기초로 해당 고스톱 대전에서 특별한 끗수를 얻을 확률이 높다고 판단되면 소정의 승률추정값(W) 및/또는 소정의 점수추정값(G)을 증가시킬 수 있다. In addition, the
따라서, 본 발명의 일 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 장치는, 고스톱과 같은 불완전 정보 게임에서 해당 게임 규칙에 따른 족보(실시예에서, 고도리, 청단, 홍단 및/또는 초단 등)를 성취할 확률까지 예측하여, 불완전 정보 게임을 플레이하는 인공지능 컴퓨터의 성능을 향상시킬 수 있다. Therefore, an apparatus for providing a deep learning-based incomplete information game service according to an embodiment of the present invention is a genealogy according to a corresponding game rule in an incomplete information game such as Go-Stop (in an embodiment, Godori, Cheongdan, Hongdan, and/or Chodan, etc.) It is possible to improve the performance of an artificial intelligence computer playing an imperfect information game by predicting the probability of achieving
- 다른 실시예에 따른 게임 플레이 서버 - 딥러닝 기반 고스톱 서비스 제공 - Game play server according to another embodiment - Deep learning-based Go-Stop service provided
도 10은 본 발명의 실시예에 따른 게임 플레이 서버(300)의 동작 모델이 딥러닝 기반의 불완전 정보 게임 서비스를 제공하는 방법을 설명하기 위한 흐름도이고, 도 11은 본 발명의 실시예에 따른 게임 플레이 서버(300)의 동작 모델이 딥러닝 기반의 불완전 정보 게임 서비스를 제공하는 방법을 설명하기 위한 개념도이다.10 is a flow chart illustrating a method for providing a deep learning-based incomplete information game service by an operation model of a
도 10 및 도 11을 참조하면, 본 발명의 일 실시예에 따른 딥러닝 기반 고스톱 게임 서비스는, 게임 플레이 서버(300)가 특정 고스톱판 상태(S)에 대한 최적 액션(A)을 수행하며 고스톱 게임을 플레이하게 할 수 있다. 여기서, 최적 액션(A)은 소정의 고스톱판 상태(S)에서 가장 높은 승률과 점수를 가질 수 있다고 판단된 소정의 액션일 수 있다. 구체적으로, 게임 플레이 서버(300)는 특정 고스톱판 상태(S)를 획득할 수 있다. 또한, 게임 플레이 서버(300)는 획득된 특정 고스톱판 상태(S)에 대한 활성화 상태를 판단한 상태 판단정보(C)와, 상기 특정 고스톱판 상태(S)에 기초한 승률추정값(W) 및/또는 점수추정값(G)을 포함하는 추정정보와, 상기 특정 고스톱판 상태(S)에 기초한 족보 성취확률값(L)을 획득할 수 있다. 또한, 게임 플레이 서버(300)는 획득된 특정 고스톱판 상태(S), 상태 판단정보(C) 및/또는 추정정보를 이용하여 상기 특정 고스톱판 상태(S)에 대한 최적 액션(A)을 결정 및 수행할 수 있다. 10 and 11, in the deep learning-based GoStop game service according to an embodiment of the present invention, the
자세히, 도 10을 더 참조하면, 본 발명의 일 실시예에 따른 딥러닝 기반 고스톱 게임 서비스 방법은 게임 플레이 서버(300)가 고스톱판 상태(S)를 수신하는 단계(S201)를 포함할 수 있다. In detail, further referring to FIG. 10, the deep learning-based go-stop game service method according to an embodiment of the present invention may include a step (S201) of receiving, by the
보다 상세히, 게임 플레이 서버(300)는, 게임 서비스 제공서버(200)와 연동하여 현재 진행 중인 고스톱 게임에 대한 현재 고스톱판 상태(S)를 수신할 수 있다. In more detail, the
여기서, 상기 현재 고스톱판 상태(S)는, 고스톱판에 고스톱 패가 놓여진 상태 등을 포함하는 현재 게임 진행에 따른 데이터들의 집합으로서, 실시예에서 내 손패, 내 먹은패, 바닥에 깔린 패(즉, 공개 패), 승리하기 위해 갱신해야 하는 점수, 내 선택 패 정보, 뻑 유발정보, 보너스 패 인질 종류, 고(go) 실행횟수 및/또는 9열끗 피 사용정보 등을 포함하는 공개 정보들을 포함할 수 있다. 상기 현재 고스톱판 상태(S)는, 상대 손패, 상대 먹은패 및/또는 상대방이 승리하기 위해 갱신해야 하는 점수 등과 같이, 고스톱 게임을 진행하며 공개되지 않는 비공개 정보가 불포함될 수 있다. Here, the current high-stop board state (S) is a set of data according to the current game progress, including the state in which the high-stop hand is placed on the high-stop board, etc. It may contain public information, including open hand), points that need to be updated to win, my selected hand information, ditch trigger information, bonus hand hostage type, go execution count, and/or 9-bit blood usage information. there is. The current go-stop board state (S) may not include private information that is not disclosed while playing the go-stop game, such as the opponent's hand, the opponent's lost hand, and/or the score that the opponent needs to update to win.
또한, 본 발명의 일 실시예에 따른 딥러닝 기반 고스톱 게임 서비스 방법은 게임 플레이 서버(300)가 수신된 고스톱판 상태(S)에 대한 상태 판단정보(C)를 획득하는 단계(S203)를 포함할 수 있다. In addition, the deep learning-based GoStop game service method according to an embodiment of the present invention includes the step of obtaining, by the
여기서, 상태 판단정보(C)는 특정 고스톱판 상태(S)에서 수행 가능한 액션을 검출하기 위한 기준이 되는 요소인 활성화 상태를 판단한 정보일 수 있다. 즉, 활성화 상태는 특정 고스톱판 상태(S)에서 플레이어가 수행 가능한 적어도 하나의 액션을 결정할 수 있다. 여기서, 활성화 상태는 손패 상태(HAND State), 흔들기 상태(SHAKE State), 먹을패 선택 상태(SELECT State), 술잔위치 선택 상태(SWITCH State), 고스톱 상태(GOSTOP State), 게임종료 상태(END State), 손패 쥐어주기 상태(CHANCE_HAND State) 및 덱 뒤집기 상태(CHANCE_FLIP State)를 포함할 수 있다. 이는 불완전 정보 게임에서의 최적화된 형태로 상태들을 구분하기 위한 것이다. Here, the state determination information (C) may be information that determines the activation state, which is a criterion for detecting an action that can be performed in a specific high-stop board state (S). That is, the activation state may determine at least one action that can be performed by the player in the specific high-stop state (S). Here, the activation states are HAND State, SHAKE State, SELECT State, SWITCH State, GOSTOP State, END State ), hand holding state (CHANCE_HAND State) and deck flipping state (CHANCE_FLIP State). This is to classify states in an optimized form in an incomplete information game.
자세히, 게임 플레이 서버(300)는 동작 모델을 이용하여 상기 현재 고스톱판 상태(S)에 대한 상태 판단정보(C)를 획득할 수 있다. 구체적으로, 게임 플레이 서버(300)는 상기 동작 모델의 상태 판단부(310)를 기초로 상기 현재 고스톱판 상태(S)를 입력으로 하고 상기 현재 고스톱판 상태(S)에 대한 상태 판단정보(C)를 출력으로 하는 딥러닝을 수행할 수 있다. 이때, 상기 상태 판단부(310)는 소정의 고스톱판 상태(S)를 입력으로 하고 해당 고스톱판 상태(S)에 대한 상태 판단정보(C)를 출력하도록 상태판단 트레이닝될 수 있다. 이에 대한 자세한 설명은 도 6 및 도 7의 동작 모델에 관한 설명을 따른다. In detail, the
또한, 게임 플레이 서버(300)는 상기 수행된 딥러닝을 통하여 상기 현재 고스톱판 상태(S)에 대한 상태 판단정보(C)를 획득할 수 있다. In addition, the
예를 들면, 게임 플레이 서버(300)는 현재 고스톱판 상태(S)에 대한 활성화 상태가 내 손패 중에서 어떤 패를 낼지 결정하는 손패 상태(HAND State)로서, 내 손패 중 어느 하나를 고스톱판(즉, 바닥)에 내는 액션이 가능한 상태임을 제공하는 상태 판단정보(C)를 획득할 수 있다. For example, the
또한, 본 발명의 일 실시예에 따른 딥러닝 기반 고스톱 게임 서비스 방법은 게임 플레이 서버(300)가 수신된 고스톱판 상태(S)에 대한 추정정보를 획득하는 단계(S205)를 포함할 수 있다. In addition, the deep learning-based go-stop game service method according to an embodiment of the present invention may include a step (S205) of acquiring estimation information on the received go-stop board state (S) by the
여기서, 추정정보는 소정의 고스톱판 상태(S)에 대하여 딥러닝을 기초로 추정된 승률추정값(W) 및/또는 점수추정값(G) 등을 포함하는 정보일 수 있다. 이때, 승률추정값(W)은 소정의 고스톱판 상태(S)에서 가능한 액션들에 의한 승률을 추정한 정보일 수 있다. 점수추정값(G)은 소정의 고스톱판 상태(S)에서 가능한 액션들에 의한 점수를 추정한 정보일 수 있다. Here, the estimation information may be information including an odds ratio estimation value (W) and/or a score estimation value (G) estimated based on deep learning for a predetermined high-stop board state (S). At this time, the odds ratio estimation value (W) may be information obtained by estimating the odds ratio by possible actions in a predetermined high-stop board state (S). The score estimation value (G) may be information obtained by estimating scores by possible actions in a predetermined high-stop board state (S).
자세히, 게임 플레이 서버(300)는 동작 모델을 이용하여 상기 현재 고스톱판 상태(S)에 대한 추정정보를 획득할 수 있다. 보다 상세히, 게임 플레이 서버(300)는 동작 모델의 MCTS 모듈(390)을 기초로 상기 현재 고스톱판 상태(S)를 입력으로 하고 상기 현재 고스톱판 상태(S)에 대한 승률추정값(W) 및/또는 점수추정값(G) 등을 출력으로 하는 딥러닝을 수행할 수 있다. 이때, 상기 MCTS 모듈(390)은 소정의 고스톱판 상태(S)를 입력으로 하고 해당 고스톱판 상태(S)에 대한 추정정보를 출력하도록 트레이닝될 수 있다. 이에 대한 자세한 설명은 도 8 및 도 9의 동작 모델에 관한 설명을 따른다. In detail, the
또한, 게임 플레이 서버(300)는 상기 수행된 딥러닝을 통하여 상기 현재 고스톱판 상태(S)에 대한 추정정보를 획득할 수 있다. In addition, the
또한, 본 발명의 일 실시예에 따른 딥러닝 기반 고스톱 게임 서비스 방법은 게임 플레이 서버(300)가 획득된 고스톱판 상태(S), 상태 판단정보(C) 및 추정정보에 따른 액션(action)을 수행하는 단계(S207)를 포함할 수 있다. In addition, in the deep learning-based GoStop game service method according to an embodiment of the present invention, the
자세히, 게임 플레이 서버(300)는 동작 모델을 이용하여 상기 현재 고스톱판 상태(S), 상태 판단정보(C) 및 추정정보에 기반한 최적 액션(A)을 수행할 수 있다. 여기서, 최적 액션(A)은 소정의 고스톱판 상태(S)에서 가장 높은 승률과 점수를 가질 수 있다고 판단된 소정의 액션일 수 있다. In detail, the
구체적으로, 게임 플레이 서버(300)는 동작 모델의 액션 결정부(330)를 기초로 상기 현재 고스톱판 상태(S)에 대하여 획득된 승률추정값(W) 및/또는 점수추정값(G) 등을 포함하는 추정정보를 입력으로 하고 상기 현재 고스톱판 상태(S)에 대한 최적 액션(A)을 출력으로 하는 딥러닝을 수행할 수 있다. Specifically, the
보다 상세히, 게임 플레이 서버(300)는, 상기 현재 고스톱판 상태(S)와, 상기 현재 고스톱판 상태(S)에 대하여 획득된 상태 판단정보(C)와, 상기 현재 고스톱판 상태(S)에 대하여 획득된 승률추정값(W) 및/또는 점수추정값(G) 등을 포함하는 추정정보에 기초하여, 상기 현재 고스톱판 상태(S)에 대한 최적 액션(A)을 출력으로 하는 딥러닝을 수행할 수 있다. 이때, 상기 액션 결정부(330)는 상술된 바와 같은 추정정보를 입력으로 하고 해당 고스톱판 상태(S)에 대한 최적 액션(A)을 출력하도록 트레이닝될 수 있다. 이에 대한 자세한 설명은 도 4 내지 도 9의 동작 모델에 관한 설명을 따른다. In more detail, the
또한, 게임 플레이 서버(300)는 상기 수행된 딥러닝을 통하여 상기 현재 고스톱판 상태(S)에 대한 최적 액션(A)을 결정하고 이를 수행할 수 있다. In addition, the
이때, 게임 플레이 서버(300)는 몬테 카를로 트리 서치(Monte Carlo Tree Search; MCTS) 알고리즘에 기반하여 상기 최적 액션(A)을 결정할 수 있다. At this time, the
자세히, 게임 플레이 서버(300)는 상태 판단부(310), MCTS 모듈(390) 및 액션 결정부(330)가 상호 연동하는 동작 모델을 이용하여, 상기 현재 고스톱판 상태(S)와, 상기 현재 고스톱판 상태(S)에 대하여 획득된 상태 판단정보(C) 및 추정정보에 기초한 MCTS를 수행할 수 있다. 또한, 게임 플레이 서버(300)는, 수행된 MCTS를 기초로 상기 현재 고스톱판 상태(S)에 대한 활성화 상태와, 상기 활성화 상태에서 수행 가능한 액션에 따른 승률 및 점수와, 상기 현재 고스톱판 상태(S)를 기초로 수행 가능한 일련의 액션들에 따른 족보 성취확률 등을 고려하여, 상기 현재 고스톱판 상태(S)에서 가장 높은 숭률과 점수를 가질 수 있다고 판단되는 최적 액션(A)을 결정할 수 있다. 또한, 게임 플레이 서버(300)는 결정된 최적 액션(A)에 따른 동작을 수행할 수 있다. In detail, the
따라서, 본 발명의 다른 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 장치는, 고스톱과 같은 불완전 정보 게임의 소정의 플레이 상태에 대한 활성화 상태, 소정의 액션에 따른 승률 및/또는 점수를 성취할 확률을 고려하여 게임에서 이기기 위한 최적 액션(A)을 수행할 수 있다. Therefore, an apparatus for providing a deep learning-based incomplete information game service according to another embodiment of the present invention can achieve an activation state for a predetermined play state of an incomplete information game such as GoStop, and a win rate and/or score according to a predetermined action. The optimal action (A) for winning the game can be performed by considering the probability.
한편, 일반적으로 게임 진행에 필요한 일부 정보(실시예에서, 상대 플레이어의 손패와 덱(deck) 패 등)가 비공개 처리되는 불완전 정보 게임(실시예에서, 고스톱 게임)에 대한 MCTS는, 알려지지 않은 정보에 기반하여 유발될 수 있는 행동(실시예에서, 상대 플레이어의 액션)을 추정할 시 랜덤한 확률에 기반하여 행동한다. On the other hand, in general, the MCTS for an incomplete information game (in an embodiment, a go-stop game) in which some information necessary for game progress (in an embodiment, an opponent's hand and a deck hand, etc.) is kept private, is unknown information When estimating an action that can be triggered based on (in the embodiment, an action of an opponent player), the action is based on a random probability.
자세히, 기존의 랜덤 방식으로 고스톱 게임에 대한 MCTS를 수행할 시 상대 플레이어의 액션(즉, 찬스 노드(chance node)의 행동)을 추정하는 경우, 상대 플레이어에게 가능한 모든 액션들 중 하나의 액션을 소정의 알고리즘(예컨대, 랜덤 폴리시(random policy) 등)을 따라서 랜덤하게 선택하고, 랜덤하게 선택된 상대 플레이어의 액션이 상대 플레이어에 의해 수행되는 것으로 간주하며 MCTS를 진행할 수 있다. In detail, in the case of estimating the action of the opposing player (ie, the action of the chance node) when performing the MCTS for the go-stop game in the existing random method, one action among all possible actions for the opposing player is determined. MCTS may be performed by randomly selecting an action according to an algorithm (eg, random policy, etc.) and considering that the randomly selected action of the opposing player is performed by the opposing player.
도 12는 본 발명의 실시예에 따른 불완전 정보 게임 서비스의 MCTS에서 상대 플레이어의 액션을 추정하는 방법을 설명하기 위한 도면의 일례이다. 12 is an example of a diagram for explaining a method of estimating an action of an opponent player in MCTS of an incomplete information game service according to an embodiment of the present invention.
예시적으로, 도 12의 (a)를 참조하면, 기존의 랜덤 방식으로 고스톱 게임에 대한 MCTS를 수행할 시, 상대 플레이어의 손패가 2장이고 덱 패의 수가 3장일 때 상대 플레이어의 액션을 추정하는 경우, 상대 플레이어에게 가능한 모든 액션들 중 랜덤하게 선택된 하나의 액션 예컨대, 상대 플레이어가 손패 상태(HAND State)이고, 해당하는 고스톱 게임 상에서 아직 공개되지 않은 모든 비공개 패(즉, 상기 상대 플레이어의 손패 2장과 상기 덱 패 3장을 포함하는 5장의 패) 중에서 랜덤한 확률로 선택되는 하나의 패를 상대 플레이어가 선택하여 바닥 상에 내는 액션을 상대 플레이어의 액션으로 결정하며 시뮬레이션을 수행할 수 있다. Illustratively, referring to (a) of FIG. 12, when performing MCTS for a go-stop game in the conventional random method, when the opponent's hand is 2 and the number of deck hands is 3, the action of the opponent is estimated In this case, one randomly selected action among all possible actions for the opposing player. For example, the opposing player is in the HAND state, and all private hands that have not yet been revealed in the corresponding GoStop game (i.e., the opposing player's hand) 2 cards and 5 cards including 3 deck hands), the opponent player selects one hand selected at random probability, and the action on the floor is determined as the action of the opponent player, and the simulation can be performed .
그러나 실질적으로 상대 플레이어의 액션은 상술된 바와 같이 랜덤한 방식으로 결정되지 않으므로, 위와 같은 종래의 랜덤 방식에 기반하여 MCTS를 수행하면 그 성능에 대한 신뢰성이 저하될 수 있다. However, since the action of the opponent player is not substantially determined in a random manner as described above, performance reliability of the MCTS may deteriorate if the MCTS is performed based on the conventional random method as described above.
그리하여 본 발명의 다른 실시예에 따른 게임 플레이 서버(300)는, 게임 진행과 관련된 일부 정보(실시예에서, 상대 플레이어의 손패와 덱(deck) 패 등)가 비공개 처리되는 고스톱 게임에 대한 MCTS를 수행할 시, 알려지지 않은 정보에 기반하는 상대 플레이어의 액션을 딥러닝을 기초로 추정하는 딥러닝 기반의 상대액션 추정 시뮬레이션(이하, 상대액션 추정 시뮬레이션)을 수행할 수 있다. Therefore, the
즉, 본 발명의 다른 실시예에 따른 게임 플레이 서버(300)는 고스톱과 같은 불완전 정보 게임에 대한 MCTS에서 상대 플레이어의 액션을 딥러닝을 이용하여 추정하는 상대액션 추정 시뮬레이션을 수행할 수 있다. That is, the
자세히, 게임 플레이 서버(300)는 고스톱 게임 서비스에서 MCTS를 수행할 시 상대 플레이어의 액션을 추정하는 경우, 먼저 상대 플레이어에 대한 활성화 상태를 판단할 수 있다. 예를 들면, 게임 플레이 서버(300)는 실시예에 따른 고스톱 게임에서 가능한 복수의 활성화 상태(실시예에서, 손패 상태(HAND State), 흔들기 상태(SHAKE State), 먹을패 선택 상태(SELECT State), 술잔위치 선택 상태(SWITCH State), 고스톱 상태(GOSTOP State), 게임종료 상태(END State), 손패 쥐어주기 상태(CHANCE_HAND State) 및 덱 뒤집기 상태(CHANCE_FLIP State)) 중 하나의 상태인 상대 플레이어의 활성화 상태를 판단할 수 있다. In detail, the
또한, 도 12의 (b)를 참조하면, 실시예로 게임 플레이 서버(300)는 결정된 상대 플레이어의 활성화 상태가 손패 상태(HAND State)인 경우, 상대 플레이어의 손패 개수를 산출할 수 있다. 예를 들면, 게임 플레이 서버(300)는 상대 플레이어가 손패를 2장 가지고 있는 경우 해당 상대 플레이어의 손패 개수를 2개로 산출할 수 있다. 이때, 고스톱 게임의 특성 상 상기 상대 플레이어의 손패는 해당하는 패의 정보가 공개되지 않는 비공개 패일 수 있다. Also, referring to (b) of FIG. 12 , in an embodiment, the
또한, 게임 플레이 서버(300)는 고스톱 게임의 전체 패 중에서 공개 패를 제외한 비공개 패 즉, 상대 플레이어의 손패와 덱 패 중 어느 하나의 패로 구분되는 적어도 하나 이상의 비공개 패를 검출할 수 있다. 이때, 게임 플레이 서버(300)는 상기 검출된 비공개 패 각각에 해당하는 패의 정보(즉, 어떠한 패인지를 나타내는 정보)를 해당하는 비공개 패 각각에 매칭하여 함께 획득할 수 있다. 즉, 불완전 정보 게임인 고스톱 게임의 특성 상 해당하는 고스톱 게임에서 아직 공개되지 않은 비공개 패들이 어떠한 패들인지는 판단할 수 있으나, 해당하는 비공개 패들 중에서 어떠한 패가 상대 플레이어의 손패에 속하는지는 비공개일 수 있다. In addition, the
또한, 게임 플레이 서버(300)는 검출된 적어도 하나 이상의 비공개 패 중에서 상기 산출된 상대 플레이어의 손패 개수만큼을 랜덤하게 추출할 수 있다. 예를 들면, 게임 플레이 서버(300)는 상대 플레이어의 손패 개수를 2개로 산출한 경우 상기 검출된 적어도 하나 이상의 비공개 패 중에서 랜덤하게 2개의 패를 선택해 추출할 수 있다. In addition, the
또한, 게임 플레이 서버(300)는 추출된 비공개 패(이하, 추출 패)에 매칭되는 패의 정보를 기초로 해당하는 적어도 하나 이상의 추출 패가 어떠한 패인지를 감지할 수 있다. 예를 들면, 게임 플레이 서버(300)는 랜덤하게 추출된 제1 추출 패와 제2 추출 패 각각에 매칭된 패의 정보를 기초로 상기 제1 추출 패와 제2 추출 패 각각이 어떠한 패인지 판단할 수 있다. In addition, the
또한, 게임 플레이 서버(300)는 위와 같이 어떠한 패인지가 공개된 적어도 하나 이상의 추출 패 중에서, 어떠한 추출 패가 더 높은 승률과 점수를 가질 수 있는 최선의 패인지를 딥러닝을 통해 결정할 수 있다. In addition, the
자세히, 게임 플레이 서버(300)는 해당하는 MCTS를 기초로, 상대 플레이어 측에서 상기 추출 패 각각에 기반한 액션을 수행해보도록 하는 셀프 플레이(self-play)를 할 수 있다. 예를 들어, 게임 플레이 서버(300)는 제1 추출 패를 내는 액션을 상대 플레이어의 액션으로 하는 셀프 플레이와, 제2 추출 패를 내는 액션을 상대 플레이어의 액션으로 하는 셀프 플레이를 수행할 수 있다. In detail, the
또한, 게임 플레이 서버(300)는 상기 추출 패 각각에 대한 셀프 플레이 수행의 결과로, 해당하는 추출 패 별로 추정되는 승률추정값(W) 및/또는 점수추정값(G)을 획득할 수 있다. In addition, the
또한, 게임 플레이 서버(300)는 획득된 추출 패 별 승률추정값(W) 및/또는 점수추정값(G)을 기초로 해당하는 적어도 하나 이상의 추출 패 중에서 어떠한 추출 패를 상대 플레이어의 액션에 적용할지 결정할 수 있다. 실시예에서, 게임 플레이 서버(300)는 셀프 플레이의 결과 더 높은 승률추정값(W) 및/또는 점수추정값(G)을 가지는 추출 패를 상대 플레이어의 액션에 적용할 추출 패로 결정할 수 있다. 이때, 실시예에 따라서 게임 플레이 서버(300)는 MCTS 알고리즘을 실행할 시 softmax temperature 방식을 적용하여 그 정확성을 향상시킬 수 있다. In addition, the
그리하여 게임 플레이 서버(300)는, 해당 고스톱 게임에서 상대 플레이어의 손패 개수만큼 추출된 적어도 하나 이상의 추출 패 중에서, 더 높은 승률과 점수를 가질 수 있는 최선의 패로 판단되는 추출 패를 딥러닝을 통해 결정할 수 있다. Thus, the
또한, 게임 플레이 서버(300)는 상기 최선의 패로 결정된 추출 패를 내는 액션을 상대 플레이어의 액션으로 결정할 수 있다. In addition, the
따라서, 본 발명의 다른 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 장치는, 게임 진행과 관련된 일부 정보(실시예에서, 상대 플레이어의 손패와 덱(deck) 패 등)가 비공개 처리되는 고스톱 게임과 같은 불완전 정보 게임에 대한 MCTS를 수행할 시, 알려지지 않은 정보에 기반하는 상대 플레이어의 액션을 딥러닝을 기초로 추정할 수 있다. Therefore, an apparatus for providing a game service based on deep learning based on incomplete information according to another embodiment of the present invention is a go-stop game in which some information related to game progress (in an embodiment, an opponent's hand and deck hand, etc.) is confidentially processed. When MCTS is performed for an incomplete information game such as , an action of an opponent player based on unknown information can be estimated based on deep learning.
한편, 일반적으로 상술된 MCTS는 효율적으로 노드(node)를 탐색하기 위하여 PUCT라는 Policy Network 및 Value Network를 사용한 UCT 방식을 주로 사용하고 있다. 즉, 기존의 MCTS는 승률추정값(W)에 매우 의존하는 방식인 UCT 방식을 일반적으로 사용하고 있다. 다만, 고스톱과 같은 게임에서는 승률 이외에도 점수와 같은 요소가 매우 중요한 지표로 작용한다. On the other hand, in general, the above-described MCTS mainly uses a UCT method using a policy network called PUCT and a value network in order to efficiently search for nodes. That is, the existing MCTS generally uses the UCT method, which is a method that is highly dependent on the odds ratio estimation value (W). However, in games such as Go-Stop, factors such as scores in addition to the win rate act as very important indicators.
그리하여 본 발명의 다른 실시예에 따른 게임 플레이 서버(300)는, 승률추정값(W) 뿐만 아니라 점수추정값(G)까지 고려하여 MCTS를 수행하는 새로운 방식의 UCT를 제공하고자 한다. Thus, the
자세히, 게임 플레이 서버(300)는 UCT(Upper Confidence Bound 1 applied to Trees) 알고리즘에 기반하여 최적 액션(A)을 출력하는 MCTS를 수행할 수 있다. 여기서, 상기 UCT 알고리즘은 MCTS와 UCB1(Upper Confidence Bound 1)가 결합된 것으로서 공지된 알고리즘일 수 있으며, 하기와 같은 수식을 따른다. In detail, the
[수식 1][Formula 1]
수식 1에서, w(winrate)는 승률추정값(W)일 수 있고, b는 자식 노드를 나타낼 수 있으며, N은 방문 횟수를 나타낼 수 있고, C는 가중치로서 1로 설정될 수 있다. In
이때, 게임 플레이 서버(300)는 위와 같은 기존의 UCT 알고리즘 상에 점수추정값(G) 지표를 더 적용하여 상기 UCT 알고리즘을 변형한 G-UCT 알고리즘을 구현할 수 있다. 본 발명의 다른 실시예에 따른 G-UCT 알고리즘은 하기와 같은 수식을 따른다.In this case, the
[수식 2][Formula 2]
구체적으로, 게임 플레이 서버(300)는 기존의 UCT 알고리즘(수식 1)에 본 발명의 다른 실시예에 따른 점수항을 추가할 수 있다. 즉, 상기 점수항은 하기와 같은 수식을 따른다. Specifically, the
[수식 3][Formula 3]
수식 2 및 수식 3에서, 상기 점수항의 score는 점수추정값(G)을 의미할 수 있고, const는 소정의 상수를 의미할 수 있으며, n은 시뮬레이션 횟수를 의미할 수 있다. In
즉, 게임 플레이 서버(300)는 위와 같은 점수항을 기존의 UCT에 추가한 새로운 형식의 알고리즘을 이용하여 소정의 고스톱판 상태(S)에 대한 시뮬레이션을 수행할 수 있다. That is, the
이때, 상기 점수항이 포함하는 시그모이드(sigmoid) 함수는, 실시예에 따른 G-UCT의 승률추정값(W)과 점수추정값(G)에 대한 정규화(normalization)를 구현하기 위함일 수 있다. 자세히, 보편적으로 고스톱 게임에서의 점수의 분포는 승률는 달리 그 범위가 보다 광범위할 수 있다. 예를 들어, 승률추정값(W)은 대게 '0~1' 사이의 소정의 값으로 출력되는 반면, 점수추정값(G)은 이론적으로 '-1000~1000' 사이의 소정의 값으로 출력될 수 있다. In this case, the sigmoid function included in the score term may be used to implement normalization of the odds ratio estimation value (W) and the score estimation value (G) of the G-UCT according to the embodiment. In detail, generally, the distribution of scores in a go-stop game may have a wider range than the odds. For example, while the odds estimation value (W) is usually output as a predetermined value between '0 and 1', the score estimate (G) can be theoretically output as a predetermined value between '-1000 and 1000' .
도 13은 본 발명의 실시예에 따른 G-UCT 알고리즘에서 사용하는 시그모이드 함수(Sigmoid function)를 나타내는 도면의 일례이다. 13 is an example of a diagram showing a sigmoid function used in the G-UCT algorithm according to an embodiment of the present invention.
그리하여, 도 13을 참조하면, 본 발명의 다른 실시예에 따른 게임 플레이 서버(300)는 G-UCT 수행 시의 점수추정값(G)과 승률추정값(W) 간의 정규화(normalization)를 수행하기 위하여, 상기 G-UCT에서 점수추정값(G)을 적용하는 점수항에 시그모이드 함수를 포함할 수 있다. 즉, 게임 플레이 서버(300)는 점수항에 시그모이드 함수를 포함하여 점수추정값(G)의 분포를 '0~1' 사이로 조정하는 스케일링(scaling)을 수행하는 정규화를 구현할 수 있다. Thus, referring to FIG. 13, the
또한, 이때 게임 플레이 서버(300)는, 시그모이드 함수를 포함하는 점수항을 적용하여 G-UCT 알고리즘(수식 2)을 구현하는 경우, 소정의 임계치 이상으로 크거나 작은 점수추정값(G)(예컨대, 4보다 크거나 또는 -4보다 작은 점수추정값 등)이 0(또는 0에 가까운 값) 또는 1(또는 1에 가까운 값)로 수렴하는 상황을 방지하기 위하여, 상기 점수추정값(G)의 범위를 소정의 범위 이내로 조정하는 소정의 상수(const)를 상기 점수항에 더 포함할 수 있다. In addition, at this time, when the
그리하여 게임 플레이 서버(300)는, 위와 같이 구성되는 점수항을 기존의 UCT 알고리즘(수식 1) 상에 추가한 G-UCT 알고리즘(수식 2)을 구현할 수 있다. 또한, 게임 플레이 서버(300)는 구현된 G-UCT 알고리즘(수식 2)에 기반한 딥러닝 수행하여 고스톱 게임에서의 소정의 액션에 따른 승률뿐만 아니라 획득 가능한 점수를 더욱 소상하게 고려하여 소정의 현재 고스톱판 상태(S)에 대한 최적 액션(A)을 결정할 수 있다. Thus, the
따라서, 본 발명의 다른 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 장치는, 고스톱 게임과 같은 불완전 정보 게임에 보다 최적화된 형태로 개선된 UCT 알고리즘(즉, 실시예에 따른 G-UCT 알고리즘)을 이용하여 현재 플레이 상태에 따른 최선의 액션을 결정할 수 있다. Therefore, an apparatus for providing a deep learning-based incomplete information game service according to another embodiment of the present invention is an improved UCT algorithm (ie, the G-UCT algorithm according to the embodiment) in a form more optimized for an incomplete information game such as a go-stop game. can be used to determine the best action according to the current play state.
이상, 본 발명의 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치는, 불완전 정보 게임에서 현재 플레이 상태에 기초한 상태 판단정보(C), 승률추정값(W) 및/또는 점수추정값(G) 중 적어도 하나를 이용하여 최선의 액션(action)을 수행할 수 있다. As described above, the deep learning-based incomplete information game service providing method and apparatus according to an embodiment of the present invention provide state determination information (C) based on the current play state in an incomplete information game, an odds estimate (W), and/or a score estimate ( At least one of G) can be used to perform the best action.
또한, 본 발명의 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치는, 상대 플레이어의 패와 덱(deck)이 포함하는 패 등과 같은 일부 정보를 비공개하는 불완전 정보 게임에서의 상대 플레이어의 액션을 무작위 랜덤 방식이 아닌 소정의 알고리즘에 따른 딥러닝을 기반으로 추정할 수 있다. In addition, a method and apparatus for providing a game service based on deep learning based on incomplete information according to an embodiment of the present invention discloses an opponent player in an incomplete information game in which some information such as an opponent's hand and a hand included in a deck is not disclosed. The action of can be estimated based on deep learning according to a predetermined algorithm rather than a random random method.
또한, 본 발명의 실시예에 따른 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치는, 불완전 정보 게임에 보다 최적화된 형태로 개선된 UCT 알고리즘을 이용하여 현재 플레이 상태에 따른 최선의 액션을 결정할 수 있다. In addition, the deep learning-based incomplete information game service providing method and apparatus according to an embodiment of the present invention can determine the best action according to the current play state using an improved UCT algorithm in a form more optimized for incomplete information games. there is.
또한, 이상에서 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.In addition, the embodiments according to the present invention described above may be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer readable recording medium. The computer readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the computer-readable recording medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks. medium), and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter or the like as well as machine language codes generated by a compiler. A hardware device may be modified with one or more software modules to perform processing according to the present invention and vice versa.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.Specific implementations described in the present invention are examples and do not limit the scope of the present invention in any way. For brevity of the specification, description of conventional electronic components, control systems, software, and other functional aspects of the systems may be omitted. In addition, the connection of lines or connecting members between the components shown in the drawings are examples of functional connections and / or physical or circuit connections, which can be replaced in actual devices or additional various functional connections, physical connection, or circuit connections. In addition, if there is no specific reference such as “essential” or “important”, it may not be a component necessarily required for the application of the present invention.
또한 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술할 특허청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허청구범위에 의해 정하여져야만 할 것이다.In addition, the detailed description of the present invention described has been described with reference to preferred embodiments of the present invention, but those skilled in the art or those having ordinary knowledge in the art will find the spirit of the present invention described in the claims to be described later. And it will be understood that the present invention can be variously modified and changed without departing from the technical scope. Therefore, the technical scope of the present invention is not limited to the contents described in the detailed description of the specification, but should be defined by the claims.
Claims (10)
복수의 액션(action) 별 고스톱판 상태를 포함하는 트레이닝 데이터 셋(Training data set)을 획득하는 단계; 및
상기 획득된 트레이닝 데이터 셋을 기초로 상기 불완전 정보 서비스의 딥러닝 모델을 학습시키는 단계를 포함하고,
상기 딥러닝 모델을 학습시키는 단계는,
상기 트레이닝 데이터 셋을 기초로 상태판단 트레이닝을 수행하는 단계와,
상기 트레이닝 데이터 셋을 기초로 승률추정 트레이닝을 수행하는 단계와,
상기 트레이닝 데이터 셋을 기초로 점수추정 트레이닝을 수행하는 단계와,
상기 트레이닝 데이터 셋을 기초로 족보 성취확률 트레이닝을 수행하는 단계 중 적어도 하나의 단계를 포함하는
불완전 정보 게임 서비스 제공 방법.A method of providing a deep learning-based incomplete information game service through a user terminal in a game play server,
Obtaining a training data set including a high-stop plate state for each of a plurality of actions; and
Learning a deep learning model of the incomplete information service based on the obtained training data set;
The step of learning the deep learning model,
performing state judgment training based on the training data set;
Performing odds estimation training based on the training data set;
performing score estimation training based on the training data set;
Including at least one step of performing genealogy achievement probability training based on the training data set
Imperfect information How to provide game services.
상기 상태판단 트레이닝은,
제1 고스톱판 상태를 입력으로 하고, 상기 입력된 제1 고스톱판 상태에서 수행 가능한 적어도 하나의 액션을 판단한 정보인 상태 판단정보를 출력하도록 상기 딥러닝 모델을 학습시키는
불완전 정보 게임 서비스 제공 방법.According to claim 1,
The state judgment training,
Learning the deep learning model to output state determination information, which is information obtained by determining at least one action that can be performed in the first high stop board state as an input and the input first high stop board state
Imperfect information How to provide game services.
상기 상태 판단정보는,
상기 제1 고스톱판 상태에서 수행 가능한 적어도 하나의 액션을 검출하는 기준 요소인 활성화 상태를 판단한 정보인
불완전 정보 게임 서비스 제공 방법.According to claim 2,
The state determination information,
Information that determines the activation state, which is a reference element for detecting at least one action that can be performed in the first high-stop board state
Imperfect information How to provide game services.
상기 활성화 상태는,
손패 상태(HAND State), 흔들기 상태(SHAKE State), 먹을패 선택 상태(SELECT State), 술잔위치 선택 상태(SWITCH State), 고스톱 상태(GOSTOP State), 게임종료 상태(END State), 손패 쥐어주기 상태(CHANCE_HAND State) 및 덱 뒤집기 상태(CHANCE_FLIP State) 중 적어도 하나 이상의 상태를 포함하는
불완전 정보 게임 서비스 제공 방법.According to claim 3,
The activation state is
HAND State, SHAKE State, SELECT State, SWITCH State, GOSTOP State, END State, hand holding state (CHANCE_HAND State) and deck flip state (CHANCE_FLIP State), including at least one state
Imperfect information How to provide game services.
상기 승률추정 트레이닝은,
상기 트레이닝 데이터 셋을 이용한 롤 아웃(Roll-out)을 기초로 제1 고스톱판 상태를 입력으로 하고, 상기 입력된 제1 고스톱판 상태에서 가능한 액션들에 의한 승률을 추정한 정보인 승률추정값을 출력하도록 상기 딥러닝 모델을 학습시키는
불완전 정보 게임 서비스 제공 방법.According to claim 1,
The odds estimation training,
Based on the roll-out using the training data set, the first high-stop board state is taken as an input, and the win rate estimation value, which is information estimating the win rate by actions possible in the input first high-stop board state, is output Training the deep learning model to
Imperfect information How to provide game services.
상기 점수추정 트레이닝은,
상기 트레이닝 데이터 셋을 이용한 롤 아웃(Roll-out)을 기초로 제1 고스톱판 상태를 입력으로 하고, 상기 입력된 제1 고스톱판 상태에서 가능한 액션들에 의한 점수를 추정한 정보인 점수추정값을 출력하도록 상기 딥러닝 모델을 학습시키는
불완전 정보 게임 서비스 제공 방법.According to claim 1,
The score estimation training,
Based on the roll-out using the training data set, the first high-stop board state is taken as an input, and a score estimation value, which is information obtained by estimating scores by possible actions in the input first high-stop board state, is output. Training the deep learning model to
Imperfect information How to provide game services.
상기 족보 성취확률 트레이닝은,
제1 고스톱판 상태를 입력으로 하고, 상기 입력된 제1 고스톱판 상태에 기반한 롤 아웃 종료 시 소정의 족보를 성취할 확률을 예측한 정보인 족보 성취확률값을 출력하도록 상기 딥러닝 모델을 학습시키는
불완전 정보 게임 서비스 제공 방법.According to claim 1,
The genealogy achievement probability training,
Training the deep learning model to output a genealogy achievement probability value, which is information predicting the probability of achieving a predetermined genealogy at the end of roll-out based on the first high-stop board state as an input and the input first high-stop board state
Imperfect information How to provide game services.
상기 고스톱판 상태는,
플레이어의 손패, 플레이어의 먹은패, 상대 플레이어의 먹은패, 바닥에 깔린 패, 플레이어가 승리하기 위해 갱신해야 하는 점수, 상대 플레이어가 승리하기 위해 갱신해야 하는 점수, 플레이어의 선택 패, 상대 플레이어의 선택 패, 보너스 패 인질 종류, 고(go) 실행횟수, 선(先) 플레이어 정보, 뻑 유발 정보 및 9열끗 피 사용정보 중 적어도 일부를 포함하는
불완전 정보 게임 서비스 제공 방법.According to claim 1,
The high-stop plate state,
Player's hand, player's lost hand, opponent's lost hand, floored hand, number of points a player needs to update to win, number of points opponent needs to update to win, player's choice hand, opponent's choice Hand, bonus hand, hostage type, go execution count, previous player information, ditch trigger information, and at least part of 9 blood usage information
Imperfect information How to provide game services.
딥러닝 모델을 저장하는 메모리; 및
상기 수신된 트레이닝 데이터 셋을 기초로 상기 딥러닝 모델에 대한 상태판단 트레이닝, 승률추정 트레이닝, 점수추정 트레이닝 및 족보 성취확률 트레이닝 중 적어도 하나의 트레이닝을 수행하는 프로세서;를 포함하는 것을 특징으로 하는
불완전 정보 게임 서비스 제공 장치.a communication unit for receiving a training data set;
memory for storing deep learning models; and
A processor for performing at least one of state judgment training, odds estimation training, score estimation training, and genealogy achievement probability training for the deep learning model based on the received training data set.
An incomplete information game service providing device.
상기 프로세서는,
상기 트레이닝을 수행하여 상기 딥러닝 모델이 제1 고스톱판 상태에 대한 상태 판단정보, 승률추정값, 점수추정값 및 족보 성취확률값 중 적어도 하나를 출력하도록 학습시키는
불완전 정보 게임 서비스 제공 장치.According to claim 9,
the processor,
By performing the training, the deep learning model learns to output at least one of state judgment information, odds estimate, score estimate, and genealogy achievement probability value for the first high-stop board state
An incomplete information game service providing device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210072949A KR102628188B1 (en) | 2021-06-04 | 2021-06-04 | Method and device for providing service that deep learning-based imperfect information game |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210072949A KR102628188B1 (en) | 2021-06-04 | 2021-06-04 | Method and device for providing service that deep learning-based imperfect information game |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220164323A true KR20220164323A (en) | 2022-12-13 |
KR102628188B1 KR102628188B1 (en) | 2024-01-23 |
Family
ID=84439071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210072949A KR102628188B1 (en) | 2021-06-04 | 2021-06-04 | Method and device for providing service that deep learning-based imperfect information game |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102628188B1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070029859A (en) * | 2005-09-09 | 2007-03-15 | 엔에이치엔(주) | Method and system for controling playing of card game artificial intelligence |
US20140315625A1 (en) | 2006-10-24 | 2014-10-23 | Brain Games, L.C. | System and method for conducting a game including a computer-controlled player |
KR101848630B1 (en) * | 2017-09-06 | 2018-04-13 | 주식회사 유비플러스 | Diagnosis and management system based on traditional card game |
KR20210016749A (en) * | 2019-08-05 | 2021-02-17 | 엔에이치엔 주식회사 | Deep-learning based baduk game service method and apparatus thereof |
-
2021
- 2021-06-04 KR KR1020210072949A patent/KR102628188B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070029859A (en) * | 2005-09-09 | 2007-03-15 | 엔에이치엔(주) | Method and system for controling playing of card game artificial intelligence |
US20140315625A1 (en) | 2006-10-24 | 2014-10-23 | Brain Games, L.C. | System and method for conducting a game including a computer-controlled player |
KR101848630B1 (en) * | 2017-09-06 | 2018-04-13 | 주식회사 유비플러스 | Diagnosis and management system based on traditional card game |
KR20210016749A (en) * | 2019-08-05 | 2021-02-17 | 엔에이치엔 주식회사 | Deep-learning based baduk game service method and apparatus thereof |
Non-Patent Citations (2)
Title |
---|
‘똑똑한 고스톱 AI 만들기’, 유투브 동영상 게시물, (2020.12.15.), <https://youtu.be/1xlYzKgZ0Kc>* * |
‘모바일 맞고 게임8-1(간단한 A.I. 첨가 #1 - 기본 게임 진행 기능 구현)’, 인터넷 티스토리 게시글, (2012.12.27.), <https://yiosys.tistory.com/entry/모바일-맞고-게임81간단한-AI-첨가-1-기본-게임-진행-기능-구현>* * |
Also Published As
Publication number | Publication date |
---|---|
KR102628188B1 (en) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7159458B2 (en) | Method, apparatus, device and computer program for scheduling virtual objects in a virtual environment | |
Wender et al. | Applying reinforcement learning to small scale combat in the real-time strategy game StarCraft: Broodwar | |
CN112169339A (en) | Customized model for simulating player game play in video game | |
JP7399277B2 (en) | Information processing methods, devices, computer programs and electronic devices | |
Nielsen et al. | General video game evaluation using relative algorithm performance profiles | |
Bharathi et al. | Knowledge discovery of game design features by mining user-generated feedback | |
Cazenave et al. | Polygames: Improved zero learning | |
KR102299140B1 (en) | Method and device for baduk game service based on deep-learning | |
JP7051946B2 (en) | Go game service system and service method based on deep learning | |
KR102299138B1 (en) | Deep-learning based baduk game service method and apparatus thereof | |
Simoes et al. | Competitive deep reinforcement learning over a pokémon battling simulator | |
US11738271B2 (en) | Method and apparatus for predicting game difficulty by using deep-learning based game play server | |
KR102299135B1 (en) | Method and device that providing deep-running-based baduk game service | |
Liaw et al. | Evolving a team in a first-person shooter game by using a genetic algorithm | |
KR20220164323A (en) | Method and device for providing service that deep learning-based imperfect information game | |
KR102595660B1 (en) | Method and device for providing service that deep learning-based imperfect information game | |
US20120088586A1 (en) | Linkable and extensible virtual characters | |
KR102299141B1 (en) | Method and device for providing deep-running-based baduk game service | |
KR102595656B1 (en) | Deep-learning based jang-gi game service method and apparatus thereof | |
KR102292046B1 (en) | Deep-learning based baduk game service method and apparatus thereof | |
Nguyen et al. | Heuristic search exploiting non-additive and unit properties for RTS-game unit micromanagement | |
Jakhon et al. | Agent grouping recommendation method in edge computing | |
KR20240030680A (en) | Method and system for training and playing of playing-yut ai based on deep learning | |
KR102591226B1 (en) | Method and device for preventing long-ladder of deep learning-based go game service | |
CN117899487B (en) | Data processing method, device, equipment, storage medium and program product |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |