DarkforestはMeta Platformsが開発したコンピュータ囲碁プログラムで、畳み込みニューラルネットワークを使用した深層学習技術に基づいています。更新版のDarkfores2 は、前バージョンの技術とモンテカルロ木探索を組み合わせています。[ 1 ] [ 2 ] MCTS は、コンピュータチェスプログラムでよく見られる木探索方法を効果的にランダム化します。[ 3 ]更新により、このシステムはDarkfmcts3として知られるようになりました。[ 4 ]
DarkforestはCrazyStoneやZenのようなプログラムと同程度の強さです。 [ 5 ] 2016年のUECカップではプロの人間プレイヤーと対戦しました。GoogleのAlphaGoプログラムは、2015年10月に同様のテクニックの組み合わせを使用してプロのプレイヤーに勝利しました。[ 6 ]
ダークフォレストは、劉慈欣のSF小説『暗黒森林』にちなんで名付けられた。[ 7 ]
古代のゲームである囲碁でトップレベルの人間プレイヤーと競い合うことは、人工知能の長年の目標でした。囲碁は分岐係数が高いため、最先端のハードウェアでも従来の探索手法は効果的ではなく、石を一つ変えるだけで評価関数が大きく変化する可能性があります。しかし、長期予測用に設計された深層畳み込みニューラルネットワークを用いることで、 Darkforestは従来のモンテカルロ木探索に基づくアプローチよりもボットの勝率を大幅に向上させることに成功しました。
人間プレイヤーを相手にした場合、Darkfores2はKGS囲碁サーバー上で安定した3段ランクを獲得します。これは、おおよそ上級アマチュアレベルの人間プレイヤーに相当します。しかし、Darkfores2にモンテカルロ木探索を追加して、darkfmcts3というはるかに強力なプレイヤーを作成すると、 KGS囲碁サーバー上で5段ランクを獲得できるようになります。
darkfmcts3は、Zen、DolBaram、 Crazy Stoneなどの最先端の囲碁AIと同等の性能を持つが、AlphaGoには及ばない。[ 8 ] 2016年1月のKGS Bot Tournamentでは、他の囲碁AIを相手に3位に入賞した。
2015年にGoogleのAlphaGoがFan Huiに勝利した後、 FacebookはAIのハードウェア設計を公開し、DarkForestのコードをオープンソースとして公開するとともに、AIエンジニアのチームを強化するために大規模な採用活動を行った。[ 3 ]
Darkforest は、ニューラル ネットワークを使用して 10 100 の盤面をソートし、最も強力な次の手を見つけます。[ 9 ]しかし、ニューラル ネットワークだけでは、優秀なアマチュア プレイヤーや最高の検索ベースの囲碁エンジンのレベルには達することができないため、Darkfores2 はニューラル ネットワークのアプローチと検索ベースのマシンを組み合わせています。Darkforest の開発には 250,000 の実際の囲碁のゲームのデータベースが使用され、220,000 がトレーニング セットとして使用され、残りは実際のゲームでプレイされる次の手を予測するニューラル ネットワークの能力をテストするために使用されました。これにより、 Darkforestは盤面の全体的な状態を正確に評価できますが、局所的な戦術は依然として不十分です。検索ベースのエンジンは全体的な評価は不十分ですが、局所的な戦術は優れています。検索ベースのエンジンはニューラル ネットワークよりもはるかに高速に動作するため、これら 2 つのアプローチを組み合わせることは困難ですが、Darkfores2では、 2 つのプロセスを並列に実行し、頻繁に通信することでこの問題を解決しました。[ 9 ]
囲碁は一般的に盤上の石の位置を分析してプレイされます。上級者の中には、無意識のうちにプレイしている部分もあると表現する人もいます。チェスやチェッカーのように、AI プレイヤーが人間よりも先の動きを単純に見通せるゲームとは異なり、囲碁の各ラウンドには平均 250 通りの可能な手があるため、このアプローチは効果的ではありません。代わりに、ニューラル ネットワークは、成功した手の画像で AI システムをトレーニングすることにより人間のプレイを模倣し、多くのグランドマスターが行っているように、AI が盤面の見方を効果的に学習することができます。[ 10 ] 2015 年 11 月、Facebook は MCTS とニューラル ネットワークの組み合わせを実証し、「人間のような」プレイスタイルを実現しました。[ 10 ]
Darkforestのプレイスタイルにはまだ欠点があることが指摘されている。このボットは、局所的に強力な手が必要な場面で、時折無意味に手抜き(「他の場所へ移動」)をプレイする。ボットが負けているときは、MCTSの典型的な挙動を示し、悪い手をプレイしてさらに負ける。FacebookのAIチームは、これらを今後の改善点として認識している。[ 11 ]
Darkforestコンピュータ囲碁プログラムのファミリーは、畳み込みニューラルネットワークに基づいています。[ 3 ] Darkfmcts3の最新の進歩は、畳み込みニューラルネットワークとより伝統的なモンテカルロ木探索を組み合わせたものです。[ 3 ] Darkfmcts3 は Darkforest の最も高度なバージョンであり、Facebook の Darkfores2 の最も高度な畳み込みニューラルネットワークアーキテクチャとモンテカルロ木探索を組み合わせています。
Darkfmcts3は、現在のプレイ状況に基づいて次のk手の動きを予測する畳み込みニューラルネットワークに依存しています。盤面を複数のチャンネルを持つ19x19の画像として扱います。各チャンネルは、特定のプレイスタイルに基づいて盤面情報の異なる側面を表します。標準プレイと拡張プレイでは、それぞれ21と25の異なるチャンネルがあります。標準プレイでは、各プレイヤーの自由度は6つのバイナリチャンネルまたはプレーンで表されます。それぞれのプレーンは、プレイヤーが1つ、2つ、または3つ以上の自由度を持っている場合に真となります。コウ(つまり、不正な動き)は1つのバイナリプレーンで表されます。各対戦相手の石の配置と空の盤面は3つのバイナリプレーンで表され、石が配置されてからの時間は、各プレイヤーごとに1つずつ、2つのプレーン上の実数で表されます。最後に、対戦相手のランクは9つのバイナリプレーンで表され、すべてが真の場合、プレイヤーは9段レベル、8つが真の場合、8段レベル、といった具合です。拡張プレイではさらに境界(境界で真となるバイナリプレーン)、位置マスク(ボードの中心からの距離として表される、つまり、 どこは位置における実数であり、各プレイヤーの領土(位置がどちらのプレイヤーに近いかに基づくバイナリ)である。
Darkfmct3 は、重み共有やプーリングなしで幅 384 ノードの 12 層の全畳み込みネットワークを使用します。各畳み込み層の後には、ディープ ニューラル ネットワークでよく使われる活性化関数である整流線形ユニット(RLU) が続きます。 [ 12 ]以前のアプローチと比較した Darkfmct3 の重要な革新は、次の動きを予測するために 1 つのソフトマックス関数のみを使用することで、全体のパラメータ数を削減できることです。[ 3 ] Darkfmct3 は、さまざまなゲーム段階を表す経験的データセットからランダムに選択された 300 のゲームに対してトレーニングされました。学習率は、標準的な確率的勾配降下法によって決定されました。
Darkfmct3は、畳み込みニューラルネットワークとモンテカルロ木探索を同期的に組み合わせます。畳み込みニューラルネットワークは計算負荷が高いため、モンテカルロ木探索はより可能性の高いゲームプレイの軌跡に計算を集中させます。ニューラルネットワークとモンテカルロ木探索を同期的に実行することで、各ノードがニューラルネットワークによって予測された動きによって展開されることを保証できます。
Darkfores2 は、ニューラル ネットワークのみの先行モデルであるDarkforest に約 90% の確率で勝ち、最高の検索ベースのエンジンの 1 つです Pachi にも約 95% の確率で勝ちます。 [ 9 ]級のレーティング システムでは、Darkforest は 1-2 次元レベルを維持しています。Darkfores2は、ランク付けされたボットとして KGS Go Server で安定した 3 次元レベルを達成しています。[ 1 ]モンテ カルロ ツリー サーチを追加したDarkfmcts3は、5,000 回のロールアウトで、10k 回のロールアウトで Pachi に 250 局すべてで勝ちました。75k 回のロールアウトで、KGS サーバーで安定した 5 次元レベルを達成し、最先端の Go AI (例: Zen、DolBaram、CrazyStone) と同等のレベルに達しました。110k 回のロールアウトで、1 月の KGS Go トーナメントで 3 位を獲得しました。[ 4 ]