KR20210016750A - 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치 - Google Patents

딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치 Download PDF

Info

Publication number
KR20210016750A
KR20210016750A KR1020190094900A KR20190094900A KR20210016750A KR 20210016750 A KR20210016750 A KR 20210016750A KR 1020190094900 A KR1020190094900 A KR 1020190094900A KR 20190094900 A KR20190094900 A KR 20190094900A KR 20210016750 A KR20210016750 A KR 20210016750A
Authority
KR
South Korea
Prior art keywords
value
game
model
network
auxiliary
Prior art date
Application number
KR1020190094900A
Other languages
English (en)
Other versions
KR102299138B1 (ko
Inventor
이창율
박근한
박정훈
박철웅
이상현
Original Assignee
엔에이치엔 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔에이치엔 주식회사 filed Critical 엔에이치엔 주식회사
Priority to KR1020190094900A priority Critical patent/KR102299138B1/ko
Publication of KR20210016750A publication Critical patent/KR20210016750A/ko
Application granted granted Critical
Publication of KR102299138B1 publication Critical patent/KR102299138B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F3/00Board games; Raffle games
    • A63F3/02Chess; Similar board games
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치는 딥러닝 신경망을 이용하여 게임 규칙에 맞는 정확한 가치값을 생성하는 방법 및 그 장치에 관한 것이다. 본 발명의 실시예에 따른 착수 모델 서버는, 제1 바둑게임 규칙에 관한 복수의 기보를 수신하는 통신부; 착수 모델, 가치값 결정부 및 보조 가치망을 저장하는 저장부; 및 상기 착수 모델을 독출하여 제2 바둑게임 규칙에 기초하여 상기 착수 모델의 학습을 수행하고 상기 학습된 착수 모델을 이용하여 바둑판 상태에 기반한 제1 가치값(V1)을 생성하고, 상기 보조 가치망을 독출하여 상기 복수의 기보를 트레이닝 데이터 셋으로 이용하여 상기 보조 가치망의 학습을 수행하고 상기 학습된 보조 가치망을 이용하여 바둑판 상태에 기반한 제2 가치값(V2)을 생성하고, 상기 가치값 결정부를 독출하여 상기 제1 가치값(V1) 및 상기 제2 가치값(V2)에 기초하여 최종 가치값(Vd)을 생성하는 프로세서;를 포함할 수 있다. 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치는 덤 규칙이 다른 바둑 게임에서 정확한 가치값을 생성할 수 있다.

Description

딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치{DEEP-LEARNING BASED BADUK GAME SERVICE METHOD AND APPARATUS THEREOF}
딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치에 관한 것이다. 보다 상세하게는 딥러닝 신경망을 이용하여 게임 규칙에 맞는 정확한 가치값을 생성하는 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치에 관한 것이다.
스마트폰, 태블릿 PC, PDA(Personal Digital Assistant), 노트북 등과 같은 사용자 단말의 이용이 대중화되고 정보 처리 기술이 발달함에 따라 사용자 단말을 이용하여 보드 게임의 일종인 바둑을 할 수 있게 되었고 나아가 사람이 아닌 프로그램된 인공지능 컴퓨터와 바둑 대국을 할 수 있게 되었다.
바둑은 다른 보드게임인 체스나 장기와 비교하였을 때 경우의 수가 많아서 인공지능 컴퓨터가 사람 수준으로 대국을 하는데 한계가 있었고 인공지능 컴퓨터의 기력을 높이기 위한 연구가 활발하게 진행되고 있는 추세이다. 최근 개발자들은 인공지능 컴퓨터에 몬테 카를로 트리 서치(Monte Carlo Tree Search; MCTS) 알고리즘과 딥러닝 기술을 적용하여 인공지능 컴퓨터의 기력을 프로기사들의 수준 이상으로 올렸다. 모테 카를로 트리 서치(CMTS) 알고리즘은 정책값과 가치값을 이용하여 최선의 착수 후보점을 찾도록 하는 알고리즘이다. 가치값은 인공지능 컴퓨터의 신경망을 바둑 규칙에 따라 학습시킨 후 생성할 수 있다.
또한, 바둑 규칙 중 하나인 덤은 흑 돌의 선수가 먼저 착수를 하는데 먼저 착수하는 사람이 유리하기 때문에 나중에 두는 백 돌의 선수에게 그 불리함을 보상해 주기 위하여 집을 계산할 때 백돌의 선수에게 집을 더해주는 규칙이다. 덤 규칙은 대회 마다 다르게 적용한다. 예를 들어 중국은 7.5집 덤을 쓰고 있고, 한국과 일본은 6.5집 덤을 쓰고 있다.
그러나, 기존 인공지능 컴퓨터의 신경망은 한 가지 덤에만 트레이닝이 가능하여 특정 덤으로 트레이닝 된 신경망으로 인공지능 컴퓨터가 다른 덤의 규칙에서 시합을 할 경우 가치값을 잘 못 예측하여 현재 바둑판 상태에서 좋은 수를 두지 않거나 현재 게임에 지고 있다고 판단하여 기권하는 문제가 있었다. 예를 들어, 덤 6.5집의 규칙의 바둑 게임을 두는 경기에서, 덤 7.5집의 규칙으로 학습한 인공지능 컴퓨터가 흑돌이고 흑의 집이 14.5집이고, 덤 6.5 집을 포함한 백의 집이 14집인 경우 일 수 있다. 이 경우, 덤 7.5집의 규칙으로 학습한 인공지능 컴퓨터는 0.5집으로 이기고 있음에도 덤을 7.5집으로 고려하기 때문에 1집을 더 획득해야 이긴다고 예측하고 0.5집차로 진다고 잘못 예측하는 문제가 있다. 아울러, 이와 같은 상황이 경기 후반부일 경우, 덤 7.5집의 규칙으로 학습한 인공지능 컴퓨터는 0.5집 차이로 진다고 예측하여 기권하는 문제가 있다.
특허문헌 1: 공개특허공보 제10-2015-0129265호
본 발명은 전술한 문제점을 해결하기 위해, 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치에 관한 것이다. 보다 상세하게는 딥러닝 신경망을 이용하여 게임 규칙에 맞는 정확한 가치값을 생성하는 방법 및 그 장치를 제안하고자 한다.
자세히, 본 발명은 덤 규칙이 다른 바둑 게임에서 정확한 가치값을 생성할 수 있는 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치를 제공함을 목적으로 한다.
또한, 본 발명은 덤 규칙이 다른 바둑 게임에서 이기고 있는 경기에서 기권하지 않는 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치를 제공함을 목적으로 한다.
또한, 본 발명은 덤 규칙이 다른 바둑 게임에서 바둑판 상태에 따른 좋은 착수 후보점을 찾을 수 있는 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치를 제공함을 목적으로 한다.
실시예에 따른 착수 모델 서버는, 제1 바둑게임 규칙에 관한 복수의 기보를 수신하는 통신부; 착수 모델, 가치값 결정부 및 보조 가치망을 저장하는 저장부; 및 상기 착수 모델을 독출하여 제2 바둑게임 규칙에 기초하여 상기 착수 모델의 학습을 수행하고 상기 학습된 착수 모델을 이용하여 바둑판 상태에 기반한 제1 가치값(V1)을 생성하고, 상기 보조 가치망을 독출하여 상기 복수의 기보를 트레이닝 데이터 셋으로 이용하여 상기 보조 가치망의 학습을 수행하고 상기 학습된 보조 가치망을 이용하여 바둑판 상태에 기반한 제2 가치값(V2)을 생성하고, 상기 가치값 결정부를 독출하여 상기 제1 가치값(V1) 및 상기 제2 가치값(V2)에 기초하여 최종 가치값(Vd)을 생성하는 프로세서;를 포함할 수 있다.
또한 착수 모델 서버는, 상기 제1 바둑게임 규칙은 덤 6.5집 규칙이고, 상기 제2 바둑게임 규칙은 덤 7.5집 규칙일 수 있다.
또한 착수 모델 서버는, 상기 가치값 결정부는, 현재 바둑판 상태가 제1 바둑게임에 관한 것이면 수학식 1을 이용하여 최종 가치값을 생성하고, 현재 바둑판 상태가 제2 바둑게임에 관한 것이면 제1 가치값(V1)을 최종 가치값(Vd)으로 할 수 있다.
(수학식 1)
Figure pat00001
또한 착수 모델 서버는, 상기 가치값 결정부는, 현재 바둑판 상태가 제1 바둑게임에 관한 것이고 상기 제1 가치값(V1)이 임계 가치값 이하이면 상기 수학식 1을 이용하여 최종 가치값을 생성할 수 있다.
또한 착수 모델 서버는, 상기 착수 모델은, 상기 최종 가치값에 이용하여 몬테 카를로 트리 서치(Monte Carlo Tree Search; MCTS)를 수행하여 착수점을 제공하는 탐색부;와, 상기 제1 가치값을 생성하고 상기 탐색부를 가이드하는 착수 신경망;을 포함할 수 있다.
실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은, 통신부, 착수 모델, 가치값 결정부 및 보조 가치망이 저장된 저장부 및 상기 착수 모델, 상기 가치값 결정부 및 상기 보조 가치망을 구동하는 프로세서를 포함하는 착수 모델 서버에 의해 바둑판 상태의 가치값을 판단하는 딥러닝 기반의 바둑 게임 서비스 방법에 있어서, 상기 프로세서가 상기 착수 모델을 트레이닝 하는 단계; 상기 통신부가 제1 바둑게임 규칙에 관한 복수의 기보를 수신하는 단계; 상기 프로세서가 상기 복수의 기보를 이용하여 상기 보조 가치망을 트레이닝 하는 단계; 상기 프로세서가 상기 가치값 결정부가 현재 바둑판 상태가 제1 바둑게임인지 판단하는 단계; 상기 프로세서가 상기 제1 바둑게임이면 상기 착수 모델 및 상기 보조 가치망을 이용하여 착수를 수행하는 단계; 및 상기 프로세서가 상기 제1 바둑게임이 아니면 제2 바둑게임으로 판단하고상기 착수 모델을 이용하여 착수를 수행하는 단계;를 포함할 수 있다.
또한, 딥러닝 기반의 바둑 게임 서비스 방법은, 상기 프로세서가 상기 제1 바둑게임이면 상기 착수 모델 및 상기 보조 가치망을 이용하여 착수를 수행하는 단계는, 상기 프로세서가 상기 착수 모델이 바둑판 상태에 대한 착수 신경방의 제1 가치값(V1)을 생성하는 단계; 상기 프로세서가 상기 보조 가치망이 상기 바둑판 상태에 대한 제2 가치값(V2)을 생성하는 단계; 상기 프로세서가 상기 가치값 결정부가 상기 제1 가치값(V1) 및 상기 제2 가치값(v2)에 기초하여 최종 가치값(Vd)하는 단계; 및 상기 최종 가치값을 이용하여 몬테 카를로 트리 서치(Monte Carlo Tree Search; MCTS)를 수행하여 착수점을 제공하는 단계;를 포함할 수 있다.
또한, 딥러닝 기반의 바둑 게임 서비스 방법은, 상기 제1 바둑게임 규칙은 덤 6.5집 규칙이고, 상기 제2 바둑게임 규칙은 덤 7.5집 규칙일 수 있다.
또한, 딥러닝 기반의 바둑 게임 서비스 방법은, 상기 가치값 결정부는, 현재 바둑판 상태가 제1 바둑게임에 관한 것이면 수학식 1을 이용하여 최종 가치값을 생성하고, 현재 바둑판 상태가 제2 바둑게임에 관한 것이면 제1 가치값(V1)을 최종 가치값(Vd)으로 할 수 있다.
(수학식 1)
Figure pat00002
또한, 딥러닝 기반의 바둑 게임 서비스 방법은, 상기 가치값 결정부는, 현재 바둑판 상태가 제1 바둑게임에 관한 것이고 상기 제1 가치값(V1)이 임계 가치값 이하이면 상기 수학식 1을 이용하여 최종 가치값을 생성할 수 있다.
실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치는 딥러닝 신경망을 이용하여 게임 규칙에 맞는 정확한 가치값을 생성할 수 있다.
또한, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치는 덤 규칙이 다른 바둑 게임에서 정확한 가치값을 생성할 수 있다.
또한, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치는 덤 규칙이 다른 바둑 게임에서 이기고 있는 경기에서 기권하지 않을 수 있다.
또한, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치는 덤 규칙이 다른 바둑 게임에서 정확한 가치값을 이용하여 바둑판 상태에 따른 좋은 착수 후보점을 찾을 수 있다.
도 1은 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 시스템에 대한 예시도이다.
도 2는 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스에서 인공지능 컴퓨터의 착수를 위한 착수 모델 서버의 착수 모델, 가치값 결정부 및 보조 가치망의 구조를 설명하기 위한 도면이다.
도 3은 착수 모델의 정책에 따른 착수점에 대한 이동 확률 분포를 설명하기 위한 도면이다.
도 4는 착수 모델의 착수점에 대한 제1 가치값과 방문 횟수를 설명하기 위한 도면이다.
도 5는 본 발명의 착수 모델의 착수 신경망의 복수의 블록으로 이루어진 신경망 구조 중 하나의 블록을 설명하기 위한 도면이다.
도 6은 착수 모델이 탐색부의 파이프 라인에 따라 착수하는 과정을 설명하기 위한 도면이다.
도 7은 종래의 덤 7.5집으로 학습된 인공지능 컴퓨터가 덤 6.5집 규칙의 바둑 게임에서 생성한 가치값을 나타내는 실험도이다.
도 8은 덤 6.5집으로 학습된 인공지능 컴퓨터, 덤 7.5집으로 학습된 인공지능 컴퓨터 및 본 발명의 인공지능 컴퓨터가 생성한 가치값의 관계를 나타내는 그래프이다.
도 9는 덤 6.5집으로 학습된 인공지능 컴퓨터, 덤 7.5집으로 학습된 인공지능 컴퓨터 및 본 발명의 인공지능 컴퓨터가 생성한 가치값의 관계를 나타내는 표이다.
도 10은 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 시스템에 신호 흐름에 대한 예시도이다.
도 11은 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법 중 착수 모델 트레이닝 및 착수 방법이다.
도 12는 도 11의 착수 모델 및 보조 가치망을 이용한 착수 수행 방법이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. 또한, 도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 시스템에 대한 예시도이다.
도 1을 참조하면, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 시스템은, 단말기(100), 바둑서버(200), 착수 모델 서버(300) 및 네트워크(400)를 포함할 수 있다.
도 1의 각 구성요소는, 네트워크(400)를 통해 연결될 수 있다. 단말기(100), 바둑서버(200) 및 착수 모델 서버(300) 등과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예에는 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 블루투스(Bluetooth) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다.
<단말기(100)>
먼저, 단말기(100)는, 바둑 게임 서비스를 제공받고자 하는 유저의 단말기이다. 또한, 단말기(100)는 다양한 작업을 수행하는 애플리케이션들을 실행하기 위한 유저가 사용하는 하나 이상의 컴퓨터 또는 다른 전자 장치이다. 예컨대, 컴퓨터, 랩탑 컴퓨터, 스마트 폰, 모바일 전화기, PDA, 태블릿 PC, 혹은 바둑서버(200)와 통신하도록 동작 가능한 임의의 다른 디바이스를 포함한다. 다만 이에 한정되는 것은 아니고 단말기(100)는 다양한 머신들 상에서 실행되고, 다수의 메모리 내에 저장된 명령어들을 해석하여 실행하는 프로세싱로직을 포함하고, 외부 입력/출력 디바이스상에 그래픽 사용자 인터페이스(GUI)를 위한 그래픽 정보를 디스플레이하는 프로세스들과 같이 다양한 기타 요소들을 포함할 수 있다. 아울러 단말기(100)는 입력 장치(예를 들면 마우스, 키보드, 터치 감지 표면 등) 및 출력 장치(예를 들면 디스플레이장치, 모니터, 스크린 등)에 접속될 수 있다. 단말기(100)에 의해 실행되는 애플리케이션들은 게임 어플리케이션, 웹 브라우저, 웹 브라우저에서 동작하는 웹 애플리케이션, 워드 프로세서들, 미디어 플레이어들, 스프레드시트들, 이미지 프로세서들, 보안 소프트웨어 또는 그 밖의 것을 포함할 수 있다.
또한, 단말기(100)는 명령들을 저장하는 적어도 하나의 메모리(101), 적어도 하나의 프로세서(102) 및 통신부(103)를 포함할 수 있다.
단말기(100)의 메모리(101)는 단말기(100)에서 구동되는 다수의 응용 프로그램(application program) 또는 애플리케이션(application), 단말기(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 명령들은 프로세서(102)로 하여금 동작들을 수행하게 하기 위해 프로세서(102)에 의해 실행 가능하고, 동작들은 바둑 게임 실행 요청 신호를 전송, 게임 데이터 송수신, 착수 정보 송수신 및 각종 정보 수신하는 동작들을 포함할 수 있다. 또한, 메모리(101)는 하드웨어적으로, ROM, RAM, EPROM, 플래시 드라이브, 하드 드라이브 등과 같은 다양한 저장기기 일 수 있고, 메모리(130)는 인터넷(internet)상에서 상기 메모리(101)의 저장 기능을 수행하는 웹 스토리지(web storage)일 수도 있다.
단말기(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), 기타 기능 수행을 위한 임의의 형태의 프로세서일 수 있다.
단말기(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)에 따라 구축된 네트워크망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신할 수 있다.
<바둑서버(200)>
바둑서버(200)가 제공하는 바둑 게임 서비스는 바둑서버(200)가 제공하는 가상의 컴퓨터 유저와 실제 유저가 함께 게임에 참여하는 형태로 구성될 수 있다. 이는 유저측 단말기(100) 상에서 구현되는 바둑 게임 환경에서 하나의 실제 유저와 하나의 컴퓨터 유저가 함께 게임을 플레이 한다. 다른 측면에서, 바둑서버(200)가 제공하는 바둑 게임 서비스는 복수의 유저측 디바이스가 참여하여 바둑 게임이 플레이되는 형태로 구성될 수도 있다.
바둑서버(200)는 명령들을 저장하는 적어도 하나의 메모리(201), 적어도 하나의 프로세서(202) 및 통신부(203)를 포함할 수 있다.
바둑서버(200)의 메모리(201)는 바둑서버(200)에서 구동되는 다수의 응용 프로그램(application program) 또는 애플리케이션(application), 바둑서버(200)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 명령들은 프로세서(202)로 하여금 동작들을 수행하게 하기 위해 프로세서(202)에 의해 실행 가능하고, 동작들은 게임 실행 요청 신호 수신, 게임 데이터 송수신, 착수 정보 송수신 및 각종 전송 동작을 포함할 수 있다. 또한, 메모리(201)는 바둑서버(200)에서 대국을 하였던 복수의 기보 또는 기존에 공개된 복수의 기보를 저장할 수 있다. 복수의 기보 각각은 대국 시작의 첫 착수 정보인 제1 착수부터 대국이 종료되는 최종 착수까지의 정보를 모두 포함할 수 있다. 즉, 복수의 기보는 착수에 관한 히스토리 정보를 포함할 수 있다. 또한, 복수의 기보 각각은 바둑판 상태에 따른 승패정보를 포함할 수 있다. 일 예로, 승패정보는 소정의 바둑판 상태에 대하여 대국 종료시의 승패여부에 관한 정보 일 수 있다. 다른 예로, 승패정보는 소정의 바둑판 상에 대하여 대국 종료시의 승리 확률에 관한 정보일 수 있다. 바둑서버(200)는 착수 모델 서버(300)의 보조 가치망의 트레이닝을 위하여 저장된 복수의 기보를 착수 모델 서버(300)에 제공할 수 있게 한다. 또한, 메모리(201)는 하드웨어적으로, ROM, RAM, EPROM, 플래시 드라이브, 하드 드라이브 등과 같은 다양한 저장기기 일 수 있고, 메모리(201)는 인터넷(internet)상에서 상기 메모리(201)의 저장 기능을 수행하는 웹 스토리지(web storage)일 수도 있다.
바둑서버(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), 기타 기능 수행을 위한 임의의 형태의 프로세서일 수 있다.
바둑서버(200)는 통신부(203)를 통해 네트워크(400)를 경유하여 단말기(100) 및 착수 모델 서버(300)와 통신을 수행할 수 있다.
<착수 모델 서버(300)>
착수 모델 서버(300)는, 별도의 클라우드 서버나 컴퓨팅 장치를 포함할 수 있다. 또한, 착수 모델 서버(300)는 단말기(100)의 프로세서 또는 바둑서버(200)의 데이터 처리부에 설치된 신경망 시스템일 수 있지만, 이하에서 착수 모델 서버(300)는, 단말기(100) 또는 바둑 서버(200)와 별도의 장치로 설명한다.
착수 모델 서버(300)는 명령들을 저장하는 적어도 하나의 메모리(301), 적어도 하나의 프로세서(302) 및 통신부(303)를 포함할 수 있다.
착수 모델 서버(300)는 바둑 규칙에 따라 스스로 학습하여 딥러닝 모델인 착수 모델을 구축하고 단말기(100)의 유저와 대국을 할 수 있는 인공지능 컴퓨터로써 자신의 턴에서 대국에서 이길 수 있도록 바둑돌의 착수를 수행할 수 있다. 착수 모델 서버(300)가 착수 모델 및 보조 가치망을 트레이닝하고, 최종 가치값을 생성하고, 생성된 최종 가치값으로 착수를 수행하는 자세한 설명은 도 2 내지 도 12의 착수 모델에 관한 설명을 따른다.
착수 모델 서버(300)의 메모리(301)는 착수 모델 서버(300)에서 구동되는 다수의 응용 프로그램(application program) 또는 애플리케이션(application), 착수 모델 서버(300)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 명령들은 프로세서(302)로 하여금 동작들을 수행하게 하기 위해 프로세서(302)에 의해 실행 가능하고, 동작들은 착수 모델 학습(트레이닝) 동작, 보조 가치망 학습(트레이닝) 동작, 학습된 착수 모델과 보조 가치망을 이용하여 착수점을 선택, 선택된 착수 정보 송수신 및 각종 전송 동작을 포함할 수 있다. 또한, 메모리(301)는 딥러닝 모델인 착수 모델을 저장 할 수 있다. 또한, 메모리(301)는 하드웨어적으로, ROM, RAM, EPROM, 플래시 드라이브, 하드 드라이브 등과 같은 다양한 저장기기 일 수 있고, 메모리(301)는 인터넷(internet)상에서 상기 메모리(301)의 저장 기능을 수행하는 웹 스토리지(web storage)일 수도 있다.
착수 모델 서버(300)의 프로세서(302)는 메모리(302)에 저장된 착수 모델, 가치값 결정보, 보조 가치망을 독출하여, 구축된 신경망 시스템에 따라서 하기 기술하는 착수 모델 학습, 보조 가치망 학습 및 바둑알 착수를 수행하게 된다. 실시예에 따라서 프로세서(302)는, 전체 유닛들을 제어하는 메인 프로세서와, 착수 모델에 따라 신경망 구동시 필요한 대용량의 연산을 처리하는 복수의 그래픽 프로세서(Graphics Processing Unit, GPU)를 포함하도록 구성될 수 있다.
착수 모델 서버(300)는 통신부(303)를 통해 네트워크(400)를 경유하여 바둑 서버(200)와 통신을 수행할 수 있다.
도 2는 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스에서 인공지능 컴퓨터의 착수를 위한 착수 모델 서버의 착수 모델, 가치값 결정부 및 보조 가치망의 구조를 설명하기 위한 도면이고, 도 3은 착수 모델의 정책에 따른 착수점에 대한 이동 확률 분포를 설명하기 위한 도면이고, 도 4는 착수 모델의 착수점에 대한 제1 가치값과 방문 횟수를 설명하기 위한 도면이고, 도 5는 본 발명의 착수 모델의 착수 신경망의 복수의 블록으로 이루어진 신경망 구조 중 하나의 블록을 설명하기 위한 도면이고, 도 6은 착수 모델이 탐색부의 파이프 라인에 따라 착수하는 과정을 설명하기 위한 도면이다.
도 2를 참조하면, 본 발명의 실시예에 따른 착수 모델 서버(300)는 착수 모델(310), 가치값 결정부(320) 및 보조 가치망(330)을 포함할 수 있다.
<착수 모델(310)>
착수 모델(310)은 딥러닝 모델로써 탐색부(311), 셀프 플레이부(312) 및 착수 신경망(313)을 포함할 수 있다.
착수 모델(310)은 탐색부(311), 셀프 플레이부(312) 및 착수 신경망(313)을 이용하여 덤 7.5집의 규칙으로 대국에서 이길 수 있도록 착수하는 모델로 학습할 수 있다. 보다 구체적으로, 탐색부(311)는 착수 신경망(313)의 가이드에 따라 몬테 카를로 트리 서치(Monte Carlo Tree Search; MCTS) 동작을 수행할 수 있다. MCTS는 모종의 의사 결정을 위한 체험적 탐색 알고리즘이다. 즉, 탐색부(311)는 착수 신경망(313)이 제공하는 이동 확률값(P) 및/또는 제1 가치값(V1)에 기초하여 MCTS를 수행할 수 있다. 일 예로, 착수 신경망(313)에 의해 가이드된 탐색부(311)는 MCTS를 수행하여 착수점들에 대한 확률분포값인 탐색 확률값(
Figure pat00003
)을 출력할 수 있다. 셀프 플레이부(312)는 덤 7.5집의 규칙으로 탐색 확률값(
Figure pat00004
)에 따라 스스로 바둑 대국을 할 수 있다. 예를 들어, 셀프 플레이부(312)는 착수 모델(310)이 같은 자신의 착수 모델(310)과 바둑 대국을 할 수 있다. 다른 예로, 셀프 플레이부(312)는 이전 버전의 착수 모델과 최신 버전의 착수 모델이 서로 대국을 할 수 있다. 셀프 플레이부(312)는 스스로 바둑 대국 시뮬레이션을 복수 회 진행하고, 복수의 진행하면서 착수 모델(310)이 더 좋은 수를 두면 더 좋은 수를 선택하는 확률을 올리도록 제1 가치값(V1)을 조절하여 자가 플레이 가치값(z)을 생성하고, 자가 대국이 종료되면 바둑판 상태(S), 탐색 확률값(
Figure pat00005
), 자가 플레이 가치값(z)을 착수 신경망(313)에 제공할 수 있다. 바둑판 상태(S)는 착수점들에 바둑돌이 놓여진 상태이다. 자가 플레이 가치값(z)은 바둑판 상태(S)에서 자가 대국을 하였을 때 승률 값이다. 착수 신경망(313)은 이동 확률값(P)과 제1 가치값(V1)을 출력할 수 있다. 이동 확률값(P)은 바둑판 상태(S)에 따라 착수점들에 대해 어느 착수점에 착수하는 것이 게임을 이길 수 있는 좋은 수인지 수치로 나타낸 확률분포값이다. 제1 가치값(V1)은 해당 착수점에 착수시 승률을 나타낸다. 예를 들어, 이동 확률값(P)이 높은 착수점이 좋은 수일 수 있다. 착수 신경망(313)은 이동 확률값(P)이 탐색 확률값(
Figure pat00006
)과 동일해지도록 트레이닝되고, 제1 가치값(V1)이 자가 플레이 가치값(z)과 동일해지도록 트레이닝될 수 있다. 이후 트레이닝된 착수 신경망(313)은 탐색부(311)를 가이드하고, 탐색부(311)는 이전 탐색 확률값(
Figure pat00007
)보다 더 좋은 수를 찾도록 MCTS를 진행하여 새로운 탐색 확률값(
Figure pat00008
)을 출력하게 한다. 셀프 플레이부(312)는 새로운 탐색 확률값(
Figure pat00009
)에 기초하여 바둑판 상태(S)에 따른 새로운 자가 플레이 가치값(z)을 출력하고 바둑판 상태(S), 새로운 탐색 확률값(
Figure pat00010
), 새로운 자가 플레이 가치값(z)을 착수 신경망(313)에 제공할 수 있다. 착수 신경망(313)은 이동 확률값(P)과 제1 가치값(V1)이 새로운 탐색 확률값(
Figure pat00011
)과 새로운 자가 플레이 가치값(z)으로 출력되도록 다시 트레이닝될 수 있다. 즉, 착수 모델(310)은 이러한 과정을 반복하여 착수 신경망(313)이 대국에서 이기기 위한 더 좋은 착수점을 찾도록 트레이닝 될 수 있다. 일 예로, 착수 모델(310)은 착수 손실(l)을 이용할 수 있다. 착수 손실(l)은 수학식 1과 같다.
(수학식 1)
Figure pat00012
Figure pat00013
는 신경망의 파라미터이고, c는 매우 작은 상수이다. v는 제1 가치값(V1)이다. p는 이동 확률값(P)이다.
수학식 1의 착수 손실(l)에서 z와 v가 같아 지도록 하는 것은 평균 제곱 손실(mean square loss) 텀에 해당되고,
Figure pat00014
와 p가 같아 지도록 하는 것은 크로스 엔트로피 손실(cross entropy loss) 텀에 해당되고,
Figure pat00015
에 c를 곱하는 것은 정규화 텀으로 오버핏을 방지하기 위한 것이다.
예를 들어, 도 3을 참조하면 트레이닝된 착수 모델은 착수점들에 이동 확률값(P)을 도 3과 같이 확률분포값으로 나타낼 수 있다. 도 4를 참조하면 트레이닝 된 착수 모델(310)의 제1 가치값(V1)은 도 4의 하나의 착수점에서 아래에 표시된 값으로 나타낼 수 있다. 착수 신경망(313)은 신경망 구조로 구성될 수 있다. 일 예로, 도 5를 참조하면, 하나의 레지듀얼 블록은 256개의 3X3 컨볼루션 레이어, 일괄 정규화(batch normalization) 레이어, Relu 활성화 함수 레이어, 256개의 3X3 컨볼루션 레이어, 일괄 정규화(batch normalization) 레이어, 스킵 커넥션, Relu 활성화 함수 레이어 순으로 배치될 수 있다. 일괄 정규화(batch normalization) 레이어는 학습하는 도중에 이전 레이어의 파라미터 변화로 인해 현재 레이어의 입력의 분포가 바뀌는 현상인 공변량 변화(covariate shift)를 방지하기 위한 것이다. 스킵 커넥션은 블록 층이 두꺼워지더라도 신경망의 성능이 감소하는 것을 방지하고 블록 층을 더욱 두껍게 하여 전체 신경망 성능을 높일 수 있게 한다. 스킵 커넥션은 레지듀얼 블록의 최초 입력 데이터가 두 번째 일괄 정규화(batch normalization) 레이어의 출력과 합하여 두번째 Relu 활성화 함수 레이어에 입력되는 형태일 수 있다. 또한, 착수 신경망(313)의 입력은 흑 플레이어의 최근 8 수에 대한 돌의 위치 정보과 백 플레이어의 최근 8 수에 대한 돌의 위치 정보와 현재 플레이어가 흑인지 백인지에 대한 차례 정보를 포함한 19*19*17의 RGB 이미지가 입력될 수 있다.
도 6을 참조하면, 도 6은 착수 모델(310)이 트레이닝 시 또는 대국시 탐색부(311)의 파이프 라인에 따라 착수하는 과정이다. 착수 모델(310)은 자신의 차례에서 착수 신경망(313)과 탐색부(311)를 이용하여 착수할 수 있다. 착수 모델은 선택 과정(a)을 통하여 현재 제1 바둑판 상태(S1)에서 MCTS를 통해 탐색하지 않은 가지인 제2 바둑판 상태(S1-2)에서 활동 함수(Q)와 신뢰값(U)이 높은 착수점을 선택한다. 활동 함수(Q)는 해당 가지를 지날 때마다 산출된 가치값(V)들의 평균값이다. 일 예로, 착수 모델(310)의 트레이닝시 도 6의 파이프 라인의 가치값(V)은 제1 가치값(V1)일 수 있다. 후술하지만, 가치값 결정부(320)에서 탐색부(311)로 제공하는 최종 가치값(Vd)은 트레이닝시 제1 가치값(V1)을 최종 가치값(Vd)으로 한다. 다른 예로, 착수 모델(310)의 대국시 도 6의 파이프 라인의 가치값(V)는 가치값 결정부(320)에서 제1 가치값(V1) 또는/및 제2 가치값(V2)에 기초하여 생성된 최종 가치값(Vd)일 수 있다. 신뢰값(U)은 해당 가지를 지나는 방문 횟수(N)에 비례한다. 착수 모델(310)은 확장과 평가 과정(b)을 통하여 선택된 착수점에서의 제3 바둑판 상태(S1-2-1)로 확장하고 이동 확률값(P)을 산출할 수 있다. 착수 모델(310)은 백업 과정(c)을 통하여 확장된 제3 바둑판 상태(S1-2-1)의 가치값을 산출하고 지나온 가지들의 활동 함수(Q), 방문 횟수(N), 이동 확률값(P)을 저장할 수 있다. 착수 모델(310)은 선택(a), 확장 및 평가(b), 백업(c) 과정을 반복하고 각 착수점에 대한 방문 횟수(N)를 이용하여 확률 분포를 만들어서 탐색 확률값(
Figure pat00016
)을 출력할 수 있다. 착수 모델(310)은 착수점들 중 가장 높은 탐색 확률값(
Figure pat00017
)을 선택하여 착수할 수 있다.
<보조 가치망(330)>
보조 가치망(330)은 덤 6.5집의 규칙으로 바둑판 상태에 대한 제2 가치값(V2)을 생성하도록 학습할 수 있다. 또한, 보조 가치망(330)은 바둑 서버(200)로부터 수신된 복수의 기보에 기초하여 지도 학습(supervised learning)할 수 있다. 보다 구체적으로, 학습을 위한 복수의 기보는 덤 6.5집으로 대국을 둔 기보이다. 또한, 복수의 기보는 복수의 바둑판 상태(St)와 각 바둑판 상태(St)에 대한 승리 정보인 가치값(Vt)을 포함할 수 있다. 보조 가치망(330)은 바둑판 상태(St)를 입력 데이터로 하고 바둑판 상태(St)에 대응한 가치값(Vt)을 타겟 데이터로 한 트레이닝 데이터 셋을 이용하여 각 바둑판 상태(St)에 대한 제2 가치값(V2)이 복수의 기보의 가치값(Vt)과 동일할 수 있도록 학습할 수 있다.
보조 가치망(330)은 신경망 구조로 구성될 수 있다. 일 예로, 보조 가치망(330)은 회귀(regression)를 수행할 수 있다. 즉, 보조 가치망(330)은 바둑판 상태(S)에 대해 하나의 수치값으로 출력할 수 있다. 보조 가치망(330)은 도 5와 같은 레지듀얼 블록이 복수개 구성되고, 마지막 블록은 단일 출력으로 구성될 수 있다. 또한, 보조 가치망(330)의 입력은 흑 플레이어의 최근 8 수에 대한 돌의 위치 정보과 백 플레이어의 최근 8 수에 대한 돌의 위치 정보와 현재 플레이어가 흑인지 백인지에 대한 차례 정보를 포함한 19*19*17의 RGB 이미지가 입력될 수 있다.
<가치값 결정부(320)>
가치값 결정부(320)는 제1 가치값(V1) 및 제2 가치값(V2)에 기초하여 최종 가치값(Vd)을 생성할 수 있다. 또한, 가치값 결정부(320)는 바둑게임이 제1 바둑게임인지 제2 바둑게임인지 판단한 후, 바둑게임이 제1 바둑 게임이면 제1 바둑게임에 따른 최종 가치값(Vd)을 생성할 수 있고 바둑 게임이 제2 바둑 게임이면 제2 바둑게임에 따른 최종 가치값(Vd)을 생성할 수 있다. 제1 바둑게임은 덤 6.5집 규칙의 대국일 수 있고, 제2 바둑게임은 덤 7.5집 규칙의 대국일 수 있다. 보다 구체적으로, 일 예로, 가치값 결정부(320)는 바둑게임이 제1 바둑 게임으로 판단하면, 제1 가치값(V1)이 임계 가치값을 초과하는지 판단할 수 있다. 가치값 결정부(320)는 제1 가치값(V1)이 임계 가치값을 초과하면, 제1 가치값(V1)을 최종 가치값(Vd)으로 결정할 수 있다. 가치값 결정부(320)는 제1 가치값(V1)이 임계 가치값 이하이면 제1 가치값(V1) 및 제2 가치값(V2)을 이용하여 최종 가치값(Vd)을 생성할 수 있다. 예를 들어, 가치값 결정부(320)는 제1 가치값(V1)이 임계 가치값 이하이면 수학식 2를 이용하여 최종 가치값(Vd)을 생성할 수 있다.
(수학식 2)
Figure pat00018
수학식 2에 대한 설명은 도 7에 대한 설명을 따른다.
다른 예로, 가치값 결정부(320)는 바둑게임이 제2 바둑 게임으로 판단하면, 제1 가치값(V1)을 최종 가치값(Vd)으로 생성할 수 있다.
도 7은 종래의 덤 7.5집으로 학습된 인공지능 컴퓨터가 덤 6.5집 규칙의 바둑 게임에서 생성한 가치값을 나타내는 실험도이고, 도 8은 덤 6.5집으로 학습된 인공지능 컴퓨터, 덤 7.5집으로 학습된 인공지능 컴퓨터 및 본 발명의 인공지능 컴퓨터가 생성한 가치값의 관계를 나타내는 그래프이고, 도 9는 덤 6.5집으로 학습된 인공지능 컴퓨터, 덤 7.5집으로 학습된 인공지능 컴퓨터 및 본 발명의 인공지능 컴퓨터가 생성한 가치값의 관계를 나타내는 표이다.
도 7을 참조하면, 도 7은 덤 7.5집으로 학습된 인공지능 컴퓨터가 덤 6.5집 규칙의 바둑게임에서 가치값이 부정확한 것을 보여주는 그래프이다. 덤 6.5집 규칙으로 학습된 인공지능 컴퓨터가 덤 6.5집 규칙의 바둑 게임에서 생성한 가치값이 덤 7.5집으로 학습된 인공지능 컴퓨터에서 생성한 가치값보다 더 정확하다는 것은 자명할 수 있다. 보다 구체적으로, 도 7에서, 착수점이 증가할 수 록 덤 6.5집으로 학습된 인공지능 컴퓨터의 가치값은 0.5 이상으로 이기고 있다고 판단하지만 덤 7.5집으로 학습된 인공지능 컴퓨터는 가치값이 0.5이하로 지고 있다고 판대로 판단하는 것을 알 수 있다. 또한, 덤 6.5집으로 학습된 인공지능 컴퓨터의 가치값과 덤 7.5집으로 학습된 인공지능 컴퓨터의 가치값의 차이가 클수록 덤 6.5집으로 학습된 인공지능 컴퓨터의 가치값은 0.5를 초과하므로 실제로는 게임을 이기고 있는 가능성이 크다는 것을 알 수 있다. 이에 기초하여, 본 발명은 상기 도 7의 실험을 통한 결과를 분석한 것으로 기초로 수학식 2를 만들었다. 수학식 2는 착수 신경망이 덤 7.5집으로 학습된 인공지능 컴퓨터에서 착수 신경망의 가치값을 반전하고, 덤 6.5집으로 학습된 인공지능 컴퓨터의 가치값과 덤 7.5집으로 학습된 인공지능의 가치값의 차이가 크면 최종 가치값의 차이를 크게 하기 위하여 역을 취한 것이다. 또한, 수학식 2는 덤 7.5집으로 학습된 인공지능의 가치값이 30%이하인 경우의 낮은 가치값에서 적용될 때 정확한 가치값을 생성할 수 있다.
도 8 및 도 9를 참조하면, 도 8은 덤 7.5집으로 학습된 인공지능 컴퓨터의 제1 가치값(V1)은 색깔 선으로, 덤 6.5집으로 학습된 인공지능 컴퓨터의 제2 가치값(V2)은 X축으로, 수학식 2에 제1 가치값(V1) 및 제2 가치값(V2)을 대입한 최종 가치값(Vd)은 Y축으로 나타낸 그래프이다. 도 9는 도 8의 그래프 수치를 표로 만든 것이다. 도 8 및 도 9는 덤 6.5집 바둑경기에서 덤 7.5집으로 학습된 인공지능 컴퓨터가 가치값을 부정확하게 생성한 것을 보여준다. 수학식2를 이용한 본 발명의 인공지능 컴퓨터가 생성한 가치값(Vd)은 제1 가치값(V1)이 5%로 지고 있다는 수치를 생성해도 덤 6.5집으로 학습된 인공지능 컴퓨터의 제2 가치값(V2)에 따라 66.7%에서 94.7%까지로 이기고 있다는 수치를 생성한다. 즉, 덤 7.5집으로 학습된 인공지능 컴퓨터의 제1 가치값(V1)이 작을 때 본 발명의 인공지능 컴퓨터가 생성한 가치값(Vd)이 큰 것을 알 수 있다. 또한, 덤 6.5집으로 학습된 인공지능 컴퓨터의 제2 가치값(V2)이 50%일 때, 덤 7.5집으로 학습된 인공지능 컴퓨터의 제1 가치값(V1)이 5%, 10%, 15%, 20%로 생성되는 것과 대응하여 본 발명의 인공지능 컴퓨터가 생성한 가치값(Vd)이 88.9%, 75%, 57.1%, 33.3%로 생성되는 것을 알 수 있다. 따ㅏ라서, 덤 6.5집의 바둑게임에서 실제로 이기는 경기인 경우 덤 7.5집으로 학습된 인공지능 컴퓨터의 제1 가치값(V1)이 작으면 본 발명의 인공지능 컴퓨터가 생성한 가치값(Vd)이 크다는 것을 알 수 있다.
따라서, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 장치는 딥러닝 신경망을 이용하여 게임 규칙에 맞는 정확한 가치값을 생성할 수 있다. 또한, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 장치는 덤 규칙이 다른 바둑 게임에서 정확한 가치값을 생성할 수 있다. 또한, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 장치는 덤 규칙이 다른 바둑 게임에서 이기고 있는 경기에서 기권하지 않을 수 있다. 또한, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 장치는 덤 규칙이 다른 바둑 게임에서 정확한 가치값을 이용하여 바둑판 상태에 따른 좋은 착수 후보점을 찾을 수 있다.
도 10은 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 시스템에 신호 흐름에 대한 예시도이다.
도 10을 참조하면, 착수 모델 서버(300)는 인공지능 컴퓨터로써 자신의 턴에서 대국에서 이길수 있도록 바둑돌의 착수를 수행할 수 있도록 바둑 규칙에 따라 스스로 학습하여 딥러닝 모델인 착수 모델을 트레이닝 할 수 있다(S11). 바둑서버(200)는 복수의 기보를 착수 모델 서버(300)에 송신할 수 있다(S12). 착수 모델 서버(300)는 다른 덤 규칙에따라 바둑판 상태에 대응한 가치값을 생성하도록 지도 학습하여 딥러닝 모델인 보조 가치망을 트레이닝 할 수 있다(S13). 단말기(100)는 바둑 서버(200)에 제1 바둑 게임 요청을 할 수 있다(S14). 제1 바둑 게임은 덤 6.5집 규칙에 따른 바둑 게임일 수 있다. 바둑 서버(200)는 제1 바둑 게임 요청에 따라 착수 모델 서버(300)에 제1 착수 요청할 수 있다(S15). 바둑서버(200)는 바둑 게임을 진행하며 단말기(100)와 착수 모델 서버(300)가 자신의 턴에 착수를 수행할 수 있다(S16 내지 S18). 이때, 착수 모델 서버(300)는 착수 모델 및 보조 가치망을 이용하여 착수를 수행할 수 있다(S18). 단말기(100)는 바둑 서버(200)에 제2 바둑 게임 요청을 할 수 있다(S19). 제2 바둑 게임은 덤 7.5집 규칙에 따른 바둑 게임일 수 있다. 바둑 서버(200)는 제2 바둑 게임 요청에 따라 착수 모델 서버(300)에 제2 착수 요청할 수 있다(S20). 바둑서버(200)는 바둑 게임을 진행하며 단말기(100)와 착수 모델 서버(300)가 자신의 턴에 착수를 수행할 수 있다(S21 내지 S23). 이때, 착수 모델 서버(300)는 착수 모델을 이용하여 착수를 수행할 수 있다(S23).
도 11은 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법 중 착수 모델 트레이닝 및 착수 방법이고, 도 12는 도 11의 착수 모델 및 보조 가치망을 이용한 착수 수행 방법이다.
도 11을 참조하면, 본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 착수 모델 서버가 착수 모델을 트레이닝 하는 단계(S100)를 포함할 수 있다. 착수 모델을 트레이닝 하는 방법은 도 2의 설명을 따른다.
본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 착수 모델 서버가 복수의 기보를 바둑 서버(200)로부터 수신하는 단계(S200)을 포함할 수 있다. 복수의 기보에 대한 설명은 도 1 및 도 2의 설명을 따른다.
본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 착수 모델 서버가 보조 가치망을 트레이닝 하는 단계(S300)을 포함할 수 있다. 보조 가치망을 트레이닝하는 방법은 도 2의 설명을 따른다.
본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 착수 모델 서버가 바둑 서버로부터 착수요청을 수신하는 단계(S400)를 포함할 수 있다.
본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 착수 모델 서버가 요청한 착수가 제1 바둑게임에 대한 착수 인지 판단하는 단계(S500)를 포함할 수 있다. 제1 바둑게임은 덤 6.5집 규칙의 바둑게임일 수 있다.
본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 착수 모델 서버가 제1 바둑게임이라고 판단하면 착수 모델 및 보조 가치망을 이용하여 착수를 수행하는 단계(S600)를 포함할 수 있다. 보다 구체적으로, 도 12를 참조하면, 제1 바둑게임에서 착수를 수행하는 단계는, 바둑판 상태에 대한 착수 신경망이 제1 가치값을 생성하는 단계(S601)를 포함할 수 있다. 또한, 제1 바둑게임에서 착수를 수행하는 단계는, 가치값 결정부가 제1 가치값이 임계 가치값 이하인지 판단하는 단계(S602)를 포함할 수 있다. 예를 들어 임계 가치값은 30%일 수 있다. 또한, 제1 바둑게임에서 착수를 수행하는 단계는, 제1 가치값이 임계 가치값 이하이면 바둑판 상태에 대한 보조 가치망이 제2 가치값을 생성하는 단계(S603)을 포함할 수 있다. 또한, 제1 바둑게임에서 착수를 수행하는 단계는, 가치값 결정부가 제1 가치값과 제2 가치값에 기초하여 최종 가치값을 결정하는 단계(S604)를 포함할 수 있다. 도 2의 설명에 따라, S604는 수학식 2를 이용할 수 있다. 또한, 제1 바둑게임에서 착수를 수행하는 단계는, 제1 가치값이 임계 가치값 이하가 아니면 가치값 결정부가 제1 가치값을 최종 가치값으로 결정하는 단계(S605)를 포함할 수 있다. 또한, 제1 바둑게임에서 착수를 수행하는 단계는, 결정된 최종 가치값을 이용하여 MCTS 시뮬레이션을 수행하여 탐색 확률값을 생성하는 단계(S606, S607)를 포함할 수 있다. 또한, 제1 바둑게임에서 착수를 수행하는 단계는, 생성된 탐색 확률값에 기초하여 가장 높은 탐색 확률값에 착수를 수행하는 단계(S608)를 포함할 수 있다.
본 발명의 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 착수 모델 서버가 제1 바둑게임이 아니라고 판단하면 착수 모델을 이용하여 착수를 수행하는 단계(S700)를 포함할 수 있다. 제1 바둑게임이 아닌 경우 착수 모델을 이용하여 착수를 수행하는 방법은 도 2의 설명을 따른다.
따라서, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 딥러닝 신경망을 이용하여 게임 규칙에 맞는 정확한 가치값을 생성할 수 있다. 또한, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 덤 규칙이 다른 바둑 게임에서 정확한 가치값을 생성할 수 있다. 또한, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 덤 규칙이 다른 바둑 게임에서 이기고 있는 경기에서 기권하지 않을 수 있다. 또한, 실시예에 따른 딥러닝 기반의 바둑 게임 서비스 방법은 덤 규칙이 다른 바둑 게임에서 정확한 가치값을 이용하여 바둑판 상태에 따른 좋은 착수 후보점을 찾을 수 있다.
이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
또한 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술할 특허청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허청구범위에 의해 정하여져야만 할 것이다.
100 단말기
200 바둑서버
300 착수 모델 서버
310 착수 모델
311 탐색부
312 셀프 플레이부
313 착수 신경망
320 가치값 결정부
330 보조 가치망

Claims (10)

  1. 제1 바둑게임 규칙에 관한 복수의 기보를 수신하는 통신부;
    착수 모델, 가치값 결정부 및 보조 가치망을 저장하는 저장부; 및
    상기 착수 모델을 독출하여 제2 바둑게임 규칙에 기초하여 상기 착수 모델의 학습을 수행하고 상기 학습된 착수 모델을 이용하여 바둑판 상태에 기반한 제1 가치값(V1)을 생성하고, 상기 보조 가치망을 독출하여 상기 복수의 기보를 트레이닝 데이터 셋으로 이용하여 상기 보조 가치망의 학습을 수행하고 상기 학습된 보조 가치망을 이용하여 바둑판 상태에 기반한 제2 가치값(V2)을 생성하고, 상기 가치값 결정부를 독출하여 상기 제1 가치값(V1) 및 상기 제2 가치값(V2)에 기초하여 최종 가치값(Vd)을 생성하는 프로세서;를 포함하는
    착수 모델 서버.
  2. 제1 항에 있어서,
    상기 제1 바둑게임 규칙은 덤 6.5집 규칙이고,
    상기 제2 바둑게임 규칙은 덤 7.5집 규칙인
    착수 모델 서버.
  3. 제1 항에 있어서,
    상기 가치값 결정부는,
    현재 바둑판 상태가 제1 바둑게임에 관한 것이면 수학식 1을 이용하여 최종 가치값을 생성하고,
    현재 바둑판 상태가 제2 바둑게임에 관한 것이면 제1 가치값(V1)을 최종 가치값(Vd)으로 하는
    착수 모델 서버.
    (수학식 1)
    Figure pat00019
  4. 제3 항에 있어서,
    상기 가치값 결정부는,
    현재 바둑판 상태가 제1 바둑게임에 관한 것이고 상기 제1 가치값(V1)이 임계 가치값 이하이면 상기 수학식 1을 이용하여 최종 가치값을 생성하는
    착수 모델 서버.
  5. 제1 항에 있어서,
    상기 착수 모델은,
    상기 최종 가치값에 이용하여 몬테 카를로 트리 서치(Monte Carlo Tree Search; MCTS)를 수행하여 착수점을 제공하는 탐색부;와, 상기 제1 가치값을 생성하고 상기 탐색부를 가이드하는 착수 신경망;을 포함하는
    착수 모델 서버.
  6. 통신부, 착수 모델, 가치값 결정부 및 보조 가치망이 저장된 저장부 및 상기 착수 모델, 상기 가치값 결정부 및 상기 보조 가치망을 구동하는 프로세서를 포함하는 착수 모델 서버에 의해 바둑판 상태의 가치값을 판단하는 딥러닝 기반의 바둑 게임 서비스 방법에 있어서,
    상기 프로세서가 상기 착수 모델을 트레이닝 하는 단계;
    상기 통신부가 제1 바둑게임 규칙에 관한 복수의 기보를 수신하는 단계;
    상기 프로세서가 상기 복수의 기보를 이용하여 상기 보조 가치망을 트레이닝 하는 단계;
    상기 프로세서가 상기 가치값 결정부가 현재 바둑판 상태가 제1 바둑게임인지 판단하는 단계;
    상기 프로세서가 상기 제1 바둑게임이면 상기 착수 모델 및 상기 보조 가치망을 이용하여 착수를 수행하는 단계; 및
    상기 프로세서가 상기 제1 바둑게임이 아니면 제2 바둑게임으로 판단하고상기 착수 모델을 이용하여 착수를 수행하는 단계;를 포함하는
    딥러닝 기반의 바둑 게임 서비스 방법.
  7. 제6 항에 있어서,
    상기 프로세서가 상기 제1 바둑게임이면 상기 착수 모델 및 상기 보조 가치망을 이용하여 착수를 수행하는 단계는,
    상기 프로세서가 상기 착수 모델이 바둑판 상태에 대한 착수 신경방의 제1 가치값(V1)을 생성하는 단계;
    상기 프로세서가 상기 보조 가치망이 상기 바둑판 상태에 대한 제2 가치값(V2)을 생성하는 단계;
    상기 프로세서가 상기 가치값 결정부가 상기 제1 가치값(V1) 및 상기 제2 가치값(v2)에 기초하여 최종 가치값(Vd)하는 단계; 및
    상기 최종 가치값을 이용하여 몬테 카를로 트리 서치(Monte Carlo Tree Search; MCTS)를 수행하여 착수점을 제공하는 단계;를 포함하는
    딥러닝 기반의 바둑 게임 서비스 방법.
  8. 제6 항에 있어서,
    상기 제1 바둑게임 규칙은 덤 6.5집 규칙이고,
    상기 제2 바둑게임 규칙은 덤 7.5집 규칙인
    딥러닝 기반의 바둑 게임 서비스 방법.
  9. 제7 항에 있어서,
    상기 가치값 결정부는,
    현재 바둑판 상태가 제1 바둑게임에 관한 것이면 수학식 1을 이용하여 최종 가치값을 생성하고,
    현재 바둑판 상태가 제2 바둑게임에 관한 것이면 제1 가치값(V1)을 최종 가치값(Vd)으로 하는
    딥러닝 기반의 바둑 게임 서비스 방법.
    (수학식 1)
    Figure pat00020
  10. 제8 항에 있어서,
    상기 가치값 결정부는,
    현재 바둑판 상태가 제1 바둑게임에 관한 것이고 상기 제1 가치값(V1)이 임계 가치값 이하이면 상기 수학식 1을 이용하여 최종 가치값을 생성하는
    딥러닝 기반의 바둑 게임 서비스 방법.
KR1020190094900A 2019-08-05 2019-08-05 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치 KR102299138B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190094900A KR102299138B1 (ko) 2019-08-05 2019-08-05 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190094900A KR102299138B1 (ko) 2019-08-05 2019-08-05 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20210016750A true KR20210016750A (ko) 2021-02-17
KR102299138B1 KR102299138B1 (ko) 2021-09-07

Family

ID=74732464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190094900A KR102299138B1 (ko) 2019-08-05 2019-08-05 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR102299138B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220159571A (ko) * 2021-05-26 2022-12-05 엔에이치엔클라우드 주식회사 딥러닝 기반의 장기 게임 서비스 방법 및 그 장치
KR20220159573A (ko) * 2021-05-26 2022-12-05 엔에이치엔클라우드 주식회사 딥러닝 기반 바둑 게임 서비스의 긴 축 방지 방법 및 그 장치
KR102568685B1 (ko) * 2023-01-04 2023-08-18 이현호 Ai에 의한 바둑기력 평가방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110069702A (ko) * 2009-12-17 2011-06-23 노미원 네트워크 기반의 바둑게임 서비스 방법 및 그 장치
KR20150129265A (ko) 2014-05-09 2015-11-19 숭실대학교산학협력단 바둑 대국을 위한 인공지능 서비스 제공 방법 및 서버
KR20180026895A (ko) * 2016-09-05 2018-03-14 신 라파엘 바둑 게임 장치 및 방법
JP2019105899A (ja) * 2017-12-11 2019-06-27 国立研究開発法人情報通信研究機構 学習方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110069702A (ko) * 2009-12-17 2011-06-23 노미원 네트워크 기반의 바둑게임 서비스 방법 및 그 장치
KR20150129265A (ko) 2014-05-09 2015-11-19 숭실대학교산학협력단 바둑 대국을 위한 인공지능 서비스 제공 방법 및 서버
KR20180026895A (ko) * 2016-09-05 2018-03-14 신 라파엘 바둑 게임 장치 및 방법
JP2019105899A (ja) * 2017-12-11 2019-06-27 国立研究開発法人情報通信研究機構 学習方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
블로그* *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220159571A (ko) * 2021-05-26 2022-12-05 엔에이치엔클라우드 주식회사 딥러닝 기반의 장기 게임 서비스 방법 및 그 장치
KR20220159573A (ko) * 2021-05-26 2022-12-05 엔에이치엔클라우드 주식회사 딥러닝 기반 바둑 게임 서비스의 긴 축 방지 방법 및 그 장치
KR102568685B1 (ko) * 2023-01-04 2023-08-18 이현호 Ai에 의한 바둑기력 평가방법

Also Published As

Publication number Publication date
KR102299138B1 (ko) 2021-09-07

Similar Documents

Publication Publication Date Title
KR102316930B1 (ko) 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치
JP7159458B2 (ja) 仮想環境における仮想対象のスケジューリング方法、装置、デバイス及びコンピュータプログラム
KR102299138B1 (ko) 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치
KR102299140B1 (ko) 딥러닝을 기반으로 하는 바둑 게임 서비스 방법 및 그 장치
KR102286010B1 (ko) 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치
KR20200024733A (ko) 시즌별 보상 분배 시스템
US11468738B2 (en) System and method for playing online game
CN111701246B (zh) 一种游戏ai的决策配置方法和装置
US11738271B2 (en) Method and apparatus for predicting game difficulty by using deep-learning based game play server
KR102299135B1 (ko) 딥러닝에 기초하여 바둑 게임 서비스를 제공하는 방법 및 장치
KR102299141B1 (ko) 딥러닝 기반의 바둑 게임 서비스 제공 방법 및 장치
KR102292046B1 (ko) 딥러닝 기반의 바둑 게임 서비스 방법 및 그 장치
US20210026657A1 (en) System for managing user experience and method therefor
KR102595656B1 (ko) 딥러닝 기반의 장기 게임 서비스 방법 및 그 장치
KR102537471B1 (ko) 딥러닝 기반의 바둑 게임 서비스 연산시간 관리 방법 및 그 장치
KR102591226B1 (ko) 딥러닝 기반 바둑 게임 서비스의 긴 축 방지 방법 및 그 장치
KR102572342B1 (ko) 딥러닝 기반의 바둑 게임 서비스 시뮬레이션 횟수 관리 방법 및 그 장치
KR102628188B1 (ko) 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치
KR102595660B1 (ko) 딥러닝 기반 불완전 정보 게임 서비스 제공 방법 및 그 장치
KR20200029923A (ko) 컴퓨팅 장치에서 게임에 대한 사용자의 데이터를 처리하는 방법, 및 컴퓨팅 장치
KR20210000181A (ko) 게임 데이터 처리 방법
Harteveld et al. Finding the Game in Decision–Making: A Preliminary Investigation
KR20240043913A (ko) 윷놀이 특화 데이터형에 기반한 윷놀이 ai 제공 방법 및 그 시스템
KR20240030680A (ko) 딥러닝 기반의 윷놀이 ai 트레이닝 및 플레이 방법과 그 시스템
KR20220150757A (ko) 게임 제공 장치, 예측확률지수에 대응하는 리워드를 제공하는 게임 제공 방법 및 컴퓨터 프로그램

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