本発明は、様々な変換を加えることができ、種々の実施形態を有することができるところ、特定の実施形態を図面に例示し、詳細な説明に詳しく説明しようとする。本発明の効果及び特徴、そして、それらを達成する方法は、図面とともに詳しく後述されている実施形態を参照すれば明確になるであろう。しかし、本発明は、以下において開示される実施形態等に限定されるものではなく、様々な形態で実現されることができる。以下の実施形態において、第1、第2などの用語は、限定的な意味ではなく、1つの構成要素を他の構成要素と区別する目的として使用された。また、単数の表現は、文脈上、明白に異なるように意味しない限り、複数の表現を含む。また、「含む」または「有する」などの用語は、明細書上に記載された特徴または構成要素が存在することを意味するものであり、1つ以上の他の特徴または構成要素が付加される可能性を予め排除するものではない。また、図面では、説明の都合上、構成要素等が、そのサイズが誇張または縮小され得る。例えば、図面に示された各構成のサイズ及び厚さは、説明の都合上、任意に示したので、本発明が必ずしも図示されたところに限定されない。
以下、添付された図面を参照して本発明の実施形態を詳しく説明し、図面を参照して説明するとき、同一であるか、対応する構成要素は同様の図面符号を付し、これについての重複する説明を省略する。
図1は、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムに対する例示図である。
図1に示すように、実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムは、端末機100、囲碁サーバ200、着手モデルサーバ300、形勢判断モデルサーバ400、及びネットワーク500を備えることができる。
図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)ネットワークなどが含まれるが、これに限定されるものではない。
・端末機
まず、端末機100は、囲碁ゲームサービスの提供を受けようとするユーザの端末機である。また、端末機100は、様々な作業を行うアプリケーションを実行するためにユーザが使用する1つ以上のコンピュータまたは他の電子装置である。例えば、コンピュータ、ラップトップコンピュータ、スマートフォン、モバイル電話機、PDA、タブレットPC、あるいは囲碁サーバ200と通信するように動作可能な任意の他のデバイスを備える。ただし、これに限定されるものではなく、端末機100は、様々なマシン上で実行され、複数のメモリ内に格納された命令語を解釈して実行するプロセッシングロジックを備え、外部入力/出力デバイス上にグラフィックユーザインターフェース(GUI)のためのグラフィック情報をディスプレイするプロセスなどのように、様々なその他の要素を含むことができる。さらに、端末機100は、入力装置(例えば、マウス、キーボード、タッチ感知表面等)及び出力装置(例えば、ディスプレイ装置、モニタ、スクリーン等)に接続されることができる。端末機100により実行されるアプリケーションは、ゲームアプリケーション、ウェブブラウザ、ウェブブラウザで動作するウェブアプリケーション、ワードプロセッサ、メディアプレイヤ、スプレッドシート、イメージプロセッサ、保安ソフトウェア、またはその他のものを含むことができる。
また、端末機100は、命令を格納する少なくとも1つのメモリ101、少なくとも1つのプロセッサ102、及び通信部103を備えることができる。
端末機100のメモリ101は、端末機100で駆動される複数の応用プログラム(application program)またはアプリケーション(application)、端末機100の動作のためのデータ、命令語を格納することができる。命令は、プロセッサ102をして動作を実行させるためにプロセッサ102により実行可能であり、動作は、囲碁ゲーム実行要請信号を送信、ゲームデータ送受信、着手情報送受信、形勢判断要請信号を送信、形勢判断結果受信、及び各種情報を受信する動作を含むことができる。また、メモリ101は、ハードウェア的に、ROM、RAM、EPROM、フラッシュドライブ、ハードドライブなどのような様々な格納機器でありうるし、メモリ101は、インターネット(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)によって構築されたネットワーク網上で基地局、外部の端末、サーバのうち、少なくとも1つと無線信号を送受信できる。
・囲碁サーバ
囲碁サーバ200が提供する囲碁ゲームサービスは、囲碁サーバ200が提供する仮像のコンピュータユーザと実際ユーザとが共にゲームに参加する形態で構成されることができる。これは、ユーザ側端末機100上で実現される囲碁ゲーム環境で1つの実際ユーザと1つのコンピュータユーザとが共にゲームをプレイする。他の側面において、囲碁サーバ200が提供する囲碁ゲームサービスは、複数のユーザ側デバイスが参加して囲碁ゲームがプレイされる形態で構成されることもできる。
囲碁サーバ200は、命令を格納する少なくとも1つのメモリ201、少なくとも1つのプロセッサ202、及び通信部203を備えることができる。
囲碁サーバ200のメモリ201は、囲碁サーバ200で駆動される複数の応用プログラム(application program)またはアプリケーション(application)、囲碁サーバ200の動作のためのデータ、命令語を格納することができる。命令は、プロセッサ202をして動作を実行させるためにプロセッサ202により実行可能であり、動作は、ゲーム実行要請信号受信、ゲームデータ送受信、着手情報送受信、形勢判断要請信号送受信、形勢判断結果送受信、及び各種送信動作を含むことができる。また、メモリ201は、囲碁サーバ200で対局した複数の棋譜または既存に公開された複数の棋譜を格納することができる。複数の棋譜の各々は、対局開始の初めの着手情報である第1の着手から対局が終了される最終着手までの情報を全て含むことができる。すなわち、複数の棋譜は、着手に関するヒストリー情報を含むことができる。囲碁サーバ200は、形勢判断モデルサーバ400のトレーニングのために、格納された複数の棋譜を形勢判断モデルサーバ400に提供できるようにする。また、メモリ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を介してネットワーク500を経由して端末機100、着手モデルサーバ300、及び形勢判断モデルサーバ400と通信を行うことができる。
・着手モデルサーバ
着手モデルサーバ300は、別のクラウドサーバやコンピュータ装置を備えることができる。また、着手モデルサーバ300は、端末機100のプロセッサまたは囲碁サーバ200のデータ処理部に設けられたニューラルネットワークシステムでありうるが、以下において着手モデルサーバ300は、端末機100または囲碁サーバ200とは別の装置として説明する。
着手モデルサーバ300は、命令を格納する少なくとも1つのメモリ301、少なくとも1つのプロセッサ302、及び通信部303を備えることができる。
着手モデルサーバ300は、囲碁規則によって自ら学習してディープラーニングモデルである着手モデルを構築し、端末機100のユーザと対局が可能な人工知能コンピュータであって、自分のターンにおいて対局で勝つことができるように碁石の着手を行うことができる。着手モデルサーバ300が着手モデルでトレーニングする詳しい説明は、図2~図5の着手モデルに関する説明にしたがう。
着手モデルサーバ300のメモリ301は、着手モデルサーバ300で駆動される複数の応用プログラム(application program)またはアプリケーション(application)、着手モデルサーバ300の動作のためのデータ、命令語を格納することができる。命令は、プロセッサ302をして動作を実行させるためにプロセッサ302により実行可能であり、動作は、着手モデル学習(トレーニング)動作、着手情報送受信、及び各種送信動作を含むことができる。また、メモリ301は、ディープラーニングモデルである着手モデルを格納することができる。また、メモリ301は、ハードウェア的に、ROM、RAM、EPROM、フラッシュドライブ、ハードドライブなどのような様々な格納機器でありうるし、メモリ301は、インターネット(internet)上で上記メモリ301の格納機能を果たすウェブストレージ(web storage)でありうる。
着手モデルサーバ300のプロセッサ302は、メモリ302に格納された着手モデルを読み出して、構築されたニューラルネットワークシステムにしたがって下記に記述する着手モデル学習及び碁石着手を行うようになる。実施形態として、着手モデルサーバ300のプロセッサ302は、特定碁盤状態Sで最高の手であると判断される特定着手点を少なくとも2つ以上予測して導出することができる。また、プロセッサ302は、導出された少なくとも2つ以上の特定着手点を形勢判断モデルサーバ400に送信することができる。また、着手モデルサーバ300のプロセッサ302は、着手モデルを所定の特定棋風にて学習させるセルフプレイ(self-play)学習を行うことができる。また、プロセッサ302は、セルフプレイ学習を介して棋風が正しく学習及び判断されたか否かの性能を診断できる。
一方、実施形態によってプロセッサ302は、全体ユニットを制御するメインプロセッサと、着手モデルによってニューラルネットワーク駆動の際に必要な大容量の演算を処理する複数のグラフィックプロセッサ(Graphics Processing Unit、GPU)とを備えるように構成されることができる。
着手モデルサーバ300は、通信部303を介してネットワーク500を経由して囲碁サーバ200と通信を行うことができる。さらに、着手モデルサーバ300は、ネットワーク500を経由して形勢判断モデルサーバ400及び端末機100とも通信を行うことができる。
・形勢判断モデルサーバ
形勢判断モデルサーバ400は、別のクラウドサーバやコンピュータ装置を備えることができる。また、形勢判断モデルサーバ400は、端末機100のプロセッサまたは囲碁サーバ200のデータ処理部に設けられたニューラルネットワークシステムでありうるが、以下において形勢判断モデルサーバ400は、端末機100または囲碁サーバ200とは別の装置として説明する。
形勢判断モデルサーバ400は、命令を格納する少なくとも1つのメモリ401、少なくとも1つのプロセッサ402、及び通信部403を備えることができる。
形勢判断モデルサーバ400は、通信部403を介して囲碁サーバ200からトレーニングデータセットを受信できる。トレーニングデータセットは、複数の棋譜と、当該複数の棋譜に対する形勢判断情報でありうる。形勢判断モデルサーバ400は、受信したトレーニングデータセットを用いて碁石が置かれた碁盤の状態に対する形勢を判断できるように指導学習してディープラーニングモデルである形勢判断モデルを構築し、端末機100ユーザの形勢判断要請に応じて形勢判断を行うことができる。形勢判断モデルサーバ400が形勢判断モデルでトレーニングする詳しい説明は、図6~図18の形勢判断モデルに関する説明にしたがう。
形勢判断モデルサーバ400のメモリ401は、形勢判断モデルサーバ400で駆動される複数の応用プログラム(application program)またはアプリケーション(application)、形勢判断モデルサーバ400の動作のためのデータ、命令語を格納することができる。命令は、プロセッサ402をして動作を実行させるためにプロセッサ402により実行可能であり、動作は、形勢判断モデル学習(トレーニング)動作、形勢判断実行、形勢判断結果送信、複数の棋譜情報受信、及び各種送信動作を含むことができる。また、図19に示すように、実施形態においてメモリ401は、ディープラーニングモデルである形勢判断モデル400aと、ディープラーニングニューラルネットワークに基づいて囲碁形勢を判断し、学習して囲碁ゲームプレイの際、棋風を適用する一連の動作を実現するための棋風判断部400bとを格納することができる。また、メモリ401は、ハードウェア的に、ROM、RAM、EPROM、フラッシュドライブ、ハードドライブなどのような様々な格納機器でありうるし、メモリ401は、インターネット(internet)上で上記メモリ401の格納機能を果たすウェブストレージ(web storage)でありうる。
形勢判断モデルサーバ400のプロセッサ402は、メモリ401に格納された形勢判断モデル400aを読み込んだ後、構築されたニューラルネットワークシステムにしたがって下記に記述する形勢判断モデル400a学習及び対局中、碁盤の形勢判断を行うようになる。そして、形勢判断モデルサーバ400のプロセッサ402は、実行された形勢判断を基に囲碁の形勢及び特定着手点に対する棋風を判断できる。
具体的に、実施形態として、形勢判断モデルサーバ400のプロセッサ402は、様々な棋風のうち、学習しようとする目標棋風を設定できる。また、プロセッサ402は、形勢判断を介して碁盤状態Sの形勢及び/又は特定着手点に対する棋風を判断するための所定の閾値を設定できる。また、形勢判断モデルサーバ400のプロセッサ402は、着手モデルサーバ300から導出された特定着手点が反映された特定碁盤状態Sに対する形勢判断を行い、当該特定着手点及び/又は当該特定碁盤状態Sに対する棋風を判断できる。また、プロセッサ402は、棋風を判断した情報を着手モデルサーバ300に送信して囲碁ゲームプレイの際、棋風を適用するための着手モデルのセルフプレイ学習が効果的に行われるようにすることができる。また、形勢判断モデルサーバ400のプロセッサ402は、棋風の判断が正しくなされたか否かの性能を確認し、これに基づいて棋風を判断するための所定の閾値を調整できる。
一方、実施形態によってプロセッサ402は、全体ユニットを制御するメインプロセッサと、形勢判断モデル400aによってニューラルネットワーク駆動の際に必要な大容量の演算を処理する複数のグラフィックプロセッサ(Graphics Processing Unit、GPU)とを備えるように構成されることができる。
また、形勢判断モデルサーバ400は、通信部403を介してネットワーク500を経由して囲碁サーバ200と通信を行うことができる。さらに、形勢判断モデルサーバ400は、ネットワーク500を経由して着手モデルサーバ300及び端末機100と通信を行うことができる。
・着手モデル
図2は、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスにおいて人工知能コンピュータの着手のための着手モデルサーバ300の着手モデル構造を説明するための図であり、図3は、着手モデルの政策による着手点に対する移動確率分布を説明するための図であり、図4は、着手モデルの着手点に対する価値と訪問回数を説明するための図であり、図5は、着手モデルが探索部のパイプラインに沿って着手する過程を説明するための図である。
図2に示すように、本発明の実施形態に係る着手モデルは、着手モデルサーバ300のディープラーニングモデルであって、探索部310、セルフプレイ部320、着手ニューラルネットワーク330、及び棋風学習補助部340を備えることができる。
着手モデルは、探索部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のとおりである。
θは、ニューラルネットワークのパラメータであり、cは、非常に小さい定数である。
数式1の着手損失lにおいてz(セルフプレイ価値)とv(価値)とが同じになるようにすることは、平均二乗損失(mean square loss)タームに該当し、πとp(移動確率値)とが同じになるようにすることは、クロスエントロピー損失(cross entropy loss)タームに該当し、θにcをかけることは、正規化タームであって、オーバーフィッティングを防止するためのものである。
例えば、図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イメージが入力され得る。
図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に対して着手モデルにより予測された最高の着手点でありうる。このとき、着手モデルは、探索確率値πに基づいて最高の手であると判断された着手候補手を少なくとも2つ以上導出することができ、これに基づいて少なくとも2つ以上の着手候補手情報を生成できる。具体的に、着手モデルは、決定された着手候補手に基づいて当該着手候補手と関連した情報(例えば、碁盤上での位置情報等)を含む着手候補手情報を少なくとも2つ以上生成することができる。ここで、着手モデルが少なくとも2つ以上の着手候補手情報を生成するのは、複数の着手候補手に基づいて棋風を判断した結果を介して特定棋風に最適化された着手候補手を合理的に導出するためである。
このとき、着手モデルサーバ300は、生成された着手候補手情報を形勢判断モデルサーバ400に送信することができ、形勢判断モデルサーバ400から棋風学習データを受信できる。ここで、棋風学習データは、着手モデルを任意の特定棋風に学習させるために、形勢判断モデルサーバ400の棋風判断部400bが形勢判断に基づいて特定棋風学習に適していると判断した少なくとも1つの着手候補手に対する情報でありうる。これについての詳細な説明は後述する。
また、着手モデルは、形勢判断モデルサーバ400から取得される棋風学習データに基づいてセルフプレイ(self-play)学習を行うことができる。具体的に、着手モデルは、セルフプレイ部を介して棋風学習データを基に学習された上位バージョン着手モデルと、学習以前の下位バージョン着手モデルとの間の囲碁ゲームプレイを行うことができる。すなわち、着手モデルは、棋風学習データに基づいた自家学習を行うことができ、これを通じて棋風学習データの性能を診断できる。ここで、棋風学習データの性能を診断するとは、当該棋風学習データが特定棋風を学習するにあたって適したデータであるかを判断することでありうる。
続いて、着手モデルは、セルフプレイ学習に基づいた棋風学習データの性能診断を介して棋風学習性能情報を生成できる。すなわち、棋風学習性能情報は、取得された棋風学習データに基づいた着手モデルの自家学習を介して、当該棋風学習データが特定棋風を学習するのに適したデータであるか、すなわち、特定着手候補手及び/又は碁盤状態Sに対する棋風が正しく判断されたかを診断した情報でありうる。そして、このとき、着手モデルサーバ300は、生成された棋風学習性能情報を形勢判断モデルサーバ400に送信することができる。すなわち、着手モデルは、特定棋風を学習するための学習データの適合性を確認し、これに対するフィードバックを提供することにより、特定着手候補手及び/又は碁盤状態Sに対する棋風判断の正確性を向上させることができる。
一方、着手モデルは、本発明の実施形態によって囲碁ゲームプレイの際、特定気質や方式を表す棋風を活用する囲碁ゲームサービスを提供するために、棋風学習補助部340を備えることができる。具体的に、棋風学習補助部340は、形勢判断モデルサーバ400から棋風学習データを入力データに受信することができる。また、棋風学習補助部340は、入力データに受信された棋風学習データに基づいて着手モデルサーバ300がセルフプレイ学習を行うようにセルフプレイ部320を制御できる。さらに、棋風学習補助部340は、着手モデルのセルフプレイ部を介してのセルフプレイ学習の結果を基に棋風学習性能情報を生成できる。すなわち、棋風学習補助部340は、棋風学習データに基づいた着手モデルの自家学習結果を介して、当該棋風学習データが所定の目標棋風を学習するのに適したデータであるか、すなわち、特定着手候補手及び/又は碁盤状態Sに対する棋風を形勢判断モデルサーバ400で正しく判断したかを診断した棋風学習性能情報を生成できる。例えば、棋風学習補助部340は、棋風学習データが含む特定着手候補手に対するプレイヤとゲーム相手との間の点数差値と、セルフプレイを介して導出された特定着手候補手に対するプレイヤとゲーム相手との間の点数差値とを比較して棋風学習性能情報を生成できる。そして、棋風学習補助部340は、生成された棋風学習性能情報を形勢判断モデルサーバ400に送信し、これに基づいた形勢判断モデルサーバ400の棋風の判断のための閾値調整動作を行わせることができる。
より詳細な説明は、以下において記述されるディープラーニングに基づいて棋風を判断して活用する方法の詳細な説明で後述する。また、本実施形態では、棋風学習補助部340が着手モデルサーバ300に含まれて動作することと説明するが、他の実施形態では、棋風学習補助部340が囲碁サーバ200または形勢判断モデルサーバ400に含まれるか、別の装置で実現されるなど、様々な実施形態も可能である。
・形勢判断モデル
図6は、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスの形勢判断機能を提供する画面を見せる例示図であり、図7は、本発明の形勢判断モデルサーバ400の形勢判断モデル400a構造を説明するための図であり、図8は、本発明の形勢判断モデル400aの複数のブロックからなるニューラルネットワーク構造のうち、1つのブロックを説明するための図である。
図6に示すように、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスは、現在碁盤状態Sの形勢判断をすることができる。一例として、図6のように、ユーザが端末機100の画面で囲碁対局中、形勢判断メニュAをクリックして形勢判断を要請すれば、ディープラーニングに基づく囲碁ゲームサービスがポップアップウィンドウに形勢判断結果を提供できる。形勢判断は、囲碁対局中に相手方と自分の地を計算して、誰が何点で勝っているのか判断することである。例えば、ユーザは、形勢が自分に有利であるという判断がつくと、それ以上無理せずに、現在の有利な状況をそのまま維持したまま対局を終了する方向に戦略を立てるはずであり、仮に、不利であるという判断であれば、ゲーム局面を新しく転換できるように様々な戦略を模索することができる。形勢判断の基準は、碁石が碁盤に配置された状態による地、捨て石、石、駄目、関になる。石は、碁盤に置かれた石であり、韓国の規則では点数ではない。地は、1つの色の碁石で囲まれた空いた点から構成された領域であって、韓国の規則では点数である。駄目と関は、囲碁が終わったとき、黒地でも白地でもない領域であって、韓国の規則では点数ではない。碁盤上の捨て石は、碁盤上に置かれた石のうち、どのように打っても捕まえるしかなく、死んだ石であって、韓国の規則では、相手方の地を埋めるのに使用するので点数である。関は、囲碁が終わったとき、黒地でも白地でもない領域をいう。したがって、形勢判断は、碁石が置かれた碁盤状態Sで地、捨て石、石、駄目、関を正確に区分または予測してこそ正確な判断になることができる。このとき、地、捨て石、石、駄目、関を正確に区分することは、地、捨て石、石、駄目、関が完全になされた状態を区分することであり、地、捨て石、石、駄目、関を正確に予測することは、地、捨て石、石、駄目、関になる可能性が高い状態を予測することでありうる。
図7に示すように、本発明の実施形態に係る形勢判断モデル400aは、形勢判断モデルサーバ400のディープラーニングモデルであって、形勢判断ニューラルネットワーク410、入力特徴抽出部420、及び正解ラベル生成部430を備えることができる。また、本発明の実施形態に係る形勢判断モデル400aは、ディープラーニングニューラルネットワークに基づいて囲碁形勢を判断し、学習して囲碁ゲームプレイの際、棋風を適用するプロセスを動作するために棋風判断部400bと連動されることができる。これについての詳細な説明は後述する。
形勢判断モデル400aは、形勢判断ニューラルネットワーク410を用いて現在碁盤状態Sの形勢を判断できるように指導学習(supervised learning)することができる。より具体的に、形勢判断モデル400aの碁盤状態Sに関するトレーニングデータセットを生成し、生成されたトレーニングデータセットを用いて形勢判断ニューラルネットワーク410が現在碁盤状態Sによる形勢を判断できるように学習させることができる。形勢判断モデルサーバ400は、囲碁サーバ200から複数の棋譜を受信できる。複数の棋譜のうち各棋譜は、着手順序によるそれぞれの碁盤状態Sを含むことができる。
入力特徴抽出部420は、複数の棋譜の碁盤状態Sで入力特徴IFを抽出して形勢判断ニューラルネットワーク410にトレーニングのための入力データとして提供することができる。碁盤状態Sの入力特徴IFは、黒プレイヤの最近の8手に対する石の位置情報と白プレイヤの最近の8手に対する石の位置情報と現在プレイヤが黒であるか白であるかに対する順序情報を含んだ19*19*18のRGBイメージでありうる。一例として、入力特徴抽出部420は、ニューラルネットワーク構造からなっていることができ、一種のエンコーダを含むことができる。
形勢判断ニューラルネットワーク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に入力される形態でありうる。
図9及び図10は、本発明の形勢判断モデル400aを学習するために使用される正解ラベルを生成するための第1及び第2の前処理ステップを説明するための図であり、図11は、本発明の形勢判断モデル400aを学習するために使用される正解ラベルを生成するための第3の前処理ステップを説明するための図である。
正解ラベル生成部430は、形勢判断ニューラルネットワーク410が正確な形勢判断が可能なように学習するのに用いられる正解ラベルを生成できる。
より具体的に、正解ラベル生成部430は、入力データに基になる碁盤状態Sを入力として受け、現在碁盤状態Sでヨセをする第1の前処理を行って第1の前処理状態P1を生成できる。第1の前処理であるヨセは、地の計算をする前に地の境界が明確になるように所定の着手をしてゲームを仕上げる過程である。一例として、図9に示すように、正解ラベル生成部430は、図9の(a)の現在碁盤状態Sでヨセをして図9の(b)の第1の前処理状態P1を生成できる。
正解ラベル生成部430は、第1の前処理状態P1で地の境界内に配置され、地の区分に不要な石を除去する第2の前処理を行って第2の前処理状態P2を生成できる。例えば、地の境界内に配置され、地の区分に不要な石は捨て石でありうる。捨て石は、地内に相手方の石が配置されて、どのように打っても捕まえるしかなくなり、死んだ石であることを先に説明した。また、地の境界内に配置され、地の区分に不要な石は地内に配置された自分の石でありうる。一例として、図9に示すように、正解ラベル生成部430は、図9の(b)の第1の前処理状態P1で地の区分に不要な石を除去して、図9の(c)の第2の前処理状態P2を生成できる。
他の例として、図10に示すように、正解ラベル生成部430は、図10の(a)の現在碁盤状態Sで第1の前処理であるヨセのために、図10の(b)のように赤色×に着手することができる。正解ラベル生成部430は、図10の(b)で青色×と表示された捨て石を除去するために、緑色×に着手して捨て石を除去し、捨て石除去のために使用された緑色×に着手した石も除去して第2の前処理を行うことができる。
正解ラベル生成部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に特徴を変更することができる。
図12は、本発明の形勢判断モデル400aの形勢判断結果を説明するための図である。
学習された形勢判断モデル400aは、碁盤状態Sが入力されれば、碁盤の全ての交差点に対する形勢値を提供できる。すなわち、碁盤交差点の361個地点に対して形勢値である-1ないし+1の定数値を提供できる。
図12に示すように、形勢判断モデルサーバ400は、形勢判断モデル400aが提供した形勢値、所定の閾値、石の有無を利用して形勢を判断できる。一例として、形勢判断モデルサーバ400は、石がない所であり、形勢値が第1閾値を越えると、自分の地になる可能性が高い所と判断し、+1に近い値であれば、自分の地領域と判断することができる。形勢判断モデルサーバ400は、自分の地である可能性が高いほど、次第に大きくなる自分の石と同じ色の四角形態で表示することができる。すなわち、白地である可能性が高いほど、白色四角形態と表示し、黒地である可能性が高いほど、黒色四角形態と表示することができる。形勢判断モデルサーバ400は、石がない所であり、形勢値が第2閾値以下であれば、相手の地になる可能性が高い所と判断し、-1に近い値であれば、自分の地領域と判断することができる。形勢判断モデルサーバ400は、相手の地である可能性が高いほど、次第に大きくなる相手の石と同じ色の四角形態と表示することができる。形勢判断モデルサーバ400は、石がない所であり、形勢値が第3閾値範囲以内または0に近い値であれば、駄目または関と判断することができる。形勢判断モデルサーバ400は、駄目または関と判断すれば、×と表示することができる。形勢判断モデルサーバ400は、石がある所であり、形勢値が第3閾値範囲以内または0に近い値であれば、自分の石または相手の石と判断することができる。形勢判断モデルサーバ400は、駄目または関と判断すれば、何らの表示もしないことができる。形勢判断モデルサーバ400は、石がある所であり、形勢値が第1閾値を越えると、相手の石の捨て石になる可能性が高い所と判断し、+1に近い値であれば、相手の石の捨て石と判断することができる。形勢判断モデルサーバ400は、相手の石の捨て石である可能性が高いほど、次第に大きくなる自分の石と同じ色の四角形態と表示することができる。形勢判断モデルサーバ400は、石がある所であり、形勢値が第2閾値以下であれば、自分の石の捨て石になる可能性が高い所と判断し、-1に近い値であれば、相手の石の捨て石と判断することができる。形勢判断モデルサーバ400は、相手の石の捨て石である可能性が高いほど、次第に大きくなる相手の石と同じ色の四角形態と表示することができる。
また、形勢判断モデルサーバ400は、各交差点で判断した形勢判断基準を利用して現在碁盤状態Sでの地計算結果を表示できる。
したがって、実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムは、ディープラーニングニューラルネットワークを利用して囲碁形勢を判断できる。また、実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムは、囲碁規則による地、捨て石、石、駄目、関を正確に区分して囲碁の形勢を正確に判断することができる。また、実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムは、囲碁規則による地、捨て石、石、駄目、関を予測して囲碁の形勢を正確に判断することができる。また、実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムは、囲碁対局中、速かに形勢を判断できる。
一方、形勢判断モデルサーバ400は、ディープラーニングに基づいて囲碁対局の際に特定棋風を適用するための一連の動作を行うために、形勢判断モデル400aを介して形勢判断モデル400aから第1~第3の前処理過程を介して導出された形勢値に基づいて確定地情報を生成できる。ここで、確定地情報は、形勢判断を介して予測されたプレイヤ及びゲーム相手の各々の確定地数に基づいて生成された情報でありうる。すなわち、形勢判断モデルサーバ400は、形勢判断モデル400aを介して、形勢判断モデル400aから予測された碁盤状態Sの全ての交差点に対する形勢値(実施形態において、-1~+1の間の値)に基づいてプレイヤとゲーム相手の各々が保有することと予想される地の数を算出して確定地情報を生成できる。例えば、確定地情報は、プレイヤが80地、ゲーム相手が77地を保有することを予測した情報を含む形態で実現されることができる。このような確定地情報は、以下において後述される棋風の判断過程で所定の棋風判断閾値と比較されるパラメータである点数差値を生成するための基盤データとして利用されることができる。
実施形態として、形勢判断モデルサーバ400は、形勢判断モデル400aを介して形勢判断を行って形勢値を導出し、導出された形勢値に基づいてプレイヤの確定地数とゲーム相手の確定地数とを算出して確定地情報を生成できる。そして、形勢判断モデルサーバ400は、棋風判断部400bを介して生成された確定地数情報に基づいてプレイヤの点数値及びゲーム相手の点数値を取得できる。また、形勢判断モデルサーバ400は、棋風判断部400bを介して、取得されたプレイヤの点数値とゲーム相手の点数値とに基づいて両点数値間の点数差値を算出できる。その後、形勢判断モデルサーバ400は、棋風判断部400bを介して算出された点数差値を所定の棋風判断閾値と比較して棋風判断情報を生成できる。これについての詳細な説明は、以下において後述する。
図13は、本発明の形勢判断モデル400aの形勢判断結果と従来技術に係るディープラーニングモデルによる形勢判断結果とを比較した形状であり、図14は、本発明の形勢判断モデル400aの形勢判断結果と従来技術に係るディープラーニングモデルによる形勢判断結果とを比較した形状であり、図15は、本発明の形勢判断モデル400aの形勢判断結果と従来技術に係るディープラーニングモデルによる形勢判断結果とを比較した形状である。
図13に示すように、本発明の形勢判断モデル400aは、図13の(a)のB領域のように、交差点毎に地、石、捨て石を区分して形勢を判断する。しかし、従来技術に係るディープラーニングモデルによる形勢判断モデル400aは、図13の(b)で図13の(a)と対応する領域の交差点に対して地、石、捨て石を区分できない。
同様に、図14に示すように、本発明の形勢判断モデル400aは、図14の(a)のC領域のように、交差点毎に地、石、捨て石を区分して形勢を判断する。しかし、従来技術に係るディープラーニングモデルによる形勢判断モデル400aは、図14の(b)で図13の(a)と対応する領域の交差点に対して地、石、捨て石を区分できない。
図15に示すように、本発明の形勢判断モデル400aは、図15の(a)のD領域のように、白地を正しく認識する。しかし、従来技術に係るディープラーニングモデルによる形勢判断モデル400aは、図15の(b)で図15の(a)と対応する領域で白地を区分できない。
図16は、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステムにおける信号フローに対する例示図である。
図16に示すように、着手モデルサーバ300は、人工知能コンピュータであって、自分のターンにおいて対局で勝つことができるように碁石の着手を行うことができるように囲碁規則によって自ら学習してディープラーニングモデルである着手モデルをトレーニングすることができる(S11)。囲碁サーバ200は、複数の棋譜を形勢判断モデルサーバ400に送信することができる(S12)。形勢判断モデルサーバ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)。
図17は、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法のうち、形勢判断方法であり、図18は、図17の形勢判断方法のうち、正解ラベルを生成するためのトレーニングデータの前処理方法である。
図17に示すように、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、形勢判断モデルサーバ400が囲碁サーバから複数の棋譜を受信するステップ(S100)を含むことができる。
本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、形勢判断モデルサーバ400の形勢判断モデル400aのうち、入力特徴抽出部が複数の棋譜の碁盤状態Sで入力特徴を抽出するステップ(S200)を含むことができる。入力特徴を抽出する方法は、図7の説明にしたがう。
本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、形勢判断モデル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の前処理状態を正解ラベルとして形勢判断ニューラルネットワークにターゲットデータとして提供するステップ(S304)を含むことができる。ターゲットデータを提供するステップ(S304)は、図7及び図11の説明にしたがう。
本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、トレーニングデータセットを用いて形勢判断モデル400aの形勢判断ニューラルネットワークをトレーニングするステップ(S400)を含むことができる。形勢判断ニューラルネットワークをトレーニング(学習)する方法は、図7の説明にしたがう。
本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、形勢判断ニューラルネットワークのトレーニングが完了して形勢判断モデル400aを構築するステップ(S500)を含む。一例として、形勢判断ニューラルネットワークのトレーニングの完了は、図7の形勢判断損失が所定の値以下になった場合でありうる。
本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、端末機の形勢判断要請により現在碁盤状態Sが形勢判断モデル400aに入力されるステップ(S600)を含むことができる。
本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、形勢判断モデル400aが入力された現在碁盤状態Sの形勢判断を行うステップ(S700)を含むことができる。形勢判断を行うステップ(S700)は、図12において説明した形勢判断モデル400aが現在碁盤状態Sの形勢値を生成する説明にしたがうことができる。
本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、形勢判断モデルサーバ400が形勢判断結果を出力するステップ(S800)を含むことができる。形勢判断結果を出力するステップ(S800)は、図12において説明した形勢判断モデルサーバ400が形勢値、碁盤の状態、所定の閾値を用いて形勢判断結果を提供する説明にしたがうことができる。
したがって、実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、ディープラーニングニューラルネットワークを利用して囲碁形勢を判断できる。また、実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、囲碁規則による地、捨て石、石、駄目、関を正確に区分して囲碁の形勢を正確に判断することができる。また、実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、囲碁規則による地、捨て石、石、駄目、関を予測して囲碁の形勢を正確に判断することができる。また、実施形態に係るディープラーニングに基づく囲碁ゲームサービス方法は、囲碁対局中、速かに形勢を判断できる。
・棋風判断部
本発明の実施形態に係る棋風判断部400bは、形勢判断モデルサーバ400が備える一構成要素であって、形勢判断モデル400aと連動して、形勢判断モデル400aを介して取得される碁盤状態Sの形勢値に基づいて特定着手点に基づいた棋風判断を行うことができる。また、棋風判断部400bは、着手モデルをして判断された棋風に基づいた棋風学習を行うようにして、囲碁ゲームプレイの際、特定気質や方式を表す棋風を活用させることができる。ここで、棋風判断は、着手モデルにより予測された最善の手である着手候補手がいかなる棋風を実現するか、すなわち、いかなる棋風カテゴリに含まれるかを判断することである。実施形態において棋風は、所定の基準に基づいて、1)棋風種類カテゴリまたは2)1~nの棋風ステップ(n=1、2、3、・・・)カテゴリによって予め分類されることができる。例えば、棋風は、棋風種類カテゴリによって攻撃的棋風、安定的棋風、及び/又は防御的棋風などに予め分類されることができる。他の例において、棋風は、1~nの棋風ステップカテゴリによって第1の棋風ステップ、第2の棋風ステップ、・・・、第nの棋風ステップに予め分類されていることができる。具体的に、形勢判断モデル400aは、着手モデルサーバ300から取得される着手候補手情報に対する形勢判断を行うことができ、その後、棋風判断部400bは、形勢判断を介して導出されたデータに基づいて当該着手候補手情報が上記のように予め分類されている複数の棋風カテゴリのうち、いかなる棋風カテゴリに含まれるかを判断する棋風判断を行うことができる。
具体的に、棋風判断部400bは、棋風判断を行うために、まず、どの棋風で学習を行うかに対して予め設定された情報である目標棋風情報を設定できる。ここで、目標棋風情報は、様々なカテゴリと分類されている複数の棋風のうち、いかなる棋風を目標として学習するか予め設定された情報であって、1)棋風種類カテゴリ(例えば、攻撃的棋風、安定的棋風、防御的棋風等)のうち、いずれか1つを選択して目標棋風を設定した情報、または2)1~nの棋風ステップカテゴリのうち、いずれか1つを選択して目標棋風を設定した情報でありうる。
また、棋風判断部400bは、形勢判断モデル400aの形勢判断を介して導出された確定地数によるプレイヤの点数値とゲーム相手の点数値との間の点数差値に基づいて着手モデルサーバ300から取得された着手候補手に対する棋風判断を行うための所定の棋風判断閾値を設定できる。すなわち、棋風判断部400bは、予め設定された棋風判断閾値と着手候補手情報に対する形勢判断を介して導出された点数差値とを比較して棋風判断を行うことができる。
より具体的に、まず、形勢判断モデル400aは、着手モデルサーバ300から少なくとも1つ以上の着手候補手情報を入力データとして取得することができる。そして、形勢判断モデル400aは、取得された着手候補手情報の各々に対して形勢判断を行って確定地情報を生成できる。その後、棋風判断部400bは、形勢判断モデル400aから生成された確定地情報に基づいてプレイヤの点数値とゲーム相手の点数値とを算出できる。また、棋風判断部400bは、算出されたプレイヤ及びゲーム相手の点数値に基づいてプレイヤの点数値とゲーム相手の点数値との差値を表す点数差値を算出できる。そして、棋風判断部400bは、算出された点数差値を予め設定された棋風判断閾値と比較して、少なくとも1つ以上の着手候補手情報の各々に対する棋風判断情報を生成できる。ここで、棋風判断情報は、囲碁ゲームプレイの際、各着手候補手の着手によって実現される棋風のカテゴリを判断した情報でありうる。これについての詳細な説明は、以下において後述する。
また、棋風判断部400bは、生成された棋風判断情報を基に棋風学習データを生成できる。具体的に、棋風判断部400bは、受信された着手候補手情報の各々に対して導出された棋風判断情報のうち、予め設定された目標棋風情報と対応する棋風判断情報を判断できる。そして、棋風判断部400bは、目標棋風情報と対応すると判断された当該棋風判断情報を導出した着手候補手情報に基づいて学習を実現させる棋風学習データを生成できる。また、棋風判断部400bは、生成された棋風学習データを着手モデルサーバ300に提供することができる。
さらに、棋風判断部400bは、棋風学習データに基づいて学習を行った着手モデルサーバ300から棋風学習性能情報を入力データとして取得することができ、取得された棋風学習性能情報を基に棋風判断閾値を調整できる。より詳細な説明は、以下において後述する。
一方、図19は、本発明の形勢判断モデルサーバ400の棋風判断部400b構造を説明するための図である。図19に示すように、上記のような棋風判断のための一連の動作を行うために、形勢判断モデルサーバ400は、上記で記述した形勢判断モデル400aと棋風判断部400bとを備えることができ、形勢判断モデル400aと棋風判断部400bとを相互連動して動作させることができる。実施形態において、棋風判断部400bは、棋風判断閾値を設定し、プレイヤの点数値とゲーム相手の点数値とを導出して点数差値を算出し、算出された点数差値に基づいて棋風判断情報を生成できる。また、実施形態において棋風判断部400bは、生成された棋風判断情報を基に棋風学習データを生成でき、着手モデルサーバ300から取得される棋風学習性能情報に基づいて棋風判断閾値を調整できる。
すなわち、形勢判断モデルサーバ400の棋風判断部400bは、本発明の実施形態によって形勢判断モデル400aと連動して碁盤状態Sの形勢判断に基づいて棋風を判断し、これに基づいて学習を行って囲碁ゲームプレイの際に適用するプロセスを実現するための一構成要素でありうる。これについての詳細な説明は、以下のディープラーニングに基づいて棋風を判断して適用する方法の詳細な説明で後述する。また、本実施形態では、棋風判断部400bが形勢判断モデルサーバ400に含まれると説明するが、他の実施形態では、棋風判断部400bが囲碁サーバ200及び/又は着手モデルサーバ300に含まれるか、別の装置で実現されるなど、様々な実施形態が可能であろう。
・ディープラーニングに基づいて棋風を判断して活用する方法
以下、図面を参照してディープラーニングニューラルネットワークに基づいて囲碁形勢を判断して棋風を判断し、これに基づいて囲碁ゲームプレイの際の特定気質や方式を表す棋風を活用する囲碁ゲームサービス提供方法について詳細に説明しようとする。
図20は、本発明の実施形態に係るディープラーニングニューラルネットワークに基づいて囲碁形勢を判断し、囲碁ゲームプレイの際の特定気質や方式を表す棋風を活用する方法を説明するためのフローチャートであり、図21は、本発明の実施形態に係る囲碁形勢を判断し、囲碁ゲームプレイの際の棋風を活用する方法を説明するための概念図である。
図20及び図21に示すように、形勢判断モデルサーバ400は、まず、目標棋風情報を設定するステップ(S101)を含むことができる。具体的に、形勢判断モデルサーバ400は、プロセッサ402を介してどの棋風で学習を行うかに対して予め設定された情報である目標棋風情報を設定できる。このとき、目標棋風情報は、棋風種類カテゴリまたは1~nの棋風ステップカテゴリを基準に予め分類されている複数の棋風カテゴリのうち、いずれか1つを選択した情報でありうる。例えば、目標棋風情報は、攻撃的棋風、安定的棋風、及び/又は防御的棋風のうち、いずれか1つでありうるし、第1の棋風ステップ、第2の棋風ステップ、・・・、第nの棋風ステップのうち、いずれか1つでありうる。このとき、棋風種類カテゴリは、実施形態によってより細分化されたカテゴリをさらに含むか、単純化されてカテゴリを少し含むなど、様々な方式で実現されることができ、1~nの棋風ステップカテゴリは、実施形態によって第1の棋風ステップに近いほど、防御的棋風と判断され、第nの棋風ステップに近いほど、攻撃的棋風と判断されるように予め設定されたり、その逆で予め設定されるなど、様々な方式で実現されることができる。
また、形勢判断モデルサーバ400は、棋風判断閾値を設定するステップ(S103)を含むことができる。具体的に、形勢判断モデルサーバ400は、棋風判断部400bを介して棋風判断を行うための所定の棋風判断閾値を設定できる。例えば、形勢判断モデルサーバ400は、棋風判断閾値を所定の数値と予め設定することができる。前述した目標棋風情報に対する棋風種類カテゴリのような予め分類された情報及び所定の数値と設定された棋風判断閾値は、ルックアップテーブル形態で格納されていることができる。
続いて、形勢判断モデルサーバ400は、着手候補手情報を取得するステップ(S105)を含むことができる。具体的に、形勢判断モデルサーバ400は、着手モデルサーバ300から少なくとも2つ以上導出された着手候補手情報を受信できる。そして、形勢判断モデルサーバ400は、受信された着手候補手情報を形勢判断モデル400a及び/又は棋風判断部400bの入力データとして利用することができる。
また、形勢判断モデルサーバ400は、取得された着手候補手情報の各々に対する形勢判断を行って点数値を導出するステップ(S107)を含むことができる。具体的に、形勢判断モデルサーバ400は、形勢判断モデル400aを介して、着手モデルサーバ300から取得された着手候補手が適用された碁盤の全ての交差点に対して黒、白の各領域に対する形勢判断を行って形勢値を導出することができる。このとき、形勢判断の基準は、地、捨て石、石、駄目、関などになることができる。そして、形勢判断モデルサーバ400は、導出された形勢値に基づいて確定地情報を生成できる。具体的に、形勢判断モデルサーバ400は、形勢判断モデル400aを介して、プレイヤ及びゲーム相手が各々保有することと予想される地の数を算出してプレイヤの地の数とゲーム相手の地の数とを判断した情報である確定地情報を生成できる。
そして、確定地情報を生成した形勢判断モデルサーバ400は、生成された確定地情報に基づいてプレイヤの点数値及びゲーム相手の点数値を導出することができる。具体的に、形勢判断モデルサーバ400は、棋風判断部400bを介して、確定地情報のプレイヤの地の数に基づいてプレイヤの点数値を導出し、ゲーム相手の地の数に基づいてゲーム相手の点数値を導出することができる。このとき、形勢判断モデルサーバ400は、点数値を算出するためのプロセスを予め設定することができる。例えば、形勢判断モデルサーバ400は、1地当たり+1に点数値算出プロセスを決定できる。また、形勢判断モデルサーバ400は、着手候補手情報に基づいて点数値を算出するので、プレイヤの点数値がゲーム相手の点数値より常に高いことができる。このとき、プレイヤの点数値がゲーム相手の点数値より低い場合、形勢判断モデルサーバ400は、当該着手候補手を除いた後、棋風判断を行うこともできる。
図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に導出することができる。
次に、形勢判断モデルサーバ400は、着手候補手情報の各々に対して導出されたプレイヤの点数値及びゲーム相手の点数値に基づいて点数差値を算出するステップ(S109)を含むことができる。具体的に、形勢判断モデルサーバ400は、棋風判断部400bを介して、着手モデルサーバ300から取得された各着手候補手情報に対する点数差値を算出できる。実施形態として、形勢判断モデルサーバ400は、各着手候補手情報に対してプレイヤの点数値とゲーム相手の点数値との差値を算出し、その結果値を当該着手候補手に対する点数差値と決定することができる。このとき、形勢判断モデルサーバ400は、点数差値が負数と算出される場合、当該着手候補手を除いた後、棋風判断を行うことができる。
例えば、図22に示すように、形勢判断モデルサーバ400は、第1の着手候補手情報にマッチングされたプレイヤの点数値が+79であり、ゲーム相手の点数値が+77である場合、第1の着手候補手に対する点数差値を+2に算出することができる。また、形勢判断モデルサーバ400は、第2の着手候補手情報にマッチングされたプレイヤの点数値が+80であり、ゲーム相手の点数値が+77である場合、第2の着手候補手に対する点数差値を+3に算出することができる。同様に、形勢判断モデルサーバ400は、第3の着手候補手情報にマッチングされたプレイヤの点数値が+91であり、ゲーム相手の点数値が+68である場合、第3の着手候補手に対する点数差値を+23に算出することができる。
また、着手候補手の各々に対して点数差値を算出した形勢判断モデルサーバ400は、算出された点数差値に基づいて着手候補手情報の各々に対する棋風判断情報を生成するステップ(S111)を含むことができる。具体的に、形勢判断モデルサーバ400は、棋風判断部400bを介して、囲碁ゲームプレイの際、各着手候補手の着手によって実現される棋風のカテゴリを判断した情報である棋風判断情報を生成できる。より具体的に、形勢判断モデルサーバ400は、各着手候補手に対して、算出された点数差値と所定の棋風判断閾値に基づいて棋風判断情報を生成できる。例えば、形勢判断モデルサーバ400は、点数差値と棋風判断閾値とを比較して点数差値が棋風判断閾値を超過する場合(点数差が大きい場合)、攻撃的棋風カテゴリに含まれると判断することができる。また、形勢判断モデルサーバ400は、点数差値と棋風判断閾値とを比較して、点数差値が棋風判断閾値と対応する場合(点数差が小さい場合)、安定的棋風カテゴリに含まれると判断することができる。同様に、形勢判断モデルサーバ400は、点数差値と棋風判断閾値とを比較して、点数差値が棋風判断閾値未満である場合(点数差がほとんどない場合)、防御的棋風カテゴリに含まれると判断することができる。
例えば、図22に示すように、形勢判断モデルサーバ400は、棋風判断閾値を「3」に予め設定した場合、第1の着手候補手情報にマッチングされた点数差値が+2であれば、第1の着手候補手を防御的棋風カテゴリであると判断することができる。また、第2の着手候補手情報にマッチングされた点数差値が+3であれば、第2の着手候補手を安定的棋風カテゴリであると判断することができる。同様に、第3の着手候補手情報にマッチングされた点数差値が+23であれば、第3の着手候補手を攻撃的棋風カテゴリであると判断できる。すなわち、形勢判断モデルサーバ400は、着手モデルサーバ300から取得された着手候補手情報の各々に対して点数差値に基づいた棋風判断情報を生成できる。
次に、各着手候補手情報に対して棋風判断情報を生成した形勢判断モデルサーバ400は、生成された棋風判断情報と目標棋風情報とに基づいて棋風学習データを生成するステップ(S113)を含むことができる。具体的に、形勢判断モデルサーバ400は、棋風判断部400bを介して、各着手候補手情報に対して導出された棋風判断情報のうち、目標棋風情報と対応する棋風判断情報を判断できる。そして、形勢判断モデルサーバ400は、棋風判断情報が目標棋風情報と対応すると判断された着手候補手情報を選択して、当該着手候補手情報を学習データとして決定する棋風学習データを生成できる。このとき、棋風学習データは、選択された着手候補手に基づいて生成される情報(例えば、着手候補手情報、形勢値、プレイヤの点数値、ゲーム相手の点数値、点数差値、棋風判断情報等)を含むデータでありうる。
例えば、図22に示すように、形勢判断モデルサーバ400は、予め設定された目標棋風情報が「攻撃的棋風カテゴリ」であり、第1の着手候補手情報にマッチングされた棋風判断情報が「防御的棋風カテゴリ」、第2の着手候補手情報にマッチングされた棋風判断情報が「安定的棋風カテゴリ」、第3の着手候補手情報にマッチングされた棋風判断情報が「攻撃的棋風カテゴリ」である場合、目標棋風情報である攻撃的棋風カテゴリに対応する棋風判断情報を有する第3の着手候補手情報を学習データとして決定する棋風学習データを生成できる。このとき、形勢判断モデルサーバ400は、生成される棋風学習データに第3の着手候補手に基づいて生成された情報(例えば、第3の着手候補手に対する着手候補手情報、形勢値、プレイヤの点数値、ゲーム相手の点数値、点数差値、棋風判断情報等)を含んで棋風学習データを生成できる。
また、形勢判断モデルサーバ400は、生成された棋風学習データを送信するステップ(S115)を含むことができる。具体的に、形勢判断モデルサーバ400は、少なくとも2つ以上の着手候補手情報に基づいて棋風判断を行って導出された棋風学習データを着手モデルサーバ300に送信することができる。
その後、形勢判断モデルサーバ400は、棋風学習データを受信した着手モデルサーバ300から棋風学習性能情報を取得するステップ(S117)を含むことができる。具体的に、形勢判断モデルサーバ400は、着手モデルサーバ300から棋風学習データに基づいてセルフプレイ学習を行って、当該棋風学習データが目標棋風を学習するのに適したデータであるか否か判断した情報である棋風学習性能情報を受信できる。
そして、形勢判断モデルサーバ400は、取得された棋風学習性能情報に基づいて棋風判断閾値を調整するステップ(S119)を含むことができる。具体的に、形勢判断モデルサーバ400は、棋風判断部400bを介して、棋風学習性能情報に基づいた棋風判断閾値の調整を行うことができ、これを通じて棋風判断の正確性を向上させることができる。
例えば、まず、形勢判断モデルサーバ400は、目標棋風情報を「安定的棋風カテゴリ」と予め設定し、棋風判断閾値を「3」に予め設定し、特定着手候補手に対する点数差値が当該棋風判断閾値である3と対応するとき、安定的棋風カテゴリであると判断するように予め設定されていることができる。その後、形勢判断モデルサーバ400は、当該棋風判断閾値と着手候補手の点数差値とに基づいて棋風判断情報を生成でき、生成された棋風判断情報を基に棋風学習データを生成でき、生成された棋風学習データを着手モデルサーバ300に送信することができる。
続いて、形勢判断モデルサーバ400から棋風学習データを受信した着手モデルサーバ300の棋風学習補助部340は、受信された棋風学習データが含む着手候補手に対する点数差値と、当該着手候補手を適用したセルフプレイ学習に基づいて導出された当該着手候補手に対する点数差値とを比較して棋風学習性能情報を生成できる。例えば、着手モデルサーバ300は、棋風学習データ上の着手候補手に対する点数差値が+3であるが、実際セルフプレイ学習に基づいて導出された当該着手候補手に対する最大点数差値が+2.5であると判断された場合、予測された点数差値に所定の誤差があることを判断した誤差情報を含む棋風学習性能情報を生成できる。このとき、誤差情報は、誤差の有無及び/又は誤差の程度情報などを含むことができる。そして、着手モデルサーバ300は、誤差情報を含む棋風学習性能情報を形勢判断モデルサーバ400に送信することができる。
続いて、着手モデルサーバ300から上記のような棋風学習性能情報を受信した形勢判断モデルサーバ400は、受信された棋風学習性能情報に基づいて目標棋風を判断するために、予め設定された棋風判断閾値を調整できる。すなわち、例示において形勢判断モデルサーバ400は、目標棋風として設定された安定的棋風カテゴリを判別するために、「3」に予め設定されていた棋風判断閾値を棋風学習性能情報に基づいて「3.5」と増加調整することができる。これは、棋風判断閾値が3に予め設定され、点数差値が3と対応する場合に安定的棋風であると判断される状況で、セルフプレイ学習の結果に基づいた最大点数差値が2.5であると判断された場合、予め設定された棋風判断閾値がさらに高まってはじめて、セルフプレイ学習に基づいた点数差値が増加されて3に近づく可能性が高まり得ることに起因する動作でありうる。本例示では、上記のように説明したが、その他、様々な実施形態が可能であることは自明であろう。
このように、形勢判断モデルサーバ400は、着手モデルサーバ300から取得された複数の着手候補手情報に基づいて棋風判断を行って棋風学習データを生成し、このような棋風学習データに基づいて自家学習を行った着手モデルサーバ300から棋風学習性能情報を取得し、棋風判断閾値を調整する棋風判断を行うことにより、取得された着手候補手に対する棋風判断動作の正確性を向上させることができ、これを通じてディープラーニングに基づいて棋風を判断し、活用する囲碁ゲームサービスのクオリティを増大させることができる。
一方、以下では、本発明の他の実施形態に係るディープラーニングに基づく棋風判断及び活用方法について説明しようとする。後述される説明において、以上で記述された内容と重複する記載は省略されることができる。
図23は、本発明の他の実施形態に係る囲碁形勢を判断し、囲碁ゲームプレイの際の棋風を活用する方法を説明するための概念図である。図23に示すように、まず、他の実施形態に係る着手モデルサーバ300は、プロセッサ302を介して学習しようとする棋風を決定する目標棋風情報を設定できる。ここで、目標棋風情報は、実施形態と同様に、棋風種類カテゴリまたは1~nの棋風ステップカテゴリを基準に予め分類されている複数の棋風カテゴリのうち、いずれか1つを選択した情報でありうる。
このとき、他の実施形態に係る着手モデルサーバ300は、複数の着手モデルを含んでそれぞれの着手モデル別の目標棋風情報を設定できる。具体的に、着手モデルサーバ300は、棋風が分類されたカテゴリの個数に比例して各棋風のカテゴリと1:1にマッチングされる少なくとも1つ以上の着手モデルを含むことができる。すなわち、着手モデルサーバ300は、各棋風カテゴリに各着手モデルを1:1にマッチングさせることができ、各着手モデルの目標棋風情報を各着手モデルにマッチングされた棋風カテゴリとして設定することができる。これにより、着手モデルサーバ300は、各着手モデル別に特定目標棋風に対する学習を行わせることができる。
例えば、着手モデルサーバ300は、棋風カテゴリの個数がn個である場合、n個の着手モデルを含むことができる。そして、着手モデルサーバ300は、それぞれの棋風カテゴリと着手モデルとを1:1にマッチングして、第1の棋風カテゴリは、第1の着手モデルの目標棋風情報として設定され、第2の棋風カテゴリは、第2の着手モデルの目標棋風情報として設定され、同じ方式にて、第nの棋風カテゴリは、第nの着手モデルの目標棋風情報として設定されるようにすることができる。他の例として、着手モデルサーバ300は、攻撃的棋風カテゴリ、安定的棋風カテゴリ、防御的棋風カテゴリが存在する場合、各棋風に1:1にマッチングされる少なくとも3個の着手モデルを含むことができる。すなわち、着手モデルサーバ300は、攻撃的棋風カテゴリにマッチングされる第1の着手モデル、安定的棋風カテゴリにマッチングされる第2の着手モデル、防御的棋風カテゴリにマッチングされる第3の着手モデルを含むことができる。そして、着手モデルサーバ300は、第1の着手モデルの目標棋風情報を攻撃的棋風カテゴリ、第2の着手モデルの目標棋風情報を安定的棋風カテゴリ、第3の着手モデルの目標棋風情報を防御的棋風カテゴリとして設定することができる。
また、他の実施形態に係る形勢判断モデルサーバ400は、上記のような着手モデルサーバ300から複数の着手モデルの各々に対する目標棋風情報を取得できる。さらに、形勢判断モデルサーバ400は、各着手モデルから少なくとも2つ以上ずつ導出される着手候補手情報を取得できる。そして、形勢判断モデルサーバ400は、取得された各着手モデル別の着手候補手情報に基づいて棋風判断を行って棋風判断情報を生成できる。また、形勢判断モデルサーバ400は、生成された棋風判断情報と各着手モデル別の目標棋風情報とに基づいて各着手モデルに対する棋風学習データを生成できる。そして、形勢判断モデルサーバ400は、生成された棋風学習データをマッチングされた各着手モデルに一括提供することができる。
例えば、第1の着手モデルが攻撃的棋風カテゴリを目標棋風とし、第2の着手モデルが安定的棋風カテゴリを目標棋風とし、第3の着手モデルが防御的棋風カテゴリを目標棋風とする場合、形勢判断モデルサーバ400は、まず、各着手モデルから少なくとも2つ以上ずつ取得される着手候補手情報に基づいてそれぞれの着手候補手に対する棋風判断を行うことができる。そして、形勢判断モデルサーバ400は、棋風判断を介して第1の着手モデルには、攻撃的棋風の学習に最適化された着手候補手に基づいた棋風学習データを送信し、第2の着手モデルには、安定的棋風の学習に最適化された着手候補手に基づいた棋風学習データを送信し、第3の着手モデルには、防御的棋風の学習に最適化された着手候補手に基づいた棋風学習データを送信して一括提供することができる。すなわち、形勢判断モデルサーバ400は、複数の棋風に対して一括的に棋風判断を行い、学習するようにして、より効率的に棋風を適用した囲碁ゲームサービスを実現できる。
また、他の実施形態において上記のような着手モデルサーバ300と形勢判断モデルサーバ400とを備える及び/又は連動する囲碁ゲームサービス装置は、着手モデルサーバ300のプロセッサ302及び/又は形勢判断モデルサーバ400のプロセッサ402を介して、囲碁対局の進行状況(例えば、経過時間の程度等)またはプレイヤ選択によって各々異なる棋風を適用して囲碁ゲームプレイを行うことができる。具体的に、囲碁ゲームサービス装置は、予め設定された自動棋風制御のための設定情報(例えば、経過時間によって特定棋風で動作するように予め設定された情報等)またはプレイヤの選択入力によって囲碁対局の進行状況またはプレイヤ選択による棋風変換を行うことができる。このとき、囲碁ゲームサービス装置は、囲碁ゲームプレイに適用する棋風を変換するために、囲碁対局の進行状況に応じて用いられる着手モデルを変更できる。
例えば、囲碁ゲームサービス装置は、攻撃的棋風を学習した第1の着手モデル、安定的棋風を学習した第2の着手モデル、防御的棋風を学習した第3の着手モデルが存在する場合、予め設定された自動棋風制御設定情報またはプレイヤの選択によって囲碁対局の序盤には、第2の着手モデルを用いて安定的棋風で囲碁ゲームをプレイし、囲碁対局の中盤には、第3の着手モデルを用いて防御的棋風で囲碁ゲームをプレイし、囲碁対局の終盤には、第1の着手モデルを用いて攻撃的棋風で囲碁ゲームをプレイすることができる。すなわち、囲碁ゲームサービス装置は、囲碁対局の進行状況またはプレイヤ選択によって各々異なる棋風を利用することで、ディープラーニングニューラルネットワークに基づいて囲碁ゲームプレイの際、棋風を活用する囲碁ゲームサービスの使用性をより向上させることができる。
以上、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステム及びサービス方法は、囲碁規則による地、捨て石、石、駄目、関を正確に区分して囲碁の形勢を予測することにより、囲碁の形勢及び特定着手点に対する棋風を正確に判断することができるという効果がある。
また、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステム及びサービス方法は、囲碁ゲームプレイの際に様々な棋風に基づいて対局の進行を図ることにより、多角化されたプレイ方式に基づいて囲碁対局を行うことができ、精密に対局難易度を調節でき、これを通じて囲碁ゲームのクオリティ及び興味を増進させることができるという効果がある。
また、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステム及びサービス方法は、プレイヤとゲーム相手との間の点数差に基づいて棋風を判断し、これに基づいた対局を行うことにより、単に勝つことだけでなく、点数の差まで考慮した囲碁ゲームプレイを行うことができるという効果がある。
また、本発明の実施形態に係るディープラーニングに基づく囲碁ゲームサービスシステム及びサービス方法は、目標とする特定棋風に最適化された学習が行われるように動作することにより、棋風を実現するための学習を効率的、体系的に実現することができるという効果がある。
また、以上で説明された本発明に係る実施形態は、様々なコンピュータ構成要素を介して実行され得るプログラム命令語の形態で実現され、コンピュータ読み取り可能な記録媒体に記録されることができる。上記コンピュータ読み取り可能な記録媒体は、プログラム命令語、データファイル、データ構造などを単独でまたは組み合わせて含むことができる。上記コンピュータ読み取り可能な記録媒体に記録されるプログラム命令語は、本発明のために特別に設計され、構成されたものであるか、コンピュータソフトウェア分野の当業者に公知されて使用可能なものでありうる。コンピュータ読み取り可能な記録媒体の例には、ハードディスク、フロッピーディスク、及び磁気テープのような磁気媒体、CD-ROM及びDVDのような光気緑媒体、フロプティカルディスク(floptical disk)のような磁気-光媒体(magneto-optical medium)、及びROM、RAM、フラッシュメモリなどのような、プログラム命令語を格納し、実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令語の例には、コンパイラによって作られるような機械語コードだけでなく、インタプリタなどを使用してコンピュータにより実行され得る高級言語コードも含まれる。ハードウェア装置は、本発明に係る処理を行うために、1つ以上のソフトウェアモジュールに変更されることができ、その逆も同様である。
本発明において説明する特定実行等は、一実施形態であって、いかなる方法でも本発明の範囲を限定するものではない。明細書の簡潔さのために、従来の電子的な構成、制御システム、ソフトウェア、上記システムの他の機能的な側面等の記載は省略されることができる。また、図面に図示された構成要素間の線等の連結または連結部材などは、機能的な連結及び/又は物理的または回路的連結を例示的に示したものであって、実際装置では、代替可能であるか、追加の様々な機能的な連結、物理的な連結、または回路連結として表されることができる。また、「必須な」、「重要に」などのように、具体的な言及がなければ、本発明の適用のために必ず必要な構成要素でない場合がある。
また、説明した本発明の詳細な説明では、本発明の好ましい実施形態を参照して説明したが、当該技術分野の熟練された当業者または当該技術分野における通常の知識を有する者であれば、後述する特許請求の範囲に記載された本発明の思想及び技術領域から逸脱しない範囲内で本発明を様々に修正及び変更させ得ることが理解できるであろう。したがって、本発明の技術的範囲は、明細書の詳細な説明に記載された内容に限定されるものではなく、特許請求の範囲により決められなければならないであろう。