KR20210008757A - Method and device for baduk game service based on deep-learning - Google Patents
Method and device for baduk game service based on deep-learning Download PDFInfo
- Publication number
- KR20210008757A KR20210008757A KR1020190085337A KR20190085337A KR20210008757A KR 20210008757 A KR20210008757 A KR 20210008757A KR 1020190085337 A KR1020190085337 A KR 1020190085337A KR 20190085337 A KR20190085337 A KR 20190085337A KR 20210008757 A KR20210008757 A KR 20210008757A
- Authority
- KR
- South Korea
- Prior art keywords
- ethos
- determination
- model
- information
- situation
- Prior art date
Links
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/80—Special adaptations for executing a specific game genre or game mode
- A63F13/822—Strategy games; Role-playing games
-
- 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
-
- 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
- A63F3/00—Board games; Raffle games
- A63F3/02—Chess; Similar board games
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
본 발명은 딥러닝에 기반하여 바둑 게임 서비스를 제공하는 방법 및 그 장치에 관한 것이다. 보다 상세하게는, 딥러닝 신경망을 기반으로 바둑 형세를 판단하여 바둑 게임 플레이 시의 특정 기질이나 방식을 나타내는 기풍을 활용하는 바둑 게임 서비스 제공 방법 및 그 장치에 관한 것이다. The present invention relates to a method and apparatus for providing a Go game service based on deep learning. In more detail, the present invention relates to a method and apparatus for providing a Go game service using an ethos representing a specific temperament or method when playing a Go game by determining the status of Go based on a deep learning neural network.
스마트폰, 태블릿 PC, PDA(Personal Digital Assistant), 노트북 등과 같은 사용자 단말의 이용이 대중화되고 정보 처리 기술이 발달함에 따라 사용자 단말을 이용하여 보드 게임의 일종인 바둑을 할 수 있게 되었고 나아가 사람이 아닌 프로그램된 인공지능 컴퓨터와 바둑 대국을 할 수 있게 되었다. As the use of user terminals such as smartphones, tablet PCs, PDAs (Personal Digital Assistant), notebooks, etc. became popular and information processing technology developed, it became possible to play Go, a kind of board game, using user terminals. It became possible to play a game of Go with a programmed artificial intelligence computer.
바둑은 다른 보드게임인 체스나 장기와 비교하였을 때 경우의 수가 많아서 인공지능 컴퓨터가 사람 수준으로 대국을 하는데 한계가 있었고 인공지능 컴퓨터의 기력을 높이기 위한 연구가 활발하게 진행되고 있는 추세이다. 최근 개발자들은 인공지능 컴퓨터에 몬테 카를로 트리 서치(Monte Carlo Tree Search; MCTS) 알고리즘과 딥러닝 기술을 적용하여 인공지능 컴퓨터의 기력을 프로기사들의 수준 이상으로 올렸다.When compared to other board games such as chess or shogi, there are a lot of cases in Baduk, so there is a limit to the ability of artificial intelligence computers to play at the level of humans, and research is being actively conducted to increase the energy of artificial intelligence computers. Recently, developers have applied the Monte Carlo Tree Search (MCTS) algorithm and deep learning technology to artificial intelligence computers to raise the energy of artificial intelligence computers to the level of professional engineers.
그러나 일반적으로 기존의 바둑 AI 프로그램은, 단지 이기는 방법만을 학습하였기 때문에 플레이어(player)와 오포넌트(opponent) 간의 점수 차이를 고려한 착수에 어려움이 있다. 즉, 기존의 바둑 AI 프로그램은 바둑 게임 플레이 시 후반부로 갈수록 점차 점수 차이가 좁혀지게 되고, 매우 적은 점수 차이로 승리하는 경향(방어적인 성향)이 두드러지는 문제가 있다. However, in general, since the existing Go AI program only learns how to win, it is difficult to start taking into account the difference in score between the player and the opponent. In other words, the existing Go AI program has a problem that the score difference gradually narrows toward the latter half of the Go game play, and the tendency to win with a very small score difference (defensive tendency) is remarkable.
또한, 기존의 바둑 AI 프로그램은 실제 바둑 게임 플레이 시 구현되는 플레이어의 특정 기질이나 방식인 기풍을 구현하는데 어려움이 있다. 여기서 기풍이란 바둑이나 장기와 같은 게임 진행 시에 나타나는 독특한 플레이 방식이나 기질을 의미한다. 즉, 기존의 바둑 AI 프로그램은 이기도록 학습되어 일관적인 플레이 방식만으로 구현됨으로써 다양한 기풍으로 바둑 게임을 플레이하는데 한계가 있다. In addition, the existing Go AI program has difficulty in realizing the player's specific temperament or ethos that is implemented during actual Go game play. Here, ethos refers to a unique way of playing or temperament that appears when playing a game such as Go or Shogi. In other words, the existing Go AI program is learned to win and implemented only with a consistent play method, so there is a limit to playing the Go game with various ethos.
더하여, 인공지능 컴퓨터와의 효과적인 바둑 대국을 위해서는 플레이어의 니즈(needs) 또는 능력치에 따라서 정밀하게 게임 난이도를 조절할 필요성이 있으나, 이를 구현하기 위한 기술이 미흡하여 새로운 기술 도입이 필요한 실정이다. In addition, in order to play an effective Go game with an artificial intelligence computer, it is necessary to precisely adjust the game difficulty according to the player's needs or ability, but the technology to implement this is insufficient, and a new technology is required.
본 발명은 전술한 문제점을 해결하기 위하여 안출된 딥러닝에 기반하여 바둑 게임 서비스를 제공하는 방법 및 그 장치에 관한 것이다. 보다 상세하게는, 딥러닝 신경망을 기반으로 바둑 형세를 판단하여 바둑 게임 플레이 시의 특정 기질이나 방식을 나타내는 기풍을 활용하는 바둑 게임 서비스 제공 방법 및 그 장치를 제안하고자 한다. The present invention relates to a method and apparatus for providing a Go game service based on deep learning conceived to solve the above-described problem. In more detail, it is intended to propose a method and apparatus for providing a Go game service that utilizes an ethos representing a specific temperament or method when playing a Go game by determining the status of Go based on a deep learning neural network.
자세히, 본 발명은 바둑 규칙에 따른 집, 사석, 돌, 공배, 빅의 예측을 기반으로 바둑의 형세를 판단하여 기풍을 판단하고 이를 기초로 학습을 수행하여 바둑 게임 플레이 시에 기풍을 적용한 대국을 진행하는 딥러닝 기반의 바둑 게임 서비스 제공 방법 및 장치를 그 목적으로 한다. In detail, the present invention determines the state of Go based on predictions of houses, sandstones, stones, gongbae, and big according to the Go rule, determines the ethos of Go, and learns based on this, to determine the game where the ethos is applied when playing the Go game. The purpose of this is a deep learning based Go game service providing method and apparatus.
다만, 본 발명 및 본 발명의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다. 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 as described above, and other technical problems may exist.
본 발명의 실시예에 따른 딥러닝을 기반으로 하는 바둑 게임 서비스 방법 및 그 장치는, 복수의 기보 및 바둑판 상태에 기반한 적어도 둘 이상의 착수 후보수를 수신하는 통신부; 형세 판단 모델 및 기풍 판단부을 저장하는 저장부; 및 상기 형세 판단 모델을 독출하여 상기 형세 판단 모델의 학습을 수행하고 상기 학습된 형세 판단 모델을 이용하여 상기 착수 후보수가 적용된 바둑판의 형세를 판단하며, 상기 기풍 판단부가 상기 판단된 형세를 기반으로 상기 착수 후보수에 대한 기풍을 판단한 정보인 기풍판단 정보를 생성하는 프로세서;를 포함하고, 상기 형세 판단 모델은, 입력된 바둑판 상태에서 입력 특징을 추출하는 입력 특징 추출부; 및 상기 추출된 입력 특징을 기초하여 상기 입력된 바둑판 상태의 교차점에 대한 형세값을 생성하는 형세 판단 신경망;을 포함하고, 상기 기풍 판단부는, 상기 형세값을 기반으로 보유 집 정보를 생성하고, 상기 보유 집 정보는, 플레이어 집 수와 오포넌트 집 수를 산출한 정보이다. A method and apparatus for a Go game service based on deep learning according to an embodiment of the present invention include: a communication unit for receiving at least two or more embarkation candidates based on a plurality of notations and a board state; A storage unit for storing a situation determination model and an ethos determination unit; And reading the situation determination model to perform learning of the situation determination model, and using the learned situation determination model to determine the configuration of the board to which the number of candidates is applied, and the ethos determination unit based on the determined situation. And a processor for generating ethos determination information, which is information for determining ethos of the number of candidates for embarkation; And a situation determination neural network that generates a position value for the intersection of the input checkerboard state based on the extracted input feature, wherein the ethos determination unit generates information on the holding house based on the position value, and the The holding house information is information obtained by calculating the number of player houses and the number of owner houses.
이때, 상기 기풍 판단부는, 상기 형세값과 소정의 임계값 및 돌의 유무를 이용하여 플레이어와 오포넌트의 집 영역을 판단하여 상기 보유 집 정보를 생성한다. At this time, the ethos determination unit generates the holding house information by determining the house area of the player and the owner using the position value, a predetermined threshold value, and the presence or absence of a stone.
또한, 상기 기풍 판단부은, 착수 모델이 학습하고자 하는 기풍을 결정하는 목표기풍 정보를 설정한다. In addition, the air wind determination unit sets target air wind information for determining the air wind to be learned by the initiating model.
또한, 상기 기풍 판단부은, 상기 착수 후보수와 상기 목표기풍 정보를 기반으로 상기 기풍판단 정보를 생성하고, 상기 보유 집 정보를 기반으로 플레이어 점수값과 오포넌트 점수값을 산출하며, 상기 산출된 플레이어 점수값과 오포넌트 점수값을 기반으로 점수 차이값을 생성한다. In addition, the ethos determination unit generates the ethos determination information based on the number of embarkation candidates and the target ethos information, calculates a player score value and an oponant score value based on the holding house information, and calculates the calculated player A score difference value is generated based on the score value and the oponant score value.
또한, 상기 기풍 판단부는, 상기 착수 후보수에 대한 기풍 판단 프로세스의 일 파라미터인 기풍판단 임계치를 설정하고, 상기 점수 차이값과 상기 기풍판단 임계치를 비교하여 상기 착수 후보수 각각에 대한 상기 기풍판단 정보를 생성한다. In addition, the airflow determination unit sets an airflow determination threshold that is a parameter of the airflow determination process for the number of launching candidates, and compares the score difference value with the airflow determination threshold, and the airflow determination information for each of the launching candidates Create
또한, 상기 기풍 판단부는, 상기 기풍판단 정보를 기반으로 착수 모델의 자가 학습을 보조하는 기풍 학습 데이터를 생성한다. In addition, the airflow determination unit generates airflow learning data that assists self-learning of the launch model based on the airflow determination information.
또한, 상기 통신부는, 상기 착수 모델로부터 기풍 학습 성능정보를 획득하고, In addition, the communication unit obtains the ethos learning performance information from the initiation model,
상기 기풍 판단부는, 상기 착수 모델로부터 획득되는 기풍 학습 성능정보를 기반으로 상기 기풍판단 임계치를 조정한다. The airflow determination unit adjusts the airflow determination threshold based on airflow learning performance information obtained from the initiation model.
한편, 본 발명의 실시예에 따른 딥러닝을 기반으로 하는 바둑 게임 서비스 방법 및 그 장치는, 기풍 학습 데이터를 수신하는 통신부; 착수 모델을 저장하는 저장부; 및 상기 착수 모델을 독출하고 상기 착수 모델의 학습을 수행하고, 상기 학습된 착수 모델을 이용하여 바둑판 상태에 기반한 둘 이상의 착수 후보수를 생성하는 프로세서;를 포함하고, 상기 착수 모델은, 몬테 카를로 트리 서치(Monte Carlo Tree Search; MCTS)를 기반으로 상기 착수 후보수를 제공하는 탐색부;와, 상기 탐색부를 가이드하는 착수 신경망;과, 셀프 플레이를 수행하여 상기 착수 신경망이 자가 학습되도록 하는 셀프 플레이부; 및 상기 기풍 학습 데이터에 기반한 상기 자가 학습을 보조하는 기풍학습 보조부를 포함하고, 상기 셀프 플레이부는, 상기 기풍 학습 데이터를 기초로 학습된 상위버전 착수 모델과, 하위버전 착수 모델 간의 바둑 게임을 수행한다. On the other hand, a method and apparatus for a game of Go game service based on deep learning according to an embodiment of the present invention include: a communication unit for receiving ethos learning data; A storage unit for storing the starting model; And a processor that reads out the initiation model, performs training of the initiation model, and generates two or more initiation candidates based on a checkerboard state using the learned initiation model, wherein the initiation model is a Monte Carlo tree Search (Monte Carlo Tree Search; MCTS) based on the search unit for providing the number of candidates to start; and, an initiation neural network guiding the search unit; and a self-play unit for self-learning the initiation neural network by performing self-play. ; And an ethos learning assistant for supporting the self-learning based on the ethos learning data, wherein the self-play unit performs a Go game between the higher version launching model and the lower version launching model learned based on the ethos learning data. .
이때, 상기 기풍학습 보조부는, 상기 자가 학습의 결과를 기반으로 기풍판단 정보를 진단한 정보인 기풍 학습 성능정보를 생성한다. In this case, the airflow learning assistant generates airflow learning performance information, which is information that diagnoses airflow determination information based on the result of the self-learning.
또한, 본 발명의 실시예에 따른 딥러닝을 기반으로 하는 바둑 게임 서비스 방법 및 그 장치는, 통신부, 형세 판단 모델 및 기풍 판단부가 저장된 저장부, 상기 형세 판단 모델 및 상기 기풍 판단부를 구동하는 프로세서를 포함하는 형세판단 모델 서버에 의해 바둑판 상태의 형세를 판단하여 기풍을 판단하고 기풍 학습 데이터를 생성하는 딥러닝 기반의 바둑 게임 서비스 방법에 있어서, 상기 프로세서가 목표기풍 정보를 설정하는 단계; 상기 기풍 판단부가 기풍판단 임계치를 설정하는 단계; 상기 통신부가 바둑판 상태에 기반한 둘 이상의 착수 후보수를 획득하는 단계; 상기 프로세서가 상기 형세 판단 모델을 이용하여 상기 착수 후보수가 적용된 바둑판 상태의 형세를 판단하는 단계; 상기 프로세서가 상기 기풍 판단부를 이용하여 상기 판단된 형세를 기반으로 상기 착수 후보수 각각에 대한 점수 차이값을 산출하는 단계; 상기 프로세서가 상기 기풍 판단부를 이용하여 상기 산출된 점수 차이값과 상기 기풍판단 임계치를 기반으로 상기 착수 후보수 각각에 대한 기풍판단 정보를 생성하는 단계; 및 상기 통신부가 상기 생성된 기풍판단 정보와 상기 목표기풍 정보를 기반으로 상기 착수 후보수 각각에 대한 상기 기풍 학습 데이터를 생성하여 송신하는 단계를 포함하고, 상기 기풍판단 정보는, 상기 착수 후보수의 착수에 의하여 구현되는 기풍의 카테고리를 판단한 정보이다. In addition, the method and apparatus for a Go game service based on deep learning according to an embodiment of the present invention include a communication unit, a storage unit in which a situation determination model and an ethos determination unit are stored, a processor that drives the situation determination model and the ethos determination unit. A deep learning-based Go game service method of determining an ethos by determining an ethos by determining a condition of a board state by a condition judgment model server comprising: the processor setting target ethos information; Setting, by the airflow determination unit, an airflow determination threshold; Obtaining, by the communication unit, two or more embarkation candidates based on a checkerboard state; Determining, by the processor, a situation in a checkerboard state to which the number of candidates for launch is applied using the situation determination model; Calculating, by the processor, a score difference value for each of the number of candidates for launch based on the determined situation using the ethos determination unit; Generating, by the processor, air-wind determination information for each of the number of candidates for launch based on the calculated score difference value and the air-wind determination threshold using the air-wind determination unit; And generating and transmitting, by the communication unit, the airflow learning data for each of the embarkation candidates based on the generated airflow determination information and the target airflow information, wherein the airflow determination information comprises: This is information that determines the category of the ethos implemented by the launch.
이때, 착수 모델 서버로부터 기풍 학습 성능정보를 수신하는 단계를 더 포함하고, 상기 기풍 학습 성능정보는, 상기 착수 모델 서버가 상기 기풍 학습 데이터를 기반으로 상기 기풍판단 정보를 진단한 정보이다. In this case, the method further includes receiving information on the airflow learning performance from the launching model server, wherein the airflow learning performance information is information obtained by diagnosing the airflow determination information by the launching model server based on the airflow learning data.
또한, 본 발명의 실시예에 따른 딥러닝을 기반으로 하는 바둑 게임 서비스 방법 및 그 장치는, 상기 기풍 학습 성능정보를 기반으로 상기 기풍판단 임계치를 조정하는 단계를 더 포함한다. In addition, the method and apparatus for a Go game service based on deep learning according to an exemplary embodiment of the present invention further include adjusting the airflow determination threshold based on the airflow learning performance information.
또한, 상기 점수 차이값을 산출하는 단계는, 상기 착수 후보수 각각에 대한 형세 판단을 기반으로 형세값을 도출하여 플레이어 집 수와 오포넌트 집 수를 산출한 정보인 보유 집 정보를 생성하는 단계와, 상기 보유 집 정보를 기반으로 플레이어 점수값과 오포넌트 점수값을 산출하여 상기 점수 차이값을 생성하는 단계를 포함한다. In addition, the step of calculating the score difference may include generating house information, which is information obtained by calculating the number of player houses and the number of offense houses by deriving a position value based on the position determination for each of the number of candidates to be launched; and And generating the score difference value by calculating a player score value and an offense score value based on the holding house information.
또한, 상기 기풍의 카테고리는, 공격적 기풍, 안정적 기풍 및 방어적 기풍을 포함하고, 상기 공격적 기풍은 상기 점수 차이값이 상기 기풍판단 임계치보다 큰 경우이고, 상기 안정적 기풍은 상기 점수 차이값이 상기 기풍판단 임계치와 동일한 경우이고, 상기 방어적 기풍은 상기 점수 차이값이 상기 기풍판단 임계치보다 작은 경우이다. In addition, the category of the ethos includes an aggressive ethos, a stable ethos, and a defensive ethos, and the aggressive ethos is a case where the score difference value is greater than the efferent determination threshold, and the stable ethos is the score difference value It is the same as the judgment threshold, and the defensive ethos is a case where the score difference value is less than the ethos judgment threshold.
본 발명의 실시예에 따른 딥러닝을 기반으로 하는 바둑 게임 서비스 방법 및 그 장치는, 바둑 규칙에 따른 집, 사석, 돌, 공배, 빅을 정확히 구분하여 바둑의 형세를 예측함으로써 바둑의 형세 및 특정 착수점에 대한 기풍을 정확하게 판단할 수 있는 효과가 있다. The method and apparatus for a Go game service based on deep learning according to an embodiment of the present invention accurately classify houses, sandstones, stones, gongbae, and big according to the Go rule to predict the situation of Go, thereby It has the effect of accurately judging the ethos of the starting point.
또한, 본 발명의 실시예에 따른 딥러닝을 기반으로 하는 바둑 게임 서비스 방법 및 그 장치는, 바둑 게임 플레이 시에 다양한 기풍을 기반으로 대국의 진행을 도모함으로써 다각화된 플레이 방식에 기초하여 바둑 대국을 수행할 수 있고 정밀하게 대국 난이도를 조절할 수 있으며, 이를 통해 바둑 게임의 퀄리티 및 흥미를 증진시킬 수 있는 효과가 있다. In addition, the Go game service method and apparatus thereof based on deep learning according to an embodiment of the present invention promotes the progress of the game based on various ethos when playing the Go game, thereby providing a game of Go based on a diversified play method. It can be performed and the difficulty of the game can be precisely adjusted, and through this, the quality and interest of the Go game can be improved.
또한, 본 발명의 실시예에 따른 딥러닝을 기반으로 하는 바둑 게임 서비스 방법 및 그 장치는, 플레이어와 오포넌트 간의 점수 차이에 기초하여 기풍을 판단하고 이에 기반한 대국을 수행함으로써 단지 이기는 것뿐만 아니라 점수의 차이까지 고려한 바둑 게임 플레이를 수행할 수 있는 효과가 있다. In addition, the deep learning-based Go game service method and device thereof according to an embodiment of the present invention determine not only the winning but also the score by determining the ethos based on the difference between the score between the player and the oponant, and performing a match based on this. There is an effect that can perform the game play of Go considering the difference of.
또한, 본 발명의 실시예에 따른 딥러닝을 기반으로 하는 바둑 게임 서비스 방법 및 그 장치는, 목표로 하는 특정 기풍에 최적화된 학습이 수행되도록 동작함으로써 기풍을 구현하기 위한 학습을 효율적, 체계적으로 구현할 수 있는 효과가 있다. In addition, the deep learning-based Go game service method and device thereof according to an embodiment of the present invention can efficiently and systematically implement learning for implementing the ethos by operating to perform learning optimized for a specific ethos of a target. It can have an effect.
다만, 본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 명확하게 이해될 수 있다. However, the effects obtainable in the present invention are not limited to the above-mentioned effects, and other effects not mentioned may be clearly understood from the following description.
도 1은 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 시스템에 대한 예시도이다.
도 2는 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스에서 인공지능 컴퓨터의 착수를 위한 착수 모델 서버의 착수 모델 구조를 설명하기 위한 도면이다.
도 3은 착수 모델의 정책에 따른 착수점에 대한 이동 확률 분포를 설명하기 위한 도면이다.
도 4는 착수 모델의 착수점에 대한 가치값과 방문 횟수를 설명하기 위한 도면이다.
도 5는 착수 모델이 탐색부의 파이프 라인에 따라 착수하는 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스의 형세 판단 기능을 제공하는 화면을 보여 주는 예시도이다.
도 7은 본 발명의 형세판단 모델 서버의 형세 판단 모델 구조를 설명하기 위한 도면이다.
도 8은 본 발명의 형세 판단 모델의 복수의 블록으로 이루어진 신경망 구조 중 하나의 블록을 설명하기 위한 도면이다.
도 9는 본 발명의 형세 판단 모델을 학습하기 위해 사용되는 정답 레이블을 생성하기 위한 제1 및 제2 전처리 단계를 설명하기 위한 도면이다.
도 10은 본 발명의 형세 판단 모델을 학습하기 위해 사용되는 정답 레이블을 생성하기 위한 제1 및 제2 전처리 단계를 설명하기 위한 도면이다.
도 11은 본 발명의 형세 판단 모델을 학습하기 위해 사용되는 정답 레이블을 생성하기 위한 제3 전처리 단계를 설명하기 위한 도면이다.
도 12는 본 발명의 형세 판단 모델의 형세 판단 결과를 설명하기 위한 도면이다.
도 13은 본 발명의 형세 판단 모델의 형세 판단 결과와 종래 기술에 따른 딥러닝 모델에 의한 형세 판단 결과를 비교한 모습이다.
도 14는 본 발명의 형세 판단 모델의 형세 판단 결과와 종래 기술에 따른 딥러닝 모델에 의한 형세 판단 결과를 비교한 모습이다.
도 15는 본 발명의 형세 판단 모델의 형세 판단 결과와 종래 기술에 따른 딥러닝 모델에 의한 형세 판단 결과를 비교한 모습이다.
도 16은 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 시스템에 신호 흐름에 대한 예시도이다.
도 17은 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법 중 형세 판단 방법이다.
도 18은 도 17의 형세 판단 방법 중 정답 레이블을 생성하기 위한 트레이닝 데이터의 전처리 방법이다.
도 19는 본 발명의 형세판단 모델 서버의 기풍 판단부 구조를 설명하기 위한 도면이다.
도 20은 본 발명의 실시예에 따른 딥러닝 신경망을 기반으로 바둑 형세를 판단하여 바둑 게임 플레이 시의 특정 기질이나 방식을 나타내는 기풍을 활용하는 방법을 설명하기 위한 흐름도이다.
도 21은 본 발명의 실시예에 따른 바둑 형세를 판단하여 바둑 게임 플레이 시의 기풍을 활용하는 방법을 설명하기 위한 개념도이다.
도 22는 본 발명의 실시예에 따른 착수 후보수 정보 각각에 대한 기풍판단 정보를 생성하는 방법을 설명하기 위한 도면이다.
도 23는 본 발명의 다른 실시예에 따른 바둑 형세를 판단하여 바둑 게임 플레이 시의 기풍을 활용하는 방법을 설명하기 위한 개념도이다. 1 is an exemplary diagram for a deep learning-based Go game service system according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating a structure of a launch model server for launching an artificial intelligence computer in a deep learning-based Go game service according to an embodiment of the present invention.
3 is a diagram for explaining a distribution of a movement probability for a starting point according to a policy of a starting model.
4 is a diagram for explaining the value of the starting point and the number of visits of the starting model.
5 is a diagram for explaining a process in which the launch model starts according to the pipeline of the search unit.
6 is an exemplary view showing a screen providing a function of determining the status of a deep learning-based Go game service according to an embodiment of the present invention.
7 is a view for explaining the structure of the situation determination model of the situation determination model server of the present invention.
8 is a diagram for explaining one block of a neural network structure composed of a plurality of blocks of the situation determination model of the present invention.
9 is a view for explaining the first and second pre-processing steps for generating the correct answer label used to learn the situation determination model of the present invention.
10 is a diagram for explaining first and second pre-processing steps for generating a correct answer label used to learn a situation determination model of the present invention.
11 is a view for explaining a third pre-processing step for generating a correct answer label used to learn the situation determination model of the present invention.
12 is a view for explaining a situation determination result of the situation determination model of the present invention.
13 is a view comparing the situation determination result of the situation determination model of the present invention and the situation determination result using a deep learning model according to the prior art.
14 is a view comparing the situation determination result of the situation determination model of the present invention and the situation determination result by a deep learning model according to the prior art.
15 is a view comparing the situation determination result of the situation determination model of the present invention and the situation determination result by a deep learning model according to the prior art.
16 is an exemplary diagram of a signal flow in a deep learning-based Go game service system according to an embodiment of the present invention.
17 is a method for determining a situation among a deep learning-based Go game service method according to an embodiment of the present invention.
18 is a method of preprocessing training data for generating a correct answer label among the method of determining the situation of FIG. 17.
19 is a diagram for explaining the structure of the ethos determination unit of the form determination model server of the present invention.
FIG. 20 is a flow chart illustrating a method of determining a situation of Go based on a deep learning neural network according to an embodiment of the present invention, and utilizing an ethos indicating a specific temperament or method when playing a Go game.
21 is a conceptual diagram for explaining a method of determining the status of Go and utilizing the ethos of playing a Go game according to an embodiment of the present invention.
22 is a view for explaining a method of generating wind determination information for each information on the number of candidates to be launched according to an embodiment of the present invention.
23 is a conceptual diagram for explaining a method of determining the status of Go and utilizing the ethos of playing a Go game according to another embodiment of the present invention.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. 또한, 도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.Since the present invention can apply various transformations and have various embodiments, specific embodiments are illustrated in the drawings and will be described in detail in the detailed description. Effects and features of the present invention, and a method of achieving them will be apparent 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 not used in a limiting meaning, but are used for the purpose of distinguishing one component from another component. In addition, expressions in the singular include plural expressions unless the context clearly indicates otherwise. In addition, terms such as include or have means that the features or elements described in the specification are present, and do not preclude the possibility of adding one or more other features or elements in advance. In addition, in the drawings, the size of components may be exaggerated or reduced for convenience of description. For example, the size and thickness of each component shown in the drawings are arbitrarily shown for convenience of description, and the present invention is not necessarily limited to what is shown.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.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 constituent elements are assigned the same reference numerals, and redundant descriptions thereof will be omitted. .
도 1은 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 시스템에 대한 예시도이다.1 is an exemplary diagram for a deep learning-based Go game service system according to an embodiment of the present invention.
도 1을 참조하면, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 시스템은, 단말기(100), 바둑서버(200), 착수 모델 서버(300), 형세판단 모델 서버형세판단 모델 서버(400) 및 네트워크(500)를 포함할 수 있다.Referring to FIG. 1, a deep learning-based Go game service system according to an embodiment includes a terminal 100, a
도 1의 각 구성요소는, 네트워크(500)를 통해 연결될 수 있다. 단말기(100), 바둑서버(200), 착수 모델 서버(300) 및 형세판단 모델 서버형세판단 모델 서버(400) 등과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예에는 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
- 단말기 -Terminal
먼저, 단말기(100)는, 바둑 게임 서비스를 제공받고자 하는 유저의 단말기이다. 또한, 단말기(100)는 다양한 작업을 수행하는 애플리케이션들을 실행하기 위한 유저가 사용하는 하나 이상의 컴퓨터 또는 다른 전자 장치이다. 예컨대, 컴퓨터, 랩탑 컴퓨터, 스마트 폰, 모바일 전화기, PDA, 태블릿 PC, 혹은 바둑서버(200)와 통신하도록 동작 가능한 임의의 다른 디바이스를 포함한다. 다만 이에 한정되는 것은 아니고 단말기(100)는 다양한 머신들 상에서 실행되고, 다수의 메모리 내에 저장된 명령어들을 해석하여 실행하는 프로세싱 로직을 포함하고, 외부 입력/출력 디바이스 상에 그래픽 사용자 인터페이스(GUI)를 위한 그래픽 정보를 디스플레이하는 프로세스들과 같이 다양한 기타 요소들을 포함할 수 있다. 아울러 단말기(100)는 입력 장치(예를 들면 마우스, 키보드, 터치 감지 표면 등) 및 출력 장치(예를 들면 디스플레이장치, 모니터, 스크린 등)에 접속될 수 있다. 단말기(100)에 의해 실행되는 애플리케이션들은 게임 어플리케이션, 웹 브라우저, 웹 브라우저에서 동작하는 웹 애플리케이션, 워드 프로세서들, 미디어 플레이어들, 스프레드시트들, 이미지 프로세서들, 보안 소프트웨어 또는 그 밖의 것을 포함할 수 있다.First, the terminal 100 is a terminal of a user who wants to receive a Go game service. In addition, the terminal 100 is one or more computers or other electronic devices used by a user to execute applications that perform various tasks. For example, it includes a computer, laptop computer, smart phone, mobile phone, PDA, tablet PC, or any other device operable to communicate with the
또한, 단말기(100)는 명령들을 저장하는 적어도 하나의 메모리(101), 적어도 하나의 프로세서(102) 및 통신부(103)를 포함할 수 있다. In addition, the terminal 100 may include at least one
단말기(100)의 메모리(101)는 단말기(100)에서 구동되는 다수의 응용 프로그램(application program) 또는 애플리케이션(application), 단말기(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 명령들은 프로세서(102)로 하여금 동작들을 수행하게 하기 위해 프로세서(102)에 의해 실행 가능하고, 동작들은 바둑 게임 실행 요청신호를 전송, 게임 데이터 송수신, 착수 정보 송수신, 형세 판단 요청신호를 전송, 형세 판단 결과 수신 및 각종 정보를 수신하는 동작들을 포함할 수 있다. 또한, 메모리(101)는 하드웨어적으로, ROM, RAM, EPROM, 플래시 드라이브, 하드 드라이브 등과 같은 다양한 저장기기 일 수 있고, 메모리(130)는 인터넷(internet)상에서 상기 메모리(101)의 저장 기능을 수행하는 웹 스토리지(web storage)일 수도 있다. The
단말기(100)의 프로세서(102)는 전반적인 동작을 제어하여 바둑 게임 서비스를 제공받기 위한 데이터 처리를 수행할 수 있다. 단말기(100)에서 바둑 게임 어플리케이션이 실행되면, 단말기(100)에서 바둑 게임 환경이 구성된다. 그리고 바둑 게임 어플리케이션은 네트워크(500)를 통해 바둑 서버(200)와 바둑 게임 데이터를 교환하여 단말기(100) 상에서 바둑 게임 서비스가 실행되도록 한다. 이러한 프로세서(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), 기타 기능 수행을 위한 임의의 형태의 프로세서일 수 있다.The
단말기(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
- 바둑서버 -Go Server
바둑서버(200)가 제공하는 바둑 게임 서비스는 바둑서버(200)가 제공하는 가상의 컴퓨터 유저와 실제 유저가 함께 게임에 참여하는 형태로 구성될 수 있다. 이는 유저측 단말기(100) 상에서 구현되는 바둑 게임 환경에서 하나의 실제 유저와 하나의 컴퓨터 유저가 함께 게임을 플레이 한다. 다른 측면에서, 바둑서버(200)가 제공하는 바둑 게임 서비스는 복수의 유저측 디바이스가 참여하여 바둑 게임이 플레이되는 형태로 구성될 수도 있다.The Go game service provided by the
바둑서버(200)는 명령들을 저장하는 적어도 하나의 메모리(201), 적어도 하나의 프로세서(202) 및 통신부(203)를 포함할 수 있다. The
바둑서버(200)의 메모리(201)는 바둑서버(200)에서 구동되는 다수의 응용 프로그램(application program) 또는 애플리케이션(application), 바둑서버(200)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 명령들은 프로세서(202)로 하여금 동작들을 수행하게 하기 위해 프로세서(202)에 의해 실행 가능하고, 동작들은 게임 실행 요청 신호 수신, 게임 데이터 송수신, 착수 정보 송수신, 형세 판단 요청 신호 송수신, 형세 판단 결과 송수신 및 각종 전송 동작을 포함할 수 있다. 또한, 메모리(201)는 바둑서버(200)에서 대국을 하였던 복수의 기보 또는 기존에 공개된 복수의 기보를 저장할 수 있다. 복수의 기보 각각은 대국 시작의 첫 착수 정보인 제1 착수부터 대국이 종료되는 최종 착수까지의 정보를 모두 포함할 수 있다. 즉, 복수의 기보는 착수에 관한 히스토리 정보를 포함할 수 있다. 바둑서버(200)는 형세판단 모델 서버(400)의 트레이닝을 위하여 저장된 복수의 기보를 형세판단 모델 서버(400)에 제공할 수 있게 한다. 또한, 메모리(201)는 하드웨어적으로, ROM, RAM, EPROM, 플래시 드라이브, 하드 드라이브 등과 같은 다양한 저장기기 일 수 있고, 메모리(201)는 인터넷(internet)상에서 상기 메모리(201)의 저장 기능을 수행하는 웹 스토리지(web storage)일 수도 있다.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)를 통해 네트워크(500)를 경유하여 단말기(100), 착수 모델 서버(300) 및 형세판단 모델 서버(400)와 통신을 수행할 수 있다.The
- 착수 모델 서버 -Launch model server
착수 모델 서버(300)는, 별도의 클라우드 서버나 컴퓨팅 장치를 포함할 수 있다. 또한, 착수 모델 서버(300)는 단말기(100)의 프로세서 또는 바둑서버(200)의 데이터 처리부에 설치된 신경망 시스템일 수 있지만, 이하에서 착수 모델 서버(300)는, 단말기(100) 또는 바둑 서버(200)와 별도의 장치로 설명한다.The
착수 모델 서버(300)는 명령들을 저장하는 적어도 하나의 메모리(301), 적어도 하나의 프로세서(302) 및 통신부(303)를 포함할 수 있다. The
착수 모델 서버(300)는 바둑 규칙에 따라 스스로 학습하여 딥러닝 모델인 착수 모델을 구축하고 단말기(100)의 유저와 대국을 할 수 있는 인공지능 컴퓨터로써 자신의 턴에서 대국에서 이길 수 있도록 바둑돌의 착수를 수행할 수 있다. 착수 모델 서버(300)가 착수 모델로 트레이닝하는 자세한 설명은 도 2 내지 도 5의 착수 모델에 관한 설명을 따른다.The
착수 모델 서버(300)의 메모리(301)는 착수 모델 서버(300)에서 구동되는 다수의 응용 프로그램(application program) 또는 애플리케이션(application), 착수 모델 서버(300)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 명령들은 프로세서(302)로 하여금 동작들을 수행하게 하기 위해 프로세서(302)에 의해 실행 가능하고, 동작들은 착수 모델 학습(트레이닝) 동작, 착수 정보 송수신 및 각종 전송 동작을 포함할 수 있다. 또한, 메모리(301)는 딥러닝 모델인 착수 모델을 저장 할 수 있다. 또한, 메모리(301)는 하드웨어적으로, ROM, RAM, EPROM, 플래시 드라이브, 하드 드라이브 등과 같은 다양한 저장기기 일 수 있고, 메모리(301)는 인터넷(internet)상에서 상기 메모리(301)의 저장 기능을 수행하는 웹 스토리지(web storage)일 수도 있다.The
착수 모델 서버(300)의 프로세서(302)는 메모리(302)에 저장된 착수 모델을 독출하여, 구축된 신경망 시스템에 따라서 하기 기술하는 착수 모델 학습 및 바둑알 착수를 수행하게 된다. 실시예로, 착수 모델 서버(300)의 프로세서(302)는 특정 바둑판 상태(S)에서 최고의 수라고 판단되는 특정 착수점 적어도 둘 이상 예측하여 도출할 수 있다. 또한, 프로세서(302)는 도출된 적어도 둘 이상의 특정 착수점을 형세판단 모델 서버(400)로 송신할 수 있다. 또한, 착수 모델 서버(300)의 프로세서(302)는 착수 모델을 소정의 특정 기풍으로 학습시키는 셀프 플레이(self-play) 학습을 수행할 수 있다. 또한, 프로세서(302)는 셀프 플레이 학습을 통하여 기풍이 제대로 학습 및 판단되었는지 성능을 진단할 수 있다. The
한편, 실시예에 따라서 프로세서(302)는, 전체 유닛들을 제어하는 메인 프로세서와, 착수 모델에 따라 신경망 구동시 필요한 대용량의 연산을 처리하는 복수의 그래픽 프로세서(Graphics Processing Unit, GPU)를 포함하도록 구성될 수 있다. Meanwhile, according to an embodiment, the
착수 모델 서버(300)는 통신부(303)를 통해 네트워크(500)를 경유하여 바둑 서버(200)와 통신을 수행할 수 있다.The
- 형세판단 모델 서버 -Form judgment model server
형세판단 모델 서버(400)는, 별도의 클라우드 서버나 컴퓨팅 장치를 포함할 수 있다. 또한, 형세판단 모델 서버(400)는 단말기(100)의 프로세서 또는 바둑서버(200)의 데이터 처리부에 설치된 신경망 시스템일 수 있지만, 이하에서 형세판단 모델 서버(400)는, 단말기(100) 또는 바둑 서버(200)와 별도의 장치로 설명한다.The form
형세판단 모델 서버(400)는 명령들을 저장하는 적어도 하나의 메모리(401), 적어도 하나의 프로세서(402) 및 통신부(403)를 포함할 수 있다. The form
형세판단 모델 서버(400)는 통신부(403)를 통하여 바둑서버(200)로부터 트레이닝 데이터 셋을 수신할 수 있다. 트레이닝 데이터 셋은 복수의 기보와 해당 복수의 기보에 대한 형세 판단 정보일 수 있다. 형세판단 모델 서버(400)는 수신한 트레이닝 데이터 셋을 이용하여 바둑알이 놓인 바둑판의 상태에 대한 형세를 판단할 수 있도록 지도학습하여 딥러닝 모델인 형세 판단 모델을 구축하고 단말기(100) 유저의 형세 판단 요청에 따라 형세 판단을 수행할 수 있다. 형세판단 모델 서버(400)가 형세 판단 모델로 트레이닝하는 자세한 설명은 도 6 내지 도 18의 형세 판단 모델에 관한 설명을 따른다.The form
형세판단 모델 서버(400)의 메모리(401)는 형세판단 모델 서버(400)에서 구동되는 다수의 응용 프로그램(application program) 또는 애플리케이션(application), 형세판단 모델 서버(400)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 명령들은 프로세서(402)로 하여금 동작들을 수행하게 하기 위해 프로세서(402)에 의해 실행 가능하고, 동작들은 형세 판단 모델 학습(트레이닝) 동작, 형세 판단 수행, 형세 판단 결과 송신, 복수의 기보 정보 수신 및 각종 전송 동작을 포함할 수 있다. 또한, 도 19를 참조하면 실시예에서 메모리(401)는, 딥러닝 모델인 형세 판단 모델(400a)과 딥러닝 신경망을 기반으로 바둑 형세를 판단하고 학습하여 바둑 게임 플레이 시 기풍을 적용하는 일련의 동작을 구현하기 위한 기풍 판단부(400b)를 저장할 수 있다. 또한, 메모리(401)는 하드웨어적으로, ROM, RAM, EPROM, 플래시 드라이브, 하드 드라이브 등과 같은 다양한 저장기기 일 수 있고, 메모리(401)는 인터넷(internet)상에서 상기 메모리(301)의 저장 기능을 수행하는 웹 스토리지(web storage)일 수도 있다.The
형세판단 모델 서버(400)의 프로세서(402)는 메모리(402)에 저장된 형세 판단 모델(400a)을 독출하여, 구축된 신경망 시스템에 따라서 하기 기술하는 형세 판단 모델(400a) 학습 및 대국 중 바둑판의 형세 판단을 수행하게 된다. 그리고 형세판단 모델 서버(400)의 프로세서(402)는 수행된 형세 판단을 기초로 바둑의 형세 및 특정 착수점에 대한 기풍을 판단할 수 있다. The
자세히, 실시예로 형세판단 모델 서버(400)의 프로세서(402)는 다양한 기풍 중에 학습하고자 하는 목표 기풍을 설정할 수 있다. 또한, 프로세서(402)는 형세 판단을 통하여 바둑판 상태(S)의 형세 및/또는 특정 착수점에 대한 기풍을 판단하기 위한 소정의 임계치를 설정할 수 있다. 또한, 형세판단 모델 서버(400)의 프로세서(402)는 착수 모델 서버(300)로부터 도출된 특정 착수점이 반영된 특정 바둑판 상태(S)에 대한 형세 판단을 수행하여, 해당 특정 착수점 및/또는 해당 특정 바둑판 상태(S)에 대한 기풍을 판단할 수 있다. 또한, 프로세서(402)는 기풍을 판단한 정보를 착수 모델 서버(300)로 송신하여 바둑 게임 플레이 시 기풍을 적용하기 위한 착수 모델의 셀프 플레이 학습이 효과적으로 수행되게 할 수 있다. 또한, 형세판단 모델 서버(400)의 프로세서(402)는 기풍의 판단이 제대로 이루어졌는지 성능을 확인하고, 이를 기반으로 기풍을 판단하기 위한 소정의 임계치를 조정할 수 있다. In detail, in an embodiment, the
한편, 실시예에 따라서 프로세서(402)는, 전체 유닛들을 제어하는 메인 프로세서와, 형세 판단 모델(400a)에 따라 신경망 구동시 필요한 대용량의 연산을 처리하는 복수의 그래픽 프로세서(Graphics Processing Unit, GPU)를 포함하도록 구성될 수 있다. Meanwhile, according to an embodiment, the
또한, 형세판단 모델 서버(400)는 통신부(403)를 통해 네트워크(500)를 경유하여 바둑 서버(200)와 통신을 수행할 수 있다.In addition, the form
- 착수 모델 -Launch model
도 2는 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스에서 인공지능 컴퓨터의 착수를 위한 착수 모델 서버(300)의 착수 모델 구조를 설명하기 위한 도면이고, 도 3은 착수 모델의 정책에 따른 착수점에 대한 이동 확률 분포를 설명하기 위한 도면이고, 도 4는 착수 모델의 착수점에 대한 가치값과 방문 횟수를 설명하기 위한 도면이고, 도 5는 착수 모델이 탐색부의 파이프 라인에 따라 착수하는 과정을 설명하기 위한 도면이다.FIG. 2 is a diagram for explaining the structure of the launching model of the
도 2를 참조하면, 본 발명의 실시예에 따른 착수 모델은 착수 모델 서버(300)의 딥러닝 모델로서 탐색부(310), 셀프 플레이부(320), 착수 신경망(330) 및 기풍학습 보조부(340)를 포함할 수 있다. Referring to FIG. 2, the initiation model according to the embodiment of the present invention is a deep learning model of the
착수 모델은 탐색부(310), 셀프 플레이부(320), 착수 신경망(330) 및 기풍학습 보조부(340)를 이용하여 대국에서 이길 수 있도록 착수 하는 모델로 학습될 수 있고, 바둑 대국을 진행할 시에 특정 기질이나 방식을 나타내는 기풍을 활용할 수 있다. 보다 구체적으로, 탐색부(310)는 착수 신경망(330)의 가이드에 따라 몬테 카를로 트리 서치(Monte Carlo Tree Search; MCTS) 동작을 수행 할 수 있다. MCTS는 모종의 의사 결정을 위한 체험적 탐색 알고리즘이다. 즉, 탐색부(310)는 착수 신경망(330)이 제공하는 이동 확률값(p) 및/또는 가치값(v)에 기초하여 MCTS를 수행할 수 있다. 일 예로, 착수 신경망(330)에 의해 가이드된 탐색부(310)는 MCTS를 수행하여 착수점들에 대한 확률분포값인 탐색 확률값()을 출력 할 수 있다. 셀프 플레이부(320)는 탐색 확률값()에 따라 스스로 바둑 대국을 할 수 있다. 셀프 플레이부(320)는 게임의 승패가 결정되는 시점까지 스스로 바둑 대국을 진행하고, 자가 대국이 종료되면 바둑판 상태(S), 탐색 확률값(), 자가 플레이 가치값(z)을 착수 신경망(330)에 제공할 수 있다. 바둑판 상태(S)는 착수점들에 바둑돌이 놓여진 상태이다. 자가 플레이 가치값(z)은 바둑판 상태(S)에서 자가 대국을 하였을 때 승률 값이다. 착수 신경망(330)은 이동 확률값(p)과 가치값(v)을 출력할 수 있다. 이동 확률값(p)은 바둑판 상태(S)에 따라 착수점들에 대해 어느 착수점에 착수하는 것이 게임을 이길 수 있는 좋은 수인지 수치로 나타낸 확률분포값이다. 가치값(v)은 해당 착수점에 착수시 승률을 나타낸다. 예를 들어, 이동 확률값(p)이 높은 착수점이 좋은 수일 수 있다. 착수 신경망(330)은 이동 확률값(p)이 탐색 확률값()과 동일해지도록 트레이닝되고, 가치값(v)이 자가 플레이 가치값(z)과 동일해지도록 트레이닝될 수 있다. 이후 트레이닝된 착수 신경망(330)은 탐색부(310)를 가이드하고, 탐색부(310)는 이전 탐색 확률값()보다 더 좋은 수를 찾도록 MCTS를 진행하여 새로운 탐색 확률값()을 출력하게 한다. 셀프 플레이부(320)는 새로운 탐색 확률값()에 기초하여 바둑판 상태(S)에 따른 새로운 자가 플레이 가치값(z)을 출력하고 바둑판 상태(S), 새로운 탐색 확률값(), 새로운 자가 플레이 가치값(z)을 착수 신경망(330)에 제공할 수 있다. 착수 신경망(330)은 이동 확률값(p)과 가치값(v)이 새로운 탐색 확률값()과 새로운 자가 플레이 가치값(z)으로 출력되도록 다시 트레이닝될 수 있다. 즉, 착수 모델은 이러한 과정을 반복하여 착수 신경망(330)이 대국에서 이기기 위한 더 좋은 착수점을 찾도록 트레이닝 될 수 있다. 일 예로, 착수 모델은 착수 손실(l)을 이용할 수 있다. 착수 손실(l)은 수학식 1과 같다.The launching model can be learned as a model that launches to win the game using the
(수학식 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를 곱하는 것은 정규화 텀으로 오버핏을 방지하기 위한 것이다.Making z and v equal in the starting loss (l) of
예를 들어, 도 3을 참조하면 트레이닝된 착수 모델은 착수점들에 이동 확률값(p)을 도 3과 같이 확률분포값으로 나타낼 수 있다. 도 4를 참조하면 트레이닝 된 착수 모델의 가치값(v)은 도 4의 하나의 참수점에서 위에 표시된 값으로 나타낼 수 있다. 착수 신경망(330)은 신경망 구조로 구성될 수 있다. 일 예로, 착수 신경망(330)은 한 개의 컨볼루션(convolution) 블록과 19개의 레지듀얼(residual) 블록으로 구성될 수 있다. 컨볼루션 블록은 3X3 컨볼루션 레이어가 여러개 중첩된 형태일 있다. 하나의 레지듀얼 블록은 3X3 컨볼루션 레이어가 여러개 중첩되고 스킵 커넥션을 포함한 형태일 수 있다. 스킵 커넥션은 소정의 레이어의 입력이 해당 레이어의 출력값과 합하여서 출력되어 다른 레이어에 입력되는 구조이다. 또한, 착수 신경망(330)의 입력은 흑 플레이어의 최근 8 수에 대한 돌의 위치 정보과 백 플레이어의 최근 8 수에 대한 돌의 위치 정보와 현재 플레이어가 흑인지 백인지에 대한 차례 정보를 포함한 19*19*17의 RGB 이미지가 입력될 수 있다.For example, referring to FIG. 3, the trained embarkation model may represent a moving probability value p at embarkation points as a probability distribution value as shown in FIG. 3. Referring to FIG. 4, the value v of the trained embarkation model may be expressed as a value indicated above at one beheading point of FIG. 4. The initiating
도 5를 참조하면, 학습된 착수 모델은 자신의 차례에서 착수 신경망(330)과 탐색부(310)를 이용하여 착수 할 수 있다. 착수 모델은 선택 과정(a)을 통하여 현재 제1 바둑판 상태(S)(S1)에서 MCTS를 통해 탐색하지 않은 가지인 제2 바둑판 상태(S)(S1-2)에서 활동 함수(Q)와 신뢰값(U)이 높은 착수점을 선택한다. 활동 함수(Q)는 해당 가지를 지날 때마다 산출된 가치값(v)들의 평균값이다. 신뢰값(U)은 해당 가지를 지나는 방문 횟수(N)에 비례한다. 착수 모델은 확장과 평가 과정(b)을 통하여 선택된 착수점에서의 제3 바둑판 상태(S)(S1-2-1)로 확장하고 이동 확률값(p)을 산출 할 수 있다. 착수 모델은 백업 과정(c)을 통하여 확장된 제3 바둑판 상태(S)(S1-2-1)의 가치값을 산출하고 지나온 가지들의 활동 함수(Q), 방문 횟수(N), 이동 확률값(p)을 저장할 수 있다. 착수 모델은 선택(a), 확장 및 평가(b), 백업(c) 과정을 반복하고 각 착수점에 대한 방문 횟수(N)를 이용하여 확률 분포를 만들어서 탐색 확률값()을 출력할 수 있다. 착수 모델은 착수점들 중 가장 높은 탐색 확률값()을 선택할 수 있고, 선택된 탐색 확률값()을 가지는 착수점을 해당 바둑판 상태(S)에서의 최고의 수로 판단할 수 있다. 이때, 착수 모델은 탐색 확률값()을 기반으로 최고의 수라고 판단된 착수점을 착수 후보수로 설정할 수 있다. 즉, 본 발명의 실시예에서 착수 후보수란 특정 바둑판 상태(S)에 대하여 착수 모델에 의해 예측된 최고의 착수점일 수 있다. 이때, 착수 모델은 탐색 확률값()을 기반으로 최고의 수라고 판단된 착수 후보수를 적어도 둘 이상 도출할 수 있고, 이에 기초하여 적어도 둘 이상의 착수 후보수 정보를 생성할 수 있다. 자세히, 착수 모델은 결정된 착수 후보수에 기반하여 해당 착수 후보수와 관련된 정보(예컨대, 바둑판 상에서의 위치 정보 등)를 포함하는 착수 후보수 정보를 적어도 둘 이상 생성할 수 있다. 여기서 착수 모델이 적어도 둘 이상의 착수 후보수 정보를 생성하는 것은, 복수의 착수 후보수를 기반으로 기풍을 판단한 결과를 통하여 특정 기풍에 최적화된 착수 후보수를 합리적으로 도출하기 위함이다. Referring to FIG. 5, the trained initiation model can be initiated using the initiation
이때, 착수 모델 서버(300)는 생성된 착수 후보수 정보를 형세판단 모델 서버(400)로 송신할 수 있고, 형세판단 모델 서버(400)로부터 기풍 학습 데이터를 수신할 수 있다. 여기서, 기풍 학습 데이터는 착수 모델을 임의의 특정 기풍으로 학습시키기 위하여, 형세판단 모델 서버(400)의 기풍 판단부(400b)가 형세 판단을 기반으로 특정 기풍 학습에 적합하다고 판단한 적어도 하나의 착수 후보수에 대한 정보일 수 있다. 이에 대한 자세한 설명은 후술하기로 한다. In this case, the starting
또한, 착수 모델은 형세판단 모델 서버(400)로부터 획득되는 기풍 학습 데이터를 기반으로 셀프 플레이(self-play) 학습을 수행할 수 있다. 자세히, 착수 모델은 셀프 플레이부를 통하여 기풍 학습 데이터를 기초로 학습된 상위버전 착수 모델과, 학습 이전의 하위버전 착수 모델 간의 바둑 게임 플레이를 수행할 수 있다. 즉, 착수 모델은 기풍 학습 데이터에 기반한 자가 학습을 수행할 수 있고, 이를 통해 기풍 학습 데이터의 성능을 진단할 수 있다. 여기서, 기풍 학습 데이터의 성능을 진단함이란 해당 기풍 학습 데이터가 특정 기풍을 학습하는데 있어서 적합한 데이터인지를 판단하는 것일 수 있다. In addition, the initiation model may perform self-play learning based on the ethos training data obtained from the shape
계속해서, 착수 모델은 셀프 플레이 학습에 기반한 기풍 학습 데이터의 성능 진단을 통하여 기풍 학습 성능정보를 생성할 수 있다. 즉, 기풍 학습 성능정보는 획득된 기풍 학습 데이터에 기반한 착수 모델의 자가학습을 통해, 해당 기풍 학습 데이터가 특정 기풍을 학습하기에 적합한 데이터인지 즉, 특정 착수 후보수 및/또는 바둑판 상태(S)에 대한 기풍이 제대로 판단되었는지를 진단한 정보일 수 있다. 그리고 이때, 착수 모델 서버(300)는 생성된 기풍 학습 성능정보를 형세판단 모델 서버(400)로 송신할 수 있다. 즉, 착수 모델은 특정 기풍을 학습하기 위한 학습 데이터의 적합성을 확인하고 이에 대한 피드백을 제공함으로써, 특정 착수 후보수 및/또는 바둑판 상태(S)에 대한 기풍 판단의 정확성을 향상시킬 수 있다. Subsequently, the initiation model may generate airflow learning performance information through performance diagnosis of airflow learning data based on self-play learning. That is, the ethos learning performance information is determined whether the ethos learning data is suitable data for learning a specific ethos through self-learning of the initiation model based on the acquired ethos learning data, i.e. It may be information that diagnoses whether the ethos of about is properly determined. In this case, the
한편, 착수 모델은 본 발명의 실시예에 따라서 바둑 게임 플레이 시 특정 기질이나 방식을 나타내는 기풍을 활용하는 바둑 게임 서비스를 제공하기 위하여, 기풍학습 보조부(340)를 포함할 수 있다. 자세히, 기풍학습 보조부(340)는 형세판단 모델 서버(400)로부터 기풍 학습 데이터를 입력 데이터로 수신할 수 있다. 또한, 기풍학습 보조부(340)는 입력 데이터로 수신된 기풍 학습 데이터에 기반하여 착수 모델 서버(300)가 셀프 플레이 학습을 수행하도록 셀프 플레이부(320)를 제어할 수 있다. 더하여, 기풍학습 보조부(340)는 착수 모델의 셀프 플레이부를 통한 셀프 플레이 학습의 결과를 토대로 기풍 학습 성능정보를 생성할 수 있다. 즉, 기풍학습 보조부(340)는 기풍 학습 데이터에 기반한 착수 모델의 자가학습 결과를 통하여, 해당 기풍 학습 데이터가 소정의 목표 기풍을 학습하기에 적합한 데이터인지 즉, 특정 착수 후보수 및/또는 바둑판 상태(S)에 대한 기풍을 형세판단 모델 서버(400)에서 제대로 판단하였는지를 진단한 기풍 학습 성능정보를 생성할 수 있다. 예를 들어, 기풍학습 보조부(340)는 기풍 학습 데이터가 포함하는 특정 착수 후보수에 대한 플레이어와 오포넌트 간의 점수 차이값과, 셀프 플레이를 통해 도출된 특정 착수 후보수에 대한 플레이어와 오포넌트 간의 점수 차이값을 비교하여 기풍 학습 성능정보를 생성할 수 있다. 그리고 기풍학습 보조부(340)는, 생성된 기풍 학습 성능정보를 형세판단 모델 서버(400)로 송신하여 이에 기반한 형세판단 모델 서버(400)의 기풍의 판단을 위한 임계치 조정 동작이 수행되게 할 수 있다. Meanwhile, the initiation model may include an ethos learning assistant 340 to provide a Go game service that utilizes ethos representing a specific temperament or manner when playing a Go game according to an embodiment of the present invention. In detail, the ethos learning assistant 340 may receive ethos training data as input data from the shape
보다 자세한 설명은 이하에서 기술되는 딥러닝을 기반으로 기풍을 판단하여 활용하는 방법의 상세한 설명에서 후술하기로 한다. 또한, 본 실시예에서는 기풍학습 보조부(340)가 착수 모델 서버(300)에 포함되어 동작하는 것으로 설명하나, 다른 실시예에서는 기풍학습 보조부(340)가 바둑서버(200) 또는 형세판단 모델 서버(400)에 포함되거나 별도의 장치로 구현되는 등 다양한 실시예 또한 가능하다. A more detailed description will be described later in the detailed description of a method of determining and utilizing the ethos based on deep learning described below. In addition, in this embodiment, it is described that the ethos learning assistant 340 is included in the
- 형세 판단 모델 -Position judgment model
도 6은 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스의 형세 판단 기능을 제공하는 화면을 보여 주는 예시도이고, 도 7은 본 발명의 형세판단 모델 서버(400)의 형세 판단 모델(400a) 구조를 설명하기 위한 도면이고, 도 8은 본 발명의 형세 판단 모델(400a)의 복수의 블록으로 이루어진 신경망 구조 중 하나의 블록을 설명하기 위한 도면이다.6 is an exemplary view showing a screen that provides a position determination function of a deep learning-based Go game service according to an embodiment of the present invention, and FIG. 7 is a state determination model of the position
도 6을 참조하면, 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스는 현재 바둑판 상태(S)의 형세 판단을 할 수 있다. 일 예로, 도 6과 같이 유저가 단말기(100)의 화면에서 바둑 대국 중 형세 판단 메뉴(A)를 클릭하여 형세 판단을 요청하면 딥러닝 기반의 바둑 게임 서비스가 팝업 창에 형세 판단 결과를 제공할 수 있다. 형세 판단은 바둑 대국 중에 상대방과 나의 집을 계산하여 누가 몇점으로 이기고 있는지 판단하는 것이다. 예를 들어, 유저는 형세가 나에게 유리하다는 판단이 서면 더 이상 무리하지 말고 현재의 유리한 상황을 그대로 유지한 채 대국을 종료하는 방향으로 전략을 세울 것이고, 만약 불리하다는 판단이면 게임 국면을 새롭게 전환할 수 있도록 여러가지 전략을 모색할 수 있다. 형세 판단의 기준은 바둑돌이 바둑판에 배치된 상태에 따른 집, 사석, 돌, 공배, 빅이 된다. 돌은 바둑판에 놓여진 돌이고 한국 규칙에서는 점수가 아니다. 집은 한 가지 색의 바둑돌로 둘러쌓인 빈 점으로 구성된 영역으로 한국 규칙에서는 점수이다. 공배와 빅은 바둑이 끝났을 때 흑집도 백집도 아닌 영역으로 한국 규칙에서는 점수가 아니다. 판위사석은 바둑판 위에 놓여진 돌 중에서 어떻게 두어도 잡힐 수밖에 없어 죽게 된 돌로 한국 규칙에서는 상대방의 집을 메우는데 사용하므로 점수이다. 빅은 바둑이 끝났을 때, 흑집도 백집도 아닌 영역을 말한다. 따라서, 형세 판단은 바둑돌이 놓인 바둑판 상태(S)에서 집, 사석, 돌, 공배, 빅을 정확히 구분 또는 예측해야 정확한 판단이 될 수 있다. 이 때, 집, 사석, 돌, 공배, 빅을 정확히 구분하는 것은 집, 사석, 돌, 공배, 빅이 완전히 이루어진 상태를 구분하는 것이고, 집, 사석, 돌, 공배, 빅을 정확히 예측하는 것은 집, 사석, 돌, 공배, 빅이 될 가능성이 높은 상태를 예측하는 것일 수 있다. Referring to FIG. 6, the deep learning-based Go game service according to an embodiment of the present invention can determine the status of the current Go board state (S). For example, as shown in FIG. 6, when a user requests a situation determination by clicking the situation determination menu (A) during a game of Go on the screen of the terminal 100, a deep learning-based Go game service provides the situation determination result in a pop-up window. I can. The situation judgment is to determine who is winning with how many points by calculating the opponent and my house during the game of Go. For example, if the user decides that the situation is favorable to me, he will not overdo it anymore and will develop a strategy in the direction of ending the game while maintaining the current favorable situation. You can explore different strategies to help you do it. The criteria for judging the situation are houses, sandstones, stones, gongbae, and big according to the state in which the go stones are placed on the board. A stone is a stone placed on a checkerboard and is not a score in Korean rules. A house is an area made up of empty dots surrounded by single colored Go stones, and is a score in Korean rules. Gongbae and Big are the areas that are neither black nor white when Baduk is over, and are not points in Korean rules. Panwisaseok is a stone that dies because it is bound to be caught no matter how it is placed on the board. It is a score because it is used to fill the opponent's house under Korean rules. Big refers to an area that is neither a black house nor a white house when Baduk is over. Therefore, the situation can be accurately determined only when the house, stone, stone, gongbae, and big are accurately classified or predicted in the checkerboard state (S) on which the go stones are placed. At this time, the exact classification of house, sandstone, stone, gongbae, and big is to distinguish the state where the house, sandstone, stone, gongbae, and vic are completely completed. It may be to predict a state that is likely to become a stone, stone, gongbae, or big.
도 7을 참조하면, 본 발명의 실시예에 따른 형세 판단 모델(400a)은 형세판단 모델 서버(400)의 딥러닝 모델로써 형세 판단 신경망(410), 입력 특징 추출부(420) 및 정답 레이블 생성부(430)를 포함할 수 있다. 또한, 본 발명의 실시예에 따른 형세 판단 모델(400a)은 딥러닝 신경망을 기반으로 바둑 형세를 판단하고 학습하여 바둑 게임 플레이 시 기풍을 적용하는 프로세스를 동작하기 위하여 기풍 판단부(400b)와 연동될 수 있다. 이에 대한 자세한 설명은 후술하기로 한다. Referring to FIG. 7, a
형세 판단 모델(400a)은 형세 판단 신경망(410)을 이용하여 현재 바둑판 상태(S)의 형세를 판단할 수 있도록 지도 학습(supervised learning)할 수 있다. 보다 구체적으로, 형세 판단 모델(400a) 바둑판 상태(S)에 관한 트레이닝 데이터 셋을 생성하고 생성된 트레이닝 데이터 셋을 이용하여 형세 판단 신경망(410)이 현재 바둑판 상태(S)에 따른 형세를 판단할 수 있도록 학습시킬 수 있다. 형세판단 모델 서버(400)는 바둑서버(200)로부터 복수의 기보를 수신할 수 있다. 복수의 기보의 각 기보는 착수 순서에 따른 각각의 바둑판 상태(S)를 포함할 수 있다. The
입력 특징 추출부(420)는 복수의 기보의 바둑판 상태(S)에서 입력 특징(IF)을 추출하여 형세 판단 신경망(410)에 트레이닝을 위한 입력 데이터로 제공할 수 있다. 바둑판 상태(S)의 입력 특징(IF)은 흑 플레이어의 최근 8 수에 대한 돌의 위치 정보과 백 플레이어의 최근 8 수에 대한 돌의 위치 정보와 현재 플레이어가 흑인지 백인지에 대한 차례 정보를 포함한 19*19*18의 RGB 이미지일 수 있다. 일 예로, 입력 특징 추출부(420)는 신경망 구조로 되어 있을 수 있으며 일종의 인코더를 포함할 수 있다.The input feature extraction unit 420 may extract the input feature IF from the checkerboard state S of a plurality of notations and provide the state determination
정답 레이블 생성부(430)는 현재 바둑판 상태(S)로 전처리 과정을 거쳐 정답 레이블(ground truth)을 생성하고 정답 레이블을 형세 판단 신경망(410)에 트레이닝을 위한 타겟 데이터()로 제공할 수 있다. 정답 레이블 생성부(430)의 정답 레이블 생성은 후술하는 도 9 내지 도 11의 설명을 따른다. 일 예로, 정답 레이블 생성부(430)는 신경망 구조의 롤아웃 또는 인코더를 포함할 수 있다.The correct answer
형세 판단 모델(400a)은 입력 특징(IF)을 입력 데이터로 하고 정답 레이블을 타겟 데이터()로 한 트레이닝 데이터 셋을 이용하여 형세 판단 신경망(410)에서 생성된 출력 데이터(o)가 타겟 데이터()와 동일해지도록 형세 판단 신경망(420)을 충분히 학습할 수 있다. 일 예로, 형세 판단 모델(400a)은 형세 판단 손실()을 이용할 수 있다. 형세 판단 손실()은 평균 제곱 에러(mean square error)를 이용할 수 있다. 예를 들어, 형세 판단 손실()은 수학식 2와 같다.The
(수학식 2)(Equation 2)
B는 바둑판의 전체 교차점 수이다. 바둑판은 가로 19줄 및 세로 19줄이 서로 교차하여 361개의 교차점이 배치된다. 이에 제한되는 것은 아니고 바둑판이 가로 9줄 및 세로 9줄일 경우 81개의 교차점이 배치될 수 있다. 는 현재 바둑판 상태(S)에서 정답 레이블에 따른 소정의 교차점(i)에 대한 형세값이다. 형세값에 대한 설명은 후술하는 도 11의 설명에 따른다. 는 현재 바둑판 상태(S)에서 소정의 교차점(i)을 형세 판단 신경망(410)에 입력하였을 때에 출력되는 출력 데이터이다. 형세 판단 모델(400a)은 형세 판단 손실()이 최소화되도록 경사 하강법(gradient-descent)과 역전파(backpropagation)을 이용하여 형세 판단 신경망(410) 내의 가중치와 바이어스 값들을 조절하여 형세 판단 신경망(410)를 학습시킬 수 있다.B is the total number of intersections on the board. In the checkerboard, 19 horizontal and 19 vertical lines cross each other, and 361 intersections are arranged. This is not limited thereto, and 81 intersections may be arranged when the checkerboard has 9 horizontal lines and 9 vertical lines. Is the position value for a predetermined intersection (i) according to the correct answer label in the current checkerboard state (S). The description of the position value follows the description of FIG. 11 to be described later. Is output data that is output when a predetermined intersection (i) is input to the situation determination
형세 판단 신경망(410)은 신경망 구조로 구성될 수 있다. 일 예로, 형세 판단 신경망(420)은 19개의 레지듀얼(residual) 블록으로 구성될 수 있다. 도 8을 참조하면, 하나의 레지듀얼 블록은 256개의 3X3 컨볼루션 레이어, 일괄 정규화(batch normalization) 레이어, Relu 활성화 함수 레이어, 256개의 3X3 컨볼루션 레이어, 일괄 정규화(batch normalization) 레이어, 스킵 커넥션, Relu 활성화 함수 레이어 순으로 배치될 수 있다. 일괄 정규화(batch normalization) 레이어는 학습하는 도중에 이전 레이어의 파라미터 변화로 인해 현재 레이어의 입력의 분포가 바뀌는 현상인 공변량 변화(covariate shift)를 방지하기 위한 것이다. 스킵 커넥션은 블록 층이 두꺼워지더라도 신경망의 성능이 감소하는 것을 방지하고 블록 층을 더욱 두껍게 하여 전체 신경망 성능을 높일 수 있게 한다. 스킵 커넥션은 레지듀얼 블록의 최초 입력 데이터가 두 번째 일괄 정규화(batch normalization) 레이어의 출력과 합하여 두번째 Relu 활성화 함수 레이어에 입력되는 형태일 수 있다.The situation determination
도 9 및 도 10은 본 발명의 형세 판단 모델(400a)을 학습하기 위해 사용되는 정답 레이블을 생성하기 위한 제1 및 제2 전처리 단계를 설명하기 위한 도면이고, 도 11은 본 발명의 형세 판단 모델(400a)을 학습하기 위해 사용되는 정답 레이블을 생성하기 위한 제3 전처리 단계를 설명하기 위한 도면이다.9 and 10 are diagrams for explaining first and second preprocessing steps for generating a correct answer label used to learn the
정답 레이블 생성부(430)는 형세 판단 신경망(410)이 정확한 형세 판단을 할 수 있도록 학습하는데 이용되는 정답 레이블을 생성할 수 있다.The correct answer
보다 구체적으로, 정답 레이블 생성부(430)는 입력 데이터에 기초가 되는 바둑판 상태(S)를 입력으로 받고, 현재 바둑판 상태(S)에서 끝내기를 하는 제1 전처리를 수행하여 제1 전처리 상태(P1)를 생성할 수 있다. 제1 전처리인 끝내기는 집 계산을 하기 전에 집의 경계가 명확해지도록 소정의 착수를 하여 게임을 마무리하는 과정이다. 일 예로, 도 9를 참조하면 정답 레이블 생성부(430)는 도 9의 (a)의 현재 바둑판 상태(S)에서 끝내기를 하여 도 9의 (b)의 제1 전처리 상태(P1)를 생성할 수 있다. More specifically, the correct answer
정답 레이블 생성부(430)는 제1 전처리 상태(P1)에서 집 경계 내에 배치되며 집 구분에 불필요한 돌을 제거하는 제2 전처리를 수행하여 제2 전처리 상태(P2)를 생성할 수 있다. 예를 들어, 집 경계 내에 배치되며 집 구분에 불필요한 돌은 사석일 수 있다. 사석은 집안에 상대방 돌이 배치되어 어떻게 두어도 잡힐수 밖에 없어 죽게 된 돌임을 앞서 설명하였다. 또한, 집 경계 내에 배치되며 집 구분에 불필요한 돌은 집안에 배치된 자신의 돌일 수 있다. 일 예로, 도 9를 참조하면 정답 레이블 생성부(430)는 도 9의 (b)의 제1 전처리 상태(P1)에서 집 구분에 불필요한 돌을 제거하여 도 9의 (c)의 제2 전처리 상태(P2)를 생성할 수 있다.The correct
다른 예로, 도 10을 참조하면, 정답 레이블 생성부(430)는 도 10의 (a)의 현재 바둑판 상태(S)에서 제1 전처리인 끝내기를 위하여 도 10의 (b)와 같이 빨간색 x에 착수할 수 있다. 정답 레이블 생성부(430)는 도 10의 (b)에서 파란색 x로 표시된 사석을 제거하기 위하여 녹색 x에 착수하여 사석을 제거하고 사석 제거를 위해 사용된 녹색 x에 착수한 돌도 제거하여 제2 전처리를 수행할 수 있다.As another example, referring to FIG. 10, the correct answer
정답 레이블 생성부(430)는 제2 전처리 상태(P2)에서 각 교차점을 -1 부터 +1까지 표시된 형세값(g, 단 g는 정수)으로 변경하는 제3 전처리를 수행할 수 있다. 즉, 제3 전처리는 정답 레이블 생성부(430)가 이미지 특징인 제2 전처리 상태(P2)를 수치 특징인 제3 전처리 상태(P3)로 변경하는 것이다. 일 예로, 제2 전처리 상태(P2)에서 교차점에 내 돌이 배치되면 0, 내 집 영역이면 +1, 상대 돌이 배치되면 0, 상대 집 영역이면 -1로 대응할 수 있다. 이 경우, 형세 판단 신경망(410)은 형세 판단시 집, 돌, 사석을 구분할 수 있도록 학습될 수 있다. 다른 예로, 제2 전처리 상태(P2)에서 교차점에 내 돌이 배치되면 0, 내 집 영역이면 +1, 상대 돌이 배치되면 0, 상대 집 영역이면 -1, 빅 또는 공배이면 0으로 대응할 수 있다. 다른 예의 경우 형세 판단 신경망(410)은 형세 판단시 빅 또는 공배를 구분할 수 있도록 학습될 수 있다. 예를 들어, 도 11을 참조하면, 정답 레이블 생성부(430)는 도 11의 (a)의 제2 전처리 상태(P2)를 도 11의 (b)의 제3 전처리 상태(P3)로 특징을 변경할 수 있다. The correct answer
제3 전처리 상태(P3)는 바둑판 상태(S)에서의 형세 판단의 정답 레이블이 되고 형세 판단 신경망(410)의 학습 시 타겟 데이터()로 이용될 수 있다. The third preprocessing state (P3) becomes the correct answer label of the situation determination in the checkered state (S), and target data ( ) Can be used.
도 12는 본 발명의 형세 판단 모델(400a)의 형세 판단 결과를 설명하기 위한 도면이다.12 is a diagram for explaining a result of determining the position of the
학습된 형세 판단 모델(400a)은 바둑판 상태(S)가 입력되면 바둑판의 모든 교차점에 대한 형세값을 제공할 수 있다. 즉, 바둑판 교차점의 361개 지점에 대해 형세값인 -1 내지 +1의 정수 값을 제공할 수 있다. The learned
도 12를 참조하면, 형세판단 모델 서버(400)는 형세 판단 모델(400a)이 제공한 형세값, 소정의 임계값, 돌의 유무를 이용하여 형세를 판단할 수 있다. 일 예로, 형세판단 모델 서버(400)는 돌이 없는 곳이며, 형세 값이 제1 임계값을 넘으면 내 집이 될 가능성이 높은 곳으로 판단하고, +1에 가까운 값이면 내 집 영역으로 판단할 수 있다. 형세판단 모델 서버(400)는 내 집일 가능성이 높을수록 점점 커지는 내 돌과 같은 색의 네모 형태로 표시할 수 있다. 형세판단 모델 서버(400)는 돌이 없는 곳이며, 형세 값이 제2 임계값 이하이면 상대 집이 될 가능성이 높은 곳으로 판단하고, -1에 가까운 값이면 내집 영역으로 판단할 수 있다. 형세판단 모델 서버(400)는 상대 집일 가능성이 높을수록 점점 커지는 상대 돌과 같은 색의 네모 형태로 표시할 수 있다. 형세판단 모델 서버(400)는 돌이 없는 곳이며, 형세 값이 제3 임계값 범위 이내 또는 0에 가까운 값이면 공배 또는 빅으로 판단할 수 있다. 형세판단 모델 서버(400)는 공배 또는 빅으로 판단하면 X로 표시할 수 있다. 형세판단 모델 서버(400)는 돌이 있는 곳이며, 형세 값이 제3 임계값 범위 이내 또는 0에 가까운 값이면 내 돌 또는 상대 돌로 판단할 수 있다. 형세판단 모델 서버(400)는 공배 또는 빅으로 판단하면 아무런 표시를 안할 수 있다. 형세판단 모델 서버(400)는 돌이 있는 곳이며, 형세 값이 제1 임계값을 넘으면 상대 돌의 사석이 될 가능성이 높은 곳으로 판단하고, +1에 가까운 값이면 상대 돌의 사석으로 판단할 수 있다. 형세판단 모델 서버(400)는 상대 돌의 사석일 가능성이 높을수록 점점 커지는 내 돌과 같은 색의 네모 형태로 표시할 수 있다. 형세판단 모델 서버(400)는 돌이 있는 곳이며, 형세 값이 제2 임계값 이하이면 내 돌의 사석이 될 가능성이 높은 곳으로 판단하고, -1에 가까운 값이면 상대 돌의 사석으로 판단할 수 있다. 형세판단 모델 서버(400)는 상대 돌의 사석일 가능성이 높을수록 점점 커지는 상대 돌과 같은 색의 네모 형태로 표시할 수 있다. Referring to FIG. 12, the situation
또한, 형세판단 모델 서버(400)는 각 교차점에서 판단한 형세 판단 기준을 이용하여 현재 바둑판 상태(S)에서의 계가 결과를 표시할 수 있다. In addition, the status
따라서, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 그 장치는 딥러닝 신경망을 이용하여 바둑 형세를 판단할 수 있다. 또한, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 장치는 바둑 규칙에 따른 집, 사석, 돌, 공배, 빅을 정확히 구분하여 바둑의 형세를 정확히 판단할 수 있다. 또한, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 장치는 바둑 규칙에 따른 집, 사석, 돌, 공배, 빅을 예측하여 바둑의 형세를 정확히 판단할 수 있다. 또한, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 장치는 바둑 대국 중 신속하게 형세를 판단할 수 있다.Accordingly, the deep learning-based Go game service device according to the embodiment may determine the status of Go by using a deep learning neural network. In addition, the deep learning-based Go game service device according to the embodiment can accurately determine the status of Go by accurately classifying houses, sandstones, stones, gongbae, and big according to the Go rule. In addition, the deep learning-based Go game service apparatus according to the embodiment may accurately determine the status of Go by predicting houses, sandstones, stones, gongbae, and big according to the Go rule. In addition, the deep learning-based Go game service apparatus according to the embodiment may quickly determine the status of the Go game.
한편, 형세판단 모델 서버(400)는 딥러닝에 기반해 바둑 대국 시에 특정 기풍을 적용하기 위한 일련의 동작을 수행하기 위하여, 형세 판단 모델(400a)을 통해 형세 판단 모델(400a)로부터 제1 내지 3 전처리 과정을 통해 도출된 형세값을 기반으로 보유 집 정보를 생성할 수 있다. 여기서, 보유 집 정보는 형세 판단을 통하여 예측된 플레이어 및 오포넌트 각각의 보유 집 수를 기반으로 생성된 정보일 수 있다. 즉, 형세판단 모델 서버(400)는 형세 판단 모델(400a)을 통하여, 형세 판단 모델(400a)로부터 예측된 바둑판 상태(S)의 모든 교차점에 대한 형세값(실시예에서, -1 ~ +1 사이의 값)을 기반으로 플레이어와 오포넌트 각각이 보유할 것으로 예상되는 집 수를 산출해 보유 집 정보를 생성할 수 있다. 예를 들어, 보유 집 정보는 플레이어가 80집, 오포넌트가 77집을 보유할 것임을 예측한 정보를 포함하는 형태로 구현될 수 있다. 이러한 보유 집 정보는, 이하에서 후술되는 기풍의 판단 과정에서 소정의 기풍판단 임계치와 비교되는 파라미터인 점수 차이값을 생성하기 위한 기반 데이터로 이용될 수 있다. On the other hand, in order to perform a series of operations for applying a specific ethos during a game of Go based on deep learning, the situation
실시예로, 형세판단 모델 서버(400)는 형세 판단 모델(400a)을 통해 형세 판단을 수행하여 형세값을 도출하고, 도출된 형세값을 기반으로 플레이어의 보유 집 수와 오포넌트의 보유 집 수를 산출하여 보유 집 정보를 생성할 수 있다. 그리고 형세판단 모델 서버(400)는 기풍 판단부(400b)를 통해 생성된 보유 집 수 정보를 기반으로 플레이어 점수값 및 오포넌트 점수값을 획득할 수 있다. 또한, 형세판단 모델 서버(400)는 기풍 판단부(400b)를 통하여, 획득된 플레이어 점수값과 오포넌트 점수값을 기반으로 양 점수값 간의 점수 차이값을 산출할 수 있다. 이후, 형세판단 모델 서버(400)는 기풍 판단부(400b)를 통해 산출된 점수 차이값을 소정의 기풍판단 임계치와 비교하여 기풍판단 정보를 생성할 수 있다. 이에 대한 자세한 설명은 이하에서 후술하기로 한다. In an embodiment, the situation
도 13은 본 발명의 형세 판단 모델(400a)의 형세 판단 결과와 종래 기술에 따른 딥러닝 모델에 의한 형세 판단 결과를 비교한 모습이고, 도 14는 본 발명의 형세 판단 모델(400a)의 형세 판단 결과와 종래 기술에 따른 딥러닝 모델에 의한 형세 판단 결과를 비교한 모습이고, 도 15는 본 발명의 형세 판단 모델(400a)의 형세 판단 결과와 종래 기술에 따른 딥러닝 모델에 의한 형세 판단 결과를 비교한 모습이다.13 is a view comparing the situation determination result of the
도 13을 참조하면, 본 발명의 형세 판단 모델(400a)은 도 13의 (a)의 B영역과 같이 교차점 마다 집, 돌, 사석을 구분하여 형세를 판단한다. 그러나 종래 기술에 따른 딥러닝 모델에 의한 형세 판단 모델(400a)은 도 13의 (b)에서 도 13의 (a)와 대응 되는 영역의 교차점에 대하여 집, 돌, 사석을 구분하지 못한다.Referring to FIG. 13, the
마찬가지로 도 14를 참조하면, 본 발명의 형세 판단 모델(400a)은 도 14의 (a)의 C영역과 같이 교차점 마다 집, 돌, 사석을 구분하여 형세를 판단한다. 그러나 종래 기술에 따른 딥러닝 모델에 의한 형세 판단 모델(400a)은 도 14의 (b)에서 도 13의 (a)와 대응 되는 영역의 교차점에 대하여 집, 돌, 사석을 구분하지 못한다.Likewise, referring to FIG. 14, the
도 15을 참조하면, 본 발명의 형세 판단 모델(400a)은 도 15의 (a)의 D영역과 같이 백집을 제대로 인식한다. 그러나 종래 기술에 따른 딥러닝 모델에 의한 형세 판단 모델(400a)은 도 15의 (b)에서 도 15의 (a)와 대응 되는 영역에서 백집을 구분하지 못한다.Referring to FIG. 15, the
도 16은 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 시스템에 신호 흐름에 대한 예시도이다.16 is an exemplary diagram of a signal flow in a deep learning-based Go game service system according to an embodiment of the present invention.
도 16을 참조하면, 착수 모델 서버(300)는 인공지능 컴퓨터로써 자신의 턴에서 대국에서 이길 수 있도록 바둑돌의 착수를 수행할 수 있도록 바둑 규칙에 따라 스스로 학습하여 딥러닝 모델인 착수 모델을 트레이닝 할 수 있다(s11). 바둑서버(22)는 복수의 기보를 형세판단 모델 서버(400)에게 송신할 수 있다. 형세판단 모델 서버(400)는 트레이닝 데이터 셋을 생성할 수 있다. 먼저, 형세판단 모델 서버(400)는 복수의 기보의 바둑판 상태(S)에서 입력 특징을 추출할 수 있다(S13). 형세판단 모델 서버(400)는 입력 특징을 추출한 바둑판 상태(S)를 이용하여 정답 레이블을 생성할 수 있다(S14). 형세판단 모델 서버(400)은 입력 특징을 입력 데이터로 하고 정답 레이블을 타겟 데이터로 한 트레이닝 데이터 셋을 이용하여 형세 판단 모델(400a)을 트레이닝 할 수 있다(S15). 단말기(100)는 바둑서버(200)에 인공지능 컴퓨터를 상대로 또는 다른 유저 단말기를 상대로 바둑 게임을 요청할 수 있다(S16). 바둑서버(200)는 단말기(100)가 인공지능 컴퓨터를 상대로 바둑 게임을 요청하면 착수 모델 서버(300)에 착수를 요청할 수 있다(S17). 바둑서버(200)는 바둑 게임을 진행하며 단말기(100)와 착수 모델 서버(300)가 자신의 턴에 착수를 수행할 수 있다(S18 내지 S20). 대국 중 단말기(100)는 바둑서버(200)에 형세 판단을 요청할 수 있다(S21). 바둑서버(200)는 형세판단 모델 서버(400)에게 현재 바둑판 상태(S)에 대한 형세 판단을 요청할 수 있다(S22). 형세판단 모델 서버(400)는 현재 바둑판 상태(S)의 입력 특징을 추출하고, 딥러닝 모델인 형세 판단 모델(400a)이 입력 특징을 이용하여 형세값을 생성하고, 바둑판 상태(S)와 형세값을 이용하여 형세 판단을 수행할 수 있다(S23). 형세판단 모델 서버(400)는 형세 판단 결과를 바둑서버(200)에 제공할 수 있다(S24). 바둑서버(200)는 단말기(100)에 형세 판단 결과를 제공할 수 있다(S25).Referring to FIG. 16, the
도 17은 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법 중 형세 판단 방법이고, 도 18은 도 17의 형세 판단 방법 중 정답 레이블을 생성하기 위한 트레이닝 데이터의 전처리 방법이다.FIG. 17 is a method for determining a situation among the deep learning based Go game service methods according to an embodiment of the present invention, and FIG. 18 is a method for preprocessing training data for generating a correct answer label among the methods for determining the situation of FIG. 17.
도 17을 참조하면, 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 형세판단 모델 서버(400)가 바둑서버로부터 복수의 기보를 수신하는 단계(S100)를 포함할 수 있다. Referring to FIG. 17, the deep learning-based Go game service method according to an embodiment of the present invention may include a step (S100) of receiving, by the form
본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 형세판단 모델 서버(400)의 형세 판단 모델(400a) 중 입력 특징 추출부가 복수의 기보의 바둑판 상태(S)에서 입력 특징을 추출하는 단계(S200)를 포함할 수 있다. 입력 특징을 추출하는 방법은 도 7의 설명을 따른다.In the deep learning-based Go game service method according to an embodiment of the present invention, an input feature extraction unit extracts an input feature from a checkerboard state (S) of a plurality of notations among the
본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 형세 판단 모델(400a) 중 정답 레이블 생성부가 입력 특징을 추출한 바둑판 상태(S)에 기초하여 정답 레이블을 생성하는 단계(S300)를 포함할 수 있다. 일 예로, 도 18을 참조하면, 정답 레이블 생성 단계(S300)는 정답 레이블 생성부가 현재 바둑판 상태(S)에서 끝내기 하는 제1 전처리하는 단계(S301)를 포함할 수 있다. 제1 전처리하는 단계(S301)는 도 9 내지 도 10의 설명을 따른다. 정답 레이블 생성 단계(S300)는 정답 레이블 생성부가 제1 전처리된 바둑판 상태(S)에서 불필요한 돌을 제거하는 제2 전처리하는 단계(S302)를 포함할 수 있다. 제2 전처리하는 단계(S302)는 도 9 내지 도 10의 설명을 따른다. 정답 레이블 생성 단계(S300)는 정답 레이블 생성부가 제2 전처리된 바둑판 상태(S)의 각 교차점을 형세값으로 변경하는 제3 전처리하는 단계(S303)를 포함할 수 있다. 제3 전처리하는 단계(S303)는 도 11의 설명을 따른다. 정답 레이블 생성 단계(S300)는 제3 전처리 상태를 정답 레이블로 하여 형세 판단 신경망에 타겟 데이터로 제공하는 단계(S303)를 포함할 수 있다. 타겟 데이터를 제공하는 단계(S301)는 도 7 및 도 11의 설명을 따른다.The deep learning-based Go game service method according to an embodiment of the present invention includes a step (S300) of generating a correct answer label based on a checkerboard state (S) in which the correct answer label generation unit extracts the input feature among the
본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 트레이닝 데이터 셋을 이용하여 형세 판단 모델(400a)의 형세 판단 신경망을 트레이닝하는 단계(S400)을 포함할 수 있다. 형세 판단 신경망을 트레이닝(학습)하는 방법은 도 7의 설명을 따른다.The deep learning-based Go game service method according to an embodiment of the present invention may include training a situation determination neural network of the
본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 형세 판단 신경망의 트레이닝이 완료되어 형세 판단 모델(400a)을 구축하는 단계(S500)를 포함한다. 일 예로, 형세 판단 신경망의 트레이닝의 완료는 도 7의 형세 판단 손실이 소정의 값 이하가 된 경우일 수 있다.The deep learning-based Go game service method according to an embodiment of the present invention includes a step (S500) of constructing a
본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 단말기의 형세 판단 요청에 의해 현재 바둑판 상태(S)가 형세 판단 모델(400a)에 입력되는 단계(S600)를 포함할 수 있다. The deep learning-based Go game service method according to an embodiment of the present invention may include a step (S600) of inputting the current checkerboard state (S) into the
본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 형세 판단 모델(400a)이 입력된 현재 바둑판 상태(S)의 형세 판단을 수행하는 단계(S700)를 포함할 수 있다. 형세 판단을 수행하는 단계(S700)는 도 12에서 설명한 형세 판단 모델(400a)이 현재 바둑판 상태(S)의 형세값을 생성하는 설명을 따를 수 있다.The deep learning-based Go game service method according to an embodiment of the present invention may include a step (S700) of determining the status of the current checkerboard state (S) in which the
본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 형세판단 모델 서버(400)가 형세 판단 결과를 출력하는 단계(S800)를 포함할 수 있다. 형세 판단 결과를 출력하는 단계(S800)는 도 12에서 설명한 형세판단 모델 서버(400)가 형세값, 바둑판의 상태, 소정의 임계값을 이용하여 형세 판단 결과를 제공하는 설명을 따를 수 있다. The deep learning-based Go game service method according to an embodiment of the present invention may include the step S800 of outputting a situation determination result by the situation
따라서, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 딥러닝 신경망을 이용하여 바둑 형세를 판단할 수 있다. 또한, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 바둑 규칙에 따른 집, 사석, 돌, 공배, 빅을 정확히 구분하여 바둑의 형세를 정확히 판단할 수 있다. 또한, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 바둑 규칙에 따른 집, 사석, 돌, 공배, 빅을 예측하여 바둑의 형세를 정확히 판단할 수 있다. 또한, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 바둑 대국 중 신속하게 형세를 판단할 수 있다.Accordingly, the deep learning-based Go game service method according to the embodiment may determine the status of Go by using a deep learning neural network. In addition, the deep learning-based Go game service method according to the embodiment can accurately determine the status of Go by accurately classifying houses, sandstones, stones, gongbae, and big according to the Go rule. In addition, the deep learning-based Go game service method according to the embodiment may accurately determine the situation of Go by predicting houses, sandstones, stones, gongbae, and big according to the Go rule. In addition, the deep learning-based Go game service method according to the embodiment can quickly determine the status of the Go game.
- 기풍 판단부 -Emotion judgment unit
본 발명의 실시예에 따른 기풍 판단부(400b)는, 형세판단 모델 서버(400)가 포함하는 일 구성요소로서, 형세 판단 모델(400a)과 연동하여 형세 판단 모델(400a)을 통해 획득되는 바둑판 상태(S)의 형세값을 기반으로 특정 착수점에 기반한 기풍 판단을 수행할 수 있다. 또한, 기풍 판단부(400b)는 착수 모델로 하여금 판단된 기풍에 기반한 기풍 학습을 수행하게 하여 바둑 게임 플레이 시 특정 기질이나 방식을 나타내는 기풍을 활용하게 할 수 있다. 여기서 기풍 판단은 착수 모델에 의해 예측된 최선의 수인 착수 후보수가 어떠한 기풍을 구현하는지 즉, 어떠한 기풍 카테고리에 포함되는지를 판단하는 것이다. 실시예에서 기풍은, 소정의 기준을 기반으로 1) 기풍 종류 카테고리 또는 2) 1~n 기풍 단계(n=1, 2, 3, …) 카테고리를 따라서 기분류될 수 있다. 예를 들어, 기풍은 기풍 종류 카테고리에 따라 공격적 기풍, 안정적 기풍 및/또는 방어적 기풍 등으로 기분류될 수 있다. 다른 예에서, 기풍은 1~n 기풍 단계 카테고리에 따라 제 1 기풍 단계, 제 2 기풍 단계, …, 제 n 기풍 단계로 기분류되어 있을 수 있다. 자세히, 형세 판단 모델(400a)은 착수 모델 서버(300)로부터 획득되는 착수 후보수 정보에 대한 형세 판단을 수행할 수 있고, 이후 기풍 판단부(400b)는 형세 판단을 통해 도출된 데이터를 기반으로 해당 착수 후보수 정보가 위와 같이 기분류되어 있는 복수의 기풍 카테고리 중에서 어떠한 기풍 카테고리에 포함되는지를 판단하는 기풍 판단을 수행할 수 있다. The
자세히, 기풍 판단부(400b)은 기풍 판단을 수행하기 위하여 먼저 어떤 기풍으로 학습을 수행할지에 대하여 기설정된 정보인 목표기풍 정보를 설정할 수 있다. 여기서, 목표기풍 정보는 다양한 카테고리로 분류되어 있는 복수의 기풍 중에서 어떠한 기풍을 목표로 학습할지 기설정된 정보로서, 1) 기풍 종류 카테고리(예컨대, 공격적 기풍, 안정적 기풍, 방어적 기풍 등) 중 어느 하나를 선택하여 목표 기풍을 설정한 정보, 또는 2) 1~n 기풍 단계 카테고리 중 어느 하나를 선택하여 목표 기풍을 설정한 정보일 수 있다. In detail, the
또한, 기풍 판단부(400b)은 형세 판단 모델(400a)의 형세 판단을 통해 도출된 보유 집 수에 따른 플레이어 점수값과 오포넌트 점수값 간의 점수 차이값을 기반으로 착수 모델 서버(300)로부터 획득된 착수 후보수에 대한 기풍 판단을 수행하기 위한 소정의 기풍판단 임계치를 설정할 수 있다. 즉, 기풍 판단부(400b)은 기설정된 기풍판단 임계치와 착수 후보수 정보에 대한 형세 판단을 통하여 도출된 점수 차이값을 비교하여 기풍 판단을 수행할 수 있다. In addition, the
보다 상세히, 먼저 형세 판단 모델(400a)은 착수 모델 서버(300)로부터 적어도 하나 이상의 착수 후보수 정보를 입력 데이터로 획득할 수 있다. 그리고 형세 판단 모델(400a)은, 획득된 착수 후보수 정보 각각에 대하여 형세 판단을 수행해 보유 집 정보를 생성할 수 있다. 이후, 기풍 판단부(400b)는 형세 판단 모델(400a)로부터 생성된 보유 집 정보를 기반으로 플레이어 점수값과 오포넌트 점수값을 산출할 수 있다. 또한, 기풍 판단부(400b)은 산출된 플레이어 및 오포넌트 점수값에 기초하여 플레이어 점수값과 오포넌트 점수값의 차이값을 나타내는 점수 차이값을 산출할 수 있다. 그리고 기풍 판단부(400b)은, 산출된 점수 차이값을 기설정된 기풍판단 임계치와 비교하여, 적어도 하나 이상의 착수 후보수 정보 각각에 대한 기풍판단 정보를 생성할 수 있다. 여기서, 기풍판단 정보는 바둑 게임 플레이 시 각 착수 후보수의 착수에 의하여 구현되는 기풍의 카테고리를 판단한 정보일 수 있다. 이에 대한 자세한 설명은 이하에서 후술하기로 한다. In more detail, first, the
또한, 기풍 판단부(400b)은 생성된 기풍판단 정보를 기초로 기풍 학습 데이터를 생성할 수 있다. 자세히, 기풍 판단부(400b)은 수신된 착수 후보수 정보 각각에 대하여 도출된 기풍판단 정보 중에서 기설정된 목표기풍 정보와 대응하는 기풍판단 정보를 판단할 수 있다. 그리고 기풍 판단부(400b)은 목표기풍 정보와 대응한다고 판단된 해당 기풍판단 정보를 도출한 착수 후보수 정보를 기반으로 학습을 구현시키는 기풍 학습 데이터를 생성할 수 있다. 또한, 기풍 판단부(400b)은 생성된 기풍 학습 데이터를 착수 모델 서버(300)로 제공할 수 있다. In addition, the
더하여, 기풍 판단부(400b)은 기풍 학습 데이터를 기반으로 학습을 수행한 착수 모델 서버(300)로부터 기풍 학습 성능정보를 입력 데이터로 획득할 수 있으며, 획득된 기풍 학습 성능정보를 기초로 기풍판단 임계치를 조정할 수 있다. 보다 자세한 설명은 이하에서 후술하기로 한다. In addition, the air
한편, 도 19는 본 발명의 형세판단 모델 서버(400)의 기풍 판단부(400b) 구조를 설명하기 위한 도면이다. 도 19를 참조하면 위와 같은 기풍 판단을 위한 일련의 동작을 수행하기 위하여 형세판단 모델 서버(400)는, 위에서 기술한 형세 판단 모델(400a)과 기풍 판단부(400b)를 포함할 수 있고, 형세 판단 모델(400a)과 기풍 판단부(400b)를 상호 연동하여 동작하게 할 수 있다. 실시예에서, 기풍 판단부(400b)는 기풍판단 임계치를 설정하고, 플레이어 점수값과 오포넌트 점수값을 도출하여 점수 차이값을 산출하며, 산출된 점수 차이값을 기반으로 기풍판단 정보를 생성할 수 있다. 또한, 실시예에서 기풍 판단부(400b)는 생성된 기풍판단 정보를 기초로 기풍 학습 데이터를 생성할 수 있으며, 착수 모델 서버(300)로부터 획득되는 기풍 학습 성능정보를 기반으로 기풍판단 임계치를 조정할 수 있다. Meanwhile, FIG. 19 is a diagram for explaining the structure of the
즉, 형세판단 모델 서버(400)의 기풍 판단부(400b)는 본 발명의 실시예에 따라서 형세 판단 모델(400a)과 연동하여 바둑판 상태(S)의 형세 판단을 기반으로 기풍을 판단하고, 이를 기반으로 학습을 수행하여 바둑 게임 플레이 시에 적용하는 프로세스를 구현하기 위한 일 구성요소일 수 있다. 이에 대한 자세한 설명은 이하의 딥러닝을 기반으로 기풍을 판단하여 적용하는 방법의 상세한 설명에서 후술하기로 한다. 또한, 본 실시예에서는 기풍 판단부(400b)가 형세판단 모델 서버(400)에 포함된다고 설명하나 다른 실시예에서는 기풍 판단부(400b)가 바둑서버(200) 및/또는 착수 모델 서버(300)에 포함되거나 별도의 장치로 구현되는 등 다양한 실시예가 가능할 것이다. That is, the
- 딥러닝을 기반으로 기풍을 판단하여 활용하는 방법 -How to determine and use ethos based on deep learning
이하, 도면을 참조하여 딥러닝 신경망을 기반으로 바둑 형세를 판단해 기풍을 판단하고, 이를 기반으로 바둑 게임 플레이 시의 특정 기질이나 방식을 나타내는 기풍을 활용하는 바둑 게임 서비스 제공방법에 대해 상세히 설명하고자 한다. Hereinafter, with reference to the drawings, to determine the ethos by determining the state of Go based on a deep learning neural network, and based on this, to explain in detail a method of providing a Go game service using ethos that represents a specific temperament or method when playing a Go game. do.
도 20은 본 발명의 실시예에 따른 딥러닝 신경망을 기반으로 바둑 형세를 판단하여 바둑 게임 플레이 시의 특정 기질이나 방식을 나타내는 기풍을 활용하는 방법을 설명하기 위한 흐름도이고, 도 21은 본 발명의 실시예에 따른 바둑 형세를 판단하여 바둑 게임 플레이 시의 기풍을 활용하는 방법을 설명하기 위한 개념도이다. FIG. 20 is a flow chart illustrating a method of determining a situation of Go based on a deep learning neural network according to an embodiment of the present invention and utilizing an ethos indicating a specific temperament or method when playing a Go game. A conceptual diagram for explaining a method of determining the status of Go according to an embodiment and utilizing the ethos of playing a Go game.
도 20 및 21을 참조하면, 형세판단 모델 서버(400)는 먼저 목표기풍 정보를 설정하는 단계(S101)를 포함할 수 있다. 자세히, 형세판단 모델 서버(400)는 프로세서(402)를 통하여 어떤 기풍으로 학습을 수행할지에 대하여 기설정된 정보인 목표기풍 정보를 설정할 수 있다. 이때, 목표기풍 정보는 기풍 종류 카테고리 또는 1~n 기풍 단계 카테고리를 기준으로 기분류되어 있는 복수의 기풍 카테고리 중 어느 하나를 선택한 정보일 수 있다. 예를 들어, 목표기풍 정보는 공격적 기풍, 안정적 기풍 및/또는 방어적 기풍 중 어느 하나일 수도 있고, 제 1 기풍 단계, 제 2 기풍 단계, …, 제 n 기풍 단계 중 어느 하나일 수도 있다. 이때, 기풍 종류 카테고리는, 실시예에 따라서 보다 세분화된 카테고리를 더 포함하거나 단순화되어 카테고리를 덜 포함하는 등 다양한 방식으로 구현될 수도 있으며, 1~n 기풍 단계 카테고리는, 실시예에 따라서 제 1 기풍 단계에 가까울수록 방어적 기풍으로 판단되고 제 n 기풍 단계에 가까울수록 공격적 기풍으로 판단되도록 기설정되거나, 그 역으로 기설정되는 등 다양한 방식으로 구현될 수 있다. Referring to FIGS. 20 and 21, the shape
또한, 형세판단 모델 서버(400)는 기풍판단 임계치를 설정하는 단계(S103)를 포함할 수 있다. 자세히, 형세판단 모델 서버(400)는 기풍 판단부(400b)를 통하여 기풍 판단을 수행하기 위한 소정의 기풍판단 임계치를 설정할 수 있다. 예를 들어, 형세판단 모델 서버(400)는 기풍판단 임계치를 소정의 수치로 기설정할 수 있다. In addition, the shape
계속해서, 형세판단 모델 서버(400)는 착수 후보수 정보를 획득하는 단계(S105)를 포함할 수 있다. 자세히, 형세판단 모델 서버(400)는 착수 모델 서버(300)로부터 적어도 둘 이상 도출된 착수 후보수 정보를 수신할 수 있다. 그리고 형세판단 모델 서버(400)는, 수신된 착수 후보수 정보를 형세 판단 모델(400a) 및/또는 기풍 판단부(400b)의 입력 데이터로 이용할 수 있다. Subsequently, the situation
또한, 형세판단 모델 서버(400)는 획득된 착수 후보수 정보 각각에 대한 형세 판단을 수행하여 점수값을 도출하는 단계(S107)를 포함할 수 있다. 자세히, 형세판단 모델 서버(400)는 형세 판단 모델(400a)을 통하여, 착수 모델 서버(300)로부터 획득된 착수 후보수가 적용된 바둑판의 모든 교차점에 대해 흑, 백의 각 영역에 대한 형세 판단을 수행하여 형세값을 도출할 수 있다. 이때, 형세 판단의 기준은 집, 사석, 돌 공배, 빅 등이 될 수 있다. 그리고 형세판단 모델 서버(400)는 도출된 형세값에 기반하여 보유 집 정보를 생성할 수 있다. 자세히, 형세판단 모델 서버(400)는 형세 판단 모델(400a)을 통하여, 플레이어 및 오포넌트가 각각 보유할 것으로 예상되는 집 수를 산출하여 플레이어 집 수와 오포넌트 집 수를 판단한 정보인 보유 집 정보를 생성할 수 있다. In addition, the situation
그리고 보유 집 정보를 생성한 형세판단 모델 서버(400)는, 생성된 보유 집 정보를 기반으로 플레이어 점수값 및 오포넌트 점수값을 도출할 수 있다. 자세히, 형세판단 모델 서버(400)는 기풍 판단부(400b)를 통하여, 보유 집 정보의 플레이어 집 수를 기반으로 플레이어 점수값을 도출하고, 오포넌트 집 수를 기반으로 오포넌트 점수값을 도출할 수 있다. 이때, 형세판단 모델 서버(400)는 점수값을 산출하기 위한 프로세스를 기설정할 수 있다. 예컨대, 형세판단 모델 서버(400)는 1집 당 +1로 점수값 산출 프로세스를 결정할 수 있다. 또한, 형세판단 모델 서버(400)는 착수 후보수 정보에 기반하여 점수값을 산출하므로 플레이어 점수값이 오포넌트 점수값보다 항상 높을 수 있다. 이때, 플레이어 점수값이 오포넌트 점수값보다 낮을 경우 형세판단 모델 서버(400)는, 해당 착수 후보수를 제외한 후 기풍 판단을 수행할 수도 있다. In addition, the status
도 22는 본 발명의 실시예에 따른 착수 후보수 정보 각각에 대한 기풍판단 정보를 생성하는 방법을 설명하기 위한 도면이다. 이때, 도 22는 효과적인 설명을 위하여 플레이어가 흑 바둑돌을 이용하고, 오포넌트가 백 바둑돌을 이용하는 것으로 한정되어 표시될 수 있다. 그러나 실시예에 따라서 플레이어가 백 바둑돌을 이용하고 오포넌트가 흑 바둑돌을 이용할 수도 있음은 자명할 것이다. 예를 들어, 도 22를 참조하면 형세판단 모델 서버(400)는 착수 모델 서버(300)로부터 획득된 제 1 착수 후보수 정보, 제 2 착수 후보수 정보 및 제 3 착수 후보수 정보를 기반으로 각각의 점수값을 산출할 수 있다. 자세히, 형세판단 모델 서버(400)는 먼저 점수값을 산출하기 위한 프로세스를 기설정하여 1집 당 +1로 점수값 산출 프로세스를 결정할 수 있다. 그리고 형세판단 모델 서버(400)는, 점수값 산출 프로세스를 적용하여 각각의 착수 후보수 정보에 매칭된 보유 집 정보를 기반으로 플레이어 점수값 및 오포넌트 점수값을 도출할 수 있다. 자세히, 형세판단 모델 서버(400)는 제 1 착수 후보수 정보에 매칭된 보유 집 정보에 기초하여, 제 1 착수 후보수가 바둑판에 적용된 경우 플레이어 집 수가 79집이면 플레이어 점수값을 +79로 도출할 수 있고, 오포넌트 집 수가 77집이면 오포넌트 점수값을 +77로 도출할 수 있다. 마찬가지로, 형세판단 모델 서버(400)는 제 2 착수 후보수가 바둑판에 적용된 경우 플레이어 집 수가 80집이면 플레이어 점수값을 +80로 도출할 수 있고, 오포넌트 집 수가 77집이면 오포넌트 점수값을 +77로 도출할 수 있다. 또한, 형세판단 모델 서버(400)는 제 3 착수 후보수가 바둑판에 적용된 경우 플레이어 집 수가 91집이면 플레이어 점수값을 +91로 도출할 수 있고, 오포넌트 집 수가 68집이면 오포넌트 점수값을 +68로 도출할 수 있다. 22 is a view for explaining a method of generating ethos determination information for each information on the number of candidates for undertaking according to an embodiment of the present invention. In this case, FIG. 22 may be displayed limited to that the player uses black go stones and the oponants use white go stones for effective explanation. However, it will be apparent that according to an embodiment, a player may use a white go stone and an oponant may use a black go stone. For example, referring to FIG. 22, the status
다음으로, 형세판단 모델 서버(400)는 착수 후보수 정보 각각에 대하여 도출된 플레이어 점수값 및 오포넌트 점수값을 기반으로 점수 차이값을 산출하는 단계(S109)를 포함할 수 있다. 자세히, 형세판단 모델 서버(400)는 기풍 판단부(400b)를 통하여, 착수 모델 서버(300)로부터 획득된 각 착수 후보수 정보에 대한 점수 차이값을 산출할 수 있다. 실시예로, 형세판단 모델 서버(400)는 각 착수 후보수 정보에 대하여 플레이어 점수값과 오포넌트 점수값의 차이값을 산출하고, 그 결과값을 해당 착수 후보수에 대한 점수 차이값으로 결정할 수 있다. 이때, 형세판단 모델 서버(400)는 점수 차이값이 음수로 산출될 경우 해당 착수 후보수를 제외한 후 기풍 판단을 수행할 수 있다. Next, the situation
예를 들어, 도 22를 참조하면 형세판단 모델 서버(400)는 제 1 착수 후보수 정보에 매칭된 플레이어 점수값이 +79이고, 오포넌트 점수값이 +77인 경우, 제 1 착수 후보수에 대한 점수 차이값을 +2로 산출할 수 있다. 또한, 형세판단 모델 서버(400)는 제 2 착수 후보수 정보에 매칭된 플레이어 점수값이 +80이고, 오포넌트 점수값이 +77인 경우, 제 2 착수 후보수에 대한 점수 차이값을 +3으로 산출할 수 있다. 동일하게, 형세판단 모델 서버(400)는 제 3 착수 후보수 정보에 매칭된 플레이어 점수값이 +91이고, 오포넌트 점수값이 +68인 경우, 제 3 착수 후보수에 대한 점수 차이값을 +23으로 산출할 수 있다. For example, referring to FIG. 22, when the player score value matched with the first embarkation candidate number information is +79, and the opposition score value is +77, the first embarkation candidate number is The difference value for the score can be calculated as +2. In addition, when the player score value matched with the second embarkation candidate number information is +80 and the oponant score value is +77, the situation
또한, 착수 후보수 각각에 대하여 점수 차이값을 산출한 형세판단 모델 서버(400)는 산출된 점수 차이값을 기반으로 착수 후보수 정보 각각에 대한 기풍판단 정보를 생성하는 단계(S111)를 포함할 수 있다. 자세히, 형세판단 모델 서버(400)는 기풍 판단부(400b)를 통하여, 바둑 게임 플레이 시 각 착수 후보수의 착수에 의하여 구현되는 기풍의 카테고리를 판단한 정보인 기풍판단 정보를 생성할 수 있다. 보다 상세히, 형세판단 모델 서버(400)는 각 착수 후보수에 대하여, 산출된 점수 차이값과 소정의 기풍판단 임계치를 기반으로 기풍판단 정보를 생성할 수 있다. 예를 들어, 형세판단 모델 서버(400)는, 점수 차이값과 기풍판단 임계치를 비교하여 점수 차이값이 기풍판단 임계치를 초과하는 경우(점수 차이가 큰 경우) 공격적 기풍 카테고리에 포함된다고 판단할 수 있다. 또한, 형세판단 모델 서버(400)는 점수 차이값과 기풍판단 임계치를 비교하여 점수 차이값이 기풍판단 임계치와 대응하는 경우(점수 차이가 작은 경우) 안정적 기풍 카테고리에 포함된다고 판단할 수 있다. 마찬가지로, 형세판단 모델 서버(400)는 점수 차이값과 기풍판단 임계치를 비교하여 점수 차이값이 기풍판단 임계치 미만인 경우(점수 차이가 거의 없을 경우) 방어적 기풍 카테고리에 포함된다고 판단할 수 있다. In addition, the situation
예컨대, 도 22를 참조하면 형세판단 모델 서버(400)는 기풍판단 임계치를 '3'으로 기설정한 경우, 제 1 착수 후보수 정보에 매칭된 점수 차이값이 +2이면 제 1 착수 후보수를 방어적 기풍 카테고리로 판단할 수 있다. 또한, 제 2 착수 후보수 정보에 매칭된 점수 차이값이 +3이면 제 2 착수 후보수를 안정적 기풍 카테고리로 판단할 수 있다. 동일하게, 제 3 착수 후보수 정보에 매칭된 점수 차이값이 +23이면 제 3 착수 후보수를 공격적 기풍 카테고리로 판단할 수 있다. 즉, 형세판단 모델 서버(400)는 착수 모델 서버(300)로부터 획득된 착수 후보수 정보 각각에 대하여 점수 차이값에 기반한 기풍판단 정보를 생성할 수 있다. For example, referring to FIG. 22, when the ethos determination threshold value is preset to '3', the first number of candidates to be initiated is determined if the score difference value matched with the first number of candidates to be initiated is +2. It can be judged as a defensive ethos category. In addition, if the score difference value matched with the information on the number of candidates for launching is +3, the number of candidates for launching may be determined as a stable ethos category. Likewise, if the score difference value matched with the third candidate number information is +23, the number of third candidates may be determined as an aggressive ethos category. That is, the shape
다음으로, 각 착수 후보수 정보에 대하여 기풍판단 정보를 생성한 형세판단 모델 서버(400)는 생성된 기풍판단 정보와 목표기풍 정보를 기반으로 기풍 학습 데이터를 생성하는 단계(S113)를 포함할 수 있다. 자세히, 형세판단 모델 서버(400)는 기풍 판단부(400b)를 통하여, 각 착수 후보수 정보에 대하여 도출된 기풍판단 정보 중 목표기풍 정보와 대응하는 기풍판단 정보를 판단할 수 있다. 그리고 형세판단 모델 서버(400)는, 기풍판단 정보가 목표기풍 정보와 대응한다고 판단된 착수 후보수 정보 선택하여 해당 착수 후보수 정보를 학습 데이터로 결정하는 기풍 학습 데이터를 생성할 수 있다. 이때, 기풍 학습 데이터는 선택된 착수 후보수를 기반으로 생성되는 정보들(예컨대, 착수 후보수 정보, 형세값, 플레이어 점수값, 오포넌트 점수값, 점수 차이값, 기풍판단 정보 등)을 포함하는 데이터일 수 있다. Next, the shape
예를 들어, 도 22를 참조하면 형세판단 모델 서버(400)는 기설정된 목표기풍 정보가 '공격적 기풍 카테고리'이고, 제 1 착수 후보수 정보에 매칭된 기풍판단 정보가 '방어적 기풍 카테고리', 제 2 착수 후보수 정보에 매칭된 기풍판단 정보가 '안정적 기풍 카테고리', 제 3 착수 후보수 정보에 매칭된 기풍판단 정보가 '공격적 기풍 카테고리'인 경우, 목표기풍 정보인 공격적 기풍 카테고리에 대응되는 기풍판단 정보를 가지는 제 3 착수 후보수 정보를 학습 데이터로 결정하는 기풍 학습 데이터를 생성할 수 있다. 이때, 형세판단 모델 서버(400)는 생성되는 기풍 학습 데이터에 제 3 착수 후보수를 기반으로 생성된 정보들(예컨대, 제 3 착수 후보수에 대한 착수 후보수 정보, 형세값, 플레이어 점수값, 오포넌트 점수값, 점수 차이값, 기풍판단 정보 등)을 포함하여 기풍 학습 데이터를 생성할 수 있다. For example, referring to FIG. 22, in the form
또한, 형세판단 모델 서버(400)는 생성된 기풍 학습 데이터를 송신하는 단계(S115)를 포함할 수 있다. 자세히, 형세판단 모델 서버(400)는 적어도 둘 이상의 착수 후보수 정보를 기반으로 기풍 판단을 수행하여 도출된 기풍 학습 데이터를 착수 모델 서버(300)로 송신할 수 있다. In addition, the shape
이후, 형세판단 모델 서버(400)는 기풍 학습 데이터를 수신한 착수 모델 서버(300)로부터 기풍 학습 성능정보를 획득하는 단계(S117)를 포함할 수 있다. 자세히, 형세판단 모델 서버(400)는, 착수 모델 서버(300)로부터 기풍 학습 데이터를 기반으로 셀프 플레이 학습을 수행하여 해당 기풍 학습 데이터가 목표기풍을 학습하기에 적합한 데이터인지 판단한 정보인 기풍 학습 성능정보를 수신할 수 있다. Thereafter, the shape
그리고 형세판단 모델 서버(400)는, 획득된 기풍 학습 성능정보를 기반으로 기풍판단 임계치를 조정하는 단계(S119)를 포함할 수 있다. 자세히, 형세판단 모델 서버(400)는 기풍 판단부(400b)를 통하여, 기풍 학습 성능정보에 기초한 기풍판단 임계치의 조정을 수행할 수 있고, 이를 통해 기풍 판단의 정확성을 향상시킬 수 있다. In addition, the shape
예를 들어, 먼저 형세판단 모델 서버(400)는 목표기풍 정보를 '안정적 기풍 카테고리'로 기설정하고 기풍판단 임계치를 '3'으로 기설정하며, 특정 착수 후보수에 대한 점수 차이값이 해당 기풍판단 임계치인 3과 대응될 때 안정적 기풍 카테고리라고 판단하도록 기설정되어 있을 수 있다. 이후, 형세판단 모델 서버(400)는 해당 기풍판단 임계치와 착수 후보수의 점수 차이값에 기반하여 기풍판단 정보를 생성할 수 있고, 생성된 기풍판단 정보를 기초로 기풍 학습 데이터를 생성할 수 있으며, 생성된 기풍 학습 데이터를 착수 모델 서버(300)로 송신할 수 있다. For example, first, the shape
계속해서, 형세판단 모델 서버(400)로부터 기풍 학습 데이터를 수신한 착수 모델 서버(300)의 기풍학습 보조부(340)는, 수신된 기풍 학습 데이터가 포함하는 착수 후보수에 대한 점수 차이값과, 해당 착수 후보수를 적용한 셀프 플레이 학습을 기반으로 도출된 해당 착수 후보수에 대한 점수 차이값을 비교하여 기풍 학습 성능정보를 생성할 수 있다. 예컨대, 착수 모델 서버(300)는 기풍 학습 데이터 상의 착수 후보수에 대한 점수 차이값이 +3이나, 실제 셀프 플레이 학습을 기반으로 도출된 해당 착수 후보수에 대한 최대 점수 차이값이 +2.5라고 판단된 경우, 예측된 점수 차이값에 소정의 오차가 있음을 판단한 오차 정보를 포함하는 기풍 학습 성능정보를 생성할 수 있다. 이때, 오차 정보는 오차의 유무 및/또는 오차의 정도 정보 등을 포함할 수 있다. 그리고 착수 모델 서버(300)는, 오차 정보를 포함하는 기풍 학습 성능정보를 형세판단 모델 서버(400)로 송신할 수 있다. Subsequently, the ethos learning assistant 340 of the embarking
계속해서, 착수 모델 서버(300)로부터 위와 같은 기풍 학습 성능정보를 수신한 형세판단 모델 서버(400)는, 수신된 기풍 학습 성능정보를 기반으로 목표기풍을 판단하기 위해 기설정된 기풍판단 임계치를 조정할 수 있다. 즉, 예시에서 형세판단 모델 서버(400)는 목표기풍으로 설정된 안정적 기풍 카테고리를 판별하기 위하여 '3'으로 기설정되어 있던 기풍판단 임계치를 기풍 학습 성능정보에 기반하여 '3.5'로 증가 조정할 수 있다. 이는, 기풍판단 임계치가 3으로 기설정되고 점수 차이값이 3과 대응되는 경우에 안정적 기풍이라고 판단되는 상황에서, 셀프 플레이 학습의 결과에 기반한 최대 점수 차이값이 2.5라고 판단된 경우, 기설정된 기풍판단 임계치가 더욱 높아져야 셀프 플레이 학습에 기반한 점수 차이값이 증가되어 3에 가까워질 가능성이 높아질 수 있음에 기인하는 동작일 수 있다. 본 예시에서는 위와 같이 설명하였으나 이외에 다양한 실시예들이 가능함은 자명할 것이다. Subsequently, the shape
이와 같이, 형세판단 모델 서버(400)는 착수 모델 서버(300)로부터 획득된 복수의 착수 후보수 정보를 기반으로 기풍 판단을 수행하여 기풍 학습 데이터를 생성하고, 이러한 기풍 학습 데이터를 기반으로 자가 학습을 수행한 착수 모델 서버(300)로부터 기풍 학습 성능정보를 획득하여 기풍판단 임계치를 조정하는 기풍 판단을 수행함으로써, 획득된 착수 후보수에 대한 기풍 판단 동작의 정확성을 향상시킬 수 있고, 이를 통해 딥러닝을 기반으로 기풍을 판단하고 활용하는 바둑 게임 서비스의 퀄리티를 증대시킬 수 있다. In this way, the shape
한편, 이하에서는 본 발명의 다른 실시예에 따른 딥러닝 기반의 기풍 판단 및 활용 방법에 대해 설명하고자 한다. 후술되는 설명에 있어서 이상에서 기술된 내용과 중복되는 기재는 생략될 수 있다. On the other hand, hereinafter, a method of determining and utilizing a deep learning based ethos according to another embodiment of the present invention will be described. In the description to be described later, descriptions overlapping with those described above may be omitted.
도 23는 본 발명의 다른 실시예에 따른 바둑 형세를 판단하여 바둑 게임 플레이 시의 기풍을 활용하는 방법을 설명하기 위한 개념도이다. 도 23을 참조하면, 먼저 다른 실시예에 따른 착수 모델 서버(300)는, 프로세서(302)를 통하여 학습하고자 하는 기풍을 결정하는 목표기풍 정보를 설정할 수 있다. 여기서, 목표기풍 정보는 실시예와 마찬가지로 기풍 종류 카테고리 또는 1~n 기풍 단계 카테고리를 기준으로 기분류되어 있는 복수의 기풍 카테고리 중 어느 하나를 선택한 정보일 수 있다. 23 is a conceptual diagram for explaining a method of determining the status of Go and utilizing the ethos of playing a Go game according to another embodiment of the present invention. Referring to FIG. 23, first, the
이때, 다른 실시예에 따른 착수 모델 서버(300)는 복수의 착수 모델을 포함하여 각각의 착수 모델별 목표기풍 정보를 설정할 수 있다. 자세히, 착수 모델 서버(300)는 기풍이 분류된 카테고리의 개수에 비례하여 각 기풍 카테고리와 1:1로 매칭되는 적어도 하나 이상의 착수 모델을 포함할 수 있다. 즉, 착수 모델 서버(300)는 각 기풍 카테고리에 각 착수 모델을 1:1로 매칭시킬 수 있고, 각 착수 모델의 목표기풍 정보를 각 착수 모델에 매칭된 기풍 카테고리로 설정할 수 있다. 그리하여 착수 모델 서버(300)는, 각 착수 모델별로 특정 목표기풍에 대한 학습을 수행하게 할 수 있다. In this case, the
예컨대, 착수 모델 서버(300)는 기풍 카테고리의 개수가 n개일 경우 n개의 착수 모델을 포함할 수 있다. 그리고 착수 모델 서버(300)는, 각각의 기풍 카테고리와 착수 모델을 1:1로 매칭하여, 제 1 기풍 카테고리는 제 1 착수 모델의 목표기풍 정보로 설정되고, 제 2 기풍 카테고리는 제 2 착수 모델의 목표 기풍 정보로 설정되며, 같은 방식으로 제 n 기풍 카테고리는 제 n 착수 모델의 목표기풍 정보로 설정되게 할 수 있다. 다른 예로, 착수 모델 서버(300)는 공격적 기풍 카테고리, 안정적 기풍 카테고리, 방어적 기풍 카테고리가 존재할 경우, 각 기풍에 1:1로 매칭되는 적어도 3개의 착수 모델을 포함할 수 있다. 즉, 착수 모델 서버(300)는 공격적 기풍 카테고리에 매칭되는 제 1 착수 모델, 안정적 기풍 카테고리에 매칭되는 제 2 착수 모델, 방어적 기풍 카테고리에 매칭되는 제 3 착수 모델을 포함할 수 있다. 그리고 착수 모델 서버(300)는, 제 1 착수 모델의 목표기풍 정보를 공격적 기풍 카테고리, 제 2 착수 모델의 목표기풍 정보를 안정적 기풍 카테고리, 제 3 착수 모델의 목표기풍 정보를 방어적 기풍 카테고리로 설정할 수 있다. For example, the
또한, 다른 실시예에 따른 형세판단 모델 서버(400)는, 위와 같은 착수 모델 서버(300)로부터 복수의 착수 모델 각각에 대한 목표기풍 정보를 획득할 수 있다. 더하여, 형세판단 모델 서버(400)는 각 착수 모델로부터 적어도 둘 이상씩 도출되는 착수 후보수 정보를 획득할 수 있다. 그리고 형세판단 모델 서버(400)는, 획득된 각 착수 모델별 착수 후보수 정보를 기반으로 기풍 판단을 수행하여 기풍판단 정보를 생성할 수 있다. 또한, 형세판단 모델 서버(400)는 생성된 기풍판단 정보와 각 착수 모델별 목표기풍 정보에 기반하여 각 착수 모델에 대한 기풍 학습 데이터를 생성할 수 있다. 그리고 형세판단 모델 서버(400)는 생성된 기풍 학습 데이터를 매칭된 각 착수 모델로 일괄 제공할 수 있다. In addition, the status
예를 들어, 제 1 착수 모델이 공격적 기풍 카테고리를 목표기풍으로 하고, 제 2 착수 모델이 안정적 기풍 카테고리를 목표기풍으로 하며, 제 3 착수 모델이 방어적 기풍 카테고리를 목표기풍으로 하는 경우, 형세판단 모델 서버(400)는 먼저 각 착수 모델로부터 적어도 둘 이상씩 획득되는 착수 후보수 정보를 기반으로 각각의 착수 후보수에 대한 기풍 판단을 수행할 수 있다. 그리고 형세판단 모델 서버(400)는, 기풍 판단을 통하여 제 1 착수 모델에는 공격적 기풍의 학습에 최적화된 착수 후보수에 기반한 기풍 학습 데이터를 송신하고, 제 2 착수 모델에는 안정적 기풍의 학습에 최적화된 착수 후보수에 기반한 기풍 학습 데이터를 송신하며, 제 3 착수 모델에는 방어적 기풍의 학습에 최적화된 착수 후보수에 기반한 기풍 학습 데이터를 송신하여 일괄 제공할 수 있다. 즉, 형세판단 모델 서버(400)는 복수의 기풍에 대하여 일괄적으로 기풍 판단을 수행하고 학습하게 하여, 보다 효율적으로 기풍을 적용한 바둑 게임 서비스를 구현할 수 있다. For example, if the first initiating model sets the aggressive ethos category as the target ethos, the second initiation model uses the stable ethos category as the target ethos, and the third launching model uses the defensive ethos category as the target ethos The
또한, 다른 실시예에서 위와 같은 착수 모델 서버(300)와 형세판단 모델 서버(400)를 포함 및/또는 연동하는 바둑 게임 서비스 장치는, 착수 모델 서버(300)의 프로세서(302) 및/또는 형세판단 모델 서버(400)의 프로세서(402)를 통하여, 바둑 대국의 진행 상황(예컨대, 경과 시간의 정도 등) 또는 플레이어 선택에 따라서 각기 다른 기풍을 적용하여 바둑 게임 플레이를 수행할 수 있다. 자세히, 바둑 게임 서비스 장치는 기설정된 자동 기풍제어를 위한 설정정보(예컨대, 경과 시간에 따라서 특정 기풍으로 동작하도록 기설정된 정보 등) 또는 플레이어의 선택 입력에 따라서 바둑 대국의 진행 상황 또는 플레이어 선택에 따른 기풍 변환을 수행할 수 있다. 이때, 바둑 게임 서비스 장치는 바둑 게임 플레이에 적용할 기풍을 변환하기 위하여 바둑 대국의 진행 상황에 따라 이용되는 착수 모델을 변경할 수 있다. In addition, in another embodiment, the Go game service device including and/or interlocking with the
예를 들어, 바둑 게임 서비스 장치는 공격적 기풍을 학습한 제 1 착수 모델, 인정적 기풍을 학습한 제 2 착수 모델, 방어적 기풍을 학습한 제 3 착수 모델이 존재하는 경우, 기설정된 자동 기풍제어 설정정보 또는 플레이어의 선택에 따라서 바둑 대국의 초반에는 제 2 착수 모델을 이용하여 안정적 기풍으로 바둑 게임을 플레이하고, 바둑 대국의 중반에는 제 3 착수 모델을 이용하여 방어적 기풍으로 바둑 게임을 플레이하며, 바둑 대국의 후반에는 제 1 착수 모델을 이용하여 공격적 기풍으로 바둑 게임을 플레이할 수 있다. 즉, 바둑 게임 서비스 장치는 바둑 대국의 진행 상황 또는 플레이어 선택에 따라 각기 다른 기풍을 이용함으로써, 딥러닝 신경망을 기반으로 바둑 게임 플레이 시 기풍을 활용하는 바둑 게임 서비스의 사용성을 보다 향상시킬 수 있다. For example, the Go game service device has a preset automatic airflow control when there is a first launching model that has learned an aggressive ethos, a second launching model that has learned an admissive airflow, and a third launching model that has learned a defensive ethos. Depending on the setting information or the player's choice, at the beginning of the Go game, the second launch model is used to play the Go game with a stable ethos, and in the middle of the Go game, the third launch model is used to play the Go game with a defensive ethos. In the second half of the game of Go, the first launch model can be used to play the Go game with an aggressive spirit. That is, the Go game service device may further improve the usability of a Go game service that utilizes the ethos when playing a Go game based on a deep learning neural network by using different ethos according to the progress of the Go game or player selection.
이상, 본 발명의 실시예에 따른 딥러닝을 기반으로 하는 바둑 게임 서비스 방법 및 그 장치는, 바둑 규칙에 따른 집, 사석, 돌, 공배, 빅을 정확히 구분하여 바둑의 형세를 예측함으로써 바둑의 형세 및 특정 착수점에 대한 기풍을 정확하게 판단할 수 있는 효과가 있다. As described above, the method and apparatus for a Go game service based on deep learning according to an embodiment of the present invention accurately classify houses, sandstones, stones, gongbae, and big according to the Go rule to predict the situation of Go, thereby predicting the situation of Go. And there is an effect of being able to accurately determine the ethos for a specific starting point.
또한, 본 발명의 실시예에 따른 딥러닝을 기반으로 하는 바둑 게임 서비스 방법 및 그 장치는, 바둑 게임 플레이 시에 다양한 기풍을 기반으로 대국의 진행을 도모함으로써 다각화된 플레이 방식에 기초하여 바둑 대국을 수행할 수 있고 정밀하게 대국 난이도를 조절할 수 있으며, 이를 통해 바둑 게임의 퀄리티 및 흥미를 증진시킬 수 있는 효과가 있다. In addition, the Go game service method and apparatus thereof based on deep learning according to an embodiment of the present invention promotes the progress of the game based on various ethos when playing the Go game, thereby providing a game of Go based on a diversified play method. It can be performed and the difficulty of the game can be precisely adjusted, and through this, the quality and interest of the Go game can be improved.
또한, 본 발명의 실시예에 따른 딥러닝을 기반으로 하는 바둑 게임 서비스 방법 및 그 장치는, 플레이어와 오포넌트 간의 점수 차이에 기초하여 기풍을 판단하고 이에 기반한 대국을 수행함으로써 단지 이기는 것뿐만 아니라 점수의 차이까지 고려한 바둑 게임 플레이를 수행할 수 있는 효과가 있다. In addition, the deep learning-based Go game service method and device thereof according to an embodiment of the present invention determine not only the winning but also the score by determining the ethos based on the difference between the score between the player and the oponant, and performing a match based on this. There is an effect that can perform the game play of Go considering the difference of.
또한, 본 발명의 실시예에 따른 딥러닝을 기반으로 하는 바둑 게임 서비스 방법 및 그 장치는, 목표로 하는 특정 기풍에 최적화된 학습이 수행되도록 동작함으로써 기풍을 구현하기 위한 학습을 효율적, 체계적으로 구현할 수 있는 효과가 있다. In addition, the deep learning-based Go game service method and device thereof according to an embodiment of the present invention can efficiently and systematically implement learning for implementing the ethos by operating to perform learning optimized for a specific ethos of a target. It can have an effect.
또한, 이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.Further, 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 in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded in the computer-readable recording medium may be specially designed and constructed for the present invention or may be known and usable to those skilled in the computer software field. 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 magnetic-optical media such as floptical disks. medium), and a hardware device specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device can be changed to one or more software modules to perform the processing according to the present invention, and vice versa.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.The 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, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of the systems may be omitted. In addition, the connection or connection members of the lines between the components shown in the drawings exemplarily represent functional connections and/or physical or circuit connections, and in an actual device, various functional connections that can be replaced or added Connections, or circuit connections. In addition, if there is no specific mention such as “essential” or “importantly”, it may not be an essential component for the application of the present invention.
또한 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술할 특허청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허청구범위에 의해 정하여져야만 할 것이다.In addition, in the detailed description of the present invention, it has been described with reference to preferred embodiments of the present invention, but those skilled in the art or those of ordinary skill in the relevant technical field will have And it will be understood that various modifications and changes can be made to the present invention within a range not departing from the technical field. Accordingly, the technical scope of the present invention should not be limited to the contents described in the detailed description of the specification, but should be determined by the claims.
100 단말기
200 바둑서버
300 착수 모델 서버
310 탐색부
320 셀프 플레이부
330 착수 신경망
340 기풍학습 보조부
400 형세판단 모델 서버
400a 형세 판단 모델
410 형세 판단 신경망
420 입력 특징 추출부
430 정답 레이블 생성부
400b 기풍 판단부100 terminals
200 Go Server
300 launch model server
310 Search section
320 Self Play Department
330 initiating neural network
340 ethos learning assistant
400 profile judgment model server
400a position judgment model
410 Neural Network
420 input feature extraction unit
430 correct answer label generator
400b ethos judgment unit
Claims (14)
형세 판단 모델 및 기풍 판단부을 저장하는 저장부; 및
상기 형세 판단 모델을 독출하여 상기 형세 판단 모델의 학습을 수행하고 상기 학습된 형세 판단 모델을 이용하여 상기 착수 후보수가 적용된 바둑판의 형세를 판단하며, 상기 기풍 판단부가 상기 판단된 형세를 기반으로 상기 착수 후보수에 대한 기풍을 판단한 정보인 기풍판단 정보를 생성하는 프로세서;를 포함하고,
상기 형세 판단 모델은,
입력된 바둑판 상태에서 입력 특징을 추출하는 입력 특징 추출부; 및
상기 추출된 입력 특징을 기초하여 상기 입력된 바둑판 상태의 교차점에 대한 형세값을 생성하는 형세 판단 신경망;을 포함하고,
상기 기풍 판단부는,
상기 형세값을 기반으로 보유 집 정보를 생성하고,
상기 보유 집 정보는,
플레이어 집 수와 오포넌트 집 수를 산출한 정보인
형세판단 모델 서버. A communication unit for receiving at least two or more embarkation candidates based on a plurality of notations and a checkerboard state;
A storage unit for storing a situation determination model and an ethos determination unit; And
The situation determination model is read out, the learning of the situation determination model is performed, the situation of the board to which the number of embarkation candidates is applied is determined by using the learned situation determination model, and the ethos determination unit is initiated based on the determined situation. Including; and a processor for generating efferent determination information that is information for determining the ethos of the number of candidates,
The situation judgment model,
An input feature extraction unit for extracting an input feature in the input checkerboard state; And
Including a situation determination neural network that generates a position value for the intersection of the input checkerboard state based on the extracted input feature,
The ethos determination unit,
Generating house information based on the above position value,
The above holding house information,
The information that calculated the number of player houses and the number of owner houses
Form judgment model server.
상기 기풍 판단부는,
상기 형세값과 소정의 임계값 및 돌의 유무를 이용하여 플레이어와 오포넌트의 집 영역을 판단하여 상기 보유 집 정보를 생성하는
형세판단 모델 서버. The method of claim 1,
The ethos determination unit,
The holding house information is generated by determining the house area of the player and the owner using the position value, a predetermined threshold value, and the presence or absence of a stone.
Form judgment model server.
상기 기풍 판단부은,
착수 모델이 학습하고자 하는 기풍을 결정하는 목표기풍 정보를 설정하는
형세판단 모델 서버. The method of claim 1,
The ethos determination unit,
The starting model sets the target wind information that determines the wind to learn.
Form judgment model server.
상기 기풍 판단부은,
상기 착수 후보수와 상기 목표기풍 정보를 기반으로 상기 기풍판단 정보를 생성하고,
상기 보유 집 정보를 기반으로 플레이어 점수값과 오포넌트 점수값을 산출하며, 상기 산출된 플레이어 점수값과 오포넌트 점수값을 기반으로 점수 차이값을 생성하는
형세판단 모델 서버. The method of claim 3,
The ethos determination unit,
Generate the ethos determination information based on the number of candidates for launch and the target ethos information,
Calculating a player score value and an offense score value based on the holding house information, and generating a score difference value based on the calculated player score value and the offant score value.
Form judgment model server.
상기 기풍 판단부는,
상기 착수 후보수에 대한 기풍 판단 프로세스의 일 파라미터인 기풍판단 임계치를 설정하고, 상기 점수 차이값과 상기 기풍판단 임계치를 비교하여 상기 착수 후보수 각각에 대한 상기 기풍판단 정보를 생성하는
형세판단 모델 서버. The method of claim 4,
The ethos determination unit,
Setting an air wind determination threshold that is a parameter of the air wind determination process with respect to the number of launch candidates, and comparing the score difference value with the air wind determination threshold to generate the air wind determination information for each of the launch candidates.
Form judgment model server.
상기 기풍 판단부는,
상기 기풍판단 정보를 기반으로 착수 모델의 자가 학습을 보조하는 기풍 학습 데이터를 생성하는
형세판단 모델 서버. The method of claim 5,
The ethos determination unit,
Generating ethos learning data that assists self-learning of the initiation model based on the ethos determination information
Form judgment model server.
상기 통신부는,
상기 착수 모델로부터 기풍 학습 성능정보를 획득하고,
상기 기풍 판단부는,
상기 착수 모델로부터 획득되는 기풍 학습 성능정보를 기반으로 상기 기풍판단 임계치를 조정하는
형세판단 모델 서버. The method of claim 6,
The communication unit,
Obtaining ethos learning performance information from the initiation model,
The ethos determination unit,
Adjusting the airflow determination threshold based on airflow learning performance information obtained from the initiation model
Form judgment model server.
착수 모델을 저장하는 저장부; 및
상기 착수 모델을 독출하고 상기 착수 모델의 학습을 수행하고, 상기 학습된 착수 모델을 이용하여 바둑판 상태에 기반한 둘 이상의 착수 후보수를 생성하는 프로세서;를 포함하고,
상기 착수 모델은,
몬테 카를로 트리 서치(Monte Carlo Tree Search; MCTS)를 기반으로 상기 착수 후보수를 제공하는 탐색부;와, 상기 탐색부를 가이드하는 착수 신경망;과, 셀프 플레이를 수행하여 상기 착수 신경망이 자가 학습되도록 하는 셀프 플레이부; 및 상기 기풍 학습 데이터에 기반한 상기 자가 학습을 보조하는 기풍학습 보조부를 포함하고,
상기 셀프 플레이부는,
상기 기풍 학습 데이터를 기초로 학습된 상위버전 착수 모델과, 하위버전 착수 모델 간의 바둑 게임을 수행하는
착수 모델 서버.Communication unit for receiving the ethos learning data;
A storage unit for storing the starting model; And
Including; a processor that reads out the initiation model, performs training of the initiation model, and generates two or more initiation candidates based on a checkerboard state by using the learned initiation model,
The launch model,
A search unit that provides the number of starting candidates based on a Monte Carlo Tree Search (MCTS); and, an initiating neural network guiding the search unit; and performing self-play so that the initiating neural network is self-learning. Self-play unit; And an ethos learning assistant for supporting the self-learning based on the ethos learning data,
The self-play unit,
Performing a Go game between the higher version launching model and the lower version launching model learned based on the ethos learning data
Launch model server.
상기 기풍학습 보조부는,
상기 자가 학습의 결과를 기반으로 기풍판단 정보를 진단한 정보인 기풍 학습 성능정보를 생성하는
착수 모델 서버. The method of claim 8,
The ethos learning auxiliary unit,
Generating ethos learning performance information, which is information about diagnosing ephemeris determination information based on the result of the self-learning
Launch model server.
상기 프로세서가 목표기풍 정보를 설정하는 단계;
상기 기풍 판단부가 기풍판단 임계치를 설정하는 단계;
상기 통신부가 바둑판 상태에 기반한 둘 이상의 착수 후보수를 획득하는 단계;
상기 프로세서가 상기 형세 판단 모델을 이용하여 상기 착수 후보수가 적용된 바둑판 상태의 형세를 판단하는 단계;
상기 프로세서가 상기 기풍 판단부를 이용하여 상기 판단된 형세를 기반으로 상기 착수 후보수 각각에 대한 점수 차이값을 산출하는 단계;
상기 프로세서가 상기 기풍 판단부를 이용하여 상기 산출된 점수 차이값과 상기 기풍판단 임계치를 기반으로 상기 착수 후보수 각각에 대한 기풍판단 정보를 생성하는 단계; 및
상기 통신부가 상기 생성된 기풍판단 정보와 상기 목표기풍 정보를 기반으로 상기 착수 후보수 각각에 대한 상기 기풍 학습 데이터를 생성하여 송신하는 단계를 포함하고,
상기 기풍판단 정보는,
상기 착수 후보수의 착수에 의하여 구현되는 기풍의 카테고리를 판단한 정보인
딥러닝을 기반으로 하는 바둑 게임 서비스 방법.The communication unit, the situation determination model, and a storage unit in which the mood determination unit are stored, the situation determination model server including a processor that drives the situation determination model and the airflow determination unit determines the state of the board by determining the state of the board to determine the state of spirit, and to generate the airborne learning data. In the deep learning-based Go game service method,
Setting, by the processor, target wind information;
Setting, by the airflow determination unit, an airflow determination threshold;
Obtaining, by the communication unit, two or more embarkation candidates based on a checkerboard state;
Determining, by the processor, a situation in a checkerboard state to which the number of candidates for launch is applied using the situation determination model;
Calculating, by the processor, a score difference value for each of the number of candidates for launch based on the determined situation using the ethos determination unit;
Generating, by the processor, air-wind determination information for each of the number of candidates for launch based on the calculated score difference value and the air-wind determination threshold using the air-wind determination unit; And
And generating and transmitting, by the communication unit, the ethos learning data for each of the number of embarkation candidates based on the generated ethos determination information and the target ethos information,
The air condition determination information,
Information that determines the category of ethos implemented by the initiation of the number of candidates
Go game service method based on deep learning.
착수 모델 서버로부터 기풍 학습 성능정보를 수신하는 단계를 더 포함하고,
상기 기풍 학습 성능정보는,
상기 착수 모델 서버가 상기 기풍 학습 데이터를 기반으로 상기 기풍판단 정보를 진단한 정보인
딥러닝을 기반으로 하는 바둑 게임 서비스 방법.The method of claim 10,
Further comprising the step of receiving the ethos of learning performance information from the starting model server,
The ethos learning performance information,
Information obtained by diagnosing the air wind determination information based on the air wind learning data by the launch model server
Go game service method based on deep learning.
상기 기풍 학습 성능정보를 기반으로 상기 기풍판단 임계치를 조정하는 단계를 더 포함하는
딥러닝을 기반으로 하는 바둑 게임 서비스 방법.The method of claim 11,
Further comprising the step of adjusting the air-wind determination threshold based on the air-air learning performance information
Go game service method based on deep learning.
상기 점수 차이값을 산출하는 단계는,
상기 착수 후보수 각각에 대한 형세 판단을 기반으로 형세값을 도출하여 플레이어 집 수와 오포넌트 집 수를 산출한 정보인 보유 집 정보를 생성하는 단계와,
상기 보유 집 정보를 기반으로 플레이어 점수값과 오포넌트 점수값을 산출하여 상기 점수 차이값을 생성하는 단계를 포함하는
딥러닝을 기반으로 하는 바둑 게임 서비스 방법.The method of claim 10,
The step of calculating the score difference value,
Generating house information, which is information obtained by calculating the number of player houses and the number of owners, by deriving a position value based on the position determination for each of the number of candidates for launch;
Comprising the step of generating the score difference value by calculating a player score value and an offense score value based on the holding house information
Go game service method based on deep learning.
상기 기풍의 카테고리는,
공격적 기풍, 안정적 기풍 및 방어적 기풍을 포함하고,
상기 공격적 기풍은 상기 점수 차이값이 상기 기풍판단 임계치보다 큰 경우이고, 상기 안정적 기풍은 상기 점수 차이값이 상기 기풍판단 임계치와 동일한 경우이고, 상기 방어적 기풍은 상기 점수 차이값이 상기 기풍판단 임계치보다 작은 경우인
딥러닝을 기반으로 하는 바둑 게임 서비스 방법. The method of claim 10,
The categories of the above ethos are,
Includes aggressive, stable, and defensive ethos,
The aggressive ethos is a case in which the score difference value is greater than the effervescence determination threshold, the stable ethos is when the score difference value is the same as the effervescence judgment threshold, and the defensive ethos is when the score difference value is the effervescence judgment threshold Less than
Go game service method based on deep learning.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190085337A KR102299140B1 (en) | 2019-07-15 | 2019-07-15 | Method and device for baduk game service based on deep-learning |
JP2020121161A JP7065912B2 (en) | 2019-07-15 | 2020-07-15 | Go game service system and service method based on deep learning |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190085337A KR102299140B1 (en) | 2019-07-15 | 2019-07-15 | Method and device for baduk game service based on deep-learning |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210008757A true KR20210008757A (en) | 2021-01-25 |
KR102299140B1 KR102299140B1 (en) | 2021-09-07 |
Family
ID=74238079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190085337A KR102299140B1 (en) | 2019-07-15 | 2019-07-15 | Method and device for baduk game service based on deep-learning |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7065912B2 (en) |
KR (1) | KR102299140B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220141979A (en) * | 2021-04-14 | 2022-10-21 | 엔에이치엔클라우드 주식회사 | Method and device for deep-learning based simulation count management of go game service |
KR102483510B1 (en) * | 2021-09-27 | 2022-12-30 | 이승순 | Board game service robot system by using AI |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022176808A (en) | 2021-05-17 | 2022-11-30 | 三菱重工業株式会社 | Learning device, learning method and learning program |
JP7186321B1 (en) * | 2022-04-11 | 2022-12-08 | 株式会社Cygames | Situation evaluation device, situation evaluation method, and program |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090120054A (en) * | 2008-05-19 | 2009-11-24 | (주)에이아이바둑 | Method for displaying play in artificial intelligence program paduk |
KR20120092841A (en) * | 2011-02-14 | 2012-08-22 | 주식회사 엔씨소프트 | Method and system of recommending stone placement for baduk service |
KR20130089931A (en) * | 2012-01-13 | 2013-08-13 | 박성군 | System and method for providing paduk situation stands using application |
KR20150129265A (en) | 2014-05-09 | 2015-11-19 | 숭실대학교산학협력단 | Method and server for providing artificial intelligence for baduk service |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3438202B2 (en) * | 2001-08-03 | 2003-08-18 | コナミ株式会社 | Game program for Go game |
JP2004290227A (en) * | 2003-03-25 | 2004-10-21 | Kozo Kubo | Flag utilization system for game of go or the like in the internet or the like |
JP3830949B2 (en) * | 2004-07-08 | 2006-10-11 | 株式会社コナミデジタルエンタテインメント | Game progress control device, game progress control method, and game progress control program |
JP2009254406A (en) * | 2008-04-11 | 2009-11-05 | Nintendo Co Ltd | Game apparatus and game program |
JP4806459B2 (en) * | 2009-07-09 | 2011-11-02 | 株式会社コナミデジタルエンタテインメント | Game machine and computer program used therefor |
-
2019
- 2019-07-15 KR KR1020190085337A patent/KR102299140B1/en active IP Right Grant
-
2020
- 2020-07-15 JP JP2020121161A patent/JP7065912B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090120054A (en) * | 2008-05-19 | 2009-11-24 | (주)에이아이바둑 | Method for displaying play in artificial intelligence program paduk |
KR20120092841A (en) * | 2011-02-14 | 2012-08-22 | 주식회사 엔씨소프트 | Method and system of recommending stone placement for baduk service |
KR20130089931A (en) * | 2012-01-13 | 2013-08-13 | 박성군 | System and method for providing paduk situation stands using application |
KR20150129265A (en) | 2014-05-09 | 2015-11-19 | 숭실대학교산학협력단 | Method and server for providing artificial intelligence for baduk service |
Non-Patent Citations (2)
Title |
---|
"AlphaGo의 인공지능 알고리즘 분석", 추형석 외 2명, SPRi 소프트웨어정책연구소, SPRi Issue Report 제2016-002호 ver.1.0(2016.03.03.)* * |
"세기의 대결, 알파고의 역습", 인터넷 cyberoro 뉴스 기사(2016.03.08.)* * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220141979A (en) * | 2021-04-14 | 2022-10-21 | 엔에이치엔클라우드 주식회사 | Method and device for deep-learning based simulation count management of go game service |
KR102483510B1 (en) * | 2021-09-27 | 2022-12-30 | 이승순 | Board game service robot system by using AI |
Also Published As
Publication number | Publication date |
---|---|
JP2021013750A (en) | 2021-02-12 |
KR102299140B1 (en) | 2021-09-07 |
JP7065912B2 (en) | 2022-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20210008757A (en) | Method and device for baduk game service based on deep-learning | |
KR102316930B1 (en) | Deep-learning based baduk game service method and apparatus thereof | |
US20180365557A1 (en) | Information processing method and information processing apparatus | |
CN113561986B (en) | Automatic driving automobile decision making method and device | |
KR102299138B1 (en) | Deep-learning based baduk game service method and apparatus thereof | |
CN114139637B (en) | Multi-agent information fusion method and device, electronic equipment and readable storage medium | |
US20210342516A1 (en) | Routing connections in integrated circuits based on reinforcement learning | |
KR102299135B1 (en) | Method and device that providing deep-running-based baduk game service | |
CN110059646A (en) | The method and Target Searching Method of training action plan model | |
CN111701246B (en) | Decision configuration method and device for game AI | |
US11738271B2 (en) | Method and apparatus for predicting game difficulty by using deep-learning based game play server | |
KR102299141B1 (en) | Method and device for providing deep-running-based baduk game service | |
CN112274935B (en) | AI model training method, application method computer device and storage medium | |
KR102292046B1 (en) | Deep-learning based baduk game service method and apparatus thereof | |
US20220398497A1 (en) | Control apparatus, control system, control method and program | |
US20220150148A1 (en) | Latency mitigation system and method | |
JP7322878B2 (en) | Information processing device and information processing method | |
KR102595656B1 (en) | Deep-learning based jang-gi game service method and apparatus thereof | |
KR102591226B1 (en) | Method and device for preventing long-ladder of deep learning-based go game service | |
KR102537471B1 (en) | Method and device for deep-learning based computation time management of go game service | |
KR102572342B1 (en) | Method and device for deep-learning based simulation count management of go game service | |
KR20220157017A (en) | Method and device for providing service that deep learning-based imperfect information game | |
KR20220164323A (en) | Method and device for providing service that deep learning-based imperfect information game | |
KR20240043913A (en) | Method and system for providing playing-yut ai based on playing-yut-specific data type | |
KR20240030680A (en) | Method and system for training and playing of playing-yut ai based on deep learning |
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 |