(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-01
(45)【発行日】2022-04-11
(54)【発明の名称】ディープラーニングに基づく囲碁ゲームサービスシステム及びサービス方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20220404BHJP
G06N 3/08 20060101ALI20220404BHJP
G06N 5/04 20060101ALI20220404BHJP
A63F 13/80 20140101ALI20220404BHJP
【FI】
G06N20/00 130
G06N3/08
G06N5/04
A63F13/80 A
【外国語出願】
(21)【出願番号】P 2020122007
(22)【出願日】2020-07-16
【審査請求日】2020-09-30
(31)【優先権主張番号】10-2019-0086287
(32)【優先日】2019-07-17
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】313011434
【氏名又は名称】エヌエイチエヌ コーポレーション
【住所又は居所原語表記】(Sampyeong-dong),16,Daewangpangyo-ro 645 beon-gil,Bundang-gu,Seongnam-si,Gyeonggi-do Republic of Korea
(74)【代理人】
【識別番号】110000408
【氏名又は名称】特許業務法人高橋・林アンドパートナーズ
(72)【発明者】
【氏名】パク,ジュン フン
【審査官】今城 朋彬
(56)【参考文献】
【文献】韓国公開特許第2013-0089931(KR,A)
【文献】武田 敦志,ニューラルネットワークを用いた囲碁のための効率的な強化学習手法,FIT2018 第17回情報科学技術フォーラム 講演論文集,日本,一般社団法人 電子情報通信学会,2018年09月12日,pp.271-272
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-20/00
G06N 3/08
G06N 5/04
A63F 13/80
(57)【特許請求の範囲】
【請求項1】
ユーザが端末機を介して囲碁ゲームを要請し、囲碁対局中、形勢判断を要請することに応答して囲碁ゲームサービスと形勢判断を提供する囲碁サーバと、
前記囲碁サーバの着手要請に応答して前記ユーザと囲碁対局を進行する着手モデルサーバと、
前記囲碁サーバから伝達された複数の棋譜情報を基に前記ユーザの形勢判断要請に対応する形勢判断を行う形勢判断モデルサーバと、
を備え、
前記形勢判断モデルサーバは、
前記囲碁サーバから伝達された複数の棋譜情報を格納する格納部と、
前記囲碁サーバからユーザが要請した形勢判断要請を受信し、形勢判断を前記囲碁サーバに提供する通信部と、
前記格納部から形勢判断モデルを読み込んで前記形勢判断モデルの学習を行い、前記学習された形勢判断モデルを用いて碁盤状態の形勢を判断するプロセッサと、
を備え、
前記形勢判断モデルは、
前記複数の棋譜情報から
現在の碁盤状態に関する入力特徴を抽出する入力特徴抽出部と、
前記抽出された入力特徴を基に
前記現在
の碁盤状態でヨセをすることができる正解ラベルを生成する正解ラベル生成部と、
前記抽出された入力特徴に対する入力データが前記正解ラベルに対するターゲットデータと同じになるように、前記形勢判断モデルを学習させる形勢判断ニューラルネットワークと、
を備えるディープラーニングに基づく囲碁ゲームサービスシステム。
【請求項2】
前記正解ラベルは、前記
現在の碁盤状態で交差
点に対して-1から+1までの数値で表示された形勢値である(ただし、形勢値は定数)請求項1に記載のディープラーニングに基づく囲碁ゲームサービスシステム。
【請求項3】
前記正解ラベルは、前記
現在の碁盤状態でヨセのために地の境界が明確になるようにする第1の前処理と、
前記第1の前処理で地の境界内に配置され、地の区分に不要な石を除去する第2の前処理を行って取得された請求項1に記載のディープラーニングに基づく囲碁ゲームサービスシステム。
【請求項4】
前記正解ラベルは、前記第2の前処理で前記
現在の碁盤状態の各交差点を-1、0、または+1のうち、いずれか1つの数値からなる形勢値に変更する第3の前処理を介して取得される請求項3に記載のディープラーニングに基づく囲碁ゲームサービスシステム。
【請求項5】
前記第3の前処理は、前記第2の前処
理で所定の交差点で自分の石が配置されれば0、自分の地領域であれば+1、相手の石が配置されれば0、相手の地領域であれば-1に対応した形勢値に変更する請求項4に記載のディープラーニングに基づく囲碁ゲームサービスシステム。
【請求項6】
前記第3の前処理は、前記第2の前処
理で所定の交差点で自分の石が配置されれば0、自分の地領域であれば+1、相手の石が配置されれば0、相手の地領域であれば-1、関または駄目であれば0に対応した形勢値に変更する請求項4に記載のディープラーニングに基づく囲碁ゲームサービスシステム。
【請求項7】
前記形勢判断ニューラルネットワークは、複数のレシデュアルブロックを含み、前記複数
のレシデュアルブロックの各々は、コンボリューションレイヤ、一括正規化レイヤ、Relu活性化関数レイヤ、スキップコネクションを含む請求項1に記載のディープラーニングに基づく囲碁ゲームサービスシステム。
【請求項8】
前記形勢判断ニューラルネットワークは、下記の数式による形勢判断損失L
preを用いてトレーニングする請求項2に記載のディープラーニングに基づく囲碁ゲームサービスシステム。
【数1】
【請求項9】
前記入力特徴は、前記
現在の碁盤状態で黒プレイヤの最近の8手に対する石の位置情報と白プレイヤの最近の8手に対する石の位置情報と、現在プレイヤが黒であるか白であるかに対する順序情報を含む請求項1に記載のディープラーニングに基づく囲碁ゲームサービスシステム。
【請求項10】
通信部、形勢判断モデルが格納された格納部、前記形勢判断モデルを駆動するプロセッサを備える形勢判断モデルサーバにより碁盤状態の形勢を判断するディープラーニングに基づく囲碁ゲームサービス方法において、
前記通信部が複数の棋譜を受信するステップと、
前記プロセッサが前記形勢判断モデルの入力特徴抽出部を利用して前記複数の棋譜の
現在の碁盤状態に関する入力特徴を抽出するステップと、
前記プロセッサが前記形勢判断モデルの正解ラベル生成部を利用して前記入力特徴に基づいて前記現在の碁盤状態でヨセをすることができる正解ラベルを生成するステップと、
前記プロセッサが、前記入力特徴に対する入力データが前記正解ラベルに対するターゲットデータと同じになるように前記形勢判断モデルをトレーニングするステップと、
前記プロセッサがトレーニングを完了して形勢判断モデルを構築するステップと、
前記プロセッサが前記トレーニングされた形勢判断モデルを用いて形勢判断が必要な
現在の碁盤状態が入力されれば、前記
現在の碁盤状態の交差点に対する形勢値を生成する形勢判断を行うステップとを含み、
前記正解ラベルを生成するステップは、
前記
現在の碁盤状態でヨセのために地の境界が明確になるようにする第1の前処理状態を生成する第1の前処理ステップと、
前記第1の前処理状態で地の境界内に配置され、地の区分に不要な石を除去して第2の前処理状態を生成する第2の前処理ステップと、
前記第2の前処理状態で前記
現在の碁盤状態の各交差点を-1、0、または+1のうち、いずれか1つの数値からなる形勢値に変更する第3の前処理状態を生成する第3の前処理ステップと、
を含むことを特徴とするディープラーニングに基づく囲碁ゲームサービス方法。
【請求項11】
前記第3の前処理ステップは、前記第2の前処理状態で所定の交差点で自分の石が配置さ
れれば0、自分の地領域であれば+1、相手の石が配置されれば0、相手の地領域であれば-1に対応した形勢値に変更することを特徴とする請求項10に記載のディープラーニングに基づく囲碁ゲームサービス方法。
【請求項12】
前記第3の前処理ステップは、前記第2の前処理状態で所定の交差点で自分の石が配置されれば0、自分の地領域であれば+1、相手の石が配置されれば0、相手の地領域であれば-1、関または駄目であれば0に対応した形勢値に変更することを特徴とする請求項10に記載のディープラーニングに基づく囲碁ゲームサービス方法。
【請求項13】
前記形勢判断モデルをトレーニングするステップ、下記の数式による形勢判断損失L
preを用いてトレーニングする請求項10に記載のディープラーニングに基づく囲碁ゲームサービス方法。
【数2】
【請求項14】
前記入力特徴は、前記
現在の碁盤状態で黒プレイヤの最近の8手に対する石の位置情報と白プレイヤの最近の8手に対する石の位置情報と、現在プレイヤが黒であるか白であるかに対する順序情報を含む請求項10に記載のディープラーニングに基づく囲碁ゲームサービス方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディープラーニングに基づく囲碁ゲームサービスシステム及びサービス方法に関するものである。より詳細には、ディープラーニングニューラルネットワークを利用して囲碁形勢を判断する方法及びその装置に関するものである。
【背景技術】
【0002】
スマートフォン、タブレットPC(Personal Computer)、PDA(Personal Digital Assistant)、ノートブックなどのようなユーザ端末の利用が大衆化され、情報処理技術が発達するにつれて、ユーザ端末を利用してボードゲームの一種である囲碁を打つことができるようになり、さらに、人でないプログラムされた人工知能コンピュータと囲碁対局が可能なようになった。
【0003】
囲碁は、チェスや将棋のようなボードゲームに比べて場合の数が多く、人工知能コンピュータが人の水準の対局をするのには限界があった。このような限界を克服するために、人工知能コンピュータの棋力を高めるための研究が活発に進まれている。最近、開発者らは、人工知能コンピュータにモンテカルロ木探索(Monte Carlo Tree Search、MCTS)アルゴリズムとディープラーニング技術とを適用して人工知能コンピュータの棋力をプロ棋士たちの水準以上に上げた。
【0004】
特に、囲碁は、対局が進む間、誰がどれくらい勝っているかのような形勢を判断することが重要である。なぜなら、囲碁は、多くの場合の数があり、不利な形勢であるといえども、ゲーム戦略によって有利な形勢に変えることができるためである。しかし、囲碁は、規則による場合の数が多く、正確な形勢を判断することが難しい。囲碁をしきりに打つ一般人やアマチュア達も、場合の数の多い囲碁で形勢判断することが容易でなく、最近開発された人工知能コンピュータを利用して囲碁の形勢を判断させた場合、正確度が顕著に低いという問題があった。最近、対局中、囲碁形勢を判断するための人工知能コンピュータとして、影響力関数を実現する方法がある。しかし、影響力関数を用いた形勢判断方法は、囲碁ゲーム規則が反映されず、判断正確度が低いという問題がある。また、パターンを利用した形勢判断方法が開発されたが、この方法は、碁盤に置かれた碁石のパターンに対する影響力を計算して形勢を予測する方法である。しかし、パターンを利用した形勢判断方法は、特定状況では判断できないか、正確な判断ができないという問題がある。また、ロールアウトニューラルネットワークを利用した形勢判断方法は、現在碁盤の状態で一定の数の分だけゲームの終わりまでシミュレーションしてみた後、ゲーム終了状態の碁盤で各石の状態に対する平均値で形勢を予測する方法である。
【0005】
しかし、ロールアウトニューラルネットワークを利用した形勢判断方法は、シミュレーションに多くの時間が必要であり、シミュレーション結果に基づいた形勢判断も正確でないという問題がある。また、ディープラーニング技術を利用した形勢判断方法は、CNNを使用して囲碁形勢を学習したモデルを用いた方法(GoCNN)であるが、形勢予測と碁盤上の捨て石の予測正確度が低く、駄目や関の予測正確度が低いという問題点がある。
【先行技術文献】
【特許文献】
【0006】
【文献】大韓民国公開特許公報第10-2015-0129265号
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、前述した問題点を解決するための、ディープラーニングに基づく囲碁ゲームサービスシステム及びサービス方法に関するものである。より詳細には、ディープラーニングニューラルネットワークを利用して囲碁形勢を判断する方法及びその装置を提案しようとする。
【0008】
具体的に、本発明は、囲碁規則による地、捨て石、石、駄目、関を正確に区分して囲碁の形勢を正確に判断できるディープラーニングに基づく囲碁ゲームサービスシステム及びサービス方法を提供することを目的とする。
【0009】
また、本発明は、囲碁規則による地、捨て石、石、駄目、関を予測して囲碁の形勢を正確に判断できるディープラーニングに基づく囲碁ゲームサービスシステム及びサービス方法を提供することを目的とする。
【0010】
また、本発明は、囲碁対局中、速かに形勢を判断できるディープラーニングに基づく囲碁ゲームサービスシステム及びサービス方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムは、ユーザが端末機を介して囲碁ゲームを要請したり、囲碁対局中、形勢判断を要請することに応答して囲碁ゲームサービスと形勢判断を提供する囲碁サーバと、前記囲碁サーバの着手要請に応答して前記ユーザと囲碁対局を進行する着手モデルサーバと、前記囲碁サーバから伝達された複数の棋譜情報を基に前記ユーザの形勢判断要請に対応する形勢判断を行う形勢判断モデルサーバとを備えることができる。
【0012】
また、形勢判断モデルサーバは、前記囲碁サーバから伝達された複数の棋譜情報を格納する格納部と、前記囲碁サーバからユーザが要請した形勢判断要請を受信し、形勢判断を前記囲碁サーバに提供する通信部と、前記格納部から形勢判断モデルを読み込んで前記形勢判断モデルの学習を行い、前記学習された形勢判断モデルを用いて碁盤状態の形勢を判断するプロセッサとを備えることができる。
【0013】
また、形勢判断モデルは、前記複数の棋譜情報から第1碁盤状態に関する入力特徴を抽出する入力特徴抽出部と、前記抽出された入力特徴を基に現在進行中である対局の第2碁盤状態でヨセをすることができる正解ラベルを生成する正解ラベル生成部と、前記抽出された入力特徴に対する入力データが前記正解ラベルに対するターゲットデータと同じになるように、前記形勢判断モデルを学習させる形勢判断ニューラルネットワークとを備えることができる。
【0014】
また、前記正解ラベルは、前記第2碁盤状態で交差点等に対して-1から+1までの数値で表示された形勢値でありうるし(ただし、形勢値は定数)、前記正解ラベルは、前記第2碁盤状態でヨセのために地の境界が明確になるようにする第1の前処理と、前記第1の前処理状態で地の境界内に配置され、地の区分に不要な石を除去する第2の前処理を行って取得されることができる。
【0015】
また、前記正解ラベルは、前記第2の前処理状態で前記第2碁盤状態の各交差点を-1、0、または+1のうち、いずれか1つの数値からなる形勢値に変更する第3の前処理を介して取得されることができ、前記第3の前処理は、前記第2の前処理状態で所定の交差点で自分の石が配置されれば0、自分の地領域であれば+1、相手の石が配置されれば0、相手の地領域であれば-1に対応した形勢値に変更することができる。
【0016】
また、前記第3の前処理は、前記第2の前処理状態で所定の交差点で自分の石が配置されれば0、自分の地領域であれば+1、相手の石が配置されれば0、相手の地領域であれば-1、関または駄目であれば0に対応した形勢値に変更することができ、前記形勢判断ニューラルネットワークは、複数のレシデュアルブロックを含み、前記複数のレシデュアルブロックの各々は、コンボリューションレイヤ、一括正規化レイヤ、Relu活性化関数レイヤ、スキップコネクションを含むことができる。
【0017】
また、前記形勢判断ニューラルネットワークは、下記の数式による形勢判断損失L
preを用いてトレーニングすることができる。
【数1】
【0018】
また、前記入力特徴は、前記第1碁盤状態で黒プレイヤの最近の8手に対する石の位置情報と白プレイヤの最近の8手に対する石の位置情報と、現在プレイヤが黒であるか白であるかに対する順序情報を含むことができる。
【0019】
実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、通信部、形勢判断モデルが格納された格納部、前記形勢判断モデルを駆動するプロセッサを備える形勢判断モデルサーバにより碁盤状態の形勢を判断するディープラーニングに基づく囲碁ゲームサービス方法において、前記通信部が複数の棋譜を受信するステップと、前記プロセッサが前記形勢判断モデルの入力特徴抽出部を利用して前記複数の棋譜の第1碁盤状態に関する入力特徴を抽出するステップと、前記プロセッサが前記形勢判断モデルの正解ラベル生成部を利用して前記入力特徴に基づいて現在進行中である対局の第2碁盤状態でヨセをすることができる正解ラベルを生成するステップと、前記プロセッサが、前記入力特徴に対する入力データが前記正解ラベルに対するターゲットデータと同じになるように前記形勢判断モデルをトレーニングするステップと、前記プロセッサがトレーニングを完了して形勢判断モデルを構築するステップと、前記プロセッサが前記トレーニングされた形勢判断モデルを用いて形勢判断が必要な第2碁盤状態が入力されれば、前記第2碁盤状態の交差点に対する形勢値を生成する形勢判断を行うステップとを含むことができる。
【発明の効果】
【0020】
実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステム及びサービス方法は、ディープラーニングニューラルネットワークを利用して囲碁形勢を判断できる。
【0021】
また、実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステム及びサービス方法は、囲碁規則による地、捨て石、石、駄目、関を正確に区分して囲碁の形勢を正確に判断することができる。
【0022】
また、実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステム及びサービス方法は、囲碁規則による地、捨て石、石、駄目、関を予測して囲碁の形勢を正確に判断することができる。
【0023】
また、実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステム及びサービス方法は、囲碁対局中、速かに形勢を判断できる。
【図面の簡単な説明】
【0024】
【
図1】本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムに対する例示図である。
【
図2】本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスにおいて人工知能コンピュータの着手のための着手モデルサーバの着手モデル構造を説明するための図である。
【
図3】着手モデルの政策による着手点に対する移動確率分布を説明するための図である。
【
図4】着手モデルの着手点に対する価値と訪問回数を説明するための図である。
【
図5】着手モデルが探索部のパイプラインに沿って着手する過程を説明するための図である。
【
図6】本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスの形勢判断機能を提供する画面を見せる例示図である。
【
図7】本発明の形勢判断モデルサーバの形勢判断モデル構造を説明するための図である。
【
図8】本発明の形勢判断モデルの複数のブロックからなるニューラルネットワーク構造のうち、1つのブロックを説明するための図である。
【
図9】本発明の形勢判断モデルを学習するために使用される正解ラベルを生成するための第1及び第2の前処理ステップを説明するための図である。
【
図10】本発明の形勢判断モデルを学習するために使用される正解ラベルを生成するための第1及び第2の前処理ステップを説明するための図である。
【
図11】本発明の形勢判断モデルを学習するために使用される正解ラベルを生成するための第3の前処理ステップを説明するための図である。
【
図12】本発明の形勢判断モデルの形勢判断結果を説明するための図である。
【
図13】本発明の形勢判断モデルの形勢判断結果と従来技術に係るディープラーニングモデルによる形勢判断結果とを比較した形状である。
【
図14】本発明の形勢判断モデルの形勢判断結果と従来技術に係るディープラーニングモデルによる形勢判断結果とを比較した形状である。
【
図15】本発明の形勢判断モデルの形勢判断結果と従来技術に係るディープラーニングモデルによる形勢判断結果とを比較した形状である。
【
図16】本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムにおける信号フローに対する例示図である。
【
図17】本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法のうち、形勢判断方法である。
【
図18】
図17の形勢判断方法のうち、正解ラベルを生成するためのトレーニングデータの前処理方法である。
【発明を実施するための形態】
【0025】
本発明は、様々な変換を加えることができ、種々の実施形態を有することができるところ、特定の実施形態を図面に例示し、詳細な説明に詳しく説明しようとする。本発明の効果及び特徴、そして、それらを達成する方法は、図面とともに詳しく後述されている実施形態を参照すれば明確になるであろう。しかし、本発明は、以下において開示される実施形態等に限定されるものではなく、様々な形態で実現されることができる。以下の実施形態において、第1、第2などの用語は、限定的な意味ではなく、1つの構成要素を他の構成要素と区別する目的として使用された。また、単数の表現は、文脈上、明白に異なるように意味しない限り、複数の表現を含む。また、「含む」または「有する」などの用語は、明細書上に記載された特徴または構成要素が存在することを意味するものであり、1つ以上の他の特徴または構成要素が付加される可能性を予め排除するものではない。また、図面では、説明の都合上、構成要素等が、そのサイズが誇張または縮小され得る。例えば、図面に示された各構成のサイズ及び厚さは、説明の都合上、任意に示したので、本発明が必ずしも図示されたところに限定されない。
【0026】
以下、添付された図面を参照して本発明の実施形態を詳しく説明し、図面を参照して説明するとき、同一であるか、対応する構成要素は同様の図面符号を付し、これについての重複する説明を省略する。
【0027】
図1は、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムに対する例示図である。
【0028】
図1に示すように、実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムは、端末機100、囲碁サーバ200、着手モデルサーバ300、形勢判断モデルサーバ400、及びネットワーク500を備えることができる。
【0029】
図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)ネットワークなどが含まれるが、これに限定されるものではない。
【0030】
<端末機100>
まず、端末機100は、囲碁ゲームサービスの提供を受けようとするユーザの端末機である。また、端末機100は、様々な作業を行うアプリケーションを実行するためにユーザが使用する1つ以上のコンピュータまたは他の電子装置である。例えば、コンピュータ、ラップトップコンピュータ、スマートフォン、モバイル電話機、PDA、タブレットPC、あるいは囲碁サーバ200と通信するように動作可能な任意の他のデバイスを備える。ただし、これに限定されるものではなく、端末機100は、様々なマシン上で実行され、複数のメモリ内に格納された命令語を解釈して実行するプロセッシングロジックを備え、外部入力/出力デバイス上にグラフィックユーザインターフェース(GUI)のためのグラフィック情報をディスプレイするプロセスなどのように、様々なその他の要素を含むことができる。さらに、端末機100は、入力装置(例えば、マウス、キーボード、タッチ感知表面等)及び出力装置(例えば、ディスプレイ装置、モニタ、スクリーン等)に接続されることができる。端末機100により実行されるアプリケーションは、ゲームアプリケーション、ウェブブラウザ、ウェブブラウザで動作するウェブアプリケーション、ワードプロセッサ、メディアプレイヤ、スプレッドシート、イメージプロセッサ、保安ソフトウェア、またはその他のものを含むことができる。
【0031】
また、端末機100は、命令を格納する少なくとも1つのメモリ101、少なくとも1つのプロセッサ102、及び通信部103を備えることができる。
【0032】
端末機100のメモリ101は、端末機100で駆動される複数の応用プログラム(application program)またはアプリケーション(application)、端末機100の動作のためのデータ、命令語を格納することができる。命令は、プロセッサ102をして動作を実行させるためにプロセッサ102により実行可能であり、動作は、囲碁ゲーム実行要請信号を送信、ゲームデータ送受信、着手情報送受信、形勢判断要請信号を送信、形勢判断結果受信、及び各種情報を受信する動作を含むことができる。また、メモリ101は、ハードウェア的に、ROM、RAM、EPROM、フラッシュドライブ、ハードドライブなどのような様々な格納機器でありうるし、メモリ101は、インターネット(internet)上で前記メモリ101の格納機能を果たすウェブストレージ(web storage)でありうる。
【0033】
端末機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)、その他の機能実行のための任意の形態のプロセッサでありうる。
【0034】
端末機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)によって構築されたネットワーク網上で基地局、外部の端末、サーバのうち、少なくとも1つと無線信号を送受信できる。
【0035】
<囲碁サーバ200>
囲碁サーバ200が提供する囲碁ゲームサービスは、囲碁サーバ200が提供する仮像のコンピュータユーザと実際ユーザとが共にゲームに参加する形態で構成されることができる。これは、ユーザ側端末機100上で実現される囲碁ゲーム環境で1つの実際ユーザと1つのコンピュータユーザとが共にゲームをプレイする。他の側面において、囲碁サーバ200が提供する囲碁ゲームサービスは、複数のユーザ側デバイスが参加して囲碁ゲームがプレイされる形態で構成されることもできる。
【0036】
囲碁サーバ200は、命令を格納する少なくとも1つのメモリ201、少なくとも1つのプロセッサ202、及び通信部203を備えることができる。
【0037】
囲碁サーバ200のメモリ201は、囲碁サーバ200で駆動される複数の応用プログラム(application program)またはアプリケーション(application)、囲碁サーバ200の動作のためのデータ、命令語を格納することができる。命令は、プロセッサ202をして動作を実行させるためにプロセッサ202により実行可能であり、動作は、ゲーム実行要請信号受信、ゲームデータ送受信、着手情報送受信、形勢判断要請信号送受信、形勢判断結果送受信、及び各種送信動作を含むことができる。また、メモリ201は、囲碁サーバ200で対局した複数の棋譜または既存に公開された複数の棋譜を格納することができる。複数の棋譜の各々は、対局開始の初めの着手情報である第1の着手から対局が終了される最終着手までの情報を全て含むことができる。すなわち、複数の棋譜は、着手に関するヒストリー情報を含むことができる。囲碁サーバ200は、形勢判断モデルサーバ400のトレーニングのために、格納された複数の棋譜を形勢判断モデルサーバ400に提供できるようにする。また、メモリ201は、ハードウェア的に、ROM、RAM、EPROM、フラッシュドライブ、ハードドライブなどのような様々な格納機器でありうるし、メモリ201は、インターネット(internet)上で前記メモリ201の格納機能を果たすウェブストレージ(web storage)でありうる。
【0038】
囲碁サーバ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)、その他の機能実行のための任意の形態のプロセッサでありうる。
【0039】
囲碁サーバ200は、通信部203を介してネットワーク500を経由して端末機100、着手モデルサーバ300、及び形勢判断モデルサーバ400と通信を行うことができる。
【0040】
<着手モデルサーバ300>
着手モデルサーバ300は、別のクラウドサーバやコンピュータ装置を備えることができる。また、着手モデルサーバ300は、端末機100のプロセッサまたは囲碁サーバ200のデータ処理部に設けられたニューラルネットワークシステムでありうるが、以下において着手モデルサーバ300は、端末機100または囲碁サーバ200とは別の装置として説明する。
【0041】
着手モデルサーバ300は、命令を格納する少なくとも1つのメモリ301、少なくとも1つのプロセッサ302、及び通信部303を備えることができる。
【0042】
着手モデルサーバ300は、囲碁規則によって自ら学習してディープラーニングモデルである着手モデルを構築し、端末機100のユーザと対局が可能な人工知能コンピュータであって、自分のターンにおいて対局で勝つことができるように碁石の着手を行うことができる。着手モデルサーバ300が着手モデルでトレーニングする詳しい説明は、
図2~
図5の着手モデルに関する説明にしたがう。
【0043】
着手モデルサーバ300のメモリ301は、着手モデルサーバ300で駆動される複数の応用プログラム(application program)またはアプリケーション(application)、着手モデルサーバ300の動作のためのデータ、命令語を格納することができる。命令は、プロセッサ302をして動作を実行させるためにプロセッサ302により実行可能であり、動作は、着手モデル学習(トレーニング)動作、着手情報送受信、及び各種送信動作を含むことができる。また、メモリ301は、ディープラーニングモデルである着手モデルを格納することができる。また、メモリ301は、ハードウェア的に、ROM、RAM、EPROM、フラッシュドライブ、ハードドライブなどのような様々な格納機器でありうるし、メモリ301は、インターネット(internet)上で前記メモリ301の格納機能を果たすウェブストレージ(web storage)でありうる。
【0044】
着手モデルサーバ300のプロセッサ302は、メモリ302に格納された着手モデルを読み出して、構築されたニューラルネットワークシステムにしたがって下記に記述する着手モデル学習及び碁石着手を行うようになる。実施形態によってプロセッサ302は、全体ユニットを制御するメインプロセッサと、着手モデルによってニューラルネットワーク駆動の際に必要な大容量の演算を処理する複数のグラフィックプロセッサ(Graphics Processing Unit、GPU)とを備えるように構成されることができる。
【0045】
着手モデルサーバ300は、通信部303を介してネットワーク500を経由して囲碁サーバ200と通信を行うことができる。さらに、着手モデルサーバ300は、ネットワーク500を経由して形勢判断モデルサーバ400及び端末機100とも通信を行うことができる。
【0046】
<形勢判断モデルサーバ400>
形勢判断モデルサーバ400は、別のクラウドサーバやコンピュータ装置を備えることができる。また、形勢判断モデルサーバ400は、端末機100のプロセッサまたは囲碁サーバ200のデータ処理部に設けられたニューラルネットワークシステムでありうるが、以下において形勢判断モデルサーバ400は、端末機100または囲碁サーバ200とは別の装置として説明する。
【0047】
形勢判断モデルサーバ400は、命令を格納する少なくとも1つのメモリ401、少なくとも1つのプロセッサ402、及び通信部403を備えることができる。
【0048】
形勢判断モデルサーバ400は、通信部403を介して囲碁サーバ200からトレーニングデータセットを受信できる。トレーニングデータセットは、複数の棋譜と、当該複数の棋譜に対する形勢判断情報でありうる。形勢判断モデルサーバ400は、受信したトレーニングデータセットを用いて碁石が置かれた碁盤の状態に対する形勢を判断できるように指導学習してディープラーニングモデルである形勢判断モデルを構築し、端末機100ユーザの形勢判断要請に応じて形勢判断を行うことができる。形勢判断モデルサーバ400が形勢判断モデルでトレーニングする詳しい説明は、
図6~
図18の形勢判断モデルに関する説明にしたがう。
【0049】
形勢判断モデルサーバ400のメモリ401は、形勢判断モデルサーバ400で駆動される複数の応用プログラム(application program)またはアプリケーション(application)、形勢判断モデルサーバ400の動作のためのデータ、命令語を格納することができる。命令は、プロセッサ402をして動作を実行させるためにプロセッサ402により実行可能であり、動作は、形勢判断モデル学習(トレーニング)動作、形勢判断実行、形勢判断結果送信、複数の棋譜情報受信、及び各種送信動作を含むことができる。また、メモリ401は、ディープラーニングモデルである形勢判断モデルを格納できる。また、メモリ401は、ハードウェア的に、ROM、RAM、EPROM、フラッシュドライブ、ハードドライブなどのような様々な格納機器でありうるし、メモリ401は、インターネット(internet)上で前記メモリ401の格納機能を果たすウェブストレージ(web storage)でありうる。
【0050】
形勢判断モデルサーバ400のプロセッサ402は、メモリ401に格納された形勢判断モデルを読み込んだ後、構築されたニューラルネットワークシステムにしたがって下記に記述する形勢判断モデル学習及び対局中、碁盤の形勢判断を行うようになる。実施形態によってプロセッサ402は、全体ユニットを制御するメインプロセッサと、形勢判断モデルによってニューラルネットワーク駆動の際に必要な大容量の演算を処理する複数のグラフィックプロセッサ(Graphics Processing Unit、GPU)とを備えるように構成されることができる。
【0051】
形勢判断モデルサーバ400は、通信部403を介してネットワーク500を経由して囲碁サーバ200と通信を行うことができる。さらに、形勢判断モデルサーバ400は、ネットワーク500を経由して着手モデルサーバ300及び端末機100と通信を行うことができる。
【0052】
<着手モデル>
図2は、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスにおいて人工知能コンピュータの着手のための着手モデルサーバ300の着手モデル構造を説明するための図であり、
図3は、着手モデルの政策による着手点に対する移動確率分布を説明するための図であり、
図4は、着手モデルの着手点に対する価値と訪問回数を説明するための図であり、
図5は、着手モデルが探索部のパイプラインに沿って着手する過程を説明するための図である。
【0053】
図2に示すように、本発明の実施形態に係る着手モデルは、着手モデルサーバ300のディープラーニングモデルであって、探索部310、セルフプレイ部320、着手ニューラルネットワーク330を備えることができる。
【0054】
着手モデルは、探索部310、セルフプレイ部320、及び着手ニューラルネットワーク330を用いて対局で勝つことができるように着手するモデルとして学習されることができる。より具体的に、探索部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のとおりである。
【数2】
【0055】
θは、ニューラルネットワークのパラメータであり、cは、非常に小さい定数である。
【0056】
数式1の着手損失lにおいてz(自家プレイ価値)とv(価値)とが同じになるようにすることは、平均二乗損失(mean square loss)タームに該当し、πとp(移動確率値)とが同じになるようにすることは、クロスエントロピー損失(cross entropy loss)タームに該当し、θにcをかけることは、正規化タームであって、オーバーフィッティングを防止するためのものである。
【0057】
例えば、
図3に示すように、トレーニングされた着手モデルは、着手点等の移動確率値Pを
図3のように確率分布値で表すことができる。
図4に示すように、トレーニングされた着手モデルの価値Vは、
図4の1つの着手点において上に表示された値で表すことができる。着手ニューラルネットワーク330は、ニューラルネットワーク構造で構成されることができる。一例として、着手ニューラルネットワーク330は、1個のコンボリューション(convolution)ブロックと19個のレシデュアル(residual)ブロックとで構成されることができる。コンボリューションブロックは、3×3コンボリューションレイヤが複数個重なった形態でありうる。1つのレシデュアルブロックは、3×3コンボリューションレイヤが複数個重なり、スキップコネクションを含んだ形態でありうる。スキップコネクションは、所定のレイヤの入力が当該レイヤの出力値と合わせられて出力され、他のレイヤに入力される構造である。また、着手ニューラルネットワーク330の入力は、黒プレイヤの最近の8手に対する石の位置情報と百プレイヤの最近の8手に対する石の位置情報と、現在プレイヤが黒であるか白であるかに対する順序情報を含んだ19*19*17のRGBイメージが入力され得る。
【0058】
図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を用いて確率分布を作って探索確率値πを出力できる。着手モデルは、着手点等のうち、最も高い探索確率値πを選択して着手することができる。
【0059】
<形勢判断モデル>
図6は、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスの形勢判断機能を提供する画面を見せる例示図であり、
図7は、本発明の形勢判断モデルサーバ400の形勢判断モデル構造を説明するための図であり、
図8は、本発明の形勢判断モデルの複数のブロックからなるニューラルネットワーク構造のうち、1つのブロックを説明するための図である。
【0060】
図6に示すように、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスは、現在碁盤状態の形勢判断をすることができる。一例として、
図6のように、ユーザが端末機100の画面で囲碁対局中、形勢判断メニューAをクリックして形勢判断を要請すれば、ディープラーニングに基づく囲碁ゲームサービスがポップアップウィンドウに形勢判断結果を提供できる。形勢判断は、囲碁対局中に相手方と自分の地を計算して、誰が何点で勝っているのか判断することである。例えば、ユーザは、形勢が自分に有利であるという判断がつくと、それ以上無理せずに、現在の有利な状況をそのまま維持したまま対局を終了する方向に戦略を立てるはずであり、仮りに、不利であるという判断であれば、ゲーム局面を新しく転換できるように様々な戦略を模索することができる。形勢判断の基準は、碁石が碁盤に配置された状態による地、捨て石、石、駄目、関になる。石は、碁盤に置かれた石であり、韓国の規則では点数ではない。地は、1つの色の碁石で囲まれた空いた点から構成された領域であって、韓国の規則では点数である。駄目と関は、囲碁が終わったとき、黒地でも百地でもない領域であって、韓国の規則では点数ではない。碁盤上の捨て石は、碁盤上に置かれた石のうち、どのように打っても捕まえるしかなく、死んだ石であって、韓国の規則では、相手方の地を埋めるのに使用するので点数である。関は、囲碁が終わったとき、黒地でも百地でもない領域をいう。したがって、形勢判断は、碁石が置かれた碁盤状態で地、捨て石、石、駄目、関を正確に区分または予測してこそ正確な判断になることができる。このとき、地、捨て石、石、駄目、関を正確に区分することは、地、捨て石、石、駄目、関が完全になされた状態を区分することであり、地、捨て石、石、駄目、関を正確に予測することは、地、捨て石、石、駄目、関になる可能性が高い状態を予測することでありうる。
【0061】
図7に示すように、本発明の実施形態に係る形勢判断モデルは、形勢判断モデルサーバ400のディープラーニングモデルであって、形勢判断ニューラルネットワーク410、入力特徴抽出部420、及び正解ラベル生成部430を備えることができる。
【0062】
形勢判断モデルは、形勢判断ニューラルネットワーク410を用いて現在碁盤状態の形勢を判断できるように指導学習(supervised learning)することができる。より具体的に、形勢判断モデルの碁盤状態Sに関するトレーニングデータセットを生成し、生成されたトレーニングデータセットを用いて形勢判断ニューラルネットワーク410が現在碁盤状態Sによる形勢を判断できるように学習させることができる。形勢判断モデルサーバ400は、囲碁サーバ200から複数の棋譜を受信できる。複数の棋譜の各棋譜は、着手順序によるそれぞれの碁盤状態Sを含むことができる。
【0063】
入力特徴抽出部420は、複数の棋譜の碁盤状態Sで入力特徴IFを抽出して形勢判断ニューラルネットワーク410にトレーニングのための入力データとして提供することができる。碁盤状態Sの入力特徴IFは、黒プレイヤの最近の8手に対する石の位置情報と白プレイヤの最近の8手に対する石の位置情報と、現在プレイヤが黒であるか白であるかに対する順序情報を含んだ19*19*18のRGBイメージでありうる。一例として、入力特徴抽出部420は、ニューラルネットワーク構造からなっていることができ、一種のエンコーダを含むことができる。
【0064】
【0065】
【0066】
【0067】
形勢判断ニューラルネットワーク410は、ニューラルネットワーク構造で構成されることができる。一例として、形勢判断ニューラルネットワーク420は、19個のレシデュアル(residual)ブロックで構成されることができる。
図8に示すように、任意の1つのレシデュアルブロック(800:block n)は、256個の3×3コンボリューションレイヤ801、第1の一括正規化(batch normalization)レイヤ802、第1のRelu活性化関数レイヤ803、256個の3×3コンボリューションレイヤ804、第2の一括正規化(batch normalization)レイヤ805、スキップコネクション807、第2のRelu活性化関数レイヤ806の順に配置されることができる。第1及び第2の一括正規化(batch normalization)レイヤ802、805は、学習する途中に以前レイヤのパラメータ変化のため、現在レイヤの入力の分布が変わる現象である共変量シフト(covariate shift)を防止するためのものである。スキップコネクション807は、ブロック層が厚くなってもニューラルネットワークの性能が減少することを防止し、ブロック層をさらに厚くして全体ニューラルネットワークの性能を高めることができるようにする。スキップコネクション807は、レシデュアルブロック800の最初入力データが2番目の第2の一括正規化(batch normalization)レイヤ805の出力と合わせて2番目に配置された第2のRelu活性化関数レイヤ806に入力される形態でありうる。
【0068】
図9及び
図10は、本発明の形勢判断モデルを学習するために使用される正解ラベルを生成するための第1及び第2の前処理ステップを説明するための図であり、
図11は、本発明の形勢判断モデルを学習するために使用される正解ラベルを生成するための第3の前処理ステップを説明するための図である。
【0069】
正解ラベル生成部430は、形勢判断ニューラルネットワーク410が正確な形勢判断が可能なように学習するのに用いられる正解ラベルを生成できる。
【0070】
より具体的に、正解ラベル生成部430は、入力データに基になる碁盤状態Sを入力として受け、現在碁盤状態Sでヨセをする第1の前処理を行って第1の前処理状態P1を生成できる。第1の前処理であるヨセは、地の計算をする前に地の境界が明確になるように所定の着手をしてゲームを仕上げる過程である。一例として、
図9に示すように、正解ラベル生成部430は、
図9の(a)の現在碁盤状態Sでヨセをして
図9の(b)の第1の前処理状態P1を生成できる。
【0071】
正解ラベル生成部430は、第1の前処理状態P1で地の境界内に配置され、地の区分に不要な石を除去する第2の前処理を行って第2の前処理状態P2を生成できる。例えば、地の境界内に配置され、地の区分に不要な石は捨て石でありうる。捨て石は、地内に相手方の石が配置されて、どのように打っても捕まえるしかなくなり、死んだ石であることを先に説明した。また、地の境界内に配置され、地の区分に不要な石は地内に配置された自分の石でありうる。一例として、
図9に示すように、正解ラベル生成部430は、
図9の(b)の第1の前処理状態P1で地の区分に不要な石を除去して、
図9の(c)の第2の前処理状態P2を生成できる。
【0072】
他の例として、
図10に示すように、正解ラベル生成部430は、
図10の(a)の現在碁盤状態Sで第1の前処理であるヨセのために、
図10の(b)のように赤色×に着手することができる。正解ラベル生成部430は、
図10の(b)で青色×と表示された捨て石を除去するために、緑色×に着手して捨て石を除去し、捨て石除去のために使用された緑色×に着手した石も除去して第2の前処理を行うことができる。
【0073】
正解ラベル生成部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に特徴を変更することができる。
【0074】
【0075】
図12は、本発明の形勢判断モデルの形勢判断結果を説明するための図である。
【0076】
学習された形勢判断モデルは、碁盤状態が入力されれば、碁盤の全ての交差点に対する形勢値を提供できる。すなわち、碁盤交差点の361個地点に対して形勢値である-1ないし+1の定数値を提供できる。
【0077】
図12に示すように、形勢判断モデルサーバ400は、形勢判断モデルが提供した形勢値、所定の閾値、石の有無を利用して形勢を判断できる。一例として、形勢判断モデルサーバ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は、相手の石の捨て石である可能性が高いほど、次第に大きくなる相手の石と同じ色の四角形態と表示することができる。
【0078】
また、形勢判断モデルサーバ400は、各交差点で判断した形勢判断基準を利用して現在碁盤状態での地計算結果を表示できる。
【0079】
したがって、実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムは、ディープラーニングニューラルネットワークを利用して囲碁形勢を判断できる。また、実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムは、囲碁規則による地、捨て石、石、駄目、関を正確に区分して囲碁の形勢を正確に判断することができる。また、実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムは、囲碁規則による地、捨て石、石、駄目、関を予測して囲碁の形勢を正確に判断することができる。また、実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムは、囲碁対局中、速やかに形勢を判断できる。
【0080】
図13は、本発明の形勢判断モデルの形勢判断結果と従来技術に係るディープラーニングモデルによる形勢判断結果とを比較した形状であり、
図14は、本発明の形勢判断モデルの形勢判断結果と従来技術に係るディープラーニングモデルによる形勢判断結果とを比較した形状であり、
図15は、本発明の形勢判断モデルの形勢判断結果と従来技術に係るディープラーニングモデルによる形勢判断結果とを比較した形状である。
【0081】
図13に示すように、本発明の形勢判断モデルは、
図13の(a)のB領域のように、交差点毎に地、石、捨て石を区分して形勢を判断する。しかし、従来技術に係るディープラーニングモデルによる形勢判断モデルは、
図13の(b)で
図13の(a)と対応する領域の交差点に対して地、石、捨て石を区分できない。
【0082】
同様に、
図14に示すように、本発明の形勢判断モデルは、
図14の(a)のC領域のように、交差点毎に地、石、捨て石を区分して形勢を判断する。しかし、従来技術に係るディープラーニングモデルによる形勢判断モデルは、
図14の(b)で
図13の(a)と対応する領域の交差点に対して地、石、捨て石を区分できない。
【0083】
図15に示すように、本発明の形勢判断モデルは、
図15の(a)のD領域のように、白地を正しく認識する。しかし、従来技術に係るディープラーニングモデルによる形勢判断モデルは、
図15の(b)で
図15の(a)と対応する領域で白地を区分できない。
【0084】
図16は、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムにおける信号フローに対する例示図である。
【0085】
図16に示すように、着手モデルサーバ300は、人工知能コンピュータであって、自分のターンにおいて対局で勝つことができるように碁石の着手を行うことができるように囲碁規則によって自ら学習してディープラーニングモデルである着手モデルをトレーニングすることができる(S11)。囲碁サーバ200は、複数の棋譜を形勢判断モデルサーバ400に送信することができる(S12)。形勢判断モデルサーバ400は、トレーニングデータセットを生成できる。まず、形勢判断モデルサーバ400は、複数の棋譜の碁盤状態で入力特徴を抽出できる(S13)。形勢判断モデルサーバ400は、入力特徴を抽出した碁盤状態を利用して正解ラベルを生成できる(S14)。形勢判断モデルサーバ400は、入力特徴を入力データとし、正解ラベルをターゲットデータとしたトレーニングデータセットを用いて形勢判断モデルをトレーニングすることができる(S15)。端末機100は、囲碁サーバ200に人工知能コンピュータを相手にしてまたは他のユーザ端末機を相手にして囲碁ゲームを要請できる(S16)。囲碁サーバ200は、端末機100が人工知能コンピュータを相手にして囲碁ゲームを要請すれば、着手モデルサーバ300に着手を要請できる(S17)。囲碁サーバ200は、囲碁ゲームを進行し、端末機100と着手モデルサーバ300とが自分のターンに着手を行うことができる(S18~S20)。対局中、端末機100は、囲碁サーバ200に形勢判断を要請できる(S21)。囲碁サーバ200は、形勢判断モデルサーバ400に現在碁盤状態に対する形勢判断を要請できる(S22)。形勢判断モデルサーバ400は、現在碁盤状態の入力特徴を抽出し、ディープラーニングモデルである形勢判断モデルが入力特徴を利用して形勢値を生成し、碁盤状態と形勢値を用いて形勢判断を行うことができる(S23)。形勢判断モデルサーバ400は、形勢判断結果を囲碁サーバ200に提供することができる(S24)。囲碁サーバ200は、端末機100に形勢判断結果を提供できる(S25)。
【0086】
図17は、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法のうち、形勢判断方法であり、
図18は、
図17の形勢判断方法のうち、正解ラベルを生成するためのトレーニングデータの前処理方法である。
【0087】
図17に示すように、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、形勢判断モデルサーバ400が囲碁サーバから複数の棋譜を受信するステップ(S100)を含むことができる。
【0088】
本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、形勢判断モデルサーバ400の形勢判断モデルのうち、入力特徴抽出部が複数の棋譜の碁盤状態で入力特徴を抽出するステップ(S200)を含むことができる。入力特徴を抽出する方法は、
図7の説明にしたがう。
【0089】
本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、形勢判断モデルのうち、正解ラベル生成部が入力特徴を抽出した碁盤状態に基づいて正解ラベルを生成するステップ(S300)を含むことができる。一例として、
図18に示すように、正解ラベル生成ステップ(S300)は、正解ラベル生成部が現在碁盤状態でヨセをする第1の前処理するステップ(S301)を含むことができる。第1の前処理するステップ(S301)は、
図9~
図10の説明にしたがう。正解ラベル生成ステップ(S300)は、正解ラベル生成部が第1の前処理された碁盤状態で不要な石を除去する第2の前処理するステップ(S302)を含むことができる。第2の前処理するステップ(S302)は、
図9~
図10の説明にしたがう。正解ラベル生成ステップ(S300)は、正解ラベル生成部が第2の前処理された碁盤状態の各交差点を形勢値に変更する第3の前処理するステップ(S303)を含むことができる。第3の前処理するステップ(S303)は、
図11の説明にしたがう。正解ラベル生成ステップ(S300)は、第3の前処理状態を正解ラベルとして形勢判断ニューラルネットワークにターゲットデータとして提供するステップ(S304)を含むことができる。ターゲットデータを提供するステップ(S304)は、
図7及び
図11の説明にしたがう。
【0090】
本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、トレーニングデータセットを用いて形勢判断モデルの形勢判断ニューラルネットワークをトレーニングするステップ(S400)を含むことができる。形勢判断ニューラルネットワークをトレーニング(学習)する方法は、
図7の説明にしたがう。
【0091】
本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、形勢判断ニューラルネットワークのトレーニングが完了して形勢判断モデルを構築するステップ(S500)を含む。一例として、形勢判断ニューラルネットワークのトレーニングの完了は、
図7の形勢判断損失が所定の値以下になった場合でありうる。
【0092】
本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、端末機の形勢判断要請により現在碁盤状態が形勢判断モデルに入力されるステップ(S600)を含むことができる。
【0093】
本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、形勢判断モデルが入力された現在碁盤状態の形勢判断を行うステップ(S700)を含むことができる。形勢判断を行うステップ(S700)は、
図12において説明した形勢判断モデルが現在碁盤状態の形勢値を生成する説明にしたがうことができる。
【0094】
本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、形勢判断モデルサーバ400が形勢判断結果を出力するステップ(S800)を含むことができる。形勢判断結果を出力するステップ(S800)は、
図12において説明した形勢判断モデルサーバが形勢値、碁盤の状態、所定の閾値を用いて形勢判断結果を提供する説明にしたがうことができる。
【0095】
したがって、実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、ディープラーニングニューラルネットワークを利用して囲碁形勢を判断できる。また、実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、囲碁規則による地、捨て石、石、駄目、関を正確に区分して囲碁の形勢を正確に判断することができる。また、実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、囲碁規則による地、捨て石、石、駄目、関を予測して囲碁の形勢を正確に判断することができる。また、実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、囲碁対局中、速やかに形勢を判断できる。
【0096】
以上で説明された本発明に係る実施形態は、様々なコンピュータ構成要素を介して実行され得るプログラム命令語の形態で実現され、コンピュータ読み取り可能な記録媒体に記録されることができる。前記コンピュータ読み取り可能な記録媒体は、プログラム命令語、データファイル、データ構造などを単独でまたは組み合わせて含むことができる。前記コンピュータ読み取り可能な記録媒体に記録されるプログラム命令語は、本発明のために特別に設計され、構成されたものであるか、コンピュータソフトウェア分野の当業者に公知されて使用可能なものでありうる。コンピュータ読み取り可能な記録媒体の例には、ハードディスク、フロッピーディスク、及び磁気テープのような磁気媒体、CD-ROM及びDVDのような光気緑媒体、フロプティカルディスク(floptical disk)のような磁気-光媒体(magneto-optical medium)、及びROM、RAM、フラッシュメモリなどのような、プログラム命令語を格納し、実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令語の例には、コンパイラによって作られるような機械語コードだけでなく、インタプリタなどを使用してコンピュータにより実行され得る高級言語コードも含まれる。ハードウェア装置は、本発明に係る処理を行うために、1つ以上のソフトウェアモジュールに変更されることができ、その逆も同様である。
【0097】
本発明において説明する特定実行等は、一実施形態であって、いかなる方法でも本発明の範囲を限定するものではない。明細書の簡潔さのために、従来の電子的な構成、制御システム、ソフトウェア、前記システムの他の機能的な側面等の記載は省略されることができる。また、図面に図示された構成要素間の線等の連結または連結部材などは、機能的な連結及び/又は物理的または回路的連結を例示的に示したものであって、実際装置では、代替可能であるか、追加の様々な機能的な連結、物理的な連結、または回路連結として表されることができる。また、「必須な」、「重要に」などのように、具体的な言及がなければ、本発明の適用のために必ず必要な構成要素でない場合がある。
【0098】
また、説明した本発明の詳細な説明では、本発明の好ましい実施形態を参照して説明したが、当該技術分野の熟練された当業者または当該技術分野における通常の知識を有する者であれば、後述する特許請求の範囲に記載された本発明の思想及び技術領域から逸脱しない範囲内で本発明を様々に修正及び変更させ得ることが理解できるであろう。したがって、本発明の技術的範囲は、明細書の詳細な説明に記載された内容に限定されるものではなく、特許請求の範囲により決められなければならないであろう。
【符号の説明】
【0099】
100 端末機
200 囲碁サーバ
300 着手モデルサーバ
310 探索部
320 セルフプレイ部
330 着手ニューラルネットワーク
400 形勢判断モデルサーバ
410 形勢判断ニューラルネットワーク
420 入力特徴抽出部
430 正解ラベル生成部